
void perform_release(uint32_t server_addr,uint32_t requested_ip)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  undefined *puVar4;
  undefined *puVar5;
  uint32_t uVar6;
  undefined4 uVar7;
  int iVar8;
  uint uVar9;
  uint8_t *puVar10;
  uint timeo;
  uint uVar11;
  undefined4 uVar12;
  int iVar13;
  uint32_t *puVar14;
  uint *puVar15;
  option_set *poVar16;
  int iVar17;
  byte *pbVar18;
  undefined4 extraout_v1;
  char *name;
  int *piVar19;
  int iVar20;
  dhcp_packet *unaff_s0;
  uint32_t unaff_s2;
  code *pcVar21;
  uint uVar22;
  undefined *puVar23;
  int *unaff_s5;
  code *unaff_s6;
  int *piVar24;
  undefined *puVar25;
  code *pcVar26;
  code *pcVar27;
  code *pcStack_5f0;
  uint32_t uStack_5ec;
  code *pcStack_5e8;
  code *pcStack_5e4;
  uint32_t uStack_5dc;
  int iStack_5d4;
  code *pcStack_5b4;
  int iStack_5ac;
  int iStack_5a8;
  code *pcStack_5a4;
  char *pcStack_5a0;
  char *pcStack_59c;
  char *pcStack_598;
  undefined4 uStack_594;
  uint uStack_590;
  uint uStack_58c;
  int iStack_588;
  uint uStack_584;
  uint uStack_580;
  undefined4 uStack_57c;
  uint32_t uStack_578;
  uint32_t uStack_574;
  undefined1 auStack_570 [14];
  short sStack_562;
  dhcp_packet dStack_560;
  int iStack_2ec;
  dhcp_packet *pdStack_2e8;
  undefined *puStack_2e4;
  uint32_t uStack_2e0;
  undefined *puStack_2dc;
  undefined *puStack_2d8;
  int *piStack_2d4;
  dhcp_packet packet;
  char buffer [16];
  
  puVar5 = PTR___stack_chk_guard_0012b14c;
  puVar4 = PTR_bb_error_msg_0012a1c8;
  puVar23 = PTR_DAT_0012a178;
  iVar17 = *(int *)PTR___stack_chk_guard_0012b14c;
  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {
    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();
    (*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);
    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);
    unaff_s0 = &packet;
    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);
    init_packet(unaff_s0,'\a');
    packet.ciaddr = requested_ip;
    udhcp_add_simple_option(unaff_s0,'6',server_addr);
    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);
    bcast_or_ucast(unaff_s0,requested_ip,server_addr);
    unaff_s2 = requested_ip;
    unaff_s5 = (int *)server_addr;
  }
  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);
  name = PTR_UINT_0012a18c + 0x6008;
  udhcp_run_script((dhcp_packet *)0x0,name);
  change_listen_mode(0);
  iVar8 = *(int *)puVar5;
  puVar23[-0x4c42] = 6;
  if (iVar17 == iVar8) {
    return;
  }
  puVar25 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  piVar19 = *(int **)(puVar25 + 0xc8fdc);
  iVar17 = *(int *)(puVar25 + 0xc801c);
  piVar24 = &iStack_588;
  puStack_2d8 = puVar5;
  puStack_2e4 = puVar4;
  puStack_2dc = puVar23;
  iVar8 = *(int *)(puVar25 + 0xc81d4);
  iStack_2ec = *piVar19;
  pcVar26 = *(code **)(puVar25 + 0xc8178);
  *(int *)(iVar8 + 0x22c) = *(int *)(puVar25 + 0xc801c) + 0x2408;
  uVar9 = iVar8 + 0x234U & 3;
  puVar15 = (uint *)((iVar8 + 0x234U) - uVar9);
  *puVar15 = *puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8;
  uStack_584 = 0x14;
  uStack_580 = 3;
  uStack_590 = *(int *)(puVar25 + 0xc801c) + 0x601c;
  uStack_57c = 3;
  uStack_58c = 0;
  iStack_588 = 0;
  uVar9 = iVar8 + 0x237U & 3;
  puVar15 = (uint *)((iVar8 + 0x237U) - uVar9);
  *puVar15 = *puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8;
  pcStack_5a0 = (char *)(*(int *)(puVar25 + 0xc801c) + 0x6040);
  pdStack_2e8 = unaff_s0;
  uStack_2e0 = unaff_s2;
  piStack_2d4 = unaff_s5;
  uVar9 = (*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c
                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,
                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,
                     &uStack_58c,piVar24,&uStack_590);
  if ((uVar9 & 0xc) != 0) {
    (**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);
    puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);
    *(uint8_t **)(iVar8 + 0x244) = puVar10;
  }
  if ((uVar9 & 0x10) != 0) {
    puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);
    *(uint8_t **)(iVar8 + 0x248) = puVar10;
    puVar10[2] = '\x01';
  }
  uStack_5ec = uVar9 & 0x400;
  if (uStack_5ec != 0) {
    uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);
  }
  uVar11 = uStack_590;
  timeo = (**(code **)(puVar25 + 0xc8234))();
  if (uStack_58c != 0) {
    pcStack_5f0 = *(code **)(puVar25 + 0xc8164);
    pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);
    unaff_s6 = *(code **)(puVar25 + 0xc8630);
    puVar23 = *(undefined **)(puVar25 + 0xc8634);
    unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);
    pcStack_5e8 = *(code **)(puVar25 + 0xc8644);
    do {
      uVar7 = (*pcStack_5e4)(&uStack_58c);
      uVar11 = (*pcStack_5f0)(uVar7,0,0);
      if (*unaff_s5 == 0) {
        if (0xfe < uVar11) {
          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);
          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];
        }
      }
      else {
        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);
        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];
      }
      iVar17 = iVar8 + (uVar11 >> 3);
      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);
      uVar11 = uStack_58c;
    } while (uStack_58c != 0);
  }
  pbVar18 = *(byte **)(puVar25 + 0xc8634);
  if (-1 < (int)(uVar9 << 0xe)) {
    bVar2 = pbVar18[1];
    while (bVar2 != 0) {
      uVar11 = (uint)(bVar2 >> 3);
      if ((*pbVar18 & 0x10) != 0) {
        uVar11 = iVar8 + uVar11;
        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);
      }
      pbVar1 = pbVar18 + 3;
      pbVar18 = pbVar18 + 2;
      bVar2 = *pbVar1;
    }
  }
  pcVar26 = *(code **)(puVar25 + 0xc8648);
  if (iStack_588 != 0) {
    unaff_s5 = (int *)(iVar8 + 0x238);
    pcVar21 = *(code **)(puVar25 + 0xc82c8);
    unaff_s6 = *(code **)(puVar25 + 0xc8138);
    uVar7 = *(undefined4 *)(puVar25 + 0xc8630);
    puVar23 = *(undefined **)(puVar25 + 0xc8634);
    do {
      uVar12 = (*pcVar21)(piVar24);
      uVar11 = (*unaff_s6)(uVar12);
      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);
      (**(code **)(puVar25 + 0xc8ff8))();
      pcStack_5f0 = pcVar26;
    } while (iStack_588 != 0);
  }
  uVar22 = iVar8 + 0x22cU & 3;
  pcVar26 = *(code **)(puVar25 + 0xc864c);
  uVar3 = iVar8 + 0x22fU & 3;
  iVar17 = udhcp_read_interface
                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |
                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |
                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),
                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200));
  if (iVar17 != 0) goto LAB_000624e4;
  if (((uVar9 & 1) == 0) &&
     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0
     )) {
    puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);
    *(uint8_t **)(iVar8 + 0x23c) = puVar10;
    puVar10[2] = '\x01';
    iVar17 = *(int *)(iVar8 + 0x23c);
    piVar24 = (int *)(iVar17 + 3);
    *piVar24 = *(int *)(iVar8 + 0x200);
    *(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);
    *(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);
  }
  else {
    piVar24 = (int *)0x0;
  }
  if (*pcStack_5a0 != '\0') {
    puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);
    *(uint8_t **)(iVar8 + 0x240) = puVar10;
  }
  if ((uVar9 & 0x4000) != 0) {
    (**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);
    **(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;
  }
  pcStack_5f0 = *(code **)(puVar25 + 0xc8058);
  unaff_s6 = (code *)auStack_570;
  iStack_5d4 = *(int *)(puVar25 + 0xc801c);
  (**(code **)(puVar25 + 0xc8510))();
  pcStack_5b4 = *(code **)(puVar25 + 0xc8650);
  puVar23 = *(undefined **)(puVar25 + 0xc8008);
  unaff_s5 = *(int **)(puVar25 + 0xc8008);
  (**(code **)(puVar25 + 0xc82ac))(*(undefined4 *)(iVar8 + 0x230));
  uVar22 = 0;
  iStack_5ac = *(int *)(puVar25 + 0xc801c);
  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6084);
  udhcp_sp_setup();
  (**(code **)(puVar25 + 0xc8128))();
  (**(code **)(puVar25 + 0xc8df8))(extraout_v1);
  puVar23[-0x4c42] = 0;
  uVar11 = 0;
  pcStack_5e4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0);
  udhcp_run_script((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008));
  pcStack_5e8 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194);
  change_listen_mode(2);
  iVar17 = unaff_s5[-0x17ff];
  iStack_5a8 = *(int *)(puVar25 + 0xc801c) + 0x623c;
  pcStack_5a4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8);
LAB_00062678:
  iVar20 = uVar11 - uVar22;
  pcVar21 = unaff_s6;
  (*pcStack_5b4)(unaff_s6,iVar17);
  if (0 < iVar20) goto code_r0x00062698;
  goto LAB_00062724;
code_r0x00062698:
  pcVar27 = *(code **)(puVar25 + 0xc8618);
  iVar13 = (*pcVar27)();
  iVar17 = 1000;
  if (iVar20 < 0x20c49b) goto LAB_00063074;
  iVar20 = 0x7fffffff;
  while (pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),
        iVar17 < 0) {
    if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {
      iVar20 = (*pcVar27)();
      iVar17 = unaff_s5[-0x17ff];
      uVar22 = iVar20 + (uVar22 - iVar13);
      goto LAB_00062678;
    }
    iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);
LAB_00063074:
    iVar20 = iVar20 * iVar17;
  }
  if (iVar17 == 0) {
LAB_00062724:
    uVar11 = iVar8 + 0x22cU & 3;
    uVar22 = iVar8 + 0x22fU & 3;
    iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |
                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |
                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,
                        iVar8 + 0x200);
    if (iVar17 == 0) {
      if (piVar24 != (int *)0x0) {
        *piVar24 = *(int *)(iVar8 + 0x200);
        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);
        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);
      }
      iVar17 = unaff_s5[-0x17ff];
      if ((byte)puVar23[-0x4c42] < 6) {
                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(code *)(puVar25 +
                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)
                  + 0xcffe0))();
        return;
      }
      uVar22 = 0;
      uVar11 = 0x7fffffff;
      goto LAB_00062678;
    }
    goto joined_r0x00062be8;
  }
  iVar17 = udhcp_sp_read();
  if (iVar17 == 0x10) {
    *(undefined1 *)(iVar8 + 0x24c) = 0;
    *(undefined1 *)(iVar8 + 0x24d) = 0;
    (*pcStack_5f0)(iStack_5ac + 0x60f8);
    if ((byte)puVar23[-0x4c42] < 7) {
                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();
      return;
    }
    iVar17 = unaff_s5[-0x17ff];
    uVar11 = 0;
    uVar22 = 0;
    goto LAB_00062678;
  }
  if (iVar17 == 0x11) {
    uVar11 = 0x7fffffff;
    (*pcStack_5a4)(uStack_578,uStack_5ec);
    iVar17 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  if (iVar17 == 0xf) {
    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);
    goto joined_r0x00062be8;
  }
  iVar17 = unaff_s5[-0x17ff];
  if (sStack_562 == 0) goto LAB_00062678;
  iVar20 = *(int *)(puVar25 + 0xc8008);
  if (*(char *)(iVar20 + -0x4c41) == '\x01') {
    iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);
  }
  else {
    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);
  }
  if (iVar17 == -1) {
    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);
    (**(code **)(puVar25 + 0xc8f94))(uStack_580);
    (*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));
    iVar17 = (*pcVar27)();
    uVar22 = iVar17 + (uVar22 - iVar13);
    iVar17 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  iVar20 = (*pcVar27)();
  uVar22 = iVar20 + (uVar22 - iVar13);
  if ((((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||
     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)) {
LAB_00062c40:
    iVar17 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  puVar10 = udhcp_get_option(&dStack_560,0x35);
  uVar6 = uStack_578;
  if (puVar10 == (uint8_t *)0x0) {
    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);
    iVar17 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  iVar20 = (int)(char)puVar23[-0x4c42];
  if (iVar20 != 1) {
    if (iVar20 < 2) {
      iVar17 = unaff_s5[-0x17ff];
      if (iVar20 != 0) goto LAB_00062678;
      if (*puVar10 == '\x02') {
        uStack_578 = 0;
        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);
        if (puVar14 == (uint32_t *)0x0) {
          uVar11 = 0;
          uVar22 = 0;
          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);
          uStack_5ec = dStack_560.yiaddr;
          iVar17 = unaff_s5[-0x17ff];
          puVar23[-0x4c42] = 1;
        }
        else {
          uStack_578 = *puVar14;
          uVar11 = 0;
          iVar17 = unaff_s5[-0x17ff];
          uVar22 = 0;
          uStack_5ec = dStack_560.yiaddr;
          puVar23[-0x4c42] = 1;
        }
        goto LAB_00062678;
      }
      goto LAB_00062c40;
    }
    iVar17 = unaff_s5[-0x17ff];
    if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;
  }
  if (*puVar10 != '\x05') {
    if ((*puVar10 == '\x06') &&
       ((uStack_578 == 0 ||
        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&
         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {
      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);
      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);
      if (puVar23[-0x4c42] != '\x01') {
        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);
      }
      uVar11 = 0;
      (*pcStack_5e8)(2);
      uVar22 = 0;
      (**(code **)(puVar25 + 0xc8f94))(3);
      iVar17 = unaff_s5[-0x17ff];
      puVar23[-0x4c42] = 0;
      *(undefined1 *)(iVar8 + 0x24c) = 0;
      uStack_5ec = 0;
      *(undefined1 *)(iVar8 + 0x24d) = 0;
      goto LAB_00062678;
    }
    goto LAB_00062c40;
  }
  puVar15 = (uint *)udhcp_get_option32(&dStack_560,0x33);
  if (puVar15 == (uint *)0x0) {
    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);
    uStack_574 = 0xe10;
LAB_00062d7c:
    uVar11 = -((int)(uVar9 << 9) >> 0x1f);
    if (uVar11 != 0) {
      uVar22 = iVar8 + 0x22cU & 3;
      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |
               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;
LAB_00062d8c:
      uVar22 = iVar8 + 0x22fU & 3;
      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),
                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |
                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);
      if (iVar17 == 0) {
        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);
        send_decline(uStack_578,dStack_560.yiaddr);
        if (puVar23[-0x4c42] != '\x01') {
          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);
        }
        uVar22 = 0;
        (*pcStack_5e8)(2);
        puVar23[-0x4c42] = 0;
        uStack_5ec = 0;
        *(undefined1 *)(iVar8 + 0x24c) = 0;
        *(undefined1 *)(iVar8 + 0x24d) = 0;
        iVar17 = unaff_s5[-0x17ff];
        uVar11 = uStack_584;
        goto LAB_00062678;
      }
    }
    pcVar21 = *(code **)(puVar25 + 0xc8fb8);
  }
  else {
    uStack_574 = *puVar15;
    if (0x79 < uStack_574) goto LAB_00062d7c;
    uStack_574 = 0x7a;
    uVar11 = -((int)(uVar9 << 9) >> 0x1f);
    pcVar21 = *(code **)(puVar25 + 0xc8fb8);
    if (uVar11 != 0) {
      uVar22 = iVar8 + 0x22cU & 3;
      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |
               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;
      goto LAB_00062d8c;
    }
  }
  uVar7 = (*pcVar21)(dStack_560.yiaddr);
  uVar6 = uStack_574;
  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574);
  uStack_5ec = dStack_560.yiaddr;
  iVar17 = (*pcVar27)();
  if (puVar23[-0x4c42] == '\x01') {
    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;
  }
  else {
    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;
  }
  uVar11 = uVar6 >> 1;
  (*pcStack_5e4)(&dStack_560,iVar20);
  iVar20 = (*pcVar27)();
  uVar22 = iVar20 - iVar17;
  puVar23[-0x4c42] = 2;
  if (uVar11 < uVar22) {
    uVar11 = 0;
    uVar22 = 0;
  }
  (*pcStack_5e8)(0);
  if ((uVar9 & 0x100) == 0) {
    if ((uVar9 & 0x80000) == 0) {
      client_background();
      iVar17 = unaff_s5[-0x17ff];
      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;
    }
    else {
      iVar17 = unaff_s5[-0x17ff];
      uVar9 = uVar9 & 0xffffffbf;
    }
    goto LAB_00062678;
  }
joined_r0x00062be8:
  if ((uVar9 & 0x200) != 0) {
    perform_release(uStack_578,uStack_5ec);
  }
  uVar9 = uVar9 & 0x200;
  if (**(char **)(puVar25 + 0xc82a0) == '\0') {
LAB_000624e4:
    pcVar21 = *(code **)(puVar25 + 0xc8f58);
    if (iStack_2ec == *piVar19) {
      return;
    }
  }
  else {
    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));
    pcVar21 = *(code **)(puVar25 + 0xc8f58);
    if (iStack_2ec == *piVar19) {
      return;
    }
  }
  (*pcVar21)();
  uVar22 = 0;
  send_select(uStack_5dc,uStack_578,uStack_5ec);
  iVar17 = unaff_s5[-0x17ff];
  uVar11 = uStack_580;
  goto LAB_00062678;
}



int FUN_00061fc8(int *param_1,undefined4 param_2)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  int iVar12;
  char *pcVar13;
  uint *puVar14;
  byte *pbVar15;
  undefined4 extraout_v1;
  undefined *puVar16;
  int *piVar17;
  int iVar18;
  undefined1 *unaff_s0;
  int iVar19;
  undefined4 unaff_s2;
  code *pcVar20;
  uint uVar21;
  undefined *puVar22;
  int *unaff_s5;
  code *unaff_s6;
  int *piVar23;
  undefined *puVar24;
  code *pcVar25;
  code *pcVar26;
  code *local_5f0;
  uint local_5ec;
  code *local_5e8;
  code *local_5e4;
  int local_5dc;
  int local_5d4;
  int local_5d0;
  code *local_5b4;
  int local_5ac;
  int local_5a8;
  code *local_5a4;
  char *local_5a0;
  undefined4 local_59c;
  undefined4 local_598;
  undefined4 local_594;
  uint local_590;
  uint local_58c;
  int local_588;
  uint local_584;
  uint local_580;
  undefined4 local_57c;
  uint local_578;
  uint local_574;
  undefined1 auStack_570 [14];
  short local_562;
  undefined1 auStack_560 [2];
  char local_55e;
  int local_55c;
  uint local_550;
  undefined1 auStack_544 [600];
  int local_2ec;
  undefined1 *local_2e8;
  undefined *local_2e4;
  undefined4 local_2e0;
  undefined *local_2dc;
  undefined *local_2d8;
  int *local_2d4;
  undefined1 auStack_2a8 [12];
  undefined4 local_29c;
  undefined1 auStack_34 [16];
  int local_24;
  
  puVar5 = PTR___stack_chk_guard_0012b14c;
  puVar4 = PTR_FUN_0012a1c8;
  puVar22 = PTR_DAT_0012a178;
  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;
  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {
    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();
    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);
    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);
    unaff_s0 = auStack_2a8;
    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);
    FUN_000608e4(unaff_s0,7);
    local_29c = param_2;
    FUN_00066e38(unaff_s0,0x36,param_1);
    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);
    FUN_00060768(unaff_s0,param_2,param_1);
    unaff_s2 = param_2;
    unaff_s5 = param_1;
  }
  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);
  puVar16 = PTR_UINT_0012a18c + 0x6008;
  FUN_000619d0(0,puVar16);
  FUN_00061194(0);
  iVar7 = *(int *)puVar5;
  puVar22[-0x4c42] = 6;
  if (local_24 == iVar7) {
    return iVar7;
  }
  puVar24 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  piVar17 = *(int **)(puVar24 + 0xc8fdc);
  iVar7 = *(int *)(puVar24 + 0xc801c);
  piVar23 = &local_588;
  local_2d8 = puVar5;
  local_2e4 = puVar4;
  local_2dc = puVar22;
  iVar19 = *(int *)(puVar24 + 0xc81d4);
  local_2ec = *piVar17;
  pcVar25 = *(code **)(puVar24 + 0xc8178);
  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;
  uVar8 = iVar19 + 0x234U & 3;
  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);
  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;
  local_584 = 0x14;
  local_580 = 3;
  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;
  local_57c = 3;
  local_58c = 0;
  local_588 = 0;
  uVar8 = iVar19 + 0x237U & 3;
  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);
  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;
  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);
  local_2e8 = unaff_s0;
  local_2e0 = unaff_s2;
  local_2d4 = unaff_s5;
  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,
                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,
                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,
                     &local_57c,&local_584,&local_58c,piVar23,&local_590);
  if ((uVar8 & 0xc) != 0) {
    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);
    uVar6 = FUN_00060838(0xc,local_59c,0);
    *(undefined4 *)(iVar19 + 0x244) = uVar6;
  }
  if ((uVar8 & 0x10) != 0) {
    iVar7 = FUN_00060838(0x51,local_598,3);
    *(int *)(iVar19 + 0x248) = iVar7;
    *(undefined1 *)(iVar7 + 2) = 1;
  }
  local_5ec = uVar8 & 0x400;
  if (local_5ec != 0) {
    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);
  }
  uVar10 = local_590;
  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);
  if (local_58c != 0) {
    local_5f0 = *(code **)(puVar24 + 0xc8164);
    local_5e4 = *(code **)(puVar24 + 0xc82c8);
    unaff_s6 = *(code **)(puVar24 + 0xc8630);
    puVar22 = *(undefined **)(puVar24 + 0xc8634);
    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);
    local_5e8 = *(code **)(puVar24 + 0xc8644);
    do {
      uVar9 = (*local_5e4)(&local_58c);
      uVar10 = (*local_5f0)(uVar9,0,0);
      if (*unaff_s5 == 0) {
        if (0xfe < uVar10) {
          iVar7 = (*local_5e8)(uVar9,unaff_s6);
          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];
        }
      }
      else {
        iVar7 = (*local_5e8)(uVar9,unaff_s6);
        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];
      }
      iVar7 = iVar19 + (uVar10 >> 3);
      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);
      uVar10 = local_58c;
    } while (local_58c != 0);
  }
  pbVar15 = *(byte **)(puVar24 + 0xc8634);
  if (-1 < (int)(uVar8 << 0xe)) {
    bVar2 = pbVar15[1];
    while (bVar2 != 0) {
      uVar10 = (uint)(bVar2 >> 3);
      if ((*pbVar15 & 0x10) != 0) {
        uVar10 = iVar19 + uVar10;
        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);
      }
      pbVar1 = pbVar15 + 3;
      pbVar15 = pbVar15 + 2;
      bVar2 = *pbVar1;
    }
  }
  pcVar25 = *(code **)(puVar24 + 0xc8648);
  if (local_588 != 0) {
    unaff_s5 = (int *)(iVar19 + 0x238);
    pcVar20 = *(code **)(puVar24 + 0xc82c8);
    unaff_s6 = *(code **)(puVar24 + 0xc8138);
    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);
    puVar22 = *(undefined **)(puVar24 + 0xc8634);
    do {
      uVar11 = (*pcVar20)(piVar23);
      uVar10 = (*unaff_s6)(uVar11);
      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);
      (**(code **)(puVar24 + 0xc8ff8))(uVar10);
      local_5f0 = pcVar25;
    } while (local_588 != 0);
  }
  uVar21 = iVar19 + 0x22cU & 3;
  pcVar25 = *(code **)(puVar24 + 0xc864c);
  uVar3 = iVar19 + 0x22fU & 3;
  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |
                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |
                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,
                       iVar19 + 0x200);
  if (iVar7 != 0) {
    local_5d0 = 1;
    goto LAB_000624e4;
  }
  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)
     ) {
    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);
    *(int *)(iVar19 + 0x23c) = iVar7;
    *(undefined1 *)(iVar7 + 2) = 1;
    iVar7 = *(int *)(iVar19 + 0x23c);
    piVar23 = (int *)(iVar7 + 3);
    *piVar23 = *(int *)(iVar19 + 0x200);
    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);
    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);
  }
  else {
    piVar23 = (int *)0x0;
  }
  if (*local_5a0 != '\0') {
    uVar9 = FUN_00060838(0x3c,local_5a0,0);
    *(undefined4 *)(iVar19 + 0x240) = uVar9;
  }
  if ((uVar8 & 0x4000) != 0) {
    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);
    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;
  }
  local_5f0 = *(code **)(puVar24 + 0xc8058);
  unaff_s6 = (code *)auStack_570;
  local_5d4 = *(int *)(puVar24 + 0xc801c);
  (**(code **)(puVar24 + 0xc8510))();
  local_5b4 = *(code **)(puVar24 + 0xc8650);
  puVar22 = *(undefined **)(puVar24 + 0xc8008);
  unaff_s5 = *(int **)(puVar24 + 0xc8008);
  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));
  uVar21 = 0;
  local_5ac = *(int *)(puVar24 + 0xc801c);
  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);
  FUN_00066068();
  (**(code **)(puVar24 + 0xc8128))();
  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);
  puVar22[-0x4c42] = 0;
  uVar10 = 0;
  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);
  FUN_000619d0(0,local_5d4 + 0x6008);
  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);
  FUN_00061194(2);
  iVar7 = unaff_s5[-0x17ff];
  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;
  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);
  local_5d0 = 0;
LAB_00062678:
  iVar18 = uVar10 - uVar21;
  pcVar20 = unaff_s6;
  (*local_5b4)(unaff_s6,iVar7);
  if (0 < iVar18) goto code_r0x00062698;
  goto LAB_00062724;
code_r0x00062698:
  pcVar26 = *(code **)(puVar24 + 0xc8618);
  iVar12 = (*pcVar26)();
  iVar7 = 1000;
  if (iVar18 < 0x20c49b) goto LAB_00063074;
  iVar18 = 0x7fffffff;
  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)
  {
    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {
      iVar18 = (*pcVar26)();
      iVar7 = unaff_s5[-0x17ff];
      uVar21 = iVar18 + (uVar21 - iVar12);
      goto LAB_00062678;
    }
    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);
LAB_00063074:
    iVar18 = iVar18 * iVar7;
  }
  if (iVar7 == 0) {
LAB_00062724:
    uVar10 = iVar19 + 0x22cU & 3;
    uVar21 = iVar19 + 0x22fU & 3;
    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |
                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |
                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,
                       iVar19 + 0x200);
    if (iVar7 == 0) {
      if (piVar23 != (int *)0x0) {
        *piVar23 = *(int *)(iVar19 + 0x200);
        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);
        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);
      }
      iVar7 = unaff_s5[-0x17ff];
      if ((byte)puVar22[-0x4c42] < 6) {
                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar7 = (*(code *)(puVar24 +
                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +
                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();
        return iVar7;
      }
      uVar21 = 0;
      uVar10 = 0x7fffffff;
      goto LAB_00062678;
    }
    goto joined_r0x00062be8;
  }
  iVar7 = FUN_0006618c();
  if (iVar7 == 0x10) {
    *(undefined1 *)(iVar19 + 0x24c) = 0;
    *(undefined1 *)(iVar19 + 0x24d) = 0;
    (*local_5f0)(local_5ac + 0x60f8);
    if ((byte)puVar22[-0x4c42] < 7) {
                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)
              )();
      return iVar7;
    }
    iVar7 = unaff_s5[-0x17ff];
    uVar10 = 0;
    uVar21 = 0;
    goto LAB_00062678;
  }
  if (iVar7 == 0x11) {
    uVar10 = 0x7fffffff;
    (*local_5a4)(local_578,local_5ec);
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  if (iVar7 == 0xf) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);
    goto joined_r0x00062be8;
  }
  iVar7 = unaff_s5[-0x17ff];
  if (local_562 == 0) goto LAB_00062678;
  iVar7 = *(int *)(puVar24 + 0xc8008);
  if (*(char *)(iVar7 + -0x4c41) == '\x01') {
    iVar18 = FUN_00065a28(auStack_560);
  }
  else {
    iVar18 = FUN_00060ea8(auStack_560);
  }
  if (iVar18 == -1) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);
    (**(code **)(puVar24 + 0xc8f94))(local_580);
    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));
    iVar7 = (*pcVar26)();
    uVar21 = iVar7 + (uVar21 - iVar12);
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  iVar7 = (*pcVar26)();
  uVar21 = iVar7 + (uVar21 - iVar12);
  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||
     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {
LAB_00062c40:
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);
  uVar3 = local_578;
  if (pcVar13 == (char *)0x0) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  iVar18 = (int)(char)puVar22[-0x4c42];
  if (iVar18 != 1) {
    if (iVar18 < 2) {
      iVar7 = unaff_s5[-0x17ff];
      if (iVar18 != 0) goto LAB_00062678;
      if (*pcVar13 == '\x02') {
        local_578 = 0;
        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);
        if (puVar14 == (uint *)0x0) {
          uVar10 = 0;
          uVar21 = 0;
          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);
          local_5ec = local_550;
          iVar7 = unaff_s5[-0x17ff];
          puVar22[-0x4c42] = 1;
        }
        else {
          local_578 = *puVar14;
          uVar10 = 0;
          iVar7 = unaff_s5[-0x17ff];
          uVar21 = 0;
          local_5ec = local_550;
          puVar22[-0x4c42] = 1;
        }
        goto LAB_00062678;
      }
      goto LAB_00062c40;
    }
    iVar7 = unaff_s5[-0x17ff];
    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;
  }
  if (*pcVar13 != '\x05') {
    if ((*pcVar13 == '\x06') &&
       ((local_578 == 0 ||
        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&
         (local_574 = *puVar14, uVar3 == local_574)))))) {
      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);
      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);
      if (puVar22[-0x4c42] != '\x01') {
        (*local_5e4)(0,local_5d4 + 0x6008);
      }
      uVar10 = 0;
      (*local_5e8)(2);
      uVar21 = 0;
      (**(code **)(puVar24 + 0xc8f94))(3);
      iVar7 = unaff_s5[-0x17ff];
      puVar22[-0x4c42] = 0;
      *(undefined1 *)(iVar19 + 0x24c) = 0;
      local_5ec = 0;
      *(undefined1 *)(iVar19 + 0x24d) = 0;
      goto LAB_00062678;
    }
    goto LAB_00062c40;
  }
  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);
  if (puVar14 == (uint *)0x0) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);
    local_574 = 0xe10;
LAB_00062d7c:
    uVar10 = -((int)(uVar8 << 9) >> 0x1f);
    if (uVar10 != 0) {
      uVar21 = iVar19 + 0x22cU & 3;
      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |
               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;
LAB_00062d8c:
      uVar21 = iVar19 + 0x22fU & 3;
      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,
                           uVar10 & -1 << (uVar21 + 1) * 8 |
                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);
      if (iVar7 == 0) {
        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);
        FUN_00060c2c(local_578,local_550);
        if (puVar22[-0x4c42] != '\x01') {
          (*local_5e4)(0,local_5d4 + 0x6008);
        }
        uVar21 = 0;
        (*local_5e8)(2);
        puVar22[-0x4c42] = 0;
        local_5ec = 0;
        *(undefined1 *)(iVar19 + 0x24c) = 0;
        *(undefined1 *)(iVar19 + 0x24d) = 0;
        iVar7 = unaff_s5[-0x17ff];
        uVar10 = local_584;
        goto LAB_00062678;
      }
    }
    pcVar20 = *(code **)(puVar24 + 0xc8fb8);
  }
  else {
    local_574 = *puVar14;
    if (0x79 < local_574) goto LAB_00062d7c;
    local_574 = 0x7a;
    uVar10 = -((int)(uVar8 << 9) >> 0x1f);
    pcVar20 = *(code **)(puVar24 + 0xc8fb8);
    if (uVar10 != 0) {
      uVar21 = iVar19 + 0x22cU & 3;
      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |
               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;
      goto LAB_00062d8c;
    }
  }
  uVar9 = (*pcVar20)(local_550);
  uVar10 = local_574;
  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);
  local_5ec = local_550;
  iVar7 = (*pcVar26)();
  if (puVar22[-0x4c42] == '\x01') {
    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;
  }
  else {
    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;
  }
  uVar10 = uVar10 >> 1;
  (*local_5e4)(auStack_560,iVar18);
  iVar18 = (*pcVar26)();
  uVar21 = iVar18 - iVar7;
  puVar22[-0x4c42] = 2;
  if (uVar10 < uVar21) {
    uVar10 = 0;
    uVar21 = 0;
  }
  (*local_5e8)(0);
  if ((uVar8 & 0x100) == 0) {
    if ((uVar8 & 0x80000) == 0) {
      FUN_000607e4();
      iVar7 = unaff_s5[-0x17ff];
      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;
    }
    else {
      iVar7 = unaff_s5[-0x17ff];
      uVar8 = uVar8 & 0xffffffbf;
    }
    goto LAB_00062678;
  }
joined_r0x00062be8:
  if ((uVar8 & 0x200) != 0) {
    FUN_00061fc8(local_578,local_5ec);
  }
  uVar8 = uVar8 & 0x200;
  if (**(char **)(puVar24 + 0xc82a0) == '\0') {
LAB_000624e4:
    pcVar20 = *(code **)(puVar24 + 0xc8f58);
    if (local_2ec == *piVar17) {
      return local_5d0;
    }
  }
  else {
    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));
    pcVar20 = *(code **)(puVar24 + 0xc8f58);
    if (local_2ec == *piVar17) {
      return local_5d0;
    }
  }
  (*pcVar20)();
  uVar21 = 0;
  FUN_00060ae0(local_5dc,local_578,local_5ec);
  iVar7 = unaff_s5[-0x17ff];
  uVar10 = local_580;
  goto LAB_00062678;
}


lui gp,0xd
addiu gp,gp,0x188
addu gp,gp,t9
addiu sp,sp,-0x2c0
sw s3,0x2b0(sp)
sw s4,0x2b4(sp)
lw s3,-0x7fd8(gp)
lw s4,-0x7004(gp)
sw gp,0x10(sp)
sw s1,0x2a8(sp)
lbu v0,-0x4c42(s3)
lw v1,0x0(s4)
lw s1,-0x7f88(gp)
addiu v0,v0,-0x2
sw ra,0x2bc(sp)
sw s5,0x2b8(sp)
sltiu v0,v0,0x4
sw s2,0x2ac(sp)
sw s0,0x2a4(sp)
sw v1,0x29c(sp)
beq v0,zero,0x000620e8
_lw t9,-0x7028(gp)
or s2,a1,zero
or s5,a0,zero
jalr t9
_addiu s0,sp,0x28c
li a2,0x10
lw gp,0x10(sp)
or a0,s0,zero
lw t9,-0x7314(gp)
jalr t9
_or a1,v0,zero
lw gp,0x10(sp)
lw t9,-0x7028(gp)
jalr t9
_or a0,s2,zero
or a2,s0,zero
lw gp,0x10(sp)
or a1,v0,zero
or t9,s1,zero
addiu s0,sp,0x18
lw a0,-0x7fc4(gp)
jalr t9
_addiu a0,a0,0x5fcc
li a1,0x7
lw gp,0x10(sp)
lw t9,-0x7a2c(gp)
addiu t9,t9,0x8e4
bal 0x000608e4
_or a0,s0,zero
li a1,0x36
lw gp,0x10(sp)
or a2,s5,zero
or a0,s0,zero
lw t9,-0x79e4(gp)
bal 0x00066e38
_sw s2,0x24(sp)
or t9,s1,zero
lw gp,0x10(sp)
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
addiu a1,a1,0x1e8c
jalr t9
_addiu a0,a0,0x5ec8
or a2,s5,zero
lw gp,0x10(sp)
or a1,s2,zero
lw t9,-0x7a2c(gp)
addiu t9,t9,0x768
bal 0x00060768
_or a0,s0,zero
lw gp,0x10(sp)
lw a0,-0x7fc4(gp)
or t9,s1,zero
jalr t9
_addiu a0,a0,0x5ff0
or a0,zero,zero
lw gp,0x10(sp)
lw a1,-0x7fc4(gp)
lw t9,-0x7a2c(gp)
addiu t9,t9,0x19d0
bal 0x000619d0
_addiu a1,a1,0x6008
lw gp,0x10(sp)
lw t9,-0x7a2c(gp)
addiu t9,t9,0x1194
bal 0x00061194
_or a0,zero,zero
li a0,0x6
lw v1,0x29c(sp)
lw v0,0x0(s4)
lw gp,0x10(sp)
bne v1,v0,0x00062164
_sb a0,-0x4c42(s3)
lw ra,0x2bc(sp)
lw s5,0x2b8(sp)
lw s4,0x2b4(sp)
lw s3,0x2b0(sp)
lw s2,0x2ac(sp)
lw s1,0x2a8(sp)
lw s0,0x2a4(sp)
jr ra
_addiu sp,sp,0x2c0
lw t9,-0x7088(gp)
jalr t9
_nop
lui gp,0xd
addiu gp,gp,-0x20
addu gp,gp,t9
addiu sp,sp,-0x380
lw v1,-0x7fc4(gp)
lw a2,-0x7004(gp)
or a0,a1,zero
lw v0,-0x7fc4(gp)
li a1,0x3
sw s0,0x358(sp)
addiu v1,v1,0x2408
sw gp,0x48(sp)
addiu a3,sp,0xa0
sw ra,0x37c(sp)
addiu v0,v0,0x6024
sw s7,0x374(sp)
addiu s7,sp,0xb8
sw s4,0x368(sp)
addiu s4,sp,0xb4
sw s1,0x35c(sp)
sw a2,0x84(sp)
sw s8,0x378(sp)
sw s6,0x370(sp)
sw s5,0x36c(sp)
sw s3,0x364(sp)
sw s2,0x360(sp)
lw s0,-0x7e0c(gp)
lw a2,0x0(a2)
lw t9,-0x7e68(gp)
addiu t3,s0,0x234
swl v1,0x22c(s0)
addiu t2,s0,0x230
swr v1,0x22f(s0)
swl v0,0x234(s0)
sw a2,0x354(sp)
li a2,0x14
lw v1,-0x7fc4(gp)
sw a2,0xbc(sp)
sw a1,0xc0(sp)
addiu v1,v1,0x601c
sw a1,0xc4(sp)
sw zero,0xb4(sp)
sw v1,0xb0(sp)
addiu v1,s0,0x22c
sw zero,0xb8(sp)
swr v0,0x237(s0)
lw v0,-0x7fc4(gp)
lw a2,-0x7fa8(gp)
lw a1,-0x7fc4(gp)
addiu v0,v0,0x6040
addiu a2,a2,0x667c
sw v0,0xa0(sp)
addiu v0,sp,0xb0
addiu a1,a1,-0x1ca0
sw s7,0x3c(sp)
sw v0,0x40(sp)
addiu v0,sp,0xbc
sw s4,0x38(sp)
sw v0,0x34(sp)
addiu v0,sp,0xc4
sw t3,0x28(sp)
sw v0,0x30(sp)
addiu v0,sp,0xc0
sw t2,0x20(sp)
sw v0,0x2c(sp)
addiu v0,sp,0xac
sw v1,0x1c(sp)
sw v0,0x24(sp)
addiu v0,sp,0xa8
sw v0,0x18(sp)
addiu v0,sp,0xa4
sw v0,0x14(sp)
jalr t9
_sw v0,0x10(sp)
or s1,v0,zero
andi v0,v0,0xc
beq v0,zero,0x000622e0
_lw gp,0x48(sp)
lw a0,-0x7fc4(gp)
lw t9,-0x7f88(gp)
jalr t9
_addiu a0,a0,0x6050
or a2,zero,zero
lw gp,0x48(sp)
li a0,0xc
lw t9,-0x7a2c(gp)
addiu t9,t9,0x838
bal 0x00060838
_lw a1,0xa4(sp)
lw gp,0x48(sp)
swl v0,0x244(s0)
swr v0,0x247(s0)
andi v0,s1,0x10
beq v0,zero,0x00062314
_lw t9,-0x7a2c(gp)
li a2,0x3
lw a1,0xa8(sp)
addiu t9,t9,0x838
bal 0x00060838
_li a0,0x51
li v1,0x1
lw gp,0x48(sp)
swl v0,0x248(s0)
swr v0,0x24b(s0)
sb v1,0x2(v0)
andi v0,s1,0x400
beq v0,zero,0x00062334
_sw v0,0x54(sp)
lw t9,-0x7460(gp)
jalr t9
_lw a0,0xac(sp)
lw gp,0x48(sp)
sw v0,0x54(sp)
lw t9,-0x7dac(gp)
jalr t9
_lw a0,0xb0(sp)
lw v1,0xb4(sp)
lw gp,0x48(sp)
beq v1,zero,0x000623f0
_sw v0,0x7c(sp)
lw v0,-0x7e7c(gp)
li s8,0x1
lw s2,-0x7d18(gp)
lw s6,-0x79b0(gp)
sw v0,0x50(sp)
lw v0,-0x7f3c(gp)
lw s3,-0x79ac(gp)
sw s2,0x5c(sp)
lw s5,0x0(v0)
lw v0,-0x799c(gp)
sw v0,0x58(sp)
lw t9,0x5c(sp)
jalr t9
_or a0,s4,zero
or a2,zero,zero
lw t9,0x50(sp)
or a1,zero,zero
or a0,v0,zero
jalr t9
_or s2,v0,zero
lw a0,0x0(s5)
beq a0,zero,0x00063124
_lw gp,0x48(sp)
lw t9,0x58(sp)
or a1,s6,zero
jalr t9
_or a0,s2,zero
sll v0,v0,0x1
lw gp,0x48(sp)
addu v0,s3,v0
lbu v0,0x1(v0)
srl v1,v0,0x3
lw a0,0xb4(sp)
andi v0,v0,0x7
addu v1,s0,v1
sllv v0,s8,v0
lbu a1,0x20c(v1)
or v0,v0,a1
bne a0,zero,0x0006237c
_sb v0,0x20c(v1)
ext v0,s1,0x11,0x1
bne v0,zero,0x0006243c
_lw v1,-0x79ac(gp)
lbu v0,0x1(v1)
beq v0,zero,0x0006243c
_li a1,0x1
lbu a0,0x0(v1)
andi a0,a0,0x10
beq a0,zero,0x00062430
_srl a0,v0,0x3
andi v0,v0,0x7
addu a0,s0,a0
sllv v0,a1,v0
lbu a2,0x20c(a0)
or v0,v0,a2
sb v0,0x20c(a0)
lbu v0,0x3(v1)
bne v0,zero,0x00062408
_addiu v1,v1,0x2
lw v0,0xb8(sp)
beq v0,zero,0x000624b0
_lw v0,-0x7998(gp)
addiu s5,s0,0x238
lw s2,-0x7d18(gp)
lw s6,-0x7ea8(gp)
lw s4,-0x79b0(gp)
lw s3,-0x79ac(gp)
sw v0,0x50(sp)
or t9,s2,zero
jalr t9
_or a0,s7,zero
or t9,s6,zero
jalr t9
_or a0,v0,zero
or a3,s4,zero
lw t9,0x50(sp)
or a0,v0,zero
or a2,s3,zero
or a1,s5,zero
jalr t9
_or s8,v0,zero
lw gp,0x48(sp)
lw t9,-0x6fe8(gp)
jalr t9
_or a0,s8,zero
lw v0,0xb8(sp)
bne v0,zero,0x00062460
_lw gp,0x48(sp)
lwl a0,0x22c(s0)
addiu a3,s0,0x200
lw t9,-0x7994(gp)
or a2,zero,zero
addiu a1,s0,0x208
sw t9,0x88(sp)
bal 0x00066210
_lwr a0,0x22f(s0)
lw gp,0x48(sp)
beq v0,zero,0x0006252c
_sw v0,0x70(sp)
li v0,0x1
sw v0,0x70(sp)
lw v1,0x84(sp)
lw a0,0x354(sp)
lw v0,0x70(sp)
lw v1,0x0(v1)
bne a0,v1,0x00062944
_lw t9,-0x7088(gp)
lw ra,0x37c(sp)
lw s8,0x378(sp)
lw s7,0x374(sp)
lw s6,0x370(sp)
lw s5,0x36c(sp)
lw s4,0x368(sp)
lw s3,0x364(sp)
lw s2,0x360(sp)
lw s1,0x35c(sp)
lw s0,0x358(sp)
jr ra
_addiu sp,sp,0x380
andi v0,s1,0x1
beq v0,zero,0x000630a8
_li a1,0x3d
or s7,zero,zero
lw a1,0xa0(sp)
lbu v0,0x0(a1)
beq v0,zero,0x00062568
_lw t9,-0x7a2c(gp)
or a2,zero,zero
addiu t9,t9,0x838
bal 0x00060838
_li a0,0x3c
lw gp,0x48(sp)
swl v0,0x240(s0)
swr v0,0x243(s0)
andi v0,s1,0x4000
bne v0,zero,0x0006307c
_lw v0,-0x7fa4(gp)
lw s2,-0x7f88(gp)
addiu s6,sp,0xd0
lw s4,-0x7fc4(gp)
or s8,zero,zero
lw t9,-0x7ad0(gp)
sw s2,0x50(sp)
jalr t9
_sw s4,0x6c(sp)
lw gp,0x48(sp)
lwl a0,0x230(s0)
lw v0,-0x7990(gp)
lwr a0,0x233(s0)
lw t9,-0x7d34(gp)
lw s3,-0x7fd8(gp)
lw s5,-0x7fd8(gp)
sw v0,0x8c(sp)
lw v0,-0x7fc4(gp)
jalr t9
_sw v0,0x90(sp)
or t9,s2,zero
lw gp,0x48(sp)
or s2,zero,zero
lw a0,-0x7fc4(gp)
lw v0,-0x7fc4(gp)
addiu a0,a0,0x6084
jalr t9
_sw v0,0x94(sp)
lw gp,0x48(sp)
lw t9,-0x798c(gp)
bal 0x00066068
_nop
lw gp,0x48(sp)
lw t9,-0x7eb8(gp)
jalr t9
_nop
lw gp,0x48(sp)
lw t9,-0x71e8(gp)
jalr t9
_or a0,v1,zero
addiu a1,s4,0x6008
lw gp,0x48(sp)
or a0,zero,zero
sb zero,-0x4c42(s3)
or s4,zero,zero
lw v0,-0x7a2c(gp)
addiu t9,v0,0x19d0
bal 0x000619d0
_sw t9,0x5c(sp)
li a0,0x2
lw gp,0x48(sp)
lw v0,-0x7a2c(gp)
addiu t9,v0,0x1194
bal 0x00061194
_sw t9,0x58(sp)
lw gp,0x48(sp)
lw a1,-0x5ffc(s5)
lw v0,-0x7a2c(gp)
addiu v0,v0,0xd48
sw v0,0x78(sp)
lw v0,-0x7fc4(gp)
addiu v0,v0,0x623c
sw v0,0x98(sp)
lw v0,-0x7a2c(gp)
addiu v0,v0,0x1fc8
sw v0,0x9c(sp)
subu a2,s4,s2
lw t9,0x8c(sp)
or a0,s6,zero
jalr t9
_sw a2,0x60(sp)
lw a2,0x60(sp)
blez a2,0x00062724
_lw gp,0x48(sp)
lw t9,-0x79c8(gp)
sw a2,0x60(sp)
jalr t9
_sw t9,0x68(sp)
lw a2,0x60(sp)
lw gp,0x48(sp)
sw v0,0x74(sp)
lui v0,0x20
ori v0,v0,0xc49b
slt v0,a2,v0
bne v0,zero,0x00063074
_li v0,0x3e8
lui a2,0x7fff
ori a2,a2,0xffff
lw t9,-0x710c(gp)
li a1,0x2
jalr t9
_or a0,s6,zero
bgez v0,0x0006271c
_lw gp,0x48(sp)
lw v1,-0x7f3c(gp)
li v0,0x4
lw v1,0x0(v1)
lw v1,0x0(v1)
bne v1,v0,0x00063064
_lw t9,0x68(sp)
jalr t9
_nop
lw v1,0x74(sp)
lw a1,-0x5ffc(s5)
subu s2,s2,v1
b 0x00062678
_addu s2,v0,s2
bne v0,zero,0x00062a1c
_lw t9,-0x7988(gp)
lwl a0,0x22c(s0)
addiu a3,s0,0x200
lw t9,0x88(sp)
or a2,zero,zero
addiu a1,s0,0x208
jalr t9
_lwr a0,0x22f(s0)
beq v0,zero,0x0006276c
_lw gp,0x48(sp)
andi s1,s1,0x200
beq s1,zero,0x0006290c
_lw t9,-0x7a2c(gp)
lw a1,0x54(sp)
addiu t9,t9,0x1fc8
bal 0x00061fc8
_lw a0,0xc8(sp)
b 0x0006290c
_lw gp,0x48(sp)
beq s7,zero,0x00062794
_addiu v0,s0,0x200
lwl v1,0x0(v0)
lwr v1,0x3(v0)
swl v1,0x0(s7)
swr v1,0x3(s7)
lbu v1,0x4(v0)
sb v1,0x4(s7)
lbu v0,0x5(v0)
sb v0,0x5(s7)
lbu v0,-0x4c42(s3)
sltiu v1,v0,0x6
bne v1,zero,0x000627b4
_lw a1,-0x5ffc(s5)
lui s4,0x7fff
or s2,zero,zero
b 0x00062678
_ori s4,s4,0xffff
sll v1,v0,0x2
lw v0,-0x7fc4(gp)
addiu v0,v0,0x6224
addu v0,v0,v1
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw v0,-0x7d40(gp)
lb v0,0x0(v0)
beq v0,zero,0x000624e4
_lw t9,-0x70c4(gp)
lwl a0,0x230(s0)
jalr t9
_lwr a0,0x233(s0)
lw v1,0x84(sp)
lw a0,0x354(sp)
lw gp,0x48(sp)
lw v0,0x70(sp)
lw v1,0x0(v1)
beq a0,v1,0x000624fc
_lw t9,-0x7088(gp)
jalr t9
_nop
lw t9,-0x7a2c(gp)
addiu s8,s8,0x1
lw a1,0xc8(sp)
or s2,zero,zero
lw a2,0x54(sp)
addiu t9,t9,0xae0
bal 0x00060ae0
_lw a0,0x64(sp)
lw s4,0xc0(sp)
b 0x00062678
_lw a1,-0x5ffc(s5)
bal 0x0006618c
_nop
li v1,0x10
beq v0,v1,0x00062ad8
_lw gp,0x48(sp)
li v1,0x11
beq v0,v1,0x00062bac
_li v1,0xf
beq v0,v1,0x00062bcc
_lh v0,0xde(sp)
beq v0,zero,0x00062678
_lw a1,-0x5ffc(s5)
lw v0,-0x7fd8(gp)
or v1,v0,zero
sw v0,0x80(sp)
li v0,0x1
lb v1,-0x4c41(v1)
bne v1,v0,0x00062bf8
_addiu v0,sp,0xe0
lw t9,-0x7984(gp)
or a0,v0,zero
bal 0x00065a28
_sw v0,0x60(sp)
lw a0,0x74(sp)
or v1,v0,zero
li v0,-0x1
lw gp,0x48(sp)
bne v1,v0,0x00062c24
_subu s2,s2,a0
lw a0,-0x7fc4(gp)
lw t9,0x50(sp)
jalr t9
_addiu a0,a0,0x6124
lw gp,0x48(sp)
lw t9,-0x704c(gp)
jalr t9
_lw a0,0xc0(sp)
lw v0,0x80(sp)
lw t9,0x58(sp)
jalr t9
_lb a0,-0x4c41(v0)
lw t9,0x68(sp)
jalr t9
_nop
addu s2,v0,s2
b 0x00062678
_lw a1,-0x5ffc(s5)
lw v0,0x94(sp)
sb zero,0x24c(s0)
sb zero,0x24d(s0)
lw t9,0x50(sp)
jalr t9
_addiu a0,v0,0x60f8
lbu v0,-0x4c42(s3)
sltiu v1,v0,0x7
bne v1,zero,0x00062b14
_lw gp,0x48(sp)
lw a1,-0x5ffc(s5)
or s4,zero,zero
or s8,zero,zero
b 0x00062678
_or s2,zero,zero
lw v1,0x98(sp)
sll v0,v0,0x2
addu v0,v1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
lw a1,0x54(sp)
lui s4,0x7fff
lw a0,0xc8(sp)
lw t9,0x9c(sp)
jalr t9
_ori s4,s4,0xffff
b 0x00062678
_lw a1,-0x5ffc(s5)
lw a1,-0x7fc4(gp)
andi s1,s1,0x200
lw a0,-0x7fc4(gp)
lw t9,0x50(sp)
addiu a1,a1,0x6110
jalr t9
_addiu a0,a0,0x6118
beq s1,zero,0x0006290c
_lw gp,0x48(sp)
b 0x00062754
_lw t9,-0x7a2c(gp)
lw t9,-0x7a2c(gp)
or a0,v0,zero
addiu t9,t9,0xea8
bal 0x00060ea8
_sw v0,0x60(sp)
lw a0,0x74(sp)
or v1,v0,zero
li v0,-0x1
lw gp,0x48(sp)
beq v1,v0,0x00062a90
_subu s2,s2,a0
lw t9,0x68(sp)
jalr t9
_sw v1,0x74(sp)
lw v1,0x74(sp)
addu s2,v0,s2
bgez v1,0x00062c48
_lw gp,0x48(sp)
b 0x00062678
_lw a1,-0x5ffc(s5)
lw v0,0xe4(sp)
lw v1,0x64(sp)
bne v0,v1,0x00062c40
_lbu v1,0xe2(sp)
li v0,0x6
bne v1,v0,0x00062c40
_lw t9,-0x703c(gp)
li a2,0x6
addiu a1,s0,0x200
jalr t9
_addiu a0,sp,0xfc
bne v0,zero,0x00062c40
_lw gp,0x48(sp)
lw t9,-0x79b4(gp)
li a1,0x35
bal 0x00066bc4
_lw a0,0x60(sp)
bne v0,zero,0x00062cac
_lw gp,0x48(sp)
lw a0,-0x7fc4(gp)
lw t9,0x50(sp)
jalr t9
_addiu a0,a0,0x6148
b 0x00062678
_lw a1,-0x5ffc(s5)
lb v1,-0x4c42(s3)
li a0,0x1
beq v1,a0,0x00062d3c
_slti a0,v1,0x2
beq a0,zero,0x00062d28
_nop
bne v1,zero,0x00062678
_lw a1,-0x5ffc(s5)
lbu v1,0x0(v0)
li v0,0x2
bne v1,v0,0x00062c40
_lw t9,-0x7980(gp)
li a1,0x36
lw a0,0x60(sp)
bal 0x00066cd4
_sw zero,0xc8(sp)
bne v0,zero,0x00063034
_lw gp,0x48(sp)
lw a0,-0x7fc4(gp)
or s4,zero,zero
lw t9,0x50(sp)
or s8,zero,zero
or s2,zero,zero
jalr t9
_addiu a0,a0,0x6170
lw v0,0xf0(sp)
lw a1,-0x5ffc(s5)
sw v0,0x54(sp)
li v0,0x1
b 0x00062678
_sb v0,-0x4c42(s3)
addiu v1,v1,-0x3
andi v1,v1,0xff
sltiu v1,v1,0x3
beq v1,zero,0x00062678
_lw a1,-0x5ffc(s5)
lbu v0,0x0(v0)
li v1,0x5
bne v0,v1,0x00062e30
_lw t9,-0x7980(gp)
li a1,0x33
bal 0x00066cd4
_lw a0,0x60(sp)
bne v0,zero,0x00062f00
_lw gp,0x48(sp)
lw a0,-0x7fc4(gp)
lw t9,0x50(sp)
jalr t9
_addiu a0,a0,0x618c
li v0,0xe10
lw gp,0x48(sp)
sw v0,0xcc(sp)
ext v0,s1,0x16,0x1
beq v0,zero,0x00062f3c
_lw a0,0xf0(sp)
lwl v0,0x22c(s0)
addiu a3,s0,0x200
lw v1,0x7c(sp)
or a2,zero,zero
lw t9,-0x797c(gp)
or a1,zero,zero
sw v1,0x14(sp)
lwr v0,0x22f(s0)
bal 0x0006654c
_sw v0,0x10(sp)
bne v0,zero,0x00062f38
_lw gp,0x48(sp)
lw a0,-0x7fc4(gp)
lw t9,0x50(sp)
jalr t9
_addiu a0,a0,0x61b8
lw gp,0x48(sp)
lw a1,0xf0(sp)
lw t9,-0x7a2c(gp)
addiu t9,t9,0xc2c
bal 0x00060c2c
_lw a0,0xc8(sp)
li v0,0x1
lb v1,-0x4c42(s3)
beq v1,v0,0x00062e00
_lw v0,0x6c(sp)
or a0,zero,zero
lw t9,0x5c(sp)
jalr t9
_addiu a1,v0,0x6008
lw t9,0x58(sp)
li a0,0x2
or s8,zero,zero
jalr t9
_or s2,zero,zero
lw s4,0xbc(sp)
sb zero,-0x4c42(s3)
sw zero,0x54(sp)
sb zero,0x24c(s0)
sb zero,0x24d(s0)
b 0x00062678
_lw a1,-0x5ffc(s5)
li v1,0x6
bne v0,v1,0x00062c40
_lw a2,0xc8(sp)
beq a2,zero,0x00062e70
_sw a2,0x68(sp)
lw t9,-0x7980(gp)
li a1,0x36
bal 0x00066cd4
_lw a0,0x60(sp)
lw gp,0x48(sp)
beq v0,zero,0x00062c40
_lw a2,0x68(sp)
lwl v1,0x0(v0)
lwr v1,0x3(v0)
bne a2,v1,0x00062c40
_sw v1,0xcc(sp)
lw a1,-0x7fc4(gp)
lw a0,-0x7fc4(gp)
lw t9,0x50(sp)
addiu a1,a1,0x6214
jalr t9
_addiu a0,a0,0x6118
lw gp,0x48(sp)
lw a0,0x60(sp)
lw t9,0x5c(sp)
lw a1,-0x7fc4(gp)
jalr t9
_addiu a1,a1,0x6220
li v0,0x1
lb v1,-0x4c42(s3)
beq v1,v0,0x00062ec0
_lw v0,0x6c(sp)
or a0,zero,zero
lw t9,0x5c(sp)
jalr t9
_addiu a1,v0,0x6008
lw t9,0x58(sp)
li a0,0x2
or s4,zero,zero
jalr t9
_or s8,zero,zero
li a0,0x3
lw gp,0x48(sp)
lw t9,-0x704c(gp)
jalr t9
_or s2,zero,zero
lw a1,-0x5ffc(s5)
sb zero,-0x4c42(s3)
sb zero,0x24c(s0)
sw zero,0x54(sp)
b 0x00062678
_sb zero,0x24d(s0)
lwl v1,0x0(v0)
lwr v1,0x3(v0)
or v0,v1,zero
sltiu v1,v1,0x7a
beq v1,zero,0x00062d7c
_sw v0,0xcc(sp)
li v0,0x7a
lw a0,0xf0(sp)
sw v0,0xcc(sp)
ext v0,s1,0x16,0x1
beq v0,zero,0x00062f40
_lw t9,-0x7028(gp)
b 0x00062d8c
_lwl v0,0x22c(s0)
lw a0,0xf0(sp)
lw t9,-0x7028(gp)
jalr t9
_nop
lw gp,0x48(sp)
or a1,v0,zero
lw s4,0xcc(sp)
lw t9,0x50(sp)
lw a0,-0x7fc4(gp)
or a2,s4,zero
jalr t9
_addiu a0,a0,0x61f0
lw v0,0xf0(sp)
lw t9,0x68(sp)
jalr t9
_sw v0,0x54(sp)
li v1,0x1
lb a0,-0x4c42(s3)
or s2,v0,zero
beq a0,v1,0x00063028
_lw gp,0x48(sp)
lw a1,-0x7fc4(gp)
addiu a1,a1,0x6108
lw a0,0x60(sp)
lw t9,0x5c(sp)
jalr t9
_srl s4,s4,0x1
lw t9,0x68(sp)
jalr t9
_nop
li v1,0x2
subu s2,v0,s2
lw t9,0x58(sp)
or a0,zero,zero
sb v1,-0x4c42(s3)
sltu v0,s4,s2
movn s4,zero,v0
jalr t9
_movn s2,zero,v0
andi v0,s1,0x100
bne v0,zero,0x00062748
_lw gp,0x48(sp)
lui v1,0x8
and v0,s1,v1
bne v0,zero,0x00063018
_lw t9,-0x7a2c(gp)
addiu t9,t9,0x7e4
bal 0x000607e4
_nop
lui v0,0xffd7
lui v1,0x8
lw a1,-0x5ffc(s5)
ori v0,v0,0xffbf
and s1,s1,v0
b 0x00062678
_or s1,s1,v1
li v0,-0x41
lw a1,-0x5ffc(s5)
b 0x00062678
_and s1,s1,v0
lw a1,-0x7fc4(gp)
b 0x00062f94
_addiu a1,a1,0x6014
lwl v1,0x0(v0)
or s4,zero,zero
lw a1,-0x5ffc(s5)
or s8,zero,zero
or s2,zero,zero
lwr v1,0x3(v0)
lw v0,0xf0(sp)
sw v1,0xc8(sp)
sw v0,0x54(sp)
li v0,0x1
b 0x00062678
_sb v0,-0x4c42(s3)
lw a0,-0x7fc4(gp)
lw t9,-0x7f64(gp)
jalr t9
_addiu a0,a0,0x3518
b 0x000626d0
_mul a2,a2,v0
li a2,0x18
lw t9,-0x73d4(gp)
li a1,0x1
jalr t9
_lw a0,0x0(v0)
lw gp,0x48(sp)
lw v1,-0x7f14(gp)
lbu v0,0x0(v1)
ori v0,v0,0x2
b 0x00062574
_sb v0,0x0(v1)
lwl a0,0x238(s0)
lw t9,-0x7978(gp)
bal 0x00066f28
_lwr a0,0x23b(s0)
bne v0,zero,0x00062538
_lw gp,0x48(sp)
lw a1,-0x7fc4(gp)
li a0,0x3d
lw t9,-0x7a2c(gp)
li a2,0x7
addiu t9,t9,0x838
bal 0x00060838
_addiu a1,a1,0x578c
li a0,0x1
lw gp,0x48(sp)
addiu v1,s0,0x200
swl v0,0x23c(s0)
swr v0,0x23f(s0)
sb a0,0x2(v0)
lwl a0,0x23c(s0)
lwl v0,0x0(v1)
lwr a0,0x23f(s0)
lwr v0,0x3(v1)
addiu s7,a0,0x3
swl v0,0x0(s7)
swr v0,0x3(s7)
lbu v0,0x4(v1)
sb v0,0x4(s7)
lbu v0,0x5(v1)
b 0x0006253c
_sb v0,0x5(s7)
sltiu a0,v0,0xff
bne a0,zero,0x000623cc
_lw t9,0x58(sp)
or a1,s6,zero
jalr t9
_or a0,s2,zero
sll v0,v0,0x1
lw gp,0x48(sp)
addu v0,s3,v0
b 0x000623cc
_lbu v0,0x1(v0)
(translation_unit "int FUN_00061fc8(int *param_1,undefined4 param_2)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}\n\n" (function_definition "int FUN_00061fc8(int *param_1,undefined4 param_2)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}" primitive_type (function_declarator "FUN_00061fc8(int *param_1,undefined4 param_2)" identifier (parameter_list "(int *param_1,undefined4 param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *local_5f0;" type_identifier (pointer_declarator "*local_5f0" * identifier) ;) (declaration "uint local_5ec;" type_identifier identifier ;) (declaration "code *local_5e8;" type_identifier (pointer_declarator "*local_5e8" * identifier) ;) (declaration "code *local_5e4;" type_identifier (pointer_declarator "*local_5e4" * identifier) ;) (declaration "int local_5dc;" primitive_type identifier ;) (declaration "int local_5d4;" primitive_type identifier ;) (declaration "int local_5d0;" primitive_type identifier ;) (declaration "code *local_5b4;" type_identifier (pointer_declarator "*local_5b4" * identifier) ;) (declaration "int local_5ac;" primitive_type identifier ;) (declaration "int local_5a8;" primitive_type identifier ;) (declaration "code *local_5a4;" type_identifier (pointer_declarator "*local_5a4" * identifier) ;) (declaration "char *local_5a0;" primitive_type (pointer_declarator "*local_5a0" * identifier) ;) (declaration "undefined4 local_59c;" type_identifier identifier ;) (declaration "undefined4 local_598;" type_identifier identifier ;) (declaration "undefined4 local_594;" type_identifier identifier ;) (declaration "uint local_590;" type_identifier identifier ;) (declaration "uint local_58c;" type_identifier identifier ;) (declaration "int local_588;" primitive_type identifier ;) (declaration "uint local_584;" type_identifier identifier ;) (declaration "uint local_580;" type_identifier identifier ;) (declaration "undefined4 local_57c;" type_identifier identifier ;) (declaration "uint local_578;" type_identifier identifier ;) (declaration "uint local_574;" type_identifier identifier ;) (declaration "undefined1 auStack_570 [14];" type_identifier (array_declarator "auStack_570 [14]" identifier [ number_literal ]) ;) (declaration "short local_562;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_560 [2];" type_identifier (array_declarator "auStack_560 [2]" identifier [ number_literal ]) ;) (declaration "char local_55e;" primitive_type identifier ;) (declaration "int local_55c;" primitive_type identifier ;) (declaration "uint local_550;" type_identifier identifier ;) (declaration "undefined1 auStack_544 [600];" type_identifier (array_declarator "auStack_544 [600]" identifier [ number_literal ]) ;) (declaration "int local_2ec;" primitive_type identifier ;) (declaration "undefined1 *local_2e8;" type_identifier (pointer_declarator "*local_2e8" * identifier) ;) (declaration "undefined *local_2e4;" type_identifier (pointer_declarator "*local_2e4" * identifier) ;) (declaration "undefined4 local_2e0;" type_identifier identifier ;) (declaration "undefined *local_2dc;" type_identifier (pointer_declarator "*local_2dc" * identifier) ;) (declaration "undefined *local_2d8;" type_identifier (pointer_declarator "*local_2d8" * identifier) ;) (declaration "int *local_2d4;" primitive_type (pointer_declarator "*local_2d4" * identifier) ;) (declaration "undefined1 auStack_2a8 [12];" type_identifier (array_declarator "auStack_2a8 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 local_29c;" type_identifier identifier ;) (declaration "undefined1 auStack_34 [16];" type_identifier (array_declarator "auStack_34 [16]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar5 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "puVar4 = PTR_FUN_0012a1c8;" (assignment_expression "puVar4 = PTR_FUN_0012a1c8" identifier = identifier) ;) (expression_statement "puVar22 = PTR_DAT_0012a178;" (assignment_expression "puVar22 = PTR_DAT_0012a178" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }" if (parenthesized_expression "((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4)" ( (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4" (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2" (cast_expression "(byte)PTR_DAT_0012a178[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR_DAT_0012a178[-0x4c42]" identifier [ number_literal ])) - number_literal) < number_literal) )) (compound_statement "{\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }" { (expression_statement "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();" (assignment_expression "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)()" identifier = (call_expression "(*(code *)PTR_inet_ntoa_0012b128)()" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" ( (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" * (cast_expression "(code *)PTR_inet_ntoa_0012b128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);" (call_expression "(*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_0012ae3c)" ( (pointer_expression "*(code *)PTR___strcpy_chk_0012ae3c" * (cast_expression "(code *)PTR___strcpy_chk_0012ae3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34,uVar6,0x10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);" (assignment_expression "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2)" identifier = (call_expression "(*(code *)PTR_inet_ntoa_0012b128)(param_2)" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" ( (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" * (cast_expression "(code *)PTR_inet_ntoa_0012b128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "unaff_s0 = auStack_2a8;" (assignment_expression "unaff_s0 = auStack_2a8" identifier = identifier) ;) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34)" ( (binary_expression "PTR_UINT_0012a18c + 0x5fcc" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "FUN_000608e4(unaff_s0,7);" (call_expression "FUN_000608e4(unaff_s0,7)" identifier (argument_list "(unaff_s0,7)" ( identifier , number_literal ))) ;) (expression_statement "local_29c = param_2;" (assignment_expression "local_29c = param_2" identifier = identifier) ;) (expression_statement "FUN_00066e38(unaff_s0,0x36,param_1);" (call_expression "FUN_00066e38(unaff_s0,0x36,param_1)" identifier (argument_list "(unaff_s0,0x36,param_1)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" ( (binary_expression "PTR_UINT_0012a18c + 0x5ec8" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + 0x1e8c" identifier + number_literal) ))) ;) (expression_statement "FUN_00060768(unaff_s0,param_2,param_1);" (call_expression "FUN_00060768(unaff_s0,param_2,param_1)" identifier (argument_list "(unaff_s0,param_2,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) })) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5ff0)" ( (binary_expression "PTR_UINT_0012a18c + 0x5ff0" identifier + number_literal) ))) ;) (expression_statement "puVar16 = PTR_UINT_0012a18c + 0x6008;" (assignment_expression "puVar16 = PTR_UINT_0012a18c + 0x6008" identifier = (binary_expression "PTR_UINT_0012a18c + 0x6008" identifier + number_literal)) ;) (expression_statement "FUN_000619d0(0,puVar16);" (call_expression "FUN_000619d0(0,puVar16)" identifier (argument_list "(0,puVar16)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00061194(0);" (call_expression "FUN_00061194(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar7 = *(int *)puVar5;" (assignment_expression "iVar7 = *(int *)puVar5" identifier = (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[-0x4c42] = 6;" (assignment_expression "puVar22[-0x4c42] = 6" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_24 == iVar7) {\n    return iVar7;\n  }" if (parenthesized_expression "(local_24 == iVar7)" ( (binary_expression "local_24 == iVar7" identifier == identifier) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "puVar24 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(puVar24 + 0xc8fdc);" (assignment_expression "piVar17 = *(int **)(puVar24 + 0xc8fdc)" identifier = (pointer_expression "*(int **)(puVar24 + 0xc8fdc)" * (cast_expression "(int **)(puVar24 + 0xc8fdc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fdc)" ( (binary_expression "puVar24 + 0xc8fdc" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar24 + 0xc801c);" (assignment_expression "iVar7 = *(int *)(puVar24 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = &local_588;" (assignment_expression "piVar23 = &local_588" identifier = (pointer_expression "&local_588" & identifier)) ;) (expression_statement "local_2d8 = puVar5;" (assignment_expression "local_2d8 = puVar5" identifier = identifier) ;) (expression_statement "local_2e4 = puVar4;" (assignment_expression "local_2e4 = puVar4" identifier = identifier) ;) (expression_statement "local_2dc = puVar22;" (assignment_expression "local_2dc = puVar22" identifier = identifier) ;) (expression_statement "iVar19 = *(int *)(puVar24 + 0xc81d4);" (assignment_expression "iVar19 = *(int *)(puVar24 + 0xc81d4)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc81d4)" * (cast_expression "(int *)(puVar24 + 0xc81d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc81d4)" ( (binary_expression "puVar24 + 0xc81d4" identifier + number_literal) ))))) ;) (expression_statement "local_2ec = *piVar17;" (assignment_expression "local_2ec = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc8178);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc8178)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8178)" * (cast_expression "(code **)(puVar24 + 0xc8178)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8178)" ( (binary_expression "puVar24 + 0xc8178" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;" (assignment_expression "*(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(iVar19 + 0x22c)" * (cast_expression "(int *)(iVar19 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x22c)" ( (binary_expression "iVar19 + 0x22c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar8 = iVar19 + 0x234U & 3;" (assignment_expression "uVar8 = iVar19 + 0x234U & 3" identifier = (binary_expression "iVar19 + 0x234U & 3" (binary_expression "iVar19 + 0x234U" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);" (assignment_expression "puVar14 = (uint *)((iVar19 + 0x234U) - uVar8)" identifier = (cast_expression "(uint *)((iVar19 + 0x234U) - uVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x234U) - uVar8)" ( (binary_expression "(iVar19 + 0x234U) - uVar8" (parenthesized_expression "(iVar19 + 0x234U)" ( (binary_expression "iVar19 + 0x234U" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;" (assignment_expression "*puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8" (pointer_expression "*puVar14" * identifier) = (binary_expression "*puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8" (binary_expression "*puVar14 & -1 << (4 - uVar8) * 8" (pointer_expression "*puVar14" * identifier) & (binary_expression "-1 << (4 - uVar8) * 8" number_literal << (binary_expression "(4 - uVar8) * 8" (parenthesized_expression "(4 - uVar8)" ( (binary_expression "4 - uVar8" number_literal - identifier) )) * number_literal))) | (binary_expression "iVar7 + 0x6024U >> uVar8 * 8" (binary_expression "iVar7 + 0x6024U" identifier + number_literal) >> (binary_expression "uVar8 * 8" identifier * number_literal)))) ;) (expression_statement "local_584 = 0x14;" (assignment_expression "local_584 = 0x14" identifier = number_literal) ;) (expression_statement "local_580 = 3;" (assignment_expression "local_580 = 3" identifier = number_literal) ;) (expression_statement "local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;" (assignment_expression "local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x601c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_57c = 3;" (assignment_expression "local_57c = 3" identifier = number_literal) ;) (expression_statement "local_58c = 0;" (assignment_expression "local_58c = 0" identifier = number_literal) ;) (expression_statement "local_588 = 0;" (assignment_expression "local_588 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = iVar19 + 0x237U & 3;" (assignment_expression "uVar8 = iVar19 + 0x237U & 3" identifier = (binary_expression "iVar19 + 0x237U & 3" (binary_expression "iVar19 + 0x237U" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);" (assignment_expression "puVar14 = (uint *)((iVar19 + 0x237U) - uVar8)" identifier = (cast_expression "(uint *)((iVar19 + 0x237U) - uVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x237U) - uVar8)" ( (binary_expression "(iVar19 + 0x237U) - uVar8" (parenthesized_expression "(iVar19 + 0x237U)" ( (binary_expression "iVar19 + 0x237U" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;" (assignment_expression "*puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8" (pointer_expression "*puVar14" * identifier) = (binary_expression "*puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8" (binary_expression "*puVar14 & 0xffffffffU >> (uVar8 + 1) * 8" (pointer_expression "*puVar14" * identifier) & (binary_expression "0xffffffffU >> (uVar8 + 1) * 8" number_literal >> (binary_expression "(uVar8 + 1) * 8" (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "iVar7 + 0x6024U << (3 - uVar8) * 8" (binary_expression "iVar7 + 0x6024U" identifier + number_literal) << (binary_expression "(3 - uVar8) * 8" (parenthesized_expression "(3 - uVar8)" ( (binary_expression "3 - uVar8" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);" (assignment_expression "local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040)" identifier = (cast_expression "(char *)(*(int *)(puVar24 + 0xc801c) + 0x6040)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc801c) + 0x6040)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6040" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_2e8 = unaff_s0;" (assignment_expression "local_2e8 = unaff_s0" identifier = identifier) ;) (expression_statement "local_2e0 = unaff_s2;" (assignment_expression "local_2e0 = unaff_s2" identifier = identifier) ;) (expression_statement "local_2d4 = unaff_s5;" (assignment_expression "local_2d4 = unaff_s5" identifier = identifier) ;) (expression_statement "uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);" (assignment_expression "uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" identifier = (call_expression "(*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" ( identifier , (binary_expression "*(int *)(puVar24 + 0xc801c) + -0x1ca0" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0xc8038) + 0x667c" (pointer_expression "*(int *)(puVar24 + 0xc8038)" * (cast_expression "(int *)(puVar24 + 0xc8038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc8038)" ( (binary_expression "puVar24 + 0xc8038" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_5a0" & identifier) , (pointer_expression "&local_59c" & identifier) , (pointer_expression "&local_59c" & identifier) , (pointer_expression "&local_598" & identifier) , (binary_expression "iVar19 + 0x22c" identifier + number_literal) , (binary_expression "iVar19 + 0x230" identifier + number_literal) , (pointer_expression "&local_594" & identifier) , (binary_expression "iVar19 + 0x234" identifier + number_literal) , (pointer_expression "&local_580" & identifier) , (pointer_expression "&local_57c" & identifier) , (pointer_expression "&local_584" & identifier) , (pointer_expression "&local_58c" & identifier) , identifier , (pointer_expression "&local_590" & identifier) )))) ;) (if_statement "if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }" if (parenthesized_expression "((uVar8 & 0xc) != 0)" ( (binary_expression "(uVar8 & 0xc) != 0" (parenthesized_expression "(uVar8 & 0xc)" ( (binary_expression "uVar8 & 0xc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }" { (expression_statement "(**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);" (call_expression "(**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8058))" ( (pointer_expression "**(code **)(puVar24 + 0xc8058)" * (pointer_expression "*(code **)(puVar24 + 0xc8058)" * (cast_expression "(code **)(puVar24 + 0xc8058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8058)" ( (binary_expression "puVar24 + 0xc8058" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6050)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6050" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar6 = FUN_00060838(0xc,local_59c,0);" (assignment_expression "uVar6 = FUN_00060838(0xc,local_59c,0)" identifier = (call_expression "FUN_00060838(0xc,local_59c,0)" identifier (argument_list "(0xc,local_59c,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar19 + 0x244) = uVar6;" (assignment_expression "*(undefined4 *)(iVar19 + 0x244) = uVar6" (pointer_expression "*(undefined4 *)(iVar19 + 0x244)" * (cast_expression "(undefined4 *)(iVar19 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x244)" ( (binary_expression "iVar19 + 0x244" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }" if (parenthesized_expression "((uVar8 & 0x10) != 0)" ( (binary_expression "(uVar8 & 0x10) != 0" (parenthesized_expression "(uVar8 & 0x10)" ( (binary_expression "uVar8 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }" { (expression_statement "iVar7 = FUN_00060838(0x51,local_598,3);" (assignment_expression "iVar7 = FUN_00060838(0x51,local_598,3)" identifier = (call_expression "FUN_00060838(0x51,local_598,3)" identifier (argument_list "(0x51,local_598,3)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(int *)(iVar19 + 0x248) = iVar7;" (assignment_expression "*(int *)(iVar19 + 0x248) = iVar7" (pointer_expression "*(int *)(iVar19 + 0x248)" * (cast_expression "(int *)(iVar19 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x248)" ( (binary_expression "iVar19 + 0x248" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar7 + 2) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + 2) = 1" (pointer_expression "*(undefined1 *)(iVar7 + 2)" * (cast_expression "(undefined1 *)(iVar7 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 2)" ( (binary_expression "iVar7 + 2" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "local_5ec = uVar8 & 0x400;" (assignment_expression "local_5ec = uVar8 & 0x400" identifier = (binary_expression "uVar8 & 0x400" identifier & number_literal)) ;) (if_statement "if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }" if (parenthesized_expression "(local_5ec != 0)" ( (binary_expression "local_5ec != 0" identifier != number_literal) )) (compound_statement "{\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }" { (expression_statement "local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);" (assignment_expression "local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8b80))(local_594)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8b80))" ( (pointer_expression "**(code **)(puVar24 + 0xc8b80)" * (pointer_expression "*(code **)(puVar24 + 0xc8b80)" * (cast_expression "(code **)(puVar24 + 0xc8b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8b80)" ( (binary_expression "puVar24 + 0xc8b80" identifier + number_literal) ))))) )) (argument_list "(local_594)" ( identifier )))) ;) })) (expression_statement "uVar10 = local_590;" (assignment_expression "uVar10 = local_590" identifier = identifier) ;) (expression_statement "uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);" (assignment_expression "uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8234))(local_590)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8234))" ( (pointer_expression "**(code **)(puVar24 + 0xc8234)" * (pointer_expression "*(code **)(puVar24 + 0xc8234)" * (cast_expression "(code **)(puVar24 + 0xc8234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8234)" ( (binary_expression "puVar24 + 0xc8234" identifier + number_literal) ))))) )) (argument_list "(local_590)" ( identifier )))) ;) (if_statement "if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }" if (parenthesized_expression "(local_58c != 0)" ( (binary_expression "local_58c != 0" identifier != number_literal) )) (compound_statement "{\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }" { (expression_statement "local_5f0 = *(code **)(puVar24 + 0xc8164);" (assignment_expression "local_5f0 = *(code **)(puVar24 + 0xc8164)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8164)" * (cast_expression "(code **)(puVar24 + 0xc8164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8164)" ( (binary_expression "puVar24 + 0xc8164" identifier + number_literal) ))))) ;) (expression_statement "local_5e4 = *(code **)(puVar24 + 0xc82c8);" (assignment_expression "local_5e4 = *(code **)(puVar24 + 0xc82c8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc82c8)" * (cast_expression "(code **)(puVar24 + 0xc82c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82c8)" ( (binary_expression "puVar24 + 0xc82c8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(code **)(puVar24 + 0xc8630);" (assignment_expression "unaff_s6 = *(code **)(puVar24 + 0xc8630)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8630)" * (cast_expression "(code **)(puVar24 + 0xc8630)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8630)" ( (binary_expression "puVar24 + 0xc8630" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8634);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8634)" identifier = (pointer_expression "*(undefined **)(puVar24 + 0xc8634)" * (cast_expression "(undefined **)(puVar24 + 0xc8634)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8634)" ( (binary_expression "puVar24 + 0xc8634" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);" (assignment_expression "unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4)" identifier = (cast_expression "(int *)**(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar24 + 0xc80a4)" * (pointer_expression "*(undefined4 **)(puVar24 + 0xc80a4)" * (cast_expression "(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80a4)" ( (binary_expression "puVar24 + 0xc80a4" identifier + number_literal) ))))))) ;) (expression_statement "local_5e8 = *(code **)(puVar24 + 0xc8644);" (assignment_expression "local_5e8 = *(code **)(puVar24 + 0xc8644)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8644)" * (cast_expression "(code **)(puVar24 + 0xc8644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8644)" ( (binary_expression "puVar24 + 0xc8644" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);" do (compound_statement "{\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    }" { (expression_statement "uVar9 = (*local_5e4)(&local_58c);" (assignment_expression "uVar9 = (*local_5e4)(&local_58c)" identifier = (call_expression "(*local_5e4)(&local_58c)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(&local_58c)" ( (pointer_expression "&local_58c" & identifier) )))) ;) (expression_statement "uVar10 = (*local_5f0)(uVar9,0,0);" (assignment_expression "uVar10 = (*local_5f0)(uVar9,0,0)" identifier = (call_expression "(*local_5f0)(uVar9,0,0)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(uVar9,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" if (parenthesized_expression "(*unaff_s5 == 0)" ( (binary_expression "*unaff_s5 == 0" (pointer_expression "*unaff_s5" * identifier) == number_literal) )) (compound_statement "{\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }" { (if_statement "if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }" if (parenthesized_expression "(0xfe < uVar10)" ( (binary_expression "0xfe < uVar10" number_literal < identifier) )) (compound_statement "{\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }" { (expression_statement "iVar7 = (*local_5e8)(uVar9,unaff_s6);" (assignment_expression "iVar7 = (*local_5e8)(uVar9,unaff_s6)" identifier = (call_expression "(*local_5e8)(uVar9,unaff_s6)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(uVar9,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];" (assignment_expression "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1]" identifier = (cast_expression "(uint)(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[iVar7 * 2 + 1]" identifier [ (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" identifier * number_literal) + number_literal) ])))) ;) })) }) (else_clause "else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" else (compound_statement "{\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" { (expression_statement "iVar7 = (*local_5e8)(uVar9,unaff_s6);" (assignment_expression "iVar7 = (*local_5e8)(uVar9,unaff_s6)" identifier = (call_expression "(*local_5e8)(uVar9,unaff_s6)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(uVar9,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];" (assignment_expression "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1]" identifier = (cast_expression "(uint)(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[iVar7 * 2 + 1]" identifier [ (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" identifier * number_literal) + number_literal) ])))) ;) }))) (expression_statement "iVar7 = iVar19 + (uVar10 >> 3);" (assignment_expression "iVar7 = iVar19 + (uVar10 >> 3)" identifier = (binary_expression "iVar19 + (uVar10 >> 3)" identifier + (parenthesized_expression "(uVar10 >> 3)" ( (binary_expression "uVar10 >> 3" identifier >> number_literal) )))) ;) (expression_statement "*(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);" (assignment_expression "*(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c)" (pointer_expression "*(byte *)(iVar7 + 0x20c)" * (cast_expression "(byte *)(iVar7 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20c)" ( (binary_expression "iVar7 + 0x20c" identifier + number_literal) )))) = (binary_expression "(byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c)" (call_expression "(byte)(1 << (uVar10 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (uVar10 & 7))" ( (binary_expression "1 << (uVar10 & 7)" number_literal << (parenthesized_expression "(uVar10 & 7)" ( (binary_expression "uVar10 & 7" identifier & number_literal) ))) ))) | (pointer_expression "*(byte *)(iVar7 + 0x20c)" * (cast_expression "(byte *)(iVar7 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20c)" ( (binary_expression "iVar7 + 0x20c" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = local_58c;" (assignment_expression "uVar10 = local_58c" identifier = identifier) ;) }) while (parenthesized_expression "(local_58c != 0)" ( (binary_expression "local_58c != 0" identifier != number_literal) )) ;) })) (expression_statement "pbVar15 = *(byte **)(puVar24 + 0xc8634);" (assignment_expression "pbVar15 = *(byte **)(puVar24 + 0xc8634)" identifier = (pointer_expression "*(byte **)(puVar24 + 0xc8634)" * (cast_expression "(byte **)(puVar24 + 0xc8634)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8634)" ( (binary_expression "puVar24 + 0xc8634" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" if (parenthesized_expression "(-1 < (int)(uVar8 << 0xe))" ( (binary_expression "-1 < (int)(uVar8 << 0xe)" number_literal < (cast_expression "(int)(uVar8 << 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 << 0xe)" ( (binary_expression "uVar8 << 0xe" identifier << number_literal) )))) )) (compound_statement "{\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" { (expression_statement "bVar2 = pbVar15[1];" (assignment_expression "bVar2 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }" { (expression_statement "uVar10 = (uint)(bVar2 >> 3);" (assignment_expression "uVar10 = (uint)(bVar2 >> 3)" identifier = (call_expression "(uint)(bVar2 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )))) ;) (if_statement "if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }" if (parenthesized_expression "((*pbVar15 & 0x10) != 0)" ( (binary_expression "(*pbVar15 & 0x10) != 0" (parenthesized_expression "(*pbVar15 & 0x10)" ( (binary_expression "*pbVar15 & 0x10" (pointer_expression "*pbVar15" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }" { (expression_statement "uVar10 = iVar19 + uVar10;" (assignment_expression "uVar10 = iVar19 + uVar10" identifier = (binary_expression "iVar19 + uVar10" identifier + identifier)) ;) (expression_statement "*(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);" (assignment_expression "*(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c)" (pointer_expression "*(byte *)(uVar10 + 0x20c)" * (cast_expression "(byte *)(uVar10 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 + 0x20c)" ( (binary_expression "uVar10 + 0x20c" identifier + number_literal) )))) = (binary_expression "(byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c)" (call_expression "(byte)(1 << (bVar2 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (bVar2 & 7))" ( (binary_expression "1 << (bVar2 & 7)" number_literal << (parenthesized_expression "(bVar2 & 7)" ( (binary_expression "bVar2 & 7" identifier & number_literal) ))) ))) | (pointer_expression "*(byte *)(uVar10 + 0x20c)" * (cast_expression "(byte *)(uVar10 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 + 0x20c)" ( (binary_expression "uVar10 + 0x20c" identifier + number_literal) )))))) ;) })) (expression_statement "pbVar1 = pbVar15 + 3;" (assignment_expression "pbVar1 = pbVar15 + 3" identifier = (binary_expression "pbVar15 + 3" identifier + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 2;" (assignment_expression "pbVar15 = pbVar15 + 2" identifier = (binary_expression "pbVar15 + 2" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar1;" (assignment_expression "bVar2 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) })) })) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc8648);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc8648)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8648)" * (cast_expression "(code **)(puVar24 + 0xc8648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8648)" ( (binary_expression "puVar24 + 0xc8648" identifier + number_literal) ))))) ;) (if_statement "if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }" if (parenthesized_expression "(local_588 != 0)" ( (binary_expression "local_588 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }" { (expression_statement "unaff_s5 = (int *)(iVar19 + 0x238);" (assignment_expression "unaff_s5 = (int *)(iVar19 + 0x238)" identifier = (cast_expression "(int *)(iVar19 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x238)" ( (binary_expression "iVar19 + 0x238" identifier + number_literal) )))) ;) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc82c8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc82c8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc82c8)" * (cast_expression "(code **)(puVar24 + 0xc82c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82c8)" ( (binary_expression "puVar24 + 0xc82c8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(code **)(puVar24 + 0xc8138);" (assignment_expression "unaff_s6 = *(code **)(puVar24 + 0xc8138)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8138)" * (cast_expression "(code **)(puVar24 + 0xc8138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8138)" ( (binary_expression "puVar24 + 0xc8138" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(puVar24 + 0xc8630);" (assignment_expression "uVar9 = *(undefined4 *)(puVar24 + 0xc8630)" identifier = (pointer_expression "*(undefined4 *)(puVar24 + 0xc8630)" * (cast_expression "(undefined4 *)(puVar24 + 0xc8630)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc8630)" ( (binary_expression "puVar24 + 0xc8630" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8634);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8634)" identifier = (pointer_expression "*(undefined **)(puVar24 + 0xc8634)" * (cast_expression "(undefined **)(puVar24 + 0xc8634)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8634)" ( (binary_expression "puVar24 + 0xc8634" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);" do (compound_statement "{\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    }" { (expression_statement "uVar11 = (*pcVar20)(piVar23);" (assignment_expression "uVar11 = (*pcVar20)(piVar23)" identifier = (call_expression "(*pcVar20)(piVar23)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(piVar23)" ( identifier )))) ;) (expression_statement "uVar10 = (*unaff_s6)(uVar11);" (assignment_expression "uVar10 = (*unaff_s6)(uVar11)" identifier = (call_expression "(*unaff_s6)(uVar11)" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) (argument_list "(uVar11)" ( identifier )))) ;) (expression_statement "(*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);" (call_expression "(*pcVar25)(uVar10,unaff_s5,puVar22,uVar9)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(uVar10,unaff_s5,puVar22,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8ff8))(uVar10);" (call_expression "(**(code **)(puVar24 + 0xc8ff8))(uVar10)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8ff8))" ( (pointer_expression "**(code **)(puVar24 + 0xc8ff8)" * (pointer_expression "*(code **)(puVar24 + 0xc8ff8)" * (cast_expression "(code **)(puVar24 + 0xc8ff8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8ff8)" ( (binary_expression "puVar24 + 0xc8ff8" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "local_5f0 = pcVar25;" (assignment_expression "local_5f0 = pcVar25" identifier = identifier) ;) }) while (parenthesized_expression "(local_588 != 0)" ( (binary_expression "local_588 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc864c);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc864c)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc864c)" * (cast_expression "(code **)(puVar24 + 0xc864c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc864c)" ( (binary_expression "puVar24 + 0xc864c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar3 = iVar19 + 0x22fU & 3" identifier = (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" identifier + number_literal) & number_literal)) ;) (expression_statement "iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);" (assignment_expression "iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" identifier = (call_expression "FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" identifier (argument_list "((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" ( (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8" (parenthesized_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8)" ( (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" ( (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar21 * 8" identifier * number_literal)) | (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar21) * 8" number_literal >> (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar3 + 1) * 8" number_literal << (binary_expression "(uVar3 + 1) * 8" (parenthesized_expression "(uVar3 + 1)" ( (binary_expression "uVar3 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar3)" * (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22fU) - uVar3)" ( (binary_expression "(iVar19 + 0x22fU) - uVar3" (parenthesized_expression "(iVar19 + 0x22fU)" ( (binary_expression "iVar19 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar3) * 8" (parenthesized_expression "(3 - uVar3)" ( (binary_expression "3 - uVar3" number_literal - identifier) )) * number_literal))) , (binary_expression "iVar19 + 0x208" identifier + number_literal) , number_literal , (binary_expression "iVar19 + 0x200" identifier + number_literal) )))) ;) (if_statement "if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }" { (expression_statement "local_5d0 = 1;" (assignment_expression "local_5d0 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000624e4;" goto statement_identifier ;) })) (if_statement "if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }" if (parenthesized_expression "(((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     )" ( (binary_expression "((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)" (parenthesized_expression "((uVar8 & 1) == 0)" ( (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0" (assignment_expression "iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d)" identifier = (call_expression "FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d)" identifier (argument_list "(*(undefined4 *)(iVar19 + 0x238),0x3d)" ( (pointer_expression "*(undefined4 *)(iVar19 + 0x238)" * (cast_expression "(undefined4 *)(iVar19 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x238)" ( (binary_expression "iVar19 + 0x238" identifier + number_literal) )))) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }" { (expression_statement "iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);" (assignment_expression "iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" identifier = (call_expression "FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" identifier (argument_list "(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x578c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "*(int *)(iVar19 + 0x23c) = iVar7;" (assignment_expression "*(int *)(iVar19 + 0x23c) = iVar7" (pointer_expression "*(int *)(iVar19 + 0x23c)" * (cast_expression "(int *)(iVar19 + 0x23c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x23c)" ( (binary_expression "iVar19 + 0x23c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar7 + 2) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + 2) = 1" (pointer_expression "*(undefined1 *)(iVar7 + 2)" * (cast_expression "(undefined1 *)(iVar7 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 2)" ( (binary_expression "iVar7 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = *(int *)(iVar19 + 0x23c);" (assignment_expression "iVar7 = *(int *)(iVar19 + 0x23c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x23c)" * (cast_expression "(int *)(iVar19 + 0x23c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x23c)" ( (binary_expression "iVar19 + 0x23c" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = (int *)(iVar7 + 3);" (assignment_expression "piVar23 = (int *)(iVar7 + 3)" identifier = (cast_expression "(int *)(iVar7 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 3)" ( (binary_expression "iVar7 + 3" identifier + number_literal) )))) ;) (expression_statement "*piVar23 = *(int *)(iVar19 + 0x200);" (assignment_expression "*piVar23 = *(int *)(iVar19 + 0x200)" (pointer_expression "*piVar23" * identifier) = (pointer_expression "*(int *)(iVar19 + 0x200)" * (cast_expression "(int *)(iVar19 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x200)" ( (binary_expression "iVar19 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);" (assignment_expression "*(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204)" (pointer_expression "*(undefined1 *)(iVar7 + 7)" * (cast_expression "(undefined1 *)(iVar7 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 7)" ( (binary_expression "iVar7 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x204)" * (cast_expression "(undefined1 *)(iVar19 + 0x204)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x204)" ( (binary_expression "iVar19 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);" (assignment_expression "*(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205)" (pointer_expression "*(undefined1 *)(iVar7 + 8)" * (cast_expression "(undefined1 *)(iVar7 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x205)" * (cast_expression "(undefined1 *)(iVar19 + 0x205)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x205)" ( (binary_expression "iVar19 + 0x205" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    piVar23 = (int *)0x0;\n  }" else (compound_statement "{\n    piVar23 = (int *)0x0;\n  }" { (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }" if (parenthesized_expression "(*local_5a0 != '\0')" ( (binary_expression "*local_5a0 != '\0'" (pointer_expression "*local_5a0" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }" { (expression_statement "uVar9 = FUN_00060838(0x3c,local_5a0,0);" (assignment_expression "uVar9 = FUN_00060838(0x3c,local_5a0,0)" identifier = (call_expression "FUN_00060838(0x3c,local_5a0,0)" identifier (argument_list "(0x3c,local_5a0,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar19 + 0x240) = uVar9;" (assignment_expression "*(undefined4 *)(iVar19 + 0x240) = uVar9" (pointer_expression "*(undefined4 *)(iVar19 + 0x240)" * (cast_expression "(undefined4 *)(iVar19 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x240)" ( (binary_expression "iVar19 + 0x240" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }" if (parenthesized_expression "((uVar8 & 0x4000) != 0)" ( (binary_expression "(uVar8 & 0x4000) != 0" (parenthesized_expression "(uVar8 & 0x4000)" ( (binary_expression "uVar8 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }" { (expression_statement "(**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);" (call_expression "(**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8c0c))" ( (pointer_expression "**(code **)(puVar24 + 0xc8c0c)" * (pointer_expression "*(code **)(puVar24 + 0xc8c0c)" * (cast_expression "(code **)(puVar24 + 0xc8c0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8c0c)" ( (binary_expression "puVar24 + 0xc8c0c" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar24 + 0xc803c),1,0x18)" ( (pointer_expression "**(undefined4 **)(puVar24 + 0xc803c)" * (pointer_expression "*(undefined4 **)(puVar24 + 0xc803c)" * (cast_expression "(undefined4 **)(puVar24 + 0xc803c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc803c)" ( (binary_expression "puVar24 + 0xc803c" identifier + number_literal) ))))) , number_literal , number_literal ))) ;) (expression_statement "**(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;" (assignment_expression "**(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar24 + 0xc80cc)" * (pointer_expression "*(byte **)(puVar24 + 0xc80cc)" * (cast_expression "(byte **)(puVar24 + 0xc80cc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80cc)" ( (binary_expression "puVar24 + 0xc80cc" identifier + number_literal) ))))) = (binary_expression "**(byte **)(puVar24 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar24 + 0xc80cc)" * (pointer_expression "*(byte **)(puVar24 + 0xc80cc)" * (cast_expression "(byte **)(puVar24 + 0xc80cc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80cc)" ( (binary_expression "puVar24 + 0xc80cc" identifier + number_literal) ))))) | number_literal)) ;) })) (expression_statement "local_5f0 = *(code **)(puVar24 + 0xc8058);" (assignment_expression "local_5f0 = *(code **)(puVar24 + 0xc8058)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8058)" * (cast_expression "(code **)(puVar24 + 0xc8058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8058)" ( (binary_expression "puVar24 + 0xc8058" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (code *)auStack_570;" (assignment_expression "unaff_s6 = (code *)auStack_570" identifier = (cast_expression "(code *)auStack_570" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_5d4 = *(int *)(puVar24 + 0xc801c);" (assignment_expression "local_5d4 = *(int *)(puVar24 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8510))();" (call_expression "(**(code **)(puVar24 + 0xc8510))()" (parenthesized_expression "(**(code **)(puVar24 + 0xc8510))" ( (pointer_expression "**(code **)(puVar24 + 0xc8510)" * (pointer_expression "*(code **)(puVar24 + 0xc8510)" * (cast_expression "(code **)(puVar24 + 0xc8510)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8510)" ( (binary_expression "puVar24 + 0xc8510" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_5b4 = *(code **)(puVar24 + 0xc8650);" (assignment_expression "local_5b4 = *(code **)(puVar24 + 0xc8650)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8650)" * (cast_expression "(code **)(puVar24 + 0xc8650)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8650)" ( (binary_expression "puVar24 + 0xc8650" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8008);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8008)" identifier = (pointer_expression "*(undefined **)(puVar24 + 0xc8008)" * (cast_expression "(undefined **)(puVar24 + 0xc8008)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8008)" ( (binary_expression "puVar24 + 0xc8008" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = *(int **)(puVar24 + 0xc8008);" (assignment_expression "unaff_s5 = *(int **)(puVar24 + 0xc8008)" identifier = (pointer_expression "*(int **)(puVar24 + 0xc8008)" * (cast_expression "(int **)(puVar24 + 0xc8008)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8008)" ( (binary_expression "puVar24 + 0xc8008" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));" (call_expression "(**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230))" (parenthesized_expression "(**(code **)(puVar24 + 0xc82ac))" ( (pointer_expression "**(code **)(puVar24 + 0xc82ac)" * (pointer_expression "*(code **)(puVar24 + 0xc82ac)" * (cast_expression "(code **)(puVar24 + 0xc82ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82ac)" ( (binary_expression "puVar24 + 0xc82ac" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar19 + 0x230))" ( (pointer_expression "*(undefined4 *)(iVar19 + 0x230)" * (cast_expression "(undefined4 *)(iVar19 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x230)" ( (binary_expression "iVar19 + 0x230" identifier + number_literal) )))) ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "local_5ac = *(int *)(puVar24 + 0xc801c);" (assignment_expression "local_5ac = *(int *)(puVar24 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6084)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6084" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_00066068();" (call_expression "FUN_00066068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8128))();" (call_expression "(**(code **)(puVar24 + 0xc8128))()" (parenthesized_expression "(**(code **)(puVar24 + 0xc8128))" ( (pointer_expression "**(code **)(puVar24 + 0xc8128)" * (pointer_expression "*(code **)(puVar24 + 0xc8128)" * (cast_expression "(code **)(puVar24 + 0xc8128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8128)" ( (binary_expression "puVar24 + 0xc8128" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8df8))(extraout_v1);" (call_expression "(**(code **)(puVar24 + 0xc8df8))(extraout_v1)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8df8))" ( (pointer_expression "**(code **)(puVar24 + 0xc8df8)" * (pointer_expression "*(code **)(puVar24 + 0xc8df8)" * (cast_expression "(code **)(puVar24 + 0xc8df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8df8)" ( (binary_expression "puVar24 + 0xc8df8" identifier + number_literal) ))))) )) (argument_list "(extraout_v1)" ( identifier ))) ;) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);" (assignment_expression "local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" identifier = (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" ( (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x19d0" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" * (cast_expression "(int *)(puVar24 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc85b4)" ( (binary_expression "puVar24 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_000619d0(0,local_5d4 + 0x6008);" (call_expression "FUN_000619d0(0,local_5d4 + 0x6008)" identifier (argument_list "(0,local_5d4 + 0x6008)" ( number_literal , (binary_expression "local_5d4 + 0x6008" identifier + number_literal) ))) ;) (expression_statement "local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);" (assignment_expression "local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194)" identifier = (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x1194)" ( (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x1194" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" * (cast_expression "(int *)(puVar24 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc85b4)" ( (binary_expression "puVar24 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00061194(2);" (call_expression "FUN_00061194(2)" identifier (argument_list "(2)" ( number_literal ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;" (assignment_expression "local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x623c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);" (assignment_expression "local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" identifier = (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" ( (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x1fc8" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" * (cast_expression "(int *)(puVar24 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc85b4)" ( (binary_expression "puVar24 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_5d0 = 0;" (assignment_expression "local_5d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00062678:\n  iVar18 = uVar10 - uVar21;" statement_identifier : (expression_statement "iVar18 = uVar10 - uVar21;" (assignment_expression "iVar18 = uVar10 - uVar21" identifier = (binary_expression "uVar10 - uVar21" identifier - identifier)) ;)) (expression_statement "pcVar20 = unaff_s6;" (assignment_expression "pcVar20 = unaff_s6" identifier = identifier) ;) (expression_statement "(*local_5b4)(unaff_s6,iVar7);" (call_expression "(*local_5b4)(unaff_s6,iVar7)" (parenthesized_expression "(*local_5b4)" ( (pointer_expression "*local_5b4" * identifier) )) (argument_list "(unaff_s6,iVar7)" ( identifier , identifier ))) ;) (if_statement "if (0 < iVar18) goto code_r0x00062698;" if (parenthesized_expression "(0 < iVar18)" ( (binary_expression "0 < iVar18" number_literal < identifier) )) (goto_statement "goto code_r0x00062698;" goto statement_identifier ;)) (goto_statement "goto LAB_00062724;" goto statement_identifier ;) (labeled_statement "code_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);" statement_identifier : (expression_statement "pcVar26 = *(code **)(puVar24 + 0xc8618);" (assignment_expression "pcVar26 = *(code **)(puVar24 + 0xc8618)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8618)" * (cast_expression "(code **)(puVar24 + 0xc8618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8618)" ( (binary_expression "puVar24 + 0xc8618" identifier + number_literal) ))))) ;)) (expression_statement "iVar12 = (*pcVar26)();" (assignment_expression "iVar12 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = 1000;" (assignment_expression "iVar7 = 1000" identifier = number_literal) ;) (if_statement "if (iVar18 < 0x20c49b) goto LAB_00063074;" if (parenthesized_expression "(iVar18 < 0x20c49b)" ( (binary_expression "iVar18 < 0x20c49b" identifier < number_literal) )) (goto_statement "goto LAB_00063074;" goto statement_identifier ;)) (expression_statement "iVar18 = 0x7fffffff;" (assignment_expression "iVar18 = 0x7fffffff" identifier = number_literal) ;) (while_statement "while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }" while (parenthesized_expression "(pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)" ( (comma_expression "pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0" (assignment_expression "pcVar20 = unaff_s6" identifier = identifier) , (comma_expression "iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8ed4))" ( (pointer_expression "**(code **)(puVar24 + 0xc8ed4)" * (pointer_expression "*(code **)(puVar24 + 0xc8ed4)" * (cast_expression "(code **)(puVar24 + 0xc8ed4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8ed4)" ( (binary_expression "puVar24 + 0xc8ed4" identifier + number_literal) ))))) )) (argument_list "(unaff_s6,2,iVar18)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 < 0" identifier < number_literal))) )) (compound_statement "{\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }" { (if_statement "if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }" if (parenthesized_expression "(*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4)" ( (binary_expression "*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4" (pointer_expression "*(int *)**(undefined4 **)(puVar24 + 0xc80a4)" * (cast_expression "(int *)**(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar24 + 0xc80a4)" * (pointer_expression "*(undefined4 **)(puVar24 + 0xc80a4)" * (cast_expression "(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80a4)" ( (binary_expression "puVar24 + 0xc80a4" identifier + number_literal) ))))))) == number_literal) )) (compound_statement "{\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }" { (expression_statement "iVar18 = (*pcVar26)();" (assignment_expression "iVar18 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = iVar18 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar18 + (uVar21 - iVar12)" identifier = (binary_expression "iVar18 + (uVar21 - iVar12)" identifier + (parenthesized_expression "(uVar21 - iVar12)" ( (binary_expression "uVar21 - iVar12" identifier - identifier) )))) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518)" identifier = (call_expression "(**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518)" (parenthesized_expression "(**(code **)(puVar24 + 0xc807c))" ( (pointer_expression "**(code **)(puVar24 + 0xc807c)" * (pointer_expression "*(code **)(puVar24 + 0xc807c)" * (cast_expression "(code **)(puVar24 + 0xc807c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc807c)" ( (binary_expression "puVar24 + 0xc807c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x3518)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x3518" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00063074:\n    iVar18 = iVar18 * iVar7;" statement_identifier : (expression_statement "iVar18 = iVar18 * iVar7;" (assignment_expression "iVar18 = iVar18 * iVar7" identifier = (binary_expression "iVar18 * iVar7" identifier * identifier)) ;)) })) (if_statement "if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" { (labeled_statement "LAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;" statement_identifier : (expression_statement "uVar10 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar10 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;)) (expression_statement "uVar21 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22fU & 3" identifier = (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" identifier + number_literal) & number_literal)) ;) (expression_statement "iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);" (assignment_expression "iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" identifier = (call_expression "(*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" ( (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8" (parenthesized_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8)" ( (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar10)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar10)" ( (binary_expression "(iVar19 + 0x22cU) - uVar10" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar10 * 8" identifier * number_literal)) | (binary_expression "(uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8" (cast_expression "(uint)pcVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar10) * 8" number_literal >> (binary_expression "(4 - uVar10) * 8" (parenthesized_expression "(4 - uVar10)" ( (binary_expression "4 - uVar10" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar21 + 1) * 8" number_literal << (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar21)" * (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22fU) - uVar21)" ( (binary_expression "(iVar19 + 0x22fU) - uVar21" (parenthesized_expression "(iVar19 + 0x22fU)" ( (binary_expression "iVar19 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal))) , (binary_expression "iVar19 + 0x208" identifier + number_literal) , number_literal , (binary_expression "iVar19 + 0x200" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }" { (if_statement "if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }" { (expression_statement "*piVar23 = *(int *)(iVar19 + 0x200);" (assignment_expression "*piVar23 = *(int *)(iVar19 + 0x200)" (pointer_expression "*piVar23" * identifier) = (pointer_expression "*(int *)(iVar19 + 0x200)" * (cast_expression "(int *)(iVar19 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x200)" ( (binary_expression "iVar19 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);" (assignment_expression "*(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204)" (pointer_expression "*(undefined1 *)(piVar23 + 1)" * (cast_expression "(undefined1 *)(piVar23 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 1)" ( (binary_expression "piVar23 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x204)" * (cast_expression "(undefined1 *)(iVar19 + 0x204)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x204)" ( (binary_expression "iVar19 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);" (assignment_expression "*(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205)" (pointer_expression "*(undefined1 *)((int)piVar23 + 5)" * (cast_expression "(undefined1 *)((int)piVar23 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 5)" ( (binary_expression "(int)piVar23 + 5" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x205)" * (cast_expression "(undefined1 *)(iVar19 + 0x205)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x205)" ( (binary_expression "iVar19 + 0x205" identifier + number_literal) ))))) ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if ((byte)puVar22[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }" if (parenthesized_expression "((byte)puVar22[-0x4c42] < 6)" ( (binary_expression "(byte)puVar22[-0x4c42] < 6" (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }" { comment comment (expression_statement "iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();" (assignment_expression "iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))()" identifier = (call_expression "(*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))()" (parenthesized_expression "(*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))" ( (pointer_expression "*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" * (cast_expression "(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (binary_expression "puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" * (cast_expression "(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4" (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6224" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) + (binary_expression "(uint)(byte)puVar22[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar22[-0x4c42]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]))) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar7;" return identifier ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0x7fffffff;" (assignment_expression "uVar10 = 0x7fffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto joined_r0x00062be8;" goto statement_identifier ;) })) (expression_statement "iVar7 = FUN_0006618c();" (assignment_expression "iVar7 = FUN_0006618c()" identifier = (call_expression "FUN_0006618c()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar7 == 0x10)" ( (binary_expression "iVar7 == 0x10" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }" { (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" * (cast_expression "(undefined1 *)(iVar19 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24c)" ( (binary_expression "iVar19 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" * (cast_expression "(undefined1 *)(iVar19 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24d)" ( (binary_expression "iVar19 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*local_5f0)(local_5ac + 0x60f8);" (call_expression "(*local_5f0)(local_5ac + 0x60f8)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(local_5ac + 0x60f8)" ( (binary_expression "local_5ac + 0x60f8" identifier + number_literal) ))) ;) (if_statement "if ((byte)puVar22[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }" if (parenthesized_expression "((byte)puVar22[-0x4c42] < 7)" ( (binary_expression "(byte)puVar22[-0x4c42] < 7" (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }" { comment comment (expression_statement "iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();" (assignment_expression "iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )()" identifier = (call_expression "(*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )()" (parenthesized_expression "(*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )" ( (pointer_expression "*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" * (cast_expression "(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (binary_expression "puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" identifier + (pointer_expression "*(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" * (cast_expression "(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" ( (binary_expression "local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4" identifier + (binary_expression "(uint)(byte)puVar22[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar22[-0x4c42]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]))) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar7;" return identifier ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar7 == 0x11)" ( (binary_expression "iVar7 == 0x11" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "uVar10 = 0x7fffffff;" (assignment_expression "uVar10 = 0x7fffffff" identifier = number_literal) ;) (expression_statement "(*local_5a4)(local_578,local_5ec);" (call_expression "(*local_5a4)(local_578,local_5ec)" (parenthesized_expression "(*local_5a4)" ( (pointer_expression "*local_5a4" * identifier) )) (argument_list "(local_578,local_5ec)" ( identifier , identifier ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" if (parenthesized_expression "(iVar7 == 0xf)" ( (binary_expression "iVar7 == 0xf" identifier == number_literal) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6110" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto joined_r0x00062be8;" goto statement_identifier ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (local_562 == 0) goto LAB_00062678;" if (parenthesized_expression "(local_562 == 0)" ( (binary_expression "local_562 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(puVar24 + 0xc8008);" (assignment_expression "iVar7 = *(int *)(puVar24 + 0xc8008)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc8008)" * (cast_expression "(int *)(puVar24 + 0xc8008)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc8008)" ( (binary_expression "puVar24 + 0xc8008" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" if (parenthesized_expression "(*(char *)(iVar7 + -0x4c41) == '\x01')" ( (binary_expression "*(char *)(iVar7 + -0x4c41) == '\x01'" (pointer_expression "*(char *)(iVar7 + -0x4c41)" * (cast_expression "(char *)(iVar7 + -0x4c41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4c41)" ( (binary_expression "iVar7 + -0x4c41" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    iVar18 = FUN_00065a28(auStack_560);\n  }" { (expression_statement "iVar18 = FUN_00065a28(auStack_560);" (assignment_expression "iVar18 = FUN_00065a28(auStack_560)" identifier = (call_expression "FUN_00065a28(auStack_560)" identifier (argument_list "(auStack_560)" ( identifier )))) ;) }) (else_clause "else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" else (compound_statement "{\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" { (expression_statement "iVar18 = FUN_00060ea8(auStack_560);" (assignment_expression "iVar18 = FUN_00060ea8(auStack_560)" identifier = (call_expression "FUN_00060ea8(auStack_560)" identifier (argument_list "(auStack_560)" ( identifier )))) ;) }))) (if_statement "if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar18 == -1)" ( (binary_expression "iVar18 == -1" identifier == number_literal) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6124)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6124" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8f94))(local_580);" (call_expression "(**(code **)(puVar24 + 0xc8f94))(local_580)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f94))" ( (pointer_expression "**(code **)(puVar24 + 0xc8f94)" * (pointer_expression "*(code **)(puVar24 + 0xc8f94)" * (cast_expression "(code **)(puVar24 + 0xc8f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f94)" ( (binary_expression "puVar24 + 0xc8f94" identifier + number_literal) ))))) )) (argument_list "(local_580)" ( identifier ))) ;) (expression_statement "(*local_5e8)((int)*(char *)(iVar7 + -0x4c41));" (call_expression "(*local_5e8)((int)*(char *)(iVar7 + -0x4c41))" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "((int)*(char *)(iVar7 + -0x4c41))" ( (cast_expression "(int)*(char *)(iVar7 + -0x4c41)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar7 + -0x4c41)" * (cast_expression "(char *)(iVar7 + -0x4c41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4c41)" ( (binary_expression "iVar7 + -0x4c41" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = iVar7 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar7 + (uVar21 - iVar12)" identifier = (binary_expression "iVar7 + (uVar21 - iVar12)" identifier + (parenthesized_expression "(uVar21 - iVar12)" ( (binary_expression "uVar21 - iVar12" identifier - identifier) )))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = iVar7 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar7 + (uVar21 - iVar12)" identifier = (binary_expression "iVar7 + (uVar21 - iVar12)" identifier + (parenthesized_expression "(uVar21 - iVar12)" ( (binary_expression "uVar21 - iVar12" identifier - identifier) )))) ;) (if_statement "if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0))" ( (binary_expression "(((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)" (parenthesized_expression "(((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06'))" ( (binary_expression "((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')" (parenthesized_expression "((iVar18 < 0) || (local_55c != local_5dc))" ( (binary_expression "(iVar18 < 0) || (local_55c != local_5dc)" (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) || (parenthesized_expression "(local_55c != local_5dc)" ( (binary_expression "local_55c != local_5dc" identifier != identifier) ))) )) || (parenthesized_expression "(local_55e != '\x06')" ( (binary_expression "local_55e != '\x06'" identifier != (char_literal "'\x06'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8fa4))" ( (pointer_expression "**(code **)(puVar24 + 0xc8fa4)" * (pointer_expression "*(code **)(puVar24 + 0xc8fa4)" * (cast_expression "(code **)(puVar24 + 0xc8fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fa4)" ( (binary_expression "puVar24 + 0xc8fa4" identifier + number_literal) ))))) )) (argument_list "(auStack_544,iVar19 + 0x200,6)" ( identifier , (binary_expression "iVar19 + 0x200" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (labeled_statement "LAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];" statement_identifier : (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);" (assignment_expression "pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35)" identifier = (cast_expression "(char *)FUN_00066bc4(auStack_560,0x35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066bc4(auStack_560,0x35)" identifier (argument_list "(auStack_560,0x35)" ( identifier , number_literal ))))) ;) (expression_statement "uVar3 = local_578;" (assignment_expression "uVar3 = local_578" identifier = identifier) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6148)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6148" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar18 = (int)(char)puVar22[-0x4c42];" (assignment_expression "iVar18 = (int)(char)puVar22[-0x4c42]" identifier = (cast_expression "(int)(char)puVar22[-0x4c42]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar22[-0x4c42]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ])))) ;) (if_statement "if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar18 != 1)" ( (binary_expression "iVar18 != 1" identifier != number_literal) )) (compound_statement "{\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }" { (if_statement "if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" if (parenthesized_expression "(iVar18 < 2)" ( (binary_expression "iVar18 < 2" identifier < number_literal) )) (compound_statement "{\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" { (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (iVar18 != 0) goto LAB_00062678;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) (if_statement "if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" if (parenthesized_expression "(*pcVar13 == '\x02')" ( (binary_expression "*pcVar13 == '\x02'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" { (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36)" identifier = (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066cd4(auStack_560,0x36)" identifier (argument_list "(auStack_560,0x36)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" if (parenthesized_expression "(puVar14 == (uint *)0x0)" ( (binary_expression "puVar14 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6170)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6170" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" identifier = identifier) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "puVar22[-0x4c42] = 1;" (assignment_expression "puVar22[-0x4c42] = 1" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" else (compound_statement "{\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" { (expression_statement "local_578 = *puVar14;" (assignment_expression "local_578 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" identifier = identifier) ;) (expression_statement "puVar22[-0x4c42] = 1;" (assignment_expression "puVar22[-0x4c42] = 1" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) }))) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto LAB_00062c40;" goto statement_identifier ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;" if (parenthesized_expression "(2 < (iVar18 - 3U & 0xff))" ( (binary_expression "2 < (iVar18 - 3U & 0xff)" number_literal < (parenthesized_expression "(iVar18 - 3U & 0xff)" ( (binary_expression "iVar18 - 3U & 0xff" (binary_expression "iVar18 - 3U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) })) (if_statement "if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" if (parenthesized_expression "(*pcVar13 != '\x05')" ( (binary_expression "*pcVar13 != '\x05'" (pointer_expression "*pcVar13" * identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" { (if_statement "if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" if (parenthesized_expression "((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))))))" ( (binary_expression "(*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))" (parenthesized_expression "(*pcVar13 == '\x06')" ( (binary_expression "*pcVar13 == '\x06'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) && (parenthesized_expression "((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))" ( (parenthesized_expression "(local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))))" ( (binary_expression "local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))" (binary_expression "local_578 == 0" identifier == number_literal) || (parenthesized_expression "((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))" ( (parenthesized_expression "(puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))" ( (comma_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36)" identifier = (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066cd4(auStack_560,0x36)" identifier (argument_list "(auStack_560,0x36)" ( identifier , number_literal ))))) , (binary_expression "puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)" (binary_expression "puVar14 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_574 = *puVar14, uVar3 == local_574)" ( (comma_expression "local_574 = *puVar14, uVar3 == local_574" (assignment_expression "local_574 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) , (binary_expression "uVar3 == local_574" identifier == identifier)) )))) )) ))) )) ))) )) (compound_statement "{\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6214" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);" (call_expression "(*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220)" ( identifier , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6220" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }" if (parenthesized_expression "(puVar22[-0x4c42] != '\x01')" ( (binary_expression "puVar22[-0x4c42] != '\x01'" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }" { (expression_statement "(*local_5e4)(0,local_5d4 + 0x6008);" (call_expression "(*local_5e4)(0,local_5d4 + 0x6008)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(0,local_5d4 + 0x6008)" ( number_literal , (binary_expression "local_5d4 + 0x6008" identifier + number_literal) ))) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "(*local_5e8)(2);" (call_expression "(*local_5e8)(2)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(2)" ( number_literal ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar24 + 0xc8f94))(3);" (call_expression "(**(code **)(puVar24 + 0xc8f94))(3)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f94))" ( (pointer_expression "**(code **)(puVar24 + 0xc8f94)" * (pointer_expression "*(code **)(puVar24 + 0xc8f94)" * (cast_expression "(code **)(puVar24 + 0xc8f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f94)" ( (binary_expression "puVar24 + 0xc8f94" identifier + number_literal) ))))) )) (argument_list "(3)" ( number_literal ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" * (cast_expression "(undefined1 *)(iVar19 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24c)" ( (binary_expression "iVar19 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5ec = 0;" (assignment_expression "local_5ec = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" * (cast_expression "(undefined1 *)(iVar19 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24d)" ( (binary_expression "iVar19 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto LAB_00062c40;" goto statement_identifier ;) })) (expression_statement "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33)" identifier = (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x33)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066cd4(auStack_560,0x33)" identifier (argument_list "(auStack_560,0x33)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" if (parenthesized_expression "(puVar14 == (uint *)0x0)" ( (binary_expression "puVar14 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x618c)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x618c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "local_574 = 0xe10;" (assignment_expression "local_574 = 0xe10" identifier = number_literal) ;) (labeled_statement "LAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);" statement_identifier : (expression_statement "uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (assignment_expression "uVar10 = -((int)(uVar8 << 9) >> 0x1f)" identifier = (unary_expression "-((int)(uVar8 << 9) >> 0x1f)" - (parenthesized_expression "((int)(uVar8 << 9) >> 0x1f)" ( (binary_expression "(int)(uVar8 << 9) >> 0x1f" (cast_expression "(int)(uVar8 << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 << 9)" ( (binary_expression "uVar8 << 9" identifier << number_literal) ))) >> number_literal) )))) ;)) (if_statement "if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }" { (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;" (assignment_expression "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier = (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" ( (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar21 * 8" identifier * number_literal)) | (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar21) * 8" number_literal >> (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))))) ;) (labeled_statement "LAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;" statement_identifier : (expression_statement "uVar21 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22fU & 3" identifier = (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" identifier + number_literal) & number_literal)) ;)) (expression_statement "iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);" (assignment_expression "iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" identifier = (call_expression "FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" identifier (argument_list "(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" ( identifier , number_literal , number_literal , (binary_expression "iVar19 + 0x200" identifier + number_literal) , (binary_expression "uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (binary_expression "uVar10 & -1 << (uVar21 + 1) * 8" identifier & (binary_expression "-1 << (uVar21 + 1) * 8" number_literal << (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar21)" * (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22fU) - uVar21)" ( (binary_expression "(iVar19 + 0x22fU) - uVar21" (parenthesized_expression "(iVar19 + 0x22fU)" ( (binary_expression "iVar19 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal))) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x61b8)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x61b8" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_00060c2c(local_578,local_550);" (call_expression "FUN_00060c2c(local_578,local_550)" identifier (argument_list "(local_578,local_550)" ( identifier , identifier ))) ;) (if_statement "if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }" if (parenthesized_expression "(puVar22[-0x4c42] != '\x01')" ( (binary_expression "puVar22[-0x4c42] != '\x01'" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }" { (expression_statement "(*local_5e4)(0,local_5d4 + 0x6008);" (call_expression "(*local_5e4)(0,local_5d4 + 0x6008)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(0,local_5d4 + 0x6008)" ( number_literal , (binary_expression "local_5d4 + 0x6008" identifier + number_literal) ))) ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(*local_5e8)(2);" (call_expression "(*local_5e8)(2)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(2)" ( number_literal ))) ;) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_5ec = 0;" (assignment_expression "local_5ec = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" * (cast_expression "(undefined1 *)(iVar19 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24c)" ( (binary_expression "iVar19 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" * (cast_expression "(undefined1 *)(iVar19 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24d)" ( (binary_expression "iVar19 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = local_584;" (assignment_expression "uVar10 = local_584" identifier = identifier) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) })) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8fb8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8fb8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8fb8)" * (cast_expression "(code **)(puVar24 + 0xc8fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fb8)" ( (binary_expression "puVar24 + 0xc8fb8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" else (compound_statement "{\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" { (expression_statement "local_574 = *puVar14;" (assignment_expression "local_574 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (0x79 < local_574) goto LAB_00062d7c;" if (parenthesized_expression "(0x79 < local_574)" ( (binary_expression "0x79 < local_574" number_literal < identifier) )) (goto_statement "goto LAB_00062d7c;" goto statement_identifier ;)) (expression_statement "local_574 = 0x7a;" (assignment_expression "local_574 = 0x7a" identifier = number_literal) ;) (expression_statement "uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (assignment_expression "uVar10 = -((int)(uVar8 << 9) >> 0x1f)" identifier = (unary_expression "-((int)(uVar8 << 9) >> 0x1f)" - (parenthesized_expression "((int)(uVar8 << 9) >> 0x1f)" ( (binary_expression "(int)(uVar8 << 9) >> 0x1f" (cast_expression "(int)(uVar8 << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 << 9)" ( (binary_expression "uVar8 << 9" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8fb8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8fb8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8fb8)" * (cast_expression "(code **)(puVar24 + 0xc8fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fb8)" ( (binary_expression "puVar24 + 0xc8fb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }" { (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;" (assignment_expression "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier = (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" ( (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar21 * 8" identifier * number_literal)) | (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar21) * 8" number_literal >> (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))))) ;) (goto_statement "goto LAB_00062d8c;" goto statement_identifier ;) })) }))) (expression_statement "uVar9 = (*pcVar20)(local_550);" (assignment_expression "uVar9 = (*pcVar20)(local_550)" identifier = (call_expression "(*pcVar20)(local_550)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(local_550)" ( identifier )))) ;) (expression_statement "uVar10 = local_574;" (assignment_expression "uVar10 = local_574" identifier = identifier) ;) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x61f0" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" identifier = identifier) ;) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" if (parenthesized_expression "(puVar22[-0x4c42] == '\x01')" ( (binary_expression "puVar22[-0x4c42] == '\x01'" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }" { (expression_statement "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;" (assignment_expression "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6014" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" else (compound_statement "{\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" { (expression_statement "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;" (assignment_expression "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6108" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar10 = uVar10 >> 1;" (assignment_expression "uVar10 = uVar10 >> 1" identifier = (binary_expression "uVar10 >> 1" identifier >> number_literal)) ;) (expression_statement "(*local_5e4)(auStack_560,iVar18);" (call_expression "(*local_5e4)(auStack_560,iVar18)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(auStack_560,iVar18)" ( identifier , identifier ))) ;) (expression_statement "iVar18 = (*pcVar26)();" (assignment_expression "iVar18 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = iVar18 - iVar7;" (assignment_expression "uVar21 = iVar18 - iVar7" identifier = (binary_expression "iVar18 - iVar7" identifier - identifier)) ;) (expression_statement "puVar22[-0x4c42] = 2;" (assignment_expression "puVar22[-0x4c42] = 2" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }" if (parenthesized_expression "(uVar10 < uVar21)" ( (binary_expression "uVar10 < uVar21" identifier < identifier) )) (compound_statement "{\n    uVar10 = 0;\n    uVar21 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (expression_statement "(*local_5e8)(0);" (call_expression "(*local_5e8)(0)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" if (parenthesized_expression "((uVar8 & 0x100) == 0)" ( (binary_expression "(uVar8 & 0x100) == 0" (parenthesized_expression "(uVar8 & 0x100)" ( (binary_expression "uVar8 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" { (if_statement "if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" if (parenthesized_expression "((uVar8 & 0x80000) == 0)" ( (binary_expression "(uVar8 & 0x80000) == 0" (parenthesized_expression "(uVar8 & 0x80000)" ( (binary_expression "uVar8 & 0x80000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }" { (expression_statement "FUN_000607e4();" (call_expression "FUN_000607e4()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar8 & 0xffd7ffbf | 0x80000;" (assignment_expression "uVar8 = uVar8 & 0xffd7ffbf | 0x80000" identifier = (binary_expression "uVar8 & 0xffd7ffbf | 0x80000" (binary_expression "uVar8 & 0xffd7ffbf" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" else (compound_statement "{\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" { (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar8 & 0xffffffbf;" (assignment_expression "uVar8 = uVar8 & 0xffffffbf" identifier = (binary_expression "uVar8 & 0xffffffbf" identifier & number_literal)) ;) }))) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }" statement_identifier : (if_statement "if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }" if (parenthesized_expression "((uVar8 & 0x200) != 0)" ( (binary_expression "(uVar8 & 0x200) != 0" (parenthesized_expression "(uVar8 & 0x200)" ( (binary_expression "uVar8 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    FUN_00061fc8(local_578,local_5ec);\n  }" { (expression_statement "FUN_00061fc8(local_578,local_5ec);" (call_expression "FUN_00061fc8(local_578,local_5ec)" identifier (argument_list "(local_578,local_5ec)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar8 = uVar8 & 0x200;" (assignment_expression "uVar8 = uVar8 & 0x200" identifier = (binary_expression "uVar8 & 0x200" identifier & number_literal)) ;) (if_statement "if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" if (parenthesized_expression "(**(char **)(puVar24 + 0xc82a0) == '\0')" ( (binary_expression "**(char **)(puVar24 + 0xc82a0) == '\0'" (pointer_expression "**(char **)(puVar24 + 0xc82a0)" * (pointer_expression "*(char **)(puVar24 + 0xc82a0)" * (cast_expression "(char **)(puVar24 + 0xc82a0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82a0)" ( (binary_expression "puVar24 + 0xc82a0" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" { (labeled_statement "LAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);" statement_identifier : (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8f58);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8f58)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8f58)" * (cast_expression "(code **)(puVar24 + 0xc8f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f58)" ( (binary_expression "puVar24 + 0xc8f58" identifier + number_literal) ))))) ;)) (if_statement "if (local_2ec == *piVar17) {\n      return local_5d0;\n    }" if (parenthesized_expression "(local_2ec == *piVar17)" ( (binary_expression "local_2ec == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      return local_5d0;\n    }" { (return_statement "return local_5d0;" return identifier ;) })) }) (else_clause "else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" else (compound_statement "{\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" { (expression_statement "(**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));" (call_expression "(**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230))" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f1c))" ( (pointer_expression "**(code **)(puVar24 + 0xc8f1c)" * (pointer_expression "*(code **)(puVar24 + 0xc8f1c)" * (cast_expression "(code **)(puVar24 + 0xc8f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f1c)" ( (binary_expression "puVar24 + 0xc8f1c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar19 + 0x230))" ( (pointer_expression "*(undefined4 *)(iVar19 + 0x230)" * (cast_expression "(undefined4 *)(iVar19 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x230)" ( (binary_expression "iVar19 + 0x230" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8f58);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8f58)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8f58)" * (cast_expression "(code **)(puVar24 + 0xc8f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f58)" ( (binary_expression "puVar24 + 0xc8f58" identifier + number_literal) ))))) ;) (if_statement "if (local_2ec == *piVar17) {\n      return local_5d0;\n    }" if (parenthesized_expression "(local_2ec == *piVar17)" ( (binary_expression "local_2ec == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      return local_5d0;\n    }" { (return_statement "return local_5d0;" return identifier ;) })) }))) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "FUN_00060ae0(local_5dc,local_578,local_5ec);" (call_expression "FUN_00060ae0(local_5dc,local_578,local_5ec)" identifier (argument_list "(local_5dc,local_578,local_5ec)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = local_580;" (assignment_expression "uVar10 = local_580" identifier = identifier) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })))
(translation_unit "void perform_release(uint32_t server_addr,uint32_t requested_ip)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint32_t uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  uint8_t *puVar10;\n  uint timeo;\n  uint uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint32_t *puVar14;\n  uint *puVar15;\n  option_set *poVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined4 extraout_v1;\n  char *name;\n  int *piVar19;\n  int iVar20;\n  dhcp_packet *unaff_s0;\n  uint32_t unaff_s2;\n  code *pcVar21;\n  uint uVar22;\n  undefined *puVar23;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_5f0;\n  uint32_t uStack_5ec;\n  code *pcStack_5e8;\n  code *pcStack_5e4;\n  uint32_t uStack_5dc;\n  int iStack_5d4;\n  code *pcStack_5b4;\n  int iStack_5ac;\n  int iStack_5a8;\n  code *pcStack_5a4;\n  char *pcStack_5a0;\n  char *pcStack_59c;\n  char *pcStack_598;\n  undefined4 uStack_594;\n  uint uStack_590;\n  uint uStack_58c;\n  int iStack_588;\n  uint uStack_584;\n  uint uStack_580;\n  undefined4 uStack_57c;\n  uint32_t uStack_578;\n  uint32_t uStack_574;\n  undefined1 auStack_570 [14];\n  short sStack_562;\n  dhcp_packet dStack_560;\n  int iStack_2ec;\n  dhcp_packet *pdStack_2e8;\n  undefined *puStack_2e4;\n  uint32_t uStack_2e0;\n  undefined *puStack_2dc;\n  undefined *puStack_2d8;\n  int *piStack_2d4;\n  dhcp_packet packet;\n  char buffer [16];\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_bb_error_msg_0012a1c8;\n  puVar23 = PTR_DAT_0012a178;\n  iVar17 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);\n    unaff_s0 = &packet;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);\n    init_packet(unaff_s0,'\a');\n    packet.ciaddr = requested_ip;\n    udhcp_add_simple_option(unaff_s0,'6',server_addr);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    bcast_or_ucast(unaff_s0,requested_ip,server_addr);\n    unaff_s2 = requested_ip;\n    unaff_s5 = (int *)server_addr;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  name = PTR_UINT_0012a18c + 0x6008;\n  udhcp_run_script((dhcp_packet *)0x0,name);\n  change_listen_mode(0);\n  iVar8 = *(int *)puVar5;\n  puVar23[-0x4c42] = 6;\n  if (iVar17 == iVar8) {\n    return;\n  }\n  puVar25 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar19 = *(int **)(puVar25 + 0xc8fdc);\n  iVar17 = *(int *)(puVar25 + 0xc801c);\n  piVar24 = &iStack_588;\n  puStack_2d8 = puVar5;\n  puStack_2e4 = puVar4;\n  puStack_2dc = puVar23;\n  iVar8 = *(int *)(puVar25 + 0xc81d4);\n  iStack_2ec = *piVar19;\n  pcVar26 = *(code **)(puVar25 + 0xc8178);\n  *(int *)(iVar8 + 0x22c) = *(int *)(puVar25 + 0xc801c) + 0x2408;\n  uVar9 = iVar8 + 0x234U & 3;\n  puVar15 = (uint *)((iVar8 + 0x234U) - uVar9);\n  *puVar15 = *puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8;\n  uStack_584 = 0x14;\n  uStack_580 = 3;\n  uStack_590 = *(int *)(puVar25 + 0xc801c) + 0x601c;\n  uStack_57c = 3;\n  uStack_58c = 0;\n  iStack_588 = 0;\n  uVar9 = iVar8 + 0x237U & 3;\n  puVar15 = (uint *)((iVar8 + 0x237U) - uVar9);\n  *puVar15 = *puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8;\n  pcStack_5a0 = (char *)(*(int *)(puVar25 + 0xc801c) + 0x6040);\n  pdStack_2e8 = unaff_s0;\n  uStack_2e0 = unaff_s2;\n  piStack_2d4 = unaff_s5;\n  uVar9 = (*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590);\n  if ((uVar9 & 0xc) != 0) {\n    (**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);\n    puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);\n    *(uint8_t **)(iVar8 + 0x244) = puVar10;\n  }\n  if ((uVar9 & 0x10) != 0) {\n    puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);\n    *(uint8_t **)(iVar8 + 0x248) = puVar10;\n    puVar10[2] = '\x01';\n  }\n  uStack_5ec = uVar9 & 0x400;\n  if (uStack_5ec != 0) {\n    uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);\n  }\n  uVar11 = uStack_590;\n  timeo = (**(code **)(puVar25 + 0xc8234))();\n  if (uStack_58c != 0) {\n    pcStack_5f0 = *(code **)(puVar25 + 0xc8164);\n    pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);\n    pcStack_5e8 = *(code **)(puVar25 + 0xc8644);\n    do {\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    } while (uStack_58c != 0);\n  }\n  pbVar18 = *(byte **)(puVar25 + 0xc8634);\n  if (-1 < (int)(uVar9 << 0xe)) {\n    bVar2 = pbVar18[1];\n    while (bVar2 != 0) {\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar26 = *(code **)(puVar25 + 0xc8648);\n  if (iStack_588 != 0) {\n    unaff_s5 = (int *)(iVar8 + 0x238);\n    pcVar21 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8138);\n    uVar7 = *(undefined4 *)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    do {\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    } while (iStack_588 != 0);\n  }\n  uVar22 = iVar8 + 0x22cU & 3;\n  pcVar26 = *(code **)(puVar25 + 0xc864c);\n  uVar3 = iVar8 + 0x22fU & 3;\n  iVar17 = udhcp_read_interface\n                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200));\n  if (iVar17 != 0) goto LAB_000624e4;\n  if (((uVar9 & 1) == 0) &&\n     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     )) {\n    puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);\n    *(uint8_t **)(iVar8 + 0x23c) = puVar10;\n    puVar10[2] = '\x01';\n    iVar17 = *(int *)(iVar8 + 0x23c);\n    piVar24 = (int *)(iVar17 + 3);\n    *piVar24 = *(int *)(iVar8 + 0x200);\n    *(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);\n    *(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);\n  }\n  else {\n    piVar24 = (int *)0x0;\n  }\n  if (*pcStack_5a0 != '\0') {\n    puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);\n    *(uint8_t **)(iVar8 + 0x240) = puVar10;\n  }\n  if ((uVar9 & 0x4000) != 0) {\n    (**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);\n    **(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;\n  }\n  pcStack_5f0 = *(code **)(puVar25 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  iStack_5d4 = *(int *)(puVar25 + 0xc801c);\n  (**(code **)(puVar25 + 0xc8510))();\n  pcStack_5b4 = *(code **)(puVar25 + 0xc8650);\n  puVar23 = *(undefined **)(puVar25 + 0xc8008);\n  unaff_s5 = *(int **)(puVar25 + 0xc8008);\n  (**(code **)(puVar25 + 0xc82ac))(*(undefined4 *)(iVar8 + 0x230));\n  uVar22 = 0;\n  iStack_5ac = *(int *)(puVar25 + 0xc801c);\n  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6084);\n  udhcp_sp_setup();\n  (**(code **)(puVar25 + 0xc8128))();\n  (**(code **)(puVar25 + 0xc8df8))(extraout_v1);\n  puVar23[-0x4c42] = 0;\n  uVar11 = 0;\n  pcStack_5e4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0);\n  udhcp_run_script((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008));\n  pcStack_5e8 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194);\n  change_listen_mode(2);\n  iVar17 = unaff_s5[-0x17ff];\n  iStack_5a8 = *(int *)(puVar25 + 0xc801c) + 0x623c;\n  pcStack_5a4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8);\nLAB_00062678:\n  iVar20 = uVar11 - uVar22;\n  pcVar21 = unaff_s6;\n  (*pcStack_5b4)(unaff_s6,iVar17);\n  if (0 < iVar20) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar27 = *(code **)(puVar25 + 0xc8618);\n  iVar13 = (*pcVar27)();\n  iVar17 = 1000;\n  if (iVar20 < 0x20c49b) goto LAB_00063074;\n  iVar20 = 0x7fffffff;\n  while (pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0) {\n    if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }\n    iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar20 = iVar20 * iVar17;\n  }\n  if (iVar17 == 0) {\nLAB_00062724:\n    uVar11 = iVar8 + 0x22cU & 3;\n    uVar22 = iVar8 + 0x22fU & 3;\n    iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200);\n    if (iVar17 == 0) {\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar17 = udhcp_sp_read();\n  if (iVar17 == 0x10) {\n    *(undefined1 *)(iVar8 + 0x24c) = 0;\n    *(undefined1 *)(iVar8 + 0x24d) = 0;\n    (*pcStack_5f0)(iStack_5ac + 0x60f8);\n    if ((byte)puVar23[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    uVar11 = 0;\n    uVar22 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar17 == 0x11) {\n    uVar11 = 0x7fffffff;\n    (*pcStack_5a4)(uStack_578,uStack_5ec);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar17 == 0xf) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar17 = unaff_s5[-0x17ff];\n  if (sStack_562 == 0) goto LAB_00062678;\n  iVar20 = *(int *)(puVar25 + 0xc8008);\n  if (*(char *)(iVar20 + -0x4c41) == '\x01') {\n    iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);\n  }\n  else {\n    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);\n  }\n  if (iVar17 == -1) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);\n    (**(code **)(puVar25 + 0xc8f94))(uStack_580);\n    (*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));\n    iVar17 = (*pcVar27)();\n    uVar22 = iVar17 + (uVar22 - iVar13);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar20 = (*pcVar27)();\n  uVar22 = iVar20 + (uVar22 - iVar13);\n  if ((((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||\n     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)) {\nLAB_00062c40:\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  puVar10 = udhcp_get_option(&dStack_560,0x35);\n  uVar6 = uStack_578;\n  if (puVar10 == (uint8_t *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar20 = (int)(char)puVar23[-0x4c42];\n  if (iVar20 != 1) {\n    if (iVar20 < 2) {\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*puVar10 != '\x05') {\n    if ((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar15 = (uint *)udhcp_get_option32(&dStack_560,0x33);\n  if (puVar15 == (uint *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);\n    uStack_574 = 0xe10;\nLAB_00062d7c:\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n  }\n  else {\n    uStack_574 = *puVar15;\n    if (0x79 < uStack_574) goto LAB_00062d7c;\n    uStack_574 = 0x7a;\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar7 = (*pcVar21)(dStack_560.yiaddr);\n  uVar6 = uStack_574;\n  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574);\n  uStack_5ec = dStack_560.yiaddr;\n  iVar17 = (*pcVar27)();\n  if (puVar23[-0x4c42] == '\x01') {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;\n  }\n  uVar11 = uVar6 >> 1;\n  (*pcStack_5e4)(&dStack_560,iVar20);\n  iVar20 = (*pcVar27)();\n  uVar22 = iVar20 - iVar17;\n  puVar23[-0x4c42] = 2;\n  if (uVar11 < uVar22) {\n    uVar11 = 0;\n    uVar22 = 0;\n  }\n  (*pcStack_5e8)(0);\n  if ((uVar9 & 0x100) == 0) {\n    if ((uVar9 & 0x80000) == 0) {\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar9 & 0x200) != 0) {\n    perform_release(uStack_578,uStack_5ec);\n  }\n  uVar9 = uVar9 & 0x200;\n  if (**(char **)(puVar25 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  (*pcVar21)();\n  uVar22 = 0;\n  send_select(uStack_5dc,uStack_578,uStack_5ec);\n  iVar17 = unaff_s5[-0x17ff];\n  uVar11 = uStack_580;\n  goto LAB_00062678;\n}\n\n" (function_definition "void perform_release(uint32_t server_addr,uint32_t requested_ip)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint32_t uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  uint8_t *puVar10;\n  uint timeo;\n  uint uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint32_t *puVar14;\n  uint *puVar15;\n  option_set *poVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined4 extraout_v1;\n  char *name;\n  int *piVar19;\n  int iVar20;\n  dhcp_packet *unaff_s0;\n  uint32_t unaff_s2;\n  code *pcVar21;\n  uint uVar22;\n  undefined *puVar23;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_5f0;\n  uint32_t uStack_5ec;\n  code *pcStack_5e8;\n  code *pcStack_5e4;\n  uint32_t uStack_5dc;\n  int iStack_5d4;\n  code *pcStack_5b4;\n  int iStack_5ac;\n  int iStack_5a8;\n  code *pcStack_5a4;\n  char *pcStack_5a0;\n  char *pcStack_59c;\n  char *pcStack_598;\n  undefined4 uStack_594;\n  uint uStack_590;\n  uint uStack_58c;\n  int iStack_588;\n  uint uStack_584;\n  uint uStack_580;\n  undefined4 uStack_57c;\n  uint32_t uStack_578;\n  uint32_t uStack_574;\n  undefined1 auStack_570 [14];\n  short sStack_562;\n  dhcp_packet dStack_560;\n  int iStack_2ec;\n  dhcp_packet *pdStack_2e8;\n  undefined *puStack_2e4;\n  uint32_t uStack_2e0;\n  undefined *puStack_2dc;\n  undefined *puStack_2d8;\n  int *piStack_2d4;\n  dhcp_packet packet;\n  char buffer [16];\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_bb_error_msg_0012a1c8;\n  puVar23 = PTR_DAT_0012a178;\n  iVar17 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);\n    unaff_s0 = &packet;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);\n    init_packet(unaff_s0,'\a');\n    packet.ciaddr = requested_ip;\n    udhcp_add_simple_option(unaff_s0,'6',server_addr);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    bcast_or_ucast(unaff_s0,requested_ip,server_addr);\n    unaff_s2 = requested_ip;\n    unaff_s5 = (int *)server_addr;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  name = PTR_UINT_0012a18c + 0x6008;\n  udhcp_run_script((dhcp_packet *)0x0,name);\n  change_listen_mode(0);\n  iVar8 = *(int *)puVar5;\n  puVar23[-0x4c42] = 6;\n  if (iVar17 == iVar8) {\n    return;\n  }\n  puVar25 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar19 = *(int **)(puVar25 + 0xc8fdc);\n  iVar17 = *(int *)(puVar25 + 0xc801c);\n  piVar24 = &iStack_588;\n  puStack_2d8 = puVar5;\n  puStack_2e4 = puVar4;\n  puStack_2dc = puVar23;\n  iVar8 = *(int *)(puVar25 + 0xc81d4);\n  iStack_2ec = *piVar19;\n  pcVar26 = *(code **)(puVar25 + 0xc8178);\n  *(int *)(iVar8 + 0x22c) = *(int *)(puVar25 + 0xc801c) + 0x2408;\n  uVar9 = iVar8 + 0x234U & 3;\n  puVar15 = (uint *)((iVar8 + 0x234U) - uVar9);\n  *puVar15 = *puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8;\n  uStack_584 = 0x14;\n  uStack_580 = 3;\n  uStack_590 = *(int *)(puVar25 + 0xc801c) + 0x601c;\n  uStack_57c = 3;\n  uStack_58c = 0;\n  iStack_588 = 0;\n  uVar9 = iVar8 + 0x237U & 3;\n  puVar15 = (uint *)((iVar8 + 0x237U) - uVar9);\n  *puVar15 = *puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8;\n  pcStack_5a0 = (char *)(*(int *)(puVar25 + 0xc801c) + 0x6040);\n  pdStack_2e8 = unaff_s0;\n  uStack_2e0 = unaff_s2;\n  piStack_2d4 = unaff_s5;\n  uVar9 = (*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590);\n  if ((uVar9 & 0xc) != 0) {\n    (**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);\n    puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);\n    *(uint8_t **)(iVar8 + 0x244) = puVar10;\n  }\n  if ((uVar9 & 0x10) != 0) {\n    puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);\n    *(uint8_t **)(iVar8 + 0x248) = puVar10;\n    puVar10[2] = '\x01';\n  }\n  uStack_5ec = uVar9 & 0x400;\n  if (uStack_5ec != 0) {\n    uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);\n  }\n  uVar11 = uStack_590;\n  timeo = (**(code **)(puVar25 + 0xc8234))();\n  if (uStack_58c != 0) {\n    pcStack_5f0 = *(code **)(puVar25 + 0xc8164);\n    pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);\n    pcStack_5e8 = *(code **)(puVar25 + 0xc8644);\n    do {\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    } while (uStack_58c != 0);\n  }\n  pbVar18 = *(byte **)(puVar25 + 0xc8634);\n  if (-1 < (int)(uVar9 << 0xe)) {\n    bVar2 = pbVar18[1];\n    while (bVar2 != 0) {\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar26 = *(code **)(puVar25 + 0xc8648);\n  if (iStack_588 != 0) {\n    unaff_s5 = (int *)(iVar8 + 0x238);\n    pcVar21 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8138);\n    uVar7 = *(undefined4 *)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    do {\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    } while (iStack_588 != 0);\n  }\n  uVar22 = iVar8 + 0x22cU & 3;\n  pcVar26 = *(code **)(puVar25 + 0xc864c);\n  uVar3 = iVar8 + 0x22fU & 3;\n  iVar17 = udhcp_read_interface\n                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200));\n  if (iVar17 != 0) goto LAB_000624e4;\n  if (((uVar9 & 1) == 0) &&\n     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     )) {\n    puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);\n    *(uint8_t **)(iVar8 + 0x23c) = puVar10;\n    puVar10[2] = '\x01';\n    iVar17 = *(int *)(iVar8 + 0x23c);\n    piVar24 = (int *)(iVar17 + 3);\n    *piVar24 = *(int *)(iVar8 + 0x200);\n    *(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);\n    *(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);\n  }\n  else {\n    piVar24 = (int *)0x0;\n  }\n  if (*pcStack_5a0 != '\0') {\n    puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);\n    *(uint8_t **)(iVar8 + 0x240) = puVar10;\n  }\n  if ((uVar9 & 0x4000) != 0) {\n    (**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);\n    **(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;\n  }\n  pcStack_5f0 = *(code **)(puVar25 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  iStack_5d4 = *(int *)(puVar25 + 0xc801c);\n  (**(code **)(puVar25 + 0xc8510))();\n  pcStack_5b4 = *(code **)(puVar25 + 0xc8650);\n  puVar23 = *(undefined **)(puVar25 + 0xc8008);\n  unaff_s5 = *(int **)(puVar25 + 0xc8008);\n  (**(code **)(puVar25 + 0xc82ac))(*(undefined4 *)(iVar8 + 0x230));\n  uVar22 = 0;\n  iStack_5ac = *(int *)(puVar25 + 0xc801c);\n  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6084);\n  udhcp_sp_setup();\n  (**(code **)(puVar25 + 0xc8128))();\n  (**(code **)(puVar25 + 0xc8df8))(extraout_v1);\n  puVar23[-0x4c42] = 0;\n  uVar11 = 0;\n  pcStack_5e4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0);\n  udhcp_run_script((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008));\n  pcStack_5e8 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194);\n  change_listen_mode(2);\n  iVar17 = unaff_s5[-0x17ff];\n  iStack_5a8 = *(int *)(puVar25 + 0xc801c) + 0x623c;\n  pcStack_5a4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8);\nLAB_00062678:\n  iVar20 = uVar11 - uVar22;\n  pcVar21 = unaff_s6;\n  (*pcStack_5b4)(unaff_s6,iVar17);\n  if (0 < iVar20) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar27 = *(code **)(puVar25 + 0xc8618);\n  iVar13 = (*pcVar27)();\n  iVar17 = 1000;\n  if (iVar20 < 0x20c49b) goto LAB_00063074;\n  iVar20 = 0x7fffffff;\n  while (pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0) {\n    if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }\n    iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar20 = iVar20 * iVar17;\n  }\n  if (iVar17 == 0) {\nLAB_00062724:\n    uVar11 = iVar8 + 0x22cU & 3;\n    uVar22 = iVar8 + 0x22fU & 3;\n    iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200);\n    if (iVar17 == 0) {\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar17 = udhcp_sp_read();\n  if (iVar17 == 0x10) {\n    *(undefined1 *)(iVar8 + 0x24c) = 0;\n    *(undefined1 *)(iVar8 + 0x24d) = 0;\n    (*pcStack_5f0)(iStack_5ac + 0x60f8);\n    if ((byte)puVar23[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    uVar11 = 0;\n    uVar22 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar17 == 0x11) {\n    uVar11 = 0x7fffffff;\n    (*pcStack_5a4)(uStack_578,uStack_5ec);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar17 == 0xf) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar17 = unaff_s5[-0x17ff];\n  if (sStack_562 == 0) goto LAB_00062678;\n  iVar20 = *(int *)(puVar25 + 0xc8008);\n  if (*(char *)(iVar20 + -0x4c41) == '\x01') {\n    iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);\n  }\n  else {\n    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);\n  }\n  if (iVar17 == -1) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);\n    (**(code **)(puVar25 + 0xc8f94))(uStack_580);\n    (*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));\n    iVar17 = (*pcVar27)();\n    uVar22 = iVar17 + (uVar22 - iVar13);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar20 = (*pcVar27)();\n  uVar22 = iVar20 + (uVar22 - iVar13);\n  if ((((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||\n     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)) {\nLAB_00062c40:\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  puVar10 = udhcp_get_option(&dStack_560,0x35);\n  uVar6 = uStack_578;\n  if (puVar10 == (uint8_t *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar20 = (int)(char)puVar23[-0x4c42];\n  if (iVar20 != 1) {\n    if (iVar20 < 2) {\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*puVar10 != '\x05') {\n    if ((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar15 = (uint *)udhcp_get_option32(&dStack_560,0x33);\n  if (puVar15 == (uint *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);\n    uStack_574 = 0xe10;\nLAB_00062d7c:\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n  }\n  else {\n    uStack_574 = *puVar15;\n    if (0x79 < uStack_574) goto LAB_00062d7c;\n    uStack_574 = 0x7a;\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar7 = (*pcVar21)(dStack_560.yiaddr);\n  uVar6 = uStack_574;\n  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574);\n  uStack_5ec = dStack_560.yiaddr;\n  iVar17 = (*pcVar27)();\n  if (puVar23[-0x4c42] == '\x01') {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;\n  }\n  uVar11 = uVar6 >> 1;\n  (*pcStack_5e4)(&dStack_560,iVar20);\n  iVar20 = (*pcVar27)();\n  uVar22 = iVar20 - iVar17;\n  puVar23[-0x4c42] = 2;\n  if (uVar11 < uVar22) {\n    uVar11 = 0;\n    uVar22 = 0;\n  }\n  (*pcStack_5e8)(0);\n  if ((uVar9 & 0x100) == 0) {\n    if ((uVar9 & 0x80000) == 0) {\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar9 & 0x200) != 0) {\n    perform_release(uStack_578,uStack_5ec);\n  }\n  uVar9 = uVar9 & 0x200;\n  if (**(char **)(puVar25 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  (*pcVar21)();\n  uVar22 = 0;\n  send_select(uStack_5dc,uStack_578,uStack_5ec);\n  iVar17 = unaff_s5[-0x17ff];\n  uVar11 = uStack_580;\n  goto LAB_00062678;\n}" primitive_type (function_declarator "perform_release(uint32_t server_addr,uint32_t requested_ip)" identifier (parameter_list "(uint32_t server_addr,uint32_t requested_ip)" ( (parameter_declaration "uint32_t server_addr" primitive_type identifier) , (parameter_declaration "uint32_t requested_ip" primitive_type identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  uint32_t uVar6;\n  undefined4 uVar7;\n  int iVar8;\n  uint uVar9;\n  uint8_t *puVar10;\n  uint timeo;\n  uint uVar11;\n  undefined4 uVar12;\n  int iVar13;\n  uint32_t *puVar14;\n  uint *puVar15;\n  option_set *poVar16;\n  int iVar17;\n  byte *pbVar18;\n  undefined4 extraout_v1;\n  char *name;\n  int *piVar19;\n  int iVar20;\n  dhcp_packet *unaff_s0;\n  uint32_t unaff_s2;\n  code *pcVar21;\n  uint uVar22;\n  undefined *puVar23;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar24;\n  undefined *puVar25;\n  code *pcVar26;\n  code *pcVar27;\n  code *pcStack_5f0;\n  uint32_t uStack_5ec;\n  code *pcStack_5e8;\n  code *pcStack_5e4;\n  uint32_t uStack_5dc;\n  int iStack_5d4;\n  code *pcStack_5b4;\n  int iStack_5ac;\n  int iStack_5a8;\n  code *pcStack_5a4;\n  char *pcStack_5a0;\n  char *pcStack_59c;\n  char *pcStack_598;\n  undefined4 uStack_594;\n  uint uStack_590;\n  uint uStack_58c;\n  int iStack_588;\n  uint uStack_584;\n  uint uStack_580;\n  undefined4 uStack_57c;\n  uint32_t uStack_578;\n  uint32_t uStack_574;\n  undefined1 auStack_570 [14];\n  short sStack_562;\n  dhcp_packet dStack_560;\n  int iStack_2ec;\n  dhcp_packet *pdStack_2e8;\n  undefined *puStack_2e4;\n  uint32_t uStack_2e0;\n  undefined *puStack_2dc;\n  undefined *puStack_2d8;\n  int *piStack_2d4;\n  dhcp_packet packet;\n  char buffer [16];\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_bb_error_msg_0012a1c8;\n  puVar23 = PTR_DAT_0012a178;\n  iVar17 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);\n    unaff_s0 = &packet;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);\n    init_packet(unaff_s0,'\a');\n    packet.ciaddr = requested_ip;\n    udhcp_add_simple_option(unaff_s0,'6',server_addr);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    bcast_or_ucast(unaff_s0,requested_ip,server_addr);\n    unaff_s2 = requested_ip;\n    unaff_s5 = (int *)server_addr;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  name = PTR_UINT_0012a18c + 0x6008;\n  udhcp_run_script((dhcp_packet *)0x0,name);\n  change_listen_mode(0);\n  iVar8 = *(int *)puVar5;\n  puVar23[-0x4c42] = 6;\n  if (iVar17 == iVar8) {\n    return;\n  }\n  puVar25 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar19 = *(int **)(puVar25 + 0xc8fdc);\n  iVar17 = *(int *)(puVar25 + 0xc801c);\n  piVar24 = &iStack_588;\n  puStack_2d8 = puVar5;\n  puStack_2e4 = puVar4;\n  puStack_2dc = puVar23;\n  iVar8 = *(int *)(puVar25 + 0xc81d4);\n  iStack_2ec = *piVar19;\n  pcVar26 = *(code **)(puVar25 + 0xc8178);\n  *(int *)(iVar8 + 0x22c) = *(int *)(puVar25 + 0xc801c) + 0x2408;\n  uVar9 = iVar8 + 0x234U & 3;\n  puVar15 = (uint *)((iVar8 + 0x234U) - uVar9);\n  *puVar15 = *puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8;\n  uStack_584 = 0x14;\n  uStack_580 = 3;\n  uStack_590 = *(int *)(puVar25 + 0xc801c) + 0x601c;\n  uStack_57c = 3;\n  uStack_58c = 0;\n  iStack_588 = 0;\n  uVar9 = iVar8 + 0x237U & 3;\n  puVar15 = (uint *)((iVar8 + 0x237U) - uVar9);\n  *puVar15 = *puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8;\n  pcStack_5a0 = (char *)(*(int *)(puVar25 + 0xc801c) + 0x6040);\n  pdStack_2e8 = unaff_s0;\n  uStack_2e0 = unaff_s2;\n  piStack_2d4 = unaff_s5;\n  uVar9 = (*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590);\n  if ((uVar9 & 0xc) != 0) {\n    (**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);\n    puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);\n    *(uint8_t **)(iVar8 + 0x244) = puVar10;\n  }\n  if ((uVar9 & 0x10) != 0) {\n    puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);\n    *(uint8_t **)(iVar8 + 0x248) = puVar10;\n    puVar10[2] = '\x01';\n  }\n  uStack_5ec = uVar9 & 0x400;\n  if (uStack_5ec != 0) {\n    uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);\n  }\n  uVar11 = uStack_590;\n  timeo = (**(code **)(puVar25 + 0xc8234))();\n  if (uStack_58c != 0) {\n    pcStack_5f0 = *(code **)(puVar25 + 0xc8164);\n    pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);\n    pcStack_5e8 = *(code **)(puVar25 + 0xc8644);\n    do {\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    } while (uStack_58c != 0);\n  }\n  pbVar18 = *(byte **)(puVar25 + 0xc8634);\n  if (-1 < (int)(uVar9 << 0xe)) {\n    bVar2 = pbVar18[1];\n    while (bVar2 != 0) {\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar26 = *(code **)(puVar25 + 0xc8648);\n  if (iStack_588 != 0) {\n    unaff_s5 = (int *)(iVar8 + 0x238);\n    pcVar21 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8138);\n    uVar7 = *(undefined4 *)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    do {\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    } while (iStack_588 != 0);\n  }\n  uVar22 = iVar8 + 0x22cU & 3;\n  pcVar26 = *(code **)(puVar25 + 0xc864c);\n  uVar3 = iVar8 + 0x22fU & 3;\n  iVar17 = udhcp_read_interface\n                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200));\n  if (iVar17 != 0) goto LAB_000624e4;\n  if (((uVar9 & 1) == 0) &&\n     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     )) {\n    puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);\n    *(uint8_t **)(iVar8 + 0x23c) = puVar10;\n    puVar10[2] = '\x01';\n    iVar17 = *(int *)(iVar8 + 0x23c);\n    piVar24 = (int *)(iVar17 + 3);\n    *piVar24 = *(int *)(iVar8 + 0x200);\n    *(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);\n    *(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);\n  }\n  else {\n    piVar24 = (int *)0x0;\n  }\n  if (*pcStack_5a0 != '\0') {\n    puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);\n    *(uint8_t **)(iVar8 + 0x240) = puVar10;\n  }\n  if ((uVar9 & 0x4000) != 0) {\n    (**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);\n    **(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;\n  }\n  pcStack_5f0 = *(code **)(puVar25 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  iStack_5d4 = *(int *)(puVar25 + 0xc801c);\n  (**(code **)(puVar25 + 0xc8510))();\n  pcStack_5b4 = *(code **)(puVar25 + 0xc8650);\n  puVar23 = *(undefined **)(puVar25 + 0xc8008);\n  unaff_s5 = *(int **)(puVar25 + 0xc8008);\n  (**(code **)(puVar25 + 0xc82ac))(*(undefined4 *)(iVar8 + 0x230));\n  uVar22 = 0;\n  iStack_5ac = *(int *)(puVar25 + 0xc801c);\n  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6084);\n  udhcp_sp_setup();\n  (**(code **)(puVar25 + 0xc8128))();\n  (**(code **)(puVar25 + 0xc8df8))(extraout_v1);\n  puVar23[-0x4c42] = 0;\n  uVar11 = 0;\n  pcStack_5e4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0);\n  udhcp_run_script((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008));\n  pcStack_5e8 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194);\n  change_listen_mode(2);\n  iVar17 = unaff_s5[-0x17ff];\n  iStack_5a8 = *(int *)(puVar25 + 0xc801c) + 0x623c;\n  pcStack_5a4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8);\nLAB_00062678:\n  iVar20 = uVar11 - uVar22;\n  pcVar21 = unaff_s6;\n  (*pcStack_5b4)(unaff_s6,iVar17);\n  if (0 < iVar20) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar27 = *(code **)(puVar25 + 0xc8618);\n  iVar13 = (*pcVar27)();\n  iVar17 = 1000;\n  if (iVar20 < 0x20c49b) goto LAB_00063074;\n  iVar20 = 0x7fffffff;\n  while (pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0) {\n    if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }\n    iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar20 = iVar20 * iVar17;\n  }\n  if (iVar17 == 0) {\nLAB_00062724:\n    uVar11 = iVar8 + 0x22cU & 3;\n    uVar22 = iVar8 + 0x22fU & 3;\n    iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200);\n    if (iVar17 == 0) {\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar17 = udhcp_sp_read();\n  if (iVar17 == 0x10) {\n    *(undefined1 *)(iVar8 + 0x24c) = 0;\n    *(undefined1 *)(iVar8 + 0x24d) = 0;\n    (*pcStack_5f0)(iStack_5ac + 0x60f8);\n    if ((byte)puVar23[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    uVar11 = 0;\n    uVar22 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar17 == 0x11) {\n    uVar11 = 0x7fffffff;\n    (*pcStack_5a4)(uStack_578,uStack_5ec);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar17 == 0xf) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar17 = unaff_s5[-0x17ff];\n  if (sStack_562 == 0) goto LAB_00062678;\n  iVar20 = *(int *)(puVar25 + 0xc8008);\n  if (*(char *)(iVar20 + -0x4c41) == '\x01') {\n    iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);\n  }\n  else {\n    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);\n  }\n  if (iVar17 == -1) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);\n    (**(code **)(puVar25 + 0xc8f94))(uStack_580);\n    (*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));\n    iVar17 = (*pcVar27)();\n    uVar22 = iVar17 + (uVar22 - iVar13);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar20 = (*pcVar27)();\n  uVar22 = iVar20 + (uVar22 - iVar13);\n  if ((((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||\n     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)) {\nLAB_00062c40:\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  puVar10 = udhcp_get_option(&dStack_560,0x35);\n  uVar6 = uStack_578;\n  if (puVar10 == (uint8_t *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar20 = (int)(char)puVar23[-0x4c42];\n  if (iVar20 != 1) {\n    if (iVar20 < 2) {\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*puVar10 != '\x05') {\n    if ((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar15 = (uint *)udhcp_get_option32(&dStack_560,0x33);\n  if (puVar15 == (uint *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);\n    uStack_574 = 0xe10;\nLAB_00062d7c:\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n  }\n  else {\n    uStack_574 = *puVar15;\n    if (0x79 < uStack_574) goto LAB_00062d7c;\n    uStack_574 = 0x7a;\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar7 = (*pcVar21)(dStack_560.yiaddr);\n  uVar6 = uStack_574;\n  (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574);\n  uStack_5ec = dStack_560.yiaddr;\n  iVar17 = (*pcVar27)();\n  if (puVar23[-0x4c42] == '\x01') {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;\n  }\n  uVar11 = uVar6 >> 1;\n  (*pcStack_5e4)(&dStack_560,iVar20);\n  iVar20 = (*pcVar27)();\n  uVar22 = iVar20 - iVar17;\n  puVar23[-0x4c42] = 2;\n  if (uVar11 < uVar22) {\n    uVar11 = 0;\n    uVar22 = 0;\n  }\n  (*pcStack_5e8)(0);\n  if ((uVar9 & 0x100) == 0) {\n    if ((uVar9 & 0x80000) == 0) {\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar9 & 0x200) != 0) {\n    perform_release(uStack_578,uStack_5ec);\n  }\n  uVar9 = uVar9 & 0x200;\n  if (**(char **)(puVar25 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  (*pcVar21)();\n  uVar22 = 0;\n  send_select(uStack_5dc,uStack_578,uStack_5ec);\n  iVar17 = unaff_s5[-0x17ff];\n  uVar11 = uStack_580;\n  goto LAB_00062678;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "uint32_t uVar6;" primitive_type identifier ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint8_t *puVar10;" primitive_type (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint timeo;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "undefined4 uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint32_t *puVar14;" primitive_type (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "option_set *poVar16;" type_identifier (pointer_declarator "*poVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "byte *pbVar18;" type_identifier (pointer_declarator "*pbVar18" * identifier) ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "int *piVar19;" primitive_type (pointer_declarator "*piVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "dhcp_packet *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "uint32_t unaff_s2;" primitive_type identifier ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *pcVar27;" type_identifier (pointer_declarator "*pcVar27" * identifier) ;) (declaration "code *pcStack_5f0;" type_identifier (pointer_declarator "*pcStack_5f0" * identifier) ;) (declaration "uint32_t uStack_5ec;" primitive_type identifier ;) (declaration "code *pcStack_5e8;" type_identifier (pointer_declarator "*pcStack_5e8" * identifier) ;) (declaration "code *pcStack_5e4;" type_identifier (pointer_declarator "*pcStack_5e4" * identifier) ;) (declaration "uint32_t uStack_5dc;" primitive_type identifier ;) (declaration "int iStack_5d4;" primitive_type identifier ;) (declaration "code *pcStack_5b4;" type_identifier (pointer_declarator "*pcStack_5b4" * identifier) ;) (declaration "int iStack_5ac;" primitive_type identifier ;) (declaration "int iStack_5a8;" primitive_type identifier ;) (declaration "code *pcStack_5a4;" type_identifier (pointer_declarator "*pcStack_5a4" * identifier) ;) (declaration "char *pcStack_5a0;" primitive_type (pointer_declarator "*pcStack_5a0" * identifier) ;) (declaration "char *pcStack_59c;" primitive_type (pointer_declarator "*pcStack_59c" * identifier) ;) (declaration "char *pcStack_598;" primitive_type (pointer_declarator "*pcStack_598" * identifier) ;) (declaration "undefined4 uStack_594;" type_identifier identifier ;) (declaration "uint uStack_590;" type_identifier identifier ;) (declaration "uint uStack_58c;" type_identifier identifier ;) (declaration "int iStack_588;" primitive_type identifier ;) (declaration "uint uStack_584;" type_identifier identifier ;) (declaration "uint uStack_580;" type_identifier identifier ;) (declaration "undefined4 uStack_57c;" type_identifier identifier ;) (declaration "uint32_t uStack_578;" primitive_type identifier ;) (declaration "uint32_t uStack_574;" primitive_type identifier ;) (declaration "undefined1 auStack_570 [14];" type_identifier (array_declarator "auStack_570 [14]" identifier [ number_literal ]) ;) (declaration "short sStack_562;" (sized_type_specifier "short" short) identifier ;) (declaration "dhcp_packet dStack_560;" type_identifier identifier ;) (declaration "int iStack_2ec;" primitive_type identifier ;) (declaration "dhcp_packet *pdStack_2e8;" type_identifier (pointer_declarator "*pdStack_2e8" * identifier) ;) (declaration "undefined *puStack_2e4;" type_identifier (pointer_declarator "*puStack_2e4" * identifier) ;) (declaration "uint32_t uStack_2e0;" primitive_type identifier ;) (declaration "undefined *puStack_2dc;" type_identifier (pointer_declarator "*puStack_2dc" * identifier) ;) (declaration "undefined *puStack_2d8;" type_identifier (pointer_declarator "*puStack_2d8" * identifier) ;) (declaration "int *piStack_2d4;" primitive_type (pointer_declarator "*piStack_2d4" * identifier) ;) (declaration "dhcp_packet packet;" type_identifier identifier ;) (declaration "char buffer [16];" primitive_type (array_declarator "buffer [16]" identifier [ number_literal ]) ;) (expression_statement "puVar5 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "puVar4 = PTR_bb_error_msg_0012a1c8;" (assignment_expression "puVar4 = PTR_bb_error_msg_0012a1c8" identifier = identifier) ;) (expression_statement "puVar23 = PTR_DAT_0012a178;" (assignment_expression "puVar23 = PTR_DAT_0012a178" identifier = identifier) ;) (expression_statement "iVar17 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "iVar17 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);\n    unaff_s0 = &packet;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);\n    init_packet(unaff_s0,'\a');\n    packet.ciaddr = requested_ip;\n    udhcp_add_simple_option(unaff_s0,'6',server_addr);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    bcast_or_ucast(unaff_s0,requested_ip,server_addr);\n    unaff_s2 = requested_ip;\n    unaff_s5 = (int *)server_addr;\n  }" if (parenthesized_expression "((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4)" ( (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4" (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2" (cast_expression "(byte)PTR_DAT_0012a178[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR_DAT_0012a178[-0x4c42]" identifier [ number_literal ])) - number_literal) < number_literal) )) (compound_statement "{\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);\n    uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);\n    unaff_s0 = &packet;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);\n    init_packet(unaff_s0,'\a');\n    packet.ciaddr = requested_ip;\n    udhcp_add_simple_option(unaff_s0,'6',server_addr);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    bcast_or_ucast(unaff_s0,requested_ip,server_addr);\n    unaff_s2 = requested_ip;\n    unaff_s5 = (int *)server_addr;\n  }" { (expression_statement "uVar7 = (*(code *)PTR_inet_ntoa_0012b128)();" (assignment_expression "uVar7 = (*(code *)PTR_inet_ntoa_0012b128)()" identifier = (call_expression "(*(code *)PTR_inet_ntoa_0012b128)()" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" ( (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" * (cast_expression "(code *)PTR_inet_ntoa_0012b128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);" (call_expression "(*(code *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_0012ae3c)" ( (pointer_expression "*(code *)PTR___strcpy_chk_0012ae3c" * (cast_expression "(code *)PTR___strcpy_chk_0012ae3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(buffer,uVar7,0x10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip);" (assignment_expression "uVar7 = (*(code *)PTR_inet_ntoa_0012b128)(requested_ip)" identifier = (call_expression "(*(code *)PTR_inet_ntoa_0012b128)(requested_ip)" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" ( (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" * (cast_expression "(code *)PTR_inet_ntoa_0012b128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(requested_ip)" ( identifier )))) ;) (expression_statement "unaff_s0 = &packet;" (assignment_expression "unaff_s0 = &packet" identifier = (pointer_expression "&packet" & identifier)) ;) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5fcc,uVar7,buffer)" ( (binary_expression "PTR_UINT_0012a18c + 0x5fcc" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "init_packet(unaff_s0,'\a');" (call_expression "init_packet(unaff_s0,'\a')" identifier (argument_list "(unaff_s0,'\a')" ( identifier , (char_literal "'\a'" ' escape_sequence ') ))) ;) (expression_statement "packet.ciaddr = requested_ip;" (assignment_expression "packet.ciaddr = requested_ip" (field_expression "packet.ciaddr" identifier . field_identifier) = identifier) ;) (expression_statement "udhcp_add_simple_option(unaff_s0,'6',server_addr);" (call_expression "udhcp_add_simple_option(unaff_s0,'6',server_addr)" identifier (argument_list "(unaff_s0,'6',server_addr)" ( identifier , (char_literal "'6'" ' character ') , identifier ))) ;) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" ( (binary_expression "PTR_UINT_0012a18c + 0x5ec8" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + 0x1e8c" identifier + number_literal) ))) ;) (expression_statement "bcast_or_ucast(unaff_s0,requested_ip,server_addr);" (call_expression "bcast_or_ucast(unaff_s0,requested_ip,server_addr)" identifier (argument_list "(unaff_s0,requested_ip,server_addr)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s2 = requested_ip;" (assignment_expression "unaff_s2 = requested_ip" identifier = identifier) ;) (expression_statement "unaff_s5 = (int *)server_addr;" (assignment_expression "unaff_s5 = (int *)server_addr" identifier = (cast_expression "(int *)server_addr" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5ff0)" ( (binary_expression "PTR_UINT_0012a18c + 0x5ff0" identifier + number_literal) ))) ;) (expression_statement "name = PTR_UINT_0012a18c + 0x6008;" (assignment_expression "name = PTR_UINT_0012a18c + 0x6008" identifier = (binary_expression "PTR_UINT_0012a18c + 0x6008" identifier + number_literal)) ;) (expression_statement "udhcp_run_script((dhcp_packet *)0x0,name);" (call_expression "udhcp_run_script((dhcp_packet *)0x0,name)" identifier (argument_list "((dhcp_packet *)0x0,name)" ( (cast_expression "(dhcp_packet *)0x0" ( (type_descriptor "dhcp_packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (expression_statement "change_listen_mode(0);" (call_expression "change_listen_mode(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar8 = *(int *)puVar5;" (assignment_expression "iVar8 = *(int *)puVar5" identifier = (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar23[-0x4c42] = 6;" (assignment_expression "puVar23[-0x4c42] = 6" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar17 == iVar8) {\n    return;\n  }" if (parenthesized_expression "(iVar17 == iVar8)" ( (binary_expression "iVar17 == iVar8" identifier == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar25 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar25 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar19 = *(int **)(puVar25 + 0xc8fdc);" (assignment_expression "piVar19 = *(int **)(puVar25 + 0xc8fdc)" identifier = (pointer_expression "*(int **)(puVar25 + 0xc8fdc)" * (cast_expression "(int **)(puVar25 + 0xc8fdc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8fdc)" ( (binary_expression "puVar25 + 0xc8fdc" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = *(int *)(puVar25 + 0xc801c);" (assignment_expression "iVar17 = *(int *)(puVar25 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = &iStack_588;" (assignment_expression "piVar24 = &iStack_588" identifier = (pointer_expression "&iStack_588" & identifier)) ;) (expression_statement "puStack_2d8 = puVar5;" (assignment_expression "puStack_2d8 = puVar5" identifier = identifier) ;) (expression_statement "puStack_2e4 = puVar4;" (assignment_expression "puStack_2e4 = puVar4" identifier = identifier) ;) (expression_statement "puStack_2dc = puVar23;" (assignment_expression "puStack_2dc = puVar23" identifier = identifier) ;) (expression_statement "iVar8 = *(int *)(puVar25 + 0xc81d4);" (assignment_expression "iVar8 = *(int *)(puVar25 + 0xc81d4)" identifier = (pointer_expression "*(int *)(puVar25 + 0xc81d4)" * (cast_expression "(int *)(puVar25 + 0xc81d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc81d4)" ( (binary_expression "puVar25 + 0xc81d4" identifier + number_literal) ))))) ;) (expression_statement "iStack_2ec = *piVar19;" (assignment_expression "iStack_2ec = *piVar19" identifier = (pointer_expression "*piVar19" * identifier)) ;) (expression_statement "pcVar26 = *(code **)(puVar25 + 0xc8178);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0xc8178)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8178)" * (cast_expression "(code **)(puVar25 + 0xc8178)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8178)" ( (binary_expression "puVar25 + 0xc8178" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar8 + 0x22c) = *(int *)(puVar25 + 0xc801c) + 0x2408;" (assignment_expression "*(int *)(iVar8 + 0x22c) = *(int *)(puVar25 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(iVar8 + 0x22c)" * (cast_expression "(int *)(iVar8 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x22c)" ( (binary_expression "iVar8 + 0x22c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar9 = iVar8 + 0x234U & 3;" (assignment_expression "uVar9 = iVar8 + 0x234U & 3" identifier = (binary_expression "iVar8 + 0x234U & 3" (binary_expression "iVar8 + 0x234U" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar15 = (uint *)((iVar8 + 0x234U) - uVar9);" (assignment_expression "puVar15 = (uint *)((iVar8 + 0x234U) - uVar9)" identifier = (cast_expression "(uint *)((iVar8 + 0x234U) - uVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x234U) - uVar9)" ( (binary_expression "(iVar8 + 0x234U) - uVar9" (parenthesized_expression "(iVar8 + 0x234U)" ( (binary_expression "iVar8 + 0x234U" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar15 = *puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8;" (assignment_expression "*puVar15 = *puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8" (pointer_expression "*puVar15" * identifier) = (binary_expression "*puVar15 & -1 << (4 - uVar9) * 8 | iVar17 + 0x6024U >> uVar9 * 8" (binary_expression "*puVar15 & -1 << (4 - uVar9) * 8" (pointer_expression "*puVar15" * identifier) & (binary_expression "-1 << (4 - uVar9) * 8" number_literal << (binary_expression "(4 - uVar9) * 8" (parenthesized_expression "(4 - uVar9)" ( (binary_expression "4 - uVar9" number_literal - identifier) )) * number_literal))) | (binary_expression "iVar17 + 0x6024U >> uVar9 * 8" (binary_expression "iVar17 + 0x6024U" identifier + number_literal) >> (binary_expression "uVar9 * 8" identifier * number_literal)))) ;) (expression_statement "uStack_584 = 0x14;" (assignment_expression "uStack_584 = 0x14" identifier = number_literal) ;) (expression_statement "uStack_580 = 3;" (assignment_expression "uStack_580 = 3" identifier = number_literal) ;) (expression_statement "uStack_590 = *(int *)(puVar25 + 0xc801c) + 0x601c;" (assignment_expression "uStack_590 = *(int *)(puVar25 + 0xc801c) + 0x601c" identifier = (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x601c" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uStack_57c = 3;" (assignment_expression "uStack_57c = 3" identifier = number_literal) ;) (expression_statement "uStack_58c = 0;" (assignment_expression "uStack_58c = 0" identifier = number_literal) ;) (expression_statement "iStack_588 = 0;" (assignment_expression "iStack_588 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = iVar8 + 0x237U & 3;" (assignment_expression "uVar9 = iVar8 + 0x237U & 3" identifier = (binary_expression "iVar8 + 0x237U & 3" (binary_expression "iVar8 + 0x237U" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar15 = (uint *)((iVar8 + 0x237U) - uVar9);" (assignment_expression "puVar15 = (uint *)((iVar8 + 0x237U) - uVar9)" identifier = (cast_expression "(uint *)((iVar8 + 0x237U) - uVar9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x237U) - uVar9)" ( (binary_expression "(iVar8 + 0x237U) - uVar9" (parenthesized_expression "(iVar8 + 0x237U)" ( (binary_expression "iVar8 + 0x237U" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar15 = *puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8;" (assignment_expression "*puVar15 = *puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8" (pointer_expression "*puVar15" * identifier) = (binary_expression "*puVar15 & 0xffffffffU >> (uVar9 + 1) * 8 | iVar17 + 0x6024U << (3 - uVar9) * 8" (binary_expression "*puVar15 & 0xffffffffU >> (uVar9 + 1) * 8" (pointer_expression "*puVar15" * identifier) & (binary_expression "0xffffffffU >> (uVar9 + 1) * 8" number_literal >> (binary_expression "(uVar9 + 1) * 8" (parenthesized_expression "(uVar9 + 1)" ( (binary_expression "uVar9 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "iVar17 + 0x6024U << (3 - uVar9) * 8" (binary_expression "iVar17 + 0x6024U" identifier + number_literal) << (binary_expression "(3 - uVar9) * 8" (parenthesized_expression "(3 - uVar9)" ( (binary_expression "3 - uVar9" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "pcStack_5a0 = (char *)(*(int *)(puVar25 + 0xc801c) + 0x6040);" (assignment_expression "pcStack_5a0 = (char *)(*(int *)(puVar25 + 0xc801c) + 0x6040)" identifier = (cast_expression "(char *)(*(int *)(puVar25 + 0xc801c) + 0x6040)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0xc801c) + 0x6040)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6040" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "pdStack_2e8 = unaff_s0;" (assignment_expression "pdStack_2e8 = unaff_s0" identifier = identifier) ;) (expression_statement "uStack_2e0 = unaff_s2;" (assignment_expression "uStack_2e0 = unaff_s2" identifier = identifier) ;) (expression_statement "piStack_2d4 = unaff_s5;" (assignment_expression "piStack_2d4 = unaff_s5" identifier = identifier) ;) (expression_statement "uVar9 = (*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590);" (assignment_expression "uVar9 = (*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590)" identifier = (call_expression "(*pcVar26)(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(name,*(int *)(puVar25 + 0xc801c) + -0x1ca0,*(int *)(puVar25 + 0xc8038) + 0x667c\n                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,iVar8 + 0x22c,\n                     iVar8 + 0x230,&uStack_594,iVar8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,\n                     &uStack_58c,piVar24,&uStack_590)" ( identifier , (binary_expression "*(int *)(puVar25 + 0xc801c) + -0x1ca0" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar25 + 0xc8038) + 0x667c" (pointer_expression "*(int *)(puVar25 + 0xc8038)" * (cast_expression "(int *)(puVar25 + 0xc8038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc8038)" ( (binary_expression "puVar25 + 0xc8038" identifier + number_literal) )))) + number_literal) , (pointer_expression "&pcStack_5a0" & identifier) , (pointer_expression "&pcStack_59c" & identifier) , (pointer_expression "&pcStack_59c" & identifier) , (pointer_expression "&pcStack_598" & identifier) , (binary_expression "iVar8 + 0x22c" identifier + number_literal) , (binary_expression "iVar8 + 0x230" identifier + number_literal) , (pointer_expression "&uStack_594" & identifier) , (binary_expression "iVar8 + 0x234" identifier + number_literal) , (pointer_expression "&uStack_580" & identifier) , (pointer_expression "&uStack_57c" & identifier) , (pointer_expression "&uStack_584" & identifier) , (pointer_expression "&uStack_58c" & identifier) , identifier , (pointer_expression "&uStack_590" & identifier) )))) ;) (if_statement "if ((uVar9 & 0xc) != 0) {\n    (**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);\n    puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);\n    *(uint8_t **)(iVar8 + 0x244) = puVar10;\n  }" if (parenthesized_expression "((uVar9 & 0xc) != 0)" ( (binary_expression "(uVar9 & 0xc) != 0" (parenthesized_expression "(uVar9 & 0xc)" ( (binary_expression "uVar9 & 0xc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);\n    puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);\n    *(uint8_t **)(iVar8 + 0x244) = puVar10;\n  }" { (expression_statement "(**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050);" (call_expression "(**(code **)(puVar25 + 0xc8058))(*(int *)(puVar25 + 0xc801c) + 0x6050)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8058))" ( (pointer_expression "**(code **)(puVar25 + 0xc8058)" * (pointer_expression "*(code **)(puVar25 + 0xc8058)" * (cast_expression "(code **)(puVar25 + 0xc8058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8058)" ( (binary_expression "puVar25 + 0xc8058" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6050)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6050" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0);" (assignment_expression "puVar10 = alloc_dhcp_option(0xc,pcStack_59c,0)" identifier = (call_expression "alloc_dhcp_option(0xc,pcStack_59c,0)" identifier (argument_list "(0xc,pcStack_59c,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(uint8_t **)(iVar8 + 0x244) = puVar10;" (assignment_expression "*(uint8_t **)(iVar8 + 0x244) = puVar10" (pointer_expression "*(uint8_t **)(iVar8 + 0x244)" * (cast_expression "(uint8_t **)(iVar8 + 0x244)" ( (type_descriptor "uint8_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x244)" ( (binary_expression "iVar8 + 0x244" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((uVar9 & 0x10) != 0) {\n    puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);\n    *(uint8_t **)(iVar8 + 0x248) = puVar10;\n    puVar10[2] = '\x01';\n  }" if (parenthesized_expression "((uVar9 & 0x10) != 0)" ( (binary_expression "(uVar9 & 0x10) != 0" (parenthesized_expression "(uVar9 & 0x10)" ( (binary_expression "uVar9 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);\n    *(uint8_t **)(iVar8 + 0x248) = puVar10;\n    puVar10[2] = '\x01';\n  }" { (expression_statement "puVar10 = alloc_dhcp_option(0x51,pcStack_598,3);" (assignment_expression "puVar10 = alloc_dhcp_option(0x51,pcStack_598,3)" identifier = (call_expression "alloc_dhcp_option(0x51,pcStack_598,3)" identifier (argument_list "(0x51,pcStack_598,3)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(uint8_t **)(iVar8 + 0x248) = puVar10;" (assignment_expression "*(uint8_t **)(iVar8 + 0x248) = puVar10" (pointer_expression "*(uint8_t **)(iVar8 + 0x248)" * (cast_expression "(uint8_t **)(iVar8 + 0x248)" ( (type_descriptor "uint8_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x248)" ( (binary_expression "iVar8 + 0x248" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10[2] = '\x01';" (assignment_expression "puVar10[2] = '\x01'" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "uStack_5ec = uVar9 & 0x400;" (assignment_expression "uStack_5ec = uVar9 & 0x400" identifier = (binary_expression "uVar9 & 0x400" identifier & number_literal)) ;) (if_statement "if (uStack_5ec != 0) {\n    uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);\n  }" if (parenthesized_expression "(uStack_5ec != 0)" ( (binary_expression "uStack_5ec != 0" identifier != number_literal) )) (compound_statement "{\n    uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);\n  }" { (expression_statement "uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594);" (assignment_expression "uStack_5ec = (**(code **)(puVar25 + 0xc8b80))(uStack_594)" identifier = (call_expression "(**(code **)(puVar25 + 0xc8b80))(uStack_594)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8b80))" ( (pointer_expression "**(code **)(puVar25 + 0xc8b80)" * (pointer_expression "*(code **)(puVar25 + 0xc8b80)" * (cast_expression "(code **)(puVar25 + 0xc8b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8b80)" ( (binary_expression "puVar25 + 0xc8b80" identifier + number_literal) ))))) )) (argument_list "(uStack_594)" ( identifier )))) ;) })) (expression_statement "uVar11 = uStack_590;" (assignment_expression "uVar11 = uStack_590" identifier = identifier) ;) (expression_statement "timeo = (**(code **)(puVar25 + 0xc8234))();" (assignment_expression "timeo = (**(code **)(puVar25 + 0xc8234))()" identifier = (call_expression "(**(code **)(puVar25 + 0xc8234))()" (parenthesized_expression "(**(code **)(puVar25 + 0xc8234))" ( (pointer_expression "**(code **)(puVar25 + 0xc8234)" * (pointer_expression "*(code **)(puVar25 + 0xc8234)" * (cast_expression "(code **)(puVar25 + 0xc8234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8234)" ( (binary_expression "puVar25 + 0xc8234" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (uStack_58c != 0) {\n    pcStack_5f0 = *(code **)(puVar25 + 0xc8164);\n    pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);\n    pcStack_5e8 = *(code **)(puVar25 + 0xc8644);\n    do {\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    } while (uStack_58c != 0);\n  }" if (parenthesized_expression "(uStack_58c != 0)" ( (binary_expression "uStack_58c != 0" identifier != number_literal) )) (compound_statement "{\n    pcStack_5f0 = *(code **)(puVar25 + 0xc8164);\n    pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);\n    pcStack_5e8 = *(code **)(puVar25 + 0xc8644);\n    do {\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    } while (uStack_58c != 0);\n  }" { (expression_statement "pcStack_5f0 = *(code **)(puVar25 + 0xc8164);" (assignment_expression "pcStack_5f0 = *(code **)(puVar25 + 0xc8164)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8164)" * (cast_expression "(code **)(puVar25 + 0xc8164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8164)" ( (binary_expression "puVar25 + 0xc8164" identifier + number_literal) ))))) ;) (expression_statement "pcStack_5e4 = *(code **)(puVar25 + 0xc82c8);" (assignment_expression "pcStack_5e4 = *(code **)(puVar25 + 0xc82c8)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc82c8)" * (cast_expression "(code **)(puVar25 + 0xc82c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc82c8)" ( (binary_expression "puVar25 + 0xc82c8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(code **)(puVar25 + 0xc8630);" (assignment_expression "unaff_s6 = *(code **)(puVar25 + 0xc8630)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8630)" * (cast_expression "(code **)(puVar25 + 0xc8630)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8630)" ( (binary_expression "puVar25 + 0xc8630" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined **)(puVar25 + 0xc8634);" (assignment_expression "puVar23 = *(undefined **)(puVar25 + 0xc8634)" identifier = (pointer_expression "*(undefined **)(puVar25 + 0xc8634)" * (cast_expression "(undefined **)(puVar25 + 0xc8634)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8634)" ( (binary_expression "puVar25 + 0xc8634" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4);" (assignment_expression "unaff_s5 = (int *)**(uint32_t **)(puVar25 + 0xc80a4)" identifier = (cast_expression "(int *)**(uint32_t **)(puVar25 + 0xc80a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(uint32_t **)(puVar25 + 0xc80a4)" * (pointer_expression "*(uint32_t **)(puVar25 + 0xc80a4)" * (cast_expression "(uint32_t **)(puVar25 + 0xc80a4)" ( (type_descriptor "uint32_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc80a4)" ( (binary_expression "puVar25 + 0xc80a4" identifier + number_literal) ))))))) ;) (expression_statement "pcStack_5e8 = *(code **)(puVar25 + 0xc8644);" (assignment_expression "pcStack_5e8 = *(code **)(puVar25 + 0xc8644)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8644)" * (cast_expression "(code **)(puVar25 + 0xc8644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8644)" ( (binary_expression "puVar25 + 0xc8644" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    } while (uStack_58c != 0);" do (compound_statement "{\n      uVar7 = (*pcStack_5e4)(&uStack_58c);\n      uVar11 = (*pcStack_5f0)(uVar7,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }\n      iVar17 = iVar8 + (uVar11 >> 3);\n      *(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);\n      uVar11 = uStack_58c;\n    }" { (expression_statement "uVar7 = (*pcStack_5e4)(&uStack_58c);" (assignment_expression "uVar7 = (*pcStack_5e4)(&uStack_58c)" identifier = (call_expression "(*pcStack_5e4)(&uStack_58c)" (parenthesized_expression "(*pcStack_5e4)" ( (pointer_expression "*pcStack_5e4" * identifier) )) (argument_list "(&uStack_58c)" ( (pointer_expression "&uStack_58c" & identifier) )))) ;) (expression_statement "uVar11 = (*pcStack_5f0)(uVar7,0,0);" (assignment_expression "uVar11 = (*pcStack_5f0)(uVar7,0,0)" identifier = (call_expression "(*pcStack_5f0)(uVar7,0,0)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(uVar7,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (*unaff_s5 == 0) {\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }\n      else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }" if (parenthesized_expression "(*unaff_s5 == 0)" ( (binary_expression "*unaff_s5 == 0" (pointer_expression "*unaff_s5" * identifier) == number_literal) )) (compound_statement "{\n        if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }\n      }" { (if_statement "if (0xfe < uVar11) {\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }" if (parenthesized_expression "(0xfe < uVar11)" ( (binary_expression "0xfe < uVar11" number_literal < identifier) )) (compound_statement "{\n          iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n          uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n        }" { (expression_statement "iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);" (assignment_expression "iVar17 = (*pcStack_5e8)(uVar7,unaff_s6)" identifier = (call_expression "(*pcStack_5e8)(uVar7,unaff_s6)" (parenthesized_expression "(*pcStack_5e8)" ( (pointer_expression "*pcStack_5e8" * identifier) )) (argument_list "(uVar7,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];" (assignment_expression "uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1]" identifier = (cast_expression "(uint)(byte)puVar23[iVar17 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar23[iVar17 * 2 + 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar23[iVar17 * 2 + 1]" identifier [ (binary_expression "iVar17 * 2 + 1" (binary_expression "iVar17 * 2" identifier * number_literal) + number_literal) ])))) ;) })) }) (else_clause "else {\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }" else (compound_statement "{\n        iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);\n        uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];\n      }" { (expression_statement "iVar17 = (*pcStack_5e8)(uVar7,unaff_s6);" (assignment_expression "iVar17 = (*pcStack_5e8)(uVar7,unaff_s6)" identifier = (call_expression "(*pcStack_5e8)(uVar7,unaff_s6)" (parenthesized_expression "(*pcStack_5e8)" ( (pointer_expression "*pcStack_5e8" * identifier) )) (argument_list "(uVar7,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1];" (assignment_expression "uVar11 = (uint)(byte)puVar23[iVar17 * 2 + 1]" identifier = (cast_expression "(uint)(byte)puVar23[iVar17 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar23[iVar17 * 2 + 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar23[iVar17 * 2 + 1]" identifier [ (binary_expression "iVar17 * 2 + 1" (binary_expression "iVar17 * 2" identifier * number_literal) + number_literal) ])))) ;) }))) (expression_statement "iVar17 = iVar8 + (uVar11 >> 3);" (assignment_expression "iVar17 = iVar8 + (uVar11 >> 3)" identifier = (binary_expression "iVar8 + (uVar11 >> 3)" identifier + (parenthesized_expression "(uVar11 >> 3)" ( (binary_expression "uVar11 >> 3" identifier >> number_literal) )))) ;) (expression_statement "*(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c);" (assignment_expression "*(byte *)(iVar17 + 0x20c) = (byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c)" (pointer_expression "*(byte *)(iVar17 + 0x20c)" * (cast_expression "(byte *)(iVar17 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20c)" ( (binary_expression "iVar17 + 0x20c" identifier + number_literal) )))) = (binary_expression "(byte)(1 << (uVar11 & 7)) | *(byte *)(iVar17 + 0x20c)" (call_expression "(byte)(1 << (uVar11 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (uVar11 & 7))" ( (binary_expression "1 << (uVar11 & 7)" number_literal << (parenthesized_expression "(uVar11 & 7)" ( (binary_expression "uVar11 & 7" identifier & number_literal) ))) ))) | (pointer_expression "*(byte *)(iVar17 + 0x20c)" * (cast_expression "(byte *)(iVar17 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x20c)" ( (binary_expression "iVar17 + 0x20c" identifier + number_literal) )))))) ;) (expression_statement "uVar11 = uStack_58c;" (assignment_expression "uVar11 = uStack_58c" identifier = identifier) ;) }) while (parenthesized_expression "(uStack_58c != 0)" ( (binary_expression "uStack_58c != 0" identifier != number_literal) )) ;) })) (expression_statement "pbVar18 = *(byte **)(puVar25 + 0xc8634);" (assignment_expression "pbVar18 = *(byte **)(puVar25 + 0xc8634)" identifier = (pointer_expression "*(byte **)(puVar25 + 0xc8634)" * (cast_expression "(byte **)(puVar25 + 0xc8634)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8634)" ( (binary_expression "puVar25 + 0xc8634" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)(uVar9 << 0xe)) {\n    bVar2 = pbVar18[1];\n    while (bVar2 != 0) {\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" if (parenthesized_expression "(-1 < (int)(uVar9 << 0xe))" ( (binary_expression "-1 < (int)(uVar9 << 0xe)" number_literal < (cast_expression "(int)(uVar9 << 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 << 0xe)" ( (binary_expression "uVar9 << 0xe" identifier << number_literal) )))) )) (compound_statement "{\n    bVar2 = pbVar18[1];\n    while (bVar2 != 0) {\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" { (expression_statement "bVar2 = pbVar18[1];" (assignment_expression "bVar2 = pbVar18[1]" identifier = (subscript_expression "pbVar18[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar2 != 0) {\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar11 = (uint)(bVar2 >> 3);\n      if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }\n      pbVar1 = pbVar18 + 3;\n      pbVar18 = pbVar18 + 2;\n      bVar2 = *pbVar1;\n    }" { (expression_statement "uVar11 = (uint)(bVar2 >> 3);" (assignment_expression "uVar11 = (uint)(bVar2 >> 3)" identifier = (call_expression "(uint)(bVar2 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )))) ;) (if_statement "if ((*pbVar18 & 0x10) != 0) {\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }" if (parenthesized_expression "((*pbVar18 & 0x10) != 0)" ( (binary_expression "(*pbVar18 & 0x10) != 0" (parenthesized_expression "(*pbVar18 & 0x10)" ( (binary_expression "*pbVar18 & 0x10" (pointer_expression "*pbVar18" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar11 = iVar8 + uVar11;\n        *(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);\n      }" { (expression_statement "uVar11 = iVar8 + uVar11;" (assignment_expression "uVar11 = iVar8 + uVar11" identifier = (binary_expression "iVar8 + uVar11" identifier + identifier)) ;) (expression_statement "*(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c);" (assignment_expression "*(byte *)(uVar11 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c)" (pointer_expression "*(byte *)(uVar11 + 0x20c)" * (cast_expression "(byte *)(uVar11 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 0x20c)" ( (binary_expression "uVar11 + 0x20c" identifier + number_literal) )))) = (binary_expression "(byte)(1 << (bVar2 & 7)) | *(byte *)(uVar11 + 0x20c)" (call_expression "(byte)(1 << (bVar2 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (bVar2 & 7))" ( (binary_expression "1 << (bVar2 & 7)" number_literal << (parenthesized_expression "(bVar2 & 7)" ( (binary_expression "bVar2 & 7" identifier & number_literal) ))) ))) | (pointer_expression "*(byte *)(uVar11 + 0x20c)" * (cast_expression "(byte *)(uVar11 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 0x20c)" ( (binary_expression "uVar11 + 0x20c" identifier + number_literal) )))))) ;) })) (expression_statement "pbVar1 = pbVar18 + 3;" (assignment_expression "pbVar1 = pbVar18 + 3" identifier = (binary_expression "pbVar18 + 3" identifier + number_literal)) ;) (expression_statement "pbVar18 = pbVar18 + 2;" (assignment_expression "pbVar18 = pbVar18 + 2" identifier = (binary_expression "pbVar18 + 2" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar1;" (assignment_expression "bVar2 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) })) })) (expression_statement "pcVar26 = *(code **)(puVar25 + 0xc8648);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0xc8648)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8648)" * (cast_expression "(code **)(puVar25 + 0xc8648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8648)" ( (binary_expression "puVar25 + 0xc8648" identifier + number_literal) ))))) ;) (if_statement "if (iStack_588 != 0) {\n    unaff_s5 = (int *)(iVar8 + 0x238);\n    pcVar21 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8138);\n    uVar7 = *(undefined4 *)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    do {\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    } while (iStack_588 != 0);\n  }" if (parenthesized_expression "(iStack_588 != 0)" ( (binary_expression "iStack_588 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (int *)(iVar8 + 0x238);\n    pcVar21 = *(code **)(puVar25 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar25 + 0xc8138);\n    uVar7 = *(undefined4 *)(puVar25 + 0xc8630);\n    puVar23 = *(undefined **)(puVar25 + 0xc8634);\n    do {\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    } while (iStack_588 != 0);\n  }" { (expression_statement "unaff_s5 = (int *)(iVar8 + 0x238);" (assignment_expression "unaff_s5 = (int *)(iVar8 + 0x238)" identifier = (cast_expression "(int *)(iVar8 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x238)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) )))) ;) (expression_statement "pcVar21 = *(code **)(puVar25 + 0xc82c8);" (assignment_expression "pcVar21 = *(code **)(puVar25 + 0xc82c8)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc82c8)" * (cast_expression "(code **)(puVar25 + 0xc82c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc82c8)" ( (binary_expression "puVar25 + 0xc82c8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(code **)(puVar25 + 0xc8138);" (assignment_expression "unaff_s6 = *(code **)(puVar25 + 0xc8138)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8138)" * (cast_expression "(code **)(puVar25 + 0xc8138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8138)" ( (binary_expression "puVar25 + 0xc8138" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(undefined4 *)(puVar25 + 0xc8630);" (assignment_expression "uVar7 = *(undefined4 *)(puVar25 + 0xc8630)" identifier = (pointer_expression "*(undefined4 *)(puVar25 + 0xc8630)" * (cast_expression "(undefined4 *)(puVar25 + 0xc8630)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc8630)" ( (binary_expression "puVar25 + 0xc8630" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined **)(puVar25 + 0xc8634);" (assignment_expression "puVar23 = *(undefined **)(puVar25 + 0xc8634)" identifier = (pointer_expression "*(undefined **)(puVar25 + 0xc8634)" * (cast_expression "(undefined **)(puVar25 + 0xc8634)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8634)" ( (binary_expression "puVar25 + 0xc8634" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    } while (iStack_588 != 0);" do (compound_statement "{\n      uVar12 = (*pcVar21)(piVar24);\n      uVar11 = (*unaff_s6)(uVar12);\n      (*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);\n      (**(code **)(puVar25 + 0xc8ff8))();\n      pcStack_5f0 = pcVar26;\n    }" { (expression_statement "uVar12 = (*pcVar21)(piVar24);" (assignment_expression "uVar12 = (*pcVar21)(piVar24)" identifier = (call_expression "(*pcVar21)(piVar24)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(piVar24)" ( identifier )))) ;) (expression_statement "uVar11 = (*unaff_s6)(uVar12);" (assignment_expression "uVar11 = (*unaff_s6)(uVar12)" identifier = (call_expression "(*unaff_s6)(uVar12)" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) (argument_list "(uVar12)" ( identifier )))) ;) (expression_statement "(*pcVar26)(uVar11,unaff_s5,puVar23,uVar7);" (call_expression "(*pcVar26)(uVar11,unaff_s5,puVar23,uVar7)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "(uVar11,unaff_s5,puVar23,uVar7)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar25 + 0xc8ff8))();" (call_expression "(**(code **)(puVar25 + 0xc8ff8))()" (parenthesized_expression "(**(code **)(puVar25 + 0xc8ff8))" ( (pointer_expression "**(code **)(puVar25 + 0xc8ff8)" * (pointer_expression "*(code **)(puVar25 + 0xc8ff8)" * (cast_expression "(code **)(puVar25 + 0xc8ff8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8ff8)" ( (binary_expression "puVar25 + 0xc8ff8" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5f0 = pcVar26;" (assignment_expression "pcStack_5f0 = pcVar26" identifier = identifier) ;) }) while (parenthesized_expression "(iStack_588 != 0)" ( (binary_expression "iStack_588 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar22 = iVar8 + 0x22cU & 3;" (assignment_expression "uVar22 = iVar8 + 0x22cU & 3" identifier = (binary_expression "iVar8 + 0x22cU & 3" (binary_expression "iVar8 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "pcVar26 = *(code **)(puVar25 + 0xc864c);" (assignment_expression "pcVar26 = *(code **)(puVar25 + 0xc864c)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc864c)" * (cast_expression "(code **)(puVar25 + 0xc864c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc864c)" ( (binary_expression "puVar25 + 0xc864c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = iVar8 + 0x22fU & 3;" (assignment_expression "uVar3 = iVar8 + 0x22fU & 3" identifier = (binary_expression "iVar8 + 0x22fU & 3" (binary_expression "iVar8 + 0x22fU" identifier + number_literal) & number_literal)) ;) (expression_statement "iVar17 = udhcp_read_interface\n                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200));" (assignment_expression "iVar17 = udhcp_read_interface\n                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200))" identifier = (call_expression "udhcp_read_interface\n                     ((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200))" identifier (argument_list "((char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8),\n                      (int *)(iVar8 + 0x208),(uint32_t *)0x0,(uint8_t *)(iVar8 + 0x200))" ( (cast_expression "(char *)((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8)" ( (binary_expression "(*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8 |\n                              *(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (binary_expression "(*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8) & -1 << (uVar3 + 1) * 8" (parenthesized_expression "(*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8)" ( (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n                               uVar11 & 0xffffffffU >> (4 - uVar22) * 8" (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8" (pointer_expression "*(int *)((iVar8 + 0x22cU) - uVar22)" * (cast_expression "(int *)((iVar8 + 0x22cU) - uVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22cU) - uVar22)" ( (binary_expression "(iVar8 + 0x22cU) - uVar22" (parenthesized_expression "(iVar8 + 0x22cU)" ( (binary_expression "iVar8 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar22 * 8" identifier * number_literal)) | (binary_expression "uVar11 & 0xffffffffU >> (4 - uVar22) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar22) * 8" number_literal >> (binary_expression "(4 - uVar22) * 8" (parenthesized_expression "(4 - uVar22)" ( (binary_expression "4 - uVar22" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar3 + 1) * 8" number_literal << (binary_expression "(uVar3 + 1) * 8" (parenthesized_expression "(uVar3 + 1)" ( (binary_expression "uVar3 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar8 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (pointer_expression "*(uint *)((iVar8 + 0x22fU) - uVar3)" * (cast_expression "(uint *)((iVar8 + 0x22fU) - uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22fU) - uVar3)" ( (binary_expression "(iVar8 + 0x22fU) - uVar3" (parenthesized_expression "(iVar8 + 0x22fU)" ( (binary_expression "iVar8 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar3) * 8" (parenthesized_expression "(3 - uVar3)" ( (binary_expression "3 - uVar3" number_literal - identifier) )) * number_literal))) ))) , (cast_expression "(int *)(iVar8 + 0x208)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x208)" ( (binary_expression "iVar8 + 0x208" identifier + number_literal) ))) , (cast_expression "(uint32_t *)0x0" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(uint8_t *)(iVar8 + 0x200)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x200)" ( (binary_expression "iVar8 + 0x200" identifier + number_literal) ))) )))) ;) (if_statement "if (iVar17 != 0) goto LAB_000624e4;" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000624e4;" goto statement_identifier ;)) (if_statement "if (((uVar9 & 1) == 0) &&\n     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     )) {\n    puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);\n    *(uint8_t **)(iVar8 + 0x23c) = puVar10;\n    puVar10[2] = '\x01';\n    iVar17 = *(int *)(iVar8 + 0x23c);\n    piVar24 = (int *)(iVar17 + 3);\n    *piVar24 = *(int *)(iVar8 + 0x200);\n    *(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);\n    *(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);\n  }\n  else {\n    piVar24 = (int *)0x0;\n  }" if (parenthesized_expression "(((uVar9 & 1) == 0) &&\n     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     ))" ( (binary_expression "((uVar9 & 1) == 0) &&\n     (poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     )" (parenthesized_expression "((uVar9 & 1) == 0)" ( (binary_expression "(uVar9 & 1) == 0" (parenthesized_expression "(uVar9 & 1)" ( (binary_expression "uVar9 & 1" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0\n     )" ( (comma_expression "poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'='), poVar16 == (option_set *)0x0" (assignment_expression "poVar16 = udhcp_find_option(*(option_set **)(iVar8 + 0x238),'=')" identifier = (call_expression "udhcp_find_option(*(option_set **)(iVar8 + 0x238),'=')" identifier (argument_list "(*(option_set **)(iVar8 + 0x238),'=')" ( (pointer_expression "*(option_set **)(iVar8 + 0x238)" * (cast_expression "(option_set **)(iVar8 + 0x238)" ( (type_descriptor "option_set **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x238)" ( (binary_expression "iVar8 + 0x238" identifier + number_literal) )))) , (char_literal "'='" ' character ') )))) , (binary_expression "poVar16 == (option_set *)0x0" identifier == (cast_expression "(option_set *)0x0" ( (type_descriptor "option_set *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n    puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);\n    *(uint8_t **)(iVar8 + 0x23c) = puVar10;\n    puVar10[2] = '\x01';\n    iVar17 = *(int *)(iVar8 + 0x23c);\n    piVar24 = (int *)(iVar17 + 3);\n    *piVar24 = *(int *)(iVar8 + 0x200);\n    *(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);\n    *(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);\n  }" { (expression_statement "puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7);" (assignment_expression "puVar10 = alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7)" identifier = (call_expression "alloc_dhcp_option(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7)" identifier (argument_list "(0x3d,(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c),7)" ( number_literal , (cast_expression "(char *)(*(int *)(puVar25 + 0xc801c) + 0x578c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0xc801c) + 0x578c)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x578c" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) , number_literal )))) ;) (expression_statement "*(uint8_t **)(iVar8 + 0x23c) = puVar10;" (assignment_expression "*(uint8_t **)(iVar8 + 0x23c) = puVar10" (pointer_expression "*(uint8_t **)(iVar8 + 0x23c)" * (cast_expression "(uint8_t **)(iVar8 + 0x23c)" ( (type_descriptor "uint8_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x23c)" ( (binary_expression "iVar8 + 0x23c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10[2] = '\x01';" (assignment_expression "puVar10[2] = '\x01'" (subscript_expression "puVar10[2]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "iVar17 = *(int *)(iVar8 + 0x23c);" (assignment_expression "iVar17 = *(int *)(iVar8 + 0x23c)" identifier = (pointer_expression "*(int *)(iVar8 + 0x23c)" * (cast_expression "(int *)(iVar8 + 0x23c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x23c)" ( (binary_expression "iVar8 + 0x23c" identifier + number_literal) ))))) ;) (expression_statement "piVar24 = (int *)(iVar17 + 3);" (assignment_expression "piVar24 = (int *)(iVar17 + 3)" identifier = (cast_expression "(int *)(iVar17 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 3)" ( (binary_expression "iVar17 + 3" identifier + number_literal) )))) ;) (expression_statement "*piVar24 = *(int *)(iVar8 + 0x200);" (assignment_expression "*piVar24 = *(int *)(iVar8 + 0x200)" (pointer_expression "*piVar24" * identifier) = (pointer_expression "*(int *)(iVar8 + 0x200)" * (cast_expression "(int *)(iVar8 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x200)" ( (binary_expression "iVar8 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204);" (assignment_expression "*(undefined1 *)(iVar17 + 7) = *(undefined1 *)(iVar8 + 0x204)" (pointer_expression "*(undefined1 *)(iVar17 + 7)" * (cast_expression "(undefined1 *)(iVar17 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 7)" ( (binary_expression "iVar17 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x204)" * (cast_expression "(undefined1 *)(iVar8 + 0x204)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x204)" ( (binary_expression "iVar8 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205);" (assignment_expression "*(undefined1 *)(iVar17 + 8) = *(undefined1 *)(iVar8 + 0x205)" (pointer_expression "*(undefined1 *)(iVar17 + 8)" * (cast_expression "(undefined1 *)(iVar17 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 8)" ( (binary_expression "iVar17 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x205)" * (cast_expression "(undefined1 *)(iVar8 + 0x205)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x205)" ( (binary_expression "iVar8 + 0x205" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    piVar24 = (int *)0x0;\n  }" else (compound_statement "{\n    piVar24 = (int *)0x0;\n  }" { (expression_statement "piVar24 = (int *)0x0;" (assignment_expression "piVar24 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (*pcStack_5a0 != '\0') {\n    puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);\n    *(uint8_t **)(iVar8 + 0x240) = puVar10;\n  }" if (parenthesized_expression "(*pcStack_5a0 != '\0')" ( (binary_expression "*pcStack_5a0 != '\0'" (pointer_expression "*pcStack_5a0" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);\n    *(uint8_t **)(iVar8 + 0x240) = puVar10;\n  }" { (expression_statement "puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0);" (assignment_expression "puVar10 = alloc_dhcp_option(0x3c,pcStack_5a0,0)" identifier = (call_expression "alloc_dhcp_option(0x3c,pcStack_5a0,0)" identifier (argument_list "(0x3c,pcStack_5a0,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(uint8_t **)(iVar8 + 0x240) = puVar10;" (assignment_expression "*(uint8_t **)(iVar8 + 0x240) = puVar10" (pointer_expression "*(uint8_t **)(iVar8 + 0x240)" * (cast_expression "(uint8_t **)(iVar8 + 0x240)" ( (type_descriptor "uint8_t **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar8 + 0x240)" ( (binary_expression "iVar8 + 0x240" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((uVar9 & 0x4000) != 0) {\n    (**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);\n    **(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;\n  }" if (parenthesized_expression "((uVar9 & 0x4000) != 0)" ( (binary_expression "(uVar9 & 0x4000) != 0" (parenthesized_expression "(uVar9 & 0x4000)" ( (binary_expression "uVar9 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);\n    **(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;\n  }" { (expression_statement "(**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18);" (call_expression "(**(code **)(puVar25 + 0xc8c0c))(**(undefined4 **)(puVar25 + 0xc803c),1,0x18)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8c0c))" ( (pointer_expression "**(code **)(puVar25 + 0xc8c0c)" * (pointer_expression "*(code **)(puVar25 + 0xc8c0c)" * (cast_expression "(code **)(puVar25 + 0xc8c0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8c0c)" ( (binary_expression "puVar25 + 0xc8c0c" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar25 + 0xc803c),1,0x18)" ( (pointer_expression "**(undefined4 **)(puVar25 + 0xc803c)" * (pointer_expression "*(undefined4 **)(puVar25 + 0xc803c)" * (cast_expression "(undefined4 **)(puVar25 + 0xc803c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc803c)" ( (binary_expression "puVar25 + 0xc803c" identifier + number_literal) ))))) , number_literal , number_literal ))) ;) (expression_statement "**(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2;" (assignment_expression "**(byte **)(puVar25 + 0xc80cc) = **(byte **)(puVar25 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar25 + 0xc80cc)" * (pointer_expression "*(byte **)(puVar25 + 0xc80cc)" * (cast_expression "(byte **)(puVar25 + 0xc80cc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc80cc)" ( (binary_expression "puVar25 + 0xc80cc" identifier + number_literal) ))))) = (binary_expression "**(byte **)(puVar25 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar25 + 0xc80cc)" * (pointer_expression "*(byte **)(puVar25 + 0xc80cc)" * (cast_expression "(byte **)(puVar25 + 0xc80cc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc80cc)" ( (binary_expression "puVar25 + 0xc80cc" identifier + number_literal) ))))) | number_literal)) ;) })) (expression_statement "pcStack_5f0 = *(code **)(puVar25 + 0xc8058);" (assignment_expression "pcStack_5f0 = *(code **)(puVar25 + 0xc8058)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8058)" * (cast_expression "(code **)(puVar25 + 0xc8058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8058)" ( (binary_expression "puVar25 + 0xc8058" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (code *)auStack_570;" (assignment_expression "unaff_s6 = (code *)auStack_570" identifier = (cast_expression "(code *)auStack_570" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iStack_5d4 = *(int *)(puVar25 + 0xc801c);" (assignment_expression "iStack_5d4 = *(int *)(puVar25 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar25 + 0xc8510))();" (call_expression "(**(code **)(puVar25 + 0xc8510))()" (parenthesized_expression "(**(code **)(puVar25 + 0xc8510))" ( (pointer_expression "**(code **)(puVar25 + 0xc8510)" * (pointer_expression "*(code **)(puVar25 + 0xc8510)" * (cast_expression "(code **)(puVar25 + 0xc8510)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8510)" ( (binary_expression "puVar25 + 0xc8510" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_5b4 = *(code **)(puVar25 + 0xc8650);" (assignment_expression "pcStack_5b4 = *(code **)(puVar25 + 0xc8650)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8650)" * (cast_expression "(code **)(puVar25 + 0xc8650)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8650)" ( (binary_expression "puVar25 + 0xc8650" identifier + number_literal) ))))) ;) (expression_statement "puVar23 = *(undefined **)(puVar25 + 0xc8008);" (assignment_expression "puVar23 = *(undefined **)(puVar25 + 0xc8008)" identifier = (pointer_expression "*(undefined **)(puVar25 + 0xc8008)" * (cast_expression "(undefined **)(puVar25 + 0xc8008)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8008)" ( (binary_expression "puVar25 + 0xc8008" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = *(int **)(puVar25 + 0xc8008);" (assignment_expression "unaff_s5 = *(int **)(puVar25 + 0xc8008)" identifier = (pointer_expression "*(int **)(puVar25 + 0xc8008)" * (cast_expression "(int **)(puVar25 + 0xc8008)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8008)" ( (binary_expression "puVar25 + 0xc8008" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar25 + 0xc82ac))(*(undefined4 *)(iVar8 + 0x230));" (call_expression "(**(code **)(puVar25 + 0xc82ac))(*(undefined4 *)(iVar8 + 0x230))" (parenthesized_expression "(**(code **)(puVar25 + 0xc82ac))" ( (pointer_expression "**(code **)(puVar25 + 0xc82ac)" * (pointer_expression "*(code **)(puVar25 + 0xc82ac)" * (cast_expression "(code **)(puVar25 + 0xc82ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc82ac)" ( (binary_expression "puVar25 + 0xc82ac" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + 0x230))" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x230)" * (cast_expression "(undefined4 *)(iVar8 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "iStack_5ac = *(int *)(puVar25 + 0xc801c);" (assignment_expression "iStack_5ac = *(int *)(puVar25 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6084);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6084)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6084)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6084" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "udhcp_sp_setup();" (call_expression "udhcp_sp_setup()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar25 + 0xc8128))();" (call_expression "(**(code **)(puVar25 + 0xc8128))()" (parenthesized_expression "(**(code **)(puVar25 + 0xc8128))" ( (pointer_expression "**(code **)(puVar25 + 0xc8128)" * (pointer_expression "*(code **)(puVar25 + 0xc8128)" * (cast_expression "(code **)(puVar25 + 0xc8128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8128)" ( (binary_expression "puVar25 + 0xc8128" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar25 + 0xc8df8))(extraout_v1);" (call_expression "(**(code **)(puVar25 + 0xc8df8))(extraout_v1)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8df8))" ( (pointer_expression "**(code **)(puVar25 + 0xc8df8)" * (pointer_expression "*(code **)(puVar25 + 0xc8df8)" * (cast_expression "(code **)(puVar25 + 0xc8df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8df8)" ( (binary_expression "puVar25 + 0xc8df8" identifier + number_literal) ))))) )) (argument_list "(extraout_v1)" ( identifier ))) ;) (expression_statement "puVar23[-0x4c42] = 0;" (assignment_expression "puVar23[-0x4c42] = 0" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "pcStack_5e4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0);" (assignment_expression "pcStack_5e4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0)" identifier = (cast_expression "(code *)(*(int *)(puVar25 + 0xc85b4) + 0x19d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0xc85b4) + 0x19d0)" ( (binary_expression "*(int *)(puVar25 + 0xc85b4) + 0x19d0" (pointer_expression "*(int *)(puVar25 + 0xc85b4)" * (cast_expression "(int *)(puVar25 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc85b4)" ( (binary_expression "puVar25 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "udhcp_run_script((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008));" (call_expression "udhcp_run_script((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008))" identifier (argument_list "((dhcp_packet *)0x0,(char *)(iStack_5d4 + 0x6008))" ( (cast_expression "(dhcp_packet *)0x0" ( (type_descriptor "dhcp_packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(char *)(iStack_5d4 + 0x6008)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5d4 + 0x6008)" ( (binary_expression "iStack_5d4 + 0x6008" identifier + number_literal) ))) ))) ;) (expression_statement "pcStack_5e8 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194);" (assignment_expression "pcStack_5e8 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194)" identifier = (cast_expression "(code *)(*(int *)(puVar25 + 0xc85b4) + 0x1194)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0xc85b4) + 0x1194)" ( (binary_expression "*(int *)(puVar25 + 0xc85b4) + 0x1194" (pointer_expression "*(int *)(puVar25 + 0xc85b4)" * (cast_expression "(int *)(puVar25 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc85b4)" ( (binary_expression "puVar25 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "change_listen_mode(2);" (call_expression "change_listen_mode(2)" identifier (argument_list "(2)" ( number_literal ))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "iStack_5a8 = *(int *)(puVar25 + 0xc801c) + 0x623c;" (assignment_expression "iStack_5a8 = *(int *)(puVar25 + 0xc801c) + 0x623c" identifier = (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x623c" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "pcStack_5a4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8);" (assignment_expression "pcStack_5a4 = (code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8)" identifier = (cast_expression "(code *)(*(int *)(puVar25 + 0xc85b4) + 0x1fc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0xc85b4) + 0x1fc8)" ( (binary_expression "*(int *)(puVar25 + 0xc85b4) + 0x1fc8" (pointer_expression "*(int *)(puVar25 + 0xc85b4)" * (cast_expression "(int *)(puVar25 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc85b4)" ( (binary_expression "puVar25 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00062678:\n  iVar20 = uVar11 - uVar22;" statement_identifier : (expression_statement "iVar20 = uVar11 - uVar22;" (assignment_expression "iVar20 = uVar11 - uVar22" identifier = (binary_expression "uVar11 - uVar22" identifier - identifier)) ;)) (expression_statement "pcVar21 = unaff_s6;" (assignment_expression "pcVar21 = unaff_s6" identifier = identifier) ;) (expression_statement "(*pcStack_5b4)(unaff_s6,iVar17);" (call_expression "(*pcStack_5b4)(unaff_s6,iVar17)" (parenthesized_expression "(*pcStack_5b4)" ( (pointer_expression "*pcStack_5b4" * identifier) )) (argument_list "(unaff_s6,iVar17)" ( identifier , identifier ))) ;) (if_statement "if (0 < iVar20) goto code_r0x00062698;" if (parenthesized_expression "(0 < iVar20)" ( (binary_expression "0 < iVar20" number_literal < identifier) )) (goto_statement "goto code_r0x00062698;" goto statement_identifier ;)) (goto_statement "goto LAB_00062724;" goto statement_identifier ;) (labeled_statement "code_r0x00062698:\n  pcVar27 = *(code **)(puVar25 + 0xc8618);" statement_identifier : (expression_statement "pcVar27 = *(code **)(puVar25 + 0xc8618);" (assignment_expression "pcVar27 = *(code **)(puVar25 + 0xc8618)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8618)" * (cast_expression "(code **)(puVar25 + 0xc8618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8618)" ( (binary_expression "puVar25 + 0xc8618" identifier + number_literal) ))))) ;)) (expression_statement "iVar13 = (*pcVar27)();" (assignment_expression "iVar13 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar17 = 1000;" (assignment_expression "iVar17 = 1000" identifier = number_literal) ;) (if_statement "if (iVar20 < 0x20c49b) goto LAB_00063074;" if (parenthesized_expression "(iVar20 < 0x20c49b)" ( (binary_expression "iVar20 < 0x20c49b" identifier < number_literal) )) (goto_statement "goto LAB_00063074;" goto statement_identifier ;)) (expression_statement "iVar20 = 0x7fffffff;" (assignment_expression "iVar20 = 0x7fffffff" identifier = number_literal) ;) (while_statement "while (pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0) {\n    if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }\n    iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar20 = iVar20 * iVar17;\n  }" while (parenthesized_expression "(pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0)" ( (comma_expression "pcVar21 = unaff_s6, iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0" (assignment_expression "pcVar21 = unaff_s6" identifier = identifier) , (comma_expression "iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20),\n        iVar17 < 0" (assignment_expression "iVar17 = (**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20)" identifier = (call_expression "(**(code **)(puVar25 + 0xc8ed4))(unaff_s6,2,iVar20)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8ed4))" ( (pointer_expression "**(code **)(puVar25 + 0xc8ed4)" * (pointer_expression "*(code **)(puVar25 + 0xc8ed4)" * (cast_expression "(code **)(puVar25 + 0xc8ed4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8ed4)" ( (binary_expression "puVar25 + 0xc8ed4" identifier + number_literal) ))))) )) (argument_list "(unaff_s6,2,iVar20)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar17 < 0" identifier < number_literal))) )) (compound_statement "{\n    if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }\n    iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar20 = iVar20 * iVar17;\n  }" { (if_statement "if (*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4) {\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }" if (parenthesized_expression "(*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4)" ( (binary_expression "*(int *)**(undefined4 **)(puVar25 + 0xc80a4) == 4" (pointer_expression "*(int *)**(undefined4 **)(puVar25 + 0xc80a4)" * (cast_expression "(int *)**(undefined4 **)(puVar25 + 0xc80a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar25 + 0xc80a4)" * (pointer_expression "*(undefined4 **)(puVar25 + 0xc80a4)" * (cast_expression "(undefined4 **)(puVar25 + 0xc80a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc80a4)" ( (binary_expression "puVar25 + 0xc80a4" identifier + number_literal) ))))))) == number_literal) )) (compound_statement "{\n      iVar20 = (*pcVar27)();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar22 = iVar20 + (uVar22 - iVar13);\n      goto LAB_00062678;\n    }" { (expression_statement "iVar20 = (*pcVar27)();" (assignment_expression "iVar20 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = iVar20 + (uVar22 - iVar13);" (assignment_expression "uVar22 = iVar20 + (uVar22 - iVar13)" identifier = (binary_expression "iVar20 + (uVar22 - iVar13)" identifier + (parenthesized_expression "(uVar22 - iVar13)" ( (binary_expression "uVar22 - iVar13" identifier - identifier) )))) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518);" (assignment_expression "iVar17 = (**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518)" identifier = (call_expression "(**(code **)(puVar25 + 0xc807c))(*(int *)(puVar25 + 0xc801c) + 0x3518)" (parenthesized_expression "(**(code **)(puVar25 + 0xc807c))" ( (pointer_expression "**(code **)(puVar25 + 0xc807c)" * (pointer_expression "*(code **)(puVar25 + 0xc807c)" * (cast_expression "(code **)(puVar25 + 0xc807c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc807c)" ( (binary_expression "puVar25 + 0xc807c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x3518)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x3518" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00063074:\n    iVar20 = iVar20 * iVar17;" statement_identifier : (expression_statement "iVar20 = iVar20 * iVar17;" (assignment_expression "iVar20 = iVar20 * iVar17" identifier = (binary_expression "iVar20 * iVar17" identifier * identifier)) ;)) })) (if_statement "if (iVar17 == 0) {\nLAB_00062724:\n    uVar11 = iVar8 + 0x22cU & 3;\n    uVar22 = iVar8 + 0x22fU & 3;\n    iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200);\n    if (iVar17 == 0) {\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00062724:\n    uVar11 = iVar8 + 0x22cU & 3;\n    uVar22 = iVar8 + 0x22fU & 3;\n    iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200);\n    if (iVar17 == 0) {\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" { (labeled_statement "LAB_00062724:\n    uVar11 = iVar8 + 0x22cU & 3;" statement_identifier : (expression_statement "uVar11 = iVar8 + 0x22cU & 3;" (assignment_expression "uVar11 = iVar8 + 0x22cU & 3" identifier = (binary_expression "iVar8 + 0x22cU & 3" (binary_expression "iVar8 + 0x22cU" identifier + number_literal) & number_literal)) ;)) (expression_statement "uVar22 = iVar8 + 0x22fU & 3;" (assignment_expression "uVar22 = iVar8 + 0x22fU & 3" identifier = (binary_expression "iVar8 + 0x22fU & 3" (binary_expression "iVar8 + 0x22fU" identifier + number_literal) & number_literal)) ;) (expression_statement "iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200);" (assignment_expression "iVar17 = (*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200)" identifier = (call_expression "(*pcVar26)((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200)" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "((*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8,iVar8 + 0x208,0,\n                        iVar8 + 0x200)" ( (binary_expression "(*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8 |\n                        *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8" (binary_expression "(*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8) & -1 << (uVar22 + 1) * 8" (parenthesized_expression "(*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8)" ( (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8 |\n                        (uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8" (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar11) << uVar11 * 8" (pointer_expression "*(int *)((iVar8 + 0x22cU) - uVar11)" * (cast_expression "(int *)((iVar8 + 0x22cU) - uVar11)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22cU) - uVar11)" ( (binary_expression "(iVar8 + 0x22cU) - uVar11" (parenthesized_expression "(iVar8 + 0x22cU)" ( (binary_expression "iVar8 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar11 * 8" identifier * number_literal)) | (binary_expression "(uint)pcVar21 & 0xffffffffU >> (4 - uVar11) * 8" (cast_expression "(uint)pcVar21" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar11) * 8" number_literal >> (binary_expression "(4 - uVar11) * 8" (parenthesized_expression "(4 - uVar11)" ( (binary_expression "4 - uVar11" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar22 + 1) * 8" number_literal << (binary_expression "(uVar22 + 1) * 8" (parenthesized_expression "(uVar22 + 1)" ( (binary_expression "uVar22 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8" (pointer_expression "*(uint *)((iVar8 + 0x22fU) - uVar22)" * (cast_expression "(uint *)((iVar8 + 0x22fU) - uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22fU) - uVar22)" ( (binary_expression "(iVar8 + 0x22fU) - uVar22" (parenthesized_expression "(iVar8 + 0x22fU)" ( (binary_expression "iVar8 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar22) * 8" (parenthesized_expression "(3 - uVar22)" ( (binary_expression "3 - uVar22" number_literal - identifier) )) * number_literal))) , (binary_expression "iVar8 + 0x208" identifier + number_literal) , number_literal , (binary_expression "iVar8 + 0x200" identifier + number_literal) )))) ;) (if_statement "if (iVar17 == 0) {\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }\n      iVar17 = unaff_s5[-0x17ff];\n      if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }\n      uVar22 = 0;\n      uVar11 = 0x7fffffff;\n      goto LAB_00062678;\n    }" { (if_statement "if (piVar24 != (int *)0x0) {\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }" if (parenthesized_expression "(piVar24 != (int *)0x0)" ( (binary_expression "piVar24 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *piVar24 = *(int *)(iVar8 + 0x200);\n        *(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);\n        *(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);\n      }" { (expression_statement "*piVar24 = *(int *)(iVar8 + 0x200);" (assignment_expression "*piVar24 = *(int *)(iVar8 + 0x200)" (pointer_expression "*piVar24" * identifier) = (pointer_expression "*(int *)(iVar8 + 0x200)" * (cast_expression "(int *)(iVar8 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x200)" ( (binary_expression "iVar8 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204);" (assignment_expression "*(undefined1 *)(piVar24 + 1) = *(undefined1 *)(iVar8 + 0x204)" (pointer_expression "*(undefined1 *)(piVar24 + 1)" * (cast_expression "(undefined1 *)(piVar24 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar24 + 1)" ( (binary_expression "piVar24 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x204)" * (cast_expression "(undefined1 *)(iVar8 + 0x204)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x204)" ( (binary_expression "iVar8 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205);" (assignment_expression "*(undefined1 *)((int)piVar24 + 5) = *(undefined1 *)(iVar8 + 0x205)" (pointer_expression "*(undefined1 *)((int)piVar24 + 5)" * (cast_expression "(undefined1 *)((int)piVar24 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar24 + 5)" ( (binary_expression "(int)piVar24 + 5" (cast_expression "(int)piVar24" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar8 + 0x205)" * (cast_expression "(undefined1 *)(iVar8 + 0x205)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x205)" ( (binary_expression "iVar8 + 0x205" identifier + number_literal) ))))) ;) })) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if ((byte)puVar23[-0x4c42] < 6) {\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }" if (parenthesized_expression "((byte)puVar23[-0x4c42] < 6)" ( (binary_expression "(byte)puVar23[-0x4c42] < 6" (cast_expression "(byte)puVar23[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n        (*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();\n        return;\n      }" { comment comment (expression_statement "(*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))();" (call_expression "(*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))()" (parenthesized_expression "(*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0))" ( (pointer_expression "*(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0)" * (cast_expression "(code *)(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0)" ( (binary_expression "puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)\n                  + 0xcffe0" (binary_expression "puVar25 +\n                  *(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)" * (cast_expression "(int *)(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6224 + (uint)(byte)puVar23[-0x4c42] * 4" (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6224" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) + (binary_expression "(uint)(byte)puVar23[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar23[-0x4c42]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar23[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]))) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uVar11 = 0x7fffffff;" (assignment_expression "uVar11 = 0x7fffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto joined_r0x00062be8;" goto statement_identifier ;) })) (expression_statement "iVar17 = udhcp_sp_read();" (assignment_expression "iVar17 = udhcp_sp_read()" identifier = (call_expression "udhcp_sp_read()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar17 == 0x10) {\n    *(undefined1 *)(iVar8 + 0x24c) = 0;\n    *(undefined1 *)(iVar8 + 0x24d) = 0;\n    (*pcStack_5f0)(iStack_5ac + 0x60f8);\n    if ((byte)puVar23[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    uVar11 = 0;\n    uVar22 = 0;\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar17 == 0x10)" ( (binary_expression "iVar17 == 0x10" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar8 + 0x24c) = 0;\n    *(undefined1 *)(iVar8 + 0x24d) = 0;\n    (*pcStack_5f0)(iStack_5ac + 0x60f8);\n    if ((byte)puVar23[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    uVar11 = 0;\n    uVar22 = 0;\n    goto LAB_00062678;\n  }" { (expression_statement "*(undefined1 *)(iVar8 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar8 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar8 + 0x24c)" * (cast_expression "(undefined1 *)(iVar8 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24c)" ( (binary_expression "iVar8 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar8 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar8 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar8 + 0x24d)" * (cast_expression "(undefined1 *)(iVar8 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24d)" ( (binary_expression "iVar8 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*pcStack_5f0)(iStack_5ac + 0x60f8);" (call_expression "(*pcStack_5f0)(iStack_5ac + 0x60f8)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(iStack_5ac + 0x60f8)" ( (binary_expression "iStack_5ac + 0x60f8" identifier + number_literal) ))) ;) (if_statement "if ((byte)puVar23[-0x4c42] < 7) {\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }" if (parenthesized_expression "((byte)puVar23[-0x4c42] < 7)" ( (binary_expression "(byte)puVar23[-0x4c42] < 7" (cast_expression "(byte)puVar23[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();\n      return;\n    }" { comment comment (expression_statement "(*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))();" (call_expression "(*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))()" (parenthesized_expression "(*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0))" ( (pointer_expression "*(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0)" * (cast_expression "(code *)(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0)" ( (binary_expression "puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar25 + *(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4)" identifier + (pointer_expression "*(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4)" * (cast_expression "(int *)(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4)" ( (binary_expression "iStack_5a8 + (uint)(byte)puVar23[-0x4c42] * 4" identifier + (binary_expression "(uint)(byte)puVar23[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar23[-0x4c42]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar23[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]))) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (if_statement "if (iVar17 == 0x11) {\n    uVar11 = 0x7fffffff;\n    (*pcStack_5a4)(uStack_578,uStack_5ec);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar17 == 0x11)" ( (binary_expression "iVar17 == 0x11" identifier == number_literal) )) (compound_statement "{\n    uVar11 = 0x7fffffff;\n    (*pcStack_5a4)(uStack_578,uStack_5ec);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "uVar11 = 0x7fffffff;" (assignment_expression "uVar11 = 0x7fffffff" identifier = number_literal) ;) (expression_statement "(*pcStack_5a4)(uStack_578,uStack_5ec);" (call_expression "(*pcStack_5a4)(uStack_578,uStack_5ec)" (parenthesized_expression "(*pcStack_5a4)" ( (pointer_expression "*pcStack_5a4" * identifier) )) (argument_list "(uStack_578,uStack_5ec)" ( identifier , identifier ))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (if_statement "if (iVar17 == 0xf) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" if (parenthesized_expression "(iVar17 == 0xf)" ( (binary_expression "iVar17 == 0xf" identifier == number_literal) )) (compound_statement "{\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" { (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6110)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6110" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto joined_r0x00062be8;" goto statement_identifier ;) })) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (sStack_562 == 0) goto LAB_00062678;" if (parenthesized_expression "(sStack_562 == 0)" ( (binary_expression "sStack_562 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) (expression_statement "iVar20 = *(int *)(puVar25 + 0xc8008);" (assignment_expression "iVar20 = *(int *)(puVar25 + 0xc8008)" identifier = (pointer_expression "*(int *)(puVar25 + 0xc8008)" * (cast_expression "(int *)(puVar25 + 0xc8008)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc8008)" ( (binary_expression "puVar25 + 0xc8008" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar20 + -0x4c41) == '\x01') {\n    iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);\n  }\n  else {\n    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);\n  }" if (parenthesized_expression "(*(char *)(iVar20 + -0x4c41) == '\x01')" ( (binary_expression "*(char *)(iVar20 + -0x4c41) == '\x01'" (pointer_expression "*(char *)(iVar20 + -0x4c41)" * (cast_expression "(char *)(iVar20 + -0x4c41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x4c41)" ( (binary_expression "iVar20 + -0x4c41" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);\n  }" { (expression_statement "iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17);" (assignment_expression "iVar17 = udhcp_recv_kernel_packet(&dStack_560,iVar17)" identifier = (call_expression "udhcp_recv_kernel_packet(&dStack_560,iVar17)" identifier (argument_list "(&dStack_560,iVar17)" ( (pointer_expression "&dStack_560" & identifier) , identifier )))) ;) }) (else_clause "else {\n    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);\n  }" else (compound_statement "{\n    iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);\n  }" { (expression_statement "iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17);" (assignment_expression "iVar17 = udhcp_recv_raw_packet(&dStack_560,iVar17)" identifier = (call_expression "udhcp_recv_raw_packet(&dStack_560,iVar17)" identifier (argument_list "(&dStack_560,iVar17)" ( (pointer_expression "&dStack_560" & identifier) , identifier )))) ;) }))) (if_statement "if (iVar17 == -1) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);\n    (**(code **)(puVar25 + 0xc8f94))(uStack_580);\n    (*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));\n    iVar17 = (*pcVar27)();\n    uVar22 = iVar17 + (uVar22 - iVar13);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar17 == -1)" ( (binary_expression "iVar17 == -1" identifier == number_literal) )) (compound_statement "{\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);\n    (**(code **)(puVar25 + 0xc8f94))(uStack_580);\n    (*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));\n    iVar17 = (*pcVar27)();\n    uVar22 = iVar17 + (uVar22 - iVar13);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6124)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6124)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6124" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar25 + 0xc8f94))(uStack_580);" (call_expression "(**(code **)(puVar25 + 0xc8f94))(uStack_580)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8f94))" ( (pointer_expression "**(code **)(puVar25 + 0xc8f94)" * (pointer_expression "*(code **)(puVar25 + 0xc8f94)" * (cast_expression "(code **)(puVar25 + 0xc8f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8f94)" ( (binary_expression "puVar25 + 0xc8f94" identifier + number_literal) ))))) )) (argument_list "(uStack_580)" ( identifier ))) ;) (expression_statement "(*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41));" (call_expression "(*pcStack_5e8)((int)*(char *)(iVar20 + -0x4c41))" (parenthesized_expression "(*pcStack_5e8)" ( (pointer_expression "*pcStack_5e8" * identifier) )) (argument_list "((int)*(char *)(iVar20 + -0x4c41))" ( (cast_expression "(int)*(char *)(iVar20 + -0x4c41)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar20 + -0x4c41)" * (cast_expression "(char *)(iVar20 + -0x4c41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + -0x4c41)" ( (binary_expression "iVar20 + -0x4c41" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar17 = (*pcVar27)();" (assignment_expression "iVar17 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar22 = iVar17 + (uVar22 - iVar13);" (assignment_expression "uVar22 = iVar17 + (uVar22 - iVar13)" identifier = (binary_expression "iVar17 + (uVar22 - iVar13)" identifier + (parenthesized_expression "(uVar22 - iVar13)" ( (binary_expression "uVar22 - iVar13" identifier - identifier) )))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar20 = (*pcVar27)();" (assignment_expression "iVar20 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar22 = iVar20 + (uVar22 - iVar13);" (assignment_expression "uVar22 = iVar20 + (uVar22 - iVar13)" identifier = (binary_expression "iVar20 + (uVar22 - iVar13)" identifier + (parenthesized_expression "(uVar22 - iVar13)" ( (binary_expression "uVar22 - iVar13" identifier - identifier) )))) ;) (if_statement "if ((((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||\n     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)) {\nLAB_00062c40:\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "((((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||\n     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0))" ( (binary_expression "(((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')) ||\n     (iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)" (parenthesized_expression "(((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06'))" ( (binary_expression "((iVar17 < 0) || (dStack_560.xid != uStack_5dc)) || (dStack_560.hlen != '\x06')" (parenthesized_expression "((iVar17 < 0) || (dStack_560.xid != uStack_5dc))" ( (binary_expression "(iVar17 < 0) || (dStack_560.xid != uStack_5dc)" (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) || (parenthesized_expression "(dStack_560.xid != uStack_5dc)" ( (binary_expression "dStack_560.xid != uStack_5dc" (field_expression "dStack_560.xid" identifier . field_identifier) != identifier) ))) )) || (parenthesized_expression "(dStack_560.hlen != '\x06')" ( (binary_expression "dStack_560.hlen != '\x06'" (field_expression "dStack_560.hlen" identifier . field_identifier) != (char_literal "'\x06'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0)" ( (comma_expression "iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6), iVar17 != 0" (assignment_expression "iVar17 = (**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6)" identifier = (call_expression "(**(code **)(puVar25 + 0xc8fa4))(dStack_560.chaddr,iVar8 + 0x200,6)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8fa4))" ( (pointer_expression "**(code **)(puVar25 + 0xc8fa4)" * (pointer_expression "*(code **)(puVar25 + 0xc8fa4)" * (cast_expression "(code **)(puVar25 + 0xc8fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8fa4)" ( (binary_expression "puVar25 + 0xc8fa4" identifier + number_literal) ))))) )) (argument_list "(dStack_560.chaddr,iVar8 + 0x200,6)" ( (field_expression "dStack_560.chaddr" identifier . field_identifier) , (binary_expression "iVar8 + 0x200" identifier + number_literal) , number_literal )))) , (binary_expression "iVar17 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_00062c40:\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (labeled_statement "LAB_00062c40:\n    iVar17 = unaff_s5[-0x17ff];" statement_identifier : (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "puVar10 = udhcp_get_option(&dStack_560,0x35);" (assignment_expression "puVar10 = udhcp_get_option(&dStack_560,0x35)" identifier = (call_expression "udhcp_get_option(&dStack_560,0x35)" identifier (argument_list "(&dStack_560,0x35)" ( (pointer_expression "&dStack_560" & identifier) , number_literal )))) ;) (expression_statement "uVar6 = uStack_578;" (assignment_expression "uVar6 = uStack_578" identifier = identifier) ;) (if_statement "if (puVar10 == (uint8_t *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(puVar10 == (uint8_t *)0x0)" ( (binary_expression "puVar10 == (uint8_t *)0x0" identifier == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);\n    iVar17 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6148)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6148)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6148" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar20 = (int)(char)puVar23[-0x4c42];" (assignment_expression "iVar20 = (int)(char)puVar23[-0x4c42]" identifier = (cast_expression "(int)(char)puVar23[-0x4c42]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar23[-0x4c42]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ])))) ;) (if_statement "if (iVar20 != 1) {\n    if (iVar20 < 2) {\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar20 != 1)" ( (binary_expression "iVar20 != 1" identifier != number_literal) )) (compound_statement "{\n    if (iVar20 < 2) {\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar17 = unaff_s5[-0x17ff];\n    if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;\n  }" { (if_statement "if (iVar20 < 2) {\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" if (parenthesized_expression "(iVar20 < 2)" ( (binary_expression "iVar20 < 2" identifier < number_literal) )) (compound_statement "{\n      iVar17 = unaff_s5[-0x17ff];\n      if (iVar20 != 0) goto LAB_00062678;\n      if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" { (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 != 0) goto LAB_00062678;" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) (if_statement "if (*puVar10 == '\x02') {\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" if (parenthesized_expression "(*puVar10 == '\x02')" ( (binary_expression "*puVar10 == '\x02'" (pointer_expression "*puVar10" * identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        uStack_578 = 0;\n        puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);\n        if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" { (expression_statement "uStack_578 = 0;" (assignment_expression "uStack_578 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36);" (assignment_expression "puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36)" identifier = (cast_expression "(uint32_t *)udhcp_get_option32(&dStack_560,0x36)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "udhcp_get_option32(&dStack_560,0x36)" identifier (argument_list "(&dStack_560,0x36)" ( (pointer_expression "&dStack_560" & identifier) , number_literal ))))) ;) (if_statement "if (puVar14 == (uint32_t *)0x0) {\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }\n        else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }" if (parenthesized_expression "(puVar14 == (uint32_t *)0x0)" ( (binary_expression "puVar14 == (uint32_t *)0x0" identifier == (cast_expression "(uint32_t *)0x0" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar11 = 0;\n          uVar22 = 0;\n          (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);\n          uStack_5ec = dStack_560.yiaddr;\n          iVar17 = unaff_s5[-0x17ff];\n          puVar23[-0x4c42] = 1;\n        }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6170)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6170)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6170" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uStack_5ec = dStack_560.yiaddr;" (assignment_expression "uStack_5ec = dStack_560.yiaddr" identifier = (field_expression "dStack_560.yiaddr" identifier . field_identifier)) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "puVar23[-0x4c42] = 1;" (assignment_expression "puVar23[-0x4c42] = 1" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }" else (compound_statement "{\n          uStack_578 = *puVar14;\n          uVar11 = 0;\n          iVar17 = unaff_s5[-0x17ff];\n          uVar22 = 0;\n          uStack_5ec = dStack_560.yiaddr;\n          puVar23[-0x4c42] = 1;\n        }" { (expression_statement "uStack_578 = *puVar14;" (assignment_expression "uStack_578 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "uStack_5ec = dStack_560.yiaddr;" (assignment_expression "uStack_5ec = dStack_560.yiaddr" identifier = (field_expression "dStack_560.yiaddr" identifier . field_identifier)) ;) (expression_statement "puVar23[-0x4c42] = 1;" (assignment_expression "puVar23[-0x4c42] = 1" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) }))) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto LAB_00062c40;" goto statement_identifier ;) })) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (2 < (iVar20 - 3U & 0xff)) goto LAB_00062678;" if (parenthesized_expression "(2 < (iVar20 - 3U & 0xff))" ( (binary_expression "2 < (iVar20 - 3U & 0xff)" number_literal < (parenthesized_expression "(iVar20 - 3U & 0xff)" ( (binary_expression "iVar20 - 3U & 0xff" (binary_expression "iVar20 - 3U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) })) (if_statement "if (*puVar10 != '\x05') {\n    if ((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" if (parenthesized_expression "(*puVar10 != '\x05')" ( (binary_expression "*puVar10 != '\x05'" (pointer_expression "*puVar10" * identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n    if ((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" { (if_statement "if ((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))) {\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" if (parenthesized_expression "((*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574))))))" ( (binary_expression "(*puVar10 == '\x06') &&\n       ((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))" (parenthesized_expression "(*puVar10 == '\x06')" ( (binary_expression "*puVar10 == '\x06'" (pointer_expression "*puVar10" * identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) && (parenthesized_expression "((uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))))" ( (parenthesized_expression "(uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574))))" ( (binary_expression "uStack_578 == 0 ||\n        ((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))" (binary_expression "uStack_578 == 0" identifier == number_literal) || (parenthesized_expression "((puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)))" ( (parenthesized_expression "(puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574))" ( (comma_expression "puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36), puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)" (assignment_expression "puVar14 = (uint32_t *)udhcp_get_option32(&dStack_560,0x36)" identifier = (cast_expression "(uint32_t *)udhcp_get_option32(&dStack_560,0x36)" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "udhcp_get_option32(&dStack_560,0x36)" identifier (argument_list "(&dStack_560,0x36)" ( (pointer_expression "&dStack_560" & identifier) , number_literal ))))) , (binary_expression "puVar14 != (uint32_t *)0x0 &&\n         (uStack_574 = *puVar14, uVar6 == uStack_574)" (binary_expression "puVar14 != (uint32_t *)0x0" identifier != (cast_expression "(uint32_t *)0x0" ( (type_descriptor "uint32_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(uStack_574 = *puVar14, uVar6 == uStack_574)" ( (comma_expression "uStack_574 = *puVar14, uVar6 == uStack_574" (assignment_expression "uStack_574 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) , (binary_expression "uVar6 == uStack_574" identifier == identifier)) )))) )) ))) )) ))) )) (compound_statement "{\n      (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);\n      (*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);\n      if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }\n      uVar11 = 0;\n      (*pcStack_5e8)(2);\n      uVar22 = 0;\n      (**(code **)(puVar25 + 0xc8f94))(3);\n      iVar17 = unaff_s5[-0x17ff];\n      puVar23[-0x4c42] = 0;\n      *(undefined1 *)(iVar8 + 0x24c) = 0;\n      uStack_5ec = 0;\n      *(undefined1 *)(iVar8 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" { (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x6118,*(int *)(puVar25 + 0xc801c) + 0x6214)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6214" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220);" (call_expression "(*pcStack_5e4)(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220)" (parenthesized_expression "(*pcStack_5e4)" ( (pointer_expression "*pcStack_5e4" * identifier) )) (argument_list "(&dStack_560,*(int *)(puVar25 + 0xc801c) + 0x6220)" ( (pointer_expression "&dStack_560" & identifier) , (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6220" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puVar23[-0x4c42] != '\x01') {\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }" if (parenthesized_expression "(puVar23[-0x4c42] != '\x01')" ( (binary_expression "puVar23[-0x4c42] != '\x01'" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n      }" { (expression_statement "(*pcStack_5e4)(0,iStack_5d4 + 0x6008);" (call_expression "(*pcStack_5e4)(0,iStack_5d4 + 0x6008)" (parenthesized_expression "(*pcStack_5e4)" ( (pointer_expression "*pcStack_5e4" * identifier) )) (argument_list "(0,iStack_5d4 + 0x6008)" ( number_literal , (binary_expression "iStack_5d4 + 0x6008" identifier + number_literal) ))) ;) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "(*pcStack_5e8)(2);" (call_expression "(*pcStack_5e8)(2)" (parenthesized_expression "(*pcStack_5e8)" ( (pointer_expression "*pcStack_5e8" * identifier) )) (argument_list "(2)" ( number_literal ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar25 + 0xc8f94))(3);" (call_expression "(**(code **)(puVar25 + 0xc8f94))(3)" (parenthesized_expression "(**(code **)(puVar25 + 0xc8f94))" ( (pointer_expression "**(code **)(puVar25 + 0xc8f94)" * (pointer_expression "*(code **)(puVar25 + 0xc8f94)" * (cast_expression "(code **)(puVar25 + 0xc8f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8f94)" ( (binary_expression "puVar25 + 0xc8f94" identifier + number_literal) ))))) )) (argument_list "(3)" ( number_literal ))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "puVar23[-0x4c42] = 0;" (assignment_expression "puVar23[-0x4c42] = 0" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar8 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar8 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar8 + 0x24c)" * (cast_expression "(undefined1 *)(iVar8 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24c)" ( (binary_expression "iVar8 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uStack_5ec = 0;" (assignment_expression "uStack_5ec = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar8 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar8 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar8 + 0x24d)" * (cast_expression "(undefined1 *)(iVar8 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24d)" ( (binary_expression "iVar8 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto LAB_00062c40;" goto statement_identifier ;) })) (expression_statement "puVar15 = (uint *)udhcp_get_option32(&dStack_560,0x33);" (assignment_expression "puVar15 = (uint *)udhcp_get_option32(&dStack_560,0x33)" identifier = (cast_expression "(uint *)udhcp_get_option32(&dStack_560,0x33)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "udhcp_get_option32(&dStack_560,0x33)" identifier (argument_list "(&dStack_560,0x33)" ( (pointer_expression "&dStack_560" & identifier) , number_literal ))))) ;) (if_statement "if (puVar15 == (uint *)0x0) {\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);\n    uStack_574 = 0xe10;\nLAB_00062d7c:\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n  }\n  else {\n    uStack_574 = *puVar15;\n    if (0x79 < uStack_574) goto LAB_00062d7c;\n    uStack_574 = 0x7a;\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }\n  }" if (parenthesized_expression "(puVar15 == (uint *)0x0)" ( (binary_expression "puVar15 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);\n    uStack_574 = 0xe10;\nLAB_00062d7c:\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n  }" { (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x618c)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x618c)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x618c" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uStack_574 = 0xe10;" (assignment_expression "uStack_574 = 0xe10" identifier = number_literal) ;) (labeled_statement "LAB_00062d7c:\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);" statement_identifier : (expression_statement "uVar11 = -((int)(uVar9 << 9) >> 0x1f);" (assignment_expression "uVar11 = -((int)(uVar9 << 9) >> 0x1f)" identifier = (unary_expression "-((int)(uVar9 << 9) >> 0x1f)" - (parenthesized_expression "((int)(uVar9 << 9) >> 0x1f)" ( (binary_expression "(int)(uVar9 << 9) >> 0x1f" (cast_expression "(int)(uVar9 << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 << 9)" ( (binary_expression "uVar9 << 9" identifier << number_literal) ))) >> number_literal) )))) ;)) (if_statement "if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\nLAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;\n      iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);\n      if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }\n    }" { (expression_statement "uVar22 = iVar8 + 0x22cU & 3;" (assignment_expression "uVar22 = iVar8 + 0x22cU & 3" identifier = (binary_expression "iVar8 + 0x22cU & 3" (binary_expression "iVar8 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;" (assignment_expression "uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8" identifier = (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8" (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8" (pointer_expression "*(int *)((iVar8 + 0x22cU) - uVar22)" * (cast_expression "(int *)((iVar8 + 0x22cU) - uVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22cU) - uVar22)" ( (binary_expression "(iVar8 + 0x22cU) - uVar22" (parenthesized_expression "(iVar8 + 0x22cU)" ( (binary_expression "iVar8 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar22 * 8" identifier * number_literal)) | (binary_expression "uVar11 & 0xffffffffU >> (4 - uVar22) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar22) * 8" number_literal >> (binary_expression "(4 - uVar22) * 8" (parenthesized_expression "(4 - uVar22)" ( (binary_expression "4 - uVar22" number_literal - identifier) )) * number_literal))))) ;) (labeled_statement "LAB_00062d8c:\n      uVar22 = iVar8 + 0x22fU & 3;" statement_identifier : (expression_statement "uVar22 = iVar8 + 0x22fU & 3;" (assignment_expression "uVar22 = iVar8 + 0x22fU & 3" identifier = (binary_expression "iVar8 + 0x22fU & 3" (binary_expression "iVar8 + 0x22fU" identifier + number_literal) & number_literal)) ;)) (expression_statement "iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo);" (assignment_expression "iVar17 = arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo)" identifier = (call_expression "arpping(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo)" identifier (argument_list "(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(iVar8 + 0x200),\n                       (char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8),timeo)" ( (field_expression "dStack_560.yiaddr" identifier . field_identifier) , (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , (cast_expression "(uint8_t *)(iVar8 + 0x200)" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x200)" ( (binary_expression "iVar8 + 0x200" identifier + number_literal) ))) , (cast_expression "(char *)(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8)" ( (binary_expression "uVar11 & -1 << (uVar22 + 1) * 8 |\n                               *(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8" (binary_expression "uVar11 & -1 << (uVar22 + 1) * 8" identifier & (binary_expression "-1 << (uVar22 + 1) * 8" number_literal << (binary_expression "(uVar22 + 1) * 8" (parenthesized_expression "(uVar22 + 1)" ( (binary_expression "uVar22 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar8 + 0x22fU) - uVar22) >> (3 - uVar22) * 8" (pointer_expression "*(uint *)((iVar8 + 0x22fU) - uVar22)" * (cast_expression "(uint *)((iVar8 + 0x22fU) - uVar22)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22fU) - uVar22)" ( (binary_expression "(iVar8 + 0x22fU) - uVar22" (parenthesized_expression "(iVar8 + 0x22fU)" ( (binary_expression "iVar8 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar22) * 8" (parenthesized_expression "(3 - uVar22)" ( (binary_expression "3 - uVar22" number_literal - identifier) )) * number_literal))) ))) , identifier )))) ;) (if_statement "if (iVar17 == 0) {\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        (*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);\n        send_decline(uStack_578,dStack_560.yiaddr);\n        if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }\n        uVar22 = 0;\n        (*pcStack_5e8)(2);\n        puVar23[-0x4c42] = 0;\n        uStack_5ec = 0;\n        *(undefined1 *)(iVar8 + 0x24c) = 0;\n        *(undefined1 *)(iVar8 + 0x24d) = 0;\n        iVar17 = unaff_s5[-0x17ff];\n        uVar11 = uStack_584;\n        goto LAB_00062678;\n      }" { (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61b8)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x61b8)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x61b8" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "send_decline(uStack_578,dStack_560.yiaddr);" (call_expression "send_decline(uStack_578,dStack_560.yiaddr)" identifier (argument_list "(uStack_578,dStack_560.yiaddr)" ( identifier , (field_expression "dStack_560.yiaddr" identifier . field_identifier) ))) ;) (if_statement "if (puVar23[-0x4c42] != '\x01') {\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }" if (parenthesized_expression "(puVar23[-0x4c42] != '\x01')" ( (binary_expression "puVar23[-0x4c42] != '\x01'" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n          (*pcStack_5e4)(0,iStack_5d4 + 0x6008);\n        }" { (expression_statement "(*pcStack_5e4)(0,iStack_5d4 + 0x6008);" (call_expression "(*pcStack_5e4)(0,iStack_5d4 + 0x6008)" (parenthesized_expression "(*pcStack_5e4)" ( (pointer_expression "*pcStack_5e4" * identifier) )) (argument_list "(0,iStack_5d4 + 0x6008)" ( number_literal , (binary_expression "iStack_5d4 + 0x6008" identifier + number_literal) ))) ;) })) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "(*pcStack_5e8)(2);" (call_expression "(*pcStack_5e8)(2)" (parenthesized_expression "(*pcStack_5e8)" ( (pointer_expression "*pcStack_5e8" * identifier) )) (argument_list "(2)" ( number_literal ))) ;) (expression_statement "puVar23[-0x4c42] = 0;" (assignment_expression "puVar23[-0x4c42] = 0" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uStack_5ec = 0;" (assignment_expression "uStack_5ec = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar8 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar8 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar8 + 0x24c)" * (cast_expression "(undefined1 *)(iVar8 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24c)" ( (binary_expression "iVar8 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar8 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar8 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar8 + 0x24d)" * (cast_expression "(undefined1 *)(iVar8 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x24d)" ( (binary_expression "iVar8 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uStack_584;" (assignment_expression "uVar11 = uStack_584" identifier = identifier) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) })) (expression_statement "pcVar21 = *(code **)(puVar25 + 0xc8fb8);" (assignment_expression "pcVar21 = *(code **)(puVar25 + 0xc8fb8)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8fb8)" * (cast_expression "(code **)(puVar25 + 0xc8fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8fb8)" ( (binary_expression "puVar25 + 0xc8fb8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    uStack_574 = *puVar15;\n    if (0x79 < uStack_574) goto LAB_00062d7c;\n    uStack_574 = 0x7a;\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }\n  }" else (compound_statement "{\n    uStack_574 = *puVar15;\n    if (0x79 < uStack_574) goto LAB_00062d7c;\n    uStack_574 = 0x7a;\n    uVar11 = -((int)(uVar9 << 9) >> 0x1f);\n    pcVar21 = *(code **)(puVar25 + 0xc8fb8);\n    if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }\n  }" { (expression_statement "uStack_574 = *puVar15;" (assignment_expression "uStack_574 = *puVar15" identifier = (pointer_expression "*puVar15" * identifier)) ;) (if_statement "if (0x79 < uStack_574) goto LAB_00062d7c;" if (parenthesized_expression "(0x79 < uStack_574)" ( (binary_expression "0x79 < uStack_574" number_literal < identifier) )) (goto_statement "goto LAB_00062d7c;" goto statement_identifier ;)) (expression_statement "uStack_574 = 0x7a;" (assignment_expression "uStack_574 = 0x7a" identifier = number_literal) ;) (expression_statement "uVar11 = -((int)(uVar9 << 9) >> 0x1f);" (assignment_expression "uVar11 = -((int)(uVar9 << 9) >> 0x1f)" identifier = (unary_expression "-((int)(uVar9 << 9) >> 0x1f)" - (parenthesized_expression "((int)(uVar9 << 9) >> 0x1f)" ( (binary_expression "(int)(uVar9 << 9) >> 0x1f" (cast_expression "(int)(uVar9 << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar9 << 9)" ( (binary_expression "uVar9 << 9" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pcVar21 = *(code **)(puVar25 + 0xc8fb8);" (assignment_expression "pcVar21 = *(code **)(puVar25 + 0xc8fb8)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8fb8)" * (cast_expression "(code **)(puVar25 + 0xc8fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8fb8)" ( (binary_expression "puVar25 + 0xc8fb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar11 != 0) {\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }" if (parenthesized_expression "(uVar11 != 0)" ( (binary_expression "uVar11 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar22 = iVar8 + 0x22cU & 3;\n      uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;\n      goto LAB_00062d8c;\n    }" { (expression_statement "uVar22 = iVar8 + 0x22cU & 3;" (assignment_expression "uVar22 = iVar8 + 0x22cU & 3" identifier = (binary_expression "iVar8 + 0x22cU & 3" (binary_expression "iVar8 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8;" (assignment_expression "uVar11 = *(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8" identifier = (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8 |\n               uVar11 & 0xffffffffU >> (4 - uVar22) * 8" (binary_expression "*(int *)((iVar8 + 0x22cU) - uVar22) << uVar22 * 8" (pointer_expression "*(int *)((iVar8 + 0x22cU) - uVar22)" * (cast_expression "(int *)((iVar8 + 0x22cU) - uVar22)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar8 + 0x22cU) - uVar22)" ( (binary_expression "(iVar8 + 0x22cU) - uVar22" (parenthesized_expression "(iVar8 + 0x22cU)" ( (binary_expression "iVar8 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar22 * 8" identifier * number_literal)) | (binary_expression "uVar11 & 0xffffffffU >> (4 - uVar22) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar22) * 8" number_literal >> (binary_expression "(4 - uVar22) * 8" (parenthesized_expression "(4 - uVar22)" ( (binary_expression "4 - uVar22" number_literal - identifier) )) * number_literal))))) ;) (goto_statement "goto LAB_00062d8c;" goto statement_identifier ;) })) }))) (expression_statement "uVar7 = (*pcVar21)(dStack_560.yiaddr);" (assignment_expression "uVar7 = (*pcVar21)(dStack_560.yiaddr)" identifier = (call_expression "(*pcVar21)(dStack_560.yiaddr)" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "(dStack_560.yiaddr)" ( (field_expression "dStack_560.yiaddr" identifier . field_identifier) )))) ;) (expression_statement "uVar6 = uStack_574;" (assignment_expression "uVar6 = uStack_574" identifier = identifier) ;) (expression_statement "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574);" (call_expression "(*pcStack_5f0)(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574)" (parenthesized_expression "(*pcStack_5f0)" ( (pointer_expression "*pcStack_5f0" * identifier) )) (argument_list "(*(int *)(puVar25 + 0xc801c) + 0x61f0,uVar7,uStack_574)" ( (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x61f0" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "uStack_5ec = dStack_560.yiaddr;" (assignment_expression "uStack_5ec = dStack_560.yiaddr" identifier = (field_expression "dStack_560.yiaddr" identifier . field_identifier)) ;) (expression_statement "iVar17 = (*pcVar27)();" (assignment_expression "iVar17 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (puVar23[-0x4c42] == '\x01') {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;\n  }" if (parenthesized_expression "(puVar23[-0x4c42] == '\x01')" ( (binary_expression "puVar23[-0x4c42] == '\x01'" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;\n  }" { (expression_statement "iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014;" (assignment_expression "iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6014" identifier = (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6014" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;\n  }" else (compound_statement "{\n    iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;\n  }" { (expression_statement "iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108;" (assignment_expression "iVar20 = *(int *)(puVar25 + 0xc801c) + 0x6108" identifier = (binary_expression "*(int *)(puVar25 + 0xc801c) + 0x6108" (pointer_expression "*(int *)(puVar25 + 0xc801c)" * (cast_expression "(int *)(puVar25 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar25 + 0xc801c)" ( (binary_expression "puVar25 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar11 = uVar6 >> 1;" (assignment_expression "uVar11 = uVar6 >> 1" identifier = (binary_expression "uVar6 >> 1" identifier >> number_literal)) ;) (expression_statement "(*pcStack_5e4)(&dStack_560,iVar20);" (call_expression "(*pcStack_5e4)(&dStack_560,iVar20)" (parenthesized_expression "(*pcStack_5e4)" ( (pointer_expression "*pcStack_5e4" * identifier) )) (argument_list "(&dStack_560,iVar20)" ( (pointer_expression "&dStack_560" & identifier) , identifier ))) ;) (expression_statement "iVar20 = (*pcVar27)();" (assignment_expression "iVar20 = (*pcVar27)()" identifier = (call_expression "(*pcVar27)()" (parenthesized_expression "(*pcVar27)" ( (pointer_expression "*pcVar27" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar22 = iVar20 - iVar17;" (assignment_expression "uVar22 = iVar20 - iVar17" identifier = (binary_expression "iVar20 - iVar17" identifier - identifier)) ;) (expression_statement "puVar23[-0x4c42] = 2;" (assignment_expression "puVar23[-0x4c42] = 2" (subscript_expression "puVar23[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar11 < uVar22) {\n    uVar11 = 0;\n    uVar22 = 0;\n  }" if (parenthesized_expression "(uVar11 < uVar22)" ( (binary_expression "uVar11 < uVar22" identifier < identifier) )) (compound_statement "{\n    uVar11 = 0;\n    uVar22 = 0;\n  }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) })) (expression_statement "(*pcStack_5e8)(0);" (call_expression "(*pcStack_5e8)(0)" (parenthesized_expression "(*pcStack_5e8)" ( (pointer_expression "*pcStack_5e8" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((uVar9 & 0x100) == 0) {\n    if ((uVar9 & 0x80000) == 0) {\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" if (parenthesized_expression "((uVar9 & 0x100) == 0)" ( (binary_expression "(uVar9 & 0x100) == 0" (parenthesized_expression "(uVar9 & 0x100)" ( (binary_expression "uVar9 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((uVar9 & 0x80000) == 0) {\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" { (if_statement "if ((uVar9 & 0x80000) == 0) {\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }" if (parenthesized_expression "((uVar9 & 0x80000) == 0)" ( (binary_expression "(uVar9 & 0x80000) == 0" (parenthesized_expression "(uVar9 & 0x80000)" ( (binary_expression "uVar9 & 0x80000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      client_background();\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffd7ffbf | 0x80000;\n    }" { (expression_statement "client_background();" (call_expression "client_background()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar9 & 0xffd7ffbf | 0x80000;" (assignment_expression "uVar9 = uVar9 & 0xffd7ffbf | 0x80000" identifier = (binary_expression "uVar9 & 0xffd7ffbf | 0x80000" (binary_expression "uVar9 & 0xffd7ffbf" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }" else (compound_statement "{\n      iVar17 = unaff_s5[-0x17ff];\n      uVar9 = uVar9 & 0xffffffbf;\n    }" { (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar9 = uVar9 & 0xffffffbf;" (assignment_expression "uVar9 = uVar9 & 0xffffffbf" identifier = (binary_expression "uVar9 & 0xffffffbf" identifier & number_literal)) ;) }))) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00062be8:\n  if ((uVar9 & 0x200) != 0) {\n    perform_release(uStack_578,uStack_5ec);\n  }" statement_identifier : (if_statement "if ((uVar9 & 0x200) != 0) {\n    perform_release(uStack_578,uStack_5ec);\n  }" if (parenthesized_expression "((uVar9 & 0x200) != 0)" ( (binary_expression "(uVar9 & 0x200) != 0" (parenthesized_expression "(uVar9 & 0x200)" ( (binary_expression "uVar9 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    perform_release(uStack_578,uStack_5ec);\n  }" { (expression_statement "perform_release(uStack_578,uStack_5ec);" (call_expression "perform_release(uStack_578,uStack_5ec)" identifier (argument_list "(uStack_578,uStack_5ec)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar9 = uVar9 & 0x200;" (assignment_expression "uVar9 = uVar9 & 0x200" identifier = (binary_expression "uVar9 & 0x200" identifier & number_literal)) ;) (if_statement "if (**(char **)(puVar25 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }\n  else {\n    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }" if (parenthesized_expression "(**(char **)(puVar25 + 0xc82a0) == '\0')" ( (binary_expression "**(char **)(puVar25 + 0xc82a0) == '\0'" (pointer_expression "**(char **)(puVar25 + 0xc82a0)" * (pointer_expression "*(char **)(puVar25 + 0xc82a0)" * (cast_expression "(char **)(puVar25 + 0xc82a0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc82a0)" ( (binary_expression "puVar25 + 0xc82a0" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000624e4:\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }" { (labeled_statement "LAB_000624e4:\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);" statement_identifier : (expression_statement "pcVar21 = *(code **)(puVar25 + 0xc8f58);" (assignment_expression "pcVar21 = *(code **)(puVar25 + 0xc8f58)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8f58)" * (cast_expression "(code **)(puVar25 + 0xc8f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8f58)" ( (binary_expression "puVar25 + 0xc8f58" identifier + number_literal) ))))) ;)) (if_statement "if (iStack_2ec == *piVar19) {\n      return;\n    }" if (parenthesized_expression "(iStack_2ec == *piVar19)" ( (binary_expression "iStack_2ec == *piVar19" identifier == (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }) (else_clause "else {\n    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }" else (compound_statement "{\n    (**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));\n    pcVar21 = *(code **)(puVar25 + 0xc8f58);\n    if (iStack_2ec == *piVar19) {\n      return;\n    }\n  }" { (expression_statement "(**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230));" (call_expression "(**(code **)(puVar25 + 0xc8f1c))(*(undefined4 *)(iVar8 + 0x230))" (parenthesized_expression "(**(code **)(puVar25 + 0xc8f1c))" ( (pointer_expression "**(code **)(puVar25 + 0xc8f1c)" * (pointer_expression "*(code **)(puVar25 + 0xc8f1c)" * (cast_expression "(code **)(puVar25 + 0xc8f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8f1c)" ( (binary_expression "puVar25 + 0xc8f1c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar8 + 0x230))" ( (pointer_expression "*(undefined4 *)(iVar8 + 0x230)" * (cast_expression "(undefined4 *)(iVar8 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0x230)" ( (binary_expression "iVar8 + 0x230" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar21 = *(code **)(puVar25 + 0xc8f58);" (assignment_expression "pcVar21 = *(code **)(puVar25 + 0xc8f58)" identifier = (pointer_expression "*(code **)(puVar25 + 0xc8f58)" * (cast_expression "(code **)(puVar25 + 0xc8f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar25 + 0xc8f58)" ( (binary_expression "puVar25 + 0xc8f58" identifier + number_literal) ))))) ;) (if_statement "if (iStack_2ec == *piVar19) {\n      return;\n    }" if (parenthesized_expression "(iStack_2ec == *piVar19)" ( (binary_expression "iStack_2ec == *piVar19" identifier == (pointer_expression "*piVar19" * identifier)) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) }))) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (expression_statement "send_select(uStack_5dc,uStack_578,uStack_5ec);" (call_expression "send_select(uStack_5dc,uStack_578,uStack_5ec)" identifier (argument_list "(uStack_5dc,uStack_578,uStack_5ec)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar17 = unaff_s5[-0x17ff];" (assignment_expression "iVar17 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = uStack_580;" (assignment_expression "uVar11 = uStack_580" identifier = identifier) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })))
(translation_unit "int FUN_00061fc8(int *param_1,undefined4 param_2)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}\n\n" (function_definition "int FUN_00061fc8(int *param_1,undefined4 param_2)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}" primitive_type (function_declarator "FUN_00061fc8(int *param_1,undefined4 param_2)" identifier (parameter_list "(int *param_1,undefined4 param_2)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "undefined4 extraout_v1;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined4 unaff_s2;" type_identifier identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "code *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "code *pcVar25;" type_identifier (pointer_declarator "*pcVar25" * identifier) ;) (declaration "code *pcVar26;" type_identifier (pointer_declarator "*pcVar26" * identifier) ;) (declaration "code *local_5f0;" type_identifier (pointer_declarator "*local_5f0" * identifier) ;) (declaration "uint local_5ec;" type_identifier identifier ;) (declaration "code *local_5e8;" type_identifier (pointer_declarator "*local_5e8" * identifier) ;) (declaration "code *local_5e4;" type_identifier (pointer_declarator "*local_5e4" * identifier) ;) (declaration "int local_5dc;" primitive_type identifier ;) (declaration "int local_5d4;" primitive_type identifier ;) (declaration "int local_5d0;" primitive_type identifier ;) (declaration "code *local_5b4;" type_identifier (pointer_declarator "*local_5b4" * identifier) ;) (declaration "int local_5ac;" primitive_type identifier ;) (declaration "int local_5a8;" primitive_type identifier ;) (declaration "code *local_5a4;" type_identifier (pointer_declarator "*local_5a4" * identifier) ;) (declaration "char *local_5a0;" primitive_type (pointer_declarator "*local_5a0" * identifier) ;) (declaration "undefined4 local_59c;" type_identifier identifier ;) (declaration "undefined4 local_598;" type_identifier identifier ;) (declaration "undefined4 local_594;" type_identifier identifier ;) (declaration "uint local_590;" type_identifier identifier ;) (declaration "uint local_58c;" type_identifier identifier ;) (declaration "int local_588;" primitive_type identifier ;) (declaration "uint local_584;" type_identifier identifier ;) (declaration "uint local_580;" type_identifier identifier ;) (declaration "undefined4 local_57c;" type_identifier identifier ;) (declaration "uint local_578;" type_identifier identifier ;) (declaration "uint local_574;" type_identifier identifier ;) (declaration "undefined1 auStack_570 [14];" type_identifier (array_declarator "auStack_570 [14]" identifier [ number_literal ]) ;) (declaration "short local_562;" (sized_type_specifier "short" short) identifier ;) (declaration "undefined1 auStack_560 [2];" type_identifier (array_declarator "auStack_560 [2]" identifier [ number_literal ]) ;) (declaration "char local_55e;" primitive_type identifier ;) (declaration "int local_55c;" primitive_type identifier ;) (declaration "uint local_550;" type_identifier identifier ;) (declaration "undefined1 auStack_544 [600];" type_identifier (array_declarator "auStack_544 [600]" identifier [ number_literal ]) ;) (declaration "int local_2ec;" primitive_type identifier ;) (declaration "undefined1 *local_2e8;" type_identifier (pointer_declarator "*local_2e8" * identifier) ;) (declaration "undefined *local_2e4;" type_identifier (pointer_declarator "*local_2e4" * identifier) ;) (declaration "undefined4 local_2e0;" type_identifier identifier ;) (declaration "undefined *local_2dc;" type_identifier (pointer_declarator "*local_2dc" * identifier) ;) (declaration "undefined *local_2d8;" type_identifier (pointer_declarator "*local_2d8" * identifier) ;) (declaration "int *local_2d4;" primitive_type (pointer_declarator "*local_2d4" * identifier) ;) (declaration "undefined1 auStack_2a8 [12];" type_identifier (array_declarator "auStack_2a8 [12]" identifier [ number_literal ]) ;) (declaration "undefined4 local_29c;" type_identifier identifier ;) (declaration "undefined1 auStack_34 [16];" type_identifier (array_declarator "auStack_34 [16]" identifier [ number_literal ]) ;) (declaration "int local_24;" primitive_type identifier ;) (expression_statement "puVar5 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_0012b14c" identifier = identifier) ;) (expression_statement "puVar4 = PTR_FUN_0012a1c8;" (assignment_expression "puVar4 = PTR_FUN_0012a1c8" identifier = identifier) ;) (expression_statement "puVar22 = PTR_DAT_0012a178;" (assignment_expression "puVar22 = PTR_DAT_0012a178" identifier = identifier) ;) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" * (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }" if (parenthesized_expression "((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4)" ( (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4" (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2" (cast_expression "(byte)PTR_DAT_0012a178[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "PTR_DAT_0012a178[-0x4c42]" identifier [ number_literal ])) - number_literal) < number_literal) )) (compound_statement "{\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }" { (expression_statement "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();" (assignment_expression "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)()" identifier = (call_expression "(*(code *)PTR_inet_ntoa_0012b128)()" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" ( (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" * (cast_expression "(code *)PTR_inet_ntoa_0012b128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "(*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);" (call_expression "(*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_0012ae3c)" ( (pointer_expression "*(code *)PTR___strcpy_chk_0012ae3c" * (cast_expression "(code *)PTR___strcpy_chk_0012ae3c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(auStack_34,uVar6,0x10)" ( identifier , identifier , number_literal ))) ;) (expression_statement "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);" (assignment_expression "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2)" identifier = (call_expression "(*(code *)PTR_inet_ntoa_0012b128)(param_2)" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" ( (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" * (cast_expression "(code *)PTR_inet_ntoa_0012b128" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "unaff_s0 = auStack_2a8;" (assignment_expression "unaff_s0 = auStack_2a8" identifier = identifier) ;) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34)" ( (binary_expression "PTR_UINT_0012a18c + 0x5fcc" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "FUN_000608e4(unaff_s0,7);" (call_expression "FUN_000608e4(unaff_s0,7)" identifier (argument_list "(unaff_s0,7)" ( identifier , number_literal ))) ;) (expression_statement "local_29c = param_2;" (assignment_expression "local_29c = param_2" identifier = identifier) ;) (expression_statement "FUN_00066e38(unaff_s0,0x36,param_1);" (call_expression "FUN_00066e38(unaff_s0,0x36,param_1)" identifier (argument_list "(unaff_s0,0x36,param_1)" ( identifier , number_literal , identifier ))) ;) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" ( (binary_expression "PTR_UINT_0012a18c + 0x5ec8" identifier + number_literal) , (binary_expression "PTR_UINT_0012a18c + 0x1e8c" identifier + number_literal) ))) ;) (expression_statement "FUN_00060768(unaff_s0,param_2,param_1);" (call_expression "FUN_00060768(unaff_s0,param_2,param_1)" identifier (argument_list "(unaff_s0,param_2,param_1)" ( identifier , identifier , identifier ))) ;) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" identifier = identifier) ;) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" identifier = identifier) ;) })) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0)" (parenthesized_expression "(*(code *)puVar4)" ( (pointer_expression "*(code *)puVar4" * (cast_expression "(code *)puVar4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_0012a18c + 0x5ff0)" ( (binary_expression "PTR_UINT_0012a18c + 0x5ff0" identifier + number_literal) ))) ;) (expression_statement "puVar16 = PTR_UINT_0012a18c + 0x6008;" (assignment_expression "puVar16 = PTR_UINT_0012a18c + 0x6008" identifier = (binary_expression "PTR_UINT_0012a18c + 0x6008" identifier + number_literal)) ;) (expression_statement "FUN_000619d0(0,puVar16);" (call_expression "FUN_000619d0(0,puVar16)" identifier (argument_list "(0,puVar16)" ( number_literal , identifier ))) ;) (expression_statement "FUN_00061194(0);" (call_expression "FUN_00061194(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "iVar7 = *(int *)puVar5;" (assignment_expression "iVar7 = *(int *)puVar5" identifier = (pointer_expression "*(int *)puVar5" * (cast_expression "(int *)puVar5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar22[-0x4c42] = 6;" (assignment_expression "puVar22[-0x4c42] = 6" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (local_24 == iVar7) {\n    return iVar7;\n  }" if (parenthesized_expression "(local_24 == iVar7)" ( (binary_expression "local_24 == iVar7" identifier == identifier) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "puVar24 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0012b0c8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" * (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(puVar24 + 0xc8fdc);" (assignment_expression "piVar17 = *(int **)(puVar24 + 0xc8fdc)" identifier = (pointer_expression "*(int **)(puVar24 + 0xc8fdc)" * (cast_expression "(int **)(puVar24 + 0xc8fdc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fdc)" ( (binary_expression "puVar24 + 0xc8fdc" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = *(int *)(puVar24 + 0xc801c);" (assignment_expression "iVar7 = *(int *)(puVar24 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = &local_588;" (assignment_expression "piVar23 = &local_588" identifier = (pointer_expression "&local_588" & identifier)) ;) (expression_statement "local_2d8 = puVar5;" (assignment_expression "local_2d8 = puVar5" identifier = identifier) ;) (expression_statement "local_2e4 = puVar4;" (assignment_expression "local_2e4 = puVar4" identifier = identifier) ;) (expression_statement "local_2dc = puVar22;" (assignment_expression "local_2dc = puVar22" identifier = identifier) ;) (expression_statement "iVar19 = *(int *)(puVar24 + 0xc81d4);" (assignment_expression "iVar19 = *(int *)(puVar24 + 0xc81d4)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc81d4)" * (cast_expression "(int *)(puVar24 + 0xc81d4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc81d4)" ( (binary_expression "puVar24 + 0xc81d4" identifier + number_literal) ))))) ;) (expression_statement "local_2ec = *piVar17;" (assignment_expression "local_2ec = *piVar17" identifier = (pointer_expression "*piVar17" * identifier)) ;) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc8178);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc8178)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8178)" * (cast_expression "(code **)(puVar24 + 0xc8178)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8178)" ( (binary_expression "puVar24 + 0xc8178" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;" (assignment_expression "*(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(iVar19 + 0x22c)" * (cast_expression "(int *)(iVar19 + 0x22c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x22c)" ( (binary_expression "iVar19 + 0x22c" identifier + number_literal) )))) = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar8 = iVar19 + 0x234U & 3;" (assignment_expression "uVar8 = iVar19 + 0x234U & 3" identifier = (binary_expression "iVar19 + 0x234U & 3" (binary_expression "iVar19 + 0x234U" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);" (assignment_expression "puVar14 = (uint *)((iVar19 + 0x234U) - uVar8)" identifier = (cast_expression "(uint *)((iVar19 + 0x234U) - uVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x234U) - uVar8)" ( (binary_expression "(iVar19 + 0x234U) - uVar8" (parenthesized_expression "(iVar19 + 0x234U)" ( (binary_expression "iVar19 + 0x234U" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;" (assignment_expression "*puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8" (pointer_expression "*puVar14" * identifier) = (binary_expression "*puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8" (binary_expression "*puVar14 & -1 << (4 - uVar8) * 8" (pointer_expression "*puVar14" * identifier) & (binary_expression "-1 << (4 - uVar8) * 8" number_literal << (binary_expression "(4 - uVar8) * 8" (parenthesized_expression "(4 - uVar8)" ( (binary_expression "4 - uVar8" number_literal - identifier) )) * number_literal))) | (binary_expression "iVar7 + 0x6024U >> uVar8 * 8" (binary_expression "iVar7 + 0x6024U" identifier + number_literal) >> (binary_expression "uVar8 * 8" identifier * number_literal)))) ;) (expression_statement "local_584 = 0x14;" (assignment_expression "local_584 = 0x14" identifier = number_literal) ;) (expression_statement "local_580 = 3;" (assignment_expression "local_580 = 3" identifier = number_literal) ;) (expression_statement "local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;" (assignment_expression "local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x601c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_57c = 3;" (assignment_expression "local_57c = 3" identifier = number_literal) ;) (expression_statement "local_58c = 0;" (assignment_expression "local_58c = 0" identifier = number_literal) ;) (expression_statement "local_588 = 0;" (assignment_expression "local_588 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = iVar19 + 0x237U & 3;" (assignment_expression "uVar8 = iVar19 + 0x237U & 3" identifier = (binary_expression "iVar19 + 0x237U & 3" (binary_expression "iVar19 + 0x237U" identifier + number_literal) & number_literal)) ;) (expression_statement "puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);" (assignment_expression "puVar14 = (uint *)((iVar19 + 0x237U) - uVar8)" identifier = (cast_expression "(uint *)((iVar19 + 0x237U) - uVar8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x237U) - uVar8)" ( (binary_expression "(iVar19 + 0x237U) - uVar8" (parenthesized_expression "(iVar19 + 0x237U)" ( (binary_expression "iVar19 + 0x237U" identifier + number_literal) )) - identifier) )))) ;) (expression_statement "*puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;" (assignment_expression "*puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8" (pointer_expression "*puVar14" * identifier) = (binary_expression "*puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8" (binary_expression "*puVar14 & 0xffffffffU >> (uVar8 + 1) * 8" (pointer_expression "*puVar14" * identifier) & (binary_expression "0xffffffffU >> (uVar8 + 1) * 8" number_literal >> (binary_expression "(uVar8 + 1) * 8" (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "iVar7 + 0x6024U << (3 - uVar8) * 8" (binary_expression "iVar7 + 0x6024U" identifier + number_literal) << (binary_expression "(3 - uVar8) * 8" (parenthesized_expression "(3 - uVar8)" ( (binary_expression "3 - uVar8" number_literal - identifier) )) * number_literal)))) ;) (expression_statement "local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);" (assignment_expression "local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040)" identifier = (cast_expression "(char *)(*(int *)(puVar24 + 0xc801c) + 0x6040)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc801c) + 0x6040)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6040" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_2e8 = unaff_s0;" (assignment_expression "local_2e8 = unaff_s0" identifier = identifier) ;) (expression_statement "local_2e0 = unaff_s2;" (assignment_expression "local_2e0 = unaff_s2" identifier = identifier) ;) (expression_statement "local_2d4 = unaff_s5;" (assignment_expression "local_2d4 = unaff_s5" identifier = identifier) ;) (expression_statement "uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);" (assignment_expression "uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" identifier = (call_expression "(*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" ( identifier , (binary_expression "*(int *)(puVar24 + 0xc801c) + -0x1ca0" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0xc8038) + 0x667c" (pointer_expression "*(int *)(puVar24 + 0xc8038)" * (cast_expression "(int *)(puVar24 + 0xc8038)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc8038)" ( (binary_expression "puVar24 + 0xc8038" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_5a0" & identifier) , (pointer_expression "&local_59c" & identifier) , (pointer_expression "&local_59c" & identifier) , (pointer_expression "&local_598" & identifier) , (binary_expression "iVar19 + 0x22c" identifier + number_literal) , (binary_expression "iVar19 + 0x230" identifier + number_literal) , (pointer_expression "&local_594" & identifier) , (binary_expression "iVar19 + 0x234" identifier + number_literal) , (pointer_expression "&local_580" & identifier) , (pointer_expression "&local_57c" & identifier) , (pointer_expression "&local_584" & identifier) , (pointer_expression "&local_58c" & identifier) , identifier , (pointer_expression "&local_590" & identifier) )))) ;) (if_statement "if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }" if (parenthesized_expression "((uVar8 & 0xc) != 0)" ( (binary_expression "(uVar8 & 0xc) != 0" (parenthesized_expression "(uVar8 & 0xc)" ( (binary_expression "uVar8 & 0xc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }" { (expression_statement "(**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);" (call_expression "(**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8058))" ( (pointer_expression "**(code **)(puVar24 + 0xc8058)" * (pointer_expression "*(code **)(puVar24 + 0xc8058)" * (cast_expression "(code **)(puVar24 + 0xc8058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8058)" ( (binary_expression "puVar24 + 0xc8058" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6050)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6050" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "uVar6 = FUN_00060838(0xc,local_59c,0);" (assignment_expression "uVar6 = FUN_00060838(0xc,local_59c,0)" identifier = (call_expression "FUN_00060838(0xc,local_59c,0)" identifier (argument_list "(0xc,local_59c,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar19 + 0x244) = uVar6;" (assignment_expression "*(undefined4 *)(iVar19 + 0x244) = uVar6" (pointer_expression "*(undefined4 *)(iVar19 + 0x244)" * (cast_expression "(undefined4 *)(iVar19 + 0x244)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x244)" ( (binary_expression "iVar19 + 0x244" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }" if (parenthesized_expression "((uVar8 & 0x10) != 0)" ( (binary_expression "(uVar8 & 0x10) != 0" (parenthesized_expression "(uVar8 & 0x10)" ( (binary_expression "uVar8 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }" { (expression_statement "iVar7 = FUN_00060838(0x51,local_598,3);" (assignment_expression "iVar7 = FUN_00060838(0x51,local_598,3)" identifier = (call_expression "FUN_00060838(0x51,local_598,3)" identifier (argument_list "(0x51,local_598,3)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(int *)(iVar19 + 0x248) = iVar7;" (assignment_expression "*(int *)(iVar19 + 0x248) = iVar7" (pointer_expression "*(int *)(iVar19 + 0x248)" * (cast_expression "(int *)(iVar19 + 0x248)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x248)" ( (binary_expression "iVar19 + 0x248" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar7 + 2) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + 2) = 1" (pointer_expression "*(undefined1 *)(iVar7 + 2)" * (cast_expression "(undefined1 *)(iVar7 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 2)" ( (binary_expression "iVar7 + 2" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "local_5ec = uVar8 & 0x400;" (assignment_expression "local_5ec = uVar8 & 0x400" identifier = (binary_expression "uVar8 & 0x400" identifier & number_literal)) ;) (if_statement "if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }" if (parenthesized_expression "(local_5ec != 0)" ( (binary_expression "local_5ec != 0" identifier != number_literal) )) (compound_statement "{\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }" { (expression_statement "local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);" (assignment_expression "local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8b80))(local_594)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8b80))" ( (pointer_expression "**(code **)(puVar24 + 0xc8b80)" * (pointer_expression "*(code **)(puVar24 + 0xc8b80)" * (cast_expression "(code **)(puVar24 + 0xc8b80)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8b80)" ( (binary_expression "puVar24 + 0xc8b80" identifier + number_literal) ))))) )) (argument_list "(local_594)" ( identifier )))) ;) })) (expression_statement "uVar10 = local_590;" (assignment_expression "uVar10 = local_590" identifier = identifier) ;) (expression_statement "uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);" (assignment_expression "uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8234))(local_590)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8234))" ( (pointer_expression "**(code **)(puVar24 + 0xc8234)" * (pointer_expression "*(code **)(puVar24 + 0xc8234)" * (cast_expression "(code **)(puVar24 + 0xc8234)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8234)" ( (binary_expression "puVar24 + 0xc8234" identifier + number_literal) ))))) )) (argument_list "(local_590)" ( identifier )))) ;) (if_statement "if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }" if (parenthesized_expression "(local_58c != 0)" ( (binary_expression "local_58c != 0" identifier != number_literal) )) (compound_statement "{\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }" { (expression_statement "local_5f0 = *(code **)(puVar24 + 0xc8164);" (assignment_expression "local_5f0 = *(code **)(puVar24 + 0xc8164)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8164)" * (cast_expression "(code **)(puVar24 + 0xc8164)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8164)" ( (binary_expression "puVar24 + 0xc8164" identifier + number_literal) ))))) ;) (expression_statement "local_5e4 = *(code **)(puVar24 + 0xc82c8);" (assignment_expression "local_5e4 = *(code **)(puVar24 + 0xc82c8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc82c8)" * (cast_expression "(code **)(puVar24 + 0xc82c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82c8)" ( (binary_expression "puVar24 + 0xc82c8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(code **)(puVar24 + 0xc8630);" (assignment_expression "unaff_s6 = *(code **)(puVar24 + 0xc8630)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8630)" * (cast_expression "(code **)(puVar24 + 0xc8630)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8630)" ( (binary_expression "puVar24 + 0xc8630" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8634);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8634)" identifier = (pointer_expression "*(undefined **)(puVar24 + 0xc8634)" * (cast_expression "(undefined **)(puVar24 + 0xc8634)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8634)" ( (binary_expression "puVar24 + 0xc8634" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);" (assignment_expression "unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4)" identifier = (cast_expression "(int *)**(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar24 + 0xc80a4)" * (pointer_expression "*(undefined4 **)(puVar24 + 0xc80a4)" * (cast_expression "(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80a4)" ( (binary_expression "puVar24 + 0xc80a4" identifier + number_literal) ))))))) ;) (expression_statement "local_5e8 = *(code **)(puVar24 + 0xc8644);" (assignment_expression "local_5e8 = *(code **)(puVar24 + 0xc8644)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8644)" * (cast_expression "(code **)(puVar24 + 0xc8644)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8644)" ( (binary_expression "puVar24 + 0xc8644" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);" do (compound_statement "{\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    }" { (expression_statement "uVar9 = (*local_5e4)(&local_58c);" (assignment_expression "uVar9 = (*local_5e4)(&local_58c)" identifier = (call_expression "(*local_5e4)(&local_58c)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(&local_58c)" ( (pointer_expression "&local_58c" & identifier) )))) ;) (expression_statement "uVar10 = (*local_5f0)(uVar9,0,0);" (assignment_expression "uVar10 = (*local_5f0)(uVar9,0,0)" identifier = (call_expression "(*local_5f0)(uVar9,0,0)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(uVar9,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" if (parenthesized_expression "(*unaff_s5 == 0)" ( (binary_expression "*unaff_s5 == 0" (pointer_expression "*unaff_s5" * identifier) == number_literal) )) (compound_statement "{\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }" { (if_statement "if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }" if (parenthesized_expression "(0xfe < uVar10)" ( (binary_expression "0xfe < uVar10" number_literal < identifier) )) (compound_statement "{\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }" { (expression_statement "iVar7 = (*local_5e8)(uVar9,unaff_s6);" (assignment_expression "iVar7 = (*local_5e8)(uVar9,unaff_s6)" identifier = (call_expression "(*local_5e8)(uVar9,unaff_s6)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(uVar9,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];" (assignment_expression "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1]" identifier = (cast_expression "(uint)(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[iVar7 * 2 + 1]" identifier [ (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" identifier * number_literal) + number_literal) ])))) ;) })) }) (else_clause "else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" else (compound_statement "{\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" { (expression_statement "iVar7 = (*local_5e8)(uVar9,unaff_s6);" (assignment_expression "iVar7 = (*local_5e8)(uVar9,unaff_s6)" identifier = (call_expression "(*local_5e8)(uVar9,unaff_s6)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(uVar9,unaff_s6)" ( identifier , identifier )))) ;) (expression_statement "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];" (assignment_expression "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1]" identifier = (cast_expression "(uint)(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[iVar7 * 2 + 1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[iVar7 * 2 + 1]" identifier [ (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" identifier * number_literal) + number_literal) ])))) ;) }))) (expression_statement "iVar7 = iVar19 + (uVar10 >> 3);" (assignment_expression "iVar7 = iVar19 + (uVar10 >> 3)" identifier = (binary_expression "iVar19 + (uVar10 >> 3)" identifier + (parenthesized_expression "(uVar10 >> 3)" ( (binary_expression "uVar10 >> 3" identifier >> number_literal) )))) ;) (expression_statement "*(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);" (assignment_expression "*(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c)" (pointer_expression "*(byte *)(iVar7 + 0x20c)" * (cast_expression "(byte *)(iVar7 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20c)" ( (binary_expression "iVar7 + 0x20c" identifier + number_literal) )))) = (binary_expression "(byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c)" (call_expression "(byte)(1 << (uVar10 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (uVar10 & 7))" ( (binary_expression "1 << (uVar10 & 7)" number_literal << (parenthesized_expression "(uVar10 & 7)" ( (binary_expression "uVar10 & 7" identifier & number_literal) ))) ))) | (pointer_expression "*(byte *)(iVar7 + 0x20c)" * (cast_expression "(byte *)(iVar7 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x20c)" ( (binary_expression "iVar7 + 0x20c" identifier + number_literal) )))))) ;) (expression_statement "uVar10 = local_58c;" (assignment_expression "uVar10 = local_58c" identifier = identifier) ;) }) while (parenthesized_expression "(local_58c != 0)" ( (binary_expression "local_58c != 0" identifier != number_literal) )) ;) })) (expression_statement "pbVar15 = *(byte **)(puVar24 + 0xc8634);" (assignment_expression "pbVar15 = *(byte **)(puVar24 + 0xc8634)" identifier = (pointer_expression "*(byte **)(puVar24 + 0xc8634)" * (cast_expression "(byte **)(puVar24 + 0xc8634)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8634)" ( (binary_expression "puVar24 + 0xc8634" identifier + number_literal) ))))) ;) (if_statement "if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" if (parenthesized_expression "(-1 < (int)(uVar8 << 0xe))" ( (binary_expression "-1 < (int)(uVar8 << 0xe)" number_literal < (cast_expression "(int)(uVar8 << 0xe)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 << 0xe)" ( (binary_expression "uVar8 << 0xe" identifier << number_literal) )))) )) (compound_statement "{\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" { (expression_statement "bVar2 = pbVar15[1];" (assignment_expression "bVar2 = pbVar15[1]" identifier = (subscript_expression "pbVar15[1]" identifier [ number_literal ])) ;) (while_statement "while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }" while (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }" { (expression_statement "uVar10 = (uint)(bVar2 >> 3);" (assignment_expression "uVar10 = (uint)(bVar2 >> 3)" identifier = (call_expression "(uint)(bVar2 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar2 >> 3)" ( (binary_expression "bVar2 >> 3" identifier >> number_literal) )))) ;) (if_statement "if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }" if (parenthesized_expression "((*pbVar15 & 0x10) != 0)" ( (binary_expression "(*pbVar15 & 0x10) != 0" (parenthesized_expression "(*pbVar15 & 0x10)" ( (binary_expression "*pbVar15 & 0x10" (pointer_expression "*pbVar15" * identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }" { (expression_statement "uVar10 = iVar19 + uVar10;" (assignment_expression "uVar10 = iVar19 + uVar10" identifier = (binary_expression "iVar19 + uVar10" identifier + identifier)) ;) (expression_statement "*(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);" (assignment_expression "*(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c)" (pointer_expression "*(byte *)(uVar10 + 0x20c)" * (cast_expression "(byte *)(uVar10 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 + 0x20c)" ( (binary_expression "uVar10 + 0x20c" identifier + number_literal) )))) = (binary_expression "(byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c)" (call_expression "(byte)(1 << (bVar2 & 7))" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(1 << (bVar2 & 7))" ( (binary_expression "1 << (bVar2 & 7)" number_literal << (parenthesized_expression "(bVar2 & 7)" ( (binary_expression "bVar2 & 7" identifier & number_literal) ))) ))) | (pointer_expression "*(byte *)(uVar10 + 0x20c)" * (cast_expression "(byte *)(uVar10 + 0x20c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar10 + 0x20c)" ( (binary_expression "uVar10 + 0x20c" identifier + number_literal) )))))) ;) })) (expression_statement "pbVar1 = pbVar15 + 3;" (assignment_expression "pbVar1 = pbVar15 + 3" identifier = (binary_expression "pbVar15 + 3" identifier + number_literal)) ;) (expression_statement "pbVar15 = pbVar15 + 2;" (assignment_expression "pbVar15 = pbVar15 + 2" identifier = (binary_expression "pbVar15 + 2" identifier + number_literal)) ;) (expression_statement "bVar2 = *pbVar1;" (assignment_expression "bVar2 = *pbVar1" identifier = (pointer_expression "*pbVar1" * identifier)) ;) })) })) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc8648);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc8648)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8648)" * (cast_expression "(code **)(puVar24 + 0xc8648)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8648)" ( (binary_expression "puVar24 + 0xc8648" identifier + number_literal) ))))) ;) (if_statement "if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }" if (parenthesized_expression "(local_588 != 0)" ( (binary_expression "local_588 != 0" identifier != number_literal) )) (compound_statement "{\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }" { (expression_statement "unaff_s5 = (int *)(iVar19 + 0x238);" (assignment_expression "unaff_s5 = (int *)(iVar19 + 0x238)" identifier = (cast_expression "(int *)(iVar19 + 0x238)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x238)" ( (binary_expression "iVar19 + 0x238" identifier + number_literal) )))) ;) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc82c8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc82c8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc82c8)" * (cast_expression "(code **)(puVar24 + 0xc82c8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82c8)" ( (binary_expression "puVar24 + 0xc82c8" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = *(code **)(puVar24 + 0xc8138);" (assignment_expression "unaff_s6 = *(code **)(puVar24 + 0xc8138)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8138)" * (cast_expression "(code **)(puVar24 + 0xc8138)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8138)" ( (binary_expression "puVar24 + 0xc8138" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = *(undefined4 *)(puVar24 + 0xc8630);" (assignment_expression "uVar9 = *(undefined4 *)(puVar24 + 0xc8630)" identifier = (pointer_expression "*(undefined4 *)(puVar24 + 0xc8630)" * (cast_expression "(undefined4 *)(puVar24 + 0xc8630)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc8630)" ( (binary_expression "puVar24 + 0xc8630" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8634);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8634)" identifier = (pointer_expression "*(undefined **)(puVar24 + 0xc8634)" * (cast_expression "(undefined **)(puVar24 + 0xc8634)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8634)" ( (binary_expression "puVar24 + 0xc8634" identifier + number_literal) ))))) ;) (do_statement "do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);" do (compound_statement "{\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    }" { (expression_statement "uVar11 = (*pcVar20)(piVar23);" (assignment_expression "uVar11 = (*pcVar20)(piVar23)" identifier = (call_expression "(*pcVar20)(piVar23)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(piVar23)" ( identifier )))) ;) (expression_statement "uVar10 = (*unaff_s6)(uVar11);" (assignment_expression "uVar10 = (*unaff_s6)(uVar11)" identifier = (call_expression "(*unaff_s6)(uVar11)" (parenthesized_expression "(*unaff_s6)" ( (pointer_expression "*unaff_s6" * identifier) )) (argument_list "(uVar11)" ( identifier )))) ;) (expression_statement "(*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);" (call_expression "(*pcVar25)(uVar10,unaff_s5,puVar22,uVar9)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "(uVar10,unaff_s5,puVar22,uVar9)" ( identifier , identifier , identifier , identifier ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8ff8))(uVar10);" (call_expression "(**(code **)(puVar24 + 0xc8ff8))(uVar10)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8ff8))" ( (pointer_expression "**(code **)(puVar24 + 0xc8ff8)" * (pointer_expression "*(code **)(puVar24 + 0xc8ff8)" * (cast_expression "(code **)(puVar24 + 0xc8ff8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8ff8)" ( (binary_expression "puVar24 + 0xc8ff8" identifier + number_literal) ))))) )) (argument_list "(uVar10)" ( identifier ))) ;) (expression_statement "local_5f0 = pcVar25;" (assignment_expression "local_5f0 = pcVar25" identifier = identifier) ;) }) while (parenthesized_expression "(local_588 != 0)" ( (binary_expression "local_588 != 0" identifier != number_literal) )) ;) })) (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc864c);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc864c)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc864c)" * (cast_expression "(code **)(puVar24 + 0xc864c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc864c)" ( (binary_expression "puVar24 + 0xc864c" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar3 = iVar19 + 0x22fU & 3" identifier = (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" identifier + number_literal) & number_literal)) ;) (expression_statement "iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);" (assignment_expression "iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" identifier = (call_expression "FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" identifier (argument_list "((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" ( (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8" (parenthesized_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8)" ( (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" ( (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar21 * 8" identifier * number_literal)) | (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar21) * 8" number_literal >> (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar3 + 1) * 8" number_literal << (binary_expression "(uVar3 + 1) * 8" (parenthesized_expression "(uVar3 + 1)" ( (binary_expression "uVar3 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar3)" * (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22fU) - uVar3)" ( (binary_expression "(iVar19 + 0x22fU) - uVar3" (parenthesized_expression "(iVar19 + 0x22fU)" ( (binary_expression "iVar19 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar3) * 8" (parenthesized_expression "(3 - uVar3)" ( (binary_expression "3 - uVar3" number_literal - identifier) )) * number_literal))) , (binary_expression "iVar19 + 0x208" identifier + number_literal) , number_literal , (binary_expression "iVar19 + 0x200" identifier + number_literal) )))) ;) (if_statement "if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }" { (expression_statement "local_5d0 = 1;" (assignment_expression "local_5d0 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_000624e4;" goto statement_identifier ;) })) (if_statement "if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }" if (parenthesized_expression "(((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     )" ( (binary_expression "((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)" (parenthesized_expression "((uVar8 & 1) == 0)" ( (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" ( (binary_expression "uVar8 & 1" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0" (assignment_expression "iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d)" identifier = (call_expression "FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d)" identifier (argument_list "(*(undefined4 *)(iVar19 + 0x238),0x3d)" ( (pointer_expression "*(undefined4 *)(iVar19 + 0x238)" * (cast_expression "(undefined4 *)(iVar19 + 0x238)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x238)" ( (binary_expression "iVar19 + 0x238" identifier + number_literal) )))) , number_literal )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }" { (expression_statement "iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);" (assignment_expression "iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" identifier = (call_expression "FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" identifier (argument_list "(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" ( number_literal , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x578c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , number_literal )))) ;) (expression_statement "*(int *)(iVar19 + 0x23c) = iVar7;" (assignment_expression "*(int *)(iVar19 + 0x23c) = iVar7" (pointer_expression "*(int *)(iVar19 + 0x23c)" * (cast_expression "(int *)(iVar19 + 0x23c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x23c)" ( (binary_expression "iVar19 + 0x23c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(iVar7 + 2) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + 2) = 1" (pointer_expression "*(undefined1 *)(iVar7 + 2)" * (cast_expression "(undefined1 *)(iVar7 + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 2)" ( (binary_expression "iVar7 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = *(int *)(iVar19 + 0x23c);" (assignment_expression "iVar7 = *(int *)(iVar19 + 0x23c)" identifier = (pointer_expression "*(int *)(iVar19 + 0x23c)" * (cast_expression "(int *)(iVar19 + 0x23c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x23c)" ( (binary_expression "iVar19 + 0x23c" identifier + number_literal) ))))) ;) (expression_statement "piVar23 = (int *)(iVar7 + 3);" (assignment_expression "piVar23 = (int *)(iVar7 + 3)" identifier = (cast_expression "(int *)(iVar7 + 3)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 3)" ( (binary_expression "iVar7 + 3" identifier + number_literal) )))) ;) (expression_statement "*piVar23 = *(int *)(iVar19 + 0x200);" (assignment_expression "*piVar23 = *(int *)(iVar19 + 0x200)" (pointer_expression "*piVar23" * identifier) = (pointer_expression "*(int *)(iVar19 + 0x200)" * (cast_expression "(int *)(iVar19 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x200)" ( (binary_expression "iVar19 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);" (assignment_expression "*(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204)" (pointer_expression "*(undefined1 *)(iVar7 + 7)" * (cast_expression "(undefined1 *)(iVar7 + 7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 7)" ( (binary_expression "iVar7 + 7" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x204)" * (cast_expression "(undefined1 *)(iVar19 + 0x204)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x204)" ( (binary_expression "iVar19 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);" (assignment_expression "*(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205)" (pointer_expression "*(undefined1 *)(iVar7 + 8)" * (cast_expression "(undefined1 *)(iVar7 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x205)" * (cast_expression "(undefined1 *)(iVar19 + 0x205)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x205)" ( (binary_expression "iVar19 + 0x205" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    piVar23 = (int *)0x0;\n  }" else (compound_statement "{\n    piVar23 = (int *)0x0;\n  }" { (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (if_statement "if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }" if (parenthesized_expression "(*local_5a0 != '\0')" ( (binary_expression "*local_5a0 != '\0'" (pointer_expression "*local_5a0" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }" { (expression_statement "uVar9 = FUN_00060838(0x3c,local_5a0,0);" (assignment_expression "uVar9 = FUN_00060838(0x3c,local_5a0,0)" identifier = (call_expression "FUN_00060838(0x3c,local_5a0,0)" identifier (argument_list "(0x3c,local_5a0,0)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "*(undefined4 *)(iVar19 + 0x240) = uVar9;" (assignment_expression "*(undefined4 *)(iVar19 + 0x240) = uVar9" (pointer_expression "*(undefined4 *)(iVar19 + 0x240)" * (cast_expression "(undefined4 *)(iVar19 + 0x240)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x240)" ( (binary_expression "iVar19 + 0x240" identifier + number_literal) )))) = identifier) ;) })) (if_statement "if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }" if (parenthesized_expression "((uVar8 & 0x4000) != 0)" ( (binary_expression "(uVar8 & 0x4000) != 0" (parenthesized_expression "(uVar8 & 0x4000)" ( (binary_expression "uVar8 & 0x4000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }" { (expression_statement "(**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);" (call_expression "(**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8c0c))" ( (pointer_expression "**(code **)(puVar24 + 0xc8c0c)" * (pointer_expression "*(code **)(puVar24 + 0xc8c0c)" * (cast_expression "(code **)(puVar24 + 0xc8c0c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8c0c)" ( (binary_expression "puVar24 + 0xc8c0c" identifier + number_literal) ))))) )) (argument_list "(**(undefined4 **)(puVar24 + 0xc803c),1,0x18)" ( (pointer_expression "**(undefined4 **)(puVar24 + 0xc803c)" * (pointer_expression "*(undefined4 **)(puVar24 + 0xc803c)" * (cast_expression "(undefined4 **)(puVar24 + 0xc803c)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc803c)" ( (binary_expression "puVar24 + 0xc803c" identifier + number_literal) ))))) , number_literal , number_literal ))) ;) (expression_statement "**(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;" (assignment_expression "**(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar24 + 0xc80cc)" * (pointer_expression "*(byte **)(puVar24 + 0xc80cc)" * (cast_expression "(byte **)(puVar24 + 0xc80cc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80cc)" ( (binary_expression "puVar24 + 0xc80cc" identifier + number_literal) ))))) = (binary_expression "**(byte **)(puVar24 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar24 + 0xc80cc)" * (pointer_expression "*(byte **)(puVar24 + 0xc80cc)" * (cast_expression "(byte **)(puVar24 + 0xc80cc)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80cc)" ( (binary_expression "puVar24 + 0xc80cc" identifier + number_literal) ))))) | number_literal)) ;) })) (expression_statement "local_5f0 = *(code **)(puVar24 + 0xc8058);" (assignment_expression "local_5f0 = *(code **)(puVar24 + 0xc8058)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8058)" * (cast_expression "(code **)(puVar24 + 0xc8058)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8058)" ( (binary_expression "puVar24 + 0xc8058" identifier + number_literal) ))))) ;) (expression_statement "unaff_s6 = (code *)auStack_570;" (assignment_expression "unaff_s6 = (code *)auStack_570" identifier = (cast_expression "(code *)auStack_570" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_5d4 = *(int *)(puVar24 + 0xc801c);" (assignment_expression "local_5d4 = *(int *)(puVar24 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8510))();" (call_expression "(**(code **)(puVar24 + 0xc8510))()" (parenthesized_expression "(**(code **)(puVar24 + 0xc8510))" ( (pointer_expression "**(code **)(puVar24 + 0xc8510)" * (pointer_expression "*(code **)(puVar24 + 0xc8510)" * (cast_expression "(code **)(puVar24 + 0xc8510)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8510)" ( (binary_expression "puVar24 + 0xc8510" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_5b4 = *(code **)(puVar24 + 0xc8650);" (assignment_expression "local_5b4 = *(code **)(puVar24 + 0xc8650)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8650)" * (cast_expression "(code **)(puVar24 + 0xc8650)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8650)" ( (binary_expression "puVar24 + 0xc8650" identifier + number_literal) ))))) ;) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8008);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8008)" identifier = (pointer_expression "*(undefined **)(puVar24 + 0xc8008)" * (cast_expression "(undefined **)(puVar24 + 0xc8008)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8008)" ( (binary_expression "puVar24 + 0xc8008" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5 = *(int **)(puVar24 + 0xc8008);" (assignment_expression "unaff_s5 = *(int **)(puVar24 + 0xc8008)" identifier = (pointer_expression "*(int **)(puVar24 + 0xc8008)" * (cast_expression "(int **)(puVar24 + 0xc8008)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8008)" ( (binary_expression "puVar24 + 0xc8008" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));" (call_expression "(**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230))" (parenthesized_expression "(**(code **)(puVar24 + 0xc82ac))" ( (pointer_expression "**(code **)(puVar24 + 0xc82ac)" * (pointer_expression "*(code **)(puVar24 + 0xc82ac)" * (cast_expression "(code **)(puVar24 + 0xc82ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82ac)" ( (binary_expression "puVar24 + 0xc82ac" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar19 + 0x230))" ( (pointer_expression "*(undefined4 *)(iVar19 + 0x230)" * (cast_expression "(undefined4 *)(iVar19 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x230)" ( (binary_expression "iVar19 + 0x230" identifier + number_literal) )))) ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "local_5ac = *(int *)(puVar24 + 0xc801c);" (assignment_expression "local_5ac = *(int *)(puVar24 + 0xc801c)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) ))))) ;) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6084)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6084" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_00066068();" (call_expression "FUN_00066068()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8128))();" (call_expression "(**(code **)(puVar24 + 0xc8128))()" (parenthesized_expression "(**(code **)(puVar24 + 0xc8128))" ( (pointer_expression "**(code **)(puVar24 + 0xc8128)" * (pointer_expression "*(code **)(puVar24 + 0xc8128)" * (cast_expression "(code **)(puVar24 + 0xc8128)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8128)" ( (binary_expression "puVar24 + 0xc8128" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8df8))(extraout_v1);" (call_expression "(**(code **)(puVar24 + 0xc8df8))(extraout_v1)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8df8))" ( (pointer_expression "**(code **)(puVar24 + 0xc8df8)" * (pointer_expression "*(code **)(puVar24 + 0xc8df8)" * (cast_expression "(code **)(puVar24 + 0xc8df8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8df8)" ( (binary_expression "puVar24 + 0xc8df8" identifier + number_literal) ))))) )) (argument_list "(extraout_v1)" ( identifier ))) ;) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);" (assignment_expression "local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" identifier = (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" ( (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x19d0" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" * (cast_expression "(int *)(puVar24 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc85b4)" ( (binary_expression "puVar24 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_000619d0(0,local_5d4 + 0x6008);" (call_expression "FUN_000619d0(0,local_5d4 + 0x6008)" identifier (argument_list "(0,local_5d4 + 0x6008)" ( number_literal , (binary_expression "local_5d4 + 0x6008" identifier + number_literal) ))) ;) (expression_statement "local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);" (assignment_expression "local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194)" identifier = (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x1194)" ( (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x1194" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" * (cast_expression "(int *)(puVar24 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc85b4)" ( (binary_expression "puVar24 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "FUN_00061194(2);" (call_expression "FUN_00061194(2)" identifier (argument_list "(2)" ( number_literal ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;" (assignment_expression "local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x623c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);" (assignment_expression "local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" identifier = (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" ( (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x1fc8" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" * (cast_expression "(int *)(puVar24 + 0xc85b4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc85b4)" ( (binary_expression "puVar24 + 0xc85b4" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "local_5d0 = 0;" (assignment_expression "local_5d0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00062678:\n  iVar18 = uVar10 - uVar21;" statement_identifier : (expression_statement "iVar18 = uVar10 - uVar21;" (assignment_expression "iVar18 = uVar10 - uVar21" identifier = (binary_expression "uVar10 - uVar21" identifier - identifier)) ;)) (expression_statement "pcVar20 = unaff_s6;" (assignment_expression "pcVar20 = unaff_s6" identifier = identifier) ;) (expression_statement "(*local_5b4)(unaff_s6,iVar7);" (call_expression "(*local_5b4)(unaff_s6,iVar7)" (parenthesized_expression "(*local_5b4)" ( (pointer_expression "*local_5b4" * identifier) )) (argument_list "(unaff_s6,iVar7)" ( identifier , identifier ))) ;) (if_statement "if (0 < iVar18) goto code_r0x00062698;" if (parenthesized_expression "(0 < iVar18)" ( (binary_expression "0 < iVar18" number_literal < identifier) )) (goto_statement "goto code_r0x00062698;" goto statement_identifier ;)) (goto_statement "goto LAB_00062724;" goto statement_identifier ;) (labeled_statement "code_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);" statement_identifier : (expression_statement "pcVar26 = *(code **)(puVar24 + 0xc8618);" (assignment_expression "pcVar26 = *(code **)(puVar24 + 0xc8618)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8618)" * (cast_expression "(code **)(puVar24 + 0xc8618)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8618)" ( (binary_expression "puVar24 + 0xc8618" identifier + number_literal) ))))) ;)) (expression_statement "iVar12 = (*pcVar26)();" (assignment_expression "iVar12 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = 1000;" (assignment_expression "iVar7 = 1000" identifier = number_literal) ;) (if_statement "if (iVar18 < 0x20c49b) goto LAB_00063074;" if (parenthesized_expression "(iVar18 < 0x20c49b)" ( (binary_expression "iVar18 < 0x20c49b" identifier < number_literal) )) (goto_statement "goto LAB_00063074;" goto statement_identifier ;)) (expression_statement "iVar18 = 0x7fffffff;" (assignment_expression "iVar18 = 0x7fffffff" identifier = number_literal) ;) (while_statement "while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }" while (parenthesized_expression "(pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)" ( (comma_expression "pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0" (assignment_expression "pcVar20 = unaff_s6" identifier = identifier) , (comma_expression "iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8ed4))" ( (pointer_expression "**(code **)(puVar24 + 0xc8ed4)" * (pointer_expression "*(code **)(puVar24 + 0xc8ed4)" * (cast_expression "(code **)(puVar24 + 0xc8ed4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8ed4)" ( (binary_expression "puVar24 + 0xc8ed4" identifier + number_literal) ))))) )) (argument_list "(unaff_s6,2,iVar18)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 < 0" identifier < number_literal))) )) (compound_statement "{\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }" { (if_statement "if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }" if (parenthesized_expression "(*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4)" ( (binary_expression "*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4" (pointer_expression "*(int *)**(undefined4 **)(puVar24 + 0xc80a4)" * (cast_expression "(int *)**(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(puVar24 + 0xc80a4)" * (pointer_expression "*(undefined4 **)(puVar24 + 0xc80a4)" * (cast_expression "(undefined4 **)(puVar24 + 0xc80a4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc80a4)" ( (binary_expression "puVar24 + 0xc80a4" identifier + number_literal) ))))))) == number_literal) )) (compound_statement "{\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }" { (expression_statement "iVar18 = (*pcVar26)();" (assignment_expression "iVar18 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = iVar18 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar18 + (uVar21 - iVar12)" identifier = (binary_expression "iVar18 + (uVar21 - iVar12)" identifier + (parenthesized_expression "(uVar21 - iVar12)" ( (binary_expression "uVar21 - iVar12" identifier - identifier) )))) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518)" identifier = (call_expression "(**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518)" (parenthesized_expression "(**(code **)(puVar24 + 0xc807c))" ( (pointer_expression "**(code **)(puVar24 + 0xc807c)" * (pointer_expression "*(code **)(puVar24 + 0xc807c)" * (cast_expression "(code **)(puVar24 + 0xc807c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc807c)" ( (binary_expression "puVar24 + 0xc807c" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x3518)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x3518" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00063074:\n    iVar18 = iVar18 * iVar7;" statement_identifier : (expression_statement "iVar18 = iVar18 * iVar7;" (assignment_expression "iVar18 = iVar18 * iVar7" identifier = (binary_expression "iVar18 * iVar7" identifier * identifier)) ;)) })) (if_statement "if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" { (labeled_statement "LAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;" statement_identifier : (expression_statement "uVar10 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar10 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;)) (expression_statement "uVar21 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22fU & 3" identifier = (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" identifier + number_literal) & number_literal)) ;) (expression_statement "iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);" (assignment_expression "iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" identifier = (call_expression "(*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (parenthesized_expression "(*pcVar25)" ( (pointer_expression "*pcVar25" * identifier) )) (argument_list "((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" ( (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8" (parenthesized_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8)" ( (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar10)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar10)" ( (binary_expression "(iVar19 + 0x22cU) - uVar10" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar10 * 8" identifier * number_literal)) | (binary_expression "(uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8" (cast_expression "(uint)pcVar20" ( (type_descriptor "uint" type_identifier) ) identifier) & (binary_expression "0xffffffffU >> (4 - uVar10) * 8" number_literal >> (binary_expression "(4 - uVar10) * 8" (parenthesized_expression "(4 - uVar10)" ( (binary_expression "4 - uVar10" number_literal - identifier) )) * number_literal)))) )) & (binary_expression "-1 << (uVar21 + 1) * 8" number_literal << (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar21)" * (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22fU) - uVar21)" ( (binary_expression "(iVar19 + 0x22fU) - uVar21" (parenthesized_expression "(iVar19 + 0x22fU)" ( (binary_expression "iVar19 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal))) , (binary_expression "iVar19 + 0x208" identifier + number_literal) , number_literal , (binary_expression "iVar19 + 0x200" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }" { (if_statement "if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }" if (parenthesized_expression "(piVar23 != (int *)0x0)" ( (binary_expression "piVar23 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }" { (expression_statement "*piVar23 = *(int *)(iVar19 + 0x200);" (assignment_expression "*piVar23 = *(int *)(iVar19 + 0x200)" (pointer_expression "*piVar23" * identifier) = (pointer_expression "*(int *)(iVar19 + 0x200)" * (cast_expression "(int *)(iVar19 + 0x200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x200)" ( (binary_expression "iVar19 + 0x200" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);" (assignment_expression "*(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204)" (pointer_expression "*(undefined1 *)(piVar23 + 1)" * (cast_expression "(undefined1 *)(piVar23 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar23 + 1)" ( (binary_expression "piVar23 + 1" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x204)" * (cast_expression "(undefined1 *)(iVar19 + 0x204)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x204)" ( (binary_expression "iVar19 + 0x204" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);" (assignment_expression "*(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205)" (pointer_expression "*(undefined1 *)((int)piVar23 + 5)" * (cast_expression "(undefined1 *)((int)piVar23 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar23 + 5)" ( (binary_expression "(int)piVar23 + 5" (cast_expression "(int)piVar23" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined1 *)(iVar19 + 0x205)" * (cast_expression "(undefined1 *)(iVar19 + 0x205)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x205)" ( (binary_expression "iVar19 + 0x205" identifier + number_literal) ))))) ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }" if (parenthesized_expression "((byte)puVar22[-0x4c42] < 6)" ( (binary_expression "(byte)puVar22[-0x4c42] < 6" (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }" { (expression_statement "iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();" (assignment_expression "iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))()" identifier = (call_expression "(*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))()" (parenthesized_expression "(*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))" ( (pointer_expression "*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" * (cast_expression "(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (binary_expression "puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" identifier + (pointer_expression "*(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" * (cast_expression "(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4" (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6224" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) + (binary_expression "(uint)(byte)puVar22[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar22[-0x4c42]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]))) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar7;" return identifier ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0x7fffffff;" (assignment_expression "uVar10 = 0x7fffffff" identifier = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto joined_r0x00062be8;" goto statement_identifier ;) })) (expression_statement "iVar7 = FUN_0006618c();" (assignment_expression "iVar7 = FUN_0006618c()" identifier = (call_expression "FUN_0006618c()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar7 == 0x10)" ( (binary_expression "iVar7 == 0x10" identifier == number_literal) )) (compound_statement "{\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }" { (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" * (cast_expression "(undefined1 *)(iVar19 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24c)" ( (binary_expression "iVar19 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" * (cast_expression "(undefined1 *)(iVar19 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24d)" ( (binary_expression "iVar19 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "(*local_5f0)(local_5ac + 0x60f8);" (call_expression "(*local_5f0)(local_5ac + 0x60f8)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(local_5ac + 0x60f8)" ( (binary_expression "local_5ac + 0x60f8" identifier + number_literal) ))) ;) (if_statement "if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }" if (parenthesized_expression "((byte)puVar22[-0x4c42] < 7)" ( (binary_expression "(byte)puVar22[-0x4c42] < 7" (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }" { (expression_statement "iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();" (assignment_expression "iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )()" identifier = (call_expression "(*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )()" (parenthesized_expression "(*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )" ( (pointer_expression "*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" * (cast_expression "(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" ( (binary_expression "puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" identifier + (pointer_expression "*(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" * (cast_expression "(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" ( (binary_expression "local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4" identifier + (binary_expression "(uint)(byte)puVar22[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar22[-0x4c42]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar22[-0x4c42]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]))) * number_literal)) ))))) + number_literal) )))) )) (argument_list "()" ( )))) ;) (return_statement "return iVar7;" return identifier ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar7 == 0x11)" ( (binary_expression "iVar7 == 0x11" identifier == number_literal) )) (compound_statement "{\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "uVar10 = 0x7fffffff;" (assignment_expression "uVar10 = 0x7fffffff" identifier = number_literal) ;) (expression_statement "(*local_5a4)(local_578,local_5ec);" (call_expression "(*local_5a4)(local_578,local_5ec)" (parenthesized_expression "(*local_5a4)" ( (pointer_expression "*local_5a4" * identifier) )) (argument_list "(local_578,local_5ec)" ( identifier , identifier ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" if (parenthesized_expression "(iVar7 == 0xf)" ( (binary_expression "iVar7 == 0xf" identifier == number_literal) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6110" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto joined_r0x00062be8;" goto statement_identifier ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (local_562 == 0) goto LAB_00062678;" if (parenthesized_expression "(local_562 == 0)" ( (binary_expression "local_562 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) (expression_statement "iVar7 = *(int *)(puVar24 + 0xc8008);" (assignment_expression "iVar7 = *(int *)(puVar24 + 0xc8008)" identifier = (pointer_expression "*(int *)(puVar24 + 0xc8008)" * (cast_expression "(int *)(puVar24 + 0xc8008)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc8008)" ( (binary_expression "puVar24 + 0xc8008" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" if (parenthesized_expression "(*(char *)(iVar7 + -0x4c41) == '\x01')" ( (binary_expression "*(char *)(iVar7 + -0x4c41) == '\x01'" (pointer_expression "*(char *)(iVar7 + -0x4c41)" * (cast_expression "(char *)(iVar7 + -0x4c41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4c41)" ( (binary_expression "iVar7 + -0x4c41" identifier + number_literal) )))) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    iVar18 = FUN_00065a28(auStack_560);\n  }" { (expression_statement "iVar18 = FUN_00065a28(auStack_560);" (assignment_expression "iVar18 = FUN_00065a28(auStack_560)" identifier = (call_expression "FUN_00065a28(auStack_560)" identifier (argument_list "(auStack_560)" ( identifier )))) ;) }) (else_clause "else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" else (compound_statement "{\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" { (expression_statement "iVar18 = FUN_00060ea8(auStack_560);" (assignment_expression "iVar18 = FUN_00060ea8(auStack_560)" identifier = (call_expression "FUN_00060ea8(auStack_560)" identifier (argument_list "(auStack_560)" ( identifier )))) ;) }))) (if_statement "if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar18 == -1)" ( (binary_expression "iVar18 == -1" identifier == number_literal) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6124)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6124" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(**(code **)(puVar24 + 0xc8f94))(local_580);" (call_expression "(**(code **)(puVar24 + 0xc8f94))(local_580)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f94))" ( (pointer_expression "**(code **)(puVar24 + 0xc8f94)" * (pointer_expression "*(code **)(puVar24 + 0xc8f94)" * (cast_expression "(code **)(puVar24 + 0xc8f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f94)" ( (binary_expression "puVar24 + 0xc8f94" identifier + number_literal) ))))) )) (argument_list "(local_580)" ( identifier ))) ;) (expression_statement "(*local_5e8)((int)*(char *)(iVar7 + -0x4c41));" (call_expression "(*local_5e8)((int)*(char *)(iVar7 + -0x4c41))" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "((int)*(char *)(iVar7 + -0x4c41))" ( (cast_expression "(int)*(char *)(iVar7 + -0x4c41)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar7 + -0x4c41)" * (cast_expression "(char *)(iVar7 + -0x4c41)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -0x4c41)" ( (binary_expression "iVar7 + -0x4c41" identifier + number_literal) ))))) ))) ;) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = iVar7 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar7 + (uVar21 - iVar12)" identifier = (binary_expression "iVar7 + (uVar21 - iVar12)" identifier + (parenthesized_expression "(uVar21 - iVar12)" ( (binary_expression "uVar21 - iVar12" identifier - identifier) )))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = iVar7 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar7 + (uVar21 - iVar12)" identifier = (binary_expression "iVar7 + (uVar21 - iVar12)" identifier + (parenthesized_expression "(uVar21 - iVar12)" ( (binary_expression "uVar21 - iVar12" identifier - identifier) )))) ;) (if_statement "if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0))" ( (binary_expression "(((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)" (parenthesized_expression "(((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06'))" ( (binary_expression "((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')" (parenthesized_expression "((iVar18 < 0) || (local_55c != local_5dc))" ( (binary_expression "(iVar18 < 0) || (local_55c != local_5dc)" (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) || (parenthesized_expression "(local_55c != local_5dc)" ( (binary_expression "local_55c != local_5dc" identifier != identifier) ))) )) || (parenthesized_expression "(local_55e != '\x06')" ( (binary_expression "local_55e != '\x06'" identifier != (char_literal "'\x06'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6)" identifier = (call_expression "(**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8fa4))" ( (pointer_expression "**(code **)(puVar24 + 0xc8fa4)" * (pointer_expression "*(code **)(puVar24 + 0xc8fa4)" * (cast_expression "(code **)(puVar24 + 0xc8fa4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fa4)" ( (binary_expression "puVar24 + 0xc8fa4" identifier + number_literal) ))))) )) (argument_list "(auStack_544,iVar19 + 0x200,6)" ( identifier , (binary_expression "iVar19 + 0x200" identifier + number_literal) , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (labeled_statement "LAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];" statement_identifier : (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;)) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);" (assignment_expression "pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35)" identifier = (cast_expression "(char *)FUN_00066bc4(auStack_560,0x35)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066bc4(auStack_560,0x35)" identifier (argument_list "(auStack_560,0x35)" ( identifier , number_literal ))))) ;) (expression_statement "uVar3 = local_578;" (assignment_expression "uVar3 = local_578" identifier = identifier) ;) (if_statement "if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" if (parenthesized_expression "(pcVar13 == (char *)0x0)" ( (binary_expression "pcVar13 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6148)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6148" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (expression_statement "iVar18 = (int)(char)puVar22[-0x4c42];" (assignment_expression "iVar18 = (int)(char)puVar22[-0x4c42]" identifier = (cast_expression "(int)(char)puVar22[-0x4c42]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)puVar22[-0x4c42]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ])))) ;) (if_statement "if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }" if (parenthesized_expression "(iVar18 != 1)" ( (binary_expression "iVar18 != 1" identifier != number_literal) )) (compound_statement "{\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }" { (if_statement "if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" if (parenthesized_expression "(iVar18 < 2)" ( (binary_expression "iVar18 < 2" identifier < number_literal) )) (compound_statement "{\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" { (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (iVar18 != 0) goto LAB_00062678;" if (parenthesized_expression "(iVar18 != 0)" ( (binary_expression "iVar18 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) (if_statement "if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" if (parenthesized_expression "(*pcVar13 == '\x02')" ( (binary_expression "*pcVar13 == '\x02'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" { (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" identifier = number_literal) ;) (expression_statement "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36)" identifier = (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066cd4(auStack_560,0x36)" identifier (argument_list "(auStack_560,0x36)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" if (parenthesized_expression "(puVar14 == (uint *)0x0)" ( (binary_expression "puVar14 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6170)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6170" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" identifier = identifier) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "puVar22[-0x4c42] = 1;" (assignment_expression "puVar22[-0x4c42] = 1" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" else (compound_statement "{\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" { (expression_statement "local_578 = *puVar14;" (assignment_expression "local_578 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" identifier = identifier) ;) (expression_statement "puVar22[-0x4c42] = 1;" (assignment_expression "puVar22[-0x4c42] = 1" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) }))) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto LAB_00062c40;" goto statement_identifier ;) })) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (if_statement "if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;" if (parenthesized_expression "(2 < (iVar18 - 3U & 0xff))" ( (binary_expression "2 < (iVar18 - 3U & 0xff)" number_literal < (parenthesized_expression "(iVar18 - 3U & 0xff)" ( (binary_expression "iVar18 - 3U & 0xff" (binary_expression "iVar18 - 3U" identifier - number_literal) & number_literal) ))) )) (goto_statement "goto LAB_00062678;" goto statement_identifier ;)) })) (if_statement "if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" if (parenthesized_expression "(*pcVar13 != '\x05')" ( (binary_expression "*pcVar13 != '\x05'" (pointer_expression "*pcVar13" * identifier) != (char_literal "'\x05'" ' escape_sequence ')) )) (compound_statement "{\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" { (if_statement "if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" if (parenthesized_expression "((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))))))" ( (binary_expression "(*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))" (parenthesized_expression "(*pcVar13 == '\x06')" ( (binary_expression "*pcVar13 == '\x06'" (pointer_expression "*pcVar13" * identifier) == (char_literal "'\x06'" ' escape_sequence ')) )) && (parenthesized_expression "((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))" ( (parenthesized_expression "(local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))))" ( (binary_expression "local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))" (binary_expression "local_578 == 0" identifier == number_literal) || (parenthesized_expression "((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))" ( (parenthesized_expression "(puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))" ( (comma_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36)" identifier = (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x36)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066cd4(auStack_560,0x36)" identifier (argument_list "(auStack_560,0x36)" ( identifier , number_literal ))))) , (binary_expression "puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)" (binary_expression "puVar14 != (uint *)0x0" identifier != (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(local_574 = *puVar14, uVar3 == local_574)" ( (comma_expression "local_574 = *puVar14, uVar3 == local_574" (assignment_expression "local_574 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) , (binary_expression "uVar3 == local_574" identifier == identifier)) )))) )) ))) )) ))) )) (compound_statement "{\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6214" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "(*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);" (call_expression "(*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220)" ( identifier , (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6220" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (if_statement "if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }" if (parenthesized_expression "(puVar22[-0x4c42] != '\x01')" ( (binary_expression "puVar22[-0x4c42] != '\x01'" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }" { (expression_statement "(*local_5e4)(0,local_5d4 + 0x6008);" (call_expression "(*local_5e4)(0,local_5d4 + 0x6008)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(0,local_5d4 + 0x6008)" ( number_literal , (binary_expression "local_5d4 + 0x6008" identifier + number_literal) ))) ;) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "(*local_5e8)(2);" (call_expression "(*local_5e8)(2)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(2)" ( number_literal ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(**(code **)(puVar24 + 0xc8f94))(3);" (call_expression "(**(code **)(puVar24 + 0xc8f94))(3)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f94))" ( (pointer_expression "**(code **)(puVar24 + 0xc8f94)" * (pointer_expression "*(code **)(puVar24 + 0xc8f94)" * (cast_expression "(code **)(puVar24 + 0xc8f94)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f94)" ( (binary_expression "puVar24 + 0xc8f94" identifier + number_literal) ))))) )) (argument_list "(3)" ( number_literal ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" * (cast_expression "(undefined1 *)(iVar19 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24c)" ( (binary_expression "iVar19 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_5ec = 0;" (assignment_expression "local_5ec = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" * (cast_expression "(undefined1 *)(iVar19 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24d)" ( (binary_expression "iVar19 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (goto_statement "goto LAB_00062c40;" goto statement_identifier ;) })) (expression_statement "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33)" identifier = (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x33)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00066cd4(auStack_560,0x33)" identifier (argument_list "(auStack_560,0x33)" ( identifier , number_literal ))))) ;) (if_statement "if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" if (parenthesized_expression "(puVar14 == (uint *)0x0)" ( (binary_expression "puVar14 == (uint *)0x0" identifier == (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x618c)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x618c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "local_574 = 0xe10;" (assignment_expression "local_574 = 0xe10" identifier = number_literal) ;) (labeled_statement "LAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);" statement_identifier : (expression_statement "uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (assignment_expression "uVar10 = -((int)(uVar8 << 9) >> 0x1f)" identifier = (unary_expression "-((int)(uVar8 << 9) >> 0x1f)" - (parenthesized_expression "((int)(uVar8 << 9) >> 0x1f)" ( (binary_expression "(int)(uVar8 << 9) >> 0x1f" (cast_expression "(int)(uVar8 << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 << 9)" ( (binary_expression "uVar8 << 9" identifier << number_literal) ))) >> number_literal) )))) ;)) (if_statement "if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }" { (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;" (assignment_expression "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier = (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" ( (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar21 * 8" identifier * number_literal)) | (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar21) * 8" number_literal >> (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))))) ;) (labeled_statement "LAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;" statement_identifier : (expression_statement "uVar21 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22fU & 3" identifier = (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" identifier + number_literal) & number_literal)) ;)) (expression_statement "iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);" (assignment_expression "iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" identifier = (call_expression "FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" identifier (argument_list "(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" ( identifier , number_literal , number_literal , (binary_expression "iVar19 + 0x200" identifier + number_literal) , (binary_expression "uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (binary_expression "uVar10 & -1 << (uVar21 + 1) * 8" identifier & (binary_expression "-1 << (uVar21 + 1) * 8" number_literal << (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" ( (binary_expression "uVar21 + 1" identifier + number_literal) )) * number_literal))) | (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar21)" * (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar21)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22fU) - uVar21)" ( (binary_expression "(iVar19 + 0x22fU) - uVar21" (parenthesized_expression "(iVar19 + 0x22fU)" ( (binary_expression "iVar19 + 0x22fU" identifier + number_literal) )) - identifier) )))) >> (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" ( (binary_expression "3 - uVar21" number_literal - identifier) )) * number_literal))) , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }" { (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x61b8)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x61b8" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_00060c2c(local_578,local_550);" (call_expression "FUN_00060c2c(local_578,local_550)" identifier (argument_list "(local_578,local_550)" ( identifier , identifier ))) ;) (if_statement "if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }" if (parenthesized_expression "(puVar22[-0x4c42] != '\x01')" ( (binary_expression "puVar22[-0x4c42] != '\x01'" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }" { (expression_statement "(*local_5e4)(0,local_5d4 + 0x6008);" (call_expression "(*local_5e4)(0,local_5d4 + 0x6008)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(0,local_5d4 + 0x6008)" ( number_literal , (binary_expression "local_5d4 + 0x6008" identifier + number_literal) ))) ;) })) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "(*local_5e8)(2);" (call_expression "(*local_5e8)(2)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(2)" ( number_literal ))) ;) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_5ec = 0;" (assignment_expression "local_5ec = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" * (cast_expression "(undefined1 *)(iVar19 + 0x24c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24c)" ( (binary_expression "iVar19 + 0x24c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" * (cast_expression "(undefined1 *)(iVar19 + 0x24d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x24d)" ( (binary_expression "iVar19 + 0x24d" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = local_584;" (assignment_expression "uVar10 = local_584" identifier = identifier) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) })) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8fb8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8fb8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8fb8)" * (cast_expression "(code **)(puVar24 + 0xc8fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fb8)" ( (binary_expression "puVar24 + 0xc8fb8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" else (compound_statement "{\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" { (expression_statement "local_574 = *puVar14;" (assignment_expression "local_574 = *puVar14" identifier = (pointer_expression "*puVar14" * identifier)) ;) (if_statement "if (0x79 < local_574) goto LAB_00062d7c;" if (parenthesized_expression "(0x79 < local_574)" ( (binary_expression "0x79 < local_574" number_literal < identifier) )) (goto_statement "goto LAB_00062d7c;" goto statement_identifier ;)) (expression_statement "local_574 = 0x7a;" (assignment_expression "local_574 = 0x7a" identifier = number_literal) ;) (expression_statement "uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (assignment_expression "uVar10 = -((int)(uVar8 << 9) >> 0x1f)" identifier = (unary_expression "-((int)(uVar8 << 9) >> 0x1f)" - (parenthesized_expression "((int)(uVar8 << 9) >> 0x1f)" ( (binary_expression "(int)(uVar8 << 9) >> 0x1f" (cast_expression "(int)(uVar8 << 9)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uVar8 << 9)" ( (binary_expression "uVar8 << 9" identifier << number_literal) ))) >> number_literal) )))) ;) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8fb8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8fb8)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8fb8)" * (cast_expression "(code **)(puVar24 + 0xc8fb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8fb8)" ( (binary_expression "puVar24 + 0xc8fb8" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }" if (parenthesized_expression "(uVar10 != 0)" ( (binary_expression "uVar10 != 0" identifier != number_literal) )) (compound_statement "{\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }" { (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" identifier = (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" identifier + number_literal) & number_literal)) ;) (expression_statement "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;" (assignment_expression "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier = (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" * (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" ( (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" ( (binary_expression "iVar19 + 0x22cU" identifier + number_literal) )) - identifier) )))) << (binary_expression "uVar21 * 8" identifier * number_literal)) | (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" identifier & (binary_expression "0xffffffffU >> (4 - uVar21) * 8" number_literal >> (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" ( (binary_expression "4 - uVar21" number_literal - identifier) )) * number_literal))))) ;) (goto_statement "goto LAB_00062d8c;" goto statement_identifier ;) })) }))) (expression_statement "uVar9 = (*pcVar20)(local_550);" (assignment_expression "uVar9 = (*pcVar20)(local_550)" identifier = (call_expression "(*pcVar20)(local_550)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(local_550)" ( identifier )))) ;) (expression_statement "uVar10 = local_574;" (assignment_expression "uVar10 = local_574" identifier = identifier) ;) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574)" (parenthesized_expression "(*local_5f0)" ( (pointer_expression "*local_5f0" * identifier) )) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574)" ( (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x61f0" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal) , identifier , identifier ))) ;) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" identifier = identifier) ;) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (if_statement "if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" if (parenthesized_expression "(puVar22[-0x4c42] == '\x01')" ( (binary_expression "puVar22[-0x4c42] == '\x01'" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) == (char_literal "'\x01'" ' escape_sequence ')) )) (compound_statement "{\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }" { (expression_statement "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;" (assignment_expression "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6014" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) }) (else_clause "else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" else (compound_statement "{\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" { (expression_statement "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;" (assignment_expression "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108" identifier = (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6108" (pointer_expression "*(int *)(puVar24 + 0xc801c)" * (cast_expression "(int *)(puVar24 + 0xc801c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + 0xc801c)" ( (binary_expression "puVar24 + 0xc801c" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar10 = uVar10 >> 1;" (assignment_expression "uVar10 = uVar10 >> 1" identifier = (binary_expression "uVar10 >> 1" identifier >> number_literal)) ;) (expression_statement "(*local_5e4)(auStack_560,iVar18);" (call_expression "(*local_5e4)(auStack_560,iVar18)" (parenthesized_expression "(*local_5e4)" ( (pointer_expression "*local_5e4" * identifier) )) (argument_list "(auStack_560,iVar18)" ( identifier , identifier ))) ;) (expression_statement "iVar18 = (*pcVar26)();" (assignment_expression "iVar18 = (*pcVar26)()" identifier = (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" ( (pointer_expression "*pcVar26" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar21 = iVar18 - iVar7;" (assignment_expression "uVar21 = iVar18 - iVar7" identifier = (binary_expression "iVar18 - iVar7" identifier - identifier)) ;) (expression_statement "puVar22[-0x4c42] = 2;" (assignment_expression "puVar22[-0x4c42] = 2" (subscript_expression "puVar22[-0x4c42]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }" if (parenthesized_expression "(uVar10 < uVar21)" ( (binary_expression "uVar10 < uVar21" identifier < identifier) )) (compound_statement "{\n    uVar10 = 0;\n    uVar21 = 0;\n  }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) })) (expression_statement "(*local_5e8)(0);" (call_expression "(*local_5e8)(0)" (parenthesized_expression "(*local_5e8)" ( (pointer_expression "*local_5e8" * identifier) )) (argument_list "(0)" ( number_literal ))) ;) (if_statement "if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" if (parenthesized_expression "((uVar8 & 0x100) == 0)" ( (binary_expression "(uVar8 & 0x100) == 0" (parenthesized_expression "(uVar8 & 0x100)" ( (binary_expression "uVar8 & 0x100" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" { (if_statement "if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" if (parenthesized_expression "((uVar8 & 0x80000) == 0)" ( (binary_expression "(uVar8 & 0x80000) == 0" (parenthesized_expression "(uVar8 & 0x80000)" ( (binary_expression "uVar8 & 0x80000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }" { (expression_statement "FUN_000607e4();" (call_expression "FUN_000607e4()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar8 & 0xffd7ffbf | 0x80000;" (assignment_expression "uVar8 = uVar8 & 0xffd7ffbf | 0x80000" identifier = (binary_expression "uVar8 & 0xffd7ffbf | 0x80000" (binary_expression "uVar8 & 0xffd7ffbf" identifier & number_literal) | number_literal)) ;) }) (else_clause "else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" else (compound_statement "{\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" { (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = uVar8 & 0xffffffbf;" (assignment_expression "uVar8 = uVar8 & 0xffffffbf" identifier = (binary_expression "uVar8 & 0xffffffbf" identifier & number_literal)) ;) }))) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })) (labeled_statement "joined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }" statement_identifier : (if_statement "if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }" if (parenthesized_expression "((uVar8 & 0x200) != 0)" ( (binary_expression "(uVar8 & 0x200) != 0" (parenthesized_expression "(uVar8 & 0x200)" ( (binary_expression "uVar8 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    FUN_00061fc8(local_578,local_5ec);\n  }" { (expression_statement "FUN_00061fc8(local_578,local_5ec);" (call_expression "FUN_00061fc8(local_578,local_5ec)" identifier (argument_list "(local_578,local_5ec)" ( identifier , identifier ))) ;) }))) (expression_statement "uVar8 = uVar8 & 0x200;" (assignment_expression "uVar8 = uVar8 & 0x200" identifier = (binary_expression "uVar8 & 0x200" identifier & number_literal)) ;) (if_statement "if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" if (parenthesized_expression "(**(char **)(puVar24 + 0xc82a0) == '\0')" ( (binary_expression "**(char **)(puVar24 + 0xc82a0) == '\0'" (pointer_expression "**(char **)(puVar24 + 0xc82a0)" * (pointer_expression "*(char **)(puVar24 + 0xc82a0)" * (cast_expression "(char **)(puVar24 + 0xc82a0)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc82a0)" ( (binary_expression "puVar24 + 0xc82a0" identifier + number_literal) ))))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" { (labeled_statement "LAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);" statement_identifier : (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8f58);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8f58)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8f58)" * (cast_expression "(code **)(puVar24 + 0xc8f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f58)" ( (binary_expression "puVar24 + 0xc8f58" identifier + number_literal) ))))) ;)) (if_statement "if (local_2ec == *piVar17) {\n      return local_5d0;\n    }" if (parenthesized_expression "(local_2ec == *piVar17)" ( (binary_expression "local_2ec == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      return local_5d0;\n    }" { (return_statement "return local_5d0;" return identifier ;) })) }) (else_clause "else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" else (compound_statement "{\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" { (expression_statement "(**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));" (call_expression "(**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230))" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f1c))" ( (pointer_expression "**(code **)(puVar24 + 0xc8f1c)" * (pointer_expression "*(code **)(puVar24 + 0xc8f1c)" * (cast_expression "(code **)(puVar24 + 0xc8f1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f1c)" ( (binary_expression "puVar24 + 0xc8f1c" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar19 + 0x230))" ( (pointer_expression "*(undefined4 *)(iVar19 + 0x230)" * (cast_expression "(undefined4 *)(iVar19 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + 0x230)" ( (binary_expression "iVar19 + 0x230" identifier + number_literal) )))) ))) ;) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8f58);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8f58)" identifier = (pointer_expression "*(code **)(puVar24 + 0xc8f58)" * (cast_expression "(code **)(puVar24 + 0xc8f58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0xc8f58)" ( (binary_expression "puVar24 + 0xc8f58" identifier + number_literal) ))))) ;) (if_statement "if (local_2ec == *piVar17) {\n      return local_5d0;\n    }" if (parenthesized_expression "(local_2ec == *piVar17)" ( (binary_expression "local_2ec == *piVar17" identifier == (pointer_expression "*piVar17" * identifier)) )) (compound_statement "{\n      return local_5d0;\n    }" { (return_statement "return local_5d0;" return identifier ;) })) }))) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "FUN_00060ae0(local_5dc,local_578,local_5ec);" (call_expression "FUN_00060ae0(local_5dc,local_578,local_5ec)" identifier (argument_list "(local_5dc,local_578,local_5ec)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" identifier = (subscript_expression "unaff_s5[-0x17ff]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = local_580;" (assignment_expression "uVar10 = local_580" identifier = identifier) ;) (goto_statement "goto LAB_00062678;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier short) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (pointer_expression * IDENT) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) | (binary_expression (binary_expression IDENT + LIT) >> (binary_expression IDENT * LIT)))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (pointer_expression * IDENT) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (binary_expression IDENT + LIT) << (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression (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) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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 IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (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 ( LIT , 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) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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 { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (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) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ))) | (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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) ))))) ;) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & 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) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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) )))) , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , 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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) | 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) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_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) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 IDENT + LIT) ))))) )) (argument_list ( (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 IDENT + LIT) ))))) )) (argument_list ( ))) ;) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT )))) , (binary_expression IDENT < LIT))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT)))) )) & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT)) ))))) + LIT) )))) )) (argument_list ( )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (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 ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (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 IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) || (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (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 ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_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 = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) ))) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) , (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * IDENT)) , (binary_expression IDENT == IDENT)) )))) )) ))) )) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (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) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( 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 (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT + LIT) ))))) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT , (binary_expression IDENT + LIT) , (binary_expression (binary_expression IDENT & (binary_expression LIT << (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) | (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT , (binary_expression IDENT + LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT << LIT) ))) >> 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - IDENT) )))) << (binary_expression IDENT * LIT)) | (binary_expression IDENT & (binary_expression LIT >> (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) * LIT))))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) }) (else_clause else (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 IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int FUN_00061fc8(int *param_1,undefined4 param_2)\n\n{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}" (primitive_type "int") (function_declarator "FUN_00061fc8(int *param_1,undefined4 param_2)" (identifier "FUN_00061fc8") (parameter_list "(int *param_1,undefined4 param_2)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  byte bVar2;\n  uint uVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  uint uVar8;\n  undefined4 uVar9;\n  uint uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  char *pcVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  undefined4 extraout_v1;\n  undefined *puVar16;\n  int *piVar17;\n  int iVar18;\n  undefined1 *unaff_s0;\n  int iVar19;\n  undefined4 unaff_s2;\n  code *pcVar20;\n  uint uVar21;\n  undefined *puVar22;\n  int *unaff_s5;\n  code *unaff_s6;\n  int *piVar23;\n  undefined *puVar24;\n  code *pcVar25;\n  code *pcVar26;\n  code *local_5f0;\n  uint local_5ec;\n  code *local_5e8;\n  code *local_5e4;\n  int local_5dc;\n  int local_5d4;\n  int local_5d0;\n  code *local_5b4;\n  int local_5ac;\n  int local_5a8;\n  code *local_5a4;\n  char *local_5a0;\n  undefined4 local_59c;\n  undefined4 local_598;\n  undefined4 local_594;\n  uint local_590;\n  uint local_58c;\n  int local_588;\n  uint local_584;\n  uint local_580;\n  undefined4 local_57c;\n  uint local_578;\n  uint local_574;\n  undefined1 auStack_570 [14];\n  short local_562;\n  undefined1 auStack_560 [2];\n  char local_55e;\n  int local_55c;\n  uint local_550;\n  undefined1 auStack_544 [600];\n  int local_2ec;\n  undefined1 *local_2e8;\n  undefined *local_2e4;\n  undefined4 local_2e0;\n  undefined *local_2dc;\n  undefined *local_2d8;\n  int *local_2d4;\n  undefined1 auStack_2a8 [12];\n  undefined4 local_29c;\n  undefined1 auStack_34 [16];\n  int local_24;\n  \n  puVar5 = PTR___stack_chk_guard_0012b14c;\n  puVar4 = PTR_FUN_0012a1c8;\n  puVar22 = PTR_DAT_0012a178;\n  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;\n  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }\n  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);\n  puVar16 = PTR_UINT_0012a18c + 0x6008;\n  FUN_000619d0(0,puVar16);\n  FUN_00061194(0);\n  iVar7 = *(int *)puVar5;\n  puVar22[-0x4c42] = 6;\n  if (local_24 == iVar7) {\n    return iVar7;\n  }\n  puVar24 = PTR___stack_chk_fail_0012b0c8;\n  (*(code *)PTR___stack_chk_fail_0012b0c8)();\n  piVar17 = *(int **)(puVar24 + 0xc8fdc);\n  iVar7 = *(int *)(puVar24 + 0xc801c);\n  piVar23 = &local_588;\n  local_2d8 = puVar5;\n  local_2e4 = puVar4;\n  local_2dc = puVar22;\n  iVar19 = *(int *)(puVar24 + 0xc81d4);\n  local_2ec = *piVar17;\n  pcVar25 = *(code **)(puVar24 + 0xc8178);\n  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;\n  uVar8 = iVar19 + 0x234U & 3;\n  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);\n  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;\n  local_584 = 0x14;\n  local_580 = 3;\n  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;\n  local_57c = 3;\n  local_58c = 0;\n  local_588 = 0;\n  uVar8 = iVar19 + 0x237U & 3;\n  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);\n  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;\n  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);\n  local_2e8 = unaff_s0;\n  local_2e0 = unaff_s2;\n  local_2d4 = unaff_s5;\n  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);\n  if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }\n  if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }\n  local_5ec = uVar8 & 0x400;\n  if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }\n  uVar10 = local_590;\n  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);\n  if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }\n  pbVar15 = *(byte **)(puVar24 + 0xc8634);\n  if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }\n  pcVar25 = *(code **)(puVar24 + 0xc8648);\n  if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }\n  uVar21 = iVar19 + 0x22cU & 3;\n  pcVar25 = *(code **)(puVar24 + 0xc864c);\n  uVar3 = iVar19 + 0x22fU & 3;\n  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n  if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }\n  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }\n  if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }\n  if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }\n  local_5f0 = *(code **)(puVar24 + 0xc8058);\n  unaff_s6 = (code *)auStack_570;\n  local_5d4 = *(int *)(puVar24 + 0xc801c);\n  (**(code **)(puVar24 + 0xc8510))();\n  local_5b4 = *(code **)(puVar24 + 0xc8650);\n  puVar22 = *(undefined **)(puVar24 + 0xc8008);\n  unaff_s5 = *(int **)(puVar24 + 0xc8008);\n  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));\n  uVar21 = 0;\n  local_5ac = *(int *)(puVar24 + 0xc801c);\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);\n  FUN_00066068();\n  (**(code **)(puVar24 + 0xc8128))();\n  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);\n  puVar22[-0x4c42] = 0;\n  uVar10 = 0;\n  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);\n  FUN_000619d0(0,local_5d4 + 0x6008);\n  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);\n  FUN_00061194(2);\n  iVar7 = unaff_s5[-0x17ff];\n  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;\n  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);\n  local_5d0 = 0;\nLAB_00062678:\n  iVar18 = uVar10 - uVar21;\n  pcVar20 = unaff_s6;\n  (*local_5b4)(unaff_s6,iVar7);\n  if (0 < iVar18) goto code_r0x00062698;\n  goto LAB_00062724;\ncode_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);\n  iVar12 = (*pcVar26)();\n  iVar7 = 1000;\n  if (iVar18 < 0x20c49b) goto LAB_00063074;\n  iVar18 = 0x7fffffff;\n  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }\n  if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }\n  iVar7 = FUN_0006618c();\n  if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }\n  iVar7 = unaff_s5[-0x17ff];\n  if (local_562 == 0) goto LAB_00062678;\n  iVar7 = *(int *)(puVar24 + 0xc8008);\n  if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }\n  if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar7 = (*pcVar26)();\n  uVar21 = iVar7 + (uVar21 - iVar12);\n  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);\n  uVar3 = local_578;\n  if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }\n  iVar18 = (int)(char)puVar22[-0x4c42];\n  if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }\n  if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }\n  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);\n  if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }\n  uVar9 = (*pcVar20)(local_550);\n  uVar10 = local_574;\n  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);\n  local_5ec = local_550;\n  iVar7 = (*pcVar26)();\n  if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }\n  uVar10 = uVar10 >> 1;\n  (*local_5e4)(auStack_560,iVar18);\n  iVar18 = (*pcVar26)();\n  uVar21 = iVar18 - iVar7;\n  puVar22[-0x4c42] = 2;\n  if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }\n  (*local_5e8)(0);\n  if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }\njoined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }\n  uVar8 = uVar8 & 0x200;\n  if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  (*pcVar20)();\n  uVar21 = 0;\n  FUN_00060ae0(local_5dc,local_578,local_5ec);\n  iVar7 = unaff_s5[-0x17ff];\n  uVar10 = local_580;\n  goto LAB_00062678;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "byte bVar2;" (type_identifier "byte") (identifier "bVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "undefined4 extraout_v1;" (type_identifier "undefined4") (identifier "extraout_v1") (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int *piVar17;" (primitive_type "int") (pointer_declarator "*piVar17" (* "*") (identifier "piVar17")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined1 *unaff_s0;" (type_identifier "undefined1") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined4 unaff_s2;" (type_identifier "undefined4") (identifier "unaff_s2") (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined *puVar22;" (type_identifier "undefined") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int *unaff_s5;" (primitive_type "int") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "code *unaff_s6;" (type_identifier "code") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "code *pcVar25;" (type_identifier "code") (pointer_declarator "*pcVar25" (* "*") (identifier "pcVar25")) (; ";")) (declaration "code *pcVar26;" (type_identifier "code") (pointer_declarator "*pcVar26" (* "*") (identifier "pcVar26")) (; ";")) (declaration "code *local_5f0;" (type_identifier "code") (pointer_declarator "*local_5f0" (* "*") (identifier "local_5f0")) (; ";")) (declaration "uint local_5ec;" (type_identifier "uint") (identifier "local_5ec") (; ";")) (declaration "code *local_5e8;" (type_identifier "code") (pointer_declarator "*local_5e8" (* "*") (identifier "local_5e8")) (; ";")) (declaration "code *local_5e4;" (type_identifier "code") (pointer_declarator "*local_5e4" (* "*") (identifier "local_5e4")) (; ";")) (declaration "int local_5dc;" (primitive_type "int") (identifier "local_5dc") (; ";")) (declaration "int local_5d4;" (primitive_type "int") (identifier "local_5d4") (; ";")) (declaration "int local_5d0;" (primitive_type "int") (identifier "local_5d0") (; ";")) (declaration "code *local_5b4;" (type_identifier "code") (pointer_declarator "*local_5b4" (* "*") (identifier "local_5b4")) (; ";")) (declaration "int local_5ac;" (primitive_type "int") (identifier "local_5ac") (; ";")) (declaration "int local_5a8;" (primitive_type "int") (identifier "local_5a8") (; ";")) (declaration "code *local_5a4;" (type_identifier "code") (pointer_declarator "*local_5a4" (* "*") (identifier "local_5a4")) (; ";")) (declaration "char *local_5a0;" (primitive_type "char") (pointer_declarator "*local_5a0" (* "*") (identifier "local_5a0")) (; ";")) (declaration "undefined4 local_59c;" (type_identifier "undefined4") (identifier "local_59c") (; ";")) (declaration "undefined4 local_598;" (type_identifier "undefined4") (identifier "local_598") (; ";")) (declaration "undefined4 local_594;" (type_identifier "undefined4") (identifier "local_594") (; ";")) (declaration "uint local_590;" (type_identifier "uint") (identifier "local_590") (; ";")) (declaration "uint local_58c;" (type_identifier "uint") (identifier "local_58c") (; ";")) (declaration "int local_588;" (primitive_type "int") (identifier "local_588") (; ";")) (declaration "uint local_584;" (type_identifier "uint") (identifier "local_584") (; ";")) (declaration "uint local_580;" (type_identifier "uint") (identifier "local_580") (; ";")) (declaration "undefined4 local_57c;" (type_identifier "undefined4") (identifier "local_57c") (; ";")) (declaration "uint local_578;" (type_identifier "uint") (identifier "local_578") (; ";")) (declaration "uint local_574;" (type_identifier "uint") (identifier "local_574") (; ";")) (declaration "undefined1 auStack_570 [14];" (type_identifier "undefined1") (array_declarator "auStack_570 [14]" (identifier "auStack_570") ([ "[") (number_literal "14") (] "]")) (; ";")) (declaration "short local_562;" (sized_type_specifier "short" (short "short")) (identifier "local_562") (; ";")) (declaration "undefined1 auStack_560 [2];" (type_identifier "undefined1") (array_declarator "auStack_560 [2]" (identifier "auStack_560") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "char local_55e;" (primitive_type "char") (identifier "local_55e") (; ";")) (declaration "int local_55c;" (primitive_type "int") (identifier "local_55c") (; ";")) (declaration "uint local_550;" (type_identifier "uint") (identifier "local_550") (; ";")) (declaration "undefined1 auStack_544 [600];" (type_identifier "undefined1") (array_declarator "auStack_544 [600]" (identifier "auStack_544") ([ "[") (number_literal "600") (] "]")) (; ";")) (declaration "int local_2ec;" (primitive_type "int") (identifier "local_2ec") (; ";")) (declaration "undefined1 *local_2e8;" (type_identifier "undefined1") (pointer_declarator "*local_2e8" (* "*") (identifier "local_2e8")) (; ";")) (declaration "undefined *local_2e4;" (type_identifier "undefined") (pointer_declarator "*local_2e4" (* "*") (identifier "local_2e4")) (; ";")) (declaration "undefined4 local_2e0;" (type_identifier "undefined4") (identifier "local_2e0") (; ";")) (declaration "undefined *local_2dc;" (type_identifier "undefined") (pointer_declarator "*local_2dc" (* "*") (identifier "local_2dc")) (; ";")) (declaration "undefined *local_2d8;" (type_identifier "undefined") (pointer_declarator "*local_2d8" (* "*") (identifier "local_2d8")) (; ";")) (declaration "int *local_2d4;" (primitive_type "int") (pointer_declarator "*local_2d4" (* "*") (identifier "local_2d4")) (; ";")) (declaration "undefined1 auStack_2a8 [12];" (type_identifier "undefined1") (array_declarator "auStack_2a8 [12]" (identifier "auStack_2a8") ([ "[") (number_literal "12") (] "]")) (; ";")) (declaration "undefined4 local_29c;" (type_identifier "undefined4") (identifier "local_29c") (; ";")) (declaration "undefined1 auStack_34 [16];" (type_identifier "undefined1") (array_declarator "auStack_34 [16]" (identifier "auStack_34") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "int local_24;" (primitive_type "int") (identifier "local_24") (; ";")) (expression_statement "puVar5 = PTR___stack_chk_guard_0012b14c;" (assignment_expression "puVar5 = PTR___stack_chk_guard_0012b14c" (identifier "puVar5") (= "=") (identifier "PTR___stack_chk_guard_0012b14c")) (; ";")) (expression_statement "puVar4 = PTR_FUN_0012a1c8;" (assignment_expression "puVar4 = PTR_FUN_0012a1c8" (identifier "puVar4") (= "=") (identifier "PTR_FUN_0012a1c8")) (; ";")) (expression_statement "puVar22 = PTR_DAT_0012a178;" (assignment_expression "puVar22 = PTR_DAT_0012a178" (identifier "puVar22") (= "=") (identifier "PTR_DAT_0012a178")) (; ";")) (expression_statement "local_24 = *(int *)PTR___stack_chk_guard_0012b14c;" (assignment_expression "local_24 = *(int *)PTR___stack_chk_guard_0012b14c" (identifier "local_24") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0012b14c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0012b14c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0012b14c")))) (; ";")) (if_statement "if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }" (if "if") (parenthesized_expression "((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4)" (( "(") (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4" (binary_expression "(byte)PTR_DAT_0012a178[-0x4c42] - 2" (cast_expression "(byte)PTR_DAT_0012a178[-0x4c42]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "PTR_DAT_0012a178[-0x4c42]" (identifier "PTR_DAT_0012a178") ([ "[") (number_literal "-0x4c42") (] "]"))) (- "-") (number_literal "2")) (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();\n    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);\n    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);\n    unaff_s0 = auStack_2a8;\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);\n    FUN_000608e4(unaff_s0,7);\n    local_29c = param_2;\n    FUN_00066e38(unaff_s0,0x36,param_1);\n    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);\n    FUN_00060768(unaff_s0,param_2,param_1);\n    unaff_s2 = param_2;\n    unaff_s5 = param_1;\n  }" ({ "{") (expression_statement "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();" (assignment_expression "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)()" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_inet_ntoa_0012b128)()" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" (( "(") (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" (* "*") (cast_expression "(code *)PTR_inet_ntoa_0012b128" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inet_ntoa_0012b128"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "(*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);" (call_expression "(*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10)" (parenthesized_expression "(*(code *)PTR___strcpy_chk_0012ae3c)" (( "(") (pointer_expression "*(code *)PTR___strcpy_chk_0012ae3c" (* "*") (cast_expression "(code *)PTR___strcpy_chk_0012ae3c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___strcpy_chk_0012ae3c"))) () ")")) (argument_list "(auStack_34,uVar6,0x10)" (( "(") (identifier "auStack_34") (, ",") (identifier "uVar6") (, ",") (number_literal "0x10") () ")"))) (; ";")) (expression_statement "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);" (assignment_expression "uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2)" (identifier "uVar6") (= "=") (call_expression "(*(code *)PTR_inet_ntoa_0012b128)(param_2)" (parenthesized_expression "(*(code *)PTR_inet_ntoa_0012b128)" (( "(") (pointer_expression "*(code *)PTR_inet_ntoa_0012b128" (* "*") (cast_expression "(code *)PTR_inet_ntoa_0012b128" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_inet_ntoa_0012b128"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "unaff_s0 = auStack_2a8;" (assignment_expression "unaff_s0 = auStack_2a8" (identifier "unaff_s0") (= "=") (identifier "auStack_2a8")) (; ";")) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x5fcc" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x5fcc")) (, ",") (identifier "uVar6") (, ",") (identifier "auStack_34") () ")"))) (; ";")) (expression_statement "FUN_000608e4(unaff_s0,7);" (call_expression "FUN_000608e4(unaff_s0,7)" (identifier "FUN_000608e4") (argument_list "(unaff_s0,7)" (( "(") (identifier "unaff_s0") (, ",") (number_literal "7") () ")"))) (; ";")) (expression_statement "local_29c = param_2;" (assignment_expression "local_29c = param_2" (identifier "local_29c") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_00066e38(unaff_s0,0x36,param_1);" (call_expression "FUN_00066e38(unaff_s0,0x36,param_1)" (identifier "FUN_00066e38") (argument_list "(unaff_s0,0x36,param_1)" (( "(") (identifier "unaff_s0") (, ",") (number_literal "0x36") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x5ec8" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x5ec8")) (, ",") (binary_expression "PTR_UINT_0012a18c + 0x1e8c" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x1e8c")) () ")"))) (; ";")) (expression_statement "FUN_00060768(unaff_s0,param_2,param_1);" (call_expression "FUN_00060768(unaff_s0,param_2,param_1)" (identifier "FUN_00060768") (argument_list "(unaff_s0,param_2,param_1)" (( "(") (identifier "unaff_s0") (, ",") (identifier "param_2") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "unaff_s2 = param_2;" (assignment_expression "unaff_s2 = param_2" (identifier "unaff_s2") (= "=") (identifier "param_2")) (; ";")) (expression_statement "unaff_s5 = param_1;" (assignment_expression "unaff_s5 = param_1" (identifier "unaff_s5") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (expression_statement "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);" (call_expression "(*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0)" (parenthesized_expression "(*(code *)puVar4)" (( "(") (pointer_expression "*(code *)puVar4" (* "*") (cast_expression "(code *)puVar4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4"))) () ")")) (argument_list "(PTR_UINT_0012a18c + 0x5ff0)" (( "(") (binary_expression "PTR_UINT_0012a18c + 0x5ff0" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x5ff0")) () ")"))) (; ";")) (expression_statement "puVar16 = PTR_UINT_0012a18c + 0x6008;" (assignment_expression "puVar16 = PTR_UINT_0012a18c + 0x6008" (identifier "puVar16") (= "=") (binary_expression "PTR_UINT_0012a18c + 0x6008" (identifier "PTR_UINT_0012a18c") (+ "+") (number_literal "0x6008"))) (; ";")) (expression_statement "FUN_000619d0(0,puVar16);" (call_expression "FUN_000619d0(0,puVar16)" (identifier "FUN_000619d0") (argument_list "(0,puVar16)" (( "(") (number_literal "0") (, ",") (identifier "puVar16") () ")"))) (; ";")) (expression_statement "FUN_00061194(0);" (call_expression "FUN_00061194(0)" (identifier "FUN_00061194") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)puVar5;" (assignment_expression "iVar7 = *(int *)puVar5" (identifier "iVar7") (= "=") (pointer_expression "*(int *)puVar5" (* "*") (cast_expression "(int *)puVar5" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (expression_statement "puVar22[-0x4c42] = 6;" (assignment_expression "puVar22[-0x4c42] = 6" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "6")) (; ";")) (if_statement "if (local_24 == iVar7) {\n    return iVar7;\n  }" (if "if") (parenthesized_expression "(local_24 == iVar7)" (( "(") (binary_expression "local_24 == iVar7" (identifier "local_24") (== "==") (identifier "iVar7")) () ")")) (compound_statement "{\n    return iVar7;\n  }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "puVar24 = PTR___stack_chk_fail_0012b0c8;" (assignment_expression "puVar24 = PTR___stack_chk_fail_0012b0c8" (identifier "puVar24") (= "=") (identifier "PTR___stack_chk_fail_0012b0c8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0012b0c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0012b0c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0012b0c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0012b0c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0012b0c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar17 = *(int **)(puVar24 + 0xc8fdc);" (assignment_expression "piVar17 = *(int **)(puVar24 + 0xc8fdc)" (identifier "piVar17") (= "=") (pointer_expression "*(int **)(puVar24 + 0xc8fdc)" (* "*") (cast_expression "(int **)(puVar24 + 0xc8fdc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8fdc)" (( "(") (binary_expression "puVar24 + 0xc8fdc" (identifier "puVar24") (+ "+") (number_literal "0xc8fdc")) () ")"))))) (; ";")) (expression_statement "iVar7 = *(int *)(puVar24 + 0xc801c);" (assignment_expression "iVar7 = *(int *)(puVar24 + 0xc801c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")"))))) (; ";")) (expression_statement "piVar23 = &local_588;" (assignment_expression "piVar23 = &local_588" (identifier "piVar23") (= "=") (pointer_expression "&local_588" (& "&") (identifier "local_588"))) (; ";")) (expression_statement "local_2d8 = puVar5;" (assignment_expression "local_2d8 = puVar5" (identifier "local_2d8") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "local_2e4 = puVar4;" (assignment_expression "local_2e4 = puVar4" (identifier "local_2e4") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "local_2dc = puVar22;" (assignment_expression "local_2dc = puVar22" (identifier "local_2dc") (= "=") (identifier "puVar22")) (; ";")) (expression_statement "iVar19 = *(int *)(puVar24 + 0xc81d4);" (assignment_expression "iVar19 = *(int *)(puVar24 + 0xc81d4)" (identifier "iVar19") (= "=") (pointer_expression "*(int *)(puVar24 + 0xc81d4)" (* "*") (cast_expression "(int *)(puVar24 + 0xc81d4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc81d4)" (( "(") (binary_expression "puVar24 + 0xc81d4" (identifier "puVar24") (+ "+") (number_literal "0xc81d4")) () ")"))))) (; ";")) (expression_statement "local_2ec = *piVar17;" (assignment_expression "local_2ec = *piVar17" (identifier "local_2ec") (= "=") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) (; ";")) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc8178);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc8178)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8178)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8178)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8178)" (( "(") (binary_expression "puVar24 + 0xc8178" (identifier "puVar24") (+ "+") (number_literal "0xc8178")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;" (assignment_expression "*(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(iVar19 + 0x22c)" (* "*") (cast_expression "(int *)(iVar19 + 0x22c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x22c)" (( "(") (binary_expression "iVar19 + 0x22c" (identifier "iVar19") (+ "+") (number_literal "0x22c")) () ")")))) (= "=") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x2408" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x2408"))) (; ";")) (expression_statement "uVar8 = iVar19 + 0x234U & 3;" (assignment_expression "uVar8 = iVar19 + 0x234U & 3" (identifier "uVar8") (= "=") (binary_expression "iVar19 + 0x234U & 3" (binary_expression "iVar19 + 0x234U" (identifier "iVar19") (+ "+") (number_literal "0x234U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);" (assignment_expression "puVar14 = (uint *)((iVar19 + 0x234U) - uVar8)" (identifier "puVar14") (= "=") (cast_expression "(uint *)((iVar19 + 0x234U) - uVar8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x234U) - uVar8)" (( "(") (binary_expression "(iVar19 + 0x234U) - uVar8" (parenthesized_expression "(iVar19 + 0x234U)" (( "(") (binary_expression "iVar19 + 0x234U" (identifier "iVar19") (+ "+") (number_literal "0x234U")) () ")")) (- "-") (identifier "uVar8")) () ")")))) (; ";")) (expression_statement "*puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;" (assignment_expression "*puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "*puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8" (binary_expression "*puVar14 & -1 << (4 - uVar8) * 8" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (& "&") (binary_expression "-1 << (4 - uVar8) * 8" (number_literal "-1") (<< "<<") (binary_expression "(4 - uVar8) * 8" (parenthesized_expression "(4 - uVar8)" (( "(") (binary_expression "4 - uVar8" (number_literal "4") (- "-") (identifier "uVar8")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "iVar7 + 0x6024U >> uVar8 * 8" (binary_expression "iVar7 + 0x6024U" (identifier "iVar7") (+ "+") (number_literal "0x6024U")) (>> ">>") (binary_expression "uVar8 * 8" (identifier "uVar8") (* "*") (number_literal "8"))))) (; ";")) (expression_statement "local_584 = 0x14;" (assignment_expression "local_584 = 0x14" (identifier "local_584") (= "=") (number_literal "0x14")) (; ";")) (expression_statement "local_580 = 3;" (assignment_expression "local_580 = 3" (identifier "local_580") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;" (assignment_expression "local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c" (identifier "local_590") (= "=") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x601c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x601c"))) (; ";")) (expression_statement "local_57c = 3;" (assignment_expression "local_57c = 3" (identifier "local_57c") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_58c = 0;" (assignment_expression "local_58c = 0" (identifier "local_58c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_588 = 0;" (assignment_expression "local_588 = 0" (identifier "local_588") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = iVar19 + 0x237U & 3;" (assignment_expression "uVar8 = iVar19 + 0x237U & 3" (identifier "uVar8") (= "=") (binary_expression "iVar19 + 0x237U & 3" (binary_expression "iVar19 + 0x237U" (identifier "iVar19") (+ "+") (number_literal "0x237U")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);" (assignment_expression "puVar14 = (uint *)((iVar19 + 0x237U) - uVar8)" (identifier "puVar14") (= "=") (cast_expression "(uint *)((iVar19 + 0x237U) - uVar8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x237U) - uVar8)" (( "(") (binary_expression "(iVar19 + 0x237U) - uVar8" (parenthesized_expression "(iVar19 + 0x237U)" (( "(") (binary_expression "iVar19 + 0x237U" (identifier "iVar19") (+ "+") (number_literal "0x237U")) () ")")) (- "-") (identifier "uVar8")) () ")")))) (; ";")) (expression_statement "*puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;" (assignment_expression "*puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (= "=") (binary_expression "*puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8" (binary_expression "*puVar14 & 0xffffffffU >> (uVar8 + 1) * 8" (pointer_expression "*puVar14" (* "*") (identifier "puVar14")) (& "&") (binary_expression "0xffffffffU >> (uVar8 + 1) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(uVar8 + 1) * 8" (parenthesized_expression "(uVar8 + 1)" (( "(") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "iVar7 + 0x6024U << (3 - uVar8) * 8" (binary_expression "iVar7 + 0x6024U" (identifier "iVar7") (+ "+") (number_literal "0x6024U")) (<< "<<") (binary_expression "(3 - uVar8) * 8" (parenthesized_expression "(3 - uVar8)" (( "(") (binary_expression "3 - uVar8" (number_literal "3") (- "-") (identifier "uVar8")) () ")")) (* "*") (number_literal "8"))))) (; ";")) (expression_statement "local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);" (assignment_expression "local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040)" (identifier "local_5a0") (= "=") (cast_expression "(char *)(*(int *)(puVar24 + 0xc801c) + 0x6040)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar24 + 0xc801c) + 0x6040)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6040" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6040")) () ")")))) (; ";")) (expression_statement "local_2e8 = unaff_s0;" (assignment_expression "local_2e8 = unaff_s0" (identifier "local_2e8") (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "local_2e0 = unaff_s2;" (assignment_expression "local_2e0 = unaff_s2" (identifier "local_2e0") (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "local_2d4 = unaff_s5;" (assignment_expression "local_2d4 = unaff_s5" (identifier "local_2d4") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590);" (assignment_expression "uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" (identifier "uVar8") (= "=") (call_expression "(*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,\n                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,\n                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,\n                     &local_57c,&local_584,&local_58c,piVar23,&local_590)" (( "(") (identifier "puVar16") (, ",") (binary_expression "*(int *)(puVar24 + 0xc801c) + -0x1ca0" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "-0x1ca0")) (, ",") (binary_expression "*(int *)(puVar24 + 0xc8038) + 0x667c" (pointer_expression "*(int *)(puVar24 + 0xc8038)" (* "*") (cast_expression "(int *)(puVar24 + 0xc8038)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc8038)" (( "(") (binary_expression "puVar24 + 0xc8038" (identifier "puVar24") (+ "+") (number_literal "0xc8038")) () ")")))) (+ "+") (number_literal "0x667c")) (, ",") (pointer_expression "&local_5a0" (& "&") (identifier "local_5a0")) (, ",") (pointer_expression "&local_59c" (& "&") (identifier "local_59c")) (, ",") (pointer_expression "&local_59c" (& "&") (identifier "local_59c")) (, ",") (pointer_expression "&local_598" (& "&") (identifier "local_598")) (, ",") (binary_expression "iVar19 + 0x22c" (identifier "iVar19") (+ "+") (number_literal "0x22c")) (, ",") (binary_expression "iVar19 + 0x230" (identifier "iVar19") (+ "+") (number_literal "0x230")) (, ",") (pointer_expression "&local_594" (& "&") (identifier "local_594")) (, ",") (binary_expression "iVar19 + 0x234" (identifier "iVar19") (+ "+") (number_literal "0x234")) (, ",") (pointer_expression "&local_580" (& "&") (identifier "local_580")) (, ",") (pointer_expression "&local_57c" (& "&") (identifier "local_57c")) (, ",") (pointer_expression "&local_584" (& "&") (identifier "local_584")) (, ",") (pointer_expression "&local_58c" (& "&") (identifier "local_58c")) (, ",") (identifier "piVar23") (, ",") (pointer_expression "&local_590" (& "&") (identifier "local_590")) () ")")))) (; ";")) (if_statement "if ((uVar8 & 0xc) != 0) {\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }" (if "if") (parenthesized_expression "((uVar8 & 0xc) != 0)" (( "(") (binary_expression "(uVar8 & 0xc) != 0" (parenthesized_expression "(uVar8 & 0xc)" (( "(") (binary_expression "uVar8 & 0xc" (identifier "uVar8") (& "&") (number_literal "0xc")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);\n    uVar6 = FUN_00060838(0xc,local_59c,0);\n    *(undefined4 *)(iVar19 + 0x244) = uVar6;\n  }" ({ "{") (expression_statement "(**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);" (call_expression "(**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8058))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8058)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8058)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8058)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8058)" (( "(") (binary_expression "puVar24 + 0xc8058" (identifier "puVar24") (+ "+") (number_literal "0xc8058")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6050)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6050" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6050")) () ")"))) (; ";")) (expression_statement "uVar6 = FUN_00060838(0xc,local_59c,0);" (assignment_expression "uVar6 = FUN_00060838(0xc,local_59c,0)" (identifier "uVar6") (= "=") (call_expression "FUN_00060838(0xc,local_59c,0)" (identifier "FUN_00060838") (argument_list "(0xc,local_59c,0)" (( "(") (number_literal "0xc") (, ",") (identifier "local_59c") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar19 + 0x244) = uVar6;" (assignment_expression "*(undefined4 *)(iVar19 + 0x244) = uVar6" (pointer_expression "*(undefined4 *)(iVar19 + 0x244)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x244)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x244)" (( "(") (binary_expression "iVar19 + 0x244" (identifier "iVar19") (+ "+") (number_literal "0x244")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (if_statement "if ((uVar8 & 0x10) != 0) {\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }" (if "if") (parenthesized_expression "((uVar8 & 0x10) != 0)" (( "(") (binary_expression "(uVar8 & 0x10) != 0" (parenthesized_expression "(uVar8 & 0x10)" (( "(") (binary_expression "uVar8 & 0x10" (identifier "uVar8") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = FUN_00060838(0x51,local_598,3);\n    *(int *)(iVar19 + 0x248) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n  }" ({ "{") (expression_statement "iVar7 = FUN_00060838(0x51,local_598,3);" (assignment_expression "iVar7 = FUN_00060838(0x51,local_598,3)" (identifier "iVar7") (= "=") (call_expression "FUN_00060838(0x51,local_598,3)" (identifier "FUN_00060838") (argument_list "(0x51,local_598,3)" (( "(") (number_literal "0x51") (, ",") (identifier "local_598") (, ",") (number_literal "3") () ")")))) (; ";")) (expression_statement "*(int *)(iVar19 + 0x248) = iVar7;" (assignment_expression "*(int *)(iVar19 + 0x248) = iVar7" (pointer_expression "*(int *)(iVar19 + 0x248)" (* "*") (cast_expression "(int *)(iVar19 + 0x248)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x248)" (( "(") (binary_expression "iVar19 + 0x248" (identifier "iVar19") (+ "+") (number_literal "0x248")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 2) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + 2) = 1" (pointer_expression "*(undefined1 *)(iVar7 + 2)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 2)" (( "(") (binary_expression "iVar7 + 2" (identifier "iVar7") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "local_5ec = uVar8 & 0x400;" (assignment_expression "local_5ec = uVar8 & 0x400" (identifier "local_5ec") (= "=") (binary_expression "uVar8 & 0x400" (identifier "uVar8") (& "&") (number_literal "0x400"))) (; ";")) (if_statement "if (local_5ec != 0) {\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }" (if "if") (parenthesized_expression "(local_5ec != 0)" (( "(") (binary_expression "local_5ec != 0" (identifier "local_5ec") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);\n  }" ({ "{") (expression_statement "local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);" (assignment_expression "local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594)" (identifier "local_5ec") (= "=") (call_expression "(**(code **)(puVar24 + 0xc8b80))(local_594)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8b80))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8b80)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8b80)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8b80)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8b80)" (( "(") (binary_expression "puVar24 + 0xc8b80" (identifier "puVar24") (+ "+") (number_literal "0xc8b80")) () ")"))))) () ")")) (argument_list "(local_594)" (( "(") (identifier "local_594") () ")")))) (; ";")) (} "}"))) (expression_statement "uVar10 = local_590;" (assignment_expression "uVar10 = local_590" (identifier "uVar10") (= "=") (identifier "local_590")) (; ";")) (expression_statement "uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);" (assignment_expression "uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590)" (identifier "uVar6") (= "=") (call_expression "(**(code **)(puVar24 + 0xc8234))(local_590)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8234))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8234)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8234)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8234)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8234)" (( "(") (binary_expression "puVar24 + 0xc8234" (identifier "puVar24") (+ "+") (number_literal "0xc8234")) () ")"))))) () ")")) (argument_list "(local_590)" (( "(") (identifier "local_590") () ")")))) (; ";")) (if_statement "if (local_58c != 0) {\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }" (if "if") (parenthesized_expression "(local_58c != 0)" (( "(") (binary_expression "local_58c != 0" (identifier "local_58c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_5f0 = *(code **)(puVar24 + 0xc8164);\n    local_5e4 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);\n    local_5e8 = *(code **)(puVar24 + 0xc8644);\n    do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);\n  }" ({ "{") (expression_statement "local_5f0 = *(code **)(puVar24 + 0xc8164);" (assignment_expression "local_5f0 = *(code **)(puVar24 + 0xc8164)" (identifier "local_5f0") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8164)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8164)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8164)" (( "(") (binary_expression "puVar24 + 0xc8164" (identifier "puVar24") (+ "+") (number_literal "0xc8164")) () ")"))))) (; ";")) (expression_statement "local_5e4 = *(code **)(puVar24 + 0xc82c8);" (assignment_expression "local_5e4 = *(code **)(puVar24 + 0xc82c8)" (identifier "local_5e4") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc82c8)" (* "*") (cast_expression "(code **)(puVar24 + 0xc82c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc82c8)" (( "(") (binary_expression "puVar24 + 0xc82c8" (identifier "puVar24") (+ "+") (number_literal "0xc82c8")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = *(code **)(puVar24 + 0xc8630);" (assignment_expression "unaff_s6 = *(code **)(puVar24 + 0xc8630)" (identifier "unaff_s6") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8630)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8630)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8630)" (( "(") (binary_expression "puVar24 + 0xc8630" (identifier "puVar24") (+ "+") (number_literal "0xc8630")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8634);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8634)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined **)(puVar24 + 0xc8634)" (* "*") (cast_expression "(undefined **)(puVar24 + 0xc8634)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8634)" (( "(") (binary_expression "puVar24 + 0xc8634" (identifier "puVar24") (+ "+") (number_literal "0xc8634")) () ")"))))) (; ";")) (expression_statement "unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);" (assignment_expression "unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)**(undefined4 **)(puVar24 + 0xc80a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar24 + 0xc80a4)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0xc80a4)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0xc80a4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc80a4)" (( "(") (binary_expression "puVar24 + 0xc80a4" (identifier "puVar24") (+ "+") (number_literal "0xc80a4")) () ")"))))))) (; ";")) (expression_statement "local_5e8 = *(code **)(puVar24 + 0xc8644);" (assignment_expression "local_5e8 = *(code **)(puVar24 + 0xc8644)" (identifier "local_5e8") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8644)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8644)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8644)" (( "(") (binary_expression "puVar24 + 0xc8644" (identifier "puVar24") (+ "+") (number_literal "0xc8644")) () ")"))))) (; ";")) (do_statement "do {\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    } while (local_58c != 0);" (do "do") (compound_statement "{\n      uVar9 = (*local_5e4)(&local_58c);\n      uVar10 = (*local_5f0)(uVar9,0,0);\n      if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }\n      iVar7 = iVar19 + (uVar10 >> 3);\n      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);\n      uVar10 = local_58c;\n    }" ({ "{") (expression_statement "uVar9 = (*local_5e4)(&local_58c);" (assignment_expression "uVar9 = (*local_5e4)(&local_58c)" (identifier "uVar9") (= "=") (call_expression "(*local_5e4)(&local_58c)" (parenthesized_expression "(*local_5e4)" (( "(") (pointer_expression "*local_5e4" (* "*") (identifier "local_5e4")) () ")")) (argument_list "(&local_58c)" (( "(") (pointer_expression "&local_58c" (& "&") (identifier "local_58c")) () ")")))) (; ";")) (expression_statement "uVar10 = (*local_5f0)(uVar9,0,0);" (assignment_expression "uVar10 = (*local_5f0)(uVar9,0,0)" (identifier "uVar10") (= "=") (call_expression "(*local_5f0)(uVar9,0,0)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(uVar9,0,0)" (( "(") (identifier "uVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (*unaff_s5 == 0) {\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }\n      else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" (if "if") (parenthesized_expression "(*unaff_s5 == 0)" (( "(") (binary_expression "*unaff_s5 == 0" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }\n      }" ({ "{") (if_statement "if (0xfe < uVar10) {\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }" (if "if") (parenthesized_expression "(0xfe < uVar10)" (( "(") (binary_expression "0xfe < uVar10" (number_literal "0xfe") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n          iVar7 = (*local_5e8)(uVar9,unaff_s6);\n          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n        }" ({ "{") (expression_statement "iVar7 = (*local_5e8)(uVar9,unaff_s6);" (assignment_expression "iVar7 = (*local_5e8)(uVar9,unaff_s6)" (identifier "iVar7") (= "=") (call_expression "(*local_5e8)(uVar9,unaff_s6)" (parenthesized_expression "(*local_5e8)" (( "(") (pointer_expression "*local_5e8" (* "*") (identifier "local_5e8")) () ")")) (argument_list "(uVar9,unaff_s6)" (( "(") (identifier "uVar9") (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];" (assignment_expression "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1]" (identifier "uVar10") (= "=") (cast_expression "(uint)(byte)puVar22[iVar7 * 2 + 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar22[iVar7 * 2 + 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar22[iVar7 * 2 + 1]" (identifier "puVar22") ([ "[") (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" (identifier "iVar7") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" (else "else") (compound_statement "{\n        iVar7 = (*local_5e8)(uVar9,unaff_s6);\n        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];\n      }" ({ "{") (expression_statement "iVar7 = (*local_5e8)(uVar9,unaff_s6);" (assignment_expression "iVar7 = (*local_5e8)(uVar9,unaff_s6)" (identifier "iVar7") (= "=") (call_expression "(*local_5e8)(uVar9,unaff_s6)" (parenthesized_expression "(*local_5e8)" (( "(") (pointer_expression "*local_5e8" (* "*") (identifier "local_5e8")) () ")")) (argument_list "(uVar9,unaff_s6)" (( "(") (identifier "uVar9") (, ",") (identifier "unaff_s6") () ")")))) (; ";")) (expression_statement "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];" (assignment_expression "uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1]" (identifier "uVar10") (= "=") (cast_expression "(uint)(byte)puVar22[iVar7 * 2 + 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar22[iVar7 * 2 + 1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar22[iVar7 * 2 + 1]" (identifier "puVar22") ([ "[") (binary_expression "iVar7 * 2 + 1" (binary_expression "iVar7 * 2" (identifier "iVar7") (* "*") (number_literal "2")) (+ "+") (number_literal "1")) (] "]"))))) (; ";")) (} "}")))) (expression_statement "iVar7 = iVar19 + (uVar10 >> 3);" (assignment_expression "iVar7 = iVar19 + (uVar10 >> 3)" (identifier "iVar7") (= "=") (binary_expression "iVar19 + (uVar10 >> 3)" (identifier "iVar19") (+ "+") (parenthesized_expression "(uVar10 >> 3)" (( "(") (binary_expression "uVar10 >> 3" (identifier "uVar10") (>> ">>") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);" (assignment_expression "*(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c)" (pointer_expression "*(byte *)(iVar7 + 0x20c)" (* "*") (cast_expression "(byte *)(iVar7 + 0x20c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20c)" (( "(") (binary_expression "iVar7 + 0x20c" (identifier "iVar7") (+ "+") (number_literal "0x20c")) () ")")))) (= "=") (binary_expression "(byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c)" (call_expression "(byte)(1 << (uVar10 & 7))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(1 << (uVar10 & 7))" (( "(") (binary_expression "1 << (uVar10 & 7)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar10 & 7)" (( "(") (binary_expression "uVar10 & 7" (identifier "uVar10") (& "&") (number_literal "7")) () ")"))) () ")"))) (| "|") (pointer_expression "*(byte *)(iVar7 + 0x20c)" (* "*") (cast_expression "(byte *)(iVar7 + 0x20c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x20c)" (( "(") (binary_expression "iVar7 + 0x20c" (identifier "iVar7") (+ "+") (number_literal "0x20c")) () ")")))))) (; ";")) (expression_statement "uVar10 = local_58c;" (assignment_expression "uVar10 = local_58c" (identifier "uVar10") (= "=") (identifier "local_58c")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_58c != 0)" (( "(") (binary_expression "local_58c != 0" (identifier "local_58c") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "pbVar15 = *(byte **)(puVar24 + 0xc8634);" (assignment_expression "pbVar15 = *(byte **)(puVar24 + 0xc8634)" (identifier "pbVar15") (= "=") (pointer_expression "*(byte **)(puVar24 + 0xc8634)" (* "*") (cast_expression "(byte **)(puVar24 + 0xc8634)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8634)" (( "(") (binary_expression "puVar24 + 0xc8634" (identifier "puVar24") (+ "+") (number_literal "0xc8634")) () ")"))))) (; ";")) (if_statement "if (-1 < (int)(uVar8 << 0xe)) {\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" (if "if") (parenthesized_expression "(-1 < (int)(uVar8 << 0xe))" (( "(") (binary_expression "-1 < (int)(uVar8 << 0xe)" (number_literal "-1") (< "<") (cast_expression "(int)(uVar8 << 0xe)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar8 << 0xe)" (( "(") (binary_expression "uVar8 << 0xe" (identifier "uVar8") (<< "<<") (number_literal "0xe")) () ")")))) () ")")) (compound_statement "{\n    bVar2 = pbVar15[1];\n    while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }\n  }" ({ "{") (expression_statement "bVar2 = pbVar15[1];" (assignment_expression "bVar2 = pbVar15[1]" (identifier "bVar2") (= "=") (subscript_expression "pbVar15[1]" (identifier "pbVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (while_statement "while (bVar2 != 0) {\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }" (while "while") (parenthesized_expression "(bVar2 != 0)" (( "(") (binary_expression "bVar2 != 0" (identifier "bVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar10 = (uint)(bVar2 >> 3);\n      if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }\n      pbVar1 = pbVar15 + 3;\n      pbVar15 = pbVar15 + 2;\n      bVar2 = *pbVar1;\n    }" ({ "{") (expression_statement "uVar10 = (uint)(bVar2 >> 3);" (assignment_expression "uVar10 = (uint)(bVar2 >> 3)" (identifier "uVar10") (= "=") (call_expression "(uint)(bVar2 >> 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(bVar2 >> 3)" (( "(") (binary_expression "bVar2 >> 3" (identifier "bVar2") (>> ">>") (number_literal "3")) () ")")))) (; ";")) (if_statement "if ((*pbVar15 & 0x10) != 0) {\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }" (if "if") (parenthesized_expression "((*pbVar15 & 0x10) != 0)" (( "(") (binary_expression "(*pbVar15 & 0x10) != 0" (parenthesized_expression "(*pbVar15 & 0x10)" (( "(") (binary_expression "*pbVar15 & 0x10" (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar10 = iVar19 + uVar10;\n        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);\n      }" ({ "{") (expression_statement "uVar10 = iVar19 + uVar10;" (assignment_expression "uVar10 = iVar19 + uVar10" (identifier "uVar10") (= "=") (binary_expression "iVar19 + uVar10" (identifier "iVar19") (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "*(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);" (assignment_expression "*(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c)" (pointer_expression "*(byte *)(uVar10 + 0x20c)" (* "*") (cast_expression "(byte *)(uVar10 + 0x20c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar10 + 0x20c)" (( "(") (binary_expression "uVar10 + 0x20c" (identifier "uVar10") (+ "+") (number_literal "0x20c")) () ")")))) (= "=") (binary_expression "(byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c)" (call_expression "(byte)(1 << (bVar2 & 7))" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(1 << (bVar2 & 7))" (( "(") (binary_expression "1 << (bVar2 & 7)" (number_literal "1") (<< "<<") (parenthesized_expression "(bVar2 & 7)" (( "(") (binary_expression "bVar2 & 7" (identifier "bVar2") (& "&") (number_literal "7")) () ")"))) () ")"))) (| "|") (pointer_expression "*(byte *)(uVar10 + 0x20c)" (* "*") (cast_expression "(byte *)(uVar10 + 0x20c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar10 + 0x20c)" (( "(") (binary_expression "uVar10 + 0x20c" (identifier "uVar10") (+ "+") (number_literal "0x20c")) () ")")))))) (; ";")) (} "}"))) (expression_statement "pbVar1 = pbVar15 + 3;" (assignment_expression "pbVar1 = pbVar15 + 3" (identifier "pbVar1") (= "=") (binary_expression "pbVar15 + 3" (identifier "pbVar15") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 2;" (assignment_expression "pbVar15 = pbVar15 + 2" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 2" (identifier "pbVar15") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "bVar2 = *pbVar1;" (assignment_expression "bVar2 = *pbVar1" (identifier "bVar2") (= "=") (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc8648);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc8648)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8648)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8648)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8648)" (( "(") (binary_expression "puVar24 + 0xc8648" (identifier "puVar24") (+ "+") (number_literal "0xc8648")) () ")"))))) (; ";")) (if_statement "if (local_588 != 0) {\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }" (if "if") (parenthesized_expression "(local_588 != 0)" (( "(") (binary_expression "local_588 != 0" (identifier "local_588") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    unaff_s5 = (int *)(iVar19 + 0x238);\n    pcVar20 = *(code **)(puVar24 + 0xc82c8);\n    unaff_s6 = *(code **)(puVar24 + 0xc8138);\n    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);\n    puVar22 = *(undefined **)(puVar24 + 0xc8634);\n    do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);\n  }" ({ "{") (expression_statement "unaff_s5 = (int *)(iVar19 + 0x238);" (assignment_expression "unaff_s5 = (int *)(iVar19 + 0x238)" (identifier "unaff_s5") (= "=") (cast_expression "(int *)(iVar19 + 0x238)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x238)" (( "(") (binary_expression "iVar19 + 0x238" (identifier "iVar19") (+ "+") (number_literal "0x238")) () ")")))) (; ";")) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc82c8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc82c8)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc82c8)" (* "*") (cast_expression "(code **)(puVar24 + 0xc82c8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc82c8)" (( "(") (binary_expression "puVar24 + 0xc82c8" (identifier "puVar24") (+ "+") (number_literal "0xc82c8")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = *(code **)(puVar24 + 0xc8138);" (assignment_expression "unaff_s6 = *(code **)(puVar24 + 0xc8138)" (identifier "unaff_s6") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8138)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8138)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8138)" (( "(") (binary_expression "puVar24 + 0xc8138" (identifier "puVar24") (+ "+") (number_literal "0xc8138")) () ")"))))) (; ";")) (expression_statement "uVar9 = *(undefined4 *)(puVar24 + 0xc8630);" (assignment_expression "uVar9 = *(undefined4 *)(puVar24 + 0xc8630)" (identifier "uVar9") (= "=") (pointer_expression "*(undefined4 *)(puVar24 + 0xc8630)" (* "*") (cast_expression "(undefined4 *)(puVar24 + 0xc8630)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc8630)" (( "(") (binary_expression "puVar24 + 0xc8630" (identifier "puVar24") (+ "+") (number_literal "0xc8630")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8634);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8634)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined **)(puVar24 + 0xc8634)" (* "*") (cast_expression "(undefined **)(puVar24 + 0xc8634)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8634)" (( "(") (binary_expression "puVar24 + 0xc8634" (identifier "puVar24") (+ "+") (number_literal "0xc8634")) () ")"))))) (; ";")) (do_statement "do {\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    } while (local_588 != 0);" (do "do") (compound_statement "{\n      uVar11 = (*pcVar20)(piVar23);\n      uVar10 = (*unaff_s6)(uVar11);\n      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);\n      (**(code **)(puVar24 + 0xc8ff8))(uVar10);\n      local_5f0 = pcVar25;\n    }" ({ "{") (expression_statement "uVar11 = (*pcVar20)(piVar23);" (assignment_expression "uVar11 = (*pcVar20)(piVar23)" (identifier "uVar11") (= "=") (call_expression "(*pcVar20)(piVar23)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(piVar23)" (( "(") (identifier "piVar23") () ")")))) (; ";")) (expression_statement "uVar10 = (*unaff_s6)(uVar11);" (assignment_expression "uVar10 = (*unaff_s6)(uVar11)" (identifier "uVar10") (= "=") (call_expression "(*unaff_s6)(uVar11)" (parenthesized_expression "(*unaff_s6)" (( "(") (pointer_expression "*unaff_s6" (* "*") (identifier "unaff_s6")) () ")")) (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "(*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);" (call_expression "(*pcVar25)(uVar10,unaff_s5,puVar22,uVar9)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "(uVar10,unaff_s5,puVar22,uVar9)" (( "(") (identifier "uVar10") (, ",") (identifier "unaff_s5") (, ",") (identifier "puVar22") (, ",") (identifier "uVar9") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc8ff8))(uVar10);" (call_expression "(**(code **)(puVar24 + 0xc8ff8))(uVar10)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8ff8))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8ff8)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8ff8)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8ff8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8ff8)" (( "(") (binary_expression "puVar24 + 0xc8ff8" (identifier "puVar24") (+ "+") (number_literal "0xc8ff8")) () ")"))))) () ")")) (argument_list "(uVar10)" (( "(") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "local_5f0 = pcVar25;" (assignment_expression "local_5f0 = pcVar25" (identifier "local_5f0") (= "=") (identifier "pcVar25")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_588 != 0)" (( "(") (binary_expression "local_588 != 0" (identifier "local_588") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" (identifier "uVar21") (= "=") (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "pcVar25 = *(code **)(puVar24 + 0xc864c);" (assignment_expression "pcVar25 = *(code **)(puVar24 + 0xc864c)" (identifier "pcVar25") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc864c)" (* "*") (cast_expression "(code **)(puVar24 + 0xc864c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc864c)" (( "(") (binary_expression "puVar24 + 0xc864c" (identifier "puVar24") (+ "+") (number_literal "0xc864c")) () ")"))))) (; ";")) (expression_statement "uVar3 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar3 = iVar19 + 0x22fU & 3" (identifier "uVar3") (= "=") (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" (identifier "iVar19") (+ "+") (number_literal "0x22fU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);" (assignment_expression "iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (identifier "iVar7") (= "=") (call_expression "FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (identifier "FUN_00066210") (argument_list "((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (( "(") (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8" (parenthesized_expression "(*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8)" (( "(") (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" (* "*") (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" (( "(") (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" (( "(") (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) () ")")) (- "-") (identifier "uVar21")) () ")")))) (<< "<<") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (| "|") (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (identifier "uVar10") (& "&") (binary_expression "0xffffffffU >> (4 - uVar21) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" (( "(") (binary_expression "4 - uVar21" (number_literal "4") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar3 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar3 + 1) * 8" (parenthesized_expression "(uVar3 + 1)" (( "(") (binary_expression "uVar3 + 1" (identifier "uVar3") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar3)" (* "*") (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22fU) - uVar3)" (( "(") (binary_expression "(iVar19 + 0x22fU) - uVar3" (parenthesized_expression "(iVar19 + 0x22fU)" (( "(") (binary_expression "iVar19 + 0x22fU" (identifier "iVar19") (+ "+") (number_literal "0x22fU")) () ")")) (- "-") (identifier "uVar3")) () ")")))) (>> ">>") (binary_expression "(3 - uVar3) * 8" (parenthesized_expression "(3 - uVar3)" (( "(") (binary_expression "3 - uVar3" (number_literal "3") (- "-") (identifier "uVar3")) () ")")) (* "*") (number_literal "8")))) (, ",") (binary_expression "iVar19 + 0x208" (identifier "iVar19") (+ "+") (number_literal "0x208")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar19 + 0x200" (identifier "iVar19") (+ "+") (number_literal "0x200")) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_5d0 = 1;\n    goto LAB_000624e4;\n  }" ({ "{") (expression_statement "local_5d0 = 1;" (assignment_expression "local_5d0 = 1" (identifier "local_5d0") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_000624e4;" (goto "goto") (statement_identifier "LAB_000624e4") (; ";")) (} "}"))) (if_statement "if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     ) {\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }\n  else {\n    piVar23 = (int *)0x0;\n  }" (if "if") (parenthesized_expression "(((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)\n     )" (( "(") (binary_expression "((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)" (parenthesized_expression "((uVar8 & 1) == 0)" (( "(") (binary_expression "(uVar8 & 1) == 0" (parenthesized_expression "(uVar8 & 1)" (( "(") (binary_expression "uVar8 & 1" (identifier "uVar8") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)" (( "(") (comma_expression "iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0" (assignment_expression "iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d)" (identifier "iVar7") (= "=") (call_expression "FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d)" (identifier "FUN_00066f28") (argument_list "(*(undefined4 *)(iVar19 + 0x238),0x3d)" (( "(") (pointer_expression "*(undefined4 *)(iVar19 + 0x238)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x238)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x238)" (( "(") (binary_expression "iVar19 + 0x238" (identifier "iVar19") (+ "+") (number_literal "0x238")) () ")")))) (, ",") (number_literal "0x3d") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);\n    *(int *)(iVar19 + 0x23c) = iVar7;\n    *(undefined1 *)(iVar7 + 2) = 1;\n    iVar7 = *(int *)(iVar19 + 0x23c);\n    piVar23 = (int *)(iVar7 + 3);\n    *piVar23 = *(int *)(iVar19 + 0x200);\n    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);\n    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);\n  }" ({ "{") (expression_statement "iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);" (assignment_expression "iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" (identifier "iVar7") (= "=") (call_expression "FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" (identifier "FUN_00060838") (argument_list "(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7)" (( "(") (number_literal "0x3d") (, ",") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x578c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x578c")) (, ",") (number_literal "7") () ")")))) (; ";")) (expression_statement "*(int *)(iVar19 + 0x23c) = iVar7;" (assignment_expression "*(int *)(iVar19 + 0x23c) = iVar7" (pointer_expression "*(int *)(iVar19 + 0x23c)" (* "*") (cast_expression "(int *)(iVar19 + 0x23c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x23c)" (( "(") (binary_expression "iVar19 + 0x23c" (identifier "iVar19") (+ "+") (number_literal "0x23c")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 2) = 1;" (assignment_expression "*(undefined1 *)(iVar7 + 2) = 1" (pointer_expression "*(undefined1 *)(iVar7 + 2)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 2)" (( "(") (binary_expression "iVar7 + 2" (identifier "iVar7") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = *(int *)(iVar19 + 0x23c);" (assignment_expression "iVar7 = *(int *)(iVar19 + 0x23c)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar19 + 0x23c)" (* "*") (cast_expression "(int *)(iVar19 + 0x23c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x23c)" (( "(") (binary_expression "iVar19 + 0x23c" (identifier "iVar19") (+ "+") (number_literal "0x23c")) () ")"))))) (; ";")) (expression_statement "piVar23 = (int *)(iVar7 + 3);" (assignment_expression "piVar23 = (int *)(iVar7 + 3)" (identifier "piVar23") (= "=") (cast_expression "(int *)(iVar7 + 3)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 3)" (( "(") (binary_expression "iVar7 + 3" (identifier "iVar7") (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*piVar23 = *(int *)(iVar19 + 0x200);" (assignment_expression "*piVar23 = *(int *)(iVar19 + 0x200)" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (pointer_expression "*(int *)(iVar19 + 0x200)" (* "*") (cast_expression "(int *)(iVar19 + 0x200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x200)" (( "(") (binary_expression "iVar19 + 0x200" (identifier "iVar19") (+ "+") (number_literal "0x200")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);" (assignment_expression "*(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204)" (pointer_expression "*(undefined1 *)(iVar7 + 7)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 7)" (( "(") (binary_expression "iVar7 + 7" (identifier "iVar7") (+ "+") (number_literal "7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar19 + 0x204)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x204)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x204)" (( "(") (binary_expression "iVar19 + 0x204" (identifier "iVar19") (+ "+") (number_literal "0x204")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);" (assignment_expression "*(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205)" (pointer_expression "*(undefined1 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar19 + 0x205)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x205)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x205)" (( "(") (binary_expression "iVar19 + 0x205" (identifier "iVar19") (+ "+") (number_literal "0x205")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    piVar23 = (int *)0x0;\n  }" (else "else") (compound_statement "{\n    piVar23 = (int *)0x0;\n  }" ({ "{") (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" (identifier "piVar23") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (if_statement "if (*local_5a0 != '\0') {\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }" (if "if") (parenthesized_expression "(*local_5a0 != '\0')" (( "(") (binary_expression "*local_5a0 != '\0'" (pointer_expression "*local_5a0" (* "*") (identifier "local_5a0")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar9 = FUN_00060838(0x3c,local_5a0,0);\n    *(undefined4 *)(iVar19 + 0x240) = uVar9;\n  }" ({ "{") (expression_statement "uVar9 = FUN_00060838(0x3c,local_5a0,0);" (assignment_expression "uVar9 = FUN_00060838(0x3c,local_5a0,0)" (identifier "uVar9") (= "=") (call_expression "FUN_00060838(0x3c,local_5a0,0)" (identifier "FUN_00060838") (argument_list "(0x3c,local_5a0,0)" (( "(") (number_literal "0x3c") (, ",") (identifier "local_5a0") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar19 + 0x240) = uVar9;" (assignment_expression "*(undefined4 *)(iVar19 + 0x240) = uVar9" (pointer_expression "*(undefined4 *)(iVar19 + 0x240)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x240)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x240)" (( "(") (binary_expression "iVar19 + 0x240" (identifier "iVar19") (+ "+") (number_literal "0x240")) () ")")))) (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (if_statement "if ((uVar8 & 0x4000) != 0) {\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }" (if "if") (parenthesized_expression "((uVar8 & 0x4000) != 0)" (( "(") (binary_expression "(uVar8 & 0x4000) != 0" (parenthesized_expression "(uVar8 & 0x4000)" (( "(") (binary_expression "uVar8 & 0x4000" (identifier "uVar8") (& "&") (number_literal "0x4000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);\n    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;\n  }" ({ "{") (expression_statement "(**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);" (call_expression "(**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8c0c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8c0c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8c0c)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8c0c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8c0c)" (( "(") (binary_expression "puVar24 + 0xc8c0c" (identifier "puVar24") (+ "+") (number_literal "0xc8c0c")) () ")"))))) () ")")) (argument_list "(**(undefined4 **)(puVar24 + 0xc803c),1,0x18)" (( "(") (pointer_expression "**(undefined4 **)(puVar24 + 0xc803c)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0xc803c)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0xc803c)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc803c)" (( "(") (binary_expression "puVar24 + 0xc803c" (identifier "puVar24") (+ "+") (number_literal "0xc803c")) () ")"))))) (, ",") (number_literal "1") (, ",") (number_literal "0x18") () ")"))) (; ";")) (expression_statement "**(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;" (assignment_expression "**(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar24 + 0xc80cc)" (* "*") (pointer_expression "*(byte **)(puVar24 + 0xc80cc)" (* "*") (cast_expression "(byte **)(puVar24 + 0xc80cc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc80cc)" (( "(") (binary_expression "puVar24 + 0xc80cc" (identifier "puVar24") (+ "+") (number_literal "0xc80cc")) () ")"))))) (= "=") (binary_expression "**(byte **)(puVar24 + 0xc80cc) | 2" (pointer_expression "**(byte **)(puVar24 + 0xc80cc)" (* "*") (pointer_expression "*(byte **)(puVar24 + 0xc80cc)" (* "*") (cast_expression "(byte **)(puVar24 + 0xc80cc)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc80cc)" (( "(") (binary_expression "puVar24 + 0xc80cc" (identifier "puVar24") (+ "+") (number_literal "0xc80cc")) () ")"))))) (| "|") (number_literal "2"))) (; ";")) (} "}"))) (expression_statement "local_5f0 = *(code **)(puVar24 + 0xc8058);" (assignment_expression "local_5f0 = *(code **)(puVar24 + 0xc8058)" (identifier "local_5f0") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8058)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8058)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8058)" (( "(") (binary_expression "puVar24 + 0xc8058" (identifier "puVar24") (+ "+") (number_literal "0xc8058")) () ")"))))) (; ";")) (expression_statement "unaff_s6 = (code *)auStack_570;" (assignment_expression "unaff_s6 = (code *)auStack_570" (identifier "unaff_s6") (= "=") (cast_expression "(code *)auStack_570" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "auStack_570"))) (; ";")) (expression_statement "local_5d4 = *(int *)(puVar24 + 0xc801c);" (assignment_expression "local_5d4 = *(int *)(puVar24 + 0xc801c)" (identifier "local_5d4") (= "=") (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc8510))();" (call_expression "(**(code **)(puVar24 + 0xc8510))()" (parenthesized_expression "(**(code **)(puVar24 + 0xc8510))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8510)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8510)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8510)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8510)" (( "(") (binary_expression "puVar24 + 0xc8510" (identifier "puVar24") (+ "+") (number_literal "0xc8510")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_5b4 = *(code **)(puVar24 + 0xc8650);" (assignment_expression "local_5b4 = *(code **)(puVar24 + 0xc8650)" (identifier "local_5b4") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8650)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8650)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8650)" (( "(") (binary_expression "puVar24 + 0xc8650" (identifier "puVar24") (+ "+") (number_literal "0xc8650")) () ")"))))) (; ";")) (expression_statement "puVar22 = *(undefined **)(puVar24 + 0xc8008);" (assignment_expression "puVar22 = *(undefined **)(puVar24 + 0xc8008)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined **)(puVar24 + 0xc8008)" (* "*") (cast_expression "(undefined **)(puVar24 + 0xc8008)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8008)" (( "(") (binary_expression "puVar24 + 0xc8008" (identifier "puVar24") (+ "+") (number_literal "0xc8008")) () ")"))))) (; ";")) (expression_statement "unaff_s5 = *(int **)(puVar24 + 0xc8008);" (assignment_expression "unaff_s5 = *(int **)(puVar24 + 0xc8008)" (identifier "unaff_s5") (= "=") (pointer_expression "*(int **)(puVar24 + 0xc8008)" (* "*") (cast_expression "(int **)(puVar24 + 0xc8008)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8008)" (( "(") (binary_expression "puVar24 + 0xc8008" (identifier "puVar24") (+ "+") (number_literal "0xc8008")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));" (call_expression "(**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230))" (parenthesized_expression "(**(code **)(puVar24 + 0xc82ac))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc82ac)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc82ac)" (* "*") (cast_expression "(code **)(puVar24 + 0xc82ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc82ac)" (( "(") (binary_expression "puVar24 + 0xc82ac" (identifier "puVar24") (+ "+") (number_literal "0xc82ac")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar19 + 0x230))" (( "(") (pointer_expression "*(undefined4 *)(iVar19 + 0x230)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x230)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x230)" (( "(") (binary_expression "iVar19 + 0x230" (identifier "iVar19") (+ "+") (number_literal "0x230")) () ")")))) () ")"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5ac = *(int *)(puVar24 + 0xc801c);" (assignment_expression "local_5ac = *(int *)(puVar24 + 0xc801c)" (identifier "local_5ac") (= "=") (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")"))))) (; ";")) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6084)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6084" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6084")) () ")"))) (; ";")) (expression_statement "FUN_00066068();" (call_expression "FUN_00066068()" (identifier "FUN_00066068") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc8128))();" (call_expression "(**(code **)(puVar24 + 0xc8128))()" (parenthesized_expression "(**(code **)(puVar24 + 0xc8128))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8128)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8128)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8128)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8128)" (( "(") (binary_expression "puVar24 + 0xc8128" (identifier "puVar24") (+ "+") (number_literal "0xc8128")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc8df8))(extraout_v1);" (call_expression "(**(code **)(puVar24 + 0xc8df8))(extraout_v1)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8df8))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8df8)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8df8)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8df8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8df8)" (( "(") (binary_expression "puVar24 + 0xc8df8" (identifier "puVar24") (+ "+") (number_literal "0xc8df8")) () ")"))))) () ")")) (argument_list "(extraout_v1)" (( "(") (identifier "extraout_v1") () ")"))) (; ";")) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);" (assignment_expression "local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" (identifier "local_5e4") (= "=") (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x19d0)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x19d0" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" (* "*") (cast_expression "(int *)(puVar24 + 0xc85b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc85b4)" (( "(") (binary_expression "puVar24 + 0xc85b4" (identifier "puVar24") (+ "+") (number_literal "0xc85b4")) () ")")))) (+ "+") (number_literal "0x19d0")) () ")")))) (; ";")) (expression_statement "FUN_000619d0(0,local_5d4 + 0x6008);" (call_expression "FUN_000619d0(0,local_5d4 + 0x6008)" (identifier "FUN_000619d0") (argument_list "(0,local_5d4 + 0x6008)" (( "(") (number_literal "0") (, ",") (binary_expression "local_5d4 + 0x6008" (identifier "local_5d4") (+ "+") (number_literal "0x6008")) () ")"))) (; ";")) (expression_statement "local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);" (assignment_expression "local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194)" (identifier "local_5e8") (= "=") (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x1194)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x1194" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" (* "*") (cast_expression "(int *)(puVar24 + 0xc85b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc85b4)" (( "(") (binary_expression "puVar24 + 0xc85b4" (identifier "puVar24") (+ "+") (number_literal "0xc85b4")) () ")")))) (+ "+") (number_literal "0x1194")) () ")")))) (; ";")) (expression_statement "FUN_00061194(2);" (call_expression "FUN_00061194(2)" (identifier "FUN_00061194") (argument_list "(2)" (( "(") (number_literal "2") () ")"))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;" (assignment_expression "local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c" (identifier "local_5a8") (= "=") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x623c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x623c"))) (; ";")) (expression_statement "local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);" (assignment_expression "local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" (identifier "local_5a4") (= "=") (cast_expression "(code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar24 + 0xc85b4) + 0x1fc8)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc85b4) + 0x1fc8" (pointer_expression "*(int *)(puVar24 + 0xc85b4)" (* "*") (cast_expression "(int *)(puVar24 + 0xc85b4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc85b4)" (( "(") (binary_expression "puVar24 + 0xc85b4" (identifier "puVar24") (+ "+") (number_literal "0xc85b4")) () ")")))) (+ "+") (number_literal "0x1fc8")) () ")")))) (; ";")) (expression_statement "local_5d0 = 0;" (assignment_expression "local_5d0 = 0" (identifier "local_5d0") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00062678:\n  iVar18 = uVar10 - uVar21;" (statement_identifier "LAB_00062678") (: ":") (expression_statement "iVar18 = uVar10 - uVar21;" (assignment_expression "iVar18 = uVar10 - uVar21" (identifier "iVar18") (= "=") (binary_expression "uVar10 - uVar21" (identifier "uVar10") (- "-") (identifier "uVar21"))) (; ";"))) (expression_statement "pcVar20 = unaff_s6;" (assignment_expression "pcVar20 = unaff_s6" (identifier "pcVar20") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "(*local_5b4)(unaff_s6,iVar7);" (call_expression "(*local_5b4)(unaff_s6,iVar7)" (parenthesized_expression "(*local_5b4)" (( "(") (pointer_expression "*local_5b4" (* "*") (identifier "local_5b4")) () ")")) (argument_list "(unaff_s6,iVar7)" (( "(") (identifier "unaff_s6") (, ",") (identifier "iVar7") () ")"))) (; ";")) (if_statement "if (0 < iVar18) goto code_r0x00062698;" (if "if") (parenthesized_expression "(0 < iVar18)" (( "(") (binary_expression "0 < iVar18" (number_literal "0") (< "<") (identifier "iVar18")) () ")")) (goto_statement "goto code_r0x00062698;" (goto "goto") (statement_identifier "code_r0x00062698") (; ";"))) (goto_statement "goto LAB_00062724;" (goto "goto") (statement_identifier "LAB_00062724") (; ";")) (labeled_statement "code_r0x00062698:\n  pcVar26 = *(code **)(puVar24 + 0xc8618);" (statement_identifier "code_r0x00062698") (: ":") (expression_statement "pcVar26 = *(code **)(puVar24 + 0xc8618);" (assignment_expression "pcVar26 = *(code **)(puVar24 + 0xc8618)" (identifier "pcVar26") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8618)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8618)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8618)" (( "(") (binary_expression "puVar24 + 0xc8618" (identifier "puVar24") (+ "+") (number_literal "0xc8618")) () ")"))))) (; ";"))) (expression_statement "iVar12 = (*pcVar26)();" (assignment_expression "iVar12 = (*pcVar26)()" (identifier "iVar12") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = 1000;" (assignment_expression "iVar7 = 1000" (identifier "iVar7") (= "=") (number_literal "1000")) (; ";")) (if_statement "if (iVar18 < 0x20c49b) goto LAB_00063074;" (if "if") (parenthesized_expression "(iVar18 < 0x20c49b)" (( "(") (binary_expression "iVar18 < 0x20c49b" (identifier "iVar18") (< "<") (number_literal "0x20c49b")) () ")")) (goto_statement "goto LAB_00063074;" (goto "goto") (statement_identifier "LAB_00063074") (; ";"))) (expression_statement "iVar18 = 0x7fffffff;" (assignment_expression "iVar18 = 0x7fffffff" (identifier "iVar18") (= "=") (number_literal "0x7fffffff")) (; ";")) (while_statement "while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)\n  {\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }" (while "while") (parenthesized_expression "(pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)" (( "(") (comma_expression "pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0" (assignment_expression "pcVar20 = unaff_s6" (identifier "pcVar20") (= "=") (identifier "unaff_s6")) (, ",") (comma_expression "iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8ed4))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8ed4)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8ed4)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8ed4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8ed4)" (( "(") (binary_expression "puVar24 + 0xc8ed4" (identifier "puVar24") (+ "+") (number_literal "0xc8ed4")) () ")"))))) () ")")) (argument_list "(unaff_s6,2,iVar18)" (( "(") (identifier "unaff_s6") (, ",") (number_literal "2") (, ",") (identifier "iVar18") () ")")))) (, ",") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")))) () ")")) (compound_statement "{\n    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }\n    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);\nLAB_00063074:\n    iVar18 = iVar18 * iVar7;\n  }" ({ "{") (if_statement "if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }" (if "if") (parenthesized_expression "(*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4)" (( "(") (binary_expression "*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4" (pointer_expression "*(int *)**(undefined4 **)(puVar24 + 0xc80a4)" (* "*") (cast_expression "(int *)**(undefined4 **)(puVar24 + 0xc80a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(puVar24 + 0xc80a4)" (* "*") (pointer_expression "*(undefined4 **)(puVar24 + 0xc80a4)" (* "*") (cast_expression "(undefined4 **)(puVar24 + 0xc80a4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc80a4)" (( "(") (binary_expression "puVar24 + 0xc80a4" (identifier "puVar24") (+ "+") (number_literal "0xc80a4")) () ")"))))))) (== "==") (number_literal "4")) () ")")) (compound_statement "{\n      iVar18 = (*pcVar26)();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar21 = iVar18 + (uVar21 - iVar12);\n      goto LAB_00062678;\n    }" ({ "{") (expression_statement "iVar18 = (*pcVar26)();" (assignment_expression "iVar18 = (*pcVar26)()" (identifier "iVar18") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar21 = iVar18 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar18 + (uVar21 - iVar12)" (identifier "uVar21") (= "=") (binary_expression "iVar18 + (uVar21 - iVar12)" (identifier "iVar18") (+ "+") (parenthesized_expression "(uVar21 - iVar12)" (( "(") (binary_expression "uVar21 - iVar12" (identifier "uVar21") (- "-") (identifier "iVar12")) () ")")))) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518)" (parenthesized_expression "(**(code **)(puVar24 + 0xc807c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc807c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc807c)" (* "*") (cast_expression "(code **)(puVar24 + 0xc807c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc807c)" (( "(") (binary_expression "puVar24 + 0xc807c" (identifier "puVar24") (+ "+") (number_literal "0xc807c")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x3518)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x3518" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x3518")) () ")")))) (; ";")) (labeled_statement "LAB_00063074:\n    iVar18 = iVar18 * iVar7;" (statement_identifier "LAB_00063074") (: ":") (expression_statement "iVar18 = iVar18 * iVar7;" (assignment_expression "iVar18 = iVar18 * iVar7" (identifier "iVar18") (= "=") (binary_expression "iVar18 * iVar7" (identifier "iVar18") (* "*") (identifier "iVar7"))) (; ";"))) (} "}"))) (if_statement "if (iVar7 == 0) {\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;\n    uVar21 = iVar19 + 0x22fU & 3;\n    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);\n    if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }\n    goto joined_r0x00062be8;\n  }" ({ "{") (labeled_statement "LAB_00062724:\n    uVar10 = iVar19 + 0x22cU & 3;" (statement_identifier "LAB_00062724") (: ":") (expression_statement "uVar10 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar10 = iVar19 + 0x22cU & 3" (identifier "uVar10") (= "=") (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) (& "&") (number_literal "3"))) (; ";"))) (expression_statement "uVar21 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22fU & 3" (identifier "uVar21") (= "=") (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" (identifier "iVar19") (+ "+") (number_literal "0x22fU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200);" (assignment_expression "iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (identifier "iVar7") (= "=") (call_expression "(*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (parenthesized_expression "(*pcVar25)" (( "(") (pointer_expression "*pcVar25" (* "*") (identifier "pcVar25")) () ")")) (argument_list "((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,\n                       iVar19 + 0x200)" (( "(") (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |\n                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (binary_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8" (parenthesized_expression "(*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8)" (( "(") (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |\n                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar10)" (* "*") (cast_expression "(int *)((iVar19 + 0x22cU) - uVar10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22cU) - uVar10)" (( "(") (binary_expression "(iVar19 + 0x22cU) - uVar10" (parenthesized_expression "(iVar19 + 0x22cU)" (( "(") (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) () ")")) (- "-") (identifier "uVar10")) () ")")))) (<< "<<") (binary_expression "uVar10 * 8" (identifier "uVar10") (* "*") (number_literal "8"))) (| "|") (binary_expression "(uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8" (cast_expression "(uint)pcVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "pcVar20")) (& "&") (binary_expression "0xffffffffU >> (4 - uVar10) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar10) * 8" (parenthesized_expression "(4 - uVar10)" (( "(") (binary_expression "4 - uVar10" (number_literal "4") (- "-") (identifier "uVar10")) () ")")) (* "*") (number_literal "8"))))) () ")")) (& "&") (binary_expression "-1 << (uVar21 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" (( "(") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar21)" (* "*") (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22fU) - uVar21)" (( "(") (binary_expression "(iVar19 + 0x22fU) - uVar21" (parenthesized_expression "(iVar19 + 0x22fU)" (( "(") (binary_expression "iVar19 + 0x22fU" (identifier "iVar19") (+ "+") (number_literal "0x22fU")) () ")")) (- "-") (identifier "uVar21")) () ")")))) (>> ">>") (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" (( "(") (binary_expression "3 - uVar21" (number_literal "3") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))) (, ",") (binary_expression "iVar19 + 0x208" (identifier "iVar19") (+ "+") (number_literal "0x208")) (, ",") (number_literal "0") (, ",") (binary_expression "iVar19 + 0x200" (identifier "iVar19") (+ "+") (number_literal "0x200")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }\n      iVar7 = unaff_s5[-0x17ff];\n      if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }\n      uVar21 = 0;\n      uVar10 = 0x7fffffff;\n      goto LAB_00062678;\n    }" ({ "{") (if_statement "if (piVar23 != (int *)0x0) {\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }" (if "if") (parenthesized_expression "(piVar23 != (int *)0x0)" (( "(") (binary_expression "piVar23 != (int *)0x0" (identifier "piVar23") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        *piVar23 = *(int *)(iVar19 + 0x200);\n        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);\n        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);\n      }" ({ "{") (expression_statement "*piVar23 = *(int *)(iVar19 + 0x200);" (assignment_expression "*piVar23 = *(int *)(iVar19 + 0x200)" (pointer_expression "*piVar23" (* "*") (identifier "piVar23")) (= "=") (pointer_expression "*(int *)(iVar19 + 0x200)" (* "*") (cast_expression "(int *)(iVar19 + 0x200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x200)" (( "(") (binary_expression "iVar19 + 0x200" (identifier "iVar19") (+ "+") (number_literal "0x200")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);" (assignment_expression "*(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204)" (pointer_expression "*(undefined1 *)(piVar23 + 1)" (* "*") (cast_expression "(undefined1 *)(piVar23 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar23 + 1)" (( "(") (binary_expression "piVar23 + 1" (identifier "piVar23") (+ "+") (number_literal "1")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar19 + 0x204)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x204)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x204)" (( "(") (binary_expression "iVar19 + 0x204" (identifier "iVar19") (+ "+") (number_literal "0x204")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);" (assignment_expression "*(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205)" (pointer_expression "*(undefined1 *)((int)piVar23 + 5)" (* "*") (cast_expression "(undefined1 *)((int)piVar23 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar23 + 5)" (( "(") (binary_expression "(int)piVar23 + 5" (cast_expression "(int)piVar23" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar23")) (+ "+") (number_literal "5")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(iVar19 + 0x205)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x205)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x205)" (( "(") (binary_expression "iVar19 + 0x205" (identifier "iVar19") (+ "+") (number_literal "0x205")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (if_statement "if ((byte)puVar22[-0x4c42] < 6) {\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }" (if "if") (parenthesized_expression "((byte)puVar22[-0x4c42] < 6)" (( "(") (binary_expression "(byte)puVar22[-0x4c42] < 6" (cast_expression "(byte)puVar22[-0x4c42]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]"))) (< "<") (number_literal "6")) () ")")) (compound_statement "{\n                    \n                    \n        iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();\n        return iVar7;\n      }" ({ "{") (expression_statement "iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();" (assignment_expression "iVar7 = (*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))()" (identifier "iVar7") (= "=") (call_expression "(*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))()" (parenthesized_expression "(*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))" (( "(") (pointer_expression "*(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" (* "*") (cast_expression "(code *)(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" (( "(") (binary_expression "puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar24 +\n                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" (identifier "puVar24") (+ "+") (pointer_expression "*(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" (* "*") (cast_expression "(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6224 +\n                                  (uint)(byte)puVar22[-0x4c42] * 4" (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6224" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6224")) (+ "+") (binary_expression "(uint)(byte)puVar22[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar22[-0x4c42]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar22[-0x4c42]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")))) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0xcffe0")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = 0x7fffffff;" (assignment_expression "uVar10 = 0x7fffffff" (identifier "uVar10") (= "=") (number_literal "0x7fffffff")) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (goto_statement "goto joined_r0x00062be8;" (goto "goto") (statement_identifier "joined_r0x00062be8") (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_0006618c();" (assignment_expression "iVar7 = FUN_0006618c()" (identifier "iVar7") (= "=") (call_expression "FUN_0006618c()" (identifier "FUN_0006618c") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar7 == 0x10) {\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0x10)" (( "(") (binary_expression "iVar7 == 0x10" (identifier "iVar7") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n    *(undefined1 *)(iVar19 + 0x24c) = 0;\n    *(undefined1 *)(iVar19 + 0x24d) = 0;\n    (*local_5f0)(local_5ac + 0x60f8);\n    if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    uVar10 = 0;\n    uVar21 = 0;\n    goto LAB_00062678;\n  }" ({ "{") (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x24c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x24c)" (( "(") (binary_expression "iVar19 + 0x24c" (identifier "iVar19") (+ "+") (number_literal "0x24c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x24d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x24d)" (( "(") (binary_expression "iVar19 + 0x24d" (identifier "iVar19") (+ "+") (number_literal "0x24d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "(*local_5f0)(local_5ac + 0x60f8);" (call_expression "(*local_5f0)(local_5ac + 0x60f8)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(local_5ac + 0x60f8)" (( "(") (binary_expression "local_5ac + 0x60f8" (identifier "local_5ac") (+ "+") (number_literal "0x60f8")) () ")"))) (; ";")) (if_statement "if ((byte)puVar22[-0x4c42] < 7) {\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }" (if "if") (parenthesized_expression "((byte)puVar22[-0x4c42] < 7)" (( "(") (binary_expression "(byte)puVar22[-0x4c42] < 7" (cast_expression "(byte)puVar22[-0x4c42]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]"))) (< "<") (number_literal "7")) () ")")) (compound_statement "{\n                    \n                    \n      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();\n      return iVar7;\n    }" ({ "{") (expression_statement "iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )();" (assignment_expression "iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )()" (identifier "iVar7") (= "=") (call_expression "(*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )()" (parenthesized_expression "(*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)\n              )" (( "(") (pointer_expression "*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" (* "*") (cast_expression "(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)" (( "(") (binary_expression "puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0" (binary_expression "puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" (identifier "puVar24") (+ "+") (pointer_expression "*(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" (* "*") (cast_expression "(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4)" (( "(") (binary_expression "local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4" (identifier "local_5a8") (+ "+") (binary_expression "(uint)(byte)puVar22[-0x4c42] * 4" (cast_expression "(uint)(byte)puVar22[-0x4c42]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar22[-0x4c42]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")))) (* "*") (number_literal "4"))) () ")"))))) (+ "+") (number_literal "0xcffe0")) () ")")))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x11) {\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0x11)" (( "(") (binary_expression "iVar7 == 0x11" (identifier "iVar7") (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n    uVar10 = 0x7fffffff;\n    (*local_5a4)(local_578,local_5ec);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" ({ "{") (expression_statement "uVar10 = 0x7fffffff;" (assignment_expression "uVar10 = 0x7fffffff" (identifier "uVar10") (= "=") (number_literal "0x7fffffff")) (; ";")) (expression_statement "(*local_5a4)(local_578,local_5ec);" (call_expression "(*local_5a4)(local_578,local_5ec)" (parenthesized_expression "(*local_5a4)" (( "(") (pointer_expression "*local_5a4" (* "*") (identifier "local_5a4")) () ")")) (argument_list "(local_578,local_5ec)" (( "(") (identifier "local_578") (, ",") (identifier "local_5ec") () ")"))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0xf) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0xf)" (( "(") (binary_expression "iVar7 == 0xf" (identifier "iVar7") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);\n    goto joined_r0x00062be8;\n  }" ({ "{") (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6118")) (, ",") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6110" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6110")) () ")"))) (; ";")) (goto_statement "goto joined_r0x00062be8;" (goto "goto") (statement_identifier "joined_r0x00062be8") (; ";")) (} "}"))) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (if_statement "if (local_562 == 0) goto LAB_00062678;" (if "if") (parenthesized_expression "(local_562 == 0)" (( "(") (binary_expression "local_562 == 0" (identifier "local_562") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";"))) (expression_statement "iVar7 = *(int *)(puVar24 + 0xc8008);" (assignment_expression "iVar7 = *(int *)(puVar24 + 0xc8008)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(puVar24 + 0xc8008)" (* "*") (cast_expression "(int *)(puVar24 + 0xc8008)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc8008)" (( "(") (binary_expression "puVar24 + 0xc8008" (identifier "puVar24") (+ "+") (number_literal "0xc8008")) () ")"))))) (; ";")) (if_statement "if (*(char *)(iVar7 + -0x4c41) == '\x01') {\n    iVar18 = FUN_00065a28(auStack_560);\n  }\n  else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" (if "if") (parenthesized_expression "(*(char *)(iVar7 + -0x4c41) == '\x01')" (( "(") (binary_expression "*(char *)(iVar7 + -0x4c41) == '\x01'" (pointer_expression "*(char *)(iVar7 + -0x4c41)" (* "*") (cast_expression "(char *)(iVar7 + -0x4c41)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x4c41)" (( "(") (binary_expression "iVar7 + -0x4c41" (identifier "iVar7") (+ "+") (number_literal "-0x4c41")) () ")")))) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n    iVar18 = FUN_00065a28(auStack_560);\n  }" ({ "{") (expression_statement "iVar18 = FUN_00065a28(auStack_560);" (assignment_expression "iVar18 = FUN_00065a28(auStack_560)" (identifier "iVar18") (= "=") (call_expression "FUN_00065a28(auStack_560)" (identifier "FUN_00065a28") (argument_list "(auStack_560)" (( "(") (identifier "auStack_560") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" (else "else") (compound_statement "{\n    iVar18 = FUN_00060ea8(auStack_560);\n  }" ({ "{") (expression_statement "iVar18 = FUN_00060ea8(auStack_560);" (assignment_expression "iVar18 = FUN_00060ea8(auStack_560)" (identifier "iVar18") (= "=") (call_expression "FUN_00060ea8(auStack_560)" (identifier "FUN_00060ea8") (argument_list "(auStack_560)" (( "(") (identifier "auStack_560") () ")")))) (; ";")) (} "}")))) (if_statement "if (iVar18 == -1) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "(iVar18 == -1)" (( "(") (binary_expression "iVar18 == -1" (identifier "iVar18") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);\n    (**(code **)(puVar24 + 0xc8f94))(local_580);\n    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));\n    iVar7 = (*pcVar26)();\n    uVar21 = iVar7 + (uVar21 - iVar12);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" ({ "{") (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6124)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6124" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6124")) () ")"))) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc8f94))(local_580);" (call_expression "(**(code **)(puVar24 + 0xc8f94))(local_580)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f94))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8f94)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8f94)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8f94)" (( "(") (binary_expression "puVar24 + 0xc8f94" (identifier "puVar24") (+ "+") (number_literal "0xc8f94")) () ")"))))) () ")")) (argument_list "(local_580)" (( "(") (identifier "local_580") () ")"))) (; ";")) (expression_statement "(*local_5e8)((int)*(char *)(iVar7 + -0x4c41));" (call_expression "(*local_5e8)((int)*(char *)(iVar7 + -0x4c41))" (parenthesized_expression "(*local_5e8)" (( "(") (pointer_expression "*local_5e8" (* "*") (identifier "local_5e8")) () ")")) (argument_list "((int)*(char *)(iVar7 + -0x4c41))" (( "(") (cast_expression "(int)*(char *)(iVar7 + -0x4c41)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar7 + -0x4c41)" (* "*") (cast_expression "(char *)(iVar7 + -0x4c41)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -0x4c41)" (( "(") (binary_expression "iVar7 + -0x4c41" (identifier "iVar7") (+ "+") (number_literal "-0x4c41")) () ")"))))) () ")"))) (; ";")) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" (identifier "iVar7") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar21 = iVar7 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar7 + (uVar21 - iVar12)" (identifier "uVar21") (= "=") (binary_expression "iVar7 + (uVar21 - iVar12)" (identifier "iVar7") (+ "+") (parenthesized_expression "(uVar21 - iVar12)" (( "(") (binary_expression "uVar21 - iVar12" (identifier "uVar21") (- "-") (identifier "iVar12")) () ")")))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" (identifier "iVar7") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar21 = iVar7 + (uVar21 - iVar12);" (assignment_expression "uVar21 = iVar7 + (uVar21 - iVar12)" (identifier "uVar21") (= "=") (binary_expression "iVar7 + (uVar21 - iVar12)" (identifier "iVar7") (+ "+") (parenthesized_expression "(uVar21 - iVar12)" (( "(") (binary_expression "uVar21 - iVar12" (identifier "uVar21") (- "-") (identifier "iVar12")) () ")")))) (; ";")) (if_statement "if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0))" (( "(") (binary_expression "(((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||\n     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)" (parenthesized_expression "(((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06'))" (( "(") (binary_expression "((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')" (parenthesized_expression "((iVar18 < 0) || (local_55c != local_5dc))" (( "(") (binary_expression "(iVar18 < 0) || (local_55c != local_5dc)" (parenthesized_expression "(iVar18 < 0)" (( "(") (binary_expression "iVar18 < 0" (identifier "iVar18") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_55c != local_5dc)" (( "(") (binary_expression "local_55c != local_5dc" (identifier "local_55c") (!= "!=") (identifier "local_5dc")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_55e != '\x06')" (( "(") (binary_expression "local_55e != '\x06'" (identifier "local_55e") (!= "!=") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8fa4))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8fa4)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8fa4)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8fa4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8fa4)" (( "(") (binary_expression "puVar24 + 0xc8fa4" (identifier "puVar24") (+ "+") (number_literal "0xc8fa4")) () ")"))))) () ")")) (argument_list "(auStack_544,iVar19 + 0x200,6)" (( "(") (identifier "auStack_544") (, ",") (binary_expression "iVar19 + 0x200" (identifier "iVar19") (+ "+") (number_literal "0x200")) (, ",") (number_literal "6") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" ({ "{") (labeled_statement "LAB_00062c40:\n    iVar7 = unaff_s5[-0x17ff];" (statement_identifier "LAB_00062c40") (: ":") (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";"))) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (expression_statement "pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);" (assignment_expression "pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35)" (identifier "pcVar13") (= "=") (cast_expression "(char *)FUN_00066bc4(auStack_560,0x35)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00066bc4(auStack_560,0x35)" (identifier "FUN_00066bc4") (argument_list "(auStack_560,0x35)" (( "(") (identifier "auStack_560") (, ",") (number_literal "0x35") () ")"))))) (; ";")) (expression_statement "uVar3 = local_578;" (assignment_expression "uVar3 = local_578" (identifier "uVar3") (= "=") (identifier "local_578")) (; ";")) (if_statement "if (pcVar13 == (char *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "(pcVar13 == (char *)0x0)" (( "(") (binary_expression "pcVar13 == (char *)0x0" (identifier "pcVar13") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);\n    iVar7 = unaff_s5[-0x17ff];\n    goto LAB_00062678;\n  }" ({ "{") (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6148)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6148" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6148")) () ")"))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (expression_statement "iVar18 = (int)(char)puVar22[-0x4c42];" (assignment_expression "iVar18 = (int)(char)puVar22[-0x4c42]" (identifier "iVar18") (= "=") (cast_expression "(int)(char)puVar22[-0x4c42]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)puVar22[-0x4c42]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]"))))) (; ";")) (if_statement "if (iVar18 != 1) {\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "(iVar18 != 1)" (( "(") (binary_expression "iVar18 != 1" (identifier "iVar18") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n    if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }\n    iVar7 = unaff_s5[-0x17ff];\n    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;\n  }" ({ "{") (if_statement "if (iVar18 < 2) {\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" (if "if") (parenthesized_expression "(iVar18 < 2)" (( "(") (binary_expression "iVar18 < 2" (identifier "iVar18") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n      iVar7 = unaff_s5[-0x17ff];\n      if (iVar18 != 0) goto LAB_00062678;\n      if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }\n      goto LAB_00062c40;\n    }" ({ "{") (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (if_statement "if (iVar18 != 0) goto LAB_00062678;" (if "if") (parenthesized_expression "(iVar18 != 0)" (( "(") (binary_expression "iVar18 != 0" (identifier "iVar18") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";"))) (if_statement "if (*pcVar13 == '\x02') {\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" (if "if") (parenthesized_expression "(*pcVar13 == '\x02')" (( "(") (binary_expression "*pcVar13 == '\x02'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n        local_578 = 0;\n        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);\n        if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }\n        goto LAB_00062678;\n      }" ({ "{") (expression_statement "local_578 = 0;" (assignment_expression "local_578 = 0" (identifier "local_578") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36)" (identifier "puVar14") (= "=") (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x36)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00066cd4(auStack_560,0x36)" (identifier "FUN_00066cd4") (argument_list "(auStack_560,0x36)" (( "(") (identifier "auStack_560") (, ",") (number_literal "0x36") () ")"))))) (; ";")) (if_statement "if (puVar14 == (uint *)0x0) {\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }\n        else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" (if "if") (parenthesized_expression "(puVar14 == (uint *)0x0)" (( "(") (binary_expression "puVar14 == (uint *)0x0" (identifier "puVar14") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          uVar10 = 0;\n          uVar21 = 0;\n          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);\n          local_5ec = local_550;\n          iVar7 = unaff_s5[-0x17ff];\n          puVar22[-0x4c42] = 1;\n        }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6170)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6170" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6170")) () ")"))) (; ";")) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" (identifier "local_5ec") (= "=") (identifier "local_550")) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "puVar22[-0x4c42] = 1;" (assignment_expression "puVar22[-0x4c42] = 1" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" (else "else") (compound_statement "{\n          local_578 = *puVar14;\n          uVar10 = 0;\n          iVar7 = unaff_s5[-0x17ff];\n          uVar21 = 0;\n          local_5ec = local_550;\n          puVar22[-0x4c42] = 1;\n        }" ({ "{") (expression_statement "local_578 = *puVar14;" (assignment_expression "local_578 = *puVar14" (identifier "local_578") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" (identifier "local_5ec") (= "=") (identifier "local_550")) (; ";")) (expression_statement "puVar22[-0x4c42] = 1;" (assignment_expression "puVar22[-0x4c42] = 1" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}")))) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (goto_statement "goto LAB_00062c40;" (goto "goto") (statement_identifier "LAB_00062c40") (; ";")) (} "}"))) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (if_statement "if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;" (if "if") (parenthesized_expression "(2 < (iVar18 - 3U & 0xff))" (( "(") (binary_expression "2 < (iVar18 - 3U & 0xff)" (number_literal "2") (< "<") (parenthesized_expression "(iVar18 - 3U & 0xff)" (( "(") (binary_expression "iVar18 - 3U & 0xff" (binary_expression "iVar18 - 3U" (identifier "iVar18") (- "-") (number_literal "3U")) (& "&") (number_literal "0xff")) () ")"))) () ")")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";"))) (} "}"))) (if_statement "if (*pcVar13 != '\x05') {\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" (if "if") (parenthesized_expression "(*pcVar13 != '\x05')" (( "(") (binary_expression "*pcVar13 != '\x05'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (!= "!=") (char_literal "'\x05'" (' "'") (escape_sequence "\x05") (' "'"))) () ")")) (compound_statement "{\n    if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }\n    goto LAB_00062c40;\n  }" ({ "{") (if_statement "if ((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))) {\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" (if "if") (parenthesized_expression "((*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))))))" (( "(") (binary_expression "(*pcVar13 == '\x06') &&\n       ((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))" (parenthesized_expression "(*pcVar13 == '\x06')" (( "(") (binary_expression "*pcVar13 == '\x06'" (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13")) (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))))" (( "(") (parenthesized_expression "(local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))))" (( "(") (binary_expression "local_578 == 0 ||\n        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))" (binary_expression "local_578 == 0" (identifier "local_578") (== "==") (number_literal "0")) (|| "||") (parenthesized_expression "((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)))" (( "(") (parenthesized_expression "(puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574))" (( "(") (comma_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36)" (identifier "puVar14") (= "=") (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x36)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00066cd4(auStack_560,0x36)" (identifier "FUN_00066cd4") (argument_list "(auStack_560,0x36)" (( "(") (identifier "auStack_560") (, ",") (number_literal "0x36") () ")"))))) (, ",") (binary_expression "puVar14 != (uint *)0x0 &&\n         (local_574 = *puVar14, uVar3 == local_574)" (binary_expression "puVar14 != (uint *)0x0" (identifier "puVar14") (!= "!=") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (&& "&&") (parenthesized_expression "(local_574 = *puVar14, uVar3 == local_574)" (( "(") (comma_expression "local_574 = *puVar14, uVar3 == local_574" (assignment_expression "local_574 = *puVar14" (identifier "local_574") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (, ",") (binary_expression "uVar3 == local_574" (identifier "uVar3") (== "==") (identifier "local_574"))) () ")")))) () ")")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);\n      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);\n      if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }\n      uVar10 = 0;\n      (*local_5e8)(2);\n      uVar21 = 0;\n      (**(code **)(puVar24 + 0xc8f94))(3);\n      iVar7 = unaff_s5[-0x17ff];\n      puVar22[-0x4c42] = 0;\n      *(undefined1 *)(iVar19 + 0x24c) = 0;\n      local_5ec = 0;\n      *(undefined1 *)(iVar19 + 0x24d) = 0;\n      goto LAB_00062678;\n    }" ({ "{") (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6118" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6118")) (, ",") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6214" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6214")) () ")"))) (; ";")) (expression_statement "(*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);" (call_expression "(*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220)" (parenthesized_expression "(*local_5e4)" (( "(") (pointer_expression "*local_5e4" (* "*") (identifier "local_5e4")) () ")")) (argument_list "(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220)" (( "(") (identifier "auStack_560") (, ",") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6220" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6220")) () ")"))) (; ";")) (if_statement "if (puVar22[-0x4c42] != '\x01') {\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }" (if "if") (parenthesized_expression "(puVar22[-0x4c42] != '\x01')" (( "(") (binary_expression "puVar22[-0x4c42] != '\x01'" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n        (*local_5e4)(0,local_5d4 + 0x6008);\n      }" ({ "{") (expression_statement "(*local_5e4)(0,local_5d4 + 0x6008);" (call_expression "(*local_5e4)(0,local_5d4 + 0x6008)" (parenthesized_expression "(*local_5e4)" (( "(") (pointer_expression "*local_5e4" (* "*") (identifier "local_5e4")) () ")")) (argument_list "(0,local_5d4 + 0x6008)" (( "(") (number_literal "0") (, ",") (binary_expression "local_5d4 + 0x6008" (identifier "local_5d4") (+ "+") (number_literal "0x6008")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*local_5e8)(2);" (call_expression "(*local_5e8)(2)" (parenthesized_expression "(*local_5e8)" (( "(") (pointer_expression "*local_5e8" (* "*") (identifier "local_5e8")) () ")")) (argument_list "(2)" (( "(") (number_literal "2") () ")"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "(**(code **)(puVar24 + 0xc8f94))(3);" (call_expression "(**(code **)(puVar24 + 0xc8f94))(3)" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f94))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8f94)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8f94)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8f94)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8f94)" (( "(") (binary_expression "puVar24 + 0xc8f94" (identifier "puVar24") (+ "+") (number_literal "0xc8f94")) () ")"))))) () ")")) (argument_list "(3)" (( "(") (number_literal "3") () ")"))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x24c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x24c)" (( "(") (binary_expression "iVar19 + 0x24c" (identifier "iVar19") (+ "+") (number_literal "0x24c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5ec = 0;" (assignment_expression "local_5ec = 0" (identifier "local_5ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x24d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x24d)" (( "(") (binary_expression "iVar19 + 0x24d" (identifier "iVar19") (+ "+") (number_literal "0x24d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (goto_statement "goto LAB_00062c40;" (goto "goto") (statement_identifier "LAB_00062c40") (; ";")) (} "}"))) (expression_statement "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);" (assignment_expression "puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33)" (identifier "puVar14") (= "=") (cast_expression "(uint *)FUN_00066cd4(auStack_560,0x33)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00066cd4(auStack_560,0x33)" (identifier "FUN_00066cd4") (argument_list "(auStack_560,0x33)" (( "(") (identifier "auStack_560") (, ",") (number_literal "0x33") () ")"))))) (; ";")) (if_statement "if (puVar14 == (uint *)0x0) {\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }\n  else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" (if "if") (parenthesized_expression "(puVar14 == (uint *)0x0)" (( "(") (binary_expression "puVar14 == (uint *)0x0" (identifier "puVar14") (== "==") (cast_expression "(uint *)0x0" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);\n    local_574 = 0xe10;\nLAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n  }" ({ "{") (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x618c)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x618c" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x618c")) () ")"))) (; ";")) (expression_statement "local_574 = 0xe10;" (assignment_expression "local_574 = 0xe10" (identifier "local_574") (= "=") (number_literal "0xe10")) (; ";")) (labeled_statement "LAB_00062d7c:\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (statement_identifier "LAB_00062d7c") (: ":") (expression_statement "uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (assignment_expression "uVar10 = -((int)(uVar8 << 9) >> 0x1f)" (identifier "uVar10") (= "=") (unary_expression "-((int)(uVar8 << 9) >> 0x1f)" (- "-") (parenthesized_expression "((int)(uVar8 << 9) >> 0x1f)" (( "(") (binary_expression "(int)(uVar8 << 9) >> 0x1f" (cast_expression "(int)(uVar8 << 9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar8 << 9)" (( "(") (binary_expression "uVar8 << 9" (identifier "uVar8") (<< "<<") (number_literal "9")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";"))) (if_statement "if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\nLAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;\n      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);\n      if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }\n    }" ({ "{") (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" (identifier "uVar21") (= "=") (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;" (assignment_expression "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (identifier "uVar10") (= "=") (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" (* "*") (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" (( "(") (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" (( "(") (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) () ")")) (- "-") (identifier "uVar21")) () ")")))) (<< "<<") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (| "|") (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (identifier "uVar10") (& "&") (binary_expression "0xffffffffU >> (4 - uVar21) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" (( "(") (binary_expression "4 - uVar21" (number_literal "4") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))))) (; ";")) (labeled_statement "LAB_00062d8c:\n      uVar21 = iVar19 + 0x22fU & 3;" (statement_identifier "LAB_00062d8c") (: ":") (expression_statement "uVar21 = iVar19 + 0x22fU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22fU & 3" (identifier "uVar21") (= "=") (binary_expression "iVar19 + 0x22fU & 3" (binary_expression "iVar19 + 0x22fU" (identifier "iVar19") (+ "+") (number_literal "0x22fU")) (& "&") (number_literal "3"))) (; ";"))) (expression_statement "iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);" (assignment_expression "iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0006654c(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" (identifier "FUN_0006654c") (argument_list "(local_550,0,0,iVar19 + 0x200,\n                           uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6)" (( "(") (identifier "local_550") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (binary_expression "iVar19 + 0x200" (identifier "iVar19") (+ "+") (number_literal "0x200")) (, ",") (binary_expression "uVar10 & -1 << (uVar21 + 1) * 8 |\n                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (binary_expression "uVar10 & -1 << (uVar21 + 1) * 8" (identifier "uVar10") (& "&") (binary_expression "-1 << (uVar21 + 1) * 8" (number_literal "-1") (<< "<<") (binary_expression "(uVar21 + 1) * 8" (parenthesized_expression "(uVar21 + 1)" (( "(") (binary_expression "uVar21 + 1" (identifier "uVar21") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "8")))) (| "|") (binary_expression "*(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8" (pointer_expression "*(uint *)((iVar19 + 0x22fU) - uVar21)" (* "*") (cast_expression "(uint *)((iVar19 + 0x22fU) - uVar21)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22fU) - uVar21)" (( "(") (binary_expression "(iVar19 + 0x22fU) - uVar21" (parenthesized_expression "(iVar19 + 0x22fU)" (( "(") (binary_expression "iVar19 + 0x22fU" (identifier "iVar19") (+ "+") (number_literal "0x22fU")) () ")")) (- "-") (identifier "uVar21")) () ")")))) (>> ">>") (binary_expression "(3 - uVar21) * 8" (parenthesized_expression "(3 - uVar21)" (( "(") (binary_expression "3 - uVar21" (number_literal "3") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))) (, ",") (identifier "uVar6") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);\n        FUN_00060c2c(local_578,local_550);\n        if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }\n        uVar21 = 0;\n        (*local_5e8)(2);\n        puVar22[-0x4c42] = 0;\n        local_5ec = 0;\n        *(undefined1 *)(iVar19 + 0x24c) = 0;\n        *(undefined1 *)(iVar19 + 0x24d) = 0;\n        iVar7 = unaff_s5[-0x17ff];\n        uVar10 = local_584;\n        goto LAB_00062678;\n      }" ({ "{") (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x61b8)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x61b8" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x61b8")) () ")"))) (; ";")) (expression_statement "FUN_00060c2c(local_578,local_550);" (call_expression "FUN_00060c2c(local_578,local_550)" (identifier "FUN_00060c2c") (argument_list "(local_578,local_550)" (( "(") (identifier "local_578") (, ",") (identifier "local_550") () ")"))) (; ";")) (if_statement "if (puVar22[-0x4c42] != '\x01') {\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }" (if "if") (parenthesized_expression "(puVar22[-0x4c42] != '\x01')" (( "(") (binary_expression "puVar22[-0x4c42] != '\x01'" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (!= "!=") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n          (*local_5e4)(0,local_5d4 + 0x6008);\n        }" ({ "{") (expression_statement "(*local_5e4)(0,local_5d4 + 0x6008);" (call_expression "(*local_5e4)(0,local_5d4 + 0x6008)" (parenthesized_expression "(*local_5e4)" (( "(") (pointer_expression "*local_5e4" (* "*") (identifier "local_5e4")) () ")")) (argument_list "(0,local_5d4 + 0x6008)" (( "(") (number_literal "0") (, ",") (binary_expression "local_5d4 + 0x6008" (identifier "local_5d4") (+ "+") (number_literal "0x6008")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*local_5e8)(2);" (call_expression "(*local_5e8)(2)" (parenthesized_expression "(*local_5e8)" (( "(") (pointer_expression "*local_5e8" (* "*") (identifier "local_5e8")) () ")")) (argument_list "(2)" (( "(") (number_literal "2") () ")"))) (; ";")) (expression_statement "puVar22[-0x4c42] = 0;" (assignment_expression "puVar22[-0x4c42] = 0" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_5ec = 0;" (assignment_expression "local_5ec = 0" (identifier "local_5ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar19 + 0x24c) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24c) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24c)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x24c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x24c)" (( "(") (binary_expression "iVar19 + 0x24c" (identifier "iVar19") (+ "+") (number_literal "0x24c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(iVar19 + 0x24d) = 0;" (assignment_expression "*(undefined1 *)(iVar19 + 0x24d) = 0" (pointer_expression "*(undefined1 *)(iVar19 + 0x24d)" (* "*") (cast_expression "(undefined1 *)(iVar19 + 0x24d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x24d)" (( "(") (binary_expression "iVar19 + 0x24d" (identifier "iVar19") (+ "+") (number_literal "0x24d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar10 = local_584;" (assignment_expression "uVar10 = local_584" (identifier "uVar10") (= "=") (identifier "local_584")) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8fb8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8fb8)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8fb8)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8fb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8fb8)" (( "(") (binary_expression "puVar24 + 0xc8fb8" (identifier "puVar24") (+ "+") (number_literal "0xc8fb8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" (else "else") (compound_statement "{\n    local_574 = *puVar14;\n    if (0x79 < local_574) goto LAB_00062d7c;\n    local_574 = 0x7a;\n    uVar10 = -((int)(uVar8 << 9) >> 0x1f);\n    pcVar20 = *(code **)(puVar24 + 0xc8fb8);\n    if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }\n  }" ({ "{") (expression_statement "local_574 = *puVar14;" (assignment_expression "local_574 = *puVar14" (identifier "local_574") (= "=") (pointer_expression "*puVar14" (* "*") (identifier "puVar14"))) (; ";")) (if_statement "if (0x79 < local_574) goto LAB_00062d7c;" (if "if") (parenthesized_expression "(0x79 < local_574)" (( "(") (binary_expression "0x79 < local_574" (number_literal "0x79") (< "<") (identifier "local_574")) () ")")) (goto_statement "goto LAB_00062d7c;" (goto "goto") (statement_identifier "LAB_00062d7c") (; ";"))) (expression_statement "local_574 = 0x7a;" (assignment_expression "local_574 = 0x7a" (identifier "local_574") (= "=") (number_literal "0x7a")) (; ";")) (expression_statement "uVar10 = -((int)(uVar8 << 9) >> 0x1f);" (assignment_expression "uVar10 = -((int)(uVar8 << 9) >> 0x1f)" (identifier "uVar10") (= "=") (unary_expression "-((int)(uVar8 << 9) >> 0x1f)" (- "-") (parenthesized_expression "((int)(uVar8 << 9) >> 0x1f)" (( "(") (binary_expression "(int)(uVar8 << 9) >> 0x1f" (cast_expression "(int)(uVar8 << 9)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uVar8 << 9)" (( "(") (binary_expression "uVar8 << 9" (identifier "uVar8") (<< "<<") (number_literal "9")) () ")"))) (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8fb8);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8fb8)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8fb8)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8fb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8fb8)" (( "(") (binary_expression "puVar24 + 0xc8fb8" (identifier "puVar24") (+ "+") (number_literal "0xc8fb8")) () ")"))))) (; ";")) (if_statement "if (uVar10 != 0) {\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }" (if "if") (parenthesized_expression "(uVar10 != 0)" (( "(") (binary_expression "uVar10 != 0" (identifier "uVar10") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      uVar21 = iVar19 + 0x22cU & 3;\n      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;\n      goto LAB_00062d8c;\n    }" ({ "{") (expression_statement "uVar21 = iVar19 + 0x22cU & 3;" (assignment_expression "uVar21 = iVar19 + 0x22cU & 3" (identifier "uVar21") (= "=") (binary_expression "iVar19 + 0x22cU & 3" (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;" (assignment_expression "uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (identifier "uVar10") (= "=") (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |\n               uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (binary_expression "*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8" (pointer_expression "*(int *)((iVar19 + 0x22cU) - uVar21)" (* "*") (cast_expression "(int *)((iVar19 + 0x22cU) - uVar21)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((iVar19 + 0x22cU) - uVar21)" (( "(") (binary_expression "(iVar19 + 0x22cU) - uVar21" (parenthesized_expression "(iVar19 + 0x22cU)" (( "(") (binary_expression "iVar19 + 0x22cU" (identifier "iVar19") (+ "+") (number_literal "0x22cU")) () ")")) (- "-") (identifier "uVar21")) () ")")))) (<< "<<") (binary_expression "uVar21 * 8" (identifier "uVar21") (* "*") (number_literal "8"))) (| "|") (binary_expression "uVar10 & 0xffffffffU >> (4 - uVar21) * 8" (identifier "uVar10") (& "&") (binary_expression "0xffffffffU >> (4 - uVar21) * 8" (number_literal "0xffffffffU") (>> ">>") (binary_expression "(4 - uVar21) * 8" (parenthesized_expression "(4 - uVar21)" (( "(") (binary_expression "4 - uVar21" (number_literal "4") (- "-") (identifier "uVar21")) () ")")) (* "*") (number_literal "8")))))) (; ";")) (goto_statement "goto LAB_00062d8c;" (goto "goto") (statement_identifier "LAB_00062d8c") (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar9 = (*pcVar20)(local_550);" (assignment_expression "uVar9 = (*pcVar20)(local_550)" (identifier "uVar9") (= "=") (call_expression "(*pcVar20)(local_550)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(local_550)" (( "(") (identifier "local_550") () ")")))) (; ";")) (expression_statement "uVar10 = local_574;" (assignment_expression "uVar10 = local_574" (identifier "uVar10") (= "=") (identifier "local_574")) (; ";")) (expression_statement "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);" (call_expression "(*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574)" (parenthesized_expression "(*local_5f0)" (( "(") (pointer_expression "*local_5f0" (* "*") (identifier "local_5f0")) () ")")) (argument_list "(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574)" (( "(") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x61f0" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x61f0")) (, ",") (identifier "uVar9") (, ",") (identifier "local_574") () ")"))) (; ";")) (expression_statement "local_5ec = local_550;" (assignment_expression "local_5ec = local_550" (identifier "local_5ec") (= "=") (identifier "local_550")) (; ";")) (expression_statement "iVar7 = (*pcVar26)();" (assignment_expression "iVar7 = (*pcVar26)()" (identifier "iVar7") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (puVar22[-0x4c42] == '\x01') {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }\n  else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" (if "if") (parenthesized_expression "(puVar22[-0x4c42] == '\x01')" (( "(") (binary_expression "puVar22[-0x4c42] == '\x01'" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (== "==") (char_literal "'\x01'" (' "'") (escape_sequence "\x01") (' "'"))) () ")")) (compound_statement "{\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;\n  }" ({ "{") (expression_statement "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;" (assignment_expression "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014" (identifier "iVar18") (= "=") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6014" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6014"))) (; ";")) (} "}")) (else_clause "else {\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" (else "else") (compound_statement "{\n    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;\n  }" ({ "{") (expression_statement "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;" (assignment_expression "iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108" (identifier "iVar18") (= "=") (binary_expression "*(int *)(puVar24 + 0xc801c) + 0x6108" (pointer_expression "*(int *)(puVar24 + 0xc801c)" (* "*") (cast_expression "(int *)(puVar24 + 0xc801c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + 0xc801c)" (( "(") (binary_expression "puVar24 + 0xc801c" (identifier "puVar24") (+ "+") (number_literal "0xc801c")) () ")")))) (+ "+") (number_literal "0x6108"))) (; ";")) (} "}")))) (expression_statement "uVar10 = uVar10 >> 1;" (assignment_expression "uVar10 = uVar10 >> 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 >> 1" (identifier "uVar10") (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "(*local_5e4)(auStack_560,iVar18);" (call_expression "(*local_5e4)(auStack_560,iVar18)" (parenthesized_expression "(*local_5e4)" (( "(") (pointer_expression "*local_5e4" (* "*") (identifier "local_5e4")) () ")")) (argument_list "(auStack_560,iVar18)" (( "(") (identifier "auStack_560") (, ",") (identifier "iVar18") () ")"))) (; ";")) (expression_statement "iVar18 = (*pcVar26)();" (assignment_expression "iVar18 = (*pcVar26)()" (identifier "iVar18") (= "=") (call_expression "(*pcVar26)()" (parenthesized_expression "(*pcVar26)" (( "(") (pointer_expression "*pcVar26" (* "*") (identifier "pcVar26")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar21 = iVar18 - iVar7;" (assignment_expression "uVar21 = iVar18 - iVar7" (identifier "uVar21") (= "=") (binary_expression "iVar18 - iVar7" (identifier "iVar18") (- "-") (identifier "iVar7"))) (; ";")) (expression_statement "puVar22[-0x4c42] = 2;" (assignment_expression "puVar22[-0x4c42] = 2" (subscript_expression "puVar22[-0x4c42]" (identifier "puVar22") ([ "[") (number_literal "-0x4c42") (] "]")) (= "=") (number_literal "2")) (; ";")) (if_statement "if (uVar10 < uVar21) {\n    uVar10 = 0;\n    uVar21 = 0;\n  }" (if "if") (parenthesized_expression "(uVar10 < uVar21)" (( "(") (binary_expression "uVar10 < uVar21" (identifier "uVar10") (< "<") (identifier "uVar21")) () ")")) (compound_statement "{\n    uVar10 = 0;\n    uVar21 = 0;\n  }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "(*local_5e8)(0);" (call_expression "(*local_5e8)(0)" (parenthesized_expression "(*local_5e8)" (( "(") (pointer_expression "*local_5e8" (* "*") (identifier "local_5e8")) () ")")) (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (if_statement "if ((uVar8 & 0x100) == 0) {\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" (if "if") (parenthesized_expression "((uVar8 & 0x100) == 0)" (( "(") (binary_expression "(uVar8 & 0x100) == 0" (parenthesized_expression "(uVar8 & 0x100)" (( "(") (binary_expression "uVar8 & 0x100" (identifier "uVar8") (& "&") (number_literal "0x100")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }\n    goto LAB_00062678;\n  }" ({ "{") (if_statement "if ((uVar8 & 0x80000) == 0) {\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }\n    else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" (if "if") (parenthesized_expression "((uVar8 & 0x80000) == 0)" (( "(") (binary_expression "(uVar8 & 0x80000) == 0" (parenthesized_expression "(uVar8 & 0x80000)" (( "(") (binary_expression "uVar8 & 0x80000" (identifier "uVar8") (& "&") (number_literal "0x80000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000607e4();\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;\n    }" ({ "{") (expression_statement "FUN_000607e4();" (call_expression "FUN_000607e4()" (identifier "FUN_000607e4") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar8 & 0xffd7ffbf | 0x80000;" (assignment_expression "uVar8 = uVar8 & 0xffd7ffbf | 0x80000" (identifier "uVar8") (= "=") (binary_expression "uVar8 & 0xffd7ffbf | 0x80000" (binary_expression "uVar8 & 0xffd7ffbf" (identifier "uVar8") (& "&") (number_literal "0xffd7ffbf")) (| "|") (number_literal "0x80000"))) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" (else "else") (compound_statement "{\n      iVar7 = unaff_s5[-0x17ff];\n      uVar8 = uVar8 & 0xffffffbf;\n    }" ({ "{") (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar8 = uVar8 & 0xffffffbf;" (assignment_expression "uVar8 = uVar8 & 0xffffffbf" (identifier "uVar8") (= "=") (binary_expression "uVar8 & 0xffffffbf" (identifier "uVar8") (& "&") (number_literal "0xffffffbf"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}"))) (labeled_statement "joined_r0x00062be8:\n  if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }" (statement_identifier "joined_r0x00062be8") (: ":") (if_statement "if ((uVar8 & 0x200) != 0) {\n    FUN_00061fc8(local_578,local_5ec);\n  }" (if "if") (parenthesized_expression "((uVar8 & 0x200) != 0)" (( "(") (binary_expression "(uVar8 & 0x200) != 0" (parenthesized_expression "(uVar8 & 0x200)" (( "(") (binary_expression "uVar8 & 0x200" (identifier "uVar8") (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00061fc8(local_578,local_5ec);\n  }" ({ "{") (expression_statement "FUN_00061fc8(local_578,local_5ec);" (call_expression "FUN_00061fc8(local_578,local_5ec)" (identifier "FUN_00061fc8") (argument_list "(local_578,local_5ec)" (( "(") (identifier "local_578") (, ",") (identifier "local_5ec") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar8 = uVar8 & 0x200;" (assignment_expression "uVar8 = uVar8 & 0x200" (identifier "uVar8") (= "=") (binary_expression "uVar8 & 0x200" (identifier "uVar8") (& "&") (number_literal "0x200"))) (; ";")) (if_statement "if (**(char **)(puVar24 + 0xc82a0) == '\0') {\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }\n  else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" (if "if") (parenthesized_expression "(**(char **)(puVar24 + 0xc82a0) == '\0')" (( "(") (binary_expression "**(char **)(puVar24 + 0xc82a0) == '\0'" (pointer_expression "**(char **)(puVar24 + 0xc82a0)" (* "*") (pointer_expression "*(char **)(puVar24 + 0xc82a0)" (* "*") (cast_expression "(char **)(puVar24 + 0xc82a0)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc82a0)" (( "(") (binary_expression "puVar24 + 0xc82a0" (identifier "puVar24") (+ "+") (number_literal "0xc82a0")) () ")"))))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" ({ "{") (labeled_statement "LAB_000624e4:\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);" (statement_identifier "LAB_000624e4") (: ":") (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8f58);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8f58)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8f58)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8f58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8f58)" (( "(") (binary_expression "puVar24 + 0xc8f58" (identifier "puVar24") (+ "+") (number_literal "0xc8f58")) () ")"))))) (; ";"))) (if_statement "if (local_2ec == *piVar17) {\n      return local_5d0;\n    }" (if "if") (parenthesized_expression "(local_2ec == *piVar17)" (( "(") (binary_expression "local_2ec == *piVar17" (identifier "local_2ec") (== "==") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) () ")")) (compound_statement "{\n      return local_5d0;\n    }" ({ "{") (return_statement "return local_5d0;" (return "return") (identifier "local_5d0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));\n    pcVar20 = *(code **)(puVar24 + 0xc8f58);\n    if (local_2ec == *piVar17) {\n      return local_5d0;\n    }\n  }" ({ "{") (expression_statement "(**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));" (call_expression "(**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230))" (parenthesized_expression "(**(code **)(puVar24 + 0xc8f1c))" (( "(") (pointer_expression "**(code **)(puVar24 + 0xc8f1c)" (* "*") (pointer_expression "*(code **)(puVar24 + 0xc8f1c)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8f1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8f1c)" (( "(") (binary_expression "puVar24 + 0xc8f1c" (identifier "puVar24") (+ "+") (number_literal "0xc8f1c")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar19 + 0x230))" (( "(") (pointer_expression "*(undefined4 *)(iVar19 + 0x230)" (* "*") (cast_expression "(undefined4 *)(iVar19 + 0x230)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + 0x230)" (( "(") (binary_expression "iVar19 + 0x230" (identifier "iVar19") (+ "+") (number_literal "0x230")) () ")")))) () ")"))) (; ";")) (expression_statement "pcVar20 = *(code **)(puVar24 + 0xc8f58);" (assignment_expression "pcVar20 = *(code **)(puVar24 + 0xc8f58)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(puVar24 + 0xc8f58)" (* "*") (cast_expression "(code **)(puVar24 + 0xc8f58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0xc8f58)" (( "(") (binary_expression "puVar24 + 0xc8f58" (identifier "puVar24") (+ "+") (number_literal "0xc8f58")) () ")"))))) (; ";")) (if_statement "if (local_2ec == *piVar17) {\n      return local_5d0;\n    }" (if "if") (parenthesized_expression "(local_2ec == *piVar17)" (( "(") (binary_expression "local_2ec == *piVar17" (identifier "local_2ec") (== "==") (pointer_expression "*piVar17" (* "*") (identifier "piVar17"))) () ")")) (compound_statement "{\n      return local_5d0;\n    }" ({ "{") (return_statement "return local_5d0;" (return "return") (identifier "local_5d0") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" (identifier "uVar21") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00060ae0(local_5dc,local_578,local_5ec);" (call_expression "FUN_00060ae0(local_5dc,local_578,local_5ec)" (identifier "FUN_00060ae0") (argument_list "(local_5dc,local_578,local_5ec)" (( "(") (identifier "local_5dc") (, ",") (identifier "local_578") (, ",") (identifier "local_5ec") () ")"))) (; ";")) (expression_statement "iVar7 = unaff_s5[-0x17ff];" (assignment_expression "iVar7 = unaff_s5[-0x17ff]" (identifier "iVar7") (= "=") (subscript_expression "unaff_s5[-0x17ff]" (identifier "unaff_s5") ([ "[") (number_literal "-0x17ff") (] "]"))) (; ";")) (expression_statement "uVar10 = local_580;" (assignment_expression "uVar10 = local_580" (identifier "uVar10") (= "=") (identifier "local_580")) (; ";")) (goto_statement "goto LAB_00062678;" (goto "goto") (statement_identifier "LAB_00062678") (; ";")) (} "}")))

void function_1(uint32_t server_addr,uint32_t requested_ip)

{
  type_1 *pbVar1;
  type_1 var_15;
  type_2 var_20;
  type_3 *puVar4;
  type_3 *puVar5;
  uint32_t var_40;
  type_4 uVar7;
  int var_8;
  type_2 var_10;
  uint8_t *var_36;
  type_2 timeo;
  type_2 var_14;
  type_4 uVar12;
  int var_26;
  uint32_t *var_38;
  type_2 *var_42;
  type_5 *var_22;
  int var_7;
  type_1 *var_16;
  type_4 extraout_v1;
  char *name;
  int *piVar19;
  int var_25;
  type_6 *unaff_s0;
  uint32_t unaff_s2;
  type_7 *pcVar21;
  type_2 var_19;
  type_3 *puVar23;
  int *unaff_s5;
  type_7 *unaff_s6;
  int *var_27;
  type_3 *var_9;
  type_7 *pcVar26;
  type_7 *pcVar27;
  type_7 *pcStack_5f0;
  uint32_t var_12;
  type_7 *pcStack_5e8;
  type_7 *pcStack_5e4;
  uint32_t var_34;
  int var_24;
  type_7 *pcStack_5b4;
  int var_29;
  int var_30;
  type_7 *pcStack_5a4;
  char *pcStack_5a0;
  char *pcStack_59c;
  char *pcStack_598;
  type_4 uStack_594;
  type_2 uStack_590;
  type_2 var_13;
  int var_17;
  type_2 uStack_584;
  type_2 uStack_580;
  type_4 uStack_57c;
  uint32_t var_39;
  uint32_t var_41;
  type_8 auStack_570 [14];
  short var_31;
  type_6 dStack_560;
  int var_46;
  type_6 *pdStack_2e8;
  type_3 *puStack_2e4;
  uint32_t uStack_2e0;
  type_3 *puStack_2dc;
  type_3 *puStack_2d8;
  int *piStack_2d4;
  type_6 packet;
  char buffer [16];
  
  puVar5 = PTR___stack_chk_guard_0012b14c;
  puVar4 = PTR_bb_error_msg_0012a1c8;
  puVar23 = PTR_DAT_0012a178;
  var_7 = *(int *)PTR___stack_chk_guard_0012b14c;
  if ((type_1)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {
    uVar7 = (*(type_7 *)PTR_inet_ntoa_0012b128)();
    (*(type_7 *)PTR___strcpy_chk_0012ae3c)(buffer,uVar7,0x10);
    uVar7 = (*(type_7 *)PTR_inet_ntoa_0012b128)(requested_ip);
    unaff_s0 = &packet;
    (*(type_7 *)puVar4)(var_1 + 0x5fcc,uVar7,buffer);
    var_2(unaff_s0,'\a');
    packet.ciaddr = requested_ip;
    var_3(unaff_s0,'6',server_addr);
    (*(type_7 *)puVar4)(var_1 + 0x5ec8,var_1 + 0x1e8c);
    var_4(unaff_s0,requested_ip,server_addr);
    unaff_s2 = requested_ip;
    unaff_s5 = (int *)server_addr;
  }
  (*(type_7 *)puVar4)(var_1 + 0x5ff0);
  name = var_1 + 0x6008;
  var_5((type_6 *)0x0,name);
  var_6(0);
  var_8 = *(int *)puVar5;
  puVar23[-0x4c42] = 6;
  if (var_7 == var_8) {
    return;
  }
  var_9 = PTR___stack_chk_fail_0012b0c8;
  (*(type_7 *)PTR___stack_chk_fail_0012b0c8)();
  piVar19 = *(int **)(var_9 + 0xc8fdc);
  var_7 = *(int *)(var_9 + 0xc801c);
  var_27 = &var_17;
  puStack_2d8 = puVar5;
  puStack_2e4 = puVar4;
  puStack_2dc = puVar23;
  var_8 = *(int *)(var_9 + 0xc81d4);
  var_46 = *piVar19;
  pcVar26 = *(type_7 **)(var_9 + 0xc8178);
  *(int *)(var_8 + 0x22c) = *(int *)(var_9 + 0xc801c) + 0x2408;
  var_10 = var_8 + 0x234U & 3;
  var_42 = (type_2 *)((var_8 + 0x234U) - var_10);
  *var_42 = *var_42 & -1 << (4 - var_10) * 8 | var_7 + 0x6024U >> var_10 * 8;
  uStack_584 = 0x14;
  uStack_580 = 3;
  uStack_590 = *(int *)(var_9 + 0xc801c) + 0x601c;
  uStack_57c = 3;
  var_13 = 0;
  var_17 = 0;
  var_10 = var_8 + 0x237U & 3;
  var_42 = (type_2 *)((var_8 + 0x237U) - var_10);
  *var_42 = *var_42 & 0xffffffffU >> (var_10 + 1) * 8 | var_7 + 0x6024U << (3 - var_10) * 8;
  pcStack_5a0 = (char *)(*(int *)(var_9 + 0xc801c) + 0x6040);
  pdStack_2e8 = unaff_s0;
  uStack_2e0 = unaff_s2;
  piStack_2d4 = unaff_s5;
  var_10 = (*pcVar26)(name,*(int *)(var_9 + 0xc801c) + -0x1ca0,*(int *)(var_9 + 0xc8038) + 0x667c
                     ,&pcStack_5a0,&pcStack_59c,&pcStack_59c,&pcStack_598,var_8 + 0x22c,
                     var_8 + 0x230,&uStack_594,var_8 + 0x234,&uStack_580,&uStack_57c,&uStack_584,
                     &var_13,var_27,&uStack_590);
  if ((var_10 & 0xc) != 0) {
    (**(type_7 **)(var_9 + 0xc8058))(*(int *)(var_9 + 0xc801c) + 0x6050);
    var_36 = var_11(0xc,pcStack_59c,0);
    *(uint8_t **)(var_8 + 0x244) = var_36;
  }
  if ((var_10 & 0x10) != 0) {
    var_36 = var_11(0x51,pcStack_598,3);
    *(uint8_t **)(var_8 + 0x248) = var_36;
    var_36[2] = '\x01';
  }
  var_12 = var_10 & 0x400;
  if (var_12 != 0) {
    var_12 = (**(type_7 **)(var_9 + 0xc8b80))(uStack_594);
  }
  var_14 = uStack_590;
  timeo = (**(type_7 **)(var_9 + 0xc8234))();
  if (var_13 != 0) {
    pcStack_5f0 = *(type_7 **)(var_9 + 0xc8164);
    pcStack_5e4 = *(type_7 **)(var_9 + 0xc82c8);
    unaff_s6 = *(type_7 **)(var_9 + 0xc8630);
    puVar23 = *(type_3 **)(var_9 + 0xc8634);
    unaff_s5 = (int *)**(uint32_t **)(var_9 + 0xc80a4);
    pcStack_5e8 = *(type_7 **)(var_9 + 0xc8644);
    do {
      uVar7 = (*pcStack_5e4)(&var_13);
      var_14 = (*pcStack_5f0)(uVar7,0,0);
      if (*unaff_s5 == 0) {
        if (0xfe < var_14) {
          var_7 = (*pcStack_5e8)(uVar7,unaff_s6);
          var_14 = (type_2)(type_1)puVar23[var_7 * 2 + 1];
        }
      }
      else {
        var_7 = (*pcStack_5e8)(uVar7,unaff_s6);
        var_14 = (type_2)(type_1)puVar23[var_7 * 2 + 1];
      }
      var_7 = var_8 + (var_14 >> 3);
      *(type_1 *)(var_7 + 0x20c) = (type_1)(1 << (var_14 & 7)) | *(type_1 *)(var_7 + 0x20c);
      var_14 = var_13;
    } while (var_13 != 0);
  }
  var_16 = *(type_1 **)(var_9 + 0xc8634);
  if (-1 < (int)(var_10 << 0xe)) {
    var_15 = var_16[1];
    while (var_15 != 0) {
      var_14 = (type_2)(var_15 >> 3);
      if ((*var_16 & 0x10) != 0) {
        var_14 = var_8 + var_14;
        *(type_1 *)(var_14 + 0x20c) = (type_1)(1 << (var_15 & 7)) | *(type_1 *)(var_14 + 0x20c);
      }
      pbVar1 = var_16 + 3;
      var_16 = var_16 + 2;
      var_15 = *pbVar1;
    }
  }
  pcVar26 = *(type_7 **)(var_9 + 0xc8648);
  if (var_17 != 0) {
    unaff_s5 = (int *)(var_8 + 0x238);
    pcVar21 = *(type_7 **)(var_9 + 0xc82c8);
    unaff_s6 = *(type_7 **)(var_9 + 0xc8138);
    uVar7 = *(type_4 *)(var_9 + 0xc8630);
    puVar23 = *(type_3 **)(var_9 + 0xc8634);
    do {
      uVar12 = (*pcVar21)(var_27);
      var_14 = (*unaff_s6)(uVar12);
      (*pcVar26)(var_14,unaff_s5,puVar23,uVar7);
      (**(type_7 **)(var_9 + 0xc8ff8))();
      pcStack_5f0 = pcVar26;
    } while (var_17 != 0);
  }
  var_19 = var_8 + 0x22cU & 3;
  pcVar26 = *(type_7 **)(var_9 + 0xc864c);
  var_20 = var_8 + 0x22fU & 3;
  var_7 = var_18
                     ((char *)((*(int *)((var_8 + 0x22cU) - var_19) << var_19 * 8 |
                               var_14 & 0xffffffffU >> (4 - var_19) * 8) & -1 << (var_20 + 1) * 8 |
                              *(type_2 *)((var_8 + 0x22fU) - var_20) >> (3 - var_20) * 8),
                      (int *)(var_8 + 0x208),(uint32_t *)0x0,(uint8_t *)(var_8 + 0x200));
  if (var_7 != 0) goto LAB_000624e4;
  if (((var_10 & 1) == 0) &&
     (var_22 = var_21(*(type_5 **)(var_8 + 0x238),'='), var_22 == (type_5 *)0x0
     )) {
    var_36 = var_11(0x3d,(char *)(*(int *)(var_9 + 0xc801c) + 0x578c),7);
    *(uint8_t **)(var_8 + 0x23c) = var_36;
    var_36[2] = '\x01';
    var_7 = *(int *)(var_8 + 0x23c);
    var_27 = (int *)(var_7 + 3);
    *var_27 = *(int *)(var_8 + 0x200);
    *(type_8 *)(var_7 + 7) = *(type_8 *)(var_8 + 0x204);
    *(type_8 *)(var_7 + 8) = *(type_8 *)(var_8 + 0x205);
  }
  else {
    var_27 = (int *)0x0;
  }
  if (*pcStack_5a0 != '\0') {
    var_36 = var_11(0x3c,pcStack_5a0,0);
    *(uint8_t **)(var_8 + 0x240) = var_36;
  }
  if ((var_10 & 0x4000) != 0) {
    (**(type_7 **)(var_9 + 0xc8c0c))(**(type_4 **)(var_9 + 0xc803c),1,0x18);
    **(type_1 **)(var_9 + 0xc80cc) = **(type_1 **)(var_9 + 0xc80cc) | 2;
  }
  pcStack_5f0 = *(type_7 **)(var_9 + 0xc8058);
  unaff_s6 = (type_7 *)auStack_570;
  var_24 = *(int *)(var_9 + 0xc801c);
  (**(type_7 **)(var_9 + 0xc8510))();
  pcStack_5b4 = *(type_7 **)(var_9 + 0xc8650);
  puVar23 = *(type_3 **)(var_9 + 0xc8008);
  unaff_s5 = *(int **)(var_9 + 0xc8008);
  (**(type_7 **)(var_9 + 0xc82ac))(*(type_4 *)(var_8 + 0x230));
  var_19 = 0;
  var_29 = *(int *)(var_9 + 0xc801c);
  (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x6084);
  var_23();
  (**(type_7 **)(var_9 + 0xc8128))();
  (**(type_7 **)(var_9 + 0xc8df8))(extraout_v1);
  puVar23[-0x4c42] = 0;
  var_14 = 0;
  pcStack_5e4 = (type_7 *)(*(int *)(var_9 + 0xc85b4) + 0x19d0);
  var_5((type_6 *)0x0,(char *)(var_24 + 0x6008));
  pcStack_5e8 = (type_7 *)(*(int *)(var_9 + 0xc85b4) + 0x1194);
  var_6(2);
  var_7 = unaff_s5[-0x17ff];
  var_30 = *(int *)(var_9 + 0xc801c) + 0x623c;
  pcStack_5a4 = (type_7 *)(*(int *)(var_9 + 0xc85b4) + 0x1fc8);
LAB_00062678:
  var_25 = var_14 - var_19;
  pcVar21 = unaff_s6;
  (*pcStack_5b4)(unaff_s6,var_7);
  if (0 < var_25) goto code_r0x00062698;
  goto LAB_00062724;
code_r0x00062698:
  pcVar27 = *(type_7 **)(var_9 + 0xc8618);
  var_26 = (*pcVar27)();
  var_7 = 1000;
  if (var_25 < 0x20c49b) goto LAB_00063074;
  var_25 = 0x7fffffff;
  while (pcVar21 = unaff_s6, var_7 = (**(type_7 **)(var_9 + 0xc8ed4))(unaff_s6,2,var_25),
        var_7 < 0) {
    if (*(int *)**(type_4 **)(var_9 + 0xc80a4) == 4) {
      var_25 = (*pcVar27)();
      var_7 = unaff_s5[-0x17ff];
      var_19 = var_25 + (var_19 - var_26);
      goto LAB_00062678;
    }
    var_7 = (**(type_7 **)(var_9 + 0xc807c))(*(int *)(var_9 + 0xc801c) + 0x3518);
LAB_00063074:
    var_25 = var_25 * var_7;
  }
  if (var_7 == 0) {
LAB_00062724:
    var_14 = var_8 + 0x22cU & 3;
    var_19 = var_8 + 0x22fU & 3;
    var_7 = (*pcVar26)((*(int *)((var_8 + 0x22cU) - var_14) << var_14 * 8 |
                        (type_2)pcVar21 & 0xffffffffU >> (4 - var_14) * 8) & -1 << (var_19 + 1) * 8 |
                        *(type_2 *)((var_8 + 0x22fU) - var_19) >> (3 - var_19) * 8,var_8 + 0x208,0,
                        var_8 + 0x200);
    if (var_7 == 0) {
      if (var_27 != (int *)0x0) {
        *var_27 = *(int *)(var_8 + 0x200);
        *(type_8 *)(var_27 + 1) = *(type_8 *)(var_8 + 0x204);
        *(type_8 *)((int)var_27 + 5) = *(type_8 *)(var_8 + 0x205);
      }
      var_7 = unaff_s5[-0x17ff];
      if ((type_1)puVar23[-0x4c42] < 6) {
                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        (*(type_7 *)(var_9 +
                  *(int *)(*(int *)(var_9 + 0xc801c) + 0x6224 + (type_2)(type_1)puVar23[-0x4c42] * 4)
                  + 0xcffe0))();
        return;
      }
      var_19 = 0;
      var_14 = 0x7fffffff;
      goto LAB_00062678;
    }
    goto joined_r0x00062be8;
  }
  var_7 = var_28();
  if (var_7 == 0x10) {
    *(type_8 *)(var_8 + 0x24c) = 0;
    *(type_8 *)(var_8 + 0x24d) = 0;
    (*pcStack_5f0)(var_29 + 0x60f8);
    if ((type_1)puVar23[-0x4c42] < 7) {
                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(type_7 *)(var_9 + *(int *)(var_30 + (type_2)(type_1)puVar23[-0x4c42] * 4) + 0xcffe0))();
      return;
    }
    var_7 = unaff_s5[-0x17ff];
    var_14 = 0;
    var_19 = 0;
    goto LAB_00062678;
  }
  if (var_7 == 0x11) {
    var_14 = 0x7fffffff;
    (*pcStack_5a4)(var_39,var_12);
    var_7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  if (var_7 == 0xf) {
    (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x6118,*(int *)(var_9 + 0xc801c) + 0x6110);
    goto joined_r0x00062be8;
  }
  var_7 = unaff_s5[-0x17ff];
  if (var_31 == 0) goto LAB_00062678;
  var_25 = *(int *)(var_9 + 0xc8008);
  if (*(char *)(var_25 + -0x4c41) == '\x01') {
    var_7 = var_32(&dStack_560,var_7);
  }
  else {
    var_7 = var_33(&dStack_560,var_7);
  }
  if (var_7 == -1) {
    (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x6124);
    (**(type_7 **)(var_9 + 0xc8f94))(uStack_580);
    (*pcStack_5e8)((int)*(char *)(var_25 + -0x4c41));
    var_7 = (*pcVar27)();
    var_19 = var_7 + (var_19 - var_26);
    var_7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  var_25 = (*pcVar27)();
  var_19 = var_25 + (var_19 - var_26);
  if ((((var_7 < 0) || (dStack_560.xid != var_34)) || (dStack_560.hlen != '\x06')) ||
     (var_7 = (**(type_7 **)(var_9 + 0xc8fa4))(dStack_560.chaddr,var_8 + 0x200,6), var_7 != 0)) {
LAB_00062c40:
    var_7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  var_36 = var_35(&dStack_560,0x35);
  var_40 = var_39;
  if (var_36 == (uint8_t *)0x0) {
    (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x6148);
    var_7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  var_25 = (int)(char)puVar23[-0x4c42];
  if (var_25 != 1) {
    if (var_25 < 2) {
      var_7 = unaff_s5[-0x17ff];
      if (var_25 != 0) goto LAB_00062678;
      if (*var_36 == '\x02') {
        var_39 = 0;
        var_38 = (uint32_t *)var_37(&dStack_560,0x36);
        if (var_38 == (uint32_t *)0x0) {
          var_14 = 0;
          var_19 = 0;
          (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x6170);
          var_12 = dStack_560.yiaddr;
          var_7 = unaff_s5[-0x17ff];
          puVar23[-0x4c42] = 1;
        }
        else {
          var_39 = *var_38;
          var_14 = 0;
          var_7 = unaff_s5[-0x17ff];
          var_19 = 0;
          var_12 = dStack_560.yiaddr;
          puVar23[-0x4c42] = 1;
        }
        goto LAB_00062678;
      }
      goto LAB_00062c40;
    }
    var_7 = unaff_s5[-0x17ff];
    if (2 < (var_25 - 3U & 0xff)) goto LAB_00062678;
  }
  if (*var_36 != '\x05') {
    if ((*var_36 == '\x06') &&
       ((var_39 == 0 ||
        ((var_38 = (uint32_t *)var_37(&dStack_560,0x36), var_38 != (uint32_t *)0x0 &&
         (var_41 = *var_38, var_40 == var_41)))))) {
      (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x6118,*(int *)(var_9 + 0xc801c) + 0x6214);
      (*pcStack_5e4)(&dStack_560,*(int *)(var_9 + 0xc801c) + 0x6220);
      if (puVar23[-0x4c42] != '\x01') {
        (*pcStack_5e4)(0,var_24 + 0x6008);
      }
      var_14 = 0;
      (*pcStack_5e8)(2);
      var_19 = 0;
      (**(type_7 **)(var_9 + 0xc8f94))(3);
      var_7 = unaff_s5[-0x17ff];
      puVar23[-0x4c42] = 0;
      *(type_8 *)(var_8 + 0x24c) = 0;
      var_12 = 0;
      *(type_8 *)(var_8 + 0x24d) = 0;
      goto LAB_00062678;
    }
    goto LAB_00062c40;
  }
  var_42 = (type_2 *)var_37(&dStack_560,0x33);
  if (var_42 == (type_2 *)0x0) {
    (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x618c);
    var_41 = 0xe10;
LAB_00062d7c:
    var_14 = -((int)(var_10 << 9) >> 0x1f);
    if (var_14 != 0) {
      var_19 = var_8 + 0x22cU & 3;
      var_14 = *(int *)((var_8 + 0x22cU) - var_19) << var_19 * 8 |
               var_14 & 0xffffffffU >> (4 - var_19) * 8;
LAB_00062d8c:
      var_19 = var_8 + 0x22fU & 3;
      var_7 = var_43(dStack_560.yiaddr,(uint8_t *)0x0,0,(uint8_t *)(var_8 + 0x200),
                       (char *)(var_14 & -1 << (var_19 + 1) * 8 |
                               *(type_2 *)((var_8 + 0x22fU) - var_19) >> (3 - var_19) * 8),timeo);
      if (var_7 == 0) {
        (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x61b8);
        var_44(var_39,dStack_560.yiaddr);
        if (puVar23[-0x4c42] != '\x01') {
          (*pcStack_5e4)(0,var_24 + 0x6008);
        }
        var_19 = 0;
        (*pcStack_5e8)(2);
        puVar23[-0x4c42] = 0;
        var_12 = 0;
        *(type_8 *)(var_8 + 0x24c) = 0;
        *(type_8 *)(var_8 + 0x24d) = 0;
        var_7 = unaff_s5[-0x17ff];
        var_14 = uStack_584;
        goto LAB_00062678;
      }
    }
    pcVar21 = *(type_7 **)(var_9 + 0xc8fb8);
  }
  else {
    var_41 = *var_42;
    if (0x79 < var_41) goto LAB_00062d7c;
    var_41 = 0x7a;
    var_14 = -((int)(var_10 << 9) >> 0x1f);
    pcVar21 = *(type_7 **)(var_9 + 0xc8fb8);
    if (var_14 != 0) {
      var_19 = var_8 + 0x22cU & 3;
      var_14 = *(int *)((var_8 + 0x22cU) - var_19) << var_19 * 8 |
               var_14 & 0xffffffffU >> (4 - var_19) * 8;
      goto LAB_00062d8c;
    }
  }
  uVar7 = (*pcVar21)(dStack_560.yiaddr);
  var_40 = var_41;
  (*pcStack_5f0)(*(int *)(var_9 + 0xc801c) + 0x61f0,uVar7,var_41);
  var_12 = dStack_560.yiaddr;
  var_7 = (*pcVar27)();
  if (puVar23[-0x4c42] == '\x01') {
    var_25 = *(int *)(var_9 + 0xc801c) + 0x6014;
  }
  else {
    var_25 = *(int *)(var_9 + 0xc801c) + 0x6108;
  }
  var_14 = var_40 >> 1;
  (*pcStack_5e4)(&dStack_560,var_25);
  var_25 = (*pcVar27)();
  var_19 = var_25 - var_7;
  puVar23[-0x4c42] = 2;
  if (var_14 < var_19) {
    var_14 = 0;
    var_19 = 0;
  }
  (*pcStack_5e8)(0);
  if ((var_10 & 0x100) == 0) {
    if ((var_10 & 0x80000) == 0) {
      var_45();
      var_7 = unaff_s5[-0x17ff];
      var_10 = var_10 & 0xffd7ffbf | 0x80000;
    }
    else {
      var_7 = unaff_s5[-0x17ff];
      var_10 = var_10 & 0xffffffbf;
    }
    goto LAB_00062678;
  }
joined_r0x00062be8:
  if ((var_10 & 0x200) != 0) {
    function_1(var_39,var_12);
  }
  var_10 = var_10 & 0x200;
  if (**(char **)(var_9 + 0xc82a0) == '\0') {
LAB_000624e4:
    pcVar21 = *(type_7 **)(var_9 + 0xc8f58);
    if (var_46 == *piVar19) {
      return;
    }
  }
  else {
    (**(type_7 **)(var_9 + 0xc8f1c))(*(type_4 *)(var_8 + 0x230));
    pcVar21 = *(type_7 **)(var_9 + 0xc8f58);
    if (var_46 == *piVar19) {
      return;
    }
  }
  (*pcVar21)();
  var_19 = 0;
  var_47(var_34,var_39,var_12);
  var_7 = unaff_s5[-0x17ff];
  var_14 = uStack_580;
  goto LAB_00062678;
}


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

int MASKED(int *param_1,undefined4 param_2)

{
  byte *pbVar1;
  byte bVar2;
  uint uVar3;
  undefined *puVar4;
  undefined *puVar5;
  undefined4 uVar6;
  int iVar7;
  uint uVar8;
  undefined4 uVar9;
  uint uVar10;
  undefined4 uVar11;
  int iVar12;
  char *pcVar13;
  uint *puVar14;
  byte *pbVar15;
  undefined4 extraout_v1;
  undefined *puVar16;
  int *piVar17;
  int iVar18;
  undefined1 *unaff_s0;
  int iVar19;
  undefined4 unaff_s2;
  code *pcVar20;
  uint uVar21;
  undefined *puVar22;
  int *unaff_s5;
  code *unaff_s6;
  int *piVar23;
  undefined *puVar24;
  code *pcVar25;
  code *pcVar26;
  code *local_5f0;
  uint local_5ec;
  code *local_5e8;
  code *local_5e4;
  int local_5dc;
  int local_5d4;
  int local_5d0;
  code *local_5b4;
  int local_5ac;
  int local_5a8;
  code *local_5a4;
  char *local_5a0;
  undefined4 local_59c;
  undefined4 local_598;
  undefined4 local_594;
  uint local_590;
  uint local_58c;
  int local_588;
  uint local_584;
  uint local_580;
  undefined4 local_57c;
  uint local_578;
  uint local_574;
  undefined1 auStack_570 [14];
  short local_562;
  undefined1 auStack_560 [2];
  char local_55e;
  int local_55c;
  uint local_550;
  undefined1 auStack_544 [600];
  int local_2ec;
  undefined1 *local_2e8;
  undefined *local_2e4;
  undefined4 local_2e0;
  undefined *local_2dc;
  undefined *local_2d8;
  int *local_2d4;
  undefined1 auStack_2a8 [12];
  undefined4 local_29c;
  undefined1 auStack_34 [16];
  int local_24;
  
  puVar5 = PTR___stack_chk_guard_0012b14c;
  puVar4 = PTR_FUN_0012a1c8;
  puVar22 = PTR_DAT_0012a178;
  local_24 = *(int *)PTR___stack_chk_guard_0012b14c;
  if ((byte)PTR_DAT_0012a178[-0x4c42] - 2 < 4) {
    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)();
    (*(code *)PTR___strcpy_chk_0012ae3c)(auStack_34,uVar6,0x10);
    uVar6 = (*(code *)PTR_inet_ntoa_0012b128)(param_2);
    unaff_s0 = auStack_2a8;
    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5fcc,uVar6,auStack_34);
    FUN_000608e4(unaff_s0,7);
    local_29c = param_2;
    FUN_00066e38(unaff_s0,0x36,param_1);
    (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ec8,PTR_UINT_0012a18c + 0x1e8c);
    FUN_00060768(unaff_s0,param_2,param_1);
    unaff_s2 = param_2;
    unaff_s5 = param_1;
  }
  (*(code *)puVar4)(PTR_UINT_0012a18c + 0x5ff0);
  puVar16 = PTR_UINT_0012a18c + 0x6008;
  FUN_000619d0(0,puVar16);
  FUN_00061194(0);
  iVar7 = *(int *)puVar5;
  puVar22[-0x4c42] = 6;
  if (local_24 == iVar7) {
    return iVar7;
  }
  puVar24 = PTR___stack_chk_fail_0012b0c8;
  (*(code *)PTR___stack_chk_fail_0012b0c8)();
  piVar17 = *(int **)(puVar24 + 0xc8fdc);
  iVar7 = *(int *)(puVar24 + 0xc801c);
  piVar23 = &local_588;
  local_2d8 = puVar5;
  local_2e4 = puVar4;
  local_2dc = puVar22;
  iVar19 = *(int *)(puVar24 + 0xc81d4);
  local_2ec = *piVar17;
  pcVar25 = *(code **)(puVar24 + 0xc8178);
  *(int *)(iVar19 + 0x22c) = *(int *)(puVar24 + 0xc801c) + 0x2408;
  uVar8 = iVar19 + 0x234U & 3;
  puVar14 = (uint *)((iVar19 + 0x234U) - uVar8);
  *puVar14 = *puVar14 & -1 << (4 - uVar8) * 8 | iVar7 + 0x6024U >> uVar8 * 8;
  local_584 = 0x14;
  local_580 = 3;
  local_590 = *(int *)(puVar24 + 0xc801c) + 0x601c;
  local_57c = 3;
  local_58c = 0;
  local_588 = 0;
  uVar8 = iVar19 + 0x237U & 3;
  puVar14 = (uint *)((iVar19 + 0x237U) - uVar8);
  *puVar14 = *puVar14 & 0xffffffffU >> (uVar8 + 1) * 8 | iVar7 + 0x6024U << (3 - uVar8) * 8;
  local_5a0 = (char *)(*(int *)(puVar24 + 0xc801c) + 0x6040);
  local_2e8 = unaff_s0;
  local_2e0 = unaff_s2;
  local_2d4 = unaff_s5;
  uVar8 = (*pcVar25)(puVar16,*(int *)(puVar24 + 0xc801c) + -0x1ca0,
                     *(int *)(puVar24 + 0xc8038) + 0x667c,&local_5a0,&local_59c,&local_59c,
                     &local_598,iVar19 + 0x22c,iVar19 + 0x230,&local_594,iVar19 + 0x234,&local_580,
                     &local_57c,&local_584,&local_58c,piVar23,&local_590);
  if ((uVar8 & 0xc) != 0) {
    (**(code **)(puVar24 + 0xc8058))(*(int *)(puVar24 + 0xc801c) + 0x6050);
    uVar6 = FUN_00060838(0xc,local_59c,0);
    *(undefined4 *)(iVar19 + 0x244) = uVar6;
  }
  if ((uVar8 & 0x10) != 0) {
    iVar7 = FUN_00060838(0x51,local_598,3);
    *(int *)(iVar19 + 0x248) = iVar7;
    *(undefined1 *)(iVar7 + 2) = 1;
  }
  local_5ec = uVar8 & 0x400;
  if (local_5ec != 0) {
    local_5ec = (**(code **)(puVar24 + 0xc8b80))(local_594);
  }
  uVar10 = local_590;
  uVar6 = (**(code **)(puVar24 + 0xc8234))(local_590);
  if (local_58c != 0) {
    local_5f0 = *(code **)(puVar24 + 0xc8164);
    local_5e4 = *(code **)(puVar24 + 0xc82c8);
    unaff_s6 = *(code **)(puVar24 + 0xc8630);
    puVar22 = *(undefined **)(puVar24 + 0xc8634);
    unaff_s5 = (int *)**(undefined4 **)(puVar24 + 0xc80a4);
    local_5e8 = *(code **)(puVar24 + 0xc8644);
    do {
      uVar9 = (*local_5e4)(&local_58c);
      uVar10 = (*local_5f0)(uVar9,0,0);
      if (*unaff_s5 == 0) {
        if (0xfe < uVar10) {
          iVar7 = (*local_5e8)(uVar9,unaff_s6);
          uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];
        }
      }
      else {
        iVar7 = (*local_5e8)(uVar9,unaff_s6);
        uVar10 = (uint)(byte)puVar22[iVar7 * 2 + 1];
      }
      iVar7 = iVar19 + (uVar10 >> 3);
      *(byte *)(iVar7 + 0x20c) = (byte)(1 << (uVar10 & 7)) | *(byte *)(iVar7 + 0x20c);
      uVar10 = local_58c;
    } while (local_58c != 0);
  }
  pbVar15 = *(byte **)(puVar24 + 0xc8634);
  if (-1 < (int)(uVar8 << 0xe)) {
    bVar2 = pbVar15[1];
    while (bVar2 != 0) {
      uVar10 = (uint)(bVar2 >> 3);
      if ((*pbVar15 & 0x10) != 0) {
        uVar10 = iVar19 + uVar10;
        *(byte *)(uVar10 + 0x20c) = (byte)(1 << (bVar2 & 7)) | *(byte *)(uVar10 + 0x20c);
      }
      pbVar1 = pbVar15 + 3;
      pbVar15 = pbVar15 + 2;
      bVar2 = *pbVar1;
    }
  }
  pcVar25 = *(code **)(puVar24 + 0xc8648);
  if (local_588 != 0) {
    unaff_s5 = (int *)(iVar19 + 0x238);
    pcVar20 = *(code **)(puVar24 + 0xc82c8);
    unaff_s6 = *(code **)(puVar24 + 0xc8138);
    uVar9 = *(undefined4 *)(puVar24 + 0xc8630);
    puVar22 = *(undefined **)(puVar24 + 0xc8634);
    do {
      uVar11 = (*pcVar20)(piVar23);
      uVar10 = (*unaff_s6)(uVar11);
      (*pcVar25)(uVar10,unaff_s5,puVar22,uVar9);
      (**(code **)(puVar24 + 0xc8ff8))(uVar10);
      local_5f0 = pcVar25;
    } while (local_588 != 0);
  }
  uVar21 = iVar19 + 0x22cU & 3;
  pcVar25 = *(code **)(puVar24 + 0xc864c);
  uVar3 = iVar19 + 0x22fU & 3;
  iVar7 = FUN_00066210((*(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |
                       uVar10 & 0xffffffffU >> (4 - uVar21) * 8) & -1 << (uVar3 + 1) * 8 |
                       *(uint *)((iVar19 + 0x22fU) - uVar3) >> (3 - uVar3) * 8,iVar19 + 0x208,0,
                       iVar19 + 0x200);
  if (iVar7 != 0) {
    local_5d0 = 1;
    goto LAB_000624e4;
  }
  if (((uVar8 & 1) == 0) && (iVar7 = FUN_00066f28(*(undefined4 *)(iVar19 + 0x238),0x3d), iVar7 == 0)
     ) {
    iVar7 = FUN_00060838(0x3d,*(int *)(puVar24 + 0xc801c) + 0x578c,7);
    *(int *)(iVar19 + 0x23c) = iVar7;
    *(undefined1 *)(iVar7 + 2) = 1;
    iVar7 = *(int *)(iVar19 + 0x23c);
    piVar23 = (int *)(iVar7 + 3);
    *piVar23 = *(int *)(iVar19 + 0x200);
    *(undefined1 *)(iVar7 + 7) = *(undefined1 *)(iVar19 + 0x204);
    *(undefined1 *)(iVar7 + 8) = *(undefined1 *)(iVar19 + 0x205);
  }
  else {
    piVar23 = (int *)0x0;
  }
  if (*local_5a0 != '\0') {
    uVar9 = FUN_00060838(0x3c,local_5a0,0);
    *(undefined4 *)(iVar19 + 0x240) = uVar9;
  }
  if ((uVar8 & 0x4000) != 0) {
    (**(code **)(puVar24 + 0xc8c0c))(**(undefined4 **)(puVar24 + 0xc803c),1,0x18);
    **(byte **)(puVar24 + 0xc80cc) = **(byte **)(puVar24 + 0xc80cc) | 2;
  }
  local_5f0 = *(code **)(puVar24 + 0xc8058);
  unaff_s6 = (code *)auStack_570;
  local_5d4 = *(int *)(puVar24 + 0xc801c);
  (**(code **)(puVar24 + 0xc8510))();
  local_5b4 = *(code **)(puVar24 + 0xc8650);
  puVar22 = *(undefined **)(puVar24 + 0xc8008);
  unaff_s5 = *(int **)(puVar24 + 0xc8008);
  (**(code **)(puVar24 + 0xc82ac))(*(undefined4 *)(iVar19 + 0x230));
  uVar21 = 0;
  local_5ac = *(int *)(puVar24 + 0xc801c);
  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6084);
  FUN_00066068();
  (**(code **)(puVar24 + 0xc8128))();
  (**(code **)(puVar24 + 0xc8df8))(extraout_v1);
  puVar22[-0x4c42] = 0;
  uVar10 = 0;
  local_5e4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x19d0);
  FUN_000619d0(0,local_5d4 + 0x6008);
  local_5e8 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1194);
  FUN_00061194(2);
  iVar7 = unaff_s5[-0x17ff];
  local_5a8 = *(int *)(puVar24 + 0xc801c) + 0x623c;
  local_5a4 = (code *)(*(int *)(puVar24 + 0xc85b4) + 0x1fc8);
  local_5d0 = 0;
LAB_00062678:
  iVar18 = uVar10 - uVar21;
  pcVar20 = unaff_s6;
  (*local_5b4)(unaff_s6,iVar7);
  if (0 < iVar18) goto code_r0x00062698;
  goto LAB_00062724;
code_r0x00062698:
  pcVar26 = *(code **)(puVar24 + 0xc8618);
  iVar12 = (*pcVar26)();
  iVar7 = 1000;
  if (iVar18 < 0x20c49b) goto LAB_00063074;
  iVar18 = 0x7fffffff;
  while (pcVar20 = unaff_s6, iVar7 = (**(code **)(puVar24 + 0xc8ed4))(unaff_s6,2,iVar18), iVar7 < 0)
  {
    if (*(int *)**(undefined4 **)(puVar24 + 0xc80a4) == 4) {
      iVar18 = (*pcVar26)();
      iVar7 = unaff_s5[-0x17ff];
      uVar21 = iVar18 + (uVar21 - iVar12);
      goto LAB_00062678;
    }
    iVar7 = (**(code **)(puVar24 + 0xc807c))(*(int *)(puVar24 + 0xc801c) + 0x3518);
LAB_00063074:
    iVar18 = iVar18 * iVar7;
  }
  if (iVar7 == 0) {
LAB_00062724:
    uVar10 = iVar19 + 0x22cU & 3;
    uVar21 = iVar19 + 0x22fU & 3;
    iVar7 = (*pcVar25)((*(int *)((iVar19 + 0x22cU) - uVar10) << uVar10 * 8 |
                       (uint)pcVar20 & 0xffffffffU >> (4 - uVar10) * 8) & -1 << (uVar21 + 1) * 8 |
                       *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,iVar19 + 0x208,0,
                       iVar19 + 0x200);
    if (iVar7 == 0) {
      if (piVar23 != (int *)0x0) {
        *piVar23 = *(int *)(iVar19 + 0x200);
        *(undefined1 *)(piVar23 + 1) = *(undefined1 *)(iVar19 + 0x204);
        *(undefined1 *)((int)piVar23 + 5) = *(undefined1 *)(iVar19 + 0x205);
      }
      iVar7 = unaff_s5[-0x17ff];
      if ((byte)puVar22[-0x4c42] < 6) {
                    /* WARNING: Could not recover jumptable at 0x000627cc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
        iVar7 = (*(code *)(puVar24 +
                          *(int *)(*(int *)(puVar24 + 0xc801c) + 0x6224 +
                                  (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0))();
        return iVar7;
      }
      uVar21 = 0;
      uVar10 = 0x7fffffff;
      goto LAB_00062678;
    }
    goto joined_r0x00062be8;
  }
  iVar7 = FUN_0006618c();
  if (iVar7 == 0x10) {
    *(undefined1 *)(iVar19 + 0x24c) = 0;
    *(undefined1 *)(iVar19 + 0x24d) = 0;
    (*local_5f0)(local_5ac + 0x60f8);
    if ((byte)puVar22[-0x4c42] < 7) {
                    /* WARNING: Could not recover jumptable at 0x00062b28. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      iVar7 = (*(code *)(puVar24 + *(int *)(local_5a8 + (uint)(byte)puVar22[-0x4c42] * 4) + 0xcffe0)
              )();
      return iVar7;
    }
    iVar7 = unaff_s5[-0x17ff];
    uVar10 = 0;
    uVar21 = 0;
    goto LAB_00062678;
  }
  if (iVar7 == 0x11) {
    uVar10 = 0x7fffffff;
    (*local_5a4)(local_578,local_5ec);
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  if (iVar7 == 0xf) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6110);
    goto joined_r0x00062be8;
  }
  iVar7 = unaff_s5[-0x17ff];
  if (local_562 == 0) goto LAB_00062678;
  iVar7 = *(int *)(puVar24 + 0xc8008);
  if (*(char *)(iVar7 + -0x4c41) == '\x01') {
    iVar18 = FUN_00065a28(auStack_560);
  }
  else {
    iVar18 = FUN_00060ea8(auStack_560);
  }
  if (iVar18 == -1) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6124);
    (**(code **)(puVar24 + 0xc8f94))(local_580);
    (*local_5e8)((int)*(char *)(iVar7 + -0x4c41));
    iVar7 = (*pcVar26)();
    uVar21 = iVar7 + (uVar21 - iVar12);
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  iVar7 = (*pcVar26)();
  uVar21 = iVar7 + (uVar21 - iVar12);
  if ((((iVar18 < 0) || (local_55c != local_5dc)) || (local_55e != '\x06')) ||
     (iVar7 = (**(code **)(puVar24 + 0xc8fa4))(auStack_544,iVar19 + 0x200,6), iVar7 != 0)) {
LAB_00062c40:
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  pcVar13 = (char *)FUN_00066bc4(auStack_560,0x35);
  uVar3 = local_578;
  if (pcVar13 == (char *)0x0) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6148);
    iVar7 = unaff_s5[-0x17ff];
    goto LAB_00062678;
  }
  iVar18 = (int)(char)puVar22[-0x4c42];
  if (iVar18 != 1) {
    if (iVar18 < 2) {
      iVar7 = unaff_s5[-0x17ff];
      if (iVar18 != 0) goto LAB_00062678;
      if (*pcVar13 == '\x02') {
        local_578 = 0;
        puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36);
        if (puVar14 == (uint *)0x0) {
          uVar10 = 0;
          uVar21 = 0;
          (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6170);
          local_5ec = local_550;
          iVar7 = unaff_s5[-0x17ff];
          puVar22[-0x4c42] = 1;
        }
        else {
          local_578 = *puVar14;
          uVar10 = 0;
          iVar7 = unaff_s5[-0x17ff];
          uVar21 = 0;
          local_5ec = local_550;
          puVar22[-0x4c42] = 1;
        }
        goto LAB_00062678;
      }
      goto LAB_00062c40;
    }
    iVar7 = unaff_s5[-0x17ff];
    if (2 < (iVar18 - 3U & 0xff)) goto LAB_00062678;
  }
  if (*pcVar13 != '\x05') {
    if ((*pcVar13 == '\x06') &&
       ((local_578 == 0 ||
        ((puVar14 = (uint *)FUN_00066cd4(auStack_560,0x36), puVar14 != (uint *)0x0 &&
         (local_574 = *puVar14, uVar3 == local_574)))))) {
      (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x6118,*(int *)(puVar24 + 0xc801c) + 0x6214);
      (*local_5e4)(auStack_560,*(int *)(puVar24 + 0xc801c) + 0x6220);
      if (puVar22[-0x4c42] != '\x01') {
        (*local_5e4)(0,local_5d4 + 0x6008);
      }
      uVar10 = 0;
      (*local_5e8)(2);
      uVar21 = 0;
      (**(code **)(puVar24 + 0xc8f94))(3);
      iVar7 = unaff_s5[-0x17ff];
      puVar22[-0x4c42] = 0;
      *(undefined1 *)(iVar19 + 0x24c) = 0;
      local_5ec = 0;
      *(undefined1 *)(iVar19 + 0x24d) = 0;
      goto LAB_00062678;
    }
    goto LAB_00062c40;
  }
  puVar14 = (uint *)FUN_00066cd4(auStack_560,0x33);
  if (puVar14 == (uint *)0x0) {
    (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x618c);
    local_574 = 0xe10;
LAB_00062d7c:
    uVar10 = -((int)(uVar8 << 9) >> 0x1f);
    if (uVar10 != 0) {
      uVar21 = iVar19 + 0x22cU & 3;
      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |
               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;
LAB_00062d8c:
      uVar21 = iVar19 + 0x22fU & 3;
      iVar7 = FUN_0006654c(local_550,0,0,iVar19 + 0x200,
                           uVar10 & -1 << (uVar21 + 1) * 8 |
                           *(uint *)((iVar19 + 0x22fU) - uVar21) >> (3 - uVar21) * 8,uVar6);
      if (iVar7 == 0) {
        (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61b8);
        FUN_00060c2c(local_578,local_550);
        if (puVar22[-0x4c42] != '\x01') {
          (*local_5e4)(0,local_5d4 + 0x6008);
        }
        uVar21 = 0;
        (*local_5e8)(2);
        puVar22[-0x4c42] = 0;
        local_5ec = 0;
        *(undefined1 *)(iVar19 + 0x24c) = 0;
        *(undefined1 *)(iVar19 + 0x24d) = 0;
        iVar7 = unaff_s5[-0x17ff];
        uVar10 = local_584;
        goto LAB_00062678;
      }
    }
    pcVar20 = *(code **)(puVar24 + 0xc8fb8);
  }
  else {
    local_574 = *puVar14;
    if (0x79 < local_574) goto LAB_00062d7c;
    local_574 = 0x7a;
    uVar10 = -((int)(uVar8 << 9) >> 0x1f);
    pcVar20 = *(code **)(puVar24 + 0xc8fb8);
    if (uVar10 != 0) {
      uVar21 = iVar19 + 0x22cU & 3;
      uVar10 = *(int *)((iVar19 + 0x22cU) - uVar21) << uVar21 * 8 |
               uVar10 & 0xffffffffU >> (4 - uVar21) * 8;
      goto LAB_00062d8c;
    }
  }
  uVar9 = (*pcVar20)(local_550);
  uVar10 = local_574;
  (*local_5f0)(*(int *)(puVar24 + 0xc801c) + 0x61f0,uVar9,local_574);
  local_5ec = local_550;
  iVar7 = (*pcVar26)();
  if (puVar22[-0x4c42] == '\x01') {
    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6014;
  }
  else {
    iVar18 = *(int *)(puVar24 + 0xc801c) + 0x6108;
  }
  uVar10 = uVar10 >> 1;
  (*local_5e4)(auStack_560,iVar18);
  iVar18 = (*pcVar26)();
  uVar21 = iVar18 - iVar7;
  puVar22[-0x4c42] = 2;
  if (uVar10 < uVar21) {
    uVar10 = 0;
    uVar21 = 0;
  }
  (*local_5e8)(0);
  if ((uVar8 & 0x100) == 0) {
    if ((uVar8 & 0x80000) == 0) {
      FUN_000607e4();
      iVar7 = unaff_s5[-0x17ff];
      uVar8 = uVar8 & 0xffd7ffbf | 0x80000;
    }
    else {
      iVar7 = unaff_s5[-0x17ff];
      uVar8 = uVar8 & 0xffffffbf;
    }
    goto LAB_00062678;
  }
joined_r0x00062be8:
  if ((uVar8 & 0x200) != 0) {
    MASKED(local_578,local_5ec);
  }
  uVar8 = uVar8 & 0x200;
  if (**(char **)(puVar24 + 0xc82a0) == '\0') {
LAB_000624e4:
    pcVar20 = *(code **)(puVar24 + 0xc8f58);
    if (local_2ec == *piVar17) {
      return local_5d0;
    }
  }
  else {
    (**(code **)(puVar24 + 0xc8f1c))(*(undefined4 *)(iVar19 + 0x230));
    pcVar20 = *(code **)(puVar24 + 0xc8f58);
    if (local_2ec == *piVar17) {
      return local_5d0;
    }
  }
  (*pcVar20)();
  uVar21 = 0;
  FUN_00060ae0(local_5dc,local_578,local_5ec);
  iVar7 = unaff_s5[-0x17ff];
  uVar10 = local_580;
  goto LAB_00062678;
}

