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

void __regparm3
additional_elem_helper(char *pad,uint8_t *ae_bp,int len,int etype,th_es_t *tesp,opts_t *op)

{
  uint8_t uVar1;
  int iVar2;
  uint uVar3;
  join_row_t *pjVar4;
  char cVar5;
  undefined4 uVar6;
  uint uVar7;
  uint uVar8;
  char *pcVar9;
  char *pcVar10;
  char *pcVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  int iVar15;
  char *pcVar16;
  byte bVar17;
  ushort uVar18;
  char *pcVar19;
  char *pcVar20;
  uint uVar21;
  uint8_t *puVar22;
  uint8_t *puVar23;
  int iVar24;
  join_row_t *pjVar25;
  join_row_t *pjVar26;
  int iVar27;
  int in_GS_OFFSET;
  bool bVar28;
  byte local_a4;
  uint local_a0;
  int local_9c;
  uint local_98;
  int local_94;
  uint local_90;
  int local_88;
  int local_84;
  int local_80;
  int local_7c;
  int local_74;
  char b [64];
  
  iVar2 = *(int *)(in_GS_OFFSET + 0x14);
  if (op->inner_hex != false) {
    uVar8 = 0;
    do {
      if ((uVar8 & 0xf) == 0) {
        pcVar11 = "\n";
        if (uVar8 == 0) {
          pcVar11 = "";
        }
        __printf_chk(1,&DAT_0001f086,pcVar11,pad);
      }
      puVar22 = ae_bp + uVar8;
      uVar8 = uVar8 + 1;
      __printf_chk(1,"%02x ",*puVar22);
    } while (len != uVar8);
    putchar(10);
    goto LAB_000196b0;
  }
  bVar17 = *ae_bp & 0xf;
  if ((*ae_bp & 0x10) == 0) {
    if (bVar17 == 6) {
      iVar27 = 3;
LAB_000199cd:
      __printf_chk(1,"%sTransport protocol: SAS\n",pad);
      if (iVar27 < len) {
        iVar27 = op->do_filter;
        bVar28 = (*ae_bp & 0x10) != 0;
        if (bVar28) {
          local_74 = 8;
          iVar15 = 4;
          iVar24 = 5;
          local_7c = 0x10;
          local_90 = ae_bp[2] & 3;
          local_84 = 8;
          local_88 = 8;
          local_80 = 7;
        }
        else {
          local_74 = 6;
          iVar15 = 2;
          iVar24 = 3;
          local_7c = 0xe;
          local_84 = 6;
          local_88 = 4;
          local_80 = 5;
          local_90 = 0;
        }
        bVar17 = ae_bp[iVar24] >> 6;
        if (1 < op->verbose) {
          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);
        }
        if (bVar17 == 0) {
          uVar8 = (uint)ae_bp[iVar15];
          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);
          if (bVar28) {
            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);
          }
          putchar(10);
          if (uVar8 != 0) {
            local_a0 = 0;
            puVar22 = ae_bp + local_88 + 0xc;
            pcVar11 = "";
            do {
              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);
              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]
                          );
              bVar17 = puVar22[-10];
              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {
                pcVar16 = " SMP";
                if ((bVar17 & 2) == 0) {
                  pcVar16 = pcVar11;
                }
                pcVar20 = " STP";
                if ((bVar17 & 4) == 0) {
                  pcVar20 = pcVar11;
                }
                pcVar10 = " SSP";
                if ((bVar17 & 8) == 0) {
                  pcVar10 = pcVar11;
                }
                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);
                if (iVar27 != 0) goto LAB_00019e40;
                bVar17 = puVar22[-9];
LAB_00019e48:
                pcVar16 = pcVar11;
                if ((bVar17 & 1) != 0) {
                  pcVar16 = " SATA_device";
                }
                pcVar20 = " SMP";
                if ((bVar17 & 2) == 0) {
                  pcVar20 = pcVar11;
                }
                pcVar10 = " STP";
                if ((bVar17 & 4) == 0) {
                  pcVar10 = pcVar11;
                }
                pcVar19 = " SSP";
                if ((bVar17 & 8) == 0) {
                  pcVar19 = pcVar11;
                }
                pcVar9 = " SATA_port_selector";
                if (-1 < (char)bVar17) {
                  pcVar9 = pcVar11;
                }
                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20
                             ,pcVar16);
              }
              else {
LAB_00019e40:
                bVar17 = puVar22[-9];
                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;
              }
              puVar23 = puVar22 + -8;
              bVar17 = sg_all_zeros(puVar23,8);
              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {
                __printf_chk(1,"%s  attached SAS address: 0x",pad);
                if ((bVar17 ^ 1) == 0) {
                  putchar(0x30);
                  bVar17 = sg_all_zeros(puVar22,8);
                  bVar17 = bVar17 ^ 1;
LAB_00019fce:
                  __printf_chk(1,"\n%s  SAS address: 0x",pad);
                  if (bVar17 != 0) goto LAB_0001a030;
                  putchar(0x30);
                }
                else {
                  do {
                    uVar1 = *puVar23;
                    puVar23 = puVar23 + 1;
                    __printf_chk(1,&DAT_0001f329,uVar1);
                  } while (puVar22 != puVar23);
                  bVar17 = sg_all_zeros(puVar22,8);
                  bVar17 = bVar17 ^ 1;
                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;
                }
LAB_00019ff9:
                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);
              }
              else {
                cVar5 = sg_all_zeros(puVar22,8);
                if (cVar5 == '\0') {
                  __printf_chk(1,"\n%s  SAS address: 0x",pad);
LAB_0001a030:
                  puVar23 = puVar22;
                  do {
                    uVar1 = *puVar23;
                    puVar23 = puVar23 + 1;
                    __printf_chk(1,&DAT_0001f329,uVar1);
                  } while (puVar22 + 8 != puVar23);
                  goto LAB_00019ff9;
                }
              }
              local_a0 = local_a0 + 1;
              puVar22 = puVar22 + 0x1c;
            } while (uVar8 != local_a0);
          }
        }
        else if (bVar17 == 1) {
          uVar8 = (uint)ae_bp[iVar15];
          if (etype == 0x18) {
            uVar7 = uVar8;
            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);
            __printf_chk(1,"%sSAS address: 0x",pad);
            puVar22 = ae_bp + local_84;
            do {
              uVar1 = *puVar22;
              puVar22 = puVar22 + 1;
              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);
            } while (ae_bp + local_84 + 8 != puVar22);
            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);
            if (uVar8 != 0) {
              uVar21 = 0;
              uVar7 = local_90 & 0xfffffffd;
              do {
                pcVar11 = pad;
                uVar12 = uVar21;
                __printf_chk(1,"%s  [%d] ",pad,uVar21);
                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];
                if (pcVar16 == (char *)0xff) {
                  __printf_chk(1,"no connector",pcVar11,uVar12);
                }
                else {
                  pjVar25 = tesp->j_base;
                  if (pjVar25 == (join_row_t *)0x0) {
                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);
                    pcVar11 = pcVar16;
                  }
                  else {
                    if (local_90 == 0) {
                      if ((int)pcVar16 < tesp->num_j_rows) {
                        iVar27 = 0;
                        do {
                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {
                            puVar22 = pjVar25->enc_statp;
                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;
                            break;
                          }
                          iVar27 = iVar27 + 1;
                          pjVar25 = pjVar25 + 1;
                        } while (iVar27 < tesp->num_j_rows);
                      }
                    }
                    else if (uVar7 == 1) {
                      if (((int)pcVar16 < tesp->num_j_rows) &&
                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {
LAB_0001a59d:
                        puVar22 = pjVar25->enc_statp;
                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {
LAB_0001a70c:
                          enc_status_helper("",puVar22,0x19,true,op);
                          pcVar11 = (char *)pjVar25->indiv_i;
                          __printf_chk(1," [%d]",pcVar11,uVar12);
                          goto LAB_0001a5c3;
                        }
                      }
                    }
                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {
                      pcVar11 = (char *)pjVar25->ei_eoe;
                      uVar13 = uVar7;
                      while (pcVar16 != pcVar11) {
                        uVar13 = uVar13 + 1;
                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;
                        pcVar11 = (char *)pjVar25[1].ei_eoe;
                        pjVar25 = pjVar25 + 1;
                      }
                      goto LAB_0001a59d;
                    }
LAB_0001a5ae:
                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);
                    pcVar11 = pcVar16;
                  }
                }
LAB_0001a5c3:
                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];
                if (uVar13 != 0xff) {
                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);
                  pjVar25 = tesp->j_base;
                  if (pjVar25 == (join_row_t *)0x0) {
                    __printf_chk(1,"other ei: %d",uVar13,uVar12);
                  }
                  else {
                    if (local_90 == 0) {
                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))
                      goto LAB_0001a7fc;
                      if (uVar13 != pjVar25->ei_aess) {
                        iVar27 = 0;
                        pjVar26 = pjVar25;
                        do {
                          iVar27 = iVar27 + 1;
                          pjVar25 = pjVar26 + 1;
                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;
                          pjVar4 = pjVar26 + 1;
                          pjVar26 = pjVar25;
                        } while (uVar13 != pjVar4->ei_aess);
                      }
                    }
                    else if (uVar7 == 1) {
                      if ((tesp->num_j_rows <= (int)uVar13) ||
                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {
LAB_0001a7fc:
                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);
                        goto LAB_0001a67a;
                      }
                    }
                    else {
                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))
                      goto LAB_0001a7fc;
                      uVar3 = pjVar25->ei_eoe;
                      uVar14 = uVar7;
                      while (uVar3 != uVar13) {
                        uVar14 = uVar14 + 1;
                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;
                        uVar3 = pjVar25[1].ei_eoe;
                        pjVar25 = pjVar25 + 1;
                      }
                    }
                    if (pjVar25->elem_descp == (uint8_t *)0x0) {
                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);
                    }
                    else {
                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);
                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);
                      uVar18 = uVar18 << 8 | uVar18 >> 8;
                      if (uVar18 != 0) {
                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,
                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);
                        goto LAB_0001a67a;
                      }
                    }
                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);
                  }
                }
LAB_0001a67a:
                uVar21 = uVar21 + 1;
                putchar(10);
              } while (uVar8 != uVar21);
            }
          }
          else if ((etype - 0x14U < 2) || (etype == 7)) {
            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);
            if (uVar8 != 0) {
              local_98 = 0;
              uVar7 = local_90 & 0xfffffffd;
              puVar22 = ae_bp + local_74 + 0xc;
              do {
                uVar21 = local_98;
                __printf_chk(1,"%sphy index: %d\n",pad,local_98);
                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);
                pcVar11 = pad;
                __printf_chk(1,&DAT_0001f4bf,pad);
                pcVar16 = (char *)(uint)puVar22[-10];
                if (pcVar16 == (char *)0xff) {
                  __printf_chk(1,"no connector",pcVar11,uVar21);
                }
                else {
                  pjVar25 = tesp->j_base;
                  if (pjVar25 == (join_row_t *)0x0) {
                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);
                    pcVar11 = pcVar16;
                  }
                  else {
                    if (local_90 == 0) {
                      if ((int)pcVar16 < tesp->num_j_rows) {
                        iVar27 = 0;
                        do {
                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {
                            puVar23 = pjVar25->enc_statp;
                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;
                            break;
                          }
                          iVar27 = iVar27 + 1;
                          pjVar25 = pjVar25 + 1;
                        } while (iVar27 < tesp->num_j_rows);
                      }
                    }
                    else if (uVar7 == 1) {
                      if (((int)pcVar16 < tesp->num_j_rows) &&
                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {
LAB_0001a1bc:
                        puVar23 = pjVar25->enc_statp;
                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {
LAB_0001a344:
                          enc_status_helper("",puVar23,0x19,true,op);
                          pcVar11 = (char *)pjVar25->indiv_i;
                          __printf_chk(1," [%d]",pcVar11,uVar21);
                          goto LAB_0001a1e2;
                        }
                      }
                    }
                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {
                      pcVar11 = (char *)pjVar25->ei_eoe;
                      uVar12 = uVar7;
                      while (pcVar16 != pcVar11) {
                        uVar12 = uVar12 + 1;
                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;
                        pcVar11 = (char *)pjVar25[1].ei_eoe;
                        pjVar25 = pjVar25 + 1;
                      }
                      goto LAB_0001a1bc;
                    }
LAB_0001a1cd:
                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);
                    pcVar11 = pcVar16;
                  }
                }
LAB_0001a1e2:
                uVar21 = (uint)puVar22[-9];
                if (uVar21 != 0xff) {
                  __printf_chk(1,&DAT_0001f46d,pcVar11);
                  pjVar25 = tesp->j_base;
                  if (pjVar25 == (join_row_t *)0x0) {
                    __printf_chk(1,"other ei: %d",uVar21);
                  }
                  else {
                    if (local_90 == 0) {
                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))
                      goto LAB_0001a426;
                      if (uVar21 != pjVar25->ei_aess) {
                        iVar27 = 0;
                        pjVar26 = pjVar25;
                        do {
                          iVar27 = iVar27 + 1;
                          pjVar25 = pjVar26 + 1;
                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;
                          pjVar4 = pjVar26 + 1;
                          pjVar26 = pjVar25;
                        } while (uVar21 != pjVar4->ei_aess);
                      }
                    }
                    else if (uVar7 == 1) {
                      if ((tesp->num_j_rows <= (int)uVar21) ||
                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {
LAB_0001a426:
                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);
                        goto LAB_0001a2a0;
                      }
                    }
                    else {
                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))
                      goto LAB_0001a426;
                      uVar12 = pjVar25->ei_eoe;
                      uVar13 = uVar7;
                      while (uVar21 != uVar12) {
                        uVar13 = uVar13 + 1;
                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;
                        uVar12 = pjVar25[1].ei_eoe;
                        pjVar25 = pjVar25 + 1;
                      }
                    }
                    if (pjVar25->elem_descp == (uint8_t *)0x0) {
                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);
                    }
                    else {
                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);
                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);
                      uVar18 = uVar18 << 8 | uVar18 >> 8;
                      if (uVar18 != 0) {
                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,
                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);
                        goto LAB_0001a2a0;
                      }
                    }
                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);
                  }
                }
LAB_0001a2a0:
                puVar23 = puVar22 + -8;
                putchar(10);
                __printf_chk(1,"%s  SAS address: 0x",pad);
                do {
                  uVar1 = *puVar23;
                  puVar23 = puVar23 + 1;
                  __printf_chk(1,&DAT_0001f329,uVar1);
                } while (puVar22 != puVar23);
                puVar22 = puVar22 + 0xc;
                putchar(10);
                local_98 = local_98 + 1;
              } while (uVar8 != local_98);
            }
          }
          else {
            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);
          }
        }
        else {
          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);
        }
      }
      goto LAB_000196b0;
    }
    if (bVar17 == 0xb) {
      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);
      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);
      goto LAB_000196b0;
    }
    if (bVar17 == 0) {
      local_94 = 0xe;
      iVar27 = 0xb;
      local_98 = 6;
      local_9c = 2;
      local_a0 = 0;
LAB_00019709:
      __printf_chk(1,"%sTransport protocol: FCP\n",pad);
      if (iVar27 < len) {
        uVar7 = (uint)ae_bp[local_9c];
        uVar8 = uVar7;
        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);
        __printf_chk(1,"%snode_name: ",pad);
        puVar22 = ae_bp + local_98;
        do {
          uVar1 = *puVar22;
          puVar22 = puVar22 + 1;
          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);
        } while (ae_bp + local_98 + 8 != puVar22);
        if (local_a0 != 0) {
          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);
        }
        putchar(10);
        if (uVar7 != 0) {
          local_a0 = 0;
          puVar22 = ae_bp + local_94 + 0x10;
          do {
            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",
                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);
            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,
                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);
            puVar23 = puVar22 + -8;
            __printf_chk(1,"%s  n_port name: ",pad);
            do {
              uVar1 = *puVar23;
              puVar23 = puVar23 + 1;
              __printf_chk(1,&DAT_0001f329,uVar1);
            } while (puVar22 != puVar23);
            puVar22 = puVar22 + 0x10;
            putchar(10);
            local_a0 = local_a0 + 1;
          } while (uVar7 != local_a0);
        }
      }
      goto LAB_000196b0;
    }
LAB_00019672:
    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);
    __printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);
    iVar27 = op->verbose;
  }
  else {
    if (bVar17 == 6) {
      iVar27 = 5;
      goto LAB_000199cd;
    }
    if (bVar17 != 0xb) {
      if (bVar17 == 0) {
        local_94 = 0x10;
        iVar27 = 0xd;
        local_98 = 8;
        local_9c = 4;
        local_a0 = 2;
        goto LAB_00019709;
      }
      goto LAB_00019672;
    }
    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);
    if (len < 6) goto LAB_000196b0;
    if (ae_bp[5] >> 5 == 1) {
      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);
      uVar8 = (uint)ae_bp[4];
      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);
      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);
      pcVar11 = " (not reported)";
      if (*(short *)(ae_bp + 10) != -1) {
        pcVar11 = "";
      }
      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);
      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);
      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);
      if (uVar8 != 0) {
        uVar7 = 0;
        do {
          __printf_chk(1,"%sport index: %d\n",pad,uVar7);
          bVar17 = ae_bp[uVar7 * 8 + 0x48];
          local_a0._0_1_ = bVar17 & 2;
          local_a4 = bVar17 & 4;
          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,
                       (bVar17 & 2) != 0,bVar17 & 1);
          if ((bVar17 & 1) != 0) {
            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)
                        );
          }
          if ((byte)local_a0 != 0) {
            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,
                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,
                         ae_bp[uVar7 * 8 + 0x4d] & 7);
          }
          if (local_a4 != 0) {
            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,
                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);
          }
          uVar7 = uVar7 + 1;
        } while (uVar8 != uVar7);
      }
      goto LAB_000196b0;
    }
    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);
    iVar27 = op->verbose;
  }
  if (iVar27 != 0) {
    hex2stdout(ae_bp,len,0);
  }
LAB_000196b0:
  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



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

void __regparm3
FUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)

{
  uint *puVar1;
  char cVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  char *pcVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  char *pcVar12;
  uint uVar13;
  byte bVar14;
  ushort uVar15;
  char *pcVar16;
  char *pcVar17;
  uint uVar18;
  byte *pbVar19;
  uint uVar20;
  int iVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  int iVar24;
  int in_GS_OFFSET;
  bool bVar25;
  byte local_a4;
  uint local_a0;
  int local_9c;
  uint local_98;
  int local_94;
  uint local_90;
  int local_88;
  int local_84;
  int local_80;
  int local_7c;
  int local_74;
  undefined1 local_60 [64];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1960d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*(char *)(param_6 + 8) != '\0') {
    uVar5 = 0;
    do {
      if ((uVar5 & 0xf) == 0) {
        pcVar6 = "\n";
        if (uVar5 == 0) {
          pcVar6 = "";
        }
        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);
      }
      pbVar19 = param_2 + uVar5;
      uVar5 = uVar5 + 1;
      __printf_chk(1,"%02x ",*pbVar19);
    } while (param_3 != uVar5);
    putchar(10);
    goto LAB_000196b0;
  }
  bVar14 = *param_2 & 0xf;
  if ((*param_2 & 0x10) == 0) {
    if (bVar14 == 6) {
      iVar24 = 3;
LAB_000199cd:
      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);
      if (iVar24 < (int)param_3) {
        iVar24 = *(int *)(param_6 + 0x1c);
        bVar25 = (*param_2 & 0x10) != 0;
        if (bVar25) {
          local_74 = 8;
          iVar11 = 4;
          iVar21 = 5;
          local_7c = 0x10;
          local_90 = param_2[2] & 3;
          local_84 = 8;
          local_88 = 8;
          local_80 = 7;
        }
        else {
          local_74 = 6;
          iVar11 = 2;
          iVar21 = 3;
          local_7c = 0xe;
          local_84 = 6;
          local_88 = 4;
          local_80 = 5;
          local_90 = 0;
        }
        bVar14 = param_2[iVar21] >> 6;
        if (1 < *(int *)(param_6 + 0x50)) {
          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);
        }
        if (bVar14 == 0) {
          uVar5 = (uint)param_2[iVar11];
          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)
          ;
          if (bVar25) {
            __printf_chk(1,", device slot number: %d",param_2[local_80]);
          }
          putchar(10);
          if (uVar5 != 0) {
            local_a0 = 0;
            param_2 = param_2 + local_88 + 0xc;
            pcVar6 = "";
            do {
              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);
              __printf_chk(1,"%s  SAS device type: %s\n",param_1,
                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);
              bVar14 = param_2[-10];
              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {
                pcVar12 = " SMP";
                if ((bVar14 & 2) == 0) {
                  pcVar12 = pcVar6;
                }
                pcVar17 = " STP";
                if ((bVar14 & 4) == 0) {
                  pcVar17 = pcVar6;
                }
                pcVar8 = " SSP";
                if ((bVar14 & 8) == 0) {
                  pcVar8 = pcVar6;
                }
                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);
                if (iVar24 != 0) goto LAB_00019e40;
                bVar14 = param_2[-9];
LAB_00019e48:
                pcVar12 = pcVar6;
                if ((bVar14 & 1) != 0) {
                  pcVar12 = " SATA_device";
                }
                pcVar17 = " SMP";
                if ((bVar14 & 2) == 0) {
                  pcVar17 = pcVar6;
                }
                pcVar8 = " STP";
                if ((bVar14 & 4) == 0) {
                  pcVar8 = pcVar6;
                }
                pcVar16 = " SSP";
                if ((bVar14 & 8) == 0) {
                  pcVar16 = pcVar6;
                }
                pcVar7 = " SATA_port_selector";
                if (-1 < (char)bVar14) {
                  pcVar7 = pcVar6;
                }
                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,
                             pcVar17,pcVar12);
              }
              else {
LAB_00019e40:
                bVar14 = param_2[-9];
                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;
              }
              pbVar19 = param_2 + -8;
              bVar14 = sg_all_zeros(pbVar19,8);
              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {
                __printf_chk(1,"%s  attached SAS address: 0x",param_1);
                if ((bVar14 ^ 1) == 0) {
                  putchar(0x30);
                  bVar14 = sg_all_zeros(param_2,8);
                  bVar14 = bVar14 ^ 1;
LAB_00019fce:
                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);
                  if (bVar14 != 0) goto LAB_0001a030;
                  putchar(0x30);
                }
                else {
                  do {
                    bVar14 = *pbVar19;
                    pbVar19 = pbVar19 + 1;
                    __printf_chk(1,&DAT_0001f329,bVar14);
                  } while (param_2 != pbVar19);
                  bVar14 = sg_all_zeros(param_2,8);
                  bVar14 = bVar14 ^ 1;
                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;
                }
LAB_00019ff9:
                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);
              }
              else {
                cVar2 = sg_all_zeros(param_2,8);
                if (cVar2 == '\0') {
                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);
LAB_0001a030:
                  pbVar19 = param_2;
                  do {
                    bVar14 = *pbVar19;
                    pbVar19 = pbVar19 + 1;
                    __printf_chk(1,&DAT_0001f329,bVar14);
                  } while (param_2 + 8 != pbVar19);
                  goto LAB_00019ff9;
                }
              }
              local_a0 = local_a0 + 1;
              param_2 = param_2 + 0x1c;
            } while (uVar5 != local_a0);
          }
        }
        else if (bVar14 == 1) {
          uVar5 = (uint)param_2[iVar11];
          if (param_4 == 0x18) {
            uVar4 = uVar5;
            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);
            __printf_chk(1,"%sSAS address: 0x",param_1);
            pbVar19 = param_2 + local_84;
            do {
              bVar14 = *pbVar19;
              pbVar19 = pbVar19 + 1;
              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);
            } while (param_2 + local_84 + 8 != pbVar19);
            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);
            if (uVar5 != 0) {
              uVar20 = 0;
              uVar4 = local_90 & 0xfffffffd;
              do {
                uVar18 = param_1;
                uVar13 = uVar20;
                __printf_chk(1,"%s  [%d] ",param_1,uVar20);
                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];
                if (uVar9 == 0xff) {
                  __printf_chk(1,"no connector",uVar18,uVar13);
                }
                else {
                  iVar24 = *(int *)(param_5 + 8);
                  if (iVar24 == 0) {
                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);
                    uVar18 = uVar9;
                  }
                  else {
                    if (local_90 == 0) {
                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {
                        iVar11 = 0;
                        do {
                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))
                          {
                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;
                            break;
                          }
                          iVar11 = iVar11 + 1;
                          iVar24 = iVar24 + 0x30;
                        } while (iVar11 < *(int *)(param_5 + 0xc));
                      }
                    }
                    else if (uVar4 == 1) {
                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&
                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {
LAB_0001a59d:
                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {
LAB_0001a70c:
                          FUN_00017c20(1,param_6);
                          uVar18 = *(uint *)(iVar24 + 4);
                          __printf_chk(1," [%d]",uVar18,uVar13);
                          goto LAB_0001a5c3;
                        }
                      }
                    }
                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&
                            (0 < (int)*(uint *)(param_5 + 0xc))) {
                      uVar18 = *(uint *)(iVar24 + 0xc);
                      uVar10 = uVar4;
                      while (uVar9 != uVar18) {
                        uVar10 = uVar10 + 1;
                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;
                        uVar18 = *(uint *)(iVar24 + 0x3c);
                        iVar24 = iVar24 + 0x30;
                      }
                      goto LAB_0001a59d;
                    }
LAB_0001a5ae:
                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);
                    uVar18 = uVar9;
                  }
                }
LAB_0001a5c3:
                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];
                if (uVar9 != 0xff) {
                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);
                  puVar22 = *(undefined4 **)(param_5 + 8);
                  if (puVar22 == (undefined4 *)0x0) {
                    __printf_chk(1,"other ei: %d",uVar9,uVar13);
                  }
                  else {
                    if (local_90 == 0) {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))
                      goto LAB_0001a7fc;
                      if (uVar9 != puVar22[4]) {
                        iVar24 = 0;
                        puVar23 = puVar22;
                        do {
                          iVar24 = iVar24 + 1;
                          puVar22 = puVar23 + 0xc;
                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;
                          puVar1 = puVar23 + 0x10;
                          puVar23 = puVar22;
                        } while (uVar9 != *puVar1);
                      }
                    }
                    else if (uVar4 == 1) {
                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||
                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {
LAB_0001a7fc:
                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);
                        goto LAB_0001a67a;
                      }
                    }
                    else {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||
                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;
                      uVar18 = puVar22[3];
                      uVar10 = uVar4;
                      while (uVar18 != uVar9) {
                        uVar10 = uVar10 + 1;
                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;
                        uVar18 = puVar22[0xf];
                        puVar22 = puVar22 + 0xc;
                      }
                    }
                    if (puVar22[5] == 0) {
                      uVar3 = FUN_000169f0();
                    }
                    else {
                      uVar3 = FUN_000169f0();
                      uVar15 = *(ushort *)(puVar22[5] + 2);
                      uVar15 = uVar15 << 8 | uVar15 >> 8;
                      if (uVar15 != 0) {
                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,
                                     puVar22[1],uVar3);
                        goto LAB_0001a67a;
                      }
                    }
                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);
                  }
                }
LAB_0001a67a:
                uVar20 = uVar20 + 1;
                putchar(10);
              } while (uVar5 != uVar20);
            }
          }
          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {
            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);
            if (uVar5 != 0) {
              local_98 = 0;
              uVar4 = local_90 & 0xfffffffd;
              param_2 = param_2 + local_74 + 0xc;
              do {
                uVar18 = local_98;
                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);
                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);
                uVar20 = param_1;
                __printf_chk(1,&DAT_0001f4bf,param_1);
                uVar13 = (uint)param_2[-10];
                if (uVar13 == 0xff) {
                  __printf_chk(1,"no connector",uVar20,uVar18);
                }
                else {
                  iVar24 = *(int *)(param_5 + 8);
                  if (iVar24 == 0) {
                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);
                    uVar20 = uVar13;
                  }
                  else {
                    if (local_90 == 0) {
                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {
                        iVar11 = 0;
                        do {
                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))
                             ) {
                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;
                            break;
                          }
                          iVar11 = iVar11 + 1;
                          iVar24 = iVar24 + 0x30;
                        } while (iVar11 < *(int *)(param_5 + 0xc));
                      }
                    }
                    else if (uVar4 == 1) {
                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&
                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {
LAB_0001a1bc:
                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {
LAB_0001a344:
                          FUN_00017c20(1,param_6);
                          uVar20 = *(uint *)(iVar24 + 4);
                          __printf_chk(1," [%d]",uVar20,uVar18);
                          goto LAB_0001a1e2;
                        }
                      }
                    }
                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&
                            (0 < (int)*(uint *)(param_5 + 0xc))) {
                      uVar20 = *(uint *)(iVar24 + 0xc);
                      uVar9 = uVar4;
                      while (uVar13 != uVar20) {
                        uVar9 = uVar9 + 1;
                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;
                        uVar20 = *(uint *)(iVar24 + 0x3c);
                        iVar24 = iVar24 + 0x30;
                      }
                      goto LAB_0001a1bc;
                    }
LAB_0001a1cd:
                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);
                    uVar20 = uVar13;
                  }
                }
LAB_0001a1e2:
                uVar18 = (uint)param_2[-9];
                if (uVar18 != 0xff) {
                  __printf_chk(1,&DAT_0001f46d,uVar20);
                  puVar22 = *(undefined4 **)(param_5 + 8);
                  if (puVar22 == (undefined4 *)0x0) {
                    __printf_chk(1,"other ei: %d",uVar18);
                  }
                  else {
                    if (local_90 == 0) {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)
                         ) goto LAB_0001a426;
                      if (uVar18 != puVar22[4]) {
                        iVar24 = 0;
                        puVar23 = puVar22;
                        do {
                          iVar24 = iVar24 + 1;
                          puVar22 = puVar23 + 0xc;
                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;
                          puVar1 = puVar23 + 0x10;
                          puVar23 = puVar22;
                        } while (uVar18 != *puVar1);
                      }
                    }
                    else if (uVar4 == 1) {
                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||
                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {
LAB_0001a426:
                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);
                        goto LAB_0001a2a0;
                      }
                    }
                    else {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||
                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;
                      uVar20 = puVar22[3];
                      uVar13 = uVar4;
                      while (uVar18 != uVar20) {
                        uVar13 = uVar13 + 1;
                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;
                        uVar20 = puVar22[0xf];
                        puVar22 = puVar22 + 0xc;
                      }
                    }
                    if (puVar22[5] == 0) {
                      uVar3 = FUN_000169f0();
                    }
                    else {
                      uVar3 = FUN_000169f0();
                      uVar15 = *(ushort *)(puVar22[5] + 2);
                      uVar15 = uVar15 << 8 | uVar15 >> 8;
                      if (uVar15 != 0) {
                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,
                                     puVar22[1],uVar3);
                        goto LAB_0001a2a0;
                      }
                    }
                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);
                  }
                }
LAB_0001a2a0:
                pbVar19 = param_2 + -8;
                putchar(10);
                __printf_chk(1,"%s  SAS address: 0x",param_1);
                do {
                  bVar14 = *pbVar19;
                  pbVar19 = pbVar19 + 1;
                  __printf_chk(1,&DAT_0001f329,bVar14);
                } while (param_2 != pbVar19);
                param_2 = param_2 + 0xc;
                putchar(10);
                local_98 = local_98 + 1;
              } while (uVar5 != local_98);
            }
          }
          else {
            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);
          }
        }
        else {
          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);
        }
      }
      goto LAB_000196b0;
    }
    if (bVar14 == 0xb) {
      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);
      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);
      goto LAB_000196b0;
    }
    if (bVar14 == 0) {
      local_94 = 0xe;
      iVar24 = 0xb;
      local_98 = 6;
      local_9c = 2;
      local_a0 = 0;
LAB_00019709:
      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);
      if (iVar24 < (int)param_3) {
        uVar4 = (uint)param_2[local_9c];
        uVar5 = uVar4;
        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);
        __printf_chk(1,"%snode_name: ",param_1);
        pbVar19 = param_2 + local_98;
        do {
          bVar14 = *pbVar19;
          pbVar19 = pbVar19 + 1;
          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);
        } while (param_2 + local_98 + 8 != pbVar19);
        if (local_a0 != 0) {
          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);
        }
        putchar(10);
        if (uVar4 != 0) {
          local_a0 = 0;
          param_2 = param_2 + local_94 + 0x10;
          do {
            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",
                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);
            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1
                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);
            pbVar19 = param_2 + -8;
            __printf_chk(1,"%s  n_port name: ",param_1);
            do {
              bVar14 = *pbVar19;
              pbVar19 = pbVar19 + 1;
              __printf_chk(1,&DAT_0001f329,bVar14);
            } while (param_2 != pbVar19);
            param_2 = param_2 + 0x10;
            putchar(10);
            local_a0 = local_a0 + 1;
          } while (uVar4 != local_a0);
        }
      }
      goto LAB_000196b0;
    }
LAB_00019672:
    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);
    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);
    iVar24 = *(int *)(param_6 + 0x50);
  }
  else {
    if (bVar14 == 6) {
      iVar24 = 5;
      goto LAB_000199cd;
    }
    if (bVar14 != 0xb) {
      if (bVar14 == 0) {
        local_94 = 0x10;
        iVar24 = 0xd;
        local_98 = 8;
        local_9c = 4;
        local_a0 = 2;
        goto LAB_00019709;
      }
      goto LAB_00019672;
    }
    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);
    if ((int)param_3 < 6) goto LAB_000196b0;
    if (param_2[5] >> 5 == 1) {
      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);
      uVar5 = (uint)param_2[4];
      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);
      __printf_chk(1,", device slot number: %d\n",param_2[7]);
      pcVar6 = " (not reported)";
      if (*(short *)(param_2 + 10) != -1) {
        pcVar6 = "";
      }
      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);
      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);
      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);
      if (uVar5 != 0) {
        uVar4 = 0;
        do {
          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);
          bVar14 = param_2[uVar4 * 8 + 0x48];
          local_a0._0_1_ = bVar14 & 2;
          local_a4 = bVar14 & 4;
          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,
                       (bVar14 & 2) != 0,bVar14 & 1);
          if ((bVar14 & 1) != 0) {
            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,
                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));
          }
          if ((byte)local_a0 != 0) {
            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",
                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,
                         param_2[uVar4 * 8 + 0x4d] & 7);
          }
          if (local_a4 != 0) {
            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,
                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);
          }
          uVar4 = uVar4 + 1;
        } while (uVar5 != uVar4);
      }
      goto LAB_000196b0;
    }
    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,
                 param_2[5] >> 5);
    iVar24 = *(int *)(param_6 + 0x50);
  }
  if (iVar24 != 0) {
    hex2stdout(param_2,param_3,0);
  }
LAB_000196b0:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0001eef0();
}


PUSH EBP
MOV EBP,EDX
PUSH EDI
PUSH ESI
MOV ESI,ECX
PUSH EBX
CALL 0x00015a70
ADD EBX,0x118b3
SUB ESP,0x9c
MOV dword ptr [ESP + 0x8],EAX
MOV EAX,dword ptr [ESP + 0xb4]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [ESP + 0xb8]
MOV dword ptr [ESP + 0xc],EAX
MOV ECX,dword ptr GS:[0x14]
MOV dword ptr [ESP + 0x8c],ECX
XOR ECX,ECX
CMP byte ptr [EAX + 0x8],0x0
JNZ 0x00019898
MOVZX EDX,byte ptr [EDX]
MOV EAX,EDX
AND EAX,0xf
AND EDX,0x10
JNZ 0x000196d0
CMP AL,0x6
JZ 0x000199c8
CMP AL,0xb
JZ 0x00019b00
TEST AL,AL
JZ 0x00019998
SUB ESP,0x4
MOVZX EAX,AL
LEA EDX,[ESP + 0x50]
PUSH EDX
PUSH 0x40
PUSH EAX
CALL 0x00012370
PUSH EAX
LEA EAX,[EBX + 0xffff8208]
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x50]
TEST EAX,EAX
JNZ 0x00019980
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x8c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0001a85e
ADD ESP,0x9c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP AL,0x6
JZ 0x00019af0
CMP AL,0xb
JZ 0x00019920
TEST AL,AL
JNZ 0x00019672
MOV dword ptr [ESP + 0x18],0x10
MOV EDI,0xd
MOV dword ptr [ESP + 0x14],0x8
MOV dword ptr [ESP + 0x10],0x4
MOV dword ptr [ESP + 0xc],0x2
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4429]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,EDI
JLE 0x000196b0
MOV EAX,dword ptr [ESP + 0x10]
LEA EDI,[EBX + 0xffff4469]
MOVZX EAX,byte ptr [EBP + EAX*0x1]
MOV dword ptr [ESP + 0x10],EAX
PUSH EAX
MOV ESI,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0xffff4444]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0xc
LEA EAX,[EBX + 0xffff445b]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
LEA ESI,[EBP + EAX*0x1]
LEA EAX,[EBP + EAX*0x1 + 0x8]
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,ESI
MOV ESI,EAX
LEA ESI,[ESI]
MOVZX EAX,byte ptr [EBP]
SUB ESP,0x4
ADD EBP,0x1
PUSH EAX
PUSH EDI
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,EBP
JNZ 0x00019778
MOV EAX,dword ptr [ESP + 0xc]
MOV EBP,dword ptr [ESP + 0x14]
TEST EAX,EAX
JNZ 0x00019cf5
SUB ESP,0xc
PUSH 0xa
CALL 0x00012290
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x10]
TEST EAX,EAX
JZ 0x000196b0
MOV EAX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0xc],0x0
LEA ESI,[EBP + EAX*0x1 + 0x10]
LEA EAX,[EBX + 0xffff7f90]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0xffff7fd8]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffff4487]
MOV dword ptr [ESP + 0x1c],EAX
LEA ESI,[ESI]
MOVZX EAX,byte ptr [ESI + -0xf]
SUB ESP,0x8
PUSH EAX
MOVZX EAX,byte ptr [ESI + -0x10]
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
MOV EBP,dword ptr [ESP + 0x1c]
PUSH EBP
PUSH dword ptr [ESP + 0x2c]
PUSH 0x1
CALL 0x00012310
MOVZX EAX,byte ptr [ESI + -0x9]
ADD ESP,0x1c
PUSH EAX
MOVZX EAX,byte ptr [ESI + -0xa]
PUSH EAX
MOVZX EAX,byte ptr [ESI + -0xb]
PUSH EAX
MOVZX EAX,byte ptr [ESI + -0xc]
PUSH EAX
PUSH EBP
PUSH dword ptr [ESP + 0x30]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x1c
PUSH EBP
LEA EBP,[ESI + -0x8]
PUSH dword ptr [ESP + 0x24]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
LEA ESI,[ESI]
MOVZX EAX,byte ptr [EBP]
SUB ESP,0x4
ADD EBP,0x1
PUSH EAX
PUSH EDI
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,EBP
JNZ 0x00019850
SUB ESP,0xc
ADD ESI,0x10
PUSH 0xa
CALL 0x00012290
ADD dword ptr [ESP + 0x1c],0x1
MOV EAX,dword ptr [ESP + 0x1c]
ADD ESP,0x10
CMP dword ptr [ESP + 0x10],EAX
JNZ 0x000197f0
JMP 0x000196b0
LEA EAX,[EBX + 0xffff4423]
XOR EDI,EDI
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[EBX + 0xffff4b7a]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xffff4ae5]
MOV dword ptr [ESP + 0x14],EAX
LEA ESI,[ESI]
NOP
TEST EDI,0xf
JNZ 0x000198e9
MOV EAX,dword ptr [ESP + 0x10]
TEST EDI,EDI
CMOVZ EAX,dword ptr [ESP + 0x14]
PUSH dword ptr [ESP + 0x8]
PUSH EAX
LEA EAX,[EBX + 0xffff41c6]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
MOVZX EAX,byte ptr [EBP + EDI*0x1]
SUB ESP,0x4
ADD EDI,0x1
PUSH EAX
PUSH dword ptr [ESP + 0x14]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,EDI
JNZ 0x000198c0
SUB ESP,0xc
PUSH 0xa
CALL 0x00012290
ADD ESP,0x10
JMP 0x000196b0
SUB ESP,0x4
LEA EAX,[EBX + 0xffff46ae]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,0x5
JLE 0x000196b0
MOVZX EAX,byte ptr [EBP + 0x5]
SHR AL,0x5
CMP AL,0x1
JZ 0x00019b7a
MOVZX EAX,AL
PUSH EAX
LEA EAX,[EBX + 0xffff8138]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x50]
TEST EAX,EAX
JZ 0x000196b0
LEA ESI,[ESI]
NOP
SUB ESP,0x4
PUSH 0x0
PUSH ESI
PUSH EBP
CALL 0x00012190
ADD ESP,0x10
JMP 0x000196b0
MOV dword ptr [ESP + 0x18],0xe
MOV EDI,0xb
MOV dword ptr [ESP + 0x14],0x6
MOV dword ptr [ESP + 0x10],0x2
MOV dword ptr [ESP + 0xc],0x0
JMP 0x00019709
MOV EDI,0x3
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4499]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,EDI
JLE 0x000196b0
MOV EAX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [EAX + 0x1c]
MOV dword ptr [ESP + 0x14],EAX
TEST byte ptr [EBP],0x10
JNZ 0x00019b30
MOV dword ptr [ESP + 0x38],0x6
MOV ECX,0x2
MOV ESI,0x3
MOV dword ptr [ESP + 0x30],0xe
MOV dword ptr [ESP + 0x28],0x6
MOV dword ptr [ESP + 0x24],0x4
MOV dword ptr [ESP + 0x2c],0x5
MOV dword ptr [ESP + 0x1c],0x0
MOV dword ptr [ESP + 0x18],0x0
ADD ESI,EBP
MOV EAX,dword ptr [ESP + 0xc]
MOVZX EDX,byte ptr [ESI]
SHR DL,0x6
CMP dword ptr [EAX + 0x50],0x1
MOVZX EDI,DL
JLE 0x00019a80
LEA EAX,[EBX + 0xffff44b4]
MOV dword ptr [ESP + 0x34],ECX
MOV byte ptr [ESP + 0x20],DL
PUSH EDI
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x34]
MOVZX EDX,byte ptr [ESP + 0x20]
TEST DL,DL
JZ 0x00019d92
CMP DL,0x1
JNZ 0x00019d77
MOVZX EAX,byte ptr [EBP + ECX*0x1]
CMP dword ptr [ESP + 0xb0],0x18
MOV dword ptr [ESP + 0x20],EAX
JZ 0x0001a4c2
MOV EAX,dword ptr [ESP + 0xb0]
SUB EAX,0x14
CMP EAX,0x1
JBE 0x0001a0b8
CMP dword ptr [ESP + 0xb0],0x7
JZ 0x0001a0b8
LEA EAX,[EBX + 0xffff80b0]
PUSH dword ptr [ESP + 0xb0]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x000196b0
MOV EDI,0x5
JMP 0x000199cd
SUB ESP,0x4
LEA EAX,[EBX + 0xffff46ae]
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0xc
LEA EAX,[EBX + 0xffff8230]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x000196b0
MOVZX EAX,byte ptr [EBP + 0x2]
MOV dword ptr [ESP + 0x38],0x8
MOV ECX,0x4
MOV ESI,0x5
MOV dword ptr [ESP + 0x30],0x10
AND EAX,0x3
MOV dword ptr [ESP + 0x28],0x8
MOV dword ptr [ESP + 0x1c],EAX
MOV dword ptr [ESP + 0x24],0x8
MOV dword ptr [ESP + 0x2c],0x7
MOV dword ptr [ESP + 0x18],0x2
JMP 0x00019a44
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4604]
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOVZX EAX,byte ptr [EBP + 0x5]
MOVZX EDI,byte ptr [EBP + 0x4]
AND EAX,0x1
MOV dword ptr [ESP + 0x24],EDI
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xffff810c]
PUSH EDI
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOVZX EAX,byte ptr [EBP + 0x7]
ADD ESP,0x1c
PUSH EAX
LEA EAX,[EBX + 0xffff4620]
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOVZX EDX,word ptr [EBP + 0xa]
LEA ECX,[EBX + 0xffff4ae5]
LEA EAX,[EBX + 0xffff4413]
CMP DX,-0x1
CMOVNZ EAX,ECX
MOV dword ptr [ESP],EAX
LEA EAX,[EBX + 0xffff463a]
PUSH EDX
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
LEA EAX,[EBP + 0xc]
PUSH EAX
LEA EAX,[EBX + 0xffff4654]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
LEA EAX,[EBP + 0x20]
PUSH EAX
LEA EAX,[EBX + 0xffff466c]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
TEST EDI,EDI
JZ 0x000196b0
LEA EAX,[EBX + 0xffff4683]
XOR ESI,ESI
MOV EDI,dword ptr [ESP + 0x8]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffff8174]
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[EBX + 0xffff4695]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xffff81a4]
MOV dword ptr [ESP + 0x24],EAX
JMP 0x00019c83
CMP byte ptr [ESP + 0xc],0x0
JNZ 0x00019d48
CMP byte ptr [ESP + 0x8],0x0
JNZ 0x00019d20
ADD ESI,0x1
CMP dword ptr [ESP + 0x14],ESI
JZ 0x000196b0
PUSH ESI
PUSH EDI
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
CALL 0x00012310
MOVZX EAX,byte ptr [EBP + ESI*0x8 + 0x48]
ADD ESP,0x8
MOV EDX,EAX
AND EDX,0x1
MOVZX ECX,DL
MOV byte ptr [ESP + 0x18],DL
PUSH ECX
MOV ECX,EAX
AND ECX,0x2
MOV byte ptr [ESP + 0x18],CL
SETNZ CL
AND EAX,0x4
MOVZX ECX,CL
PUSH ECX
MOV byte ptr [ESP + 0x18],AL
SETNZ AL
MOVZX EAX,AL
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x34]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
MOVZX EDX,byte ptr [ESP + 0x10]
TEST DL,DL
JZ 0x00019c60
MOVZX EAX,word ptr [EBP + ESI*0x8 + 0x49]
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x28]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x00019c60
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x10]
MOVZX EAX,byte ptr [EBP + EAX*0x1 + 0x5]
PUSH EAX
LEA EAX,[EBX + 0xffff446e]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x000197a2
MOVZX EAX,word ptr [EBP + ESI*0x8 + 0x4e]
AND EAX,0x1fff
PUSH EAX
LEA EAX,[EBX + 0xffff81e8]
PUSH EDI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x00019c76
MOVZX EAX,byte ptr [EBP + ESI*0x8 + 0x4d]
SUB ESP,0x8
MOV EDX,EAX
SHR AL,0x3
AND EDX,0x7
MOVZX EAX,AL
PUSH EDX
PUSH EAX
MOVZX EAX,byte ptr [EBP + ESI*0x8 + 0x4c]
PUSH EAX
PUSH EDI
PUSH dword ptr [ESP + 0x3c]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
JMP 0x00019c6b
LEA EAX,[EBX + 0xffff80e4]
PUSH EDI
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x000196b0
MOVZX ECX,byte ptr [EBP + ECX*0x1]
MOVZX EAX,byte ptr [ESI]
SUB ESP,0xc
MOV dword ptr [ESP + 0x2c],ECX
AND EAX,0x1
PUSH EAX
LEA EAX,[EBX + 0xffff8018]
PUSH ECX
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
MOV EAX,dword ptr [ESP + 0x18]
TEST EAX,EAX
JNZ 0x0001a485
SUB ESP,0xc
PUSH 0xa
CALL 0x00012290
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x000196b0
MOV EAX,dword ptr [ESP + 0x24]
MOV EDI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0xc],0x0
LEA EBP,[EBP + EAX*0x1 + 0xc]
LEA EAX,[EBX + 0xffff44cb]
TEST EDI,EDI
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfffffe80]
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xffff44dc]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xffff4ae5]
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xffff43f2]
SETZ byte ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x00019ef4
TEST AL,0xe
JNZ 0x00019f38
MOVZX EAX,byte ptr [EBP + -0x9]
TEST AL,0x8f
JZ 0x00019e9f
MOV EDX,dword ptr [ESP + 0x10]
TEST AL,0x1
LEA ESI,[EBX + 0xffff43e3]
LEA ECX,[EBX + 0xffff43e8]
MOV EDI,EDX
CMOVNZ EDI,dword ptr [ESP + 0x2c]
TEST AL,0x2
CMOVZ ESI,EDX
TEST AL,0x4
CMOVZ ECX,EDX
LEA EDX,[EBX + 0xffff43ed]
TEST AL,0x8
CMOVZ EDX,dword ptr [ESP + 0x10]
TEST AL,AL
LEA EAX,[EBX + 0xffff43ff]
CMOVNS EAX,dword ptr [ESP + 0x10]
PUSH EDI
PUSH ESI
PUSH ECX
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffff8060]
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
SUB ESP,0x8
LEA EDI,[EBP + -0x8]
PUSH 0x8
PUSH EDI
CALL 0x00012400
ADD ESP,0x10
XOR EAX,0x1
CMP byte ptr [ESP + 0x1c],0x0
MOV ESI,EAX
JNZ 0x00019f90
TEST AL,AL
JNZ 0x00019f90
SUB ESP,0x8
PUSH 0x8
PUSH EBP
CALL 0x00012400
ADD ESP,0x10
TEST AL,AL
JZ 0x0001a018
ADD dword ptr [ESP + 0xc],0x1
ADD EBP,0x1c
MOV EAX,dword ptr [ESP + 0xc]
CMP dword ptr [ESP + 0x20],EAX
JZ 0x000196b0
PUSH dword ptr [ESP + 0xc]
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
CALL 0x00012310
MOVZX EAX,byte ptr [EBP + -0xc]
MOV ECX,dword ptr [ESP + 0x38]
SHR AL,0x4
AND EAX,0x7
PUSH dword ptr [ECX + EAX*0x4]
PUSH ESI
PUSH dword ptr [ESP + 0x3c]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
MOV ESI,dword ptr [ESP + 0x14]
MOVZX EAX,byte ptr [EBP + -0xa]
TEST ESI,ESI
JNZ 0x00019e38
MOV ESI,dword ptr [ESP + 0x10]
TEST AL,0x2
LEA ECX,[EBX + 0xffff43e3]
LEA EDX,[EBX + 0xffff43e8]
CMOVZ ECX,ESI
TEST AL,0x4
CMOVZ EDX,ESI
TEST AL,0x8
LEA EAX,[EBX + 0xffff43ed]
CMOVZ EAX,ESI
SUB ESP,0x8
PUSH ECX
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffff8040]
PUSH dword ptr [ESP + 0x1c]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
MOV ECX,dword ptr [ESP + 0x14]
TEST ECX,ECX
JNZ 0x00019e40
MOVZX EAX,byte ptr [EBP + -0x9]
JMP 0x00019e48
SUB ESP,0x4
LEA EAX,[EBX + 0xffff44f5]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOV EAX,ESI
ADD ESP,0x10
TEST AL,AL
JNZ 0x0001a060
SUB ESP,0xc
PUSH 0x30
CALL 0x00012290
POP EAX
POP EDX
PUSH 0x8
PUSH EBP
CALL 0x00012400
ADD ESP,0x10
XOR EAX,0x1
MOV ESI,EAX
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4512]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOV EAX,ESI
ADD ESP,0x10
TEST AL,AL
JNZ 0x0001a030
SUB ESP,0xc
PUSH 0x30
CALL 0x00012290
ADD ESP,0x10
MOVZX EAX,byte ptr [EBP + 0x8]
PUSH EAX
LEA EAX,[EBX + 0xffff4527]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x00019ede
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4512]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
MOV dword ptr [ESP + 0x30],EBP
LEA EAX,[EBP + 0x8]
LEA ESI,[EBX + 0xffff4469]
MOV EDI,EAX
NOP
MOVZX EAX,byte ptr [EBP]
SUB ESP,0x4
ADD EBP,0x1
PUSH EAX
PUSH ESI
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP EDI,EBP
JNZ 0x0001a040
MOV EBP,dword ptr [ESP + 0x30]
JMP 0x00019ff9
LEA ESI,[EBX + 0xffff4469]
LEA ESI,[ESI]
LEA ESI,[ESI]
MOVZX EAX,byte ptr [EDI]
SUB ESP,0x4
ADD EDI,0x1
PUSH EAX
PUSH ESI
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP EBP,EDI
JNZ 0x0001a070
SUB ESP,0x8
PUSH 0x8
PUSH EBP
CALL 0x00012400
ADD ESP,0x10
XOR EAX,0x1
CMP byte ptr [ESP + 0x1c],0x0
MOV ESI,EAX
JNZ 0x00019fce
TEST AL,AL
JZ 0x00019ff9
JMP 0x00019fce
MOV ESI,dword ptr [ESP + 0x20]
LEA EAX,[EBX + 0xffff4542]
PUSH ESI
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
TEST ESI,ESI
JZ 0x000196b0
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP + 0x14],0x0
LEA EDI,[EBX + 0xffff4469]
AND EAX,0xfffffffd
MOV dword ptr [ESP + 0x34],EAX
MOV EAX,dword ptr [ESP + 0x38]
LEA EBP,[EBP + EAX*0x1 + 0xc]
LEA EAX,[EBX + 0xffff44cb]
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffff45ed]
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xffff45ff]
MOV dword ptr [ESP + 0x2c],EAX
LEA EAX,[EBX + 0xffff4513]
MOV dword ptr [ESP + 0x30],EAX
LEA EAX,[EBX + 0xffff459c]
MOV dword ptr [ESP + 0x38],EAX
LEA EAX,[EBX + 0xffff4ae5]
MOV dword ptr [ESP + 0x3c],EAX
LEA ESI,[ESI]
NOP
PUSH dword ptr [ESP + 0x14]
MOV ESI,dword ptr [ESP + 0xc]
PUSH ESI
PUSH dword ptr [ESP + 0x20]
PUSH 0x1
CALL 0x00012310
MOVZX EAX,byte ptr [EBP + -0xc]
PUSH EAX
PUSH ESI
PUSH dword ptr [ESP + 0x40]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x1c
PUSH ESI
PUSH dword ptr [ESP + 0x34]
PUSH 0x1
CALL 0x00012310
MOVZX ECX,byte ptr [EBP + -0xa]
ADD ESP,0x10
CMP ECX,0xff
JZ 0x0001a377
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x0001a440
MOV EDX,dword ptr [ESP + 0x1c]
TEST EDX,EDX
JZ 0x0001a309
CMP dword ptr [ESP + 0x34],0x1
JNZ 0x0001a3b4
CMP ECX,dword ptr [EAX + 0xc]
JGE 0x0001a1cd
LEA EAX,[ECX + ECX*0x2]
SHL EAX,0x4
ADD ESI,EAX
JZ 0x0001a1cd
MOV EDX,dword ptr [ESI + 0x18]
TEST EDX,EDX
JZ 0x0001a1cd
CMP byte ptr [ESI + 0x8],0x19
JZ 0x0001a344
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4581]
PUSH ECX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
MOVZX EDX,byte ptr [EBP + -0x9]
CMP EDX,0xff
MOV dword ptr [ESP + 0x24],EDX
JZ 0x0001a2a0
SUB ESP,0x8
LEA EAX,[EBX + 0xffff45ad]
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOV EAX,dword ptr [ESP + 0x20]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x24]
MOV ESI,dword ptr [EAX + 0x8]
TEST ESI,ESI
JZ 0x0001a4a8
MOV ECX,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x10]
TEST ECX,ECX
JZ 0x0001a457
CMP dword ptr [ESP + 0x34],0x1
JNZ 0x0001a3f8
CMP EDX,dword ptr [EAX + 0xc]
JGE 0x0001a426
LEA EAX,[EDX + EDX*0x2]
SHL EAX,0x4
ADD ESI,EAX
JZ 0x0001a426
MOV ECX,dword ptr [ESI + 0x14]
MOVZX EAX,byte ptr [ESI + 0x8]
LEA EDX,[ESP + 0x4c]
TEST ECX,ECX
JZ 0x0001a390
CALL 0x000169f0
MOV ECX,dword ptr [ESI + 0x14]
MOVZX EDX,word ptr [ECX + 0x2]
ROL DX,0x8
MOVZX EDX,DX
TEST EDX,EDX
JZ 0x0001a395
SUB ESP,0x4
ADD ECX,0x4
PUSH EAX
LEA EAX,[EBX + 0xffff45c9]
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESI]
PUSH ECX
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
LEA ESI,[ESI]
SUB ESP,0xc
LEA ESI,[EBP + -0x8]
PUSH 0xa
CALL 0x00012290
ADD ESP,0xc
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x38]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
LEA ESI,[ESI]
MOVZX EAX,byte ptr [ESI]
SUB ESP,0x4
ADD ESI,0x1
PUSH EAX
PUSH EDI
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP EBP,ESI
JNZ 0x0001a2c8
SUB ESP,0xc
ADD EBP,0xc
PUSH 0xa
CALL 0x00012290
ADD dword ptr [ESP + 0x24],0x1
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
CMP dword ptr [ESP + 0x20],EAX
JNZ 0x0001a140
JMP 0x000196b0
MOV EDX,dword ptr [EAX + 0xc]
CMP ECX,EDX
JGE 0x0001a1cd
XOR EAX,EAX
JMP 0x0001a32e
ADD EAX,0x1
ADD ESI,0x30
CMP EDX,EAX
JLE 0x0001a1cd
CMP byte ptr [ESI + 0x8],0x19
JNZ 0x0001a320
CMP ECX,dword ptr [ESI + 0x4]
JNZ 0x0001a320
MOV EDX,dword ptr [ESI + 0x18]
TEST EDX,EDX
JZ 0x0001a1cd
SUB ESP,0x8
MOV ECX,0x19
PUSH dword ptr [ESP + 0x14]
PUSH 0x1
MOV EAX,dword ptr [ESP + 0x4c]
CALL 0x00017c20
ADD ESP,0xc
LEA EAX,[EBX + 0xffff4596]
PUSH dword ptr [ESI + 0x4]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a1e2
SUB ESP,0x8
LEA EAX,[EBX + 0xffff4574]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a1e2
CALL 0x000169f0
SUB ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xffff45ce]
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESI]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
JMP 0x0001a2a0
CMP ECX,dword ptr [EAX + 0x10]
JGE 0x0001a1cd
MOV EDX,dword ptr [EAX + 0xc]
TEST EDX,EDX
JLE 0x0001a1cd
CMP ECX,dword ptr [ESI + 0xc]
JZ 0x0001a1bc
MOV EAX,dword ptr [ESP + 0x34]
JMP 0x0001a3e9
CMP ECX,dword ptr [ESI + 0xc]
JZ 0x0001a1bc
ADD EAX,0x1
ADD ESI,0x30
CMP EDX,EAX
JNZ 0x0001a3e0
JMP 0x0001a1cd
CMP EDX,dword ptr [EAX + 0x10]
JGE 0x0001a426
MOV ECX,dword ptr [EAX + 0xc]
TEST ECX,ECX
JLE 0x0001a426
CMP EDX,dword ptr [ESI + 0xc]
JZ 0x0001a24f
MOV EAX,dword ptr [ESP + 0x34]
JMP 0x0001a41c
CMP EDX,dword ptr [ESI + 0xc]
JZ 0x0001a24f
ADD EAX,0x1
ADD ESI,0x30
CMP EAX,ECX
JNZ 0x0001a413
SUB ESP,0x4
LEA EAX,[EBX + 0xffff45b0]
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a2a0
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x40]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a1e2
CMP EDX,dword ptr [EAX + 0x10]
JGE 0x0001a426
MOV ECX,dword ptr [EAX + 0xc]
TEST ECX,ECX
JLE 0x0001a426
CMP EDX,dword ptr [ESI + 0x10]
JZ 0x0001a24f
XOR EAX,EAX
JMP 0x0001a479
CMP EDX,dword ptr [ESI + 0x10]
JZ 0x0001a24f
ADD EAX,0x1
ADD ESI,0x30
CMP EAX,ECX
JNZ 0x0001a470
JMP 0x0001a426
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x30]
MOVZX EAX,byte ptr [EBP + EAX*0x1]
PUSH EAX
LEA EAX,[EBX + 0xffff446e]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x00019dc7
SUB ESP,0x4
LEA EAX,[EBX + 0xffff45e0]
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a2a0
PUSH EAX
MOV ESI,dword ptr [ESP + 0xc]
LEA EAX,[EBX + 0xffff4542]
LEA EDI,[EBX + 0xffff4469]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0xc
LEA EAX,[EBX + 0xffff4558]
PUSH ESI
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOV EAX,dword ptr [ESP + 0x38]
ADD ESP,0x10
LEA ESI,[EBP + EAX*0x1]
LEA EAX,[EBP + EAX*0x1 + 0x8]
MOV dword ptr [ESP + 0x14],EBP
MOV EBP,ESI
MOV ESI,EAX
MOVZX EAX,byte ptr [EBP]
SUB ESP,0x4
ADD EBP,0x1
PUSH EAX
PUSH EDI
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
CMP ESI,EBP
JNZ 0x0001a505
MOV EBP,dword ptr [ESP + 0x14]
LEA EAX,[EBX + 0xffff8080]
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD EBP,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x24],EBP
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JZ 0x000196b0
MOV EAX,dword ptr [ESP + 0x1c]
XOR EBP,EBP
MOV EDI,dword ptr [ESP + 0x10]
AND EAX,0xfffffffd
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xffff456a]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xffff459c]
MOV dword ptr [ESP + 0x28],EAX
LEA EAX,[EBX + 0xffff4ae5]
MOV dword ptr [ESP + 0x2c],EAX
JMP 0x0001a694
CMP dword ptr [ESP + 0x18],0x1
JNZ 0x0001a793
CMP ECX,dword ptr [EDI + 0xc]
JGE 0x0001a5ae
LEA EAX,[ECX + ECX*0x2]
SHL EAX,0x4
ADD ESI,EAX
JZ 0x0001a5ae
MOV EDX,dword ptr [ESI + 0x18]
TEST EDX,EDX
JZ 0x0001a5ae
CMP byte ptr [ESI + 0x8],0x19
JZ 0x0001a70c
SUB ESP,0x4
LEA EAX,[EBX + 0xffff4581]
PUSH ECX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x14]
MOVZX EDX,byte ptr [EAX + EBP*0x2 + 0x1]
CMP EDX,0xff
MOV dword ptr [ESP + 0x10],EDX
JZ 0x0001a67a
SUB ESP,0x8
LEA EAX,[EBX + 0xffff45ad]
PUSH EAX
PUSH 0x1
CALL 0x00012310
MOV ESI,dword ptr [EDI + 0x8]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x10]
TEST ESI,ESI
JZ 0x0001a844
MOV EAX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JZ 0x0001a816
CMP dword ptr [ESP + 0x18],0x1
JNZ 0x0001a7ce
CMP EDX,dword ptr [EDI + 0xc]
JGE 0x0001a7fc
LEA EAX,[EDX + EDX*0x2]
SHL EAX,0x4
ADD ESI,EAX
JZ 0x0001a7fc
MOV ECX,dword ptr [ESI + 0x14]
MOVZX EAX,byte ptr [ESI + 0x8]
LEA EDX,[ESP + 0x4c]
TEST ECX,ECX
JZ 0x0001a758
CALL 0x000169f0
MOV ECX,dword ptr [ESI + 0x14]
MOVZX EDX,word ptr [ECX + 0x2]
ROL DX,0x8
MOVZX EDX,DX
TEST EDX,EDX
JZ 0x0001a75d
SUB ESP,0x4
ADD ECX,0x4
PUSH EAX
LEA EAX,[EBX + 0xffff45c9]
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESI]
PUSH ECX
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
SUB ESP,0xc
ADD EBP,0x1
PUSH 0xa
CALL 0x00012290
ADD ESP,0x10
CMP dword ptr [ESP + 0x20],EBP
JZ 0x000196b0
PUSH EBP
PUSH dword ptr [ESP + 0xc]
PUSH dword ptr [ESP + 0x2c]
PUSH 0x1
CALL 0x00012310
MOV EAX,dword ptr [ESP + 0x24]
ADD ESP,0x10
MOVZX ECX,byte ptr [EAX + EBP*0x2]
CMP ECX,0xff
JZ 0x0001a73f
MOV ESI,dword ptr [EDI + 0x8]
TEST ESI,ESI
JZ 0x0001a77c
MOV EAX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
JNZ 0x0001a583
MOV EDX,dword ptr [EDI + 0xc]
CMP ECX,EDX
JGE 0x0001a5ae
XOR EAX,EAX
JMP 0x0001a6f6
ADD EAX,0x1
ADD ESI,0x30
CMP EDX,EAX
JLE 0x0001a5ae
CMP byte ptr [ESI + 0x8],0x19
JNZ 0x0001a6e8
CMP ECX,dword ptr [ESI + 0x4]
JNZ 0x0001a6e8
MOV EDX,dword ptr [ESI + 0x18]
TEST EDX,EDX
JZ 0x0001a5ae
SUB ESP,0x8
MOV ECX,0x19
PUSH dword ptr [ESP + 0x14]
PUSH 0x1
MOV EAX,dword ptr [ESP + 0x3c]
CALL 0x00017c20
ADD ESP,0xc
LEA EAX,[EBX + 0xffff4596]
PUSH dword ptr [ESI + 0x4]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a5c3
SUB ESP,0x8
LEA EAX,[EBX + 0xffff4574]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a5c3
CALL 0x000169f0
SUB ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xffff45ce]
PUSH dword ptr [ESI + 0x4]
PUSH dword ptr [ESI]
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x20
JMP 0x0001a67a
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x30]
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a5c3
CMP ECX,dword ptr [EDI + 0x10]
JGE 0x0001a5ae
MOV EDX,dword ptr [EDI + 0xc]
TEST EDX,EDX
JLE 0x0001a5ae
CMP ECX,dword ptr [ESI + 0xc]
JZ 0x0001a59d
MOV EAX,dword ptr [ESP + 0x18]
JMP 0x0001a7bf
CMP ECX,dword ptr [ESI + 0xc]
JZ 0x0001a59d
ADD EAX,0x1
ADD ESI,0x30
CMP EDX,EAX
JNZ 0x0001a7b6
JMP 0x0001a5ae
CMP EDX,dword ptr [EDI + 0x10]
JGE 0x0001a7fc
MOV ECX,dword ptr [EDI + 0xc]
TEST ECX,ECX
JLE 0x0001a7fc
CMP dword ptr [ESI + 0xc],EDX
JZ 0x0001a62d
MOV EAX,dword ptr [ESP + 0x18]
JMP 0x0001a7f2
CMP EDX,dword ptr [ESI + 0xc]
JZ 0x0001a62d
ADD EAX,0x1
ADD ESI,0x30
CMP ECX,EAX
JNZ 0x0001a7e9
SUB ESP,0x4
LEA EAX,[EBX + 0xffff45b0]
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a67a
CMP EDX,dword ptr [EDI + 0x10]
JGE 0x0001a7fc
MOV ECX,dword ptr [EDI + 0xc]
TEST ECX,ECX
JLE 0x0001a7fc
CMP EDX,dword ptr [ESI + 0x10]
JZ 0x0001a62d
XOR EAX,EAX
JMP 0x0001a838
CMP EDX,dword ptr [ESI + 0x10]
JZ 0x0001a62d
ADD EAX,0x1
ADD ESI,0x30
CMP EAX,ECX
JNZ 0x0001a82f
JMP 0x0001a7fc
SUB ESP,0x4
LEA EAX,[EBX + 0xffff45e0]
PUSH EDX
PUSH EAX
PUSH 0x1
CALL 0x00012310
ADD ESP,0x10
JMP 0x0001a67a
CALL 0x0001eef0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\nFUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001eef0();\n}\n\n" comment (function_definition "void __regparm3\nFUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001eef0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)" identifier (parameter_list "(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0001eef0();\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "ushort uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte local_a4;" type_identifier identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined1 local_60 [64];" type_identifier (array_declarator "local_60 [64]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1960d;" (assignment_expression "uStack_14 = 0x1960d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }" if (parenthesized_expression "(*(char *)(param_6 + 8) != '\0')" ( (binary_expression "*(char *)(param_6 + 8) != '\0'" (pointer_expression "*(char *)(param_6 + 8)" * (cast_expression "(char *)(param_6 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);" do (compound_statement "{\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    }" { (if_statement "if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }" if (parenthesized_expression "((uVar5 & 0xf) == 0)" ( (binary_expression "(uVar5 & 0xf) == 0" (parenthesized_expression "(uVar5 & 0xf)" ( (binary_expression "uVar5 & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }" { (expression_statement "pcVar6 = "\n";" (assignment_expression "pcVar6 = "\n"" identifier = (string_literal ""\n"" " escape_sequence ")) ;) (if_statement "if (uVar5 == 0) {\n          pcVar6 = "";\n        }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar6 = "";\n        }" { (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,&DAT_0001f086,pcVar6,param_1);" (call_expression "__printf_chk(1,&DAT_0001f086,pcVar6,param_1)" identifier (argument_list "(1,&DAT_0001f086,pcVar6,param_1)" ( number_literal , (pointer_expression "&DAT_0001f086" & identifier) , identifier , identifier ))) ;) })) (expression_statement "pbVar19 = param_2 + uVar5;" (assignment_expression "pbVar19 = param_2 + uVar5" identifier = (binary_expression "param_2 + uVar5" identifier + identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,"%02x ",*pbVar19);" (call_expression "__printf_chk(1,"%02x ",*pbVar19)" identifier (argument_list "(1,"%02x ",*pbVar19)" ( number_literal , (string_literal ""%02x "" " string_content ") , (pointer_expression "*pbVar19" * identifier) ))) ;) }) while (parenthesized_expression "(param_3 != uVar5)" ( (binary_expression "param_3 != uVar5" identifier != identifier) )) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (expression_statement "bVar14 = *param_2 & 0xf;" (assignment_expression "bVar14 = *param_2 & 0xf" identifier = (binary_expression "*param_2 & 0xf" (pointer_expression "*param_2" * identifier) & number_literal)) ;) (if_statement "if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" if (parenthesized_expression "((*param_2 & 0x10) == 0)" ( (binary_expression "(*param_2 & 0x10) == 0" (parenthesized_expression "(*param_2 & 0x10)" ( (binary_expression "*param_2 & 0x10" (pointer_expression "*param_2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" { (if_statement "if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar14 == 6)" ( (binary_expression "bVar14 == 6" identifier == number_literal) )) (compound_statement "{\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "iVar24 = 3;" (assignment_expression "iVar24 = 3" identifier = number_literal) ;) (labeled_statement "LAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);" statement_identifier : (expression_statement "__printf_chk(1,"%sTransport protocol: SAS\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: SAS\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: SAS\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: SAS\n"" " string_content escape_sequence ") , identifier ))) ;)) (if_statement "if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }" if (parenthesized_expression "(iVar24 < (int)param_3)" ( (binary_expression "iVar24 < (int)param_3" identifier < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }" { (expression_statement "iVar24 = *(int *)(param_6 + 0x1c);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x1c)" identifier = (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "bVar25 = (*param_2 & 0x10) != 0;" (assignment_expression "bVar25 = (*param_2 & 0x10) != 0" identifier = (binary_expression "(*param_2 & 0x10) != 0" (parenthesized_expression "(*param_2 & 0x10)" ( (binary_expression "*param_2 & 0x10" (pointer_expression "*param_2" * identifier) & number_literal) )) != number_literal)) ;) (if_statement "if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }" { (expression_statement "local_74 = 8;" (assignment_expression "local_74 = 8" identifier = number_literal) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (expression_statement "iVar21 = 5;" (assignment_expression "iVar21 = 5" identifier = number_literal) ;) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" identifier = number_literal) ;) (expression_statement "local_90 = param_2[2] & 3;" (assignment_expression "local_90 = param_2[2] & 3" identifier = (binary_expression "param_2[2] & 3" (subscript_expression "param_2[2]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "local_84 = 8;" (assignment_expression "local_84 = 8" identifier = number_literal) ;) (expression_statement "local_88 = 8;" (assignment_expression "local_88 = 8" identifier = number_literal) ;) (expression_statement "local_80 = 7;" (assignment_expression "local_80 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" else (compound_statement "{\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" { (expression_statement "local_74 = 6;" (assignment_expression "local_74 = 6" identifier = number_literal) ;) (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (expression_statement "iVar21 = 3;" (assignment_expression "iVar21 = 3" identifier = number_literal) ;) (expression_statement "local_7c = 0xe;" (assignment_expression "local_7c = 0xe" identifier = number_literal) ;) (expression_statement "local_84 = 6;" (assignment_expression "local_84 = 6" identifier = number_literal) ;) (expression_statement "local_88 = 4;" (assignment_expression "local_88 = 4" identifier = number_literal) ;) (expression_statement "local_80 = 5;" (assignment_expression "local_80 = 5" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar14 = param_2[iVar21] >> 6;" (assignment_expression "bVar14 = param_2[iVar21] >> 6" identifier = (binary_expression "param_2[iVar21] >> 6" (subscript_expression "param_2[iVar21]" identifier [ identifier ]) >> number_literal)) ;) (if_statement "if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }" if (parenthesized_expression "(1 < *(int *)(param_6 + 0x50))" ( (binary_expression "1 < *(int *)(param_6 + 0x50)" number_literal < (pointer_expression "*(int *)(param_6 + 0x50)" * (cast_expression "(int *)(param_6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x50)" ( (binary_expression "param_6 + 0x50" identifier + number_literal) ))))) )) (compound_statement "{\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }" { (expression_statement "__printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);" (call_expression "__printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14)" identifier (argument_list "(1,"%sdescriptor_type: %d\n",param_1,bVar14)" ( number_literal , (string_literal ""%sdescriptor_type: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (if_statement "if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }" { (expression_statement "uVar5 = (uint)param_2[iVar11];" (assignment_expression "uVar5 = (uint)param_2[iVar11]" identifier = (cast_expression "(uint)param_2[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[iVar11]" identifier [ identifier ]))) ;) (expression_statement "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;" (call_expression "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)" identifier (argument_list "(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)" ( number_literal , (string_literal ""%snumber of phys: %d, not all phys: %d"" " string_content ") , identifier , identifier , (binary_expression "param_2[iVar21] & 1" (subscript_expression "param_2[iVar21]" identifier [ identifier ]) & number_literal) ))) ;) (if_statement "if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }" { (expression_statement "__printf_chk(1,", device slot number: %d",param_2[local_80]);" (call_expression "__printf_chk(1,", device slot number: %d",param_2[local_80])" identifier (argument_list "(1,", device slot number: %d",param_2[local_80])" ( number_literal , (string_literal "", device slot number: %d"" " string_content ") , (subscript_expression "param_2[local_80]" identifier [ identifier ]) ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + local_88 + 0xc;" (assignment_expression "param_2 = param_2 + local_88 + 0xc" identifier = (binary_expression "param_2 + local_88 + 0xc" (binary_expression "param_2 + local_88" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);" do (compound_statement "{\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            }" { (expression_statement "__printf_chk(1,"%sphy index: %d\n",param_1,local_a0);" (call_expression "__printf_chk(1,"%sphy index: %d\n",param_1,local_a0)" identifier (argument_list "(1,"%sphy index: %d\n",param_1,local_a0)" ( number_literal , (string_literal ""%sphy index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);" (call_expression "__printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7])" identifier (argument_list "(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7])" ( number_literal , (string_literal ""%s  SAS device type: %s\n"" " string_content escape_sequence ") , identifier , (subscript_expression "(&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]" (parenthesized_expression "(&PTR_s_no_SAS_device_attached_0002ad40)" ( (pointer_expression "&PTR_s_no_SAS_device_attached_0002ad40" & identifier) )) [ (binary_expression "param_2[-0xc] >> 4 & 7" (binary_expression "param_2[-0xc] >> 4" (subscript_expression "param_2[-0xc]" identifier [ number_literal ]) >> number_literal) & number_literal) ]) ))) ;) (expression_statement "bVar14 = param_2[-10];" (assignment_expression "bVar14 = param_2[-10]" identifier = (subscript_expression "param_2[-10]" identifier [ number_literal ])) ;) (if_statement "if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" if (parenthesized_expression "((iVar24 == 0) || ((bVar14 & 0xe) != 0))" ( (binary_expression "(iVar24 == 0) || ((bVar14 & 0xe) != 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar14 & 0xe) != 0)" ( (binary_expression "(bVar14 & 0xe) != 0" (parenthesized_expression "(bVar14 & 0xe)" ( (binary_expression "bVar14 & 0xe" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }" { (expression_statement "pcVar12 = " SMP";" (assignment_expression "pcVar12 = " SMP"" identifier = (string_literal "" SMP"" " string_content ")) ;) (if_statement "if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 2) == 0)" ( (binary_expression "(bVar14 & 2) == 0" (parenthesized_expression "(bVar14 & 2)" ( (binary_expression "bVar14 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar12 = pcVar6;\n                }" { (expression_statement "pcVar12 = pcVar6;" (assignment_expression "pcVar12 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar17 = " STP";" (assignment_expression "pcVar17 = " STP"" identifier = (string_literal "" STP"" " string_content ")) ;) (if_statement "if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 4) == 0)" ( (binary_expression "(bVar14 & 4) == 0" (parenthesized_expression "(bVar14 & 4)" ( (binary_expression "bVar14 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar17 = pcVar6;\n                }" { (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar8 = " SSP";" (assignment_expression "pcVar8 = " SSP"" identifier = (string_literal "" SSP"" " string_content ")) ;) (if_statement "if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 8) == 0)" ( (binary_expression "(bVar14 & 8) == 0" (parenthesized_expression "(bVar14 & 8)" ( (binary_expression "bVar14 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar8 = pcVar6;\n                }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) })) (expression_statement "__printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);" (call_expression "__printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12)" identifier (argument_list "(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12)" ( number_literal , (string_literal ""%s  initiator port for:%s%s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar24 != 0) goto LAB_00019e40;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019e40;" goto statement_identifier ;)) (expression_statement "bVar14 = param_2[-9];" (assignment_expression "bVar14 = param_2[-9]" identifier = (subscript_expression "param_2[-9]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00019e48:\n                pcVar12 = pcVar6;" statement_identifier : (expression_statement "pcVar12 = pcVar6;" (assignment_expression "pcVar12 = pcVar6" identifier = identifier) ;)) (if_statement "if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }" if (parenthesized_expression "((bVar14 & 1) != 0)" ( (binary_expression "(bVar14 & 1) != 0" (parenthesized_expression "(bVar14 & 1)" ( (binary_expression "bVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  pcVar12 = " SATA_device";\n                }" { (expression_statement "pcVar12 = " SATA_device";" (assignment_expression "pcVar12 = " SATA_device"" identifier = (string_literal "" SATA_device"" " string_content ")) ;) })) (expression_statement "pcVar17 = " SMP";" (assignment_expression "pcVar17 = " SMP"" identifier = (string_literal "" SMP"" " string_content ")) ;) (if_statement "if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 2) == 0)" ( (binary_expression "(bVar14 & 2) == 0" (parenthesized_expression "(bVar14 & 2)" ( (binary_expression "bVar14 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar17 = pcVar6;\n                }" { (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar8 = " STP";" (assignment_expression "pcVar8 = " STP"" identifier = (string_literal "" STP"" " string_content ")) ;) (if_statement "if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 4) == 0)" ( (binary_expression "(bVar14 & 4) == 0" (parenthesized_expression "(bVar14 & 4)" ( (binary_expression "bVar14 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar8 = pcVar6;\n                }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar16 = " SSP";" (assignment_expression "pcVar16 = " SSP"" identifier = (string_literal "" SSP"" " string_content ")) ;) (if_statement "if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 8) == 0)" ( (binary_expression "(bVar14 & 8) == 0" (parenthesized_expression "(bVar14 & 8)" ( (binary_expression "bVar14 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar16 = pcVar6;\n                }" { (expression_statement "pcVar16 = pcVar6;" (assignment_expression "pcVar16 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar7 = " SATA_port_selector";" (assignment_expression "pcVar7 = " SATA_port_selector"" identifier = (string_literal "" SATA_port_selector"" " string_content ")) ;) (if_statement "if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }" if (parenthesized_expression "(-1 < (char)bVar14)" ( (binary_expression "-1 < (char)bVar14" number_literal < (cast_expression "(char)bVar14" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar7 = pcVar6;\n                }" { (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) })) (expression_statement "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);" (call_expression "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12)" identifier (argument_list "(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12)" ( number_literal , (string_literal ""%s  target port for:%s%s%s%s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" else (compound_statement "{\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" { (labeled_statement "LAB_00019e40:\n                bVar14 = param_2[-9];" statement_identifier : (expression_statement "bVar14 = param_2[-9];" (assignment_expression "bVar14 = param_2[-9]" identifier = (subscript_expression "param_2[-9]" identifier [ number_literal ])) ;)) (if_statement "if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;" if (parenthesized_expression "((bVar14 & 0x8f) != 0)" ( (binary_expression "(bVar14 & 0x8f) != 0" (parenthesized_expression "(bVar14 & 0x8f)" ( (binary_expression "bVar14 & 0x8f" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00019e48;" goto statement_identifier ;)) }))) (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" identifier = (binary_expression "param_2 + -8" identifier + number_literal)) ;) (expression_statement "bVar14 = sg_all_zeros(pbVar19,8);" (assignment_expression "bVar14 = sg_all_zeros(pbVar19,8)" identifier = (call_expression "sg_all_zeros(pbVar19,8)" identifier (argument_list "(pbVar19,8)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" if (parenthesized_expression "((iVar24 == 0) || ((bVar14 ^ 1) != 0))" ( (binary_expression "(iVar24 == 0) || ((bVar14 ^ 1) != 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar14 ^ 1) != 0)" ( (binary_expression "(bVar14 ^ 1) != 0" (parenthesized_expression "(bVar14 ^ 1)" ( (binary_expression "bVar14 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }" { (expression_statement "__printf_chk(1,"%s  attached SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%s  attached SAS address: 0x",param_1)" identifier (argument_list "(1,"%s  attached SAS address: 0x",param_1)" ( number_literal , (string_literal ""%s  attached SAS address: 0x"" " string_content ") , identifier ))) ;) (if_statement "if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" if (parenthesized_expression "((bVar14 ^ 1) == 0)" ( (binary_expression "(bVar14 ^ 1) == 0" (parenthesized_expression "(bVar14 ^ 1)" ( (binary_expression "bVar14 ^ 1" identifier ^ number_literal) )) == number_literal) )) (compound_statement "{\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }" { (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" identifier (argument_list "(0x30)" ( number_literal ))) ;) (expression_statement "bVar14 = sg_all_zeros(param_2,8);" (assignment_expression "bVar14 = sg_all_zeros(param_2,8)" identifier = (call_expression "sg_all_zeros(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal )))) ;) (expression_statement "bVar14 = bVar14 ^ 1;" (assignment_expression "bVar14 = bVar14 ^ 1" identifier = (binary_expression "bVar14 ^ 1" identifier ^ number_literal)) ;) (labeled_statement "LAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);" statement_identifier : (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",param_1)" identifier (argument_list "(1,"\n%s  SAS address: 0x",param_1)" ( number_literal , (string_literal ""\n%s  SAS address: 0x"" " escape_sequence string_content ") , identifier ))) ;)) (if_statement "if (bVar14 != 0) goto LAB_0001a030;" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001a030;" goto statement_identifier ;)) (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" identifier (argument_list "(0x30)" ( number_literal ))) ;) }) (else_clause "else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" else (compound_statement "{\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" { (do_statement "do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);" do (compound_statement "{\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) ;) (expression_statement "bVar14 = sg_all_zeros(param_2,8);" (assignment_expression "bVar14 = sg_all_zeros(param_2,8)" identifier = (call_expression "sg_all_zeros(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal )))) ;) (expression_statement "bVar14 = bVar14 ^ 1;" (assignment_expression "bVar14 = bVar14 ^ 1" identifier = (binary_expression "bVar14 ^ 1" identifier ^ number_literal)) ;) (if_statement "if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;" if (parenthesized_expression "((iVar24 == 0) || (bVar14 != 0))" ( (binary_expression "(iVar24 == 0) || (bVar14 != 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00019fce;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);" statement_identifier : (expression_statement "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);" (call_expression "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8])" identifier (argument_list "(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8])" ( number_literal , (string_literal ""\n%s  phy identifier: 0x%x\n"" " escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "param_2[8]" identifier [ number_literal ]) ))) ;)) }) (else_clause "else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" else (compound_statement "{\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" { (expression_statement "cVar2 = sg_all_zeros(param_2,8);" (assignment_expression "cVar2 = sg_all_zeros(param_2,8)" identifier = (call_expression "sg_all_zeros(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal )))) ;) (if_statement "if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }" { (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",param_1)" identifier (argument_list "(1,"\n%s  SAS address: 0x",param_1)" ( number_literal , (string_literal ""\n%s  SAS address: 0x"" " escape_sequence string_content ") , identifier ))) ;) (labeled_statement "LAB_0001a030:\n                  pbVar19 = param_2;" statement_identifier : (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;)) (do_statement "do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);" do (compound_statement "{\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 + 8 != pbVar19)" ( (binary_expression "param_2 + 8 != pbVar19" (binary_expression "param_2 + 8" identifier + number_literal) != identifier) )) ;) (goto_statement "goto LAB_00019ff9;" goto statement_identifier ;) })) }))) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 0x1c;" (assignment_expression "param_2 = param_2 + 0x1c" identifier = (binary_expression "param_2 + 0x1c" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != local_a0)" ( (binary_expression "uVar5 != local_a0" identifier != identifier) )) ;) })) }) (else_clause "else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" else (if_statement "if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" if (parenthesized_expression "(bVar14 == 1)" ( (binary_expression "bVar14 == 1" identifier == number_literal) )) (compound_statement "{\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }" { (expression_statement "uVar5 = (uint)param_2[iVar11];" (assignment_expression "uVar5 = (uint)param_2[iVar11]" identifier = (cast_expression "(uint)param_2[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[iVar11]" identifier [ identifier ]))) ;) (if_statement "if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" if (parenthesized_expression "(param_4 == 0x18)" ( (binary_expression "param_4 == 0x18" identifier == number_literal) )) (compound_statement "{\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }" { (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5)" identifier (argument_list "(1,"%snumber of phys: %d\n",param_1,uVar5)" ( number_literal , (string_literal ""%snumber of phys: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%sSAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%sSAS address: 0x",param_1)" identifier (argument_list "(1,"%sSAS address: 0x",param_1)" ( number_literal , (string_literal ""%sSAS address: 0x"" " string_content ") , identifier ))) ;) (expression_statement "pbVar19 = param_2 + local_84;" (assignment_expression "pbVar19 = param_2 + local_84" identifier = (binary_expression "param_2 + local_84" identifier + identifier)) ;) (do_statement "do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);" do (compound_statement "{\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14,uVar4);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14,uVar4)" identifier (argument_list "(1,&DAT_0001f329,bVar14,uVar4)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier , identifier ))) ;) }) while (parenthesized_expression "(param_2 + local_84 + 8 != pbVar19)" ( (binary_expression "param_2 + local_84 + 8 != pbVar19" (binary_expression "param_2 + local_84 + 8" (binary_expression "param_2 + local_84" identifier + identifier) + number_literal) != identifier) )) ;) (expression_statement "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);" (call_expression "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4)" identifier (argument_list "(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4)" ( number_literal , (string_literal ""\n%sAttached connector; other_element pairs:\n"" " escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = local_90 & 0xfffffffd;" (assignment_expression "uVar4 = local_90 & 0xfffffffd" identifier = (binary_expression "local_90 & 0xfffffffd" identifier & number_literal)) ;) (do_statement "do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);" do (compound_statement "{\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              }" { (expression_statement "uVar18 = param_1;" (assignment_expression "uVar18 = param_1" identifier = identifier) ;) (expression_statement "uVar13 = uVar20;" (assignment_expression "uVar13 = uVar20" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%s  [%d] ",param_1,uVar20);" (call_expression "__printf_chk(1,"%s  [%d] ",param_1,uVar20)" identifier (argument_list "(1,"%s  [%d] ",param_1,uVar20)" ( number_literal , (string_literal ""%s  [%d] "" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar9 = (uint)param_2[uVar20 * 2 + local_7c];" (assignment_expression "uVar9 = (uint)param_2[uVar20 * 2 + local_7c]" identifier = (cast_expression "(uint)param_2[uVar20 * 2 + local_7c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[uVar20 * 2 + local_7c]" identifier [ (binary_expression "uVar20 * 2 + local_7c" (binary_expression "uVar20 * 2" identifier * number_literal) + identifier) ]))) ;) (if_statement "if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" if (parenthesized_expression "(uVar9 == 0xff)" ( (binary_expression "uVar9 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }" { (expression_statement "__printf_chk(1,"no connector",uVar18,uVar13);" (call_expression "__printf_chk(1,"no connector",uVar18,uVar13)" identifier (argument_list "(1,"no connector",uVar18,uVar13)" ( number_literal , (string_literal ""no connector"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" else (compound_statement "{\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" { (expression_statement "iVar24 = *(int *)(param_5 + 8);" (assignment_expression "iVar24 = *(int *)(param_5 + 8)" identifier = (pointer_expression "*(int *)(param_5 + 8)" * (cast_expression "(int *)(param_5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" { (expression_statement "__printf_chk(1,"connector ei: %d",uVar9,uVar13);" (call_expression "__printf_chk(1,"connector ei: %d",uVar9,uVar13)" identifier (argument_list "(1,"connector ei: %d",uVar9,uVar13)" ( number_literal , (string_literal ""connector ei: %d"" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }" { (if_statement "if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" if (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar9 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));" do (compound_statement "{\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        }" { (if_statement "if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }" if (parenthesized_expression "((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))" ( (binary_expression "(*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4))" (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar9 == *(uint *)(iVar24 + 4))" ( (binary_expression "uVar9 == *(uint *)(iVar24 + 4)" identifier == (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }" { (if_statement "if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;" if (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001a70c;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < *(int *)(param_5 + 0xc))" ( (binary_expression "iVar11 < *(int *)(param_5 + 0xc)" identifier < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }" { (if_statement "if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }" if (parenthesized_expression "(((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0))" ( (binary_expression "((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)" (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar9 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)" ( (comma_expression "iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0" (assignment_expression "iVar24 = iVar24 + uVar9 * 0x30" identifier = (binary_expression "iVar24 + uVar9 * 0x30" identifier + (binary_expression "uVar9 * 0x30" identifier * number_literal))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }" { (labeled_statement "LAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" statement_identifier : (if_statement "if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" if (parenthesized_expression "((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19'))" ( (binary_expression "(*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')" (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" { (labeled_statement "LAB_0001a70c:\n                          FUN_00017c20(1,param_6);" statement_identifier : (expression_statement "FUN_00017c20(1,param_6);" (call_expression "FUN_00017c20(1,param_6)" identifier (argument_list "(1,param_6)" ( number_literal , identifier ))) ;)) (expression_statement "uVar18 = *(uint *)(iVar24 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 4)" identifier = (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1," [%d]",uVar18,uVar13);" (call_expression "__printf_chk(1," [%d]",uVar18,uVar13)" identifier (argument_list "(1," [%d]",uVar18,uVar13)" ( number_literal , (string_literal "" [%d]"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a5c3;" goto statement_identifier ;) }))) })) }) (else_clause "else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" else (if_statement "if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc)))" ( (binary_expression "((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))" (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0x10))" ( (binary_expression "(int)uVar9 < *(int *)(param_5 + 0x10)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) ))))) )) && (parenthesized_expression "(0 < (int)*(uint *)(param_5 + 0xc))" ( (binary_expression "0 < (int)*(uint *)(param_5 + 0xc)" number_literal < (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" { (expression_statement "uVar18 = *(uint *)(iVar24 + 0xc);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar24 + 0xc)" * (cast_expression "(uint *)(iVar24 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" identifier = identifier) ;) (while_statement "while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" while (parenthesized_expression "(uVar9 != uVar18)" ( (binary_expression "uVar9 != uVar18" identifier != identifier) )) (compound_statement "{\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;" if (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar10)" ( (binary_expression "*(uint *)(param_5 + 0xc) == uVar10" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0001a5ae;" goto statement_identifier ;)) (expression_statement "uVar18 = *(uint *)(iVar24 + 0x3c);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 0x3c)" identifier = (pointer_expression "*(uint *)(iVar24 + 0x3c)" * (cast_expression "(uint *)(iVar24 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0001a59d;" goto statement_identifier ;) })))))) (labeled_statement "LAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);" statement_identifier : (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13)" identifier (argument_list "(1,"broken [conn_idx=%d]",uVar9,uVar13)" ( number_literal , (string_literal ""broken [conn_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];" statement_identifier : (expression_statement "uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];" (assignment_expression "uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1]" identifier = (cast_expression "(uint)param_2[uVar20 * 2 + local_7c + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[uVar20 * 2 + local_7c + 1]" identifier [ (binary_expression "uVar20 * 2 + local_7c + 1" (binary_expression "uVar20 * 2 + local_7c" (binary_expression "uVar20 * 2" identifier * number_literal) + identifier) + number_literal) ]))) ;)) (if_statement "if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" if (parenthesized_expression "(uVar9 != 0xff)" ( (binary_expression "uVar9 != 0xff" identifier != number_literal) )) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" { (expression_statement "__printf_chk(1,&DAT_0001f46d,uVar18,uVar13);" (call_expression "__printf_chk(1,&DAT_0001f46d,uVar18,uVar13)" identifier (argument_list "(1,&DAT_0001f46d,uVar18,uVar13)" ( number_literal , (pointer_expression "&DAT_0001f46d" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar22 = *(undefined4 **)(param_5 + 8);" (assignment_expression "puVar22 = *(undefined4 **)(param_5 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_5 + 8)" * (cast_expression "(undefined4 **)(param_5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" if (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" ( (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }" { (expression_statement "__printf_chk(1,"other ei: %d",uVar9,uVar13);" (call_expression "__printf_chk(1,"other ei: %d",uVar9,uVar13)" identifier (argument_list "(1,"other ei: %d",uVar9,uVar13)" ( number_literal , (string_literal ""other ei: %d"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(*(int *)(param_5 + 0xc) < 1)" ( (binary_expression "*(int *)(param_5 + 0xc) < 1" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) < number_literal) ))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (if_statement "if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }" if (parenthesized_expression "(uVar9 != puVar22[4])" ( (binary_expression "uVar9 != puVar22[4]" identifier != (subscript_expression "puVar22[4]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) (do_statement "do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);" do (compound_statement "{\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar23 + 0xc;" (assignment_expression "puVar22 = puVar23 + 0xc" identifier = (binary_expression "puVar23 + 0xc" identifier + number_literal)) ;) (if_statement "if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;" if (parenthesized_expression "(iVar24 == *(int *)(param_5 + 0xc))" ( (binary_expression "iVar24 == *(int *)(param_5 + 0xc)" identifier == (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar23 + 0x10;" (assignment_expression "puVar1 = puVar23 + 0x10" identifier = (binary_expression "puVar23 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != *puVar1)" ( (binary_expression "uVar9 != *puVar1" identifier != (pointer_expression "*puVar1" * identifier)) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }" if (parenthesized_expression "((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0))" ( (binary_expression "(*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(param_5 + 0xc) <= (int)uVar9)" ( (binary_expression "*(int *)(param_5 + 0xc) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)" ( (comma_expression "puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0" (assignment_expression "puVar22 = puVar22 + uVar9 * 0xc" identifier = (binary_expression "puVar22 + uVar9 * 0xc" identifier + (binary_expression "uVar9 * 0xc" identifier * number_literal))) , (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }" { (labeled_statement "LAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);" statement_identifier : (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13)" identifier (argument_list "(1,"broken [oth_elem_idx=%d]",uVar9,uVar13)" ( number_literal , (string_literal ""broken [oth_elem_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (goto_statement "goto LAB_0001a67a;" goto statement_identifier ;) })) }) (else_clause "else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1))" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)*(uint *)(param_5 + 0xc) < 1)" ( (binary_expression "(int)*(uint *)(param_5 + 0xc) < 1" (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) < number_literal) ))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "uVar18 = puVar22[3];" (assignment_expression "uVar18 = puVar22[3]" identifier = (subscript_expression "puVar22[3]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" identifier = identifier) ;) (while_statement "while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" while (parenthesized_expression "(uVar18 != uVar9)" ( (binary_expression "uVar18 != uVar9" identifier != identifier) )) (compound_statement "{\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;" if (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar10)" ( (binary_expression "*(uint *)(param_5 + 0xc) == uVar10" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "uVar18 = puVar22[0xf];" (assignment_expression "uVar18 = puVar22[0xf]" identifier = (subscript_expression "puVar22[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" identifier = (binary_expression "puVar22 + 0xc" identifier + number_literal)) ;) })) }))))) (if_statement "if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" if (parenthesized_expression "(puVar22[5] == 0)" ( (binary_expression "puVar22[5] == 0" (subscript_expression "puVar22[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" else (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar15 = *(ushort *)(puVar22[5] + 2);" (assignment_expression "uVar15 = *(ushort *)(puVar22[5] + 2)" identifier = (pointer_expression "*(ushort *)(puVar22[5] + 2)" * (cast_expression "(ushort *)(puVar22[5] + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22[5] + 2)" ( (binary_expression "puVar22[5] + 2" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 8;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 8" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 8" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 8" identifier >> number_literal))) ;) (if_statement "if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }" { (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" identifier (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" ( number_literal , (string_literal ""%.*s [%d,%d] etype: %s"" " string_content ") , identifier , (binary_expression "puVar22[5] + 4" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) (goto_statement "goto LAB_0001a67a;" goto statement_identifier ;) })) }))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" identifier (argument_list "(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" ( number_literal , (string_literal ""[%d,%d] etype: %s"" " string_content ") , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) }))) })) (labeled_statement "LAB_0001a67a:\n                uVar20 = uVar20 + 1;" statement_identifier : (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;)) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar5 != uVar20)" ( (binary_expression "uVar5 != uVar20" identifier != identifier) )) ;) })) }) (else_clause "else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" else (if_statement "if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" if (parenthesized_expression "((param_4 - 0x14U < 2) || (param_4 == 7))" ( (binary_expression "(param_4 - 0x14U < 2) || (param_4 == 7)" (parenthesized_expression "(param_4 - 0x14U < 2)" ( (binary_expression "param_4 - 0x14U < 2" (binary_expression "param_4 - 0x14U" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(param_4 == 7)" ( (binary_expression "param_4 == 7" identifier == number_literal) ))) )) (compound_statement "{\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }" { (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5)" identifier (argument_list "(1,"%snumber of phys: %d\n",param_1,uVar5)" ( number_literal , (string_literal ""%snumber of phys: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = local_90 & 0xfffffffd;" (assignment_expression "uVar4 = local_90 & 0xfffffffd" identifier = (binary_expression "local_90 & 0xfffffffd" identifier & number_literal)) ;) (expression_statement "param_2 = param_2 + local_74 + 0xc;" (assignment_expression "param_2 = param_2 + local_74 + 0xc" identifier = (binary_expression "param_2 + local_74 + 0xc" (binary_expression "param_2 + local_74" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);" do (compound_statement "{\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              }" { (expression_statement "uVar18 = local_98;" (assignment_expression "uVar18 = local_98" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%sphy index: %d\n",param_1,local_98);" (call_expression "__printf_chk(1,"%sphy index: %d\n",param_1,local_98)" identifier (argument_list "(1,"%sphy index: %d\n",param_1,local_98)" ( number_literal , (string_literal ""%sphy index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);" (call_expression "__printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc])" identifier (argument_list "(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc])" ( number_literal , (string_literal ""%s  phy_id: 0x%x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "param_2[-0xc]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar20 = param_1;" (assignment_expression "uVar20 = param_1" identifier = identifier) ;) (expression_statement "__printf_chk(1,&DAT_0001f4bf,param_1);" (call_expression "__printf_chk(1,&DAT_0001f4bf,param_1)" identifier (argument_list "(1,&DAT_0001f4bf,param_1)" ( number_literal , (pointer_expression "&DAT_0001f4bf" & identifier) , identifier ))) ;) (expression_statement "uVar13 = (uint)param_2[-10];" (assignment_expression "uVar13 = (uint)param_2[-10]" identifier = (cast_expression "(uint)param_2[-10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[-10]" identifier [ number_literal ]))) ;) (if_statement "if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" if (parenthesized_expression "(uVar13 == 0xff)" ( (binary_expression "uVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }" { (expression_statement "__printf_chk(1,"no connector",uVar20,uVar18);" (call_expression "__printf_chk(1,"no connector",uVar20,uVar18)" identifier (argument_list "(1,"no connector",uVar20,uVar18)" ( number_literal , (string_literal ""no connector"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" else (compound_statement "{\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" { (expression_statement "iVar24 = *(int *)(param_5 + 8);" (assignment_expression "iVar24 = *(int *)(param_5 + 8)" identifier = (pointer_expression "*(int *)(param_5 + 8)" * (cast_expression "(int *)(param_5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" { (expression_statement "__printf_chk(1,"connector ei: %d",uVar13,uVar18);" (call_expression "__printf_chk(1,"connector ei: %d",uVar13,uVar18)" identifier (argument_list "(1,"connector ei: %d",uVar13,uVar18)" ( number_literal , (string_literal ""connector ei: %d"" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar20 = uVar13;" (assignment_expression "uVar20 = uVar13" identifier = identifier) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }" { (if_statement "if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" if (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar13 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));" do (compound_statement "{\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        }" { (if_statement "if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }" if (parenthesized_expression "((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             )" ( (binary_expression "(*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))" (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar13 == *(uint *)(iVar24 + 4))" ( (binary_expression "uVar13 == *(uint *)(iVar24 + 4)" identifier == (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }" { (if_statement "if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;" if (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001a344;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < *(int *)(param_5 + 0xc))" ( (binary_expression "iVar11 < *(int *)(param_5 + 0xc)" identifier < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }" { (if_statement "if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }" if (parenthesized_expression "(((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0))" ( (binary_expression "((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)" (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar13 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)" ( (comma_expression "iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0" (assignment_expression "iVar24 = iVar24 + uVar13 * 0x30" identifier = (binary_expression "iVar24 + uVar13 * 0x30" identifier + (binary_expression "uVar13 * 0x30" identifier * number_literal))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }" { (labeled_statement "LAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" statement_identifier : (if_statement "if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" if (parenthesized_expression "((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19'))" ( (binary_expression "(*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')" (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" { (labeled_statement "LAB_0001a344:\n                          FUN_00017c20(1,param_6);" statement_identifier : (expression_statement "FUN_00017c20(1,param_6);" (call_expression "FUN_00017c20(1,param_6)" identifier (argument_list "(1,param_6)" ( number_literal , identifier ))) ;)) (expression_statement "uVar20 = *(uint *)(iVar24 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 4)" identifier = (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1," [%d]",uVar20,uVar18);" (call_expression "__printf_chk(1," [%d]",uVar20,uVar18)" identifier (argument_list "(1," [%d]",uVar20,uVar18)" ( number_literal , (string_literal "" [%d]"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e2;" goto statement_identifier ;) }))) })) }) (else_clause "else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" else (if_statement "if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc)))" ( (binary_expression "((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))" (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0x10))" ( (binary_expression "(int)uVar13 < *(int *)(param_5 + 0x10)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) ))))) )) && (parenthesized_expression "(0 < (int)*(uint *)(param_5 + 0xc))" ( (binary_expression "0 < (int)*(uint *)(param_5 + 0xc)" number_literal < (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" { (expression_statement "uVar20 = *(uint *)(iVar24 + 0xc);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar24 + 0xc)" * (cast_expression "(uint *)(iVar24 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar4;" (assignment_expression "uVar9 = uVar4" identifier = identifier) ;) (while_statement "while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" while (parenthesized_expression "(uVar13 != uVar20)" ( (binary_expression "uVar13 != uVar20" identifier != identifier) )) (compound_statement "{\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" { (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;" if (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar9)" ( (binary_expression "*(uint *)(param_5 + 0xc) == uVar9" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0001a1cd;" goto statement_identifier ;)) (expression_statement "uVar20 = *(uint *)(iVar24 + 0x3c);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 0x3c)" identifier = (pointer_expression "*(uint *)(iVar24 + 0x3c)" * (cast_expression "(uint *)(iVar24 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0001a1bc;" goto statement_identifier ;) })))))) (labeled_statement "LAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);" statement_identifier : (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18)" identifier (argument_list "(1,"broken [conn_idx=%d]",uVar13,uVar18)" ( number_literal , (string_literal ""broken [conn_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "uVar20 = uVar13;" (assignment_expression "uVar20 = uVar13" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];" statement_identifier : (expression_statement "uVar18 = (uint)param_2[-9];" (assignment_expression "uVar18 = (uint)param_2[-9]" identifier = (cast_expression "(uint)param_2[-9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[-9]" identifier [ number_literal ]))) ;)) (if_statement "if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" if (parenthesized_expression "(uVar18 != 0xff)" ( (binary_expression "uVar18 != 0xff" identifier != number_literal) )) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" { (expression_statement "__printf_chk(1,&DAT_0001f46d,uVar20);" (call_expression "__printf_chk(1,&DAT_0001f46d,uVar20)" identifier (argument_list "(1,&DAT_0001f46d,uVar20)" ( number_literal , (pointer_expression "&DAT_0001f46d" & identifier) , identifier ))) ;) (expression_statement "puVar22 = *(undefined4 **)(param_5 + 8);" (assignment_expression "puVar22 = *(undefined4 **)(param_5 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_5 + 8)" * (cast_expression "(undefined4 **)(param_5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" if (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" ( (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }" { (expression_statement "__printf_chk(1,"other ei: %d",uVar18);" (call_expression "__printf_chk(1,"other ei: %d",uVar18)" identifier (argument_list "(1,"other ei: %d",uVar18)" ( number_literal , (string_literal ""other ei: %d"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         )" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(*(int *)(param_5 + 0xc) < 1)" ( (binary_expression "*(int *)(param_5 + 0xc) < 1" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) < number_literal) ))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (if_statement "if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }" if (parenthesized_expression "(uVar18 != puVar22[4])" ( (binary_expression "uVar18 != puVar22[4]" identifier != (subscript_expression "puVar22[4]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) (do_statement "do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);" do (compound_statement "{\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar23 + 0xc;" (assignment_expression "puVar22 = puVar23 + 0xc" identifier = (binary_expression "puVar23 + 0xc" identifier + number_literal)) ;) (if_statement "if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;" if (parenthesized_expression "(iVar24 == *(int *)(param_5 + 0xc))" ( (binary_expression "iVar24 == *(int *)(param_5 + 0xc)" identifier == (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar23 + 0x10;" (assignment_expression "puVar1 = puVar23 + 0x10" identifier = (binary_expression "puVar23 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(uVar18 != *puVar1)" ( (binary_expression "uVar18 != *puVar1" identifier != (pointer_expression "*puVar1" * identifier)) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }" if (parenthesized_expression "((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0))" ( (binary_expression "(*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(param_5 + 0xc) <= (int)uVar18)" ( (binary_expression "*(int *)(param_5 + 0xc) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)" ( (comma_expression "puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0" (assignment_expression "puVar22 = puVar22 + uVar18 * 0xc" identifier = (binary_expression "puVar22 + uVar18 * 0xc" identifier + (binary_expression "uVar18 * 0xc" identifier * number_literal))) , (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }" { (labeled_statement "LAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);" statement_identifier : (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar18)" identifier (argument_list "(1,"broken [oth_elem_idx=%d]",uVar18)" ( number_literal , (string_literal ""broken [oth_elem_idx=%d]"" " string_content ") , identifier ))) ;)) (goto_statement "goto LAB_0001a2a0;" goto statement_identifier ;) })) }) (else_clause "else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1))" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)*(uint *)(param_5 + 0xc) < 1)" ( (binary_expression "(int)*(uint *)(param_5 + 0xc) < 1" (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) < number_literal) ))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "uVar20 = puVar22[3];" (assignment_expression "uVar20 = puVar22[3]" identifier = (subscript_expression "puVar22[3]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar4;" (assignment_expression "uVar13 = uVar4" identifier = identifier) ;) (while_statement "while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" while (parenthesized_expression "(uVar18 != uVar20)" ( (binary_expression "uVar18 != uVar20" identifier != identifier) )) (compound_statement "{\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" { (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;" if (parenthesized_expression "(uVar13 == *(uint *)(param_5 + 0xc))" ( (binary_expression "uVar13 == *(uint *)(param_5 + 0xc)" identifier == (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "uVar20 = puVar22[0xf];" (assignment_expression "uVar20 = puVar22[0xf]" identifier = (subscript_expression "puVar22[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" identifier = (binary_expression "puVar22 + 0xc" identifier + number_literal)) ;) })) }))))) (if_statement "if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" if (parenthesized_expression "(puVar22[5] == 0)" ( (binary_expression "puVar22[5] == 0" (subscript_expression "puVar22[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" else (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar15 = *(ushort *)(puVar22[5] + 2);" (assignment_expression "uVar15 = *(ushort *)(puVar22[5] + 2)" identifier = (pointer_expression "*(ushort *)(puVar22[5] + 2)" * (cast_expression "(ushort *)(puVar22[5] + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22[5] + 2)" ( (binary_expression "puVar22[5] + 2" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 8;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 8" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 8" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 8" identifier >> number_literal))) ;) (if_statement "if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }" { (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" identifier (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" ( number_literal , (string_literal ""%.*s [%d,%d] etype: %s"" " string_content ") , identifier , (binary_expression "puVar22[5] + 4" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) (goto_statement "goto LAB_0001a2a0;" goto statement_identifier ;) })) }))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" identifier (argument_list "(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" ( number_literal , (string_literal ""[%d,%d] etype: %s"" " string_content ") , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) }))) })) (labeled_statement "LAB_0001a2a0:\n                pbVar19 = param_2 + -8;" statement_identifier : (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" identifier = (binary_expression "param_2 + -8" identifier + number_literal)) ;)) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "__printf_chk(1,"%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%s  SAS address: 0x",param_1)" identifier (argument_list "(1,"%s  SAS address: 0x",param_1)" ( number_literal , (string_literal ""%s  SAS address: 0x"" " string_content ") , identifier ))) ;) (do_statement "do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);" do (compound_statement "{\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) ;) (expression_statement "param_2 = param_2 + 0xc;" (assignment_expression "param_2 = param_2 + 0xc" identifier = (binary_expression "param_2 + 0xc" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != local_98)" ( (binary_expression "uVar5 != local_98" identifier != identifier) )) ;) })) }) (else_clause "else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" else (compound_statement "{\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" { (expression_statement "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);" (call_expression "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4)" identifier (argument_list "(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4)" ( number_literal , (string_literal ""%sunrecognised element type [%d] for desc_type 1\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }))))) }) (else_clause "else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" else (compound_statement "{\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" { (expression_statement "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);" (call_expression "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14)" identifier (argument_list "(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14)" ( number_literal , (string_literal ""%sunrecognised descriptor type [%d]\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }))))) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar14 == 0xb)" ( (binary_expression "bVar14 == 0xb" identifier == number_literal) )) (compound_statement "{\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }" { (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: PCIe\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: PCIe\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);" (call_expression "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1)" identifier (argument_list "(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1)" ( number_literal , (string_literal ""%sfor this protocol EIP must be set (it isn\'t)\n"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "local_94 = 0xe;" (assignment_expression "local_94 = 0xe" identifier = number_literal) ;) (expression_statement "iVar24 = 0xb;" (assignment_expression "iVar24 = 0xb" identifier = number_literal) ;) (expression_statement "local_98 = 6;" (assignment_expression "local_98 = 6" identifier = number_literal) ;) (expression_statement "local_9c = 2;" (assignment_expression "local_9c = 2" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);" statement_identifier : (expression_statement "__printf_chk(1,"%sTransport protocol: FCP\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: FCP\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: FCP\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: FCP\n"" " string_content escape_sequence ") , identifier ))) ;)) (if_statement "if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }" if (parenthesized_expression "(iVar24 < (int)param_3)" ( (binary_expression "iVar24 < (int)param_3" identifier < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }" { (expression_statement "uVar4 = (uint)param_2[local_9c];" (assignment_expression "uVar4 = (uint)param_2[local_9c]" identifier = (cast_expression "(uint)param_2[local_9c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[local_9c]" identifier [ identifier ]))) ;) (expression_statement "uVar5 = uVar4;" (assignment_expression "uVar5 = uVar4" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);" (call_expression "__printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4)" identifier (argument_list "(1,"%snumber of ports: %d\n",param_1,uVar4)" ( number_literal , (string_literal ""%snumber of ports: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%snode_name: ",param_1);" (call_expression "__printf_chk(1,"%snode_name: ",param_1)" identifier (argument_list "(1,"%snode_name: ",param_1)" ( number_literal , (string_literal ""%snode_name: "" " string_content ") , identifier ))) ;) (expression_statement "pbVar19 = param_2 + local_98;" (assignment_expression "pbVar19 = param_2 + local_98" identifier = (binary_expression "param_2 + local_98" identifier + identifier)) ;) (do_statement "do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);" do (compound_statement "{\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14,uVar5);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14,uVar5)" identifier (argument_list "(1,&DAT_0001f329,bVar14,uVar5)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier , identifier ))) ;) }) while (parenthesized_expression "(param_2 + local_98 + 8 != pbVar19)" ( (binary_expression "param_2 + local_98 + 8 != pbVar19" (binary_expression "param_2 + local_98 + 8" (binary_expression "param_2 + local_98" identifier + identifier) + number_literal) != identifier) )) ;) (if_statement "if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }" if (parenthesized_expression "(local_a0 != 0)" ( (binary_expression "local_a0 != 0" identifier != number_literal) )) (compound_statement "{\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }" { (expression_statement "__printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);" (call_expression "__printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5)" identifier (argument_list "(1,", device slot number: %d",param_2[local_a0 + 5],uVar5)" ( number_literal , (string_literal "", device slot number: %d"" " string_content ") , (subscript_expression "param_2[local_a0 + 5]" identifier [ (binary_expression "local_a0 + 5" identifier + number_literal) ]) , identifier ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + local_94 + 0x10;" (assignment_expression "param_2 = param_2 + local_94 + 0x10" identifier = (binary_expression "param_2 + local_94 + 0x10" (binary_expression "param_2 + local_94" identifier + identifier) + number_literal)) ;) (do_statement "do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);" do (compound_statement "{\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          }" { (expression_statement "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);" (call_expression "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf])" identifier (argument_list "(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf])" ( number_literal , (string_literal ""%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n"" " string_content escape_sequence ") , identifier , identifier , (subscript_expression "param_2[-0x10]" identifier [ number_literal ]) , (subscript_expression "param_2[-0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);" (call_expression "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9])" identifier (argument_list "(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9])" ( number_literal , (string_literal ""%srequested hard address: %d, n_port identifier: %02x%02x%02x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "param_2[-0xc]" identifier [ number_literal ]) , (subscript_expression "param_2[-0xb]" identifier [ number_literal ]) , (subscript_expression "param_2[-10]" identifier [ number_literal ]) , (subscript_expression "param_2[-9]" identifier [ number_literal ]) ))) ;) (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" identifier = (binary_expression "param_2 + -8" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,"%s  n_port name: ",param_1);" (call_expression "__printf_chk(1,"%s  n_port name: ",param_1)" identifier (argument_list "(1,"%s  n_port name: ",param_1)" ( number_literal , (string_literal ""%s  n_port name: "" " string_content ") , identifier ))) ;) (do_statement "do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);" do (compound_statement "{\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) ;) (expression_statement "param_2 = param_2 + 0x10;" (assignment_expression "param_2 = param_2 + 0x10" identifier = (binary_expression "param_2 + 0x10" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 != local_a0)" ( (binary_expression "uVar4 != local_a0" identifier != identifier) )) ;) })) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (labeled_statement "LAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);" statement_identifier : (expression_statement "uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);" (assignment_expression "uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60)" identifier = (call_expression "sg_get_trans_proto_str(bVar14,0x40,local_60)" identifier (argument_list "(bVar14,0x40,local_60)" ( identifier , number_literal , identifier )))) ;)) (expression_statement "__printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);" (call_expression "__printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3)" identifier (argument_list "(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3)" ( number_literal , (string_literal ""%sTransport protocol: %s not decoded\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "iVar24 = *(int *)(param_6 + 0x50);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x50)" identifier = (pointer_expression "*(int *)(param_6 + 0x50)" * (cast_expression "(int *)(param_6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x50)" ( (binary_expression "param_6 + 0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" else (compound_statement "{\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" { (if_statement "if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }" if (parenthesized_expression "(bVar14 == 6)" ( (binary_expression "bVar14 == 6" identifier == number_literal) )) (compound_statement "{\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }" { (expression_statement "iVar24 = 5;" (assignment_expression "iVar24 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_000199cd;" goto statement_identifier ;) })) (if_statement "if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" if (parenthesized_expression "(bVar14 != 0xb)" ( (binary_expression "bVar14 != 0xb" identifier != number_literal) )) (compound_statement "{\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" { (if_statement "if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" { (expression_statement "local_94 = 0x10;" (assignment_expression "local_94 = 0x10" identifier = number_literal) ;) (expression_statement "iVar24 = 0xd;" (assignment_expression "iVar24 = 0xd" identifier = number_literal) ;) (expression_statement "local_98 = 8;" (assignment_expression "local_98 = 8" identifier = number_literal) ;) (expression_statement "local_9c = 4;" (assignment_expression "local_9c = 4" identifier = number_literal) ;) (expression_statement "local_a0 = 2;" (assignment_expression "local_a0 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00019709;" goto statement_identifier ;) })) (goto_statement "goto LAB_00019672;" goto statement_identifier ;) })) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: PCIe\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: PCIe\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if ((int)param_3 < 6) goto LAB_000196b0;" if (parenthesized_expression "((int)param_3 < 6)" ( (binary_expression "(int)param_3 < 6" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;)) (if_statement "if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(param_2[5] >> 5 == 1)" ( (binary_expression "param_2[5] >> 5 == 1" (binary_expression "param_2[5] >> 5" (subscript_expression "param_2[5]" identifier [ number_literal ]) >> number_literal) == number_literal) )) (compound_statement "{\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "__printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);" (call_expression "__printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1)" identifier (argument_list "(1,"%sPCIe protocol type: NVMe\n",param_1)" ( number_literal , (string_literal ""%sPCIe protocol type: NVMe\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar5 = (uint)param_2[4];" (assignment_expression "uVar5 = (uint)param_2[4]" identifier = (cast_expression "(uint)param_2[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (expression_statement "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);" (call_expression "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1)" identifier (argument_list "(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1)" ( number_literal , (string_literal ""%snumber of ports: %d, not all ports: %d"" " string_content ") , identifier , identifier , (binary_expression "param_2[5] & 1" (subscript_expression "param_2[5]" identifier [ number_literal ]) & number_literal) ))) ;) (expression_statement "__printf_chk(1,", device slot number: %d\n",param_2[7]);" (call_expression "__printf_chk(1,", device slot number: %d\n",param_2[7])" identifier (argument_list "(1,", device slot number: %d\n",param_2[7])" ( number_literal , (string_literal "", device slot number: %d\n"" " string_content escape_sequence ") , (subscript_expression "param_2[7]" identifier [ number_literal ]) ))) ;) (expression_statement "pcVar6 = " (not reported)";" (assignment_expression "pcVar6 = " (not reported)"" identifier = (string_literal "" (not reported)"" " string_content ")) ;) (if_statement "if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }" if (parenthesized_expression "(*(short *)(param_2 + 10) != -1)" ( (binary_expression "*(short *)(param_2 + 10) != -1" (pointer_expression "*(short *)(param_2 + 10)" * (cast_expression "(short *)(param_2 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar6 = "";\n      }" { (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);" (call_expression "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6)" identifier (argument_list "(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6)" ( number_literal , (string_literal ""%sPCIe vendor id: 0x%x%s\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(short *)(param_2 + 10)" * (cast_expression "(short *)(param_2 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "__printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);" (call_expression "__printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc)" identifier (argument_list "(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc)" ( number_literal , (string_literal ""%sserial number: %.20s\n"" " string_content escape_sequence ") , identifier , (binary_expression "param_2 + 0xc" identifier + number_literal) ))) ;) (expression_statement "__printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);" (call_expression "__printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20)" identifier (argument_list "(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20)" ( number_literal , (string_literal ""%smodel number: %.40s\n"" " string_content escape_sequence ") , identifier , (binary_expression "param_2 + 0x20" identifier + number_literal) ))) ;) (if_statement "if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);" do (compound_statement "{\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        }" { (expression_statement "__printf_chk(1,"%sport index: %d\n",param_1,uVar4);" (call_expression "__printf_chk(1,"%sport index: %d\n",param_1,uVar4)" identifier (argument_list "(1,"%sport index: %d\n",param_1,uVar4)" ( number_literal , (string_literal ""%sport index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "bVar14 = param_2[uVar4 * 8 + 0x48];" (assignment_expression "bVar14 = param_2[uVar4 * 8 + 0x48]" identifier = (subscript_expression "param_2[uVar4 * 8 + 0x48]" identifier [ (binary_expression "uVar4 * 8 + 0x48" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ])) ;) (expression_statement "local_a0._0_1_ = bVar14 & 2;" (assignment_expression "local_a0._0_1_ = bVar14 & 2" (field_expression "local_a0._0_1_" identifier . field_identifier) = (binary_expression "bVar14 & 2" identifier & number_literal)) ;) (expression_statement "local_a4 = bVar14 & 4;" (assignment_expression "local_a4 = bVar14 & 4" identifier = (binary_expression "bVar14 & 4" identifier & number_literal)) ;) (expression_statement "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);" (call_expression "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1)" identifier (argument_list "(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1)" ( number_literal , (string_literal ""%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n"" " string_content escape_sequence ") , identifier , (binary_expression "(bVar14 & 4) != 0" (parenthesized_expression "(bVar14 & 4)" ( (binary_expression "bVar14 & 4" identifier & number_literal) )) != number_literal) , (binary_expression "(bVar14 & 2) != 0" (parenthesized_expression "(bVar14 & 2)" ( (binary_expression "bVar14 & 2" identifier & number_literal) )) != number_literal) , (binary_expression "bVar14 & 1" identifier & number_literal) ))) ;) (if_statement "if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }" if (parenthesized_expression "((bVar14 & 1) != 0)" ( (binary_expression "(bVar14 & 1) != 0" (parenthesized_expression "(bVar14 & 1)" ( (binary_expression "bVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }" { (expression_statement "__printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));" (call_expression "__printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49))" identifier (argument_list "(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49))" ( number_literal , (string_literal ""%s  controller id: 0x%x\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(undefined2 *)(param_2 + uVar4 * 8 + 0x49)" * (cast_expression "(undefined2 *)(param_2 + uVar4 * 8 + 0x49)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + uVar4 * 8 + 0x49)" ( (binary_expression "param_2 + uVar4 * 8 + 0x49" (binary_expression "param_2 + uVar4 * 8" identifier + (binary_expression "uVar4 * 8" identifier * number_literal)) + number_literal) )))) ))) ;) })) (if_statement "if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }" if (parenthesized_expression "((byte)local_a0 != 0)" ( (binary_expression "(byte)local_a0 != 0" (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }" { (expression_statement "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);" (call_expression "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7)" identifier (argument_list "(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7)" ( number_literal , (string_literal ""%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "param_2[uVar4 * 8 + 0x4c]" identifier [ (binary_expression "uVar4 * 8 + 0x4c" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ]) , (binary_expression "param_2[uVar4 * 8 + 0x4d] >> 3" (subscript_expression "param_2[uVar4 * 8 + 0x4d]" identifier [ (binary_expression "uVar4 * 8 + 0x4d" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ]) >> number_literal) , (binary_expression "param_2[uVar4 * 8 + 0x4d] & 7" (subscript_expression "param_2[uVar4 * 8 + 0x4d]" identifier [ (binary_expression "uVar4 * 8 + 0x4d" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ]) & number_literal) ))) ;) })) (if_statement "if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }" if (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }" { (expression_statement "__printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);" (call_expression "__printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff)" identifier (argument_list "(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff)" ( number_literal , (string_literal ""%s  physical slot number: 0x%x\n"" " string_content escape_sequence ") , identifier , (binary_expression "*(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff" (pointer_expression "*(ushort *)(param_2 + uVar4 * 8 + 0x4e)" * (cast_expression "(ushort *)(param_2 + uVar4 * 8 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + uVar4 * 8 + 0x4e)" ( (binary_expression "param_2 + uVar4 * 8 + 0x4e" (binary_expression "param_2 + uVar4 * 8" identifier + (binary_expression "uVar4 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) ))) ;) })) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != uVar4)" ( (binary_expression "uVar5 != uVar4" identifier != identifier) )) ;) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5)" identifier (argument_list "(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5)" ( number_literal , (string_literal ""%sTransport protocol: PCIe subprotocol=0x%x not decoded\n"" " string_content escape_sequence ") , identifier , (binary_expression "param_2[5] >> 5" (subscript_expression "param_2[5]" identifier [ number_literal ]) >> number_literal) ))) ;) (expression_statement "iVar24 = *(int *)(param_6 + 0x50);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x50)" identifier = (pointer_expression "*(int *)(param_6 + 0x50)" * (cast_expression "(int *)(param_6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x50)" ( (binary_expression "param_6 + 0x50" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n    hex2stdout(param_2,param_3,0);\n  }" { (expression_statement "hex2stdout(param_2,param_3,0);" (call_expression "hex2stdout(param_2,param_3,0)" identifier (argument_list "(param_2,param_3,0)" ( identifier , identifier , number_literal ))) ;) })) (labeled_statement "LAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "FUN_0001eef0();" (call_expression "FUN_0001eef0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\nadditional_elem_helper(char *pad,uint8_t *ae_bp,int len,int etype,th_es_t *tesp,opts_t *op)\n\n{\n  uint8_t uVar1;\n  int iVar2;\n  uint uVar3;\n  join_row_t *pjVar4;\n  char cVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  int iVar15;\n  char *pcVar16;\n  byte bVar17;\n  ushort uVar18;\n  char *pcVar19;\n  char *pcVar20;\n  uint uVar21;\n  uint8_t *puVar22;\n  uint8_t *puVar23;\n  int iVar24;\n  join_row_t *pjVar25;\n  join_row_t *pjVar26;\n  int iVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  char b [64];\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (op->inner_hex != false) {\n    uVar8 = 0;\n    do {\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    } while (len != uVar8);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar17 = *ae_bp & 0xf;\n  if ((*ae_bp & 0x10) == 0) {\n    if (bVar17 == 6) {\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0) {\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);\n    iVar27 = op->verbose;\n  }\n  else {\n    if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n    if (len < 6) goto LAB_000196b0;\n    if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);\n    iVar27 = op->verbose;\n  }\n  if (iVar27 != 0) {\n    hex2stdout(ae_bp,len,0);\n  }\nLAB_000196b0:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "void __regparm3\nadditional_elem_helper(char *pad,uint8_t *ae_bp,int len,int etype,th_es_t *tesp,opts_t *op)\n\n{\n  uint8_t uVar1;\n  int iVar2;\n  uint uVar3;\n  join_row_t *pjVar4;\n  char cVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  int iVar15;\n  char *pcVar16;\n  byte bVar17;\n  ushort uVar18;\n  char *pcVar19;\n  char *pcVar20;\n  uint uVar21;\n  uint8_t *puVar22;\n  uint8_t *puVar23;\n  int iVar24;\n  join_row_t *pjVar25;\n  join_row_t *pjVar26;\n  int iVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  char b [64];\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (op->inner_hex != false) {\n    uVar8 = 0;\n    do {\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    } while (len != uVar8);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar17 = *ae_bp & 0xf;\n  if ((*ae_bp & 0x10) == 0) {\n    if (bVar17 == 6) {\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0) {\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);\n    iVar27 = op->verbose;\n  }\n  else {\n    if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n    if (len < 6) goto LAB_000196b0;\n    if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);\n    iVar27 = op->verbose;\n  }\n  if (iVar27 != 0) {\n    hex2stdout(ae_bp,len,0);\n  }\nLAB_000196b0:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "additional_elem_helper(char *pad,uint8_t *ae_bp,int len,int etype,th_es_t *tesp,opts_t *op)" identifier (parameter_list "(char *pad,uint8_t *ae_bp,int len,int etype,th_es_t *tesp,opts_t *op)" ( (parameter_declaration "char *pad" primitive_type (pointer_declarator "*pad" * identifier)) , (parameter_declaration "uint8_t *ae_bp" primitive_type (pointer_declarator "*ae_bp" * identifier)) , (parameter_declaration "int len" primitive_type identifier) , (parameter_declaration "int etype" primitive_type identifier) , (parameter_declaration "th_es_t *tesp" type_identifier (pointer_declarator "*tesp" * identifier)) , (parameter_declaration "opts_t *op" type_identifier (pointer_declarator "*op" * identifier)) ))) (compound_statement "{\n  uint8_t uVar1;\n  int iVar2;\n  uint uVar3;\n  join_row_t *pjVar4;\n  char cVar5;\n  undefined4 uVar6;\n  uint uVar7;\n  uint uVar8;\n  char *pcVar9;\n  char *pcVar10;\n  char *pcVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  int iVar15;\n  char *pcVar16;\n  byte bVar17;\n  ushort uVar18;\n  char *pcVar19;\n  char *pcVar20;\n  uint uVar21;\n  uint8_t *puVar22;\n  uint8_t *puVar23;\n  int iVar24;\n  join_row_t *pjVar25;\n  join_row_t *pjVar26;\n  int iVar27;\n  int in_GS_OFFSET;\n  bool bVar28;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  char b [64];\n  \n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (op->inner_hex != false) {\n    uVar8 = 0;\n    do {\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    } while (len != uVar8);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar17 = *ae_bp & 0xf;\n  if ((*ae_bp & 0x10) == 0) {\n    if (bVar17 == 6) {\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0) {\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);\n    iVar27 = op->verbose;\n  }\n  else {\n    if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n    if (len < 6) goto LAB_000196b0;\n    if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);\n    iVar27 = op->verbose;\n  }\n  if (iVar27 != 0) {\n    hex2stdout(ae_bp,len,0);\n  }\nLAB_000196b0:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "uint8_t uVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "join_row_t *pjVar4;" type_identifier (pointer_declarator "*pjVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "byte bVar17;" type_identifier identifier ;) (declaration "ushort uVar18;" type_identifier identifier ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "uint uVar21;" type_identifier identifier ;) (declaration "uint8_t *puVar22;" primitive_type (pointer_declarator "*puVar22" * identifier) ;) (declaration "uint8_t *puVar23;" primitive_type (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "join_row_t *pjVar25;" type_identifier (pointer_declarator "*pjVar25" * identifier) ;) (declaration "join_row_t *pjVar26;" type_identifier (pointer_declarator "*pjVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar28;" primitive_type identifier ;) (declaration "byte local_a4;" type_identifier identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "char b [64];" primitive_type (array_declarator "b [64]" identifier [ number_literal ]) ;) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (op->inner_hex != false) {\n    uVar8 = 0;\n    do {\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    } while (len != uVar8);\n    putchar(10);\n    goto LAB_000196b0;\n  }" if (parenthesized_expression "(op->inner_hex != false)" ( (binary_expression "op->inner_hex != false" (field_expression "op->inner_hex" identifier -> field_identifier) != false) )) (compound_statement "{\n    uVar8 = 0;\n    do {\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    } while (len != uVar8);\n    putchar(10);\n    goto LAB_000196b0;\n  }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    } while (len != uVar8);" do (compound_statement "{\n      if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }\n      puVar22 = ae_bp + uVar8;\n      uVar8 = uVar8 + 1;\n      __printf_chk(1,"%02x ",*puVar22);\n    }" { (if_statement "if ((uVar8 & 0xf) == 0) {\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }" if (parenthesized_expression "((uVar8 & 0xf) == 0)" ( (binary_expression "(uVar8 & 0xf) == 0" (parenthesized_expression "(uVar8 & 0xf)" ( (binary_expression "uVar8 & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar11 = "\n";\n        if (uVar8 == 0) {\n          pcVar11 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar11,pad);\n      }" { (expression_statement "pcVar11 = "\n";" (assignment_expression "pcVar11 = "\n"" identifier = (string_literal ""\n"" " escape_sequence ")) ;) (if_statement "if (uVar8 == 0) {\n          pcVar11 = "";\n        }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar11 = "";\n        }" { (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,&DAT_0001f086,pcVar11,pad);" (call_expression "__printf_chk(1,&DAT_0001f086,pcVar11,pad)" identifier (argument_list "(1,&DAT_0001f086,pcVar11,pad)" ( number_literal , (pointer_expression "&DAT_0001f086" & identifier) , identifier , identifier ))) ;) })) (expression_statement "puVar22 = ae_bp + uVar8;" (assignment_expression "puVar22 = ae_bp + uVar8" identifier = (binary_expression "ae_bp + uVar8" identifier + identifier)) ;) (expression_statement "uVar8 = uVar8 + 1;" (assignment_expression "uVar8 = uVar8 + 1" identifier = (binary_expression "uVar8 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,"%02x ",*puVar22);" (call_expression "__printf_chk(1,"%02x ",*puVar22)" identifier (argument_list "(1,"%02x ",*puVar22)" ( number_literal , (string_literal ""%02x "" " string_content ") , (pointer_expression "*puVar22" * identifier) ))) ;) }) while (parenthesized_expression "(len != uVar8)" ( (binary_expression "len != uVar8" identifier != identifier) )) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (expression_statement "bVar17 = *ae_bp & 0xf;" (assignment_expression "bVar17 = *ae_bp & 0xf" identifier = (binary_expression "*ae_bp & 0xf" (pointer_expression "*ae_bp" * identifier) & number_literal)) ;) (if_statement "if ((*ae_bp & 0x10) == 0) {\n    if (bVar17 == 6) {\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0) {\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);\n    iVar27 = op->verbose;\n  }\n  else {\n    if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n    if (len < 6) goto LAB_000196b0;\n    if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);\n    iVar27 = op->verbose;\n  }" if (parenthesized_expression "((*ae_bp & 0x10) == 0)" ( (binary_expression "(*ae_bp & 0x10) == 0" (parenthesized_expression "(*ae_bp & 0x10)" ( (binary_expression "*ae_bp & 0x10" (pointer_expression "*ae_bp" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (bVar17 == 6) {\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }\n    if (bVar17 == 0) {\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);\n    iVar27 = op->verbose;\n  }" { (if_statement "if (bVar17 == 6) {\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar17 == 6)" ( (binary_expression "bVar17 == 6" identifier == number_literal) )) (compound_statement "{\n      iVar27 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);\n      if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "iVar27 = 3;" (assignment_expression "iVar27 = 3" identifier = number_literal) ;) (labeled_statement "LAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",pad);" statement_identifier : (expression_statement "__printf_chk(1,"%sTransport protocol: SAS\n",pad);" (call_expression "__printf_chk(1,"%sTransport protocol: SAS\n",pad)" identifier (argument_list "(1,"%sTransport protocol: SAS\n",pad)" ( number_literal , (string_literal ""%sTransport protocol: SAS\n"" " string_content escape_sequence ") , identifier ))) ;)) (if_statement "if (iVar27 < len) {\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }" if (parenthesized_expression "(iVar27 < len)" ( (binary_expression "iVar27 < len" identifier < identifier) )) (compound_statement "{\n        iVar27 = op->do_filter;\n        bVar28 = (*ae_bp & 0x10) != 0;\n        if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar17 = ae_bp[iVar24] >> 6;\n        if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }\n        if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }\n      }" { (expression_statement "iVar27 = op->do_filter;" (assignment_expression "iVar27 = op->do_filter" identifier = (field_expression "op->do_filter" identifier -> field_identifier)) ;) (expression_statement "bVar28 = (*ae_bp & 0x10) != 0;" (assignment_expression "bVar28 = (*ae_bp & 0x10) != 0" identifier = (binary_expression "(*ae_bp & 0x10) != 0" (parenthesized_expression "(*ae_bp & 0x10)" ( (binary_expression "*ae_bp & 0x10" (pointer_expression "*ae_bp" * identifier) & number_literal) )) != number_literal)) ;) (if_statement "if (bVar28) {\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" if (parenthesized_expression "(bVar28)" ( identifier )) (compound_statement "{\n          local_74 = 8;\n          iVar15 = 4;\n          iVar24 = 5;\n          local_7c = 0x10;\n          local_90 = ae_bp[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }" { (expression_statement "local_74 = 8;" (assignment_expression "local_74 = 8" identifier = number_literal) ;) (expression_statement "iVar15 = 4;" (assignment_expression "iVar15 = 4" identifier = number_literal) ;) (expression_statement "iVar24 = 5;" (assignment_expression "iVar24 = 5" identifier = number_literal) ;) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" identifier = number_literal) ;) (expression_statement "local_90 = ae_bp[2] & 3;" (assignment_expression "local_90 = ae_bp[2] & 3" identifier = (binary_expression "ae_bp[2] & 3" (subscript_expression "ae_bp[2]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "local_84 = 8;" (assignment_expression "local_84 = 8" identifier = number_literal) ;) (expression_statement "local_88 = 8;" (assignment_expression "local_88 = 8" identifier = number_literal) ;) (expression_statement "local_80 = 7;" (assignment_expression "local_80 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" else (compound_statement "{\n          local_74 = 6;\n          iVar15 = 2;\n          iVar24 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" { (expression_statement "local_74 = 6;" (assignment_expression "local_74 = 6" identifier = number_literal) ;) (expression_statement "iVar15 = 2;" (assignment_expression "iVar15 = 2" identifier = number_literal) ;) (expression_statement "iVar24 = 3;" (assignment_expression "iVar24 = 3" identifier = number_literal) ;) (expression_statement "local_7c = 0xe;" (assignment_expression "local_7c = 0xe" identifier = number_literal) ;) (expression_statement "local_84 = 6;" (assignment_expression "local_84 = 6" identifier = number_literal) ;) (expression_statement "local_88 = 4;" (assignment_expression "local_88 = 4" identifier = number_literal) ;) (expression_statement "local_80 = 5;" (assignment_expression "local_80 = 5" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar17 = ae_bp[iVar24] >> 6;" (assignment_expression "bVar17 = ae_bp[iVar24] >> 6" identifier = (binary_expression "ae_bp[iVar24] >> 6" (subscript_expression "ae_bp[iVar24]" identifier [ identifier ]) >> number_literal)) ;) (if_statement "if (1 < op->verbose) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }" if (parenthesized_expression "(1 < op->verbose)" ( (binary_expression "1 < op->verbose" number_literal < (field_expression "op->verbose" identifier -> field_identifier)) )) (compound_statement "{\n          __printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);\n        }" { (expression_statement "__printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17);" (call_expression "__printf_chk(1,"%sdescriptor_type: %d\n",pad,bVar17)" identifier (argument_list "(1,"%sdescriptor_type: %d\n",pad,bVar17)" ( number_literal , (string_literal ""%sdescriptor_type: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (if_statement "if (bVar17 == 0) {\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }\n        else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar8 = (uint)ae_bp[iVar15];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);\n          if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }\n          putchar(10);\n          if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }\n        }" { (expression_statement "uVar8 = (uint)ae_bp[iVar15];" (assignment_expression "uVar8 = (uint)ae_bp[iVar15]" identifier = (cast_expression "(uint)ae_bp[iVar15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ae_bp[iVar15]" identifier [ identifier ]))) ;) (expression_statement "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1);" (call_expression "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1)" identifier (argument_list "(1,"%snumber of phys: %d, not all phys: %d",pad,uVar8,ae_bp[iVar24] & 1)" ( number_literal , (string_literal ""%snumber of phys: %d, not all phys: %d"" " string_content ") , identifier , identifier , (binary_expression "ae_bp[iVar24] & 1" (subscript_expression "ae_bp[iVar24]" identifier [ identifier ]) & number_literal) ))) ;) (if_statement "if (bVar28) {\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }" if (parenthesized_expression "(bVar28)" ( identifier )) (compound_statement "{\n            __printf_chk(1,", device slot number: %d",ae_bp[local_80]);\n          }" { (expression_statement "__printf_chk(1,", device slot number: %d",ae_bp[local_80]);" (call_expression "__printf_chk(1,", device slot number: %d",ae_bp[local_80])" identifier (argument_list "(1,", device slot number: %d",ae_bp[local_80])" ( number_literal , (string_literal "", device slot number: %d"" " string_content ") , (subscript_expression "ae_bp[local_80]" identifier [ identifier ]) ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (uVar8 != 0) {\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n            local_a0 = 0;\n            puVar22 = ae_bp + local_88 + 0xc;\n            pcVar11 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);\n          }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "puVar22 = ae_bp + local_88 + 0xc;" (assignment_expression "puVar22 = ae_bp + local_88 + 0xc" identifier = (binary_expression "ae_bp + local_88 + 0xc" (binary_expression "ae_bp + local_88" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            } while (uVar8 != local_a0);" do (compound_statement "{\n              __printf_chk(1,"%sphy index: %d\n",pad,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );\n              bVar17 = puVar22[-10];\n              if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              puVar23 = puVar22 + -8;\n              bVar17 = sg_all_zeros(puVar23,8);\n              if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              puVar22 = puVar22 + 0x1c;\n            }" { (expression_statement "__printf_chk(1,"%sphy index: %d\n",pad,local_a0);" (call_expression "__printf_chk(1,"%sphy index: %d\n",pad,local_a0)" identifier (argument_list "(1,"%sphy index: %d\n",pad,local_a0)" ( number_literal , (string_literal ""%sphy index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          );" (call_expression "__printf_chk(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          )" identifier (argument_list "(1,"%s  SAS device type: %s\n",pad,sas_device_type[puVar22[-0xc] >> 4 & 7]\n                          )" ( number_literal , (string_literal ""%s  SAS device type: %s\n"" " string_content escape_sequence ") , identifier , (subscript_expression "sas_device_type[puVar22[-0xc] >> 4 & 7]" identifier [ (binary_expression "puVar22[-0xc] >> 4 & 7" (binary_expression "puVar22[-0xc] >> 4" (subscript_expression "puVar22[-0xc]" identifier [ number_literal ]) >> number_literal) & number_literal) ]) ))) ;) (expression_statement "bVar17 = puVar22[-10];" (assignment_expression "bVar17 = puVar22[-10]" identifier = (subscript_expression "puVar22[-10]" identifier [ number_literal ])) ;) (if_statement "if ((iVar27 == 0) || ((bVar17 & 0xe) != 0)) {\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }\n              else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }" if (parenthesized_expression "((iVar27 == 0) || ((bVar17 & 0xe) != 0))" ( (binary_expression "(iVar27 == 0) || ((bVar17 & 0xe) != 0)" (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar17 & 0xe) != 0)" ( (binary_expression "(bVar17 & 0xe) != 0" (parenthesized_expression "(bVar17 & 0xe)" ( (binary_expression "bVar17 & 0xe" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                pcVar16 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }\n                pcVar20 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);\n                if (iVar27 != 0) goto LAB_00019e40;\n                bVar17 = puVar22[-9];\nLAB_00019e48:\n                pcVar16 = pcVar11;\n                if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }\n                pcVar20 = " SMP";\n                if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }\n                pcVar10 = " STP";\n                if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }\n                pcVar19 = " SSP";\n                if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }\n                pcVar9 = " SATA_port_selector";\n                if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);\n              }" { (expression_statement "pcVar16 = " SMP";" (assignment_expression "pcVar16 = " SMP"" identifier = (string_literal "" SMP"" " string_content ")) ;) (if_statement "if ((bVar17 & 2) == 0) {\n                  pcVar16 = pcVar11;\n                }" if (parenthesized_expression "((bVar17 & 2) == 0)" ( (binary_expression "(bVar17 & 2) == 0" (parenthesized_expression "(bVar17 & 2)" ( (binary_expression "bVar17 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar16 = pcVar11;\n                }" { (expression_statement "pcVar16 = pcVar11;" (assignment_expression "pcVar16 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar20 = " STP";" (assignment_expression "pcVar20 = " STP"" identifier = (string_literal "" STP"" " string_content ")) ;) (if_statement "if ((bVar17 & 4) == 0) {\n                  pcVar20 = pcVar11;\n                }" if (parenthesized_expression "((bVar17 & 4) == 0)" ( (binary_expression "(bVar17 & 4) == 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar20 = pcVar11;\n                }" { (expression_statement "pcVar20 = pcVar11;" (assignment_expression "pcVar20 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar10 = " SSP";" (assignment_expression "pcVar10 = " SSP"" identifier = (string_literal "" SSP"" " string_content ")) ;) (if_statement "if ((bVar17 & 8) == 0) {\n                  pcVar10 = pcVar11;\n                }" if (parenthesized_expression "((bVar17 & 8) == 0)" ( (binary_expression "(bVar17 & 8) == 0" (parenthesized_expression "(bVar17 & 8)" ( (binary_expression "bVar17 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar10 = pcVar11;\n                }" { (expression_statement "pcVar10 = pcVar11;" (assignment_expression "pcVar10 = pcVar11" identifier = identifier) ;) })) (expression_statement "__printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16);" (call_expression "__printf_chk(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16)" identifier (argument_list "(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,pcVar16)" ( number_literal , (string_literal ""%s  initiator port for:%s%s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar27 != 0) goto LAB_00019e40;" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019e40;" goto statement_identifier ;)) (expression_statement "bVar17 = puVar22[-9];" (assignment_expression "bVar17 = puVar22[-9]" identifier = (subscript_expression "puVar22[-9]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00019e48:\n                pcVar16 = pcVar11;" statement_identifier : (expression_statement "pcVar16 = pcVar11;" (assignment_expression "pcVar16 = pcVar11" identifier = identifier) ;)) (if_statement "if ((bVar17 & 1) != 0) {\n                  pcVar16 = " SATA_device";\n                }" if (parenthesized_expression "((bVar17 & 1) != 0)" ( (binary_expression "(bVar17 & 1) != 0" (parenthesized_expression "(bVar17 & 1)" ( (binary_expression "bVar17 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  pcVar16 = " SATA_device";\n                }" { (expression_statement "pcVar16 = " SATA_device";" (assignment_expression "pcVar16 = " SATA_device"" identifier = (string_literal "" SATA_device"" " string_content ")) ;) })) (expression_statement "pcVar20 = " SMP";" (assignment_expression "pcVar20 = " SMP"" identifier = (string_literal "" SMP"" " string_content ")) ;) (if_statement "if ((bVar17 & 2) == 0) {\n                  pcVar20 = pcVar11;\n                }" if (parenthesized_expression "((bVar17 & 2) == 0)" ( (binary_expression "(bVar17 & 2) == 0" (parenthesized_expression "(bVar17 & 2)" ( (binary_expression "bVar17 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar20 = pcVar11;\n                }" { (expression_statement "pcVar20 = pcVar11;" (assignment_expression "pcVar20 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar10 = " STP";" (assignment_expression "pcVar10 = " STP"" identifier = (string_literal "" STP"" " string_content ")) ;) (if_statement "if ((bVar17 & 4) == 0) {\n                  pcVar10 = pcVar11;\n                }" if (parenthesized_expression "((bVar17 & 4) == 0)" ( (binary_expression "(bVar17 & 4) == 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar10 = pcVar11;\n                }" { (expression_statement "pcVar10 = pcVar11;" (assignment_expression "pcVar10 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar19 = " SSP";" (assignment_expression "pcVar19 = " SSP"" identifier = (string_literal "" SSP"" " string_content ")) ;) (if_statement "if ((bVar17 & 8) == 0) {\n                  pcVar19 = pcVar11;\n                }" if (parenthesized_expression "((bVar17 & 8) == 0)" ( (binary_expression "(bVar17 & 8) == 0" (parenthesized_expression "(bVar17 & 8)" ( (binary_expression "bVar17 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar19 = pcVar11;\n                }" { (expression_statement "pcVar19 = pcVar11;" (assignment_expression "pcVar19 = pcVar11" identifier = identifier) ;) })) (expression_statement "pcVar9 = " SATA_port_selector";" (assignment_expression "pcVar9 = " SATA_port_selector"" identifier = (string_literal "" SATA_port_selector"" " string_content ")) ;) (if_statement "if (-1 < (char)bVar17) {\n                  pcVar9 = pcVar11;\n                }" if (parenthesized_expression "(-1 < (char)bVar17)" ( (binary_expression "-1 < (char)bVar17" number_literal < (cast_expression "(char)bVar17" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar9 = pcVar11;\n                }" { (expression_statement "pcVar9 = pcVar11;" (assignment_expression "pcVar9 = pcVar11" identifier = identifier) ;) })) (expression_statement "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16);" (call_expression "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16)" identifier (argument_list "(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20\n                             ,pcVar16)" ( number_literal , (string_literal ""%s  target port for:%s%s%s%s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }" else (compound_statement "{\nLAB_00019e40:\n                bVar17 = puVar22[-9];\n                if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;\n              }" { (labeled_statement "LAB_00019e40:\n                bVar17 = puVar22[-9];" statement_identifier : (expression_statement "bVar17 = puVar22[-9];" (assignment_expression "bVar17 = puVar22[-9]" identifier = (subscript_expression "puVar22[-9]" identifier [ number_literal ])) ;)) (if_statement "if ((bVar17 & 0x8f) != 0) goto LAB_00019e48;" if (parenthesized_expression "((bVar17 & 0x8f) != 0)" ( (binary_expression "(bVar17 & 0x8f) != 0" (parenthesized_expression "(bVar17 & 0x8f)" ( (binary_expression "bVar17 & 0x8f" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00019e48;" goto statement_identifier ;)) }))) (expression_statement "puVar23 = puVar22 + -8;" (assignment_expression "puVar23 = puVar22 + -8" identifier = (binary_expression "puVar22 + -8" identifier + number_literal)) ;) (expression_statement "bVar17 = sg_all_zeros(puVar23,8);" (assignment_expression "bVar17 = sg_all_zeros(puVar23,8)" identifier = (call_expression "sg_all_zeros(puVar23,8)" identifier (argument_list "(puVar23,8)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar27 == 0) || ((bVar17 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }\n              else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }" if (parenthesized_expression "((iVar27 == 0) || ((bVar17 ^ 1) != 0))" ( (binary_expression "(iVar27 == 0) || ((bVar17 ^ 1) != 0)" (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar17 ^ 1) != 0)" ( (binary_expression "(bVar17 ^ 1) != 0" (parenthesized_expression "(bVar17 ^ 1)" ( (binary_expression "bVar17 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n                __printf_chk(1,"%s  attached SAS address: 0x",pad);\n                if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);\n              }" { (expression_statement "__printf_chk(1,"%s  attached SAS address: 0x",pad);" (call_expression "__printf_chk(1,"%s  attached SAS address: 0x",pad)" identifier (argument_list "(1,"%s  attached SAS address: 0x",pad)" ( number_literal , (string_literal ""%s  attached SAS address: 0x"" " string_content ") , identifier ))) ;) (if_statement "if ((bVar17 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }" if (parenthesized_expression "((bVar17 ^ 1) == 0)" ( (binary_expression "(bVar17 ^ 1) == 0" (parenthesized_expression "(bVar17 ^ 1)" ( (binary_expression "bVar17 ^ 1" identifier ^ number_literal) )) == number_literal) )) (compound_statement "{\n                  putchar(0x30);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\n                  if (bVar17 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }" { (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" identifier (argument_list "(0x30)" ( number_literal ))) ;) (expression_statement "bVar17 = sg_all_zeros(puVar22,8);" (assignment_expression "bVar17 = sg_all_zeros(puVar22,8)" identifier = (call_expression "sg_all_zeros(puVar22,8)" identifier (argument_list "(puVar22,8)" ( identifier , number_literal )))) ;) (expression_statement "bVar17 = bVar17 ^ 1;" (assignment_expression "bVar17 = bVar17 ^ 1" identifier = (binary_expression "bVar17 ^ 1" identifier ^ number_literal)) ;) (labeled_statement "LAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);" statement_identifier : (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",pad);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",pad)" identifier (argument_list "(1,"\n%s  SAS address: 0x",pad)" ( number_literal , (string_literal ""\n%s  SAS address: 0x"" " escape_sequence string_content ") , identifier ))) ;)) (if_statement "if (bVar17 != 0) goto LAB_0001a030;" if (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001a030;" goto statement_identifier ;)) (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" identifier (argument_list "(0x30)" ( number_literal ))) ;) }) (else_clause "else {\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }" else (compound_statement "{\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);\n                  bVar17 = sg_all_zeros(puVar22,8);\n                  bVar17 = bVar17 ^ 1;\n                  if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;\n                }" { (do_statement "do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 != puVar23);" do (compound_statement "{\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  }" { (expression_statement "uVar1 = *puVar23;" (assignment_expression "uVar1 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,uVar1);" (call_expression "__printf_chk(1,&DAT_0001f329,uVar1)" identifier (argument_list "(1,&DAT_0001f329,uVar1)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(puVar22 != puVar23)" ( (binary_expression "puVar22 != puVar23" identifier != identifier) )) ;) (expression_statement "bVar17 = sg_all_zeros(puVar22,8);" (assignment_expression "bVar17 = sg_all_zeros(puVar22,8)" identifier = (call_expression "sg_all_zeros(puVar22,8)" identifier (argument_list "(puVar22,8)" ( identifier , number_literal )))) ;) (expression_statement "bVar17 = bVar17 ^ 1;" (assignment_expression "bVar17 = bVar17 ^ 1" identifier = (binary_expression "bVar17 ^ 1" identifier ^ number_literal)) ;) (if_statement "if ((iVar27 == 0) || (bVar17 != 0)) goto LAB_00019fce;" if (parenthesized_expression "((iVar27 == 0) || (bVar17 != 0))" ( (binary_expression "(iVar27 == 0) || (bVar17 != 0)" (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar17 != 0)" ( (binary_expression "bVar17 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00019fce;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);" statement_identifier : (expression_statement "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8]);" (call_expression "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8])" identifier (argument_list "(1,"\n%s  phy identifier: 0x%x\n",pad,puVar22[8])" ( number_literal , (string_literal ""\n%s  phy identifier: 0x%x\n"" " escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "puVar22[8]" identifier [ number_literal ]) ))) ;)) }) (else_clause "else {\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }" else (compound_statement "{\n                cVar5 = sg_all_zeros(puVar22,8);\n                if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }\n              }" { (expression_statement "cVar5 = sg_all_zeros(puVar22,8);" (assignment_expression "cVar5 = sg_all_zeros(puVar22,8)" identifier = (call_expression "sg_all_zeros(puVar22,8)" identifier (argument_list "(puVar22,8)" ( identifier , number_literal )))) ;) (if_statement "if (cVar5 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }" if (parenthesized_expression "(cVar5 == '\0')" ( (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  __printf_chk(1,"\n%s  SAS address: 0x",pad);\nLAB_0001a030:\n                  puVar23 = puVar22;\n                  do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);\n                  goto LAB_00019ff9;\n                }" { (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",pad);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",pad)" identifier (argument_list "(1,"\n%s  SAS address: 0x",pad)" ( number_literal , (string_literal ""\n%s  SAS address: 0x"" " escape_sequence string_content ") , identifier ))) ;) (labeled_statement "LAB_0001a030:\n                  puVar23 = puVar22;" statement_identifier : (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;)) (do_statement "do {\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  } while (puVar22 + 8 != puVar23);" do (compound_statement "{\n                    uVar1 = *puVar23;\n                    puVar23 = puVar23 + 1;\n                    __printf_chk(1,&DAT_0001f329,uVar1);\n                  }" { (expression_statement "uVar1 = *puVar23;" (assignment_expression "uVar1 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,uVar1);" (call_expression "__printf_chk(1,&DAT_0001f329,uVar1)" identifier (argument_list "(1,&DAT_0001f329,uVar1)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(puVar22 + 8 != puVar23)" ( (binary_expression "puVar22 + 8 != puVar23" (binary_expression "puVar22 + 8" identifier + number_literal) != identifier) )) ;) (goto_statement "goto LAB_00019ff9;" goto statement_identifier ;) })) }))) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar22 + 0x1c;" (assignment_expression "puVar22 = puVar22 + 0x1c" identifier = (binary_expression "puVar22 + 0x1c" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != local_a0)" ( (binary_expression "uVar8 != local_a0" identifier != identifier) )) ;) })) }) (else_clause "else if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }" else (if_statement "if (bVar17 == 1) {\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }" if (parenthesized_expression "(bVar17 == 1)" ( (binary_expression "bVar17 == 1" identifier == number_literal) )) (compound_statement "{\n          uVar8 = (uint)ae_bp[iVar15];\n          if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }\n        }" { (expression_statement "uVar8 = (uint)ae_bp[iVar15];" (assignment_expression "uVar8 = (uint)ae_bp[iVar15]" identifier = (cast_expression "(uint)ae_bp[iVar15]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ae_bp[iVar15]" identifier [ identifier ]))) ;) (if_statement "if (etype == 0x18) {\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }\n          else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }" if (parenthesized_expression "(etype == 0x18)" ( (binary_expression "etype == 0x18" identifier == number_literal) )) (compound_statement "{\n            uVar7 = uVar8;\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            __printf_chk(1,"%sSAS address: 0x",pad);\n            puVar22 = ae_bp + local_84;\n            do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);\n            if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }\n          }" { (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",pad,uVar8)" identifier (argument_list "(1,"%snumber of phys: %d\n",pad,uVar8)" ( number_literal , (string_literal ""%snumber of phys: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%sSAS address: 0x",pad);" (call_expression "__printf_chk(1,"%sSAS address: 0x",pad)" identifier (argument_list "(1,"%sSAS address: 0x",pad)" ( number_literal , (string_literal ""%sSAS address: 0x"" " string_content ") , identifier ))) ;) (expression_statement "puVar22 = ae_bp + local_84;" (assignment_expression "puVar22 = ae_bp + local_84" identifier = (binary_expression "ae_bp + local_84" identifier + identifier)) ;) (do_statement "do {\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            } while (ae_bp + local_84 + 8 != puVar22);" do (compound_statement "{\n              uVar1 = *puVar22;\n              puVar22 = puVar22 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1,uVar7);\n            }" { (expression_statement "uVar1 = *puVar22;" (assignment_expression "uVar1 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,uVar1,uVar7);" (call_expression "__printf_chk(1,&DAT_0001f329,uVar1,uVar7)" identifier (argument_list "(1,&DAT_0001f329,uVar1,uVar7)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier , identifier ))) ;) }) while (parenthesized_expression "(ae_bp + local_84 + 8 != puVar22)" ( (binary_expression "ae_bp + local_84 + 8 != puVar22" (binary_expression "ae_bp + local_84 + 8" (binary_expression "ae_bp + local_84" identifier + identifier) + number_literal) != identifier) )) ;) (expression_statement "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7);" (call_expression "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7)" identifier (argument_list "(1,"\n%sAttached connector; other_element pairs:\n",pad,uVar7)" ( number_literal , (string_literal ""\n%sAttached connector; other_element pairs:\n"" " escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (uVar8 != 0) {\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar21 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);\n            }" { (expression_statement "uVar21 = 0;" (assignment_expression "uVar21 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = local_90 & 0xfffffffd;" (assignment_expression "uVar7 = local_90 & 0xfffffffd" identifier = (binary_expression "local_90 & 0xfffffffd" identifier & number_literal)) ;) (do_statement "do {\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              } while (uVar8 != uVar21);" do (compound_statement "{\n                pcVar11 = pad;\n                uVar12 = uVar21;\n                __printf_chk(1,"%s  [%d] ",pad,uVar21);\n                pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];\n                if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a67a:\n                uVar21 = uVar21 + 1;\n                putchar(10);\n              }" { (expression_statement "pcVar11 = pad;" (assignment_expression "pcVar11 = pad" identifier = identifier) ;) (expression_statement "uVar12 = uVar21;" (assignment_expression "uVar12 = uVar21" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%s  [%d] ",pad,uVar21);" (call_expression "__printf_chk(1,"%s  [%d] ",pad,uVar21)" identifier (argument_list "(1,"%s  [%d] ",pad,uVar21)" ( number_literal , (string_literal ""%s  [%d] "" " string_content ") , identifier , identifier ))) ;) (expression_statement "pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c];" (assignment_expression "pcVar16 = (char *)(uint)ae_bp[uVar21 * 2 + local_7c]" identifier = (cast_expression "(char *)(uint)ae_bp[uVar21 * 2 + local_7c]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)ae_bp[uVar21 * 2 + local_7c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ae_bp[uVar21 * 2 + local_7c]" identifier [ (binary_expression "uVar21 * 2 + local_7c" (binary_expression "uVar21 * 2" identifier * number_literal) + identifier) ])))) ;) (if_statement "if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }" if (parenthesized_expression "(pcVar16 == (char *)0xff)" ( (binary_expression "pcVar16 == (char *)0xff" identifier == (cast_expression "(char *)0xff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  __printf_chk(1,"no connector",pcVar11,uVar12);\n                }" { (expression_statement "__printf_chk(1,"no connector",pcVar11,uVar12);" (call_expression "__printf_chk(1,"no connector",pcVar11,uVar12)" identifier (argument_list "(1,"no connector",pcVar11,uVar12)" ( number_literal , (string_literal ""no connector"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }" else (compound_statement "{\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                }" { (expression_statement "pjVar25 = tesp->j_base;" (assignment_expression "pjVar25 = tesp->j_base" identifier = (field_expression "tesp->j_base" identifier -> field_identifier)) ;) (if_statement "if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }" if (parenthesized_expression "(pjVar25 == (join_row_t *)0x0)" ( (binary_expression "pjVar25 == (join_row_t *)0x0" identifier == (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }" { (expression_statement "__printf_chk(1,"connector ei: %d",pcVar16,uVar12);" (call_expression "__printf_chk(1,"connector ei: %d",pcVar16,uVar12)" identifier (argument_list "(1,"connector ei: %d",pcVar16,uVar12)" ( number_literal , (string_literal ""connector ei: %d"" " string_content ") , identifier , identifier ))) ;) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);\n                    pcVar11 = pcVar16;\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }" { (if_statement "if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }" if (parenthesized_expression "((int)pcVar16 < tesp->num_j_rows)" ( (binary_expression "(int)pcVar16 < tesp->num_j_rows" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) (compound_statement "{\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);" do (compound_statement "{\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        }" { (if_statement "if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }" if (parenthesized_expression "((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i))" ( (binary_expression "(pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)" (parenthesized_expression "(pjVar25->etype == '\x19')" ( (binary_expression "pjVar25->etype == '\x19'" (field_expression "pjVar25->etype" identifier -> field_identifier) == (char_literal "'\x19'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar16 == (char *)pjVar25->indiv_i)" ( (binary_expression "pcVar16 == (char *)pjVar25->indiv_i" identifier == (cast_expression "(char *)pjVar25->indiv_i" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25->indiv_i" identifier -> field_identifier))) ))) )) (compound_statement "{\n                            puVar22 = pjVar25->enc_statp;\n                            if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;\n                            break;\n                          }" { (expression_statement "puVar22 = pjVar25->enc_statp;" (assignment_expression "puVar22 = pjVar25->enc_statp" identifier = (field_expression "pjVar25->enc_statp" identifier -> field_identifier)) ;) (if_statement "if (puVar22 != (uint8_t *)0x0) goto LAB_0001a70c;" if (parenthesized_expression "(puVar22 != (uint8_t *)0x0)" ( (binary_expression "puVar22 != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a70c;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "pjVar25 = pjVar25 + 1;" (assignment_expression "pjVar25 = pjVar25 + 1" identifier = (binary_expression "pjVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar27 < tesp->num_j_rows)" ( (binary_expression "iVar27 < tesp->num_j_rows" identifier < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) ;) })) }) (else_clause "else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }" else (if_statement "if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }" { (if_statement "if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }" if (parenthesized_expression "(((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0))" ( (binary_expression "((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)" (parenthesized_expression "((int)pcVar16 < tesp->num_j_rows)" ( (binary_expression "(int)pcVar16 < tesp->num_j_rows" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) && (parenthesized_expression "(pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)" ( (comma_expression "pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0" (assignment_expression "pjVar25 = pjVar25 + (int)pcVar16" identifier = (binary_expression "pjVar25 + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "pjVar25 != (join_row_t *)0x0" identifier != (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;\n                        if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }\n                      }" { (labeled_statement "LAB_0001a59d:\n                        puVar22 = pjVar25->enc_statp;" statement_identifier : (expression_statement "puVar22 = pjVar25->enc_statp;" (assignment_expression "puVar22 = pjVar25->enc_statp" identifier = (field_expression "pjVar25->enc_statp" identifier -> field_identifier)) ;)) (if_statement "if ((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }" if (parenthesized_expression "((puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19'))" ( (binary_expression "(puVar22 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')" (parenthesized_expression "(puVar22 != (uint8_t *)0x0)" ( (binary_expression "puVar22 != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pjVar25->etype == '\x19')" ( (binary_expression "pjVar25->etype == '\x19'" (field_expression "pjVar25->etype" identifier -> field_identifier) == (char_literal "'\x19'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar12);\n                          goto LAB_0001a5c3;\n                        }" { (labeled_statement "LAB_0001a70c:\n                          enc_status_helper("",puVar22,0x19,true,op);" statement_identifier : (expression_statement "enc_status_helper("",puVar22,0x19,true,op);" (call_expression "enc_status_helper("",puVar22,0x19,true,op)" identifier (argument_list "("",puVar22,0x19,true,op)" ( (string_literal """" " ") , identifier , number_literal , true , identifier ))) ;)) (expression_statement "pcVar11 = (char *)pjVar25->indiv_i;" (assignment_expression "pcVar11 = (char *)pjVar25->indiv_i" identifier = (cast_expression "(char *)pjVar25->indiv_i" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25->indiv_i" identifier -> field_identifier))) ;) (expression_statement "__printf_chk(1," [%d]",pcVar11,uVar12);" (call_expression "__printf_chk(1," [%d]",pcVar11,uVar12)" identifier (argument_list "(1," [%d]",pcVar11,uVar12)" ( number_literal , (string_literal "" [%d]"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a5c3;" goto statement_identifier ;) })) })) }) (else_clause "else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }" else (if_statement "if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows))" ( (binary_expression "((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)" (parenthesized_expression "((int)pcVar16 < tesp->num_j_eoe)" ( (binary_expression "(int)pcVar16 < tesp->num_j_eoe" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "tesp->num_j_eoe" identifier -> field_identifier)) )) && (parenthesized_expression "(0 < tesp->num_j_rows)" ( (binary_expression "0 < tesp->num_j_rows" number_literal < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) ))) )) (compound_statement "{\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a59d;\n                    }" { (expression_statement "pcVar11 = (char *)pjVar25->ei_eoe;" (assignment_expression "pcVar11 = (char *)pjVar25->ei_eoe" identifier = (cast_expression "(char *)pjVar25->ei_eoe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25->ei_eoe" identifier -> field_identifier))) ;) (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) (while_statement "while (pcVar16 != pcVar11) {\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" while (parenthesized_expression "(pcVar16 != pcVar11)" ( (binary_expression "pcVar16 != pcVar11" identifier != identifier) )) (compound_statement "{\n                        uVar13 = uVar13 + 1;\n                        if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" { (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (tesp->num_j_rows == uVar13) goto LAB_0001a5ae;" if (parenthesized_expression "(tesp->num_j_rows == uVar13)" ( (binary_expression "tesp->num_j_rows == uVar13" (field_expression "tesp->num_j_rows" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0001a5ae;" goto statement_identifier ;)) (expression_statement "pcVar11 = (char *)pjVar25[1].ei_eoe;" (assignment_expression "pcVar11 = (char *)pjVar25[1].ei_eoe" identifier = (cast_expression "(char *)pjVar25[1].ei_eoe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25[1].ei_eoe" (subscript_expression "pjVar25[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pjVar25 = pjVar25 + 1;" (assignment_expression "pjVar25 = pjVar25 + 1" identifier = (binary_expression "pjVar25 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0001a59d;" goto statement_identifier ;) })))))) (labeled_statement "LAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);" statement_identifier : (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar12)" identifier (argument_list "(1,"broken [conn_idx=%d]",pcVar16,uVar12)" ( number_literal , (string_literal ""broken [conn_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001a5c3:\n                uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];" statement_identifier : (expression_statement "uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1];" (assignment_expression "uVar13 = (uint)ae_bp[uVar21 * 2 + local_7c + 1]" identifier = (cast_expression "(uint)ae_bp[uVar21 * 2 + local_7c + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ae_bp[uVar21 * 2 + local_7c + 1]" identifier [ (binary_expression "uVar21 * 2 + local_7c + 1" (binary_expression "uVar21 * 2 + local_7c" (binary_expression "uVar21 * 2" identifier * number_literal) + identifier) + number_literal) ]))) ;)) (if_statement "if (uVar13 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }" if (parenthesized_expression "(uVar13 != 0xff)" ( (binary_expression "uVar13 != 0xff" identifier != number_literal) )) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }" { (expression_statement "__printf_chk(1,&DAT_0001f46d,pcVar11,uVar12);" (call_expression "__printf_chk(1,&DAT_0001f46d,pcVar11,uVar12)" identifier (argument_list "(1,&DAT_0001f46d,pcVar11,uVar12)" ( number_literal , (pointer_expression "&DAT_0001f46d" & identifier) , identifier , identifier ))) ;) (expression_statement "pjVar25 = tesp->j_base;" (assignment_expression "pjVar25 = tesp->j_base" identifier = (field_expression "tesp->j_base" identifier -> field_identifier)) ;) (if_statement "if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }" if (parenthesized_expression "(pjVar25 == (join_row_t *)0x0)" ( (binary_expression "pjVar25 == (join_row_t *)0x0" identifier == (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar13,uVar12);\n                  }" { (expression_statement "__printf_chk(1,"other ei: %d",uVar13,uVar12);" (call_expression "__printf_chk(1,"other ei: %d",uVar13,uVar12)" identifier (argument_list "(1,"other ei: %d",uVar13,uVar12)" ( number_literal , (string_literal ""other ei: %d"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }\n                    }" { (if_statement "if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;" if (parenthesized_expression "((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))" ( (binary_expression "(tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1)" (parenthesized_expression "(tesp->num_j_eoe <= (int)uVar13)" ( (binary_expression "tesp->num_j_eoe <= (int)uVar13" (field_expression "tesp->num_j_eoe" identifier -> field_identifier) <= (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(tesp->num_j_rows < 1)" ( (binary_expression "tesp->num_j_rows < 1" (field_expression "tesp->num_j_rows" identifier -> field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (if_statement "if (uVar13 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }" if (parenthesized_expression "(uVar13 != pjVar25->ei_aess)" ( (binary_expression "uVar13 != pjVar25->ei_aess" identifier != (field_expression "pjVar25->ei_aess" identifier -> field_identifier)) )) (compound_statement "{\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);\n                      }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "pjVar26 = pjVar25;" (assignment_expression "pjVar26 = pjVar25" identifier = identifier) ;) (do_statement "do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar13 != pjVar4->ei_aess);" do (compound_statement "{\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        }" { (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "pjVar25 = pjVar26 + 1;" (assignment_expression "pjVar25 = pjVar26 + 1" identifier = (binary_expression "pjVar26 + 1" identifier + number_literal)) ;) (if_statement "if (iVar27 == tesp->num_j_rows) goto LAB_0001a7fc;" if (parenthesized_expression "(iVar27 == tesp->num_j_rows)" ( (binary_expression "iVar27 == tesp->num_j_rows" identifier == (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "pjVar4 = pjVar26 + 1;" (assignment_expression "pjVar4 = pjVar26 + 1" identifier = (binary_expression "pjVar26 + 1" identifier + number_literal)) ;) (expression_statement "pjVar26 = pjVar25;" (assignment_expression "pjVar26 = pjVar25" identifier = identifier) ;) }) while (parenthesized_expression "(uVar13 != pjVar4->ei_aess)" ( (binary_expression "uVar13 != pjVar4->ei_aess" identifier != (field_expression "pjVar4->ei_aess" identifier -> field_identifier)) )) ;) })) }) (else_clause "else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" else (if_statement "if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n                      if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }\n                    }" { (if_statement "if ((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }" if (parenthesized_expression "((tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0))" ( (binary_expression "(tesp->num_j_rows <= (int)uVar13) ||\n                         (pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)" (parenthesized_expression "(tesp->num_j_rows <= (int)uVar13)" ( (binary_expression "tesp->num_j_rows <= (int)uVar13" (field_expression "tesp->num_j_rows" identifier -> field_identifier) <= (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0)" ( (comma_expression "pjVar25 = pjVar25 + uVar13, pjVar25 == (join_row_t *)0x0" (assignment_expression "pjVar25 = pjVar25 + uVar13" identifier = (binary_expression "pjVar25 + uVar13" identifier + identifier)) , (binary_expression "pjVar25 == (join_row_t *)0x0" identifier == (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);\n                        goto LAB_0001a67a;\n                      }" { (labeled_statement "LAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);" statement_identifier : (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar13,uVar12)" identifier (argument_list "(1,"broken [oth_elem_idx=%d]",uVar13,uVar12)" ( number_literal , (string_literal ""broken [oth_elem_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (goto_statement "goto LAB_0001a67a;" goto statement_identifier ;) })) }) (else_clause "else {\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" else (compound_statement "{\n                      if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;\n                      uVar3 = pjVar25->ei_eoe;\n                      uVar14 = uVar7;\n                      while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" { (if_statement "if ((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a7fc;" if (parenthesized_expression "((tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1))" ( (binary_expression "(tesp->num_j_eoe <= (int)uVar13) || (tesp->num_j_rows < 1)" (parenthesized_expression "(tesp->num_j_eoe <= (int)uVar13)" ( (binary_expression "tesp->num_j_eoe <= (int)uVar13" (field_expression "tesp->num_j_eoe" identifier -> field_identifier) <= (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(tesp->num_j_rows < 1)" ( (binary_expression "tesp->num_j_rows < 1" (field_expression "tesp->num_j_rows" identifier -> field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "uVar3 = pjVar25->ei_eoe;" (assignment_expression "uVar3 = pjVar25->ei_eoe" identifier = (field_expression "pjVar25->ei_eoe" identifier -> field_identifier)) ;) (expression_statement "uVar14 = uVar7;" (assignment_expression "uVar14 = uVar7" identifier = identifier) ;) (while_statement "while (uVar3 != uVar13) {\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" while (parenthesized_expression "(uVar3 != uVar13)" ( (binary_expression "uVar3 != uVar13" identifier != identifier) )) (compound_statement "{\n                        uVar14 = uVar14 + 1;\n                        if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;\n                        uVar3 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (if_statement "if (tesp->num_j_rows == uVar14) goto LAB_0001a7fc;" if (parenthesized_expression "(tesp->num_j_rows == uVar14)" ( (binary_expression "tesp->num_j_rows == uVar14" (field_expression "tesp->num_j_rows" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "uVar3 = pjVar25[1].ei_eoe;" (assignment_expression "uVar3 = pjVar25[1].ei_eoe" identifier = (field_expression "pjVar25[1].ei_eoe" (subscript_expression "pjVar25[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pjVar25 = pjVar25 + 1;" (assignment_expression "pjVar25 = pjVar25 + 1" identifier = (binary_expression "pjVar25 + 1" identifier + number_literal)) ;) })) }))))) (if_statement "if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }" if (parenthesized_expression "(pjVar25->elem_descp == (uint8_t *)0x0)" ( (binary_expression "pjVar25->elem_descp == (uint8_t *)0x0" (field_expression "pjVar25->elem_descp" identifier -> field_identifier) == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }" { (expression_statement "pcVar11 = etype_str((uint)pjVar25->etype,b,0);" (assignment_expression "pcVar11 = etype_str((uint)pjVar25->etype,b,0)" identifier = (call_expression "etype_str((uint)pjVar25->etype,b,0)" identifier (argument_list "((uint)pjVar25->etype,b,0)" ( (cast_expression "(uint)pjVar25->etype" ( (type_descriptor "uint" type_identifier) ) (field_expression "pjVar25->etype" identifier -> field_identifier)) , identifier , number_literal )))) ;) }) (else_clause "else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }" else (compound_statement "{\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }\n                    }" { (expression_statement "pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);" (assignment_expression "pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp)" identifier = (call_expression "etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp)" identifier (argument_list "((uint)pjVar25->etype,b,(int)pjVar25->elem_descp)" ( (cast_expression "(uint)pjVar25->etype" ( (type_descriptor "uint" type_identifier) ) (field_expression "pjVar25->etype" identifier -> field_identifier)) , identifier , (cast_expression "(int)pjVar25->elem_descp" ( (type_descriptor "int" primitive_type) ) (field_expression "pjVar25->elem_descp" identifier -> field_identifier)) )))) ;) (expression_statement "uVar18 = *(ushort *)(pjVar25->elem_descp + 2);" (assignment_expression "uVar18 = *(ushort *)(pjVar25->elem_descp + 2)" identifier = (pointer_expression "*(ushort *)(pjVar25->elem_descp + 2)" * (cast_expression "(ushort *)(pjVar25->elem_descp + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pjVar25->elem_descp + 2)" ( (binary_expression "pjVar25->elem_descp + 2" (field_expression "pjVar25->elem_descp" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "uVar18 = uVar18 << 8 | uVar18 >> 8;" (assignment_expression "uVar18 = uVar18 << 8 | uVar18 >> 8" identifier = (binary_expression "uVar18 << 8 | uVar18 >> 8" (binary_expression "uVar18 << 8" identifier << number_literal) | (binary_expression "uVar18 >> 8" identifier >> number_literal))) ;) (if_statement "if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a67a;\n                      }" { (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11)" identifier (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11)" ( number_literal , (string_literal ""%.*s [%d,%d] etype: %s"" " string_content ") , identifier , (binary_expression "pjVar25->elem_descp + 4" (field_expression "pjVar25->elem_descp" identifier -> field_identifier) + number_literal) , (field_expression "pjVar25->th_i" identifier -> field_identifier) , (field_expression "pjVar25->indiv_i" identifier -> field_identifier) , identifier ))) ;) (goto_statement "goto LAB_0001a67a;" goto statement_identifier ;) })) }))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11)" identifier (argument_list "(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11)" ( number_literal , (string_literal ""[%d,%d] etype: %s"" " string_content ") , (field_expression "pjVar25->th_i" identifier -> field_identifier) , (field_expression "pjVar25->indiv_i" identifier -> field_identifier) , identifier ))) ;) }))) })) (labeled_statement "LAB_0001a67a:\n                uVar21 = uVar21 + 1;" statement_identifier : (expression_statement "uVar21 = uVar21 + 1;" (assignment_expression "uVar21 = uVar21 + 1" identifier = (binary_expression "uVar21 + 1" identifier + number_literal)) ;)) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar8 != uVar21)" ( (binary_expression "uVar8 != uVar21" identifier != identifier) )) ;) })) }) (else_clause "else if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }" else (if_statement "if ((etype - 0x14U < 2) || (etype == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }" if (parenthesized_expression "((etype - 0x14U < 2) || (etype == 7))" ( (binary_expression "(etype - 0x14U < 2) || (etype == 7)" (parenthesized_expression "(etype - 0x14U < 2)" ( (binary_expression "etype - 0x14U < 2" (binary_expression "etype - 0x14U" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(etype == 7)" ( (binary_expression "etype == 7" identifier == number_literal) ))) )) (compound_statement "{\n            __printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);\n            if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }\n          }" { (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",pad,uVar8);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",pad,uVar8)" identifier (argument_list "(1,"%snumber of phys: %d\n",pad,uVar8)" ( number_literal , (string_literal ""%snumber of phys: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (uVar8 != 0) {\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n              local_98 = 0;\n              uVar7 = local_90 & 0xfffffffd;\n              puVar22 = ae_bp + local_74 + 0xc;\n              do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);\n            }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = local_90 & 0xfffffffd;" (assignment_expression "uVar7 = local_90 & 0xfffffffd" identifier = (binary_expression "local_90 & 0xfffffffd" identifier & number_literal)) ;) (expression_statement "puVar22 = ae_bp + local_74 + 0xc;" (assignment_expression "puVar22 = ae_bp + local_74 + 0xc" identifier = (binary_expression "ae_bp + local_74 + 0xc" (binary_expression "ae_bp + local_74" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar8 != local_98);" do (compound_statement "{\n                uVar21 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",pad,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);\n                pcVar11 = pad;\n                __printf_chk(1,&DAT_0001f4bf,pad);\n                pcVar16 = (char *)(uint)puVar22[-10];\n                if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }\nLAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];\n                if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }\nLAB_0001a2a0:\n                puVar23 = puVar22 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",pad);\n                do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);\n                puVar22 = puVar22 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              }" { (expression_statement "uVar21 = local_98;" (assignment_expression "uVar21 = local_98" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%sphy index: %d\n",pad,local_98);" (call_expression "__printf_chk(1,"%sphy index: %d\n",pad,local_98)" identifier (argument_list "(1,"%sphy index: %d\n",pad,local_98)" ( number_literal , (string_literal ""%sphy index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc]);" (call_expression "__printf_chk(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc])" identifier (argument_list "(1,"%s  phy_id: 0x%x\n",pad,puVar22[-0xc])" ( number_literal , (string_literal ""%s  phy_id: 0x%x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "puVar22[-0xc]" identifier [ number_literal ]) ))) ;) (expression_statement "pcVar11 = pad;" (assignment_expression "pcVar11 = pad" identifier = identifier) ;) (expression_statement "__printf_chk(1,&DAT_0001f4bf,pad);" (call_expression "__printf_chk(1,&DAT_0001f4bf,pad)" identifier (argument_list "(1,&DAT_0001f4bf,pad)" ( number_literal , (pointer_expression "&DAT_0001f4bf" & identifier) , identifier ))) ;) (expression_statement "pcVar16 = (char *)(uint)puVar22[-10];" (assignment_expression "pcVar16 = (char *)(uint)puVar22[-10]" identifier = (cast_expression "(char *)(uint)puVar22[-10]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)puVar22[-10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar22[-10]" identifier [ number_literal ])))) ;) (if_statement "if (pcVar16 == (char *)0xff) {\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }\n                else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }" if (parenthesized_expression "(pcVar16 == (char *)0xff)" ( (binary_expression "pcVar16 == (char *)0xff" identifier == (cast_expression "(char *)0xff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  __printf_chk(1,"no connector",pcVar11,uVar21);\n                }" { (expression_statement "__printf_chk(1,"no connector",pcVar11,uVar21);" (call_expression "__printf_chk(1,"no connector",pcVar11,uVar21)" identifier (argument_list "(1,"no connector",pcVar11,uVar21)" ( number_literal , (string_literal ""no connector"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }" else (compound_statement "{\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                }" { (expression_statement "pjVar25 = tesp->j_base;" (assignment_expression "pjVar25 = tesp->j_base" identifier = (field_expression "tesp->j_base" identifier -> field_identifier)) ;) (if_statement "if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }" if (parenthesized_expression "(pjVar25 == (join_row_t *)0x0)" ( (binary_expression "pjVar25 == (join_row_t *)0x0" identifier == (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }" { (expression_statement "__printf_chk(1,"connector ei: %d",pcVar16,uVar21);" (call_expression "__printf_chk(1,"connector ei: %d",pcVar16,uVar21)" identifier (argument_list "(1,"connector ei: %d",pcVar16,uVar21)" ( number_literal , (string_literal ""connector ei: %d"" " string_content ") , identifier , identifier ))) ;) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);\n                    pcVar11 = pcVar16;\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }\n                    }" { (if_statement "if ((int)pcVar16 < tesp->num_j_rows) {\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }" if (parenthesized_expression "((int)pcVar16 < tesp->num_j_rows)" ( (binary_expression "(int)pcVar16 < tesp->num_j_rows" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) (compound_statement "{\n                        iVar27 = 0;\n                        do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);\n                      }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        } while (iVar27 < tesp->num_j_rows);" do (compound_statement "{\n                          if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar25 + 1;\n                        }" { (if_statement "if ((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)) {\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }" if (parenthesized_expression "((pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i))" ( (binary_expression "(pjVar25->etype == '\x19') && (pcVar16 == (char *)pjVar25->indiv_i)" (parenthesized_expression "(pjVar25->etype == '\x19')" ( (binary_expression "pjVar25->etype == '\x19'" (field_expression "pjVar25->etype" identifier -> field_identifier) == (char_literal "'\x19'" ' escape_sequence ')) )) && (parenthesized_expression "(pcVar16 == (char *)pjVar25->indiv_i)" ( (binary_expression "pcVar16 == (char *)pjVar25->indiv_i" identifier == (cast_expression "(char *)pjVar25->indiv_i" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25->indiv_i" identifier -> field_identifier))) ))) )) (compound_statement "{\n                            puVar23 = pjVar25->enc_statp;\n                            if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;\n                            break;\n                          }" { (expression_statement "puVar23 = pjVar25->enc_statp;" (assignment_expression "puVar23 = pjVar25->enc_statp" identifier = (field_expression "pjVar25->enc_statp" identifier -> field_identifier)) ;) (if_statement "if (puVar23 != (uint8_t *)0x0) goto LAB_0001a344;" if (parenthesized_expression "(puVar23 != (uint8_t *)0x0)" ( (binary_expression "puVar23 != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0001a344;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "pjVar25 = pjVar25 + 1;" (assignment_expression "pjVar25 = pjVar25 + 1" identifier = (binary_expression "pjVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar27 < tesp->num_j_rows)" ( (binary_expression "iVar27 < tesp->num_j_rows" identifier < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) ;) })) }) (else_clause "else if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }" else (if_statement "if (uVar7 == 1) {\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n                      if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }" { (if_statement "if (((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)) {\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }" if (parenthesized_expression "(((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0))" ( (binary_expression "((int)pcVar16 < tesp->num_j_rows) &&\n                         (pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)" (parenthesized_expression "((int)pcVar16 < tesp->num_j_rows)" ( (binary_expression "(int)pcVar16 < tesp->num_j_rows" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) && (parenthesized_expression "(pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0)" ( (comma_expression "pjVar25 = pjVar25 + (int)pcVar16, pjVar25 != (join_row_t *)0x0" (assignment_expression "pjVar25 = pjVar25 + (int)pcVar16" identifier = (binary_expression "pjVar25 + (int)pcVar16" identifier + (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier))) , (binary_expression "pjVar25 != (join_row_t *)0x0" identifier != (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;\n                        if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }\n                      }" { (labeled_statement "LAB_0001a1bc:\n                        puVar23 = pjVar25->enc_statp;" statement_identifier : (expression_statement "puVar23 = pjVar25->enc_statp;" (assignment_expression "puVar23 = pjVar25->enc_statp" identifier = (field_expression "pjVar25->enc_statp" identifier -> field_identifier)) ;)) (if_statement "if ((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')) {\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }" if (parenthesized_expression "((puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19'))" ( (binary_expression "(puVar23 != (uint8_t *)0x0) && (pjVar25->etype == '\x19')" (parenthesized_expression "(puVar23 != (uint8_t *)0x0)" ( (binary_expression "puVar23 != (uint8_t *)0x0" identifier != (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pjVar25->etype == '\x19')" ( (binary_expression "pjVar25->etype == '\x19'" (field_expression "pjVar25->etype" identifier -> field_identifier) == (char_literal "'\x19'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);\n                          pcVar11 = (char *)pjVar25->indiv_i;\n                          __printf_chk(1," [%d]",pcVar11,uVar21);\n                          goto LAB_0001a1e2;\n                        }" { (labeled_statement "LAB_0001a344:\n                          enc_status_helper("",puVar23,0x19,true,op);" statement_identifier : (expression_statement "enc_status_helper("",puVar23,0x19,true,op);" (call_expression "enc_status_helper("",puVar23,0x19,true,op)" identifier (argument_list "("",puVar23,0x19,true,op)" ( (string_literal """" " ") , identifier , number_literal , true , identifier ))) ;)) (expression_statement "pcVar11 = (char *)pjVar25->indiv_i;" (assignment_expression "pcVar11 = (char *)pjVar25->indiv_i" identifier = (cast_expression "(char *)pjVar25->indiv_i" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25->indiv_i" identifier -> field_identifier))) ;) (expression_statement "__printf_chk(1," [%d]",pcVar11,uVar21);" (call_expression "__printf_chk(1," [%d]",pcVar11,uVar21)" identifier (argument_list "(1," [%d]",pcVar11,uVar21)" ( number_literal , (string_literal "" [%d]"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e2;" goto statement_identifier ;) })) })) }) (else_clause "else if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }" else (if_statement "if (((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows))" ( (binary_expression "((int)pcVar16 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)" (parenthesized_expression "((int)pcVar16 < tesp->num_j_eoe)" ( (binary_expression "(int)pcVar16 < tesp->num_j_eoe" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) < (field_expression "tesp->num_j_eoe" identifier -> field_identifier)) )) && (parenthesized_expression "(0 < tesp->num_j_rows)" ( (binary_expression "0 < tesp->num_j_rows" number_literal < (field_expression "tesp->num_j_rows" identifier -> field_identifier)) ))) )) (compound_statement "{\n                      pcVar11 = (char *)pjVar25->ei_eoe;\n                      uVar12 = uVar7;\n                      while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                      goto LAB_0001a1bc;\n                    }" { (expression_statement "pcVar11 = (char *)pjVar25->ei_eoe;" (assignment_expression "pcVar11 = (char *)pjVar25->ei_eoe" identifier = (cast_expression "(char *)pjVar25->ei_eoe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25->ei_eoe" identifier -> field_identifier))) ;) (expression_statement "uVar12 = uVar7;" (assignment_expression "uVar12 = uVar7" identifier = identifier) ;) (while_statement "while (pcVar16 != pcVar11) {\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" while (parenthesized_expression "(pcVar16 != pcVar11)" ( (binary_expression "pcVar16 != pcVar11" identifier != identifier) )) (compound_statement "{\n                        uVar12 = uVar12 + 1;\n                        if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;\n                        pcVar11 = (char *)pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" { (expression_statement "uVar12 = uVar12 + 1;" (assignment_expression "uVar12 = uVar12 + 1" identifier = (binary_expression "uVar12 + 1" identifier + number_literal)) ;) (if_statement "if (tesp->num_j_rows == uVar12) goto LAB_0001a1cd;" if (parenthesized_expression "(tesp->num_j_rows == uVar12)" ( (binary_expression "tesp->num_j_rows == uVar12" (field_expression "tesp->num_j_rows" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0001a1cd;" goto statement_identifier ;)) (expression_statement "pcVar11 = (char *)pjVar25[1].ei_eoe;" (assignment_expression "pcVar11 = (char *)pjVar25[1].ei_eoe" identifier = (cast_expression "(char *)pjVar25[1].ei_eoe" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "pjVar25[1].ei_eoe" (subscript_expression "pjVar25[1]" identifier [ number_literal ]) . field_identifier))) ;) (expression_statement "pjVar25 = pjVar25 + 1;" (assignment_expression "pjVar25 = pjVar25 + 1" identifier = (binary_expression "pjVar25 + 1" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0001a1bc;" goto statement_identifier ;) })))))) (labeled_statement "LAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);" statement_identifier : (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",pcVar16,uVar21)" identifier (argument_list "(1,"broken [conn_idx=%d]",pcVar16,uVar21)" ( number_literal , (string_literal ""broken [conn_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "pcVar11 = pcVar16;" (assignment_expression "pcVar11 = pcVar16" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001a1e2:\n                uVar21 = (uint)puVar22[-9];" statement_identifier : (expression_statement "uVar21 = (uint)puVar22[-9];" (assignment_expression "uVar21 = (uint)puVar22[-9]" identifier = (cast_expression "(uint)puVar22[-9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "puVar22[-9]" identifier [ number_literal ]))) ;)) (if_statement "if (uVar21 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }" if (parenthesized_expression "(uVar21 != 0xff)" ( (binary_expression "uVar21 != 0xff" identifier != number_literal) )) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,pcVar11);\n                  pjVar25 = tesp->j_base;\n                  if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }\n                }" { (expression_statement "__printf_chk(1,&DAT_0001f46d,pcVar11);" (call_expression "__printf_chk(1,&DAT_0001f46d,pcVar11)" identifier (argument_list "(1,&DAT_0001f46d,pcVar11)" ( number_literal , (pointer_expression "&DAT_0001f46d" & identifier) , identifier ))) ;) (expression_statement "pjVar25 = tesp->j_base;" (assignment_expression "pjVar25 = tesp->j_base" identifier = (field_expression "tesp->j_base" identifier -> field_identifier)) ;) (if_statement "if (pjVar25 == (join_row_t *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }" if (parenthesized_expression "(pjVar25 == (join_row_t *)0x0)" ( (binary_expression "pjVar25 == (join_row_t *)0x0" identifier == (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar21);\n                  }" { (expression_statement "__printf_chk(1,"other ei: %d",uVar21);" (call_expression "__printf_chk(1,"other ei: %d",uVar21)" identifier (argument_list "(1,"other ei: %d",uVar21)" ( number_literal , (string_literal ""other ei: %d"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }\n                    if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }\n                    else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }\n                    }" { (if_statement "if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;" if (parenthesized_expression "((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))" ( (binary_expression "(tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1)" (parenthesized_expression "(tesp->num_j_eoe <= (int)uVar21)" ( (binary_expression "tesp->num_j_eoe <= (int)uVar21" (field_expression "tesp->num_j_eoe" identifier -> field_identifier) <= (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(tesp->num_j_rows < 1)" ( (binary_expression "tesp->num_j_rows < 1" (field_expression "tesp->num_j_rows" identifier -> field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (if_statement "if (uVar21 != pjVar25->ei_aess) {\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }" if (parenthesized_expression "(uVar21 != pjVar25->ei_aess)" ( (binary_expression "uVar21 != pjVar25->ei_aess" identifier != (field_expression "pjVar25->ei_aess" identifier -> field_identifier)) )) (compound_statement "{\n                        iVar27 = 0;\n                        pjVar26 = pjVar25;\n                        do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);\n                      }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "pjVar26 = pjVar25;" (assignment_expression "pjVar26 = pjVar25" identifier = identifier) ;) (do_statement "do {\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        } while (uVar21 != pjVar4->ei_aess);" do (compound_statement "{\n                          iVar27 = iVar27 + 1;\n                          pjVar25 = pjVar26 + 1;\n                          if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;\n                          pjVar4 = pjVar26 + 1;\n                          pjVar26 = pjVar25;\n                        }" { (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "pjVar25 = pjVar26 + 1;" (assignment_expression "pjVar25 = pjVar26 + 1" identifier = (binary_expression "pjVar26 + 1" identifier + number_literal)) ;) (if_statement "if (iVar27 == tesp->num_j_rows) goto LAB_0001a426;" if (parenthesized_expression "(iVar27 == tesp->num_j_rows)" ( (binary_expression "iVar27 == tesp->num_j_rows" identifier == (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "pjVar4 = pjVar26 + 1;" (assignment_expression "pjVar4 = pjVar26 + 1" identifier = (binary_expression "pjVar26 + 1" identifier + number_literal)) ;) (expression_statement "pjVar26 = pjVar25;" (assignment_expression "pjVar26 = pjVar25" identifier = identifier) ;) }) while (parenthesized_expression "(uVar21 != pjVar4->ei_aess)" ( (binary_expression "uVar21 != pjVar4->ei_aess" identifier != (field_expression "pjVar4->ei_aess" identifier -> field_identifier)) )) ;) })) }) (else_clause "else if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" else (if_statement "if (uVar7 == 1) {\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" if (parenthesized_expression "(uVar7 == 1)" ( (binary_expression "uVar7 == 1" identifier == number_literal) )) (compound_statement "{\n                      if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }\n                    }" { (if_statement "if ((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }" if (parenthesized_expression "((tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0))" ( (binary_expression "(tesp->num_j_rows <= (int)uVar21) ||\n                         (pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)" (parenthesized_expression "(tesp->num_j_rows <= (int)uVar21)" ( (binary_expression "tesp->num_j_rows <= (int)uVar21" (field_expression "tesp->num_j_rows" identifier -> field_identifier) <= (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0)" ( (comma_expression "pjVar25 = pjVar25 + uVar21, pjVar25 == (join_row_t *)0x0" (assignment_expression "pjVar25 = pjVar25 + uVar21" identifier = (binary_expression "pjVar25 + uVar21" identifier + identifier)) , (binary_expression "pjVar25 == (join_row_t *)0x0" identifier == (cast_expression "(join_row_t *)0x0" ( (type_descriptor "join_row_t *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);\n                        goto LAB_0001a2a0;\n                      }" { (labeled_statement "LAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);" statement_identifier : (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar21);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar21)" identifier (argument_list "(1,"broken [oth_elem_idx=%d]",uVar21)" ( number_literal , (string_literal ""broken [oth_elem_idx=%d]"" " string_content ") , identifier ))) ;)) (goto_statement "goto LAB_0001a2a0;" goto statement_identifier ;) })) }) (else_clause "else {\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" else (compound_statement "{\n                      if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;\n                      uVar12 = pjVar25->ei_eoe;\n                      uVar13 = uVar7;\n                      while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }\n                    }" { (if_statement "if ((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))\n                      goto LAB_0001a426;" if (parenthesized_expression "((tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1))" ( (binary_expression "(tesp->num_j_eoe <= (int)uVar21) || (tesp->num_j_rows < 1)" (parenthesized_expression "(tesp->num_j_eoe <= (int)uVar21)" ( (binary_expression "tesp->num_j_eoe <= (int)uVar21" (field_expression "tesp->num_j_eoe" identifier -> field_identifier) <= (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(tesp->num_j_rows < 1)" ( (binary_expression "tesp->num_j_rows < 1" (field_expression "tesp->num_j_rows" identifier -> field_identifier) < number_literal) ))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "uVar12 = pjVar25->ei_eoe;" (assignment_expression "uVar12 = pjVar25->ei_eoe" identifier = (field_expression "pjVar25->ei_eoe" identifier -> field_identifier)) ;) (expression_statement "uVar13 = uVar7;" (assignment_expression "uVar13 = uVar7" identifier = identifier) ;) (while_statement "while (uVar21 != uVar12) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" while (parenthesized_expression "(uVar21 != uVar12)" ( (binary_expression "uVar21 != uVar12" identifier != identifier) )) (compound_statement "{\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;\n                        uVar12 = pjVar25[1].ei_eoe;\n                        pjVar25 = pjVar25 + 1;\n                      }" { (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (uVar13 == tesp->num_j_rows) goto LAB_0001a426;" if (parenthesized_expression "(uVar13 == tesp->num_j_rows)" ( (binary_expression "uVar13 == tesp->num_j_rows" identifier == (field_expression "tesp->num_j_rows" identifier -> field_identifier)) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "uVar12 = pjVar25[1].ei_eoe;" (assignment_expression "uVar12 = pjVar25[1].ei_eoe" identifier = (field_expression "pjVar25[1].ei_eoe" (subscript_expression "pjVar25[1]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "pjVar25 = pjVar25 + 1;" (assignment_expression "pjVar25 = pjVar25 + 1" identifier = (binary_expression "pjVar25 + 1" identifier + number_literal)) ;) })) }))))) (if_statement "if (pjVar25->elem_descp == (uint8_t *)0x0) {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }\n                    else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }" if (parenthesized_expression "(pjVar25->elem_descp == (uint8_t *)0x0)" ( (binary_expression "pjVar25->elem_descp == (uint8_t *)0x0" (field_expression "pjVar25->elem_descp" identifier -> field_identifier) == (cast_expression "(uint8_t *)0x0" ( (type_descriptor "uint8_t *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,0);\n                    }" { (expression_statement "pcVar11 = etype_str((uint)pjVar25->etype,b,0);" (assignment_expression "pcVar11 = etype_str((uint)pjVar25->etype,b,0)" identifier = (call_expression "etype_str((uint)pjVar25->etype,b,0)" identifier (argument_list "((uint)pjVar25->etype,b,0)" ( (cast_expression "(uint)pjVar25->etype" ( (type_descriptor "uint" type_identifier) ) (field_expression "pjVar25->etype" identifier -> field_identifier)) , identifier , number_literal )))) ;) }) (else_clause "else {\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }" else (compound_statement "{\n                      pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);\n                      uVar18 = *(ushort *)(pjVar25->elem_descp + 2);\n                      uVar18 = uVar18 << 8 | uVar18 >> 8;\n                      if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }\n                    }" { (expression_statement "pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp);" (assignment_expression "pcVar11 = etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp)" identifier = (call_expression "etype_str((uint)pjVar25->etype,b,(int)pjVar25->elem_descp)" identifier (argument_list "((uint)pjVar25->etype,b,(int)pjVar25->elem_descp)" ( (cast_expression "(uint)pjVar25->etype" ( (type_descriptor "uint" type_identifier) ) (field_expression "pjVar25->etype" identifier -> field_identifier)) , identifier , (cast_expression "(int)pjVar25->elem_descp" ( (type_descriptor "int" primitive_type) ) (field_expression "pjVar25->elem_descp" identifier -> field_identifier)) )))) ;) (expression_statement "uVar18 = *(ushort *)(pjVar25->elem_descp + 2);" (assignment_expression "uVar18 = *(ushort *)(pjVar25->elem_descp + 2)" identifier = (pointer_expression "*(ushort *)(pjVar25->elem_descp + 2)" * (cast_expression "(ushort *)(pjVar25->elem_descp + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pjVar25->elem_descp + 2)" ( (binary_expression "pjVar25->elem_descp + 2" (field_expression "pjVar25->elem_descp" identifier -> field_identifier) + number_literal) ))))) ;) (expression_statement "uVar18 = uVar18 << 8 | uVar18 >> 8;" (assignment_expression "uVar18 = uVar18 << 8 | uVar18 >> 8" identifier = (binary_expression "uVar18 << 8 | uVar18 >> 8" (binary_expression "uVar18 << 8" identifier << number_literal) | (binary_expression "uVar18 >> 8" identifier >> number_literal))) ;) (if_statement "if (uVar18 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }" if (parenthesized_expression "(uVar18 != 0)" ( (binary_expression "uVar18 != 0" identifier != number_literal) )) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);\n                        goto LAB_0001a2a0;\n                      }" { (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11)" identifier (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar18,pjVar25->elem_descp + 4,\n                                     pjVar25->th_i,pjVar25->indiv_i,pcVar11)" ( number_literal , (string_literal ""%.*s [%d,%d] etype: %s"" " string_content ") , identifier , (binary_expression "pjVar25->elem_descp + 4" (field_expression "pjVar25->elem_descp" identifier -> field_identifier) + number_literal) , (field_expression "pjVar25->th_i" identifier -> field_identifier) , (field_expression "pjVar25->indiv_i" identifier -> field_identifier) , identifier ))) ;) (goto_statement "goto LAB_0001a2a0;" goto statement_identifier ;) })) }))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11)" identifier (argument_list "(1,"[%d,%d] etype: %s",pjVar25->th_i,pjVar25->indiv_i,pcVar11)" ( number_literal , (string_literal ""[%d,%d] etype: %s"" " string_content ") , (field_expression "pjVar25->th_i" identifier -> field_identifier) , (field_expression "pjVar25->indiv_i" identifier -> field_identifier) , identifier ))) ;) }))) })) (labeled_statement "LAB_0001a2a0:\n                puVar23 = puVar22 + -8;" statement_identifier : (expression_statement "puVar23 = puVar22 + -8;" (assignment_expression "puVar23 = puVar22 + -8" identifier = (binary_expression "puVar22 + -8" identifier + number_literal)) ;)) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "__printf_chk(1,"%s  SAS address: 0x",pad);" (call_expression "__printf_chk(1,"%s  SAS address: 0x",pad)" identifier (argument_list "(1,"%s  SAS address: 0x",pad)" ( number_literal , (string_literal ""%s  SAS address: 0x"" " string_content ") , identifier ))) ;) (do_statement "do {\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                } while (puVar22 != puVar23);" do (compound_statement "{\n                  uVar1 = *puVar23;\n                  puVar23 = puVar23 + 1;\n                  __printf_chk(1,&DAT_0001f329,uVar1);\n                }" { (expression_statement "uVar1 = *puVar23;" (assignment_expression "uVar1 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,uVar1);" (call_expression "__printf_chk(1,&DAT_0001f329,uVar1)" identifier (argument_list "(1,&DAT_0001f329,uVar1)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(puVar22 != puVar23)" ( (binary_expression "puVar22 != puVar23" identifier != identifier) )) ;) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" identifier = (binary_expression "puVar22 + 0xc" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != local_98)" ( (binary_expression "uVar8 != local_98" identifier != identifier) )) ;) })) }) (else_clause "else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }" else (compound_statement "{\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);\n          }" { (expression_statement "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype);" (call_expression "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype)" identifier (argument_list "(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,etype)" ( number_literal , (string_literal ""%sunrecognised element type [%d] for desc_type 1\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }))))) }) (else_clause "else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }" else (compound_statement "{\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);\n        }" { (expression_statement "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17);" (call_expression "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17)" identifier (argument_list "(1,"%sunrecognised descriptor type [%d]\n",pad,bVar17)" ( number_literal , (string_literal ""%sunrecognised descriptor type [%d]\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }))))) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (if_statement "if (bVar17 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar17 == 0xb)" ( (binary_expression "bVar17 == 0xb" identifier == number_literal) )) (compound_statement "{\n      __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);\n      goto LAB_000196b0;\n    }" { (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",pad);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",pad)" identifier (argument_list "(1,"%sTransport protocol: PCIe\n",pad)" ( number_literal , (string_literal ""%sTransport protocol: PCIe\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);" (call_expression "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad)" identifier (argument_list "(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad)" ( number_literal , (string_literal ""%sfor this protocol EIP must be set (it isn\'t)\n"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (if_statement "if (bVar17 == 0) {\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      local_94 = 0xe;\n      iVar27 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);\n      if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "local_94 = 0xe;" (assignment_expression "local_94 = 0xe" identifier = number_literal) ;) (expression_statement "iVar27 = 0xb;" (assignment_expression "iVar27 = 0xb" identifier = number_literal) ;) (expression_statement "local_98 = 6;" (assignment_expression "local_98 = 6" identifier = number_literal) ;) (expression_statement "local_9c = 2;" (assignment_expression "local_9c = 2" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",pad);" statement_identifier : (expression_statement "__printf_chk(1,"%sTransport protocol: FCP\n",pad);" (call_expression "__printf_chk(1,"%sTransport protocol: FCP\n",pad)" identifier (argument_list "(1,"%sTransport protocol: FCP\n",pad)" ( number_literal , (string_literal ""%sTransport protocol: FCP\n"" " string_content escape_sequence ") , identifier ))) ;)) (if_statement "if (iVar27 < len) {\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }" if (parenthesized_expression "(iVar27 < len)" ( (binary_expression "iVar27 < len" identifier < identifier) )) (compound_statement "{\n        uVar7 = (uint)ae_bp[local_9c];\n        uVar8 = uVar7;\n        __printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);\n        __printf_chk(1,"%snode_name: ",pad);\n        puVar22 = ae_bp + local_98;\n        do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }\n        putchar(10);\n        if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }\n      }" { (expression_statement "uVar7 = (uint)ae_bp[local_9c];" (assignment_expression "uVar7 = (uint)ae_bp[local_9c]" identifier = (cast_expression "(uint)ae_bp[local_9c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ae_bp[local_9c]" identifier [ identifier ]))) ;) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%snumber of ports: %d\n",pad,uVar7);" (call_expression "__printf_chk(1,"%snumber of ports: %d\n",pad,uVar7)" identifier (argument_list "(1,"%snumber of ports: %d\n",pad,uVar7)" ( number_literal , (string_literal ""%snumber of ports: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%snode_name: ",pad);" (call_expression "__printf_chk(1,"%snode_name: ",pad)" identifier (argument_list "(1,"%snode_name: ",pad)" ( number_literal , (string_literal ""%snode_name: "" " string_content ") , identifier ))) ;) (expression_statement "puVar22 = ae_bp + local_98;" (assignment_expression "puVar22 = ae_bp + local_98" identifier = (binary_expression "ae_bp + local_98" identifier + identifier)) ;) (do_statement "do {\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        } while (ae_bp + local_98 + 8 != puVar22);" do (compound_statement "{\n          uVar1 = *puVar22;\n          puVar22 = puVar22 + 1;\n          __printf_chk(1,&DAT_0001f329,uVar1,uVar8);\n        }" { (expression_statement "uVar1 = *puVar22;" (assignment_expression "uVar1 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "puVar22 = puVar22 + 1;" (assignment_expression "puVar22 = puVar22 + 1" identifier = (binary_expression "puVar22 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,uVar1,uVar8);" (call_expression "__printf_chk(1,&DAT_0001f329,uVar1,uVar8)" identifier (argument_list "(1,&DAT_0001f329,uVar1,uVar8)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier , identifier ))) ;) }) while (parenthesized_expression "(ae_bp + local_98 + 8 != puVar22)" ( (binary_expression "ae_bp + local_98 + 8 != puVar22" (binary_expression "ae_bp + local_98 + 8" (binary_expression "ae_bp + local_98" identifier + identifier) + number_literal) != identifier) )) ;) (if_statement "if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }" if (parenthesized_expression "(local_a0 != 0)" ( (binary_expression "local_a0 != 0" identifier != number_literal) )) (compound_statement "{\n          __printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);\n        }" { (expression_statement "__printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8);" (call_expression "__printf_chk(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8)" identifier (argument_list "(1,", device slot number: %d",ae_bp[local_a0 + 5],uVar8)" ( number_literal , (string_literal "", device slot number: %d"" " string_content ") , (subscript_expression "ae_bp[local_a0 + 5]" identifier [ (binary_expression "local_a0 + 5" identifier + number_literal) ]) , identifier ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (uVar7 != 0) {\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }" if (parenthesized_expression "(uVar7 != 0)" ( (binary_expression "uVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          local_a0 = 0;\n          puVar22 = ae_bp + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);\n        }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "puVar22 = ae_bp + local_94 + 0x10;" (assignment_expression "puVar22 = ae_bp + local_94 + 0x10" identifier = (binary_expression "ae_bp + local_94 + 0x10" (binary_expression "ae_bp + local_94" identifier + identifier) + number_literal)) ;) (do_statement "do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar7 != local_a0);" do (compound_statement "{\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);\n            puVar23 = puVar22 + -8;\n            __printf_chk(1,"%s  n_port name: ",pad);\n            do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);\n            puVar22 = puVar22 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          }" { (expression_statement "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf]);" (call_expression "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf])" identifier (argument_list "(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         pad,local_a0,puVar22[-0x10],puVar22[-0xf])" ( number_literal , (string_literal ""%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n"" " string_content escape_sequence ") , identifier , identifier , (subscript_expression "puVar22[-0x10]" identifier [ number_literal ]) , (subscript_expression "puVar22[-0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9]);" (call_expression "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9])" identifier (argument_list "(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,\n                         puVar22[-0xc],puVar22[-0xb],puVar22[-10],puVar22[-9])" ( number_literal , (string_literal ""%srequested hard address: %d, n_port identifier: %02x%02x%02x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "puVar22[-0xc]" identifier [ number_literal ]) , (subscript_expression "puVar22[-0xb]" identifier [ number_literal ]) , (subscript_expression "puVar22[-10]" identifier [ number_literal ]) , (subscript_expression "puVar22[-9]" identifier [ number_literal ]) ))) ;) (expression_statement "puVar23 = puVar22 + -8;" (assignment_expression "puVar23 = puVar22 + -8" identifier = (binary_expression "puVar22 + -8" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,"%s  n_port name: ",pad);" (call_expression "__printf_chk(1,"%s  n_port name: ",pad)" identifier (argument_list "(1,"%s  n_port name: ",pad)" ( number_literal , (string_literal ""%s  n_port name: "" " string_content ") , identifier ))) ;) (do_statement "do {\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            } while (puVar22 != puVar23);" do (compound_statement "{\n              uVar1 = *puVar23;\n              puVar23 = puVar23 + 1;\n              __printf_chk(1,&DAT_0001f329,uVar1);\n            }" { (expression_statement "uVar1 = *puVar23;" (assignment_expression "uVar1 = *puVar23" identifier = (pointer_expression "*puVar23" * identifier)) ;) (expression_statement "puVar23 = puVar23 + 1;" (assignment_expression "puVar23 = puVar23 + 1" identifier = (binary_expression "puVar23 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,uVar1);" (call_expression "__printf_chk(1,&DAT_0001f329,uVar1)" identifier (argument_list "(1,&DAT_0001f329,uVar1)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(puVar22 != puVar23)" ( (binary_expression "puVar22 != puVar23" identifier != identifier) )) ;) (expression_statement "puVar22 = puVar22 + 0x10;" (assignment_expression "puVar22 = puVar22 + 0x10" identifier = (binary_expression "puVar22 + 0x10" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 != local_a0)" ( (binary_expression "uVar7 != local_a0" identifier != identifier) )) ;) })) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (labeled_statement "LAB_00019672:\n    uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);" statement_identifier : (expression_statement "uVar6 = sg_get_trans_proto_str(bVar17,0x40,b);" (assignment_expression "uVar6 = sg_get_trans_proto_str(bVar17,0x40,b)" identifier = (call_expression "sg_get_trans_proto_str(bVar17,0x40,b)" identifier (argument_list "(bVar17,0x40,b)" ( identifier , number_literal , identifier )))) ;)) (expression_statement "__printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);" (call_expression "__printf_chk(1,"%sTransport protocol: %s not decoded\n",pad,uVar6)" identifier (argument_list "(1,"%sTransport protocol: %s not decoded\n",pad,uVar6)" ( number_literal , (string_literal ""%sTransport protocol: %s not decoded\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "iVar27 = op->verbose;" (assignment_expression "iVar27 = op->verbose" identifier = (field_expression "op->verbose" identifier -> field_identifier)) ;) }) (else_clause "else {\n    if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n    if (len < 6) goto LAB_000196b0;\n    if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);\n    iVar27 = op->verbose;\n  }" else (compound_statement "{\n    if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",pad);\n    if (len < 6) goto LAB_000196b0;\n    if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);\n    iVar27 = op->verbose;\n  }" { (if_statement "if (bVar17 == 6) {\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }" if (parenthesized_expression "(bVar17 == 6)" ( (binary_expression "bVar17 == 6" identifier == number_literal) )) (compound_statement "{\n      iVar27 = 5;\n      goto LAB_000199cd;\n    }" { (expression_statement "iVar27 = 5;" (assignment_expression "iVar27 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_000199cd;" goto statement_identifier ;) })) (if_statement "if (bVar17 != 0xb) {\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" if (parenthesized_expression "(bVar17 != 0xb)" ( (binary_expression "bVar17 != 0xb" identifier != number_literal) )) (compound_statement "{\n      if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" { (if_statement "if (bVar17 == 0) {\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" if (parenthesized_expression "(bVar17 == 0)" ( (binary_expression "bVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        local_94 = 0x10;\n        iVar27 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" { (expression_statement "local_94 = 0x10;" (assignment_expression "local_94 = 0x10" identifier = number_literal) ;) (expression_statement "iVar27 = 0xd;" (assignment_expression "iVar27 = 0xd" identifier = number_literal) ;) (expression_statement "local_98 = 8;" (assignment_expression "local_98 = 8" identifier = number_literal) ;) (expression_statement "local_9c = 4;" (assignment_expression "local_9c = 4" identifier = number_literal) ;) (expression_statement "local_a0 = 2;" (assignment_expression "local_a0 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00019709;" goto statement_identifier ;) })) (goto_statement "goto LAB_00019672;" goto statement_identifier ;) })) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",pad);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",pad)" identifier (argument_list "(1,"%sTransport protocol: PCIe\n",pad)" ( number_literal , (string_literal ""%sTransport protocol: PCIe\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if (len < 6) goto LAB_000196b0;" if (parenthesized_expression "(len < 6)" ( (binary_expression "len < 6" identifier < number_literal) )) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;)) (if_statement "if (ae_bp[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(ae_bp[5] >> 5 == 1)" ( (binary_expression "ae_bp[5] >> 5 == 1" (binary_expression "ae_bp[5] >> 5" (subscript_expression "ae_bp[5]" identifier [ number_literal ]) >> number_literal) == number_literal) )) (compound_statement "{\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);\n      uVar8 = (uint)ae_bp[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",ae_bp[7]);\n      pcVar11 = " (not reported)";\n      if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);\n      __printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);\n      if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "__printf_chk(1,"%sPCIe protocol type: NVMe\n",pad);" (call_expression "__printf_chk(1,"%sPCIe protocol type: NVMe\n",pad)" identifier (argument_list "(1,"%sPCIe protocol type: NVMe\n",pad)" ( number_literal , (string_literal ""%sPCIe protocol type: NVMe\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar8 = (uint)ae_bp[4];" (assignment_expression "uVar8 = (uint)ae_bp[4]" identifier = (cast_expression "(uint)ae_bp[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "ae_bp[4]" identifier [ number_literal ]))) ;) (expression_statement "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1);" (call_expression "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1)" identifier (argument_list "(1,"%snumber of ports: %d, not all ports: %d",pad,uVar8,ae_bp[5] & 1)" ( number_literal , (string_literal ""%snumber of ports: %d, not all ports: %d"" " string_content ") , identifier , identifier , (binary_expression "ae_bp[5] & 1" (subscript_expression "ae_bp[5]" identifier [ number_literal ]) & number_literal) ))) ;) (expression_statement "__printf_chk(1,", device slot number: %d\n",ae_bp[7]);" (call_expression "__printf_chk(1,", device slot number: %d\n",ae_bp[7])" identifier (argument_list "(1,", device slot number: %d\n",ae_bp[7])" ( number_literal , (string_literal "", device slot number: %d\n"" " string_content escape_sequence ") , (subscript_expression "ae_bp[7]" identifier [ number_literal ]) ))) ;) (expression_statement "pcVar11 = " (not reported)";" (assignment_expression "pcVar11 = " (not reported)"" identifier = (string_literal "" (not reported)"" " string_content ")) ;) (if_statement "if (*(short *)(ae_bp + 10) != -1) {\n        pcVar11 = "";\n      }" if (parenthesized_expression "(*(short *)(ae_bp + 10) != -1)" ( (binary_expression "*(short *)(ae_bp + 10) != -1" (pointer_expression "*(short *)(ae_bp + 10)" * (cast_expression "(short *)(ae_bp + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ae_bp + 10)" ( (binary_expression "ae_bp + 10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar11 = "";\n      }" { (expression_statement "pcVar11 = "";" (assignment_expression "pcVar11 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11);" (call_expression "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11)" identifier (argument_list "(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(ae_bp + 10),pcVar11)" ( number_literal , (string_literal ""%sPCIe vendor id: 0x%x%s\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(short *)(ae_bp + 10)" * (cast_expression "(short *)(ae_bp + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ae_bp + 10)" ( (binary_expression "ae_bp + 10" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "__printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc);" (call_expression "__printf_chk(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc)" identifier (argument_list "(1,"%sserial number: %.20s\n",pad,ae_bp + 0xc)" ( number_literal , (string_literal ""%sserial number: %.20s\n"" " string_content escape_sequence ") , identifier , (binary_expression "ae_bp + 0xc" identifier + number_literal) ))) ;) (expression_statement "__printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20);" (call_expression "__printf_chk(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20)" identifier (argument_list "(1,"%smodel number: %.40s\n",pad,ae_bp + 0x20)" ( number_literal , (string_literal ""%smodel number: %.40s\n"" " string_content escape_sequence ") , identifier , (binary_expression "ae_bp + 0x20" identifier + number_literal) ))) ;) (if_statement "if (uVar8 != 0) {\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }" if (parenthesized_expression "(uVar8 != 0)" ( (binary_expression "uVar8 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);\n      }" { (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        } while (uVar8 != uVar7);" do (compound_statement "{\n          __printf_chk(1,"%sport index: %d\n",pad,uVar7);\n          bVar17 = ae_bp[uVar7 * 8 + 0x48];\n          local_a0._0_1_ = bVar17 & 2;\n          local_a4 = bVar17 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);\n          if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar7 = uVar7 + 1;\n        }" { (expression_statement "__printf_chk(1,"%sport index: %d\n",pad,uVar7);" (call_expression "__printf_chk(1,"%sport index: %d\n",pad,uVar7)" identifier (argument_list "(1,"%sport index: %d\n",pad,uVar7)" ( number_literal , (string_literal ""%sport index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "bVar17 = ae_bp[uVar7 * 8 + 0x48];" (assignment_expression "bVar17 = ae_bp[uVar7 * 8 + 0x48]" identifier = (subscript_expression "ae_bp[uVar7 * 8 + 0x48]" identifier [ (binary_expression "uVar7 * 8 + 0x48" (binary_expression "uVar7 * 8" identifier * number_literal) + number_literal) ])) ;) (expression_statement "local_a0._0_1_ = bVar17 & 2;" (assignment_expression "local_a0._0_1_ = bVar17 & 2" (field_expression "local_a0._0_1_" identifier . field_identifier) = (binary_expression "bVar17 & 2" identifier & number_literal)) ;) (expression_statement "local_a4 = bVar17 & 4;" (assignment_expression "local_a4 = bVar17 & 4" identifier = (binary_expression "bVar17 & 4" identifier & number_literal)) ;) (expression_statement "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1);" (call_expression "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1)" identifier (argument_list "(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(bVar17 & 4) != 0,\n                       (bVar17 & 2) != 0,bVar17 & 1)" ( number_literal , (string_literal ""%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n"" " string_content escape_sequence ") , identifier , (binary_expression "(bVar17 & 4) != 0" (parenthesized_expression "(bVar17 & 4)" ( (binary_expression "bVar17 & 4" identifier & number_literal) )) != number_literal) , (binary_expression "(bVar17 & 2) != 0" (parenthesized_expression "(bVar17 & 2)" ( (binary_expression "bVar17 & 2" identifier & number_literal) )) != number_literal) , (binary_expression "bVar17 & 1" identifier & number_literal) ))) ;) (if_statement "if ((bVar17 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }" if (parenthesized_expression "((bVar17 & 1) != 0)" ( (binary_expression "(bVar17 & 1) != 0" (parenthesized_expression "(bVar17 & 1)" ( (binary_expression "bVar17 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );\n          }" { (expression_statement "__printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        );" (call_expression "__printf_chk(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        )" identifier (argument_list "(1,"%s  controller id: 0x%x\n",pad,*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)\n                        )" ( number_literal , (string_literal ""%s  controller id: 0x%x\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)" * (cast_expression "(undefined2 *)(ae_bp + uVar7 * 8 + 0x49)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ae_bp + uVar7 * 8 + 0x49)" ( (binary_expression "ae_bp + uVar7 * 8 + 0x49" (binary_expression "ae_bp + uVar7 * 8" identifier + (binary_expression "uVar7 * 8" identifier * number_literal)) + number_literal) )))) ))) ;) })) (if_statement "if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }" if (parenthesized_expression "((byte)local_a0 != 0)" ( (binary_expression "(byte)local_a0 != 0" (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);\n          }" { (expression_statement "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7);" (call_expression "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7)" identifier (argument_list "(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,\n                         ae_bp[uVar7 * 8 + 0x4c],ae_bp[uVar7 * 8 + 0x4d] >> 3,\n                         ae_bp[uVar7 * 8 + 0x4d] & 7)" ( number_literal , (string_literal ""%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "ae_bp[uVar7 * 8 + 0x4c]" identifier [ (binary_expression "uVar7 * 8 + 0x4c" (binary_expression "uVar7 * 8" identifier * number_literal) + number_literal) ]) , (binary_expression "ae_bp[uVar7 * 8 + 0x4d] >> 3" (subscript_expression "ae_bp[uVar7 * 8 + 0x4d]" identifier [ (binary_expression "uVar7 * 8 + 0x4d" (binary_expression "uVar7 * 8" identifier * number_literal) + number_literal) ]) >> number_literal) , (binary_expression "ae_bp[uVar7 * 8 + 0x4d] & 7" (subscript_expression "ae_bp[uVar7 * 8 + 0x4d]" identifier [ (binary_expression "uVar7 * 8 + 0x4d" (binary_expression "uVar7 * 8" identifier * number_literal) + number_literal) ]) & number_literal) ))) ;) })) (if_statement "if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }" if (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);\n          }" { (expression_statement "__printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff);" (call_expression "__printf_chk(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff)" identifier (argument_list "(1,"%s  physical slot number: 0x%x\n",pad,\n                         *(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff)" ( number_literal , (string_literal ""%s  physical slot number: 0x%x\n"" " string_content escape_sequence ") , identifier , (binary_expression "*(ushort *)(ae_bp + uVar7 * 8 + 0x4e) & 0x1fff" (pointer_expression "*(ushort *)(ae_bp + uVar7 * 8 + 0x4e)" * (cast_expression "(ushort *)(ae_bp + uVar7 * 8 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ae_bp + uVar7 * 8 + 0x4e)" ( (binary_expression "ae_bp + uVar7 * 8 + 0x4e" (binary_expression "ae_bp + uVar7 * 8" identifier + (binary_expression "uVar7 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) ))) ;) })) (expression_statement "uVar7 = uVar7 + 1;" (assignment_expression "uVar7 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar8 != uVar7)" ( (binary_expression "uVar8 != uVar7" identifier != identifier) )) ;) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5)" identifier (argument_list "(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,ae_bp[5] >> 5)" ( number_literal , (string_literal ""%sTransport protocol: PCIe subprotocol=0x%x not decoded\n"" " string_content escape_sequence ") , identifier , (binary_expression "ae_bp[5] >> 5" (subscript_expression "ae_bp[5]" identifier [ number_literal ]) >> number_literal) ))) ;) (expression_statement "iVar27 = op->verbose;" (assignment_expression "iVar27 = op->verbose" identifier = (field_expression "op->verbose" identifier -> field_identifier)) ;) }))) (if_statement "if (iVar27 != 0) {\n    hex2stdout(ae_bp,len,0);\n  }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n    hex2stdout(ae_bp,len,0);\n  }" { (expression_statement "hex2stdout(ae_bp,len,0);" (call_expression "hex2stdout(ae_bp,len,0)" identifier (argument_list "(ae_bp,len,0)" ( identifier , identifier , number_literal ))) ;) })) (labeled_statement "LAB_000196b0:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar2 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar2 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __regparm3\nFUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0001eef0();\n}\n\n" (function_definition "void __regparm3\nFUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0001eef0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)" identifier (parameter_list "(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)" ( (parameter_declaration "uint param_1" type_identifier identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0001eef0();\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "char *pcVar8;" primitive_type (pointer_declarator "*pcVar8" * identifier) ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "char *pcVar12;" primitive_type (pointer_declarator "*pcVar12" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "byte bVar14;" type_identifier identifier ;) (declaration "ushort uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "uint uVar20;" type_identifier identifier ;) (declaration "int iVar21;" primitive_type identifier ;) (declaration "undefined4 *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "undefined4 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int iVar24;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "byte local_a4;" type_identifier identifier ;) (declaration "uint local_a0;" type_identifier identifier ;) (declaration "int local_9c;" primitive_type identifier ;) (declaration "uint local_98;" type_identifier identifier ;) (declaration "int local_94;" primitive_type identifier ;) (declaration "uint local_90;" type_identifier identifier ;) (declaration "int local_88;" primitive_type identifier ;) (declaration "int local_84;" primitive_type identifier ;) (declaration "int local_80;" primitive_type identifier ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "int local_74;" primitive_type identifier ;) (declaration "undefined1 local_60 [64];" type_identifier (array_declarator "local_60 [64]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x1960d;" (assignment_expression "uStack_14 = 0x1960d" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }" if (parenthesized_expression "(*(char *)(param_6 + 8) != '\0')" ( (binary_expression "*(char *)(param_6 + 8) != '\0'" (pointer_expression "*(char *)(param_6 + 8)" * (cast_expression "(char *)(param_6 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }" { (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);" do (compound_statement "{\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    }" { (if_statement "if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }" if (parenthesized_expression "((uVar5 & 0xf) == 0)" ( (binary_expression "(uVar5 & 0xf) == 0" (parenthesized_expression "(uVar5 & 0xf)" ( (binary_expression "uVar5 & 0xf" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }" { (expression_statement "pcVar6 = "\n";" (assignment_expression "pcVar6 = "\n"" identifier = (string_literal ""\n"" " escape_sequence ")) ;) (if_statement "if (uVar5 == 0) {\n          pcVar6 = "";\n        }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          pcVar6 = "";\n        }" { (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,&DAT_0001f086,pcVar6,param_1);" (call_expression "__printf_chk(1,&DAT_0001f086,pcVar6,param_1)" identifier (argument_list "(1,&DAT_0001f086,pcVar6,param_1)" ( number_literal , (pointer_expression "&DAT_0001f086" & identifier) , identifier , identifier ))) ;) })) (expression_statement "pbVar19 = param_2 + uVar5;" (assignment_expression "pbVar19 = param_2 + uVar5" identifier = (binary_expression "param_2 + uVar5" identifier + identifier)) ;) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" identifier = (binary_expression "uVar5 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,"%02x ",*pbVar19);" (call_expression "__printf_chk(1,"%02x ",*pbVar19)" identifier (argument_list "(1,"%02x ",*pbVar19)" ( number_literal , (string_literal ""%02x "" " string_content ") , (pointer_expression "*pbVar19" * identifier) ))) ;) }) while (parenthesized_expression "(param_3 != uVar5)" ( (binary_expression "param_3 != uVar5" identifier != identifier) )) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (expression_statement "bVar14 = *param_2 & 0xf;" (assignment_expression "bVar14 = *param_2 & 0xf" identifier = (binary_expression "*param_2 & 0xf" (pointer_expression "*param_2" * identifier) & number_literal)) ;) (if_statement "if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" if (parenthesized_expression "((*param_2 & 0x10) == 0)" ( (binary_expression "(*param_2 & 0x10) == 0" (parenthesized_expression "(*param_2 & 0x10)" ( (binary_expression "*param_2 & 0x10" (pointer_expression "*param_2" * identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" { (if_statement "if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar14 == 6)" ( (binary_expression "bVar14 == 6" identifier == number_literal) )) (compound_statement "{\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "iVar24 = 3;" (assignment_expression "iVar24 = 3" identifier = number_literal) ;) (labeled_statement "LAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);" statement_identifier : (expression_statement "__printf_chk(1,"%sTransport protocol: SAS\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: SAS\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: SAS\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: SAS\n"" " string_content escape_sequence ") , identifier ))) ;)) (if_statement "if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }" if (parenthesized_expression "(iVar24 < (int)param_3)" ( (binary_expression "iVar24 < (int)param_3" identifier < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }" { (expression_statement "iVar24 = *(int *)(param_6 + 0x1c);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x1c)" identifier = (pointer_expression "*(int *)(param_6 + 0x1c)" * (cast_expression "(int *)(param_6 + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x1c)" ( (binary_expression "param_6 + 0x1c" identifier + number_literal) ))))) ;) (expression_statement "bVar25 = (*param_2 & 0x10) != 0;" (assignment_expression "bVar25 = (*param_2 & 0x10) != 0" identifier = (binary_expression "(*param_2 & 0x10) != 0" (parenthesized_expression "(*param_2 & 0x10)" ( (binary_expression "*param_2 & 0x10" (pointer_expression "*param_2" * identifier) & number_literal) )) != number_literal)) ;) (if_statement "if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }" { (expression_statement "local_74 = 8;" (assignment_expression "local_74 = 8" identifier = number_literal) ;) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" identifier = number_literal) ;) (expression_statement "iVar21 = 5;" (assignment_expression "iVar21 = 5" identifier = number_literal) ;) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" identifier = number_literal) ;) (expression_statement "local_90 = param_2[2] & 3;" (assignment_expression "local_90 = param_2[2] & 3" identifier = (binary_expression "param_2[2] & 3" (subscript_expression "param_2[2]" identifier [ number_literal ]) & number_literal)) ;) (expression_statement "local_84 = 8;" (assignment_expression "local_84 = 8" identifier = number_literal) ;) (expression_statement "local_88 = 8;" (assignment_expression "local_88 = 8" identifier = number_literal) ;) (expression_statement "local_80 = 7;" (assignment_expression "local_80 = 7" identifier = number_literal) ;) }) (else_clause "else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" else (compound_statement "{\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" { (expression_statement "local_74 = 6;" (assignment_expression "local_74 = 6" identifier = number_literal) ;) (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" identifier = number_literal) ;) (expression_statement "iVar21 = 3;" (assignment_expression "iVar21 = 3" identifier = number_literal) ;) (expression_statement "local_7c = 0xe;" (assignment_expression "local_7c = 0xe" identifier = number_literal) ;) (expression_statement "local_84 = 6;" (assignment_expression "local_84 = 6" identifier = number_literal) ;) (expression_statement "local_88 = 4;" (assignment_expression "local_88 = 4" identifier = number_literal) ;) (expression_statement "local_80 = 5;" (assignment_expression "local_80 = 5" identifier = number_literal) ;) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" identifier = number_literal) ;) }))) (expression_statement "bVar14 = param_2[iVar21] >> 6;" (assignment_expression "bVar14 = param_2[iVar21] >> 6" identifier = (binary_expression "param_2[iVar21] >> 6" (subscript_expression "param_2[iVar21]" identifier [ identifier ]) >> number_literal)) ;) (if_statement "if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }" if (parenthesized_expression "(1 < *(int *)(param_6 + 0x50))" ( (binary_expression "1 < *(int *)(param_6 + 0x50)" number_literal < (pointer_expression "*(int *)(param_6 + 0x50)" * (cast_expression "(int *)(param_6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x50)" ( (binary_expression "param_6 + 0x50" identifier + number_literal) ))))) )) (compound_statement "{\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }" { (expression_statement "__printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);" (call_expression "__printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14)" identifier (argument_list "(1,"%sdescriptor_type: %d\n",param_1,bVar14)" ( number_literal , (string_literal ""%sdescriptor_type: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) })) (if_statement "if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }" { (expression_statement "uVar5 = (uint)param_2[iVar11];" (assignment_expression "uVar5 = (uint)param_2[iVar11]" identifier = (cast_expression "(uint)param_2[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[iVar11]" identifier [ identifier ]))) ;) (expression_statement "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;" (call_expression "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)" identifier (argument_list "(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)" ( number_literal , (string_literal ""%snumber of phys: %d, not all phys: %d"" " string_content ") , identifier , identifier , (binary_expression "param_2[iVar21] & 1" (subscript_expression "param_2[iVar21]" identifier [ identifier ]) & number_literal) ))) ;) (if_statement "if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }" if (parenthesized_expression "(bVar25)" ( identifier )) (compound_statement "{\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }" { (expression_statement "__printf_chk(1,", device slot number: %d",param_2[local_80]);" (call_expression "__printf_chk(1,", device slot number: %d",param_2[local_80])" identifier (argument_list "(1,", device slot number: %d",param_2[local_80])" ( number_literal , (string_literal "", device slot number: %d"" " string_content ") , (subscript_expression "param_2[local_80]" identifier [ identifier ]) ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + local_88 + 0xc;" (assignment_expression "param_2 = param_2 + local_88 + 0xc" identifier = (binary_expression "param_2 + local_88 + 0xc" (binary_expression "param_2 + local_88" identifier + identifier) + number_literal)) ;) (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) (do_statement "do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);" do (compound_statement "{\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            }" { (expression_statement "__printf_chk(1,"%sphy index: %d\n",param_1,local_a0);" (call_expression "__printf_chk(1,"%sphy index: %d\n",param_1,local_a0)" identifier (argument_list "(1,"%sphy index: %d\n",param_1,local_a0)" ( number_literal , (string_literal ""%sphy index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);" (call_expression "__printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7])" identifier (argument_list "(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7])" ( number_literal , (string_literal ""%s  SAS device type: %s\n"" " string_content escape_sequence ") , identifier , (subscript_expression "(&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]" (parenthesized_expression "(&PTR_s_no_SAS_device_attached_0002ad40)" ( (pointer_expression "&PTR_s_no_SAS_device_attached_0002ad40" & identifier) )) [ (binary_expression "param_2[-0xc] >> 4 & 7" (binary_expression "param_2[-0xc] >> 4" (subscript_expression "param_2[-0xc]" identifier [ number_literal ]) >> number_literal) & number_literal) ]) ))) ;) (expression_statement "bVar14 = param_2[-10];" (assignment_expression "bVar14 = param_2[-10]" identifier = (subscript_expression "param_2[-10]" identifier [ number_literal ])) ;) (if_statement "if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" if (parenthesized_expression "((iVar24 == 0) || ((bVar14 & 0xe) != 0))" ( (binary_expression "(iVar24 == 0) || ((bVar14 & 0xe) != 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar14 & 0xe) != 0)" ( (binary_expression "(bVar14 & 0xe) != 0" (parenthesized_expression "(bVar14 & 0xe)" ( (binary_expression "bVar14 & 0xe" identifier & number_literal) )) != number_literal) ))) )) (compound_statement "{\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }" { (expression_statement "pcVar12 = " SMP";" (assignment_expression "pcVar12 = " SMP"" identifier = (string_literal "" SMP"" " string_content ")) ;) (if_statement "if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 2) == 0)" ( (binary_expression "(bVar14 & 2) == 0" (parenthesized_expression "(bVar14 & 2)" ( (binary_expression "bVar14 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar12 = pcVar6;\n                }" { (expression_statement "pcVar12 = pcVar6;" (assignment_expression "pcVar12 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar17 = " STP";" (assignment_expression "pcVar17 = " STP"" identifier = (string_literal "" STP"" " string_content ")) ;) (if_statement "if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 4) == 0)" ( (binary_expression "(bVar14 & 4) == 0" (parenthesized_expression "(bVar14 & 4)" ( (binary_expression "bVar14 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar17 = pcVar6;\n                }" { (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar8 = " SSP";" (assignment_expression "pcVar8 = " SSP"" identifier = (string_literal "" SSP"" " string_content ")) ;) (if_statement "if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 8) == 0)" ( (binary_expression "(bVar14 & 8) == 0" (parenthesized_expression "(bVar14 & 8)" ( (binary_expression "bVar14 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar8 = pcVar6;\n                }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) })) (expression_statement "__printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);" (call_expression "__printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12)" identifier (argument_list "(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12)" ( number_literal , (string_literal ""%s  initiator port for:%s%s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) (if_statement "if (iVar24 != 0) goto LAB_00019e40;" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00019e40;" goto statement_identifier ;)) (expression_statement "bVar14 = param_2[-9];" (assignment_expression "bVar14 = param_2[-9]" identifier = (subscript_expression "param_2[-9]" identifier [ number_literal ])) ;) (labeled_statement "LAB_00019e48:\n                pcVar12 = pcVar6;" statement_identifier : (expression_statement "pcVar12 = pcVar6;" (assignment_expression "pcVar12 = pcVar6" identifier = identifier) ;)) (if_statement "if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }" if (parenthesized_expression "((bVar14 & 1) != 0)" ( (binary_expression "(bVar14 & 1) != 0" (parenthesized_expression "(bVar14 & 1)" ( (binary_expression "bVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n                  pcVar12 = " SATA_device";\n                }" { (expression_statement "pcVar12 = " SATA_device";" (assignment_expression "pcVar12 = " SATA_device"" identifier = (string_literal "" SATA_device"" " string_content ")) ;) })) (expression_statement "pcVar17 = " SMP";" (assignment_expression "pcVar17 = " SMP"" identifier = (string_literal "" SMP"" " string_content ")) ;) (if_statement "if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 2) == 0)" ( (binary_expression "(bVar14 & 2) == 0" (parenthesized_expression "(bVar14 & 2)" ( (binary_expression "bVar14 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar17 = pcVar6;\n                }" { (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar8 = " STP";" (assignment_expression "pcVar8 = " STP"" identifier = (string_literal "" STP"" " string_content ")) ;) (if_statement "if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 4) == 0)" ( (binary_expression "(bVar14 & 4) == 0" (parenthesized_expression "(bVar14 & 4)" ( (binary_expression "bVar14 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar8 = pcVar6;\n                }" { (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar16 = " SSP";" (assignment_expression "pcVar16 = " SSP"" identifier = (string_literal "" SSP"" " string_content ")) ;) (if_statement "if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }" if (parenthesized_expression "((bVar14 & 8) == 0)" ( (binary_expression "(bVar14 & 8) == 0" (parenthesized_expression "(bVar14 & 8)" ( (binary_expression "bVar14 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar16 = pcVar6;\n                }" { (expression_statement "pcVar16 = pcVar6;" (assignment_expression "pcVar16 = pcVar6" identifier = identifier) ;) })) (expression_statement "pcVar7 = " SATA_port_selector";" (assignment_expression "pcVar7 = " SATA_port_selector"" identifier = (string_literal "" SATA_port_selector"" " string_content ")) ;) (if_statement "if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }" if (parenthesized_expression "(-1 < (char)bVar14)" ( (binary_expression "-1 < (char)bVar14" number_literal < (cast_expression "(char)bVar14" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n                  pcVar7 = pcVar6;\n                }" { (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" identifier = identifier) ;) })) (expression_statement "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);" (call_expression "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12)" identifier (argument_list "(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12)" ( number_literal , (string_literal ""%s  target port for:%s%s%s%s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) }) (else_clause "else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" else (compound_statement "{\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" { (labeled_statement "LAB_00019e40:\n                bVar14 = param_2[-9];" statement_identifier : (expression_statement "bVar14 = param_2[-9];" (assignment_expression "bVar14 = param_2[-9]" identifier = (subscript_expression "param_2[-9]" identifier [ number_literal ])) ;)) (if_statement "if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;" if (parenthesized_expression "((bVar14 & 0x8f) != 0)" ( (binary_expression "(bVar14 & 0x8f) != 0" (parenthesized_expression "(bVar14 & 0x8f)" ( (binary_expression "bVar14 & 0x8f" identifier & number_literal) )) != number_literal) )) (goto_statement "goto LAB_00019e48;" goto statement_identifier ;)) }))) (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" identifier = (binary_expression "param_2 + -8" identifier + number_literal)) ;) (expression_statement "bVar14 = sg_all_zeros(pbVar19,8);" (assignment_expression "bVar14 = sg_all_zeros(pbVar19,8)" identifier = (call_expression "sg_all_zeros(pbVar19,8)" identifier (argument_list "(pbVar19,8)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" if (parenthesized_expression "((iVar24 == 0) || ((bVar14 ^ 1) != 0))" ( (binary_expression "(iVar24 == 0) || ((bVar14 ^ 1) != 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "((bVar14 ^ 1) != 0)" ( (binary_expression "(bVar14 ^ 1) != 0" (parenthesized_expression "(bVar14 ^ 1)" ( (binary_expression "bVar14 ^ 1" identifier ^ number_literal) )) != number_literal) ))) )) (compound_statement "{\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }" { (expression_statement "__printf_chk(1,"%s  attached SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%s  attached SAS address: 0x",param_1)" identifier (argument_list "(1,"%s  attached SAS address: 0x",param_1)" ( number_literal , (string_literal ""%s  attached SAS address: 0x"" " string_content ") , identifier ))) ;) (if_statement "if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" if (parenthesized_expression "((bVar14 ^ 1) == 0)" ( (binary_expression "(bVar14 ^ 1) == 0" (parenthesized_expression "(bVar14 ^ 1)" ( (binary_expression "bVar14 ^ 1" identifier ^ number_literal) )) == number_literal) )) (compound_statement "{\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }" { (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" identifier (argument_list "(0x30)" ( number_literal ))) ;) (expression_statement "bVar14 = sg_all_zeros(param_2,8);" (assignment_expression "bVar14 = sg_all_zeros(param_2,8)" identifier = (call_expression "sg_all_zeros(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal )))) ;) (expression_statement "bVar14 = bVar14 ^ 1;" (assignment_expression "bVar14 = bVar14 ^ 1" identifier = (binary_expression "bVar14 ^ 1" identifier ^ number_literal)) ;) (labeled_statement "LAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);" statement_identifier : (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",param_1)" identifier (argument_list "(1,"\n%s  SAS address: 0x",param_1)" ( number_literal , (string_literal ""\n%s  SAS address: 0x"" " escape_sequence string_content ") , identifier ))) ;)) (if_statement "if (bVar14 != 0) goto LAB_0001a030;" if (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0001a030;" goto statement_identifier ;)) (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" identifier (argument_list "(0x30)" ( number_literal ))) ;) }) (else_clause "else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" else (compound_statement "{\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" { (do_statement "do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);" do (compound_statement "{\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) ;) (expression_statement "bVar14 = sg_all_zeros(param_2,8);" (assignment_expression "bVar14 = sg_all_zeros(param_2,8)" identifier = (call_expression "sg_all_zeros(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal )))) ;) (expression_statement "bVar14 = bVar14 ^ 1;" (assignment_expression "bVar14 = bVar14 ^ 1" identifier = (binary_expression "bVar14 ^ 1" identifier ^ number_literal)) ;) (if_statement "if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;" if (parenthesized_expression "((iVar24 == 0) || (bVar14 != 0))" ( (binary_expression "(iVar24 == 0) || (bVar14 != 0)" (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar14 != 0)" ( (binary_expression "bVar14 != 0" identifier != number_literal) ))) )) (goto_statement "goto LAB_00019fce;" goto statement_identifier ;)) }))) (labeled_statement "LAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);" statement_identifier : (expression_statement "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);" (call_expression "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8])" identifier (argument_list "(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8])" ( number_literal , (string_literal ""\n%s  phy identifier: 0x%x\n"" " escape_sequence string_content escape_sequence ") , identifier , (subscript_expression "param_2[8]" identifier [ number_literal ]) ))) ;)) }) (else_clause "else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" else (compound_statement "{\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" { (expression_statement "cVar2 = sg_all_zeros(param_2,8);" (assignment_expression "cVar2 = sg_all_zeros(param_2,8)" identifier = (call_expression "sg_all_zeros(param_2,8)" identifier (argument_list "(param_2,8)" ( identifier , number_literal )))) ;) (if_statement "if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }" if (parenthesized_expression "(cVar2 == '\0')" ( (binary_expression "cVar2 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }" { (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",param_1)" identifier (argument_list "(1,"\n%s  SAS address: 0x",param_1)" ( number_literal , (string_literal ""\n%s  SAS address: 0x"" " escape_sequence string_content ") , identifier ))) ;) (labeled_statement "LAB_0001a030:\n                  pbVar19 = param_2;" statement_identifier : (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" identifier = identifier) ;)) (do_statement "do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);" do (compound_statement "{\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 + 8 != pbVar19)" ( (binary_expression "param_2 + 8 != pbVar19" (binary_expression "param_2 + 8" identifier + number_literal) != identifier) )) ;) (goto_statement "goto LAB_00019ff9;" goto statement_identifier ;) })) }))) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) (expression_statement "param_2 = param_2 + 0x1c;" (assignment_expression "param_2 = param_2 + 0x1c" identifier = (binary_expression "param_2 + 0x1c" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != local_a0)" ( (binary_expression "uVar5 != local_a0" identifier != identifier) )) ;) })) }) (else_clause "else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" else (if_statement "if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" if (parenthesized_expression "(bVar14 == 1)" ( (binary_expression "bVar14 == 1" identifier == number_literal) )) (compound_statement "{\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }" { (expression_statement "uVar5 = (uint)param_2[iVar11];" (assignment_expression "uVar5 = (uint)param_2[iVar11]" identifier = (cast_expression "(uint)param_2[iVar11]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[iVar11]" identifier [ identifier ]))) ;) (if_statement "if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" if (parenthesized_expression "(param_4 == 0x18)" ( (binary_expression "param_4 == 0x18" identifier == number_literal) )) (compound_statement "{\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }" { (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5)" identifier (argument_list "(1,"%snumber of phys: %d\n",param_1,uVar5)" ( number_literal , (string_literal ""%snumber of phys: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%sSAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%sSAS address: 0x",param_1)" identifier (argument_list "(1,"%sSAS address: 0x",param_1)" ( number_literal , (string_literal ""%sSAS address: 0x"" " string_content ") , identifier ))) ;) (expression_statement "pbVar19 = param_2 + local_84;" (assignment_expression "pbVar19 = param_2 + local_84" identifier = (binary_expression "param_2 + local_84" identifier + identifier)) ;) (do_statement "do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);" do (compound_statement "{\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14,uVar4);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14,uVar4)" identifier (argument_list "(1,&DAT_0001f329,bVar14,uVar4)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier , identifier ))) ;) }) while (parenthesized_expression "(param_2 + local_84 + 8 != pbVar19)" ( (binary_expression "param_2 + local_84 + 8 != pbVar19" (binary_expression "param_2 + local_84 + 8" (binary_expression "param_2 + local_84" identifier + identifier) + number_literal) != identifier) )) ;) (expression_statement "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);" (call_expression "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4)" identifier (argument_list "(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4)" ( number_literal , (string_literal ""\n%sAttached connector; other_element pairs:\n"" " escape_sequence string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }" { (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = local_90 & 0xfffffffd;" (assignment_expression "uVar4 = local_90 & 0xfffffffd" identifier = (binary_expression "local_90 & 0xfffffffd" identifier & number_literal)) ;) (do_statement "do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);" do (compound_statement "{\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              }" { (expression_statement "uVar18 = param_1;" (assignment_expression "uVar18 = param_1" identifier = identifier) ;) (expression_statement "uVar13 = uVar20;" (assignment_expression "uVar13 = uVar20" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%s  [%d] ",param_1,uVar20);" (call_expression "__printf_chk(1,"%s  [%d] ",param_1,uVar20)" identifier (argument_list "(1,"%s  [%d] ",param_1,uVar20)" ( number_literal , (string_literal ""%s  [%d] "" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar9 = (uint)param_2[uVar20 * 2 + local_7c];" (assignment_expression "uVar9 = (uint)param_2[uVar20 * 2 + local_7c]" identifier = (cast_expression "(uint)param_2[uVar20 * 2 + local_7c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[uVar20 * 2 + local_7c]" identifier [ (binary_expression "uVar20 * 2 + local_7c" (binary_expression "uVar20 * 2" identifier * number_literal) + identifier) ]))) ;) (if_statement "if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" if (parenthesized_expression "(uVar9 == 0xff)" ( (binary_expression "uVar9 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }" { (expression_statement "__printf_chk(1,"no connector",uVar18,uVar13);" (call_expression "__printf_chk(1,"no connector",uVar18,uVar13)" identifier (argument_list "(1,"no connector",uVar18,uVar13)" ( number_literal , (string_literal ""no connector"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" else (compound_statement "{\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" { (expression_statement "iVar24 = *(int *)(param_5 + 8);" (assignment_expression "iVar24 = *(int *)(param_5 + 8)" identifier = (pointer_expression "*(int *)(param_5 + 8)" * (cast_expression "(int *)(param_5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" { (expression_statement "__printf_chk(1,"connector ei: %d",uVar9,uVar13);" (call_expression "__printf_chk(1,"connector ei: %d",uVar9,uVar13)" identifier (argument_list "(1,"connector ei: %d",uVar9,uVar13)" ( number_literal , (string_literal ""connector ei: %d"" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }" { (if_statement "if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" if (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar9 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));" do (compound_statement "{\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        }" { (if_statement "if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }" if (parenthesized_expression "((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))" ( (binary_expression "(*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4))" (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar9 == *(uint *)(iVar24 + 4))" ( (binary_expression "uVar9 == *(uint *)(iVar24 + 4)" identifier == (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }" { (if_statement "if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;" if (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001a70c;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < *(int *)(param_5 + 0xc))" ( (binary_expression "iVar11 < *(int *)(param_5 + 0xc)" identifier < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }" { (if_statement "if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }" if (parenthesized_expression "(((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0))" ( (binary_expression "((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)" (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar9 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)" ( (comma_expression "iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0" (assignment_expression "iVar24 = iVar24 + uVar9 * 0x30" identifier = (binary_expression "iVar24 + uVar9 * 0x30" identifier + (binary_expression "uVar9 * 0x30" identifier * number_literal))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }" { (labeled_statement "LAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" statement_identifier : (if_statement "if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" if (parenthesized_expression "((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19'))" ( (binary_expression "(*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')" (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" { (labeled_statement "LAB_0001a70c:\n                          FUN_00017c20(1,param_6);" statement_identifier : (expression_statement "FUN_00017c20(1,param_6);" (call_expression "FUN_00017c20(1,param_6)" identifier (argument_list "(1,param_6)" ( number_literal , identifier ))) ;)) (expression_statement "uVar18 = *(uint *)(iVar24 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 4)" identifier = (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1," [%d]",uVar18,uVar13);" (call_expression "__printf_chk(1," [%d]",uVar18,uVar13)" identifier (argument_list "(1," [%d]",uVar18,uVar13)" ( number_literal , (string_literal "" [%d]"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a5c3;" goto statement_identifier ;) }))) })) }) (else_clause "else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" else (if_statement "if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" if (parenthesized_expression "(((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc)))" ( (binary_expression "((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))" (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0x10))" ( (binary_expression "(int)uVar9 < *(int *)(param_5 + 0x10)" (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) ))))) )) && (parenthesized_expression "(0 < (int)*(uint *)(param_5 + 0xc))" ( (binary_expression "0 < (int)*(uint *)(param_5 + 0xc)" number_literal < (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" { (expression_statement "uVar18 = *(uint *)(iVar24 + 0xc);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar24 + 0xc)" * (cast_expression "(uint *)(iVar24 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" identifier = identifier) ;) (while_statement "while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" while (parenthesized_expression "(uVar9 != uVar18)" ( (binary_expression "uVar9 != uVar18" identifier != identifier) )) (compound_statement "{\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;" if (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar10)" ( (binary_expression "*(uint *)(param_5 + 0xc) == uVar10" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0001a5ae;" goto statement_identifier ;)) (expression_statement "uVar18 = *(uint *)(iVar24 + 0x3c);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 0x3c)" identifier = (pointer_expression "*(uint *)(iVar24 + 0x3c)" * (cast_expression "(uint *)(iVar24 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0001a59d;" goto statement_identifier ;) })))))) (labeled_statement "LAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);" statement_identifier : (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13)" identifier (argument_list "(1,"broken [conn_idx=%d]",uVar9,uVar13)" ( number_literal , (string_literal ""broken [conn_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];" statement_identifier : (expression_statement "uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];" (assignment_expression "uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1]" identifier = (cast_expression "(uint)param_2[uVar20 * 2 + local_7c + 1]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[uVar20 * 2 + local_7c + 1]" identifier [ (binary_expression "uVar20 * 2 + local_7c + 1" (binary_expression "uVar20 * 2 + local_7c" (binary_expression "uVar20 * 2" identifier * number_literal) + identifier) + number_literal) ]))) ;)) (if_statement "if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" if (parenthesized_expression "(uVar9 != 0xff)" ( (binary_expression "uVar9 != 0xff" identifier != number_literal) )) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" { (expression_statement "__printf_chk(1,&DAT_0001f46d,uVar18,uVar13);" (call_expression "__printf_chk(1,&DAT_0001f46d,uVar18,uVar13)" identifier (argument_list "(1,&DAT_0001f46d,uVar18,uVar13)" ( number_literal , (pointer_expression "&DAT_0001f46d" & identifier) , identifier , identifier ))) ;) (expression_statement "puVar22 = *(undefined4 **)(param_5 + 8);" (assignment_expression "puVar22 = *(undefined4 **)(param_5 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_5 + 8)" * (cast_expression "(undefined4 **)(param_5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" if (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" ( (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }" { (expression_statement "__printf_chk(1,"other ei: %d",uVar9,uVar13);" (call_expression "__printf_chk(1,"other ei: %d",uVar9,uVar13)" identifier (argument_list "(1,"other ei: %d",uVar9,uVar13)" ( number_literal , (string_literal ""other ei: %d"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(*(int *)(param_5 + 0xc) < 1)" ( (binary_expression "*(int *)(param_5 + 0xc) < 1" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) < number_literal) ))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (if_statement "if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }" if (parenthesized_expression "(uVar9 != puVar22[4])" ( (binary_expression "uVar9 != puVar22[4]" identifier != (subscript_expression "puVar22[4]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) (do_statement "do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);" do (compound_statement "{\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar23 + 0xc;" (assignment_expression "puVar22 = puVar23 + 0xc" identifier = (binary_expression "puVar23 + 0xc" identifier + number_literal)) ;) (if_statement "if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;" if (parenthesized_expression "(iVar24 == *(int *)(param_5 + 0xc))" ( (binary_expression "iVar24 == *(int *)(param_5 + 0xc)" identifier == (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar23 + 0x10;" (assignment_expression "puVar1 = puVar23 + 0x10" identifier = (binary_expression "puVar23 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != *puVar1)" ( (binary_expression "uVar9 != *puVar1" identifier != (pointer_expression "*puVar1" * identifier)) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }" if (parenthesized_expression "((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0))" ( (binary_expression "(*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(param_5 + 0xc) <= (int)uVar9)" ( (binary_expression "*(int *)(param_5 + 0xc) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)" ( (comma_expression "puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0" (assignment_expression "puVar22 = puVar22 + uVar9 * 0xc" identifier = (binary_expression "puVar22 + uVar9 * 0xc" identifier + (binary_expression "uVar9 * 0xc" identifier * number_literal))) , (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }" { (labeled_statement "LAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);" statement_identifier : (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13)" identifier (argument_list "(1,"broken [oth_elem_idx=%d]",uVar9,uVar13)" ( number_literal , (string_literal ""broken [oth_elem_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (goto_statement "goto LAB_0001a67a;" goto statement_identifier ;) })) }) (else_clause "else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1))" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)*(uint *)(param_5 + 0xc) < 1)" ( (binary_expression "(int)*(uint *)(param_5 + 0xc) < 1" (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) < number_literal) ))) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "uVar18 = puVar22[3];" (assignment_expression "uVar18 = puVar22[3]" identifier = (subscript_expression "puVar22[3]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" identifier = identifier) ;) (while_statement "while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" while (parenthesized_expression "(uVar18 != uVar9)" ( (binary_expression "uVar18 != uVar9" identifier != identifier) )) (compound_statement "{\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" { (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;" if (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar10)" ( (binary_expression "*(uint *)(param_5 + 0xc) == uVar10" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0001a7fc;" goto statement_identifier ;)) (expression_statement "uVar18 = puVar22[0xf];" (assignment_expression "uVar18 = puVar22[0xf]" identifier = (subscript_expression "puVar22[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" identifier = (binary_expression "puVar22 + 0xc" identifier + number_literal)) ;) })) }))))) (if_statement "if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" if (parenthesized_expression "(puVar22[5] == 0)" ( (binary_expression "puVar22[5] == 0" (subscript_expression "puVar22[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" else (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar15 = *(ushort *)(puVar22[5] + 2);" (assignment_expression "uVar15 = *(ushort *)(puVar22[5] + 2)" identifier = (pointer_expression "*(ushort *)(puVar22[5] + 2)" * (cast_expression "(ushort *)(puVar22[5] + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22[5] + 2)" ( (binary_expression "puVar22[5] + 2" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 8;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 8" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 8" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 8" identifier >> number_literal))) ;) (if_statement "if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }" { (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" identifier (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" ( number_literal , (string_literal ""%.*s [%d,%d] etype: %s"" " string_content ") , identifier , (binary_expression "puVar22[5] + 4" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) (goto_statement "goto LAB_0001a67a;" goto statement_identifier ;) })) }))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" identifier (argument_list "(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" ( number_literal , (string_literal ""[%d,%d] etype: %s"" " string_content ") , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) }))) })) (labeled_statement "LAB_0001a67a:\n                uVar20 = uVar20 + 1;" statement_identifier : (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" identifier = (binary_expression "uVar20 + 1" identifier + number_literal)) ;)) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) while (parenthesized_expression "(uVar5 != uVar20)" ( (binary_expression "uVar5 != uVar20" identifier != identifier) )) ;) })) }) (else_clause "else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" else (if_statement "if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" if (parenthesized_expression "((param_4 - 0x14U < 2) || (param_4 == 7))" ( (binary_expression "(param_4 - 0x14U < 2) || (param_4 == 7)" (parenthesized_expression "(param_4 - 0x14U < 2)" ( (binary_expression "param_4 - 0x14U < 2" (binary_expression "param_4 - 0x14U" identifier - number_literal) < number_literal) )) || (parenthesized_expression "(param_4 == 7)" ( (binary_expression "param_4 == 7" identifier == number_literal) ))) )) (compound_statement "{\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }" { (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5)" identifier (argument_list "(1,"%snumber of phys: %d\n",param_1,uVar5)" ( number_literal , (string_literal ""%snumber of phys: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (if_statement "if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }" { (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = local_90 & 0xfffffffd;" (assignment_expression "uVar4 = local_90 & 0xfffffffd" identifier = (binary_expression "local_90 & 0xfffffffd" identifier & number_literal)) ;) (expression_statement "param_2 = param_2 + local_74 + 0xc;" (assignment_expression "param_2 = param_2 + local_74 + 0xc" identifier = (binary_expression "param_2 + local_74 + 0xc" (binary_expression "param_2 + local_74" identifier + identifier) + number_literal)) ;) (do_statement "do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);" do (compound_statement "{\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              }" { (expression_statement "uVar18 = local_98;" (assignment_expression "uVar18 = local_98" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%sphy index: %d\n",param_1,local_98);" (call_expression "__printf_chk(1,"%sphy index: %d\n",param_1,local_98)" identifier (argument_list "(1,"%sphy index: %d\n",param_1,local_98)" ( number_literal , (string_literal ""%sphy index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);" (call_expression "__printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc])" identifier (argument_list "(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc])" ( number_literal , (string_literal ""%s  phy_id: 0x%x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "param_2[-0xc]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar20 = param_1;" (assignment_expression "uVar20 = param_1" identifier = identifier) ;) (expression_statement "__printf_chk(1,&DAT_0001f4bf,param_1);" (call_expression "__printf_chk(1,&DAT_0001f4bf,param_1)" identifier (argument_list "(1,&DAT_0001f4bf,param_1)" ( number_literal , (pointer_expression "&DAT_0001f4bf" & identifier) , identifier ))) ;) (expression_statement "uVar13 = (uint)param_2[-10];" (assignment_expression "uVar13 = (uint)param_2[-10]" identifier = (cast_expression "(uint)param_2[-10]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[-10]" identifier [ number_literal ]))) ;) (if_statement "if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" if (parenthesized_expression "(uVar13 == 0xff)" ( (binary_expression "uVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }" { (expression_statement "__printf_chk(1,"no connector",uVar20,uVar18);" (call_expression "__printf_chk(1,"no connector",uVar20,uVar18)" identifier (argument_list "(1,"no connector",uVar20,uVar18)" ( number_literal , (string_literal ""no connector"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" else (compound_statement "{\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" { (expression_statement "iVar24 = *(int *)(param_5 + 8);" (assignment_expression "iVar24 = *(int *)(param_5 + 8)" identifier = (pointer_expression "*(int *)(param_5 + 8)" * (cast_expression "(int *)(param_5 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" if (parenthesized_expression "(iVar24 == 0)" ( (binary_expression "iVar24 == 0" identifier == number_literal) )) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" { (expression_statement "__printf_chk(1,"connector ei: %d",uVar13,uVar18);" (call_expression "__printf_chk(1,"connector ei: %d",uVar13,uVar18)" identifier (argument_list "(1,"connector ei: %d",uVar13,uVar18)" ( number_literal , (string_literal ""connector ei: %d"" " string_content ") , identifier , identifier ))) ;) (expression_statement "uVar20 = uVar13;" (assignment_expression "uVar20 = uVar13" identifier = identifier) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }" { (if_statement "if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" if (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar13 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (compound_statement "{\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" { (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" identifier = number_literal) ;) (do_statement "do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));" do (compound_statement "{\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        }" { (if_statement "if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }" if (parenthesized_expression "((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             )" ( (binary_expression "(*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))" (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar13 == *(uint *)(iVar24 + 4))" ( (binary_expression "uVar13 == *(uint *)(iVar24 + 4)" identifier == (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ))) )) (compound_statement "{\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }" { (if_statement "if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;" if (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) (goto_statement "goto LAB_0001a344;" goto statement_identifier ;)) (break_statement "break;" break ;) })) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar11 < *(int *)(param_5 + 0xc))" ( (binary_expression "iVar11 < *(int *)(param_5 + 0xc)" identifier < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }" { (if_statement "if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }" if (parenthesized_expression "(((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0))" ( (binary_expression "((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)" (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0xc))" ( (binary_expression "(int)uVar13 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) && (parenthesized_expression "(iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)" ( (comma_expression "iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0" (assignment_expression "iVar24 = iVar24 + uVar13 * 0x30" identifier = (binary_expression "iVar24 + uVar13 * 0x30" identifier + (binary_expression "uVar13 * 0x30" identifier * number_literal))) , (binary_expression "iVar24 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }" { (labeled_statement "LAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" statement_identifier : (if_statement "if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" if (parenthesized_expression "((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19'))" ( (binary_expression "(*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')" (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" ( (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" * (cast_expression "(int *)(iVar24 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x18)" ( (binary_expression "iVar24 + 0x18" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" ( (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" * (cast_expression "(char *)(iVar24 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 8)" ( (binary_expression "iVar24 + 8" identifier + number_literal) )))) == (char_literal "'\x19'" ' escape_sequence ')) ))) )) (compound_statement "{\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" { (labeled_statement "LAB_0001a344:\n                          FUN_00017c20(1,param_6);" statement_identifier : (expression_statement "FUN_00017c20(1,param_6);" (call_expression "FUN_00017c20(1,param_6)" identifier (argument_list "(1,param_6)" ( number_literal , identifier ))) ;)) (expression_statement "uVar20 = *(uint *)(iVar24 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 4)" identifier = (pointer_expression "*(uint *)(iVar24 + 4)" * (cast_expression "(uint *)(iVar24 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 4)" ( (binary_expression "iVar24 + 4" identifier + number_literal) ))))) ;) (expression_statement "__printf_chk(1," [%d]",uVar20,uVar18);" (call_expression "__printf_chk(1," [%d]",uVar20,uVar18)" identifier (argument_list "(1," [%d]",uVar20,uVar18)" ( number_literal , (string_literal "" [%d]"" " string_content ") , identifier , identifier ))) ;) (goto_statement "goto LAB_0001a1e2;" goto statement_identifier ;) }))) })) }) (else_clause "else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" else (if_statement "if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" if (parenthesized_expression "(((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc)))" ( (binary_expression "((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))" (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0x10))" ( (binary_expression "(int)uVar13 < *(int *)(param_5 + 0x10)" (cast_expression "(int)uVar13" ( (type_descriptor "int" primitive_type) ) identifier) < (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) ))))) )) && (parenthesized_expression "(0 < (int)*(uint *)(param_5 + 0xc))" ( (binary_expression "0 < (int)*(uint *)(param_5 + 0xc)" number_literal < (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" { (expression_statement "uVar20 = *(uint *)(iVar24 + 0xc);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 0xc)" identifier = (pointer_expression "*(uint *)(iVar24 + 0xc)" * (cast_expression "(uint *)(iVar24 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0xc)" ( (binary_expression "iVar24 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "uVar9 = uVar4;" (assignment_expression "uVar9 = uVar4" identifier = identifier) ;) (while_statement "while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" while (parenthesized_expression "(uVar13 != uVar20)" ( (binary_expression "uVar13 != uVar20" identifier != identifier) )) (compound_statement "{\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" { (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;" if (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar9)" ( (binary_expression "*(uint *)(param_5 + 0xc) == uVar9" (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) == identifier) )) (goto_statement "goto LAB_0001a1cd;" goto statement_identifier ;)) (expression_statement "uVar20 = *(uint *)(iVar24 + 0x3c);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 0x3c)" identifier = (pointer_expression "*(uint *)(iVar24 + 0x3c)" * (cast_expression "(uint *)(iVar24 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar24 + 0x3c)" ( (binary_expression "iVar24 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" identifier = (binary_expression "iVar24 + 0x30" identifier + number_literal)) ;) })) (goto_statement "goto LAB_0001a1bc;" goto statement_identifier ;) })))))) (labeled_statement "LAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);" statement_identifier : (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18)" identifier (argument_list "(1,"broken [conn_idx=%d]",uVar13,uVar18)" ( number_literal , (string_literal ""broken [conn_idx=%d]"" " string_content ") , identifier , identifier ))) ;)) (expression_statement "uVar20 = uVar13;" (assignment_expression "uVar20 = uVar13" identifier = identifier) ;) }))) }))) (labeled_statement "LAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];" statement_identifier : (expression_statement "uVar18 = (uint)param_2[-9];" (assignment_expression "uVar18 = (uint)param_2[-9]" identifier = (cast_expression "(uint)param_2[-9]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[-9]" identifier [ number_literal ]))) ;)) (if_statement "if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" if (parenthesized_expression "(uVar18 != 0xff)" ( (binary_expression "uVar18 != 0xff" identifier != number_literal) )) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" { (expression_statement "__printf_chk(1,&DAT_0001f46d,uVar20);" (call_expression "__printf_chk(1,&DAT_0001f46d,uVar20)" identifier (argument_list "(1,&DAT_0001f46d,uVar20)" ( number_literal , (pointer_expression "&DAT_0001f46d" & identifier) , identifier ))) ;) (expression_statement "puVar22 = *(undefined4 **)(param_5 + 8);" (assignment_expression "puVar22 = *(undefined4 **)(param_5 + 8)" identifier = (pointer_expression "*(undefined4 **)(param_5 + 8)" * (cast_expression "(undefined4 **)(param_5 + 8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" if (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" ( (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }" { (expression_statement "__printf_chk(1,"other ei: %d",uVar18);" (call_expression "__printf_chk(1,"other ei: %d",uVar18)" identifier (argument_list "(1,"other ei: %d",uVar18)" ( number_literal , (string_literal ""other ei: %d"" " string_content ") , identifier ))) ;) }) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" else (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" { (if_statement "if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(local_90 == 0)" ( (binary_expression "local_90 == 0" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         )" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(*(int *)(param_5 + 0xc) < 1)" ( (binary_expression "*(int *)(param_5 + 0xc) < 1" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) < number_literal) ))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (if_statement "if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }" if (parenthesized_expression "(uVar18 != puVar22[4])" ( (binary_expression "uVar18 != puVar22[4]" identifier != (subscript_expression "puVar22[4]" identifier [ number_literal ])) )) (compound_statement "{\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }" { (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" identifier = number_literal) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) (do_statement "do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);" do (compound_statement "{\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        }" { (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" identifier = (binary_expression "iVar24 + 1" identifier + number_literal)) ;) (expression_statement "puVar22 = puVar23 + 0xc;" (assignment_expression "puVar22 = puVar23 + 0xc" identifier = (binary_expression "puVar23 + 0xc" identifier + number_literal)) ;) (if_statement "if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;" if (parenthesized_expression "(iVar24 == *(int *)(param_5 + 0xc))" ( (binary_expression "iVar24 == *(int *)(param_5 + 0xc)" identifier == (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "puVar1 = puVar23 + 0x10;" (assignment_expression "puVar1 = puVar23 + 0x10" identifier = (binary_expression "puVar23 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" identifier = identifier) ;) }) while (parenthesized_expression "(uVar18 != *puVar1)" ( (binary_expression "uVar18 != *puVar1" identifier != (pointer_expression "*puVar1" * identifier)) )) ;) })) }) (else_clause "else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (if_statement "if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" if (parenthesized_expression "(uVar4 == 1)" ( (binary_expression "uVar4 == 1" identifier == number_literal) )) (compound_statement "{\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }" if (parenthesized_expression "((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0))" ( (binary_expression "(*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(param_5 + 0xc) <= (int)uVar18)" ( (binary_expression "*(int *)(param_5 + 0xc) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0xc)" * (cast_expression "(int *)(param_5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) )))) <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "(puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)" ( (comma_expression "puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0" (assignment_expression "puVar22 = puVar22 + uVar18 * 0xc" identifier = (binary_expression "puVar22 + uVar18 * 0xc" identifier + (binary_expression "uVar18 * 0xc" identifier * number_literal))) , (binary_expression "puVar22 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }" { (labeled_statement "LAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);" statement_identifier : (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar18)" identifier (argument_list "(1,"broken [oth_elem_idx=%d]",uVar18)" ( number_literal , (string_literal ""broken [oth_elem_idx=%d]"" " string_content ") , identifier ))) ;)) (goto_statement "goto LAB_0001a2a0;" goto statement_identifier ;) })) }) (else_clause "else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" else (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" { (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;" if (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1))" ( (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18)" ( (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0x10)" * (cast_expression "(int *)(param_5 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) )))) <= (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)*(uint *)(param_5 + 0xc) < 1)" ( (binary_expression "(int)*(uint *)(param_5 + 0xc) < 1" (cast_expression "(int)*(uint *)(param_5 + 0xc)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) < number_literal) ))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "uVar20 = puVar22[3];" (assignment_expression "uVar20 = puVar22[3]" identifier = (subscript_expression "puVar22[3]" identifier [ number_literal ])) ;) (expression_statement "uVar13 = uVar4;" (assignment_expression "uVar13 = uVar4" identifier = identifier) ;) (while_statement "while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" while (parenthesized_expression "(uVar18 != uVar20)" ( (binary_expression "uVar18 != uVar20" identifier != identifier) )) (compound_statement "{\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" { (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" identifier = (binary_expression "uVar13 + 1" identifier + number_literal)) ;) (if_statement "if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;" if (parenthesized_expression "(uVar13 == *(uint *)(param_5 + 0xc))" ( (binary_expression "uVar13 == *(uint *)(param_5 + 0xc)" identifier == (pointer_expression "*(uint *)(param_5 + 0xc)" * (cast_expression "(uint *)(param_5 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0xc)" ( (binary_expression "param_5 + 0xc" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0001a426;" goto statement_identifier ;)) (expression_statement "uVar20 = puVar22[0xf];" (assignment_expression "uVar20 = puVar22[0xf]" identifier = (subscript_expression "puVar22[0xf]" identifier [ number_literal ])) ;) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" identifier = (binary_expression "puVar22 + 0xc" identifier + number_literal)) ;) })) }))))) (if_statement "if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" if (parenthesized_expression "(puVar22[5] == 0)" ( (binary_expression "puVar22[5] == 0" (subscript_expression "puVar22[5]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" else (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" { (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" identifier = (call_expression "FUN_000169f0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar15 = *(ushort *)(puVar22[5] + 2);" (assignment_expression "uVar15 = *(ushort *)(puVar22[5] + 2)" identifier = (pointer_expression "*(ushort *)(puVar22[5] + 2)" * (cast_expression "(ushort *)(puVar22[5] + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar22[5] + 2)" ( (binary_expression "puVar22[5] + 2" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 8;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 8" identifier = (binary_expression "uVar15 << 8 | uVar15 >> 8" (binary_expression "uVar15 << 8" identifier << number_literal) | (binary_expression "uVar15 >> 8" identifier >> number_literal))) ;) (if_statement "if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }" if (parenthesized_expression "(uVar15 != 0)" ( (binary_expression "uVar15 != 0" identifier != number_literal) )) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }" { (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" identifier (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" ( number_literal , (string_literal ""%.*s [%d,%d] etype: %s"" " string_content ") , identifier , (binary_expression "puVar22[5] + 4" (subscript_expression "puVar22[5]" identifier [ number_literal ]) + number_literal) , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) (goto_statement "goto LAB_0001a2a0;" goto statement_identifier ;) })) }))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" identifier (argument_list "(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" ( number_literal , (string_literal ""[%d,%d] etype: %s"" " string_content ") , (pointer_expression "*puVar22" * identifier) , (subscript_expression "puVar22[1]" identifier [ number_literal ]) , identifier ))) ;) }))) })) (labeled_statement "LAB_0001a2a0:\n                pbVar19 = param_2 + -8;" statement_identifier : (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" identifier = (binary_expression "param_2 + -8" identifier + number_literal)) ;)) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "__printf_chk(1,"%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%s  SAS address: 0x",param_1)" identifier (argument_list "(1,"%s  SAS address: 0x",param_1)" ( number_literal , (string_literal ""%s  SAS address: 0x"" " string_content ") , identifier ))) ;) (do_statement "do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);" do (compound_statement "{\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) ;) (expression_statement "param_2 = param_2 + 0xc;" (assignment_expression "param_2 = param_2 + 0xc" identifier = (binary_expression "param_2 + 0xc" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" identifier = (binary_expression "local_98 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != local_98)" ( (binary_expression "uVar5 != local_98" identifier != identifier) )) ;) })) }) (else_clause "else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" else (compound_statement "{\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" { (expression_statement "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);" (call_expression "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4)" identifier (argument_list "(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4)" ( number_literal , (string_literal ""%sunrecognised element type [%d] for desc_type 1\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }))))) }) (else_clause "else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" else (compound_statement "{\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" { (expression_statement "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);" (call_expression "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14)" identifier (argument_list "(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14)" ( number_literal , (string_literal ""%sunrecognised descriptor type [%d]\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) }))))) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar14 == 0xb)" ( (binary_expression "bVar14 == 0xb" identifier == number_literal) )) (compound_statement "{\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }" { (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: PCIe\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: PCIe\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);" (call_expression "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1)" identifier (argument_list "(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1)" ( number_literal , (string_literal ""%sfor this protocol EIP must be set (it isn\'t)\n"" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (if_statement "if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "local_94 = 0xe;" (assignment_expression "local_94 = 0xe" identifier = number_literal) ;) (expression_statement "iVar24 = 0xb;" (assignment_expression "iVar24 = 0xb" identifier = number_literal) ;) (expression_statement "local_98 = 6;" (assignment_expression "local_98 = 6" identifier = number_literal) ;) (expression_statement "local_9c = 2;" (assignment_expression "local_9c = 2" identifier = number_literal) ;) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);" statement_identifier : (expression_statement "__printf_chk(1,"%sTransport protocol: FCP\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: FCP\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: FCP\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: FCP\n"" " string_content escape_sequence ") , identifier ))) ;)) (if_statement "if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }" if (parenthesized_expression "(iVar24 < (int)param_3)" ( (binary_expression "iVar24 < (int)param_3" identifier < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }" { (expression_statement "uVar4 = (uint)param_2[local_9c];" (assignment_expression "uVar4 = (uint)param_2[local_9c]" identifier = (cast_expression "(uint)param_2[local_9c]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[local_9c]" identifier [ identifier ]))) ;) (expression_statement "uVar5 = uVar4;" (assignment_expression "uVar5 = uVar4" identifier = identifier) ;) (expression_statement "__printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);" (call_expression "__printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4)" identifier (argument_list "(1,"%snumber of ports: %d\n",param_1,uVar4)" ( number_literal , (string_literal ""%snumber of ports: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "__printf_chk(1,"%snode_name: ",param_1);" (call_expression "__printf_chk(1,"%snode_name: ",param_1)" identifier (argument_list "(1,"%snode_name: ",param_1)" ( number_literal , (string_literal ""%snode_name: "" " string_content ") , identifier ))) ;) (expression_statement "pbVar19 = param_2 + local_98;" (assignment_expression "pbVar19 = param_2 + local_98" identifier = (binary_expression "param_2 + local_98" identifier + identifier)) ;) (do_statement "do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);" do (compound_statement "{\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14,uVar5);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14,uVar5)" identifier (argument_list "(1,&DAT_0001f329,bVar14,uVar5)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier , identifier ))) ;) }) while (parenthesized_expression "(param_2 + local_98 + 8 != pbVar19)" ( (binary_expression "param_2 + local_98 + 8 != pbVar19" (binary_expression "param_2 + local_98 + 8" (binary_expression "param_2 + local_98" identifier + identifier) + number_literal) != identifier) )) ;) (if_statement "if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }" if (parenthesized_expression "(local_a0 != 0)" ( (binary_expression "local_a0 != 0" identifier != number_literal) )) (compound_statement "{\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }" { (expression_statement "__printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);" (call_expression "__printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5)" identifier (argument_list "(1,", device slot number: %d",param_2[local_a0 + 5],uVar5)" ( number_literal , (string_literal "", device slot number: %d"" " string_content ") , (subscript_expression "param_2[local_a0 + 5]" identifier [ (binary_expression "local_a0 + 5" identifier + number_literal) ]) , identifier ))) ;) })) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (if_statement "if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }" { (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" identifier = number_literal) ;) (expression_statement "param_2 = param_2 + local_94 + 0x10;" (assignment_expression "param_2 = param_2 + local_94 + 0x10" identifier = (binary_expression "param_2 + local_94 + 0x10" (binary_expression "param_2 + local_94" identifier + identifier) + number_literal)) ;) (do_statement "do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);" do (compound_statement "{\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          }" { (expression_statement "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);" (call_expression "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf])" identifier (argument_list "(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf])" ( number_literal , (string_literal ""%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n"" " string_content escape_sequence ") , identifier , identifier , (subscript_expression "param_2[-0x10]" identifier [ number_literal ]) , (subscript_expression "param_2[-0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);" (call_expression "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9])" identifier (argument_list "(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9])" ( number_literal , (string_literal ""%srequested hard address: %d, n_port identifier: %02x%02x%02x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "param_2[-0xc]" identifier [ number_literal ]) , (subscript_expression "param_2[-0xb]" identifier [ number_literal ]) , (subscript_expression "param_2[-10]" identifier [ number_literal ]) , (subscript_expression "param_2[-9]" identifier [ number_literal ]) ))) ;) (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" identifier = (binary_expression "param_2 + -8" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,"%s  n_port name: ",param_1);" (call_expression "__printf_chk(1,"%s  n_port name: ",param_1)" identifier (argument_list "(1,"%s  n_port name: ",param_1)" ( number_literal , (string_literal ""%s  n_port name: "" " string_content ") , identifier ))) ;) (do_statement "do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);" do (compound_statement "{\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            }" { (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" identifier = (pointer_expression "*pbVar19" * identifier)) ;) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" identifier = (binary_expression "pbVar19 + 1" identifier + number_literal)) ;) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" identifier (argument_list "(1,&DAT_0001f329,bVar14)" ( number_literal , (pointer_expression "&DAT_0001f329" & identifier) , identifier ))) ;) }) while (parenthesized_expression "(param_2 != pbVar19)" ( (binary_expression "param_2 != pbVar19" identifier != identifier) )) ;) (expression_statement "param_2 = param_2 + 0x10;" (assignment_expression "param_2 = param_2 + 0x10" identifier = (binary_expression "param_2 + 0x10" identifier + number_literal)) ;) (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" identifier = (binary_expression "local_a0 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar4 != local_a0)" ( (binary_expression "uVar4 != local_a0" identifier != identifier) )) ;) })) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (labeled_statement "LAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);" statement_identifier : (expression_statement "uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);" (assignment_expression "uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60)" identifier = (call_expression "sg_get_trans_proto_str(bVar14,0x40,local_60)" identifier (argument_list "(bVar14,0x40,local_60)" ( identifier , number_literal , identifier )))) ;)) (expression_statement "__printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);" (call_expression "__printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3)" identifier (argument_list "(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3)" ( number_literal , (string_literal ""%sTransport protocol: %s not decoded\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "iVar24 = *(int *)(param_6 + 0x50);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x50)" identifier = (pointer_expression "*(int *)(param_6 + 0x50)" * (cast_expression "(int *)(param_6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x50)" ( (binary_expression "param_6 + 0x50" identifier + number_literal) ))))) ;) }) (else_clause "else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" else (compound_statement "{\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" { (if_statement "if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }" if (parenthesized_expression "(bVar14 == 6)" ( (binary_expression "bVar14 == 6" identifier == number_literal) )) (compound_statement "{\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }" { (expression_statement "iVar24 = 5;" (assignment_expression "iVar24 = 5" identifier = number_literal) ;) (goto_statement "goto LAB_000199cd;" goto statement_identifier ;) })) (if_statement "if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" if (parenthesized_expression "(bVar14 != 0xb)" ( (binary_expression "bVar14 != 0xb" identifier != number_literal) )) (compound_statement "{\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" { (if_statement "if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" if (parenthesized_expression "(bVar14 == 0)" ( (binary_expression "bVar14 == 0" identifier == number_literal) )) (compound_statement "{\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" { (expression_statement "local_94 = 0x10;" (assignment_expression "local_94 = 0x10" identifier = number_literal) ;) (expression_statement "iVar24 = 0xd;" (assignment_expression "iVar24 = 0xd" identifier = number_literal) ;) (expression_statement "local_98 = 8;" (assignment_expression "local_98 = 8" identifier = number_literal) ;) (expression_statement "local_9c = 4;" (assignment_expression "local_9c = 4" identifier = number_literal) ;) (expression_statement "local_a0 = 2;" (assignment_expression "local_a0 = 2" identifier = number_literal) ;) (goto_statement "goto LAB_00019709;" goto statement_identifier ;) })) (goto_statement "goto LAB_00019672;" goto statement_identifier ;) })) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1)" identifier (argument_list "(1,"%sTransport protocol: PCIe\n",param_1)" ( number_literal , (string_literal ""%sTransport protocol: PCIe\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if ((int)param_3 < 6) goto LAB_000196b0;" if (parenthesized_expression "((int)param_3 < 6)" ( (binary_expression "(int)param_3 < 6" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;)) (if_statement "if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }" if (parenthesized_expression "(param_2[5] >> 5 == 1)" ( (binary_expression "param_2[5] >> 5 == 1" (binary_expression "param_2[5] >> 5" (subscript_expression "param_2[5]" identifier [ number_literal ]) >> number_literal) == number_literal) )) (compound_statement "{\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }" { (expression_statement "__printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);" (call_expression "__printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1)" identifier (argument_list "(1,"%sPCIe protocol type: NVMe\n",param_1)" ( number_literal , (string_literal ""%sPCIe protocol type: NVMe\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar5 = (uint)param_2[4];" (assignment_expression "uVar5 = (uint)param_2[4]" identifier = (cast_expression "(uint)param_2[4]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_2[4]" identifier [ number_literal ]))) ;) (expression_statement "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);" (call_expression "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1)" identifier (argument_list "(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1)" ( number_literal , (string_literal ""%snumber of ports: %d, not all ports: %d"" " string_content ") , identifier , identifier , (binary_expression "param_2[5] & 1" (subscript_expression "param_2[5]" identifier [ number_literal ]) & number_literal) ))) ;) (expression_statement "__printf_chk(1,", device slot number: %d\n",param_2[7]);" (call_expression "__printf_chk(1,", device slot number: %d\n",param_2[7])" identifier (argument_list "(1,", device slot number: %d\n",param_2[7])" ( number_literal , (string_literal "", device slot number: %d\n"" " string_content escape_sequence ") , (subscript_expression "param_2[7]" identifier [ number_literal ]) ))) ;) (expression_statement "pcVar6 = " (not reported)";" (assignment_expression "pcVar6 = " (not reported)"" identifier = (string_literal "" (not reported)"" " string_content ")) ;) (if_statement "if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }" if (parenthesized_expression "(*(short *)(param_2 + 10) != -1)" ( (binary_expression "*(short *)(param_2 + 10) != -1" (pointer_expression "*(short *)(param_2 + 10)" * (cast_expression "(short *)(param_2 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        pcVar6 = "";\n      }" { (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);" (call_expression "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6)" identifier (argument_list "(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6)" ( number_literal , (string_literal ""%sPCIe vendor id: 0x%x%s\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(short *)(param_2 + 10)" * (cast_expression "(short *)(param_2 + 10)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "__printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);" (call_expression "__printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc)" identifier (argument_list "(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc)" ( number_literal , (string_literal ""%sserial number: %.20s\n"" " string_content escape_sequence ") , identifier , (binary_expression "param_2 + 0xc" identifier + number_literal) ))) ;) (expression_statement "__printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);" (call_expression "__printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20)" identifier (argument_list "(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20)" ( number_literal , (string_literal ""%smodel number: %.40s\n"" " string_content escape_sequence ") , identifier , (binary_expression "param_2 + 0x20" identifier + number_literal) ))) ;) (if_statement "if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }" if (parenthesized_expression "(uVar5 != 0)" ( (binary_expression "uVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }" { (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" identifier = number_literal) ;) (do_statement "do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);" do (compound_statement "{\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        }" { (expression_statement "__printf_chk(1,"%sport index: %d\n",param_1,uVar4);" (call_expression "__printf_chk(1,"%sport index: %d\n",param_1,uVar4)" identifier (argument_list "(1,"%sport index: %d\n",param_1,uVar4)" ( number_literal , (string_literal ""%sport index: %d\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "bVar14 = param_2[uVar4 * 8 + 0x48];" (assignment_expression "bVar14 = param_2[uVar4 * 8 + 0x48]" identifier = (subscript_expression "param_2[uVar4 * 8 + 0x48]" identifier [ (binary_expression "uVar4 * 8 + 0x48" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ])) ;) (expression_statement "local_a0._0_1_ = bVar14 & 2;" (assignment_expression "local_a0._0_1_ = bVar14 & 2" (field_expression "local_a0._0_1_" identifier . field_identifier) = (binary_expression "bVar14 & 2" identifier & number_literal)) ;) (expression_statement "local_a4 = bVar14 & 4;" (assignment_expression "local_a4 = bVar14 & 4" identifier = (binary_expression "bVar14 & 4" identifier & number_literal)) ;) (expression_statement "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);" (call_expression "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1)" identifier (argument_list "(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1)" ( number_literal , (string_literal ""%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n"" " string_content escape_sequence ") , identifier , (binary_expression "(bVar14 & 4) != 0" (parenthesized_expression "(bVar14 & 4)" ( (binary_expression "bVar14 & 4" identifier & number_literal) )) != number_literal) , (binary_expression "(bVar14 & 2) != 0" (parenthesized_expression "(bVar14 & 2)" ( (binary_expression "bVar14 & 2" identifier & number_literal) )) != number_literal) , (binary_expression "bVar14 & 1" identifier & number_literal) ))) ;) (if_statement "if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }" if (parenthesized_expression "((bVar14 & 1) != 0)" ( (binary_expression "(bVar14 & 1) != 0" (parenthesized_expression "(bVar14 & 1)" ( (binary_expression "bVar14 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }" { (expression_statement "__printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));" (call_expression "__printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49))" identifier (argument_list "(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49))" ( number_literal , (string_literal ""%s  controller id: 0x%x\n"" " string_content escape_sequence ") , identifier , (pointer_expression "*(undefined2 *)(param_2 + uVar4 * 8 + 0x49)" * (cast_expression "(undefined2 *)(param_2 + uVar4 * 8 + 0x49)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + uVar4 * 8 + 0x49)" ( (binary_expression "param_2 + uVar4 * 8 + 0x49" (binary_expression "param_2 + uVar4 * 8" identifier + (binary_expression "uVar4 * 8" identifier * number_literal)) + number_literal) )))) ))) ;) })) (if_statement "if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }" if (parenthesized_expression "((byte)local_a0 != 0)" ( (binary_expression "(byte)local_a0 != 0" (cast_expression "(byte)local_a0" ( (type_descriptor "byte" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }" { (expression_statement "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);" (call_expression "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7)" identifier (argument_list "(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7)" ( number_literal , (string_literal ""%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n"" " string_content escape_sequence ") , identifier , (subscript_expression "param_2[uVar4 * 8 + 0x4c]" identifier [ (binary_expression "uVar4 * 8 + 0x4c" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ]) , (binary_expression "param_2[uVar4 * 8 + 0x4d] >> 3" (subscript_expression "param_2[uVar4 * 8 + 0x4d]" identifier [ (binary_expression "uVar4 * 8 + 0x4d" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ]) >> number_literal) , (binary_expression "param_2[uVar4 * 8 + 0x4d] & 7" (subscript_expression "param_2[uVar4 * 8 + 0x4d]" identifier [ (binary_expression "uVar4 * 8 + 0x4d" (binary_expression "uVar4 * 8" identifier * number_literal) + number_literal) ]) & number_literal) ))) ;) })) (if_statement "if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }" if (parenthesized_expression "(local_a4 != 0)" ( (binary_expression "local_a4 != 0" identifier != number_literal) )) (compound_statement "{\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }" { (expression_statement "__printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);" (call_expression "__printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff)" identifier (argument_list "(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff)" ( number_literal , (string_literal ""%s  physical slot number: 0x%x\n"" " string_content escape_sequence ") , identifier , (binary_expression "*(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff" (pointer_expression "*(ushort *)(param_2 + uVar4 * 8 + 0x4e)" * (cast_expression "(ushort *)(param_2 + uVar4 * 8 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + uVar4 * 8 + 0x4e)" ( (binary_expression "param_2 + uVar4 * 8 + 0x4e" (binary_expression "param_2 + uVar4 * 8" identifier + (binary_expression "uVar4 * 8" identifier * number_literal)) + number_literal) )))) & number_literal) ))) ;) })) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" identifier = (binary_expression "uVar4 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar5 != uVar4)" ( (binary_expression "uVar5 != uVar4" identifier != identifier) )) ;) })) (goto_statement "goto LAB_000196b0;" goto statement_identifier ;) })) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5)" identifier (argument_list "(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5)" ( number_literal , (string_literal ""%sTransport protocol: PCIe subprotocol=0x%x not decoded\n"" " string_content escape_sequence ") , identifier , (binary_expression "param_2[5] >> 5" (subscript_expression "param_2[5]" identifier [ number_literal ]) >> number_literal) ))) ;) (expression_statement "iVar24 = *(int *)(param_6 + 0x50);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x50)" identifier = (pointer_expression "*(int *)(param_6 + 0x50)" * (cast_expression "(int *)(param_6 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x50)" ( (binary_expression "param_6 + 0x50" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }" if (parenthesized_expression "(iVar24 != 0)" ( (binary_expression "iVar24 != 0" identifier != number_literal) )) (compound_statement "{\n    hex2stdout(param_2,param_3,0);\n  }" { (expression_statement "hex2stdout(param_2,param_3,0);" (call_expression "hex2stdout(param_2,param_3,0)" identifier (argument_list "(param_2,param_3,0)" ( identifier , identifier , number_literal ))) ;) })) (labeled_statement "LAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "FUN_0001eef0();" (call_expression "FUN_0001eef0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (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 IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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) ))))) ;) (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 = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " escape_sequence ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (pointer_expression * IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (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 = (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) != LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ IDENT ]) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT , (binary_expression (subscript_expression IDENT [ IDENT ]) & LIT) ))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (subscript_expression IDENT [ IDENT ]) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) & LIT) ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT ^ LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content ") , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT ^ LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content ") , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " escape_sequence string_content escape_sequence ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + IDENT) ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , 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 IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (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 = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (goto_statement goto statement_identifier ;) })))))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (binary_expression (binary_expression IDENT * LIT) + IDENT) + LIT) ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT , 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (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 IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (goto_statement goto statement_identifier ;)) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (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 { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , 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 IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) }))) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (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 = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (goto_statement goto statement_identifier ;) })))))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , 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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (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 ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }))))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT << LIT) | (binary_expression IDENT >> LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) }))))) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + IDENT) + LIT) != IDENT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) >> LIT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (binary_expression IDENT + LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ])) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) , (binary_expression IDENT & LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) , (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) >> LIT) , (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression IDENT * LIT) + LIT) ]) & LIT) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) )))) & LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , (binary_expression (subscript_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) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __regparm3\nFUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)\n\n{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0001eef0();\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00019600(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)" (identifier "FUN_00019600") (parameter_list "(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)" (( "(") (parameter_declaration "uint param_1" (type_identifier "uint") (identifier "param_1")) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint *puVar1;\n  char cVar2;\n  undefined4 uVar3;\n  uint uVar4;\n  uint uVar5;\n  char *pcVar6;\n  char *pcVar7;\n  char *pcVar8;\n  uint uVar9;\n  uint uVar10;\n  int iVar11;\n  char *pcVar12;\n  uint uVar13;\n  byte bVar14;\n  ushort uVar15;\n  char *pcVar16;\n  char *pcVar17;\n  uint uVar18;\n  byte *pbVar19;\n  uint uVar20;\n  int iVar21;\n  undefined4 *puVar22;\n  undefined4 *puVar23;\n  int iVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  byte local_a4;\n  uint local_a0;\n  int local_9c;\n  uint local_98;\n  int local_94;\n  uint local_90;\n  int local_88;\n  int local_84;\n  int local_80;\n  int local_7c;\n  int local_74;\n  undefined1 local_60 [64];\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x1960d;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }\n  bVar14 = *param_2 & 0xf;\n  if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }\nLAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0001eef0();\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "char *pcVar8;" (primitive_type "char") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "char *pcVar12;" (primitive_type "char") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "byte bVar14;" (type_identifier "byte") (identifier "bVar14") (; ";")) (declaration "ushort uVar15;" (type_identifier "ushort") (identifier "uVar15") (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "char *pcVar17;" (primitive_type "char") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "byte *pbVar19;" (type_identifier "byte") (pointer_declarator "*pbVar19" (* "*") (identifier "pbVar19")) (; ";")) (declaration "uint uVar20;" (type_identifier "uint") (identifier "uVar20") (; ";")) (declaration "int iVar21;" (primitive_type "int") (identifier "iVar21") (; ";")) (declaration "undefined4 *puVar22;" (type_identifier "undefined4") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "undefined4 *puVar23;" (type_identifier "undefined4") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int iVar24;" (primitive_type "int") (identifier "iVar24") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "byte local_a4;" (type_identifier "byte") (identifier "local_a4") (; ";")) (declaration "uint local_a0;" (type_identifier "uint") (identifier "local_a0") (; ";")) (declaration "int local_9c;" (primitive_type "int") (identifier "local_9c") (; ";")) (declaration "uint local_98;" (type_identifier "uint") (identifier "local_98") (; ";")) (declaration "int local_94;" (primitive_type "int") (identifier "local_94") (; ";")) (declaration "uint local_90;" (type_identifier "uint") (identifier "local_90") (; ";")) (declaration "int local_88;" (primitive_type "int") (identifier "local_88") (; ";")) (declaration "int local_84;" (primitive_type "int") (identifier "local_84") (; ";")) (declaration "int local_80;" (primitive_type "int") (identifier "local_80") (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "int local_74;" (primitive_type "int") (identifier "local_74") (; ";")) (declaration "undefined1 local_60 [64];" (type_identifier "undefined1") (array_declarator "local_60 [64]" (identifier "local_60") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x1960d;" (assignment_expression "uStack_14 = 0x1960d" (identifier "uStack_14") (= "=") (number_literal "0x1960d")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (if_statement "if (*(char *)(param_6 + 8) != '\0') {\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }" (if "if") (parenthesized_expression "(*(char *)(param_6 + 8) != '\0')" (( "(") (binary_expression "*(char *)(param_6 + 8) != '\0'" (pointer_expression "*(char *)(param_6 + 8)" (* "*") (cast_expression "(char *)(param_6 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 8)" (( "(") (binary_expression "param_6 + 8" (identifier "param_6") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    uVar5 = 0;\n    do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);\n    putchar(10);\n    goto LAB_000196b0;\n  }" ({ "{") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    } while (param_3 != uVar5);" (do "do") (compound_statement "{\n      if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }\n      pbVar19 = param_2 + uVar5;\n      uVar5 = uVar5 + 1;\n      __printf_chk(1,"%02x ",*pbVar19);\n    }" ({ "{") (if_statement "if ((uVar5 & 0xf) == 0) {\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }" (if "if") (parenthesized_expression "((uVar5 & 0xf) == 0)" (( "(") (binary_expression "(uVar5 & 0xf) == 0" (parenthesized_expression "(uVar5 & 0xf)" (( "(") (binary_expression "uVar5 & 0xf" (identifier "uVar5") (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar6 = "\n";\n        if (uVar5 == 0) {\n          pcVar6 = "";\n        }\n        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);\n      }" ({ "{") (expression_statement "pcVar6 = "\n";" (assignment_expression "pcVar6 = "\n"" (identifier "pcVar6") (= "=") (string_literal ""\n"" (" """) (escape_sequence "\n") (" """))) (; ";")) (if_statement "if (uVar5 == 0) {\n          pcVar6 = "";\n        }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar6 = "";\n        }" ({ "{") (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ (identifier "pcVar6") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,&DAT_0001f086,pcVar6,param_1);" (call_expression "__printf_chk(1,&DAT_0001f086,pcVar6,param_1)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f086,pcVar6,param_1)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f086" (& "&") (identifier "DAT_0001f086")) (, ",") (identifier "pcVar6") (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "pbVar19 = param_2 + uVar5;" (assignment_expression "pbVar19 = param_2 + uVar5" (identifier "pbVar19") (= "=") (binary_expression "param_2 + uVar5" (identifier "param_2") (+ "+") (identifier "uVar5"))) (; ";")) (expression_statement "uVar5 = uVar5 + 1;" (assignment_expression "uVar5 = uVar5 + 1" (identifier "uVar5") (= "=") (binary_expression "uVar5 + 1" (identifier "uVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,"%02x ",*pbVar19);" (call_expression "__printf_chk(1,"%02x ",*pbVar19)" (identifier "__printf_chk") (argument_list "(1,"%02x ",*pbVar19)" (( "(") (number_literal "1") (, ",") (string_literal ""%02x "" (" """) (string_content "%02x ") (" """)) (, ",") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_3 != uVar5)" (( "(") (binary_expression "param_3 != uVar5" (identifier "param_3") (!= "!=") (identifier "uVar5")) () ")")) (; ";")) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (goto_statement "goto LAB_000196b0;" (goto "goto") (statement_identifier "LAB_000196b0") (; ";")) (} "}"))) (expression_statement "bVar14 = *param_2 & 0xf;" (assignment_expression "bVar14 = *param_2 & 0xf" (identifier "bVar14") (= "=") (binary_expression "*param_2 & 0xf" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (& "&") (number_literal "0xf"))) (; ";")) (if_statement "if ((*param_2 & 0x10) == 0) {\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }\n  else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" (if "if") (parenthesized_expression "((*param_2 & 0x10) == 0)" (( "(") (binary_expression "(*param_2 & 0x10) == 0" (parenthesized_expression "(*param_2 & 0x10)" (( "(") (binary_expression "*param_2 & 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }\n    if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }\nLAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);\n    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" ({ "{") (if_statement "if (bVar14 == 6) {\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }" (if "if") (parenthesized_expression "(bVar14 == 6)" (( "(") (binary_expression "bVar14 == 6" (identifier "bVar14") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n      iVar24 = 3;\nLAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);\n      if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }\n      goto LAB_000196b0;\n    }" ({ "{") (expression_statement "iVar24 = 3;" (assignment_expression "iVar24 = 3" (identifier "iVar24") (= "=") (number_literal "3")) (; ";")) (labeled_statement "LAB_000199cd:\n      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);" (statement_identifier "LAB_000199cd") (: ":") (expression_statement "__printf_chk(1,"%sTransport protocol: SAS\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: SAS\n",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sTransport protocol: SAS\n",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sTransport protocol: SAS\n"" (" """) (string_content "%sTransport protocol: SAS") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";"))) (if_statement "if (iVar24 < (int)param_3) {\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }" (if "if") (parenthesized_expression "(iVar24 < (int)param_3)" (( "(") (binary_expression "iVar24 < (int)param_3" (identifier "iVar24") (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n        iVar24 = *(int *)(param_6 + 0x1c);\n        bVar25 = (*param_2 & 0x10) != 0;\n        if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }\n        bVar14 = param_2[iVar21] >> 6;\n        if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }\n        if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }\n      }" ({ "{") (expression_statement "iVar24 = *(int *)(param_6 + 0x1c);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x1c)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_6 + 0x1c)" (* "*") (cast_expression "(int *)(param_6 + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x1c)" (( "(") (binary_expression "param_6 + 0x1c" (identifier "param_6") (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "bVar25 = (*param_2 & 0x10) != 0;" (assignment_expression "bVar25 = (*param_2 & 0x10) != 0" (identifier "bVar25") (= "=") (binary_expression "(*param_2 & 0x10) != 0" (parenthesized_expression "(*param_2 & 0x10)" (( "(") (binary_expression "*param_2 & 0x10" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0"))) (; ";")) (if_statement "if (bVar25) {\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }\n        else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n          local_74 = 8;\n          iVar11 = 4;\n          iVar21 = 5;\n          local_7c = 0x10;\n          local_90 = param_2[2] & 3;\n          local_84 = 8;\n          local_88 = 8;\n          local_80 = 7;\n        }" ({ "{") (expression_statement "local_74 = 8;" (assignment_expression "local_74 = 8" (identifier "local_74") (= "=") (number_literal "8")) (; ";")) (expression_statement "iVar11 = 4;" (assignment_expression "iVar11 = 4" (identifier "iVar11") (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar21 = 5;" (assignment_expression "iVar21 = 5" (identifier "iVar21") (= "=") (number_literal "5")) (; ";")) (expression_statement "local_7c = 0x10;" (assignment_expression "local_7c = 0x10" (identifier "local_7c") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "local_90 = param_2[2] & 3;" (assignment_expression "local_90 = param_2[2] & 3" (identifier "local_90") (= "=") (binary_expression "param_2[2] & 3" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (& "&") (number_literal "3"))) (; ";")) (expression_statement "local_84 = 8;" (assignment_expression "local_84 = 8" (identifier "local_84") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_88 = 8;" (assignment_expression "local_88 = 8" (identifier "local_88") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_80 = 7;" (assignment_expression "local_80 = 7" (identifier "local_80") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" (else "else") (compound_statement "{\n          local_74 = 6;\n          iVar11 = 2;\n          iVar21 = 3;\n          local_7c = 0xe;\n          local_84 = 6;\n          local_88 = 4;\n          local_80 = 5;\n          local_90 = 0;\n        }" ({ "{") (expression_statement "local_74 = 6;" (assignment_expression "local_74 = 6" (identifier "local_74") (= "=") (number_literal "6")) (; ";")) (expression_statement "iVar11 = 2;" (assignment_expression "iVar11 = 2" (identifier "iVar11") (= "=") (number_literal "2")) (; ";")) (expression_statement "iVar21 = 3;" (assignment_expression "iVar21 = 3" (identifier "iVar21") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_7c = 0xe;" (assignment_expression "local_7c = 0xe" (identifier "local_7c") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "local_84 = 6;" (assignment_expression "local_84 = 6" (identifier "local_84") (= "=") (number_literal "6")) (; ";")) (expression_statement "local_88 = 4;" (assignment_expression "local_88 = 4" (identifier "local_88") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_80 = 5;" (assignment_expression "local_80 = 5" (identifier "local_80") (= "=") (number_literal "5")) (; ";")) (expression_statement "local_90 = 0;" (assignment_expression "local_90 = 0" (identifier "local_90") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "bVar14 = param_2[iVar21] >> 6;" (assignment_expression "bVar14 = param_2[iVar21] >> 6" (identifier "bVar14") (= "=") (binary_expression "param_2[iVar21] >> 6" (subscript_expression "param_2[iVar21]" (identifier "param_2") ([ "[") (identifier "iVar21") (] "]")) (>> ">>") (number_literal "6"))) (; ";")) (if_statement "if (1 < *(int *)(param_6 + 0x50)) {\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }" (if "if") (parenthesized_expression "(1 < *(int *)(param_6 + 0x50))" (( "(") (binary_expression "1 < *(int *)(param_6 + 0x50)" (number_literal "1") (< "<") (pointer_expression "*(int *)(param_6 + 0x50)" (* "*") (cast_expression "(int *)(param_6 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x50)" (( "(") (binary_expression "param_6 + 0x50" (identifier "param_6") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (compound_statement "{\n          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);\n        }" ({ "{") (expression_statement "__printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);" (call_expression "__printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14)" (identifier "__printf_chk") (argument_list "(1,"%sdescriptor_type: %d\n",param_1,bVar14)" (( "(") (number_literal "1") (, ",") (string_literal ""%sdescriptor_type: %d\n"" (" """) (string_content "%sdescriptor_type: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "bVar14") () ")"))) (; ";")) (} "}"))) (if_statement "if (bVar14 == 0) {\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }\n        else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" (if "if") (parenthesized_expression "(bVar14 == 0)" (( "(") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          uVar5 = (uint)param_2[iVar11];\n          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;\n          if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }\n          putchar(10);\n          if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }\n        }" ({ "{") (expression_statement "uVar5 = (uint)param_2[iVar11];" (assignment_expression "uVar5 = (uint)param_2[iVar11]" (identifier "uVar5") (= "=") (cast_expression "(uint)param_2[iVar11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[iVar11]" (identifier "param_2") ([ "[") (identifier "iVar11") (] "]")))) (; ";")) (expression_statement "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)\n          ;" (call_expression "__printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)" (identifier "__printf_chk") (argument_list "(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)" (( "(") (number_literal "1") (, ",") (string_literal ""%snumber of phys: %d, not all phys: %d"" (" """) (string_content "%snumber of phys: %d, not all phys: %d") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (binary_expression "param_2[iVar21] & 1" (subscript_expression "param_2[iVar21]" (identifier "param_2") ([ "[") (identifier "iVar21") (] "]")) (& "&") (number_literal "1")) () ")"))) (; ";")) (if_statement "if (bVar25) {\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }" (if "if") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")")) (compound_statement "{\n            __printf_chk(1,", device slot number: %d",param_2[local_80]);\n          }" ({ "{") (expression_statement "__printf_chk(1,", device slot number: %d",param_2[local_80]);" (call_expression "__printf_chk(1,", device slot number: %d",param_2[local_80])" (identifier "__printf_chk") (argument_list "(1,", device slot number: %d",param_2[local_80])" (( "(") (number_literal "1") (, ",") (string_literal "", device slot number: %d"" (" """) (string_content ", device slot number: %d") (" """)) (, ",") (subscript_expression "param_2[local_80]" (identifier "param_2") ([ "[") (identifier "local_80") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (if_statement "if (uVar5 != 0) {\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            local_a0 = 0;\n            param_2 = param_2 + local_88 + 0xc;\n            pcVar6 = "";\n            do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);\n          }" ({ "{") (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = param_2 + local_88 + 0xc;" (assignment_expression "param_2 = param_2 + local_88 + 0xc" (identifier "param_2") (= "=") (binary_expression "param_2 + local_88 + 0xc" (binary_expression "param_2 + local_88" (identifier "param_2") (+ "+") (identifier "local_88")) (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ (identifier "pcVar6") (= "=") (string_literal """" (" """) (" """))) (; ";")) (do_statement "do {\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            } while (uVar5 != local_a0);" (do "do") (compound_statement "{\n              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);\n              __printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);\n              bVar14 = param_2[-10];\n              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }\n              pbVar19 = param_2 + -8;\n              bVar14 = sg_all_zeros(pbVar19,8);\n              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }\n              local_a0 = local_a0 + 1;\n              param_2 = param_2 + 0x1c;\n            }" ({ "{") (expression_statement "__printf_chk(1,"%sphy index: %d\n",param_1,local_a0);" (call_expression "__printf_chk(1,"%sphy index: %d\n",param_1,local_a0)" (identifier "__printf_chk") (argument_list "(1,"%sphy index: %d\n",param_1,local_a0)" (( "(") (number_literal "1") (, ",") (string_literal ""%sphy index: %d\n"" (" """) (string_content "%sphy index: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "local_a0") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);" (call_expression "__printf_chk(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7])" (identifier "__printf_chk") (argument_list "(1,"%s  SAS device type: %s\n",param_1,\n                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7])" (( "(") (number_literal "1") (, ",") (string_literal ""%s  SAS device type: %s\n"" (" """) (string_content "%s  SAS device type: %s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (subscript_expression "(&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]" (parenthesized_expression "(&PTR_s_no_SAS_device_attached_0002ad40)" (( "(") (pointer_expression "&PTR_s_no_SAS_device_attached_0002ad40" (& "&") (identifier "PTR_s_no_SAS_device_attached_0002ad40")) () ")")) ([ "[") (binary_expression "param_2[-0xc] >> 4 & 7" (binary_expression "param_2[-0xc] >> 4" (subscript_expression "param_2[-0xc]" (identifier "param_2") ([ "[") (number_literal "-0xc") (] "]")) (>> ">>") (number_literal "4")) (& "&") (number_literal "7")) (] "]")) () ")"))) (; ";")) (expression_statement "bVar14 = param_2[-10];" (assignment_expression "bVar14 = param_2[-10]" (identifier "bVar14") (= "=") (subscript_expression "param_2[-10]" (identifier "param_2") ([ "[") (number_literal "-10") (] "]"))) (; ";")) (if_statement "if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }\n              else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" (if "if") (parenthesized_expression "((iVar24 == 0) || ((bVar14 & 0xe) != 0))" (( "(") (binary_expression "(iVar24 == 0) || ((bVar14 & 0xe) != 0)" (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar14 & 0xe) != 0)" (( "(") (binary_expression "(bVar14 & 0xe) != 0" (parenthesized_expression "(bVar14 & 0xe)" (( "(") (binary_expression "bVar14 & 0xe" (identifier "bVar14") (& "&") (number_literal "0xe")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                pcVar12 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }\n                pcVar17 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);\n                if (iVar24 != 0) goto LAB_00019e40;\n                bVar14 = param_2[-9];\nLAB_00019e48:\n                pcVar12 = pcVar6;\n                if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }\n                pcVar17 = " SMP";\n                if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }\n                pcVar8 = " STP";\n                if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }\n                pcVar16 = " SSP";\n                if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }\n                pcVar7 = " SATA_port_selector";\n                if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }\n                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);\n              }" ({ "{") (expression_statement "pcVar12 = " SMP";" (assignment_expression "pcVar12 = " SMP"" (identifier "pcVar12") (= "=") (string_literal "" SMP"" (" """) (string_content " SMP") (" """))) (; ";")) (if_statement "if ((bVar14 & 2) == 0) {\n                  pcVar12 = pcVar6;\n                }" (if "if") (parenthesized_expression "((bVar14 & 2) == 0)" (( "(") (binary_expression "(bVar14 & 2) == 0" (parenthesized_expression "(bVar14 & 2)" (( "(") (binary_expression "bVar14 & 2" (identifier "bVar14") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar12 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar12 = pcVar6;" (assignment_expression "pcVar12 = pcVar6" (identifier "pcVar12") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "pcVar17 = " STP";" (assignment_expression "pcVar17 = " STP"" (identifier "pcVar17") (= "=") (string_literal "" STP"" (" """) (string_content " STP") (" """))) (; ";")) (if_statement "if ((bVar14 & 4) == 0) {\n                  pcVar17 = pcVar6;\n                }" (if "if") (parenthesized_expression "((bVar14 & 4) == 0)" (( "(") (binary_expression "(bVar14 & 4) == 0" (parenthesized_expression "(bVar14 & 4)" (( "(") (binary_expression "bVar14 & 4" (identifier "bVar14") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar17 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" (identifier "pcVar17") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "pcVar8 = " SSP";" (assignment_expression "pcVar8 = " SSP"" (identifier "pcVar8") (= "=") (string_literal "" SSP"" (" """) (string_content " SSP") (" """))) (; ";")) (if_statement "if ((bVar14 & 8) == 0) {\n                  pcVar8 = pcVar6;\n                }" (if "if") (parenthesized_expression "((bVar14 & 8) == 0)" (( "(") (binary_expression "(bVar14 & 8) == 0" (parenthesized_expression "(bVar14 & 8)" (( "(") (binary_expression "bVar14 & 8" (identifier "bVar14") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar8 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);" (call_expression "__printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12)" (identifier "__printf_chk") (argument_list "(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  initiator port for:%s%s%s\n"" (" """) (string_content "%s  initiator port for:%s%s%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "pcVar8") (, ",") (identifier "pcVar17") (, ",") (identifier "pcVar12") () ")"))) (; ";")) (if_statement "if (iVar24 != 0) goto LAB_00019e40;" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019e40;" (goto "goto") (statement_identifier "LAB_00019e40") (; ";"))) (expression_statement "bVar14 = param_2[-9];" (assignment_expression "bVar14 = param_2[-9]" (identifier "bVar14") (= "=") (subscript_expression "param_2[-9]" (identifier "param_2") ([ "[") (number_literal "-9") (] "]"))) (; ";")) (labeled_statement "LAB_00019e48:\n                pcVar12 = pcVar6;" (statement_identifier "LAB_00019e48") (: ":") (expression_statement "pcVar12 = pcVar6;" (assignment_expression "pcVar12 = pcVar6" (identifier "pcVar12") (= "=") (identifier "pcVar6")) (; ";"))) (if_statement "if ((bVar14 & 1) != 0) {\n                  pcVar12 = " SATA_device";\n                }" (if "if") (parenthesized_expression "((bVar14 & 1) != 0)" (( "(") (binary_expression "(bVar14 & 1) != 0" (parenthesized_expression "(bVar14 & 1)" (( "(") (binary_expression "bVar14 & 1" (identifier "bVar14") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar12 = " SATA_device";\n                }" ({ "{") (expression_statement "pcVar12 = " SATA_device";" (assignment_expression "pcVar12 = " SATA_device"" (identifier "pcVar12") (= "=") (string_literal "" SATA_device"" (" """) (string_content " SATA_device") (" """))) (; ";")) (} "}"))) (expression_statement "pcVar17 = " SMP";" (assignment_expression "pcVar17 = " SMP"" (identifier "pcVar17") (= "=") (string_literal "" SMP"" (" """) (string_content " SMP") (" """))) (; ";")) (if_statement "if ((bVar14 & 2) == 0) {\n                  pcVar17 = pcVar6;\n                }" (if "if") (parenthesized_expression "((bVar14 & 2) == 0)" (( "(") (binary_expression "(bVar14 & 2) == 0" (parenthesized_expression "(bVar14 & 2)" (( "(") (binary_expression "bVar14 & 2" (identifier "bVar14") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar17 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar17 = pcVar6;" (assignment_expression "pcVar17 = pcVar6" (identifier "pcVar17") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "pcVar8 = " STP";" (assignment_expression "pcVar8 = " STP"" (identifier "pcVar8") (= "=") (string_literal "" STP"" (" """) (string_content " STP") (" """))) (; ";")) (if_statement "if ((bVar14 & 4) == 0) {\n                  pcVar8 = pcVar6;\n                }" (if "if") (parenthesized_expression "((bVar14 & 4) == 0)" (( "(") (binary_expression "(bVar14 & 4) == 0" (parenthesized_expression "(bVar14 & 4)" (( "(") (binary_expression "bVar14 & 4" (identifier "bVar14") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar8 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar8 = pcVar6;" (assignment_expression "pcVar8 = pcVar6" (identifier "pcVar8") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "pcVar16 = " SSP";" (assignment_expression "pcVar16 = " SSP"" (identifier "pcVar16") (= "=") (string_literal "" SSP"" (" """) (string_content " SSP") (" """))) (; ";")) (if_statement "if ((bVar14 & 8) == 0) {\n                  pcVar16 = pcVar6;\n                }" (if "if") (parenthesized_expression "((bVar14 & 8) == 0)" (( "(") (binary_expression "(bVar14 & 8) == 0" (parenthesized_expression "(bVar14 & 8)" (( "(") (binary_expression "bVar14 & 8" (identifier "bVar14") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar16 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar16 = pcVar6;" (assignment_expression "pcVar16 = pcVar6" (identifier "pcVar16") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "pcVar7 = " SATA_port_selector";" (assignment_expression "pcVar7 = " SATA_port_selector"" (identifier "pcVar7") (= "=") (string_literal "" SATA_port_selector"" (" """) (string_content " SATA_port_selector") (" """))) (; ";")) (if_statement "if (-1 < (char)bVar14) {\n                  pcVar7 = pcVar6;\n                }" (if "if") (parenthesized_expression "(-1 < (char)bVar14)" (( "(") (binary_expression "-1 < (char)bVar14" (number_literal "-1") (< "<") (cast_expression "(char)bVar14" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar14"))) () ")")) (compound_statement "{\n                  pcVar7 = pcVar6;\n                }" ({ "{") (expression_statement "pcVar7 = pcVar6;" (assignment_expression "pcVar7 = pcVar6" (identifier "pcVar7") (= "=") (identifier "pcVar6")) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12);" (call_expression "__printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12)" (identifier "__printf_chk") (argument_list "(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,\n                             pcVar17,pcVar12)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  target port for:%s%s%s%s%s\n"" (" """) (string_content "%s  target port for:%s%s%s%s%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "pcVar7") (, ",") (identifier "pcVar16") (, ",") (identifier "pcVar8") (, ",") (identifier "pcVar17") (, ",") (identifier "pcVar12") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" (else "else") (compound_statement "{\nLAB_00019e40:\n                bVar14 = param_2[-9];\n                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;\n              }" ({ "{") (labeled_statement "LAB_00019e40:\n                bVar14 = param_2[-9];" (statement_identifier "LAB_00019e40") (: ":") (expression_statement "bVar14 = param_2[-9];" (assignment_expression "bVar14 = param_2[-9]" (identifier "bVar14") (= "=") (subscript_expression "param_2[-9]" (identifier "param_2") ([ "[") (number_literal "-9") (] "]"))) (; ";"))) (if_statement "if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;" (if "if") (parenthesized_expression "((bVar14 & 0x8f) != 0)" (( "(") (binary_expression "(bVar14 & 0x8f) != 0" (parenthesized_expression "(bVar14 & 0x8f)" (( "(") (binary_expression "bVar14 & 0x8f" (identifier "bVar14") (& "&") (number_literal "0x8f")) () ")")) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00019e48;" (goto "goto") (statement_identifier "LAB_00019e48") (; ";"))) (} "}")))) (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" (identifier "pbVar19") (= "=") (binary_expression "param_2 + -8" (identifier "param_2") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "bVar14 = sg_all_zeros(pbVar19,8);" (assignment_expression "bVar14 = sg_all_zeros(pbVar19,8)" (identifier "bVar14") (= "=") (call_expression "sg_all_zeros(pbVar19,8)" (identifier "sg_all_zeros") (argument_list "(pbVar19,8)" (( "(") (identifier "pbVar19") (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }\n              else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" (if "if") (parenthesized_expression "((iVar24 == 0) || ((bVar14 ^ 1) != 0))" (( "(") (binary_expression "(iVar24 == 0) || ((bVar14 ^ 1) != 0)" (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((bVar14 ^ 1) != 0)" (( "(") (binary_expression "(bVar14 ^ 1) != 0" (parenthesized_expression "(bVar14 ^ 1)" (( "(") (binary_expression "bVar14 ^ 1" (identifier "bVar14") (^ "^") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                __printf_chk(1,"%s  attached SAS address: 0x",param_1);\n                if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }\nLAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);\n              }" ({ "{") (expression_statement "__printf_chk(1,"%s  attached SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%s  attached SAS address: 0x",param_1)" (identifier "__printf_chk") (argument_list "(1,"%s  attached SAS address: 0x",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  attached SAS address: 0x"" (" """) (string_content "%s  attached SAS address: 0x") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if ((bVar14 ^ 1) == 0) {\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }\n                else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" (if "if") (parenthesized_expression "((bVar14 ^ 1) == 0)" (( "(") (binary_expression "(bVar14 ^ 1) == 0" (parenthesized_expression "(bVar14 ^ 1)" (( "(") (binary_expression "bVar14 ^ 1" (identifier "bVar14") (^ "^") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  putchar(0x30);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\nLAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\n                  if (bVar14 != 0) goto LAB_0001a030;\n                  putchar(0x30);\n                }" ({ "{") (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" (identifier "putchar") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))) (; ";")) (expression_statement "bVar14 = sg_all_zeros(param_2,8);" (assignment_expression "bVar14 = sg_all_zeros(param_2,8)" (identifier "bVar14") (= "=") (call_expression "sg_all_zeros(param_2,8)" (identifier "sg_all_zeros") (argument_list "(param_2,8)" (( "(") (identifier "param_2") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "bVar14 = bVar14 ^ 1;" (assignment_expression "bVar14 = bVar14 ^ 1" (identifier "bVar14") (= "=") (binary_expression "bVar14 ^ 1" (identifier "bVar14") (^ "^") (number_literal "1"))) (; ";")) (labeled_statement "LAB_00019fce:\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);" (statement_identifier "LAB_00019fce") (: ":") (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",param_1)" (identifier "__printf_chk") (argument_list "(1,"\n%s  SAS address: 0x",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""\n%s  SAS address: 0x"" (" """) (escape_sequence "\n") (string_content "%s  SAS address: 0x") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";"))) (if_statement "if (bVar14 != 0) goto LAB_0001a030;" (if "if") (parenthesized_expression "(bVar14 != 0)" (( "(") (binary_expression "bVar14 != 0" (identifier "bVar14") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a030;" (goto "goto") (statement_identifier "LAB_0001a030") (; ";"))) (expression_statement "putchar(0x30);" (call_expression "putchar(0x30)" (identifier "putchar") (argument_list "(0x30)" (( "(") (number_literal "0x30") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" (else "else") (compound_statement "{\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);\n                  bVar14 = sg_all_zeros(param_2,8);\n                  bVar14 = bVar14 ^ 1;\n                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;\n                }" ({ "{") (do_statement "do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 != pbVar19);" (do "do") (compound_statement "{\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  }" ({ "{") (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" (identifier "bVar14") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f329,bVar14)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f329" (& "&") (identifier "DAT_0001f329")) (, ",") (identifier "bVar14") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != pbVar19)" (( "(") (binary_expression "param_2 != pbVar19" (identifier "param_2") (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (expression_statement "bVar14 = sg_all_zeros(param_2,8);" (assignment_expression "bVar14 = sg_all_zeros(param_2,8)" (identifier "bVar14") (= "=") (call_expression "sg_all_zeros(param_2,8)" (identifier "sg_all_zeros") (argument_list "(param_2,8)" (( "(") (identifier "param_2") (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "bVar14 = bVar14 ^ 1;" (assignment_expression "bVar14 = bVar14 ^ 1" (identifier "bVar14") (= "=") (binary_expression "bVar14 ^ 1" (identifier "bVar14") (^ "^") (number_literal "1"))) (; ";")) (if_statement "if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;" (if "if") (parenthesized_expression "((iVar24 == 0) || (bVar14 != 0))" (( "(") (binary_expression "(iVar24 == 0) || (bVar14 != 0)" (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar14 != 0)" (( "(") (binary_expression "bVar14 != 0" (identifier "bVar14") (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00019fce;" (goto "goto") (statement_identifier "LAB_00019fce") (; ";"))) (} "}")))) (labeled_statement "LAB_00019ff9:\n                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);" (statement_identifier "LAB_00019ff9") (: ":") (expression_statement "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);" (call_expression "__printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8])" (identifier "__printf_chk") (argument_list "(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8])" (( "(") (number_literal "1") (, ",") (string_literal ""\n%s  phy identifier: 0x%x\n"" (" """) (escape_sequence "\n") (string_content "%s  phy identifier: 0x%x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (subscript_expression "param_2[8]" (identifier "param_2") ([ "[") (number_literal "8") (] "]")) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" (else "else") (compound_statement "{\n                cVar2 = sg_all_zeros(param_2,8);\n                if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }\n              }" ({ "{") (expression_statement "cVar2 = sg_all_zeros(param_2,8);" (assignment_expression "cVar2 = sg_all_zeros(param_2,8)" (identifier "cVar2") (= "=") (call_expression "sg_all_zeros(param_2,8)" (identifier "sg_all_zeros") (argument_list "(param_2,8)" (( "(") (identifier "param_2") (, ",") (number_literal "8") () ")")))) (; ";")) (if_statement "if (cVar2 == '\0') {\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }" (if "if") (parenthesized_expression "(cVar2 == '\0')" (( "(") (binary_expression "cVar2 == '\0'" (identifier "cVar2") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);\nLAB_0001a030:\n                  pbVar19 = param_2;\n                  do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);\n                  goto LAB_00019ff9;\n                }" ({ "{") (expression_statement "__printf_chk(1,"\n%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"\n%s  SAS address: 0x",param_1)" (identifier "__printf_chk") (argument_list "(1,"\n%s  SAS address: 0x",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""\n%s  SAS address: 0x"" (" """) (escape_sequence "\n") (string_content "%s  SAS address: 0x") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (labeled_statement "LAB_0001a030:\n                  pbVar19 = param_2;" (statement_identifier "LAB_0001a030") (: ":") (expression_statement "pbVar19 = param_2;" (assignment_expression "pbVar19 = param_2" (identifier "pbVar19") (= "=") (identifier "param_2")) (; ";"))) (do_statement "do {\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  } while (param_2 + 8 != pbVar19);" (do "do") (compound_statement "{\n                    bVar14 = *pbVar19;\n                    pbVar19 = pbVar19 + 1;\n                    __printf_chk(1,&DAT_0001f329,bVar14);\n                  }" ({ "{") (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" (identifier "bVar14") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f329,bVar14)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f329" (& "&") (identifier "DAT_0001f329")) (, ",") (identifier "bVar14") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 + 8 != pbVar19)" (( "(") (binary_expression "param_2 + 8 != pbVar19" (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8")) (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (goto_statement "goto LAB_00019ff9;" (goto "goto") (statement_identifier "LAB_00019ff9") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" (identifier "local_a0") (= "=") (binary_expression "local_a0 + 1" (identifier "local_a0") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_2 = param_2 + 0x1c;" (assignment_expression "param_2 = param_2 + 0x1c" (identifier "param_2") (= "=") (binary_expression "param_2 + 0x1c" (identifier "param_2") (+ "+") (number_literal "0x1c"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != local_a0)" (( "(") (binary_expression "uVar5 != local_a0" (identifier "uVar5") (!= "!=") (identifier "local_a0")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" (else "else") (if_statement "if (bVar14 == 1) {\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }\n        else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" (if "if") (parenthesized_expression "(bVar14 == 1)" (( "(") (binary_expression "bVar14 == 1" (identifier "bVar14") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n          uVar5 = (uint)param_2[iVar11];\n          if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }\n        }" ({ "{") (expression_statement "uVar5 = (uint)param_2[iVar11];" (assignment_expression "uVar5 = (uint)param_2[iVar11]" (identifier "uVar5") (= "=") (cast_expression "(uint)param_2[iVar11]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[iVar11]" (identifier "param_2") ([ "[") (identifier "iVar11") (] "]")))) (; ";")) (if_statement "if (param_4 == 0x18) {\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }\n          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" (if "if") (parenthesized_expression "(param_4 == 0x18)" (( "(") (binary_expression "param_4 == 0x18" (identifier "param_4") (== "==") (number_literal "0x18")) () ")")) (compound_statement "{\n            uVar4 = uVar5;\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            __printf_chk(1,"%sSAS address: 0x",param_1);\n            pbVar19 = param_2 + local_84;\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);\n            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);\n            if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }\n          }" ({ "{") (expression_statement "uVar4 = uVar5;" (assignment_expression "uVar4 = uVar5" (identifier "uVar4") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5)" (identifier "__printf_chk") (argument_list "(1,"%snumber of phys: %d\n",param_1,uVar5)" (( "(") (number_literal "1") (, ",") (string_literal ""%snumber of phys: %d\n"" (" """) (string_content "%snumber of phys: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%sSAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%sSAS address: 0x",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sSAS address: 0x",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sSAS address: 0x"" (" """) (string_content "%sSAS address: 0x") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "pbVar19 = param_2 + local_84;" (assignment_expression "pbVar19 = param_2 + local_84" (identifier "pbVar19") (= "=") (binary_expression "param_2 + local_84" (identifier "param_2") (+ "+") (identifier "local_84"))) (; ";")) (do_statement "do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            } while (param_2 + local_84 + 8 != pbVar19);" (do "do") (compound_statement "{\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);\n            }" ({ "{") (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" (identifier "bVar14") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14,uVar4);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14,uVar4)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f329,bVar14,uVar4)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f329" (& "&") (identifier "DAT_0001f329")) (, ",") (identifier "bVar14") (, ",") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 + local_84 + 8 != pbVar19)" (( "(") (binary_expression "param_2 + local_84 + 8 != pbVar19" (binary_expression "param_2 + local_84 + 8" (binary_expression "param_2 + local_84" (identifier "param_2") (+ "+") (identifier "local_84")) (+ "+") (number_literal "8")) (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (expression_statement "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);" (call_expression "__printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4)" (identifier "__printf_chk") (argument_list "(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4)" (( "(") (number_literal "1") (, ",") (string_literal ""\n%sAttached connector; other_element pairs:\n"" (" """) (escape_sequence "\n") (string_content "%sAttached connector; other_element pairs:") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar4") () ")"))) (; ";")) (if_statement "if (uVar5 != 0) {\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              uVar20 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);\n            }" ({ "{") (expression_statement "uVar20 = 0;" (assignment_expression "uVar20 = 0" (identifier "uVar20") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = local_90 & 0xfffffffd;" (assignment_expression "uVar4 = local_90 & 0xfffffffd" (identifier "uVar4") (= "=") (binary_expression "local_90 & 0xfffffffd" (identifier "local_90") (& "&") (number_literal "0xfffffffd"))) (; ";")) (do_statement "do {\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              } while (uVar5 != uVar20);" (do "do") (compound_statement "{\n                uVar18 = param_1;\n                uVar13 = uVar20;\n                __printf_chk(1,"%s  [%d] ",param_1,uVar20);\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];\n                if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }\nLAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];\n                if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a67a:\n                uVar20 = uVar20 + 1;\n                putchar(10);\n              }" ({ "{") (expression_statement "uVar18 = param_1;" (assignment_expression "uVar18 = param_1" (identifier "uVar18") (= "=") (identifier "param_1")) (; ";")) (expression_statement "uVar13 = uVar20;" (assignment_expression "uVar13 = uVar20" (identifier "uVar13") (= "=") (identifier "uVar20")) (; ";")) (expression_statement "__printf_chk(1,"%s  [%d] ",param_1,uVar20);" (call_expression "__printf_chk(1,"%s  [%d] ",param_1,uVar20)" (identifier "__printf_chk") (argument_list "(1,"%s  [%d] ",param_1,uVar20)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  [%d] "" (" """) (string_content "%s  [%d] ") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar20") () ")"))) (; ";")) (expression_statement "uVar9 = (uint)param_2[uVar20 * 2 + local_7c];" (assignment_expression "uVar9 = (uint)param_2[uVar20 * 2 + local_7c]" (identifier "uVar9") (= "=") (cast_expression "(uint)param_2[uVar20 * 2 + local_7c]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[uVar20 * 2 + local_7c]" (identifier "param_2") ([ "[") (binary_expression "uVar20 * 2 + local_7c" (binary_expression "uVar20 * 2" (identifier "uVar20") (* "*") (number_literal "2")) (+ "+") (identifier "local_7c")) (] "]")))) (; ";")) (if_statement "if (uVar9 == 0xff) {\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar9 == 0xff)" (( "(") (binary_expression "uVar9 == 0xff" (identifier "uVar9") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                  __printf_chk(1,"no connector",uVar18,uVar13);\n                }" ({ "{") (expression_statement "__printf_chk(1,"no connector",uVar18,uVar13);" (call_expression "__printf_chk(1,"no connector",uVar18,uVar13)" (identifier "__printf_chk") (argument_list "(1,"no connector",uVar18,uVar13)" (( "(") (number_literal "1") (, ",") (string_literal ""no connector"" (" """) (string_content "no connector") (" """)) (, ",") (identifier "uVar18") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                }" ({ "{") (expression_statement "iVar24 = *(int *)(param_5 + 8);" (assignment_expression "iVar24 = *(int *)(param_5 + 8)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_5 + 8)" (* "*") (cast_expression "(int *)(param_5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" ({ "{") (expression_statement "__printf_chk(1,"connector ei: %d",uVar9,uVar13);" (call_expression "__printf_chk(1,"connector ei: %d",uVar9,uVar13)" (identifier "__printf_chk") (argument_list "(1,"connector ei: %d",uVar9,uVar13)" (( "(") (number_literal "1") (, ",") (string_literal ""connector ei: %d"" (" """) (string_content "connector ei: %d") (" """)) (, ",") (identifier "uVar9") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" (identifier "uVar18") (= "=") (identifier "uVar9")) (; ";")) (} "}")) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" (else "else") (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }\nLAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);\n                    uVar18 = uVar9;\n                  }" ({ "{") (if_statement "if (local_90 == 0) {\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" (if "if") (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }" ({ "{") (if_statement "if ((int)uVar9 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" (if "if") (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0xc))" (( "(") (binary_expression "(int)uVar9 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));" (do "do") (compound_statement "{\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        }" ({ "{") (if_statement "if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))\n                          {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }" (if "if") (parenthesized_expression "((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))" (( "(") (binary_expression "(*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4))" (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" (( "(") (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" (* "*") (cast_expression "(char *)(iVar24 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\x19'" (' "'") (escape_sequence "\x19") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar9 == *(uint *)(iVar24 + 4))" (( "(") (binary_expression "uVar9 == *(uint *)(iVar24 + 4)" (identifier "uVar9") (== "==") (pointer_expression "*(uint *)(iVar24 + 4)" (* "*") (cast_expression "(uint *)(iVar24 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 4)" (( "(") (binary_expression "iVar24 + 4" (identifier "iVar24") (+ "+") (number_literal "4")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;\n                            break;\n                          }" ({ "{") (if_statement "if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" (* "*") (cast_expression "(int *)(iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x18)" (( "(") (binary_expression "iVar24 + 0x18" (identifier "iVar24") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a70c;" (goto "goto") (statement_identifier "LAB_0001a70c") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 0x30" (identifier "iVar24") (+ "+") (number_literal "0x30"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < *(int *)(param_5 + 0xc))" (( "(") (binary_expression "iVar11 < *(int *)(param_5 + 0xc)" (identifier "iVar11") (< "<") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" (else "else") (if_statement "if (uVar4 == 1) {\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }\n                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" (if "if") (parenthesized_expression "(uVar4 == 1)" (( "(") (binary_expression "uVar4 == 1" (identifier "uVar4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }\n                    }" ({ "{") (if_statement "if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }" (if "if") (parenthesized_expression "(((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0))" (( "(") (binary_expression "((int)uVar9 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)" (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0xc))" (( "(") (binary_expression "(int)uVar9 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)" (( "(") (comma_expression "iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0" (assignment_expression "iVar24 = iVar24 + uVar9 * 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + uVar9 * 0x30" (identifier "iVar24") (+ "+") (binary_expression "uVar9 * 0x30" (identifier "uVar9") (* "*") (number_literal "0x30")))) (, ",") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }\n                      }" ({ "{") (labeled_statement "LAB_0001a59d:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" (statement_identifier "LAB_0001a59d") (: ":") (if_statement "if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" (if "if") (parenthesized_expression "((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19'))" (( "(") (binary_expression "(*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')" (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" (* "*") (cast_expression "(int *)(iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x18)" (( "(") (binary_expression "iVar24 + 0x18" (identifier "iVar24") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" (( "(") (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" (* "*") (cast_expression "(char *)(iVar24 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\x19'" (' "'") (escape_sequence "\x19") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001a70c:\n                          FUN_00017c20(1,param_6);\n                          uVar18 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar18,uVar13);\n                          goto LAB_0001a5c3;\n                        }" ({ "{") (labeled_statement "LAB_0001a70c:\n                          FUN_00017c20(1,param_6);" (statement_identifier "LAB_0001a70c") (: ":") (expression_statement "FUN_00017c20(1,param_6);" (call_expression "FUN_00017c20(1,param_6)" (identifier "FUN_00017c20") (argument_list "(1,param_6)" (( "(") (number_literal "1") (, ",") (identifier "param_6") () ")"))) (; ";"))) (expression_statement "uVar18 = *(uint *)(iVar24 + 4);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 4)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar24 + 4)" (* "*") (cast_expression "(uint *)(iVar24 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 4)" (( "(") (binary_expression "iVar24 + 4" (identifier "iVar24") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "__printf_chk(1," [%d]",uVar18,uVar13);" (call_expression "__printf_chk(1," [%d]",uVar18,uVar13)" (identifier "__printf_chk") (argument_list "(1," [%d]",uVar18,uVar13)" (( "(") (number_literal "1") (, ",") (string_literal "" [%d]"" (" """) (string_content " [%d]") (" """)) (, ",") (identifier "uVar18") (, ",") (identifier "uVar13") () ")"))) (; ";")) (goto_statement "goto LAB_0001a5c3;" (goto "goto") (statement_identifier "LAB_0001a5c3") (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" (else "else") (if_statement "if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" (if "if") (parenthesized_expression "(((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc)))" (( "(") (binary_expression "((int)uVar9 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))" (parenthesized_expression "((int)uVar9 < *(int *)(param_5 + 0x10))" (( "(") (binary_expression "(int)uVar9 < *(int *)(param_5 + 0x10)" (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9")) (< "<") (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)*(uint *)(param_5 + 0xc))" (( "(") (binary_expression "0 < (int)*(uint *)(param_5 + 0xc)" (number_literal "0") (< "<") (cast_expression "(int)*(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                      uVar18 = *(uint *)(iVar24 + 0xc);\n                      uVar10 = uVar4;\n                      while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a59d;\n                    }" ({ "{") (expression_statement "uVar18 = *(uint *)(iVar24 + 0xc);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 0xc)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar24 + 0xc)" (* "*") (cast_expression "(uint *)(iVar24 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0xc)" (( "(") (binary_expression "iVar24 + 0xc" (identifier "iVar24") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" (identifier "uVar10") (= "=") (identifier "uVar4")) (; ";")) (while_statement "while (uVar9 != uVar18) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" (while "while") (parenthesized_expression "(uVar9 != uVar18)" (( "(") (binary_expression "uVar9 != uVar18" (identifier "uVar9") (!= "!=") (identifier "uVar18")) () ")")) (compound_statement "{\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;\n                        uVar18 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" ({ "{") (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;" (if "if") (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar10)" (( "(") (binary_expression "*(uint *)(param_5 + 0xc) == uVar10" (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (identifier "uVar10")) () ")")) (goto_statement "goto LAB_0001a5ae;" (goto "goto") (statement_identifier "LAB_0001a5ae") (; ";"))) (expression_statement "uVar18 = *(uint *)(iVar24 + 0x3c);" (assignment_expression "uVar18 = *(uint *)(iVar24 + 0x3c)" (identifier "uVar18") (= "=") (pointer_expression "*(uint *)(iVar24 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar24 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x3c)" (( "(") (binary_expression "iVar24 + 0x3c" (identifier "iVar24") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 0x30" (identifier "iVar24") (+ "+") (number_literal "0x30"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001a59d;" (goto "goto") (statement_identifier "LAB_0001a59d") (; ";")) (} "}"))))))) (labeled_statement "LAB_0001a5ae:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);" (statement_identifier "LAB_0001a5ae") (: ":") (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13)" (identifier "__printf_chk") (argument_list "(1,"broken [conn_idx=%d]",uVar9,uVar13)" (( "(") (number_literal "1") (, ",") (string_literal ""broken [conn_idx=%d]"" (" """) (string_content "broken [conn_idx=%d]") (" """)) (, ",") (identifier "uVar9") (, ",") (identifier "uVar13") () ")"))) (; ";"))) (expression_statement "uVar18 = uVar9;" (assignment_expression "uVar18 = uVar9" (identifier "uVar18") (= "=") (identifier "uVar9")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0001a5c3:\n                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];" (statement_identifier "LAB_0001a5c3") (: ":") (expression_statement "uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];" (assignment_expression "uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1]" (identifier "uVar9") (= "=") (cast_expression "(uint)param_2[uVar20 * 2 + local_7c + 1]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[uVar20 * 2 + local_7c + 1]" (identifier "param_2") ([ "[") (binary_expression "uVar20 * 2 + local_7c + 1" (binary_expression "uVar20 * 2 + local_7c" (binary_expression "uVar20 * 2" (identifier "uVar20") (* "*") (number_literal "2")) (+ "+") (identifier "local_7c")) (+ "+") (number_literal "1")) (] "]")))) (; ";"))) (if_statement "if (uVar9 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(uVar9 != 0xff)" (( "(") (binary_expression "uVar9 != 0xff" (identifier "uVar9") (!= "!=") (number_literal "0xff")) () ")")) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" ({ "{") (expression_statement "__printf_chk(1,&DAT_0001f46d,uVar18,uVar13);" (call_expression "__printf_chk(1,&DAT_0001f46d,uVar18,uVar13)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f46d,uVar18,uVar13)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f46d" (& "&") (identifier "DAT_0001f46d")) (, ",") (identifier "uVar18") (, ",") (identifier "uVar13") () ")"))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(param_5 + 8);" (assignment_expression "puVar22 = *(undefined4 **)(param_5 + 8)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(param_5 + 8)" (* "*") (cast_expression "(undefined4 **)(param_5 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" (if "if") (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 == (undefined4 *)0x0" (identifier "puVar22") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar9,uVar13);\n                  }" ({ "{") (expression_statement "__printf_chk(1,"other ei: %d",uVar9,uVar13);" (call_expression "__printf_chk(1,"other ei: %d",uVar9,uVar13)" (identifier "__printf_chk") (argument_list "(1,"other ei: %d",uVar9,uVar13)" (( "(") (number_literal "1") (, ",") (string_literal ""other ei: %d"" (" """) (string_content "other ei: %d") (" """)) (, ",") (identifier "uVar9") (, ",") (identifier "uVar13") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" (else "else") (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" ({ "{") (if_statement "if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (if "if") (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;\n                      if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }\n                    }" ({ "{") (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))\n                      goto LAB_0001a7fc;" (if "if") (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))" (( "(") (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9)" (( "(") (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_5 + 0xc) < 1)" (( "(") (binary_expression "*(int *)(param_5 + 0xc) < 1" (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_0001a7fc;" (goto "goto") (statement_identifier "LAB_0001a7fc") (; ";"))) (if_statement "if (uVar9 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }" (if "if") (parenthesized_expression "(uVar9 != puVar22[4])" (( "(") (binary_expression "uVar9 != puVar22[4]" (identifier "uVar9") (!= "!=") (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]"))) () ")")) (compound_statement "{\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);\n                      }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" (identifier "puVar23") (= "=") (identifier "puVar22")) (; ";")) (do_statement "do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar9 != *puVar1);" (do "do") (compound_statement "{\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        }" ({ "{") (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar22 = puVar23 + 0xc;" (assignment_expression "puVar22 = puVar23 + 0xc" (identifier "puVar22") (= "=") (binary_expression "puVar23 + 0xc" (identifier "puVar23") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;" (if "if") (parenthesized_expression "(iVar24 == *(int *)(param_5 + 0xc))" (( "(") (binary_expression "iVar24 == *(int *)(param_5 + 0xc)" (identifier "iVar24") (== "==") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (goto_statement "goto LAB_0001a7fc;" (goto "goto") (statement_identifier "LAB_0001a7fc") (; ";"))) (expression_statement "puVar1 = puVar23 + 0x10;" (assignment_expression "puVar1 = puVar23 + 0x10" (identifier "puVar1") (= "=") (binary_expression "puVar23 + 0x10" (identifier "puVar23") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" (identifier "puVar23") (= "=") (identifier "puVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != *puVar1)" (( "(") (binary_expression "uVar9 != *puVar1" (identifier "uVar9") (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (else "else") (if_statement "if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar4 == 1)" (( "(") (binary_expression "uVar4 == 1" (identifier "uVar4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }\n                    }" ({ "{") (if_statement "if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }" (if "if") (parenthesized_expression "((*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0))" (( "(") (binary_expression "(*(int *)(param_5 + 0xc) <= (int)uVar9) ||\n                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(param_5 + 0xc) <= (int)uVar9)" (( "(") (binary_expression "*(int *)(param_5 + 0xc) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (<= "<=") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) () ")")) (|| "||") (parenthesized_expression "(puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0" (assignment_expression "puVar22 = puVar22 + uVar9 * 0xc" (identifier "puVar22") (= "=") (binary_expression "puVar22 + uVar9 * 0xc" (identifier "puVar22") (+ "+") (binary_expression "uVar9 * 0xc" (identifier "uVar9") (* "*") (number_literal "0xc")))) (, ",") (binary_expression "puVar22 == (undefined4 *)0x0" (identifier "puVar22") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\nLAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);\n                        goto LAB_0001a67a;\n                      }" ({ "{") (labeled_statement "LAB_0001a7fc:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);" (statement_identifier "LAB_0001a7fc") (: ":") (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13)" (identifier "__printf_chk") (argument_list "(1,"broken [oth_elem_idx=%d]",uVar9,uVar13)" (( "(") (number_literal "1") (, ",") (string_literal ""broken [oth_elem_idx=%d]"" (" """) (string_content "broken [oth_elem_idx=%d]") (" """)) (, ",") (identifier "uVar9") (, ",") (identifier "uVar13") () ")"))) (; ";"))) (goto_statement "goto LAB_0001a67a;" (goto "goto") (statement_identifier "LAB_0001a67a") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (else "else") (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;\n                      uVar18 = puVar22[3];\n                      uVar10 = uVar4;\n                      while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" ({ "{") (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;" (if "if") (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1))" (( "(") (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar9)" (( "(") (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar9" (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (cast_expression "(int)uVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar9"))) () ")")) (|| "||") (parenthesized_expression "((int)*(uint *)(param_5 + 0xc) < 1)" (( "(") (binary_expression "(int)*(uint *)(param_5 + 0xc) < 1" (cast_expression "(int)*(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) (< "<") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_0001a7fc;" (goto "goto") (statement_identifier "LAB_0001a7fc") (; ";"))) (expression_statement "uVar18 = puVar22[3];" (assignment_expression "uVar18 = puVar22[3]" (identifier "uVar18") (= "=") (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar10 = uVar4;" (assignment_expression "uVar10 = uVar4" (identifier "uVar10") (= "=") (identifier "uVar4")) (; ";")) (while_statement "while (uVar18 != uVar9) {\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" (while "while") (parenthesized_expression "(uVar18 != uVar9)" (( "(") (binary_expression "uVar18 != uVar9" (identifier "uVar18") (!= "!=") (identifier "uVar9")) () ")")) (compound_statement "{\n                        uVar10 = uVar10 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;\n                        uVar18 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" ({ "{") (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;" (if "if") (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar10)" (( "(") (binary_expression "*(uint *)(param_5 + 0xc) == uVar10" (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (identifier "uVar10")) () ")")) (goto_statement "goto LAB_0001a7fc;" (goto "goto") (statement_identifier "LAB_0001a7fc") (; ";"))) (expression_statement "uVar18 = puVar22[0xf];" (assignment_expression "uVar18 = puVar22[0xf]" (identifier "uVar18") (= "=") (subscript_expression "puVar22[0xf]" (identifier "puVar22") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 0xc" (identifier "puVar22") (+ "+") (number_literal "0xc"))) (; ";")) (} "}"))) (} "}")))))) (if_statement "if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" (if "if") (parenthesized_expression "(puVar22[5] == 0)" (( "(") (binary_expression "puVar22[5] == 0" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                    }" ({ "{") (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" (identifier "uVar3") (= "=") (call_expression "FUN_000169f0()" (identifier "FUN_000169f0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" (else "else") (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }\n                    }" ({ "{") (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" (identifier "uVar3") (= "=") (call_expression "FUN_000169f0()" (identifier "FUN_000169f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar15 = *(ushort *)(puVar22[5] + 2);" (assignment_expression "uVar15 = *(ushort *)(puVar22[5] + 2)" (identifier "uVar15") (= "=") (pointer_expression "*(ushort *)(puVar22[5] + 2)" (* "*") (cast_expression "(ushort *)(puVar22[5] + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22[5] + 2)" (( "(") (binary_expression "puVar22[5] + 2" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 8;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 8" (identifier "uVar15") (= "=") (binary_expression "uVar15 << 8 | uVar15 >> 8" (binary_expression "uVar15 << 8" (identifier "uVar15") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")))) (; ";")) (if_statement "if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a67a;\n                      }" ({ "{") (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" (identifier "__printf_chk") (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""%.*s [%d,%d] etype: %s"" (" """) (string_content "%.*s [%d,%d] etype: %s") (" """)) (, ",") (identifier "uVar15") (, ",") (binary_expression "puVar22[5] + 4" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "4")) (, ",") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (, ",") (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "uVar3") () ")"))) (; ";")) (goto_statement "goto LAB_0001a67a;" (goto "goto") (statement_identifier "LAB_0001a67a") (; ";")) (} "}"))) (} "}")))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" (identifier "__printf_chk") (argument_list "(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""[%d,%d] etype: %s"" (" """) (string_content "[%d,%d] etype: %s") (" """)) (, ",") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (, ",") (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0001a67a:\n                uVar20 = uVar20 + 1;" (statement_identifier "LAB_0001a67a") (: ":") (expression_statement "uVar20 = uVar20 + 1;" (assignment_expression "uVar20 = uVar20 + 1" (identifier "uVar20") (= "=") (binary_expression "uVar20 + 1" (identifier "uVar20") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != uVar20)" (( "(") (binary_expression "uVar5 != uVar20" (identifier "uVar5") (!= "!=") (identifier "uVar20")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" (else "else") (if_statement "if ((param_4 - 0x14U < 2) || (param_4 == 7)) {\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }\n          else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" (if "if") (parenthesized_expression "((param_4 - 0x14U < 2) || (param_4 == 7))" (( "(") (binary_expression "(param_4 - 0x14U < 2) || (param_4 == 7)" (parenthesized_expression "(param_4 - 0x14U < 2)" (( "(") (binary_expression "param_4 - 0x14U < 2" (binary_expression "param_4 - 0x14U" (identifier "param_4") (- "-") (number_literal "0x14U")) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(param_4 == 7)" (( "(") (binary_expression "param_4 == 7" (identifier "param_4") (== "==") (number_literal "7")) () ")"))) () ")")) (compound_statement "{\n            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);\n            if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }\n          }" ({ "{") (expression_statement "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);" (call_expression "__printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5)" (identifier "__printf_chk") (argument_list "(1,"%snumber of phys: %d\n",param_1,uVar5)" (( "(") (number_literal "1") (, ",") (string_literal ""%snumber of phys: %d\n"" (" """) (string_content "%snumber of phys: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (uVar5 != 0) {\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              local_98 = 0;\n              uVar4 = local_90 & 0xfffffffd;\n              param_2 = param_2 + local_74 + 0xc;\n              do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);\n            }" ({ "{") (expression_statement "local_98 = 0;" (assignment_expression "local_98 = 0" (identifier "local_98") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar4 = local_90 & 0xfffffffd;" (assignment_expression "uVar4 = local_90 & 0xfffffffd" (identifier "uVar4") (= "=") (binary_expression "local_90 & 0xfffffffd" (identifier "local_90") (& "&") (number_literal "0xfffffffd"))) (; ";")) (expression_statement "param_2 = param_2 + local_74 + 0xc;" (assignment_expression "param_2 = param_2 + local_74 + 0xc" (identifier "param_2") (= "=") (binary_expression "param_2 + local_74 + 0xc" (binary_expression "param_2 + local_74" (identifier "param_2") (+ "+") (identifier "local_74")) (+ "+") (number_literal "0xc"))) (; ";")) (do_statement "do {\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              } while (uVar5 != local_98);" (do "do") (compound_statement "{\n                uVar18 = local_98;\n                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);\n                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);\n                uVar20 = param_1;\n                __printf_chk(1,&DAT_0001f4bf,param_1);\n                uVar13 = (uint)param_2[-10];\n                if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }\nLAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];\n                if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }\nLAB_0001a2a0:\n                pbVar19 = param_2 + -8;\n                putchar(10);\n                __printf_chk(1,"%s  SAS address: 0x",param_1);\n                do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);\n                param_2 = param_2 + 0xc;\n                putchar(10);\n                local_98 = local_98 + 1;\n              }" ({ "{") (expression_statement "uVar18 = local_98;" (assignment_expression "uVar18 = local_98" (identifier "uVar18") (= "=") (identifier "local_98")) (; ";")) (expression_statement "__printf_chk(1,"%sphy index: %d\n",param_1,local_98);" (call_expression "__printf_chk(1,"%sphy index: %d\n",param_1,local_98)" (identifier "__printf_chk") (argument_list "(1,"%sphy index: %d\n",param_1,local_98)" (( "(") (number_literal "1") (, ",") (string_literal ""%sphy index: %d\n"" (" """) (string_content "%sphy index: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "local_98") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);" (call_expression "__printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc])" (identifier "__printf_chk") (argument_list "(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc])" (( "(") (number_literal "1") (, ",") (string_literal ""%s  phy_id: 0x%x\n"" (" """) (string_content "%s  phy_id: 0x%x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (subscript_expression "param_2[-0xc]" (identifier "param_2") ([ "[") (number_literal "-0xc") (] "]")) () ")"))) (; ";")) (expression_statement "uVar20 = param_1;" (assignment_expression "uVar20 = param_1" (identifier "uVar20") (= "=") (identifier "param_1")) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f4bf,param_1);" (call_expression "__printf_chk(1,&DAT_0001f4bf,param_1)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f4bf,param_1)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f4bf" (& "&") (identifier "DAT_0001f4bf")) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar13 = (uint)param_2[-10];" (assignment_expression "uVar13 = (uint)param_2[-10]" (identifier "uVar13") (= "=") (cast_expression "(uint)param_2[-10]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[-10]" (identifier "param_2") ([ "[") (number_literal "-10") (] "]")))) (; ";")) (if_statement "if (uVar13 == 0xff) {\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }\n                else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" (if "if") (parenthesized_expression "(uVar13 == 0xff)" (( "(") (binary_expression "uVar13 == 0xff" (identifier "uVar13") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n                  __printf_chk(1,"no connector",uVar20,uVar18);\n                }" ({ "{") (expression_statement "__printf_chk(1,"no connector",uVar20,uVar18);" (call_expression "__printf_chk(1,"no connector",uVar20,uVar18)" (identifier "__printf_chk") (argument_list "(1,"no connector",uVar20,uVar18)" (( "(") (number_literal "1") (, ",") (string_literal ""no connector"" (" """) (string_content "no connector") (" """)) (, ",") (identifier "uVar20") (, ",") (identifier "uVar18") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" (else "else") (compound_statement "{\n                  iVar24 = *(int *)(param_5 + 8);\n                  if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                }" ({ "{") (expression_statement "iVar24 = *(int *)(param_5 + 8);" (assignment_expression "iVar24 = *(int *)(param_5 + 8)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_5 + 8)" (* "*") (cast_expression "(int *)(param_5 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (iVar24 == 0) {\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" (if "if") (parenthesized_expression "(iVar24 == 0)" (( "(") (binary_expression "iVar24 == 0" (identifier "iVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" ({ "{") (expression_statement "__printf_chk(1,"connector ei: %d",uVar13,uVar18);" (call_expression "__printf_chk(1,"connector ei: %d",uVar13,uVar18)" (identifier "__printf_chk") (argument_list "(1,"connector ei: %d",uVar13,uVar18)" (( "(") (number_literal "1") (, ",") (string_literal ""connector ei: %d"" (" """) (string_content "connector ei: %d") (" """)) (, ",") (identifier "uVar13") (, ",") (identifier "uVar18") () ")"))) (; ";")) (expression_statement "uVar20 = uVar13;" (assignment_expression "uVar20 = uVar13" (identifier "uVar20") (= "=") (identifier "uVar13")) (; ";")) (} "}")) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" (else "else") (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }\nLAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);\n                    uVar20 = uVar13;\n                  }" ({ "{") (if_statement "if (local_90 == 0) {\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" (if "if") (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }\n                    }" ({ "{") (if_statement "if ((int)uVar13 < *(int *)(param_5 + 0xc)) {\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" (if "if") (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0xc))" (( "(") (binary_expression "(int)uVar13 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (compound_statement "{\n                        iVar11 = 0;\n                        do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));\n                      }" ({ "{") (expression_statement "iVar11 = 0;" (assignment_expression "iVar11 = 0" (identifier "iVar11") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        } while (iVar11 < *(int *)(param_5 + 0xc));" (do "do") (compound_statement "{\n                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }\n                          iVar11 = iVar11 + 1;\n                          iVar24 = iVar24 + 0x30;\n                        }" ({ "{") (if_statement "if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             ) {\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }" (if "if") (parenthesized_expression "((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))\n                             )" (( "(") (binary_expression "(*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))" (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" (( "(") (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" (* "*") (cast_expression "(char *)(iVar24 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\x19'" (' "'") (escape_sequence "\x19") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar13 == *(uint *)(iVar24 + 4))" (( "(") (binary_expression "uVar13 == *(uint *)(iVar24 + 4)" (identifier "uVar13") (== "==") (pointer_expression "*(uint *)(iVar24 + 4)" (* "*") (cast_expression "(uint *)(iVar24 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 4)" (( "(") (binary_expression "iVar24 + 4" (identifier "iVar24") (+ "+") (number_literal "4")) () ")"))))) () ")"))) () ")")) (compound_statement "{\n                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;\n                            break;\n                          }" ({ "{") (if_statement "if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;" (if "if") (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" (* "*") (cast_expression "(int *)(iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x18)" (( "(") (binary_expression "iVar24 + 0x18" (identifier "iVar24") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001a344;" (goto "goto") (statement_identifier "LAB_0001a344") (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "iVar11 = iVar11 + 1;" (assignment_expression "iVar11 = iVar11 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 0x30" (identifier "iVar24") (+ "+") (number_literal "0x30"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar11 < *(int *)(param_5 + 0xc))" (( "(") (binary_expression "iVar11 < *(int *)(param_5 + 0xc)" (identifier "iVar11") (< "<") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" (else "else") (if_statement "if (uVar4 == 1) {\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }\n                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" (if "if") (parenthesized_expression "(uVar4 == 1)" (( "(") (binary_expression "uVar4 == 1" (identifier "uVar4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }\n                    }" ({ "{") (if_statement "if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }" (if "if") (parenthesized_expression "(((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0))" (( "(") (binary_expression "((int)uVar13 < *(int *)(param_5 + 0xc)) &&\n                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)" (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0xc))" (( "(") (binary_expression "(int)uVar13 < *(int *)(param_5 + 0xc)" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)" (( "(") (comma_expression "iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0" (assignment_expression "iVar24 = iVar24 + uVar13 * 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + uVar13 * 0x30" (identifier "iVar24") (+ "+") (binary_expression "uVar13 * 0x30" (identifier "uVar13") (* "*") (number_literal "0x30")))) (, ",") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }\n                      }" ({ "{") (labeled_statement "LAB_0001a1bc:\n                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" (statement_identifier "LAB_0001a1bc") (: ":") (if_statement "if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" (if "if") (parenthesized_expression "((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19'))" (( "(") (binary_expression "(*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')" (parenthesized_expression "(*(int *)(iVar24 + 0x18) != 0)" (( "(") (binary_expression "*(int *)(iVar24 + 0x18) != 0" (pointer_expression "*(int *)(iVar24 + 0x18)" (* "*") (cast_expression "(int *)(iVar24 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x18)" (( "(") (binary_expression "iVar24 + 0x18" (identifier "iVar24") (+ "+") (number_literal "0x18")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar24 + 8) == '\x19')" (( "(") (binary_expression "*(char *)(iVar24 + 8) == '\x19'" (pointer_expression "*(char *)(iVar24 + 8)" (* "*") (cast_expression "(char *)(iVar24 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 8)" (( "(") (binary_expression "iVar24 + 8" (identifier "iVar24") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\x19'" (' "'") (escape_sequence "\x19") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_0001a344:\n                          FUN_00017c20(1,param_6);\n                          uVar20 = *(uint *)(iVar24 + 4);\n                          __printf_chk(1," [%d]",uVar20,uVar18);\n                          goto LAB_0001a1e2;\n                        }" ({ "{") (labeled_statement "LAB_0001a344:\n                          FUN_00017c20(1,param_6);" (statement_identifier "LAB_0001a344") (: ":") (expression_statement "FUN_00017c20(1,param_6);" (call_expression "FUN_00017c20(1,param_6)" (identifier "FUN_00017c20") (argument_list "(1,param_6)" (( "(") (number_literal "1") (, ",") (identifier "param_6") () ")"))) (; ";"))) (expression_statement "uVar20 = *(uint *)(iVar24 + 4);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 4)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(iVar24 + 4)" (* "*") (cast_expression "(uint *)(iVar24 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 4)" (( "(") (binary_expression "iVar24 + 4" (identifier "iVar24") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "__printf_chk(1," [%d]",uVar20,uVar18);" (call_expression "__printf_chk(1," [%d]",uVar20,uVar18)" (identifier "__printf_chk") (argument_list "(1," [%d]",uVar20,uVar18)" (( "(") (number_literal "1") (, ",") (string_literal "" [%d]"" (" """) (string_content " [%d]") (" """)) (, ",") (identifier "uVar20") (, ",") (identifier "uVar18") () ")"))) (; ";")) (goto_statement "goto LAB_0001a1e2;" (goto "goto") (statement_identifier "LAB_0001a1e2") (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" (else "else") (if_statement "if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))) {\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" (if "if") (parenthesized_expression "(((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc)))" (( "(") (binary_expression "((int)uVar13 < *(int *)(param_5 + 0x10)) &&\n                            (0 < (int)*(uint *)(param_5 + 0xc))" (parenthesized_expression "((int)uVar13 < *(int *)(param_5 + 0x10))" (( "(") (binary_expression "(int)uVar13 < *(int *)(param_5 + 0x10)" (cast_expression "(int)uVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar13")) (< "<") (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (&& "&&") (parenthesized_expression "(0 < (int)*(uint *)(param_5 + 0xc))" (( "(") (binary_expression "0 < (int)*(uint *)(param_5 + 0xc)" (number_literal "0") (< "<") (cast_expression "(int)*(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n                      uVar20 = *(uint *)(iVar24 + 0xc);\n                      uVar9 = uVar4;\n                      while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }\n                      goto LAB_0001a1bc;\n                    }" ({ "{") (expression_statement "uVar20 = *(uint *)(iVar24 + 0xc);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 0xc)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(iVar24 + 0xc)" (* "*") (cast_expression "(uint *)(iVar24 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0xc)" (( "(") (binary_expression "iVar24 + 0xc" (identifier "iVar24") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "uVar9 = uVar4;" (assignment_expression "uVar9 = uVar4" (identifier "uVar9") (= "=") (identifier "uVar4")) (; ";")) (while_statement "while (uVar13 != uVar20) {\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" (while "while") (parenthesized_expression "(uVar13 != uVar20)" (( "(") (binary_expression "uVar13 != uVar20" (identifier "uVar13") (!= "!=") (identifier "uVar20")) () ")")) (compound_statement "{\n                        uVar9 = uVar9 + 1;\n                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;\n                        uVar20 = *(uint *)(iVar24 + 0x3c);\n                        iVar24 = iVar24 + 0x30;\n                      }" ({ "{") (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;" (if "if") (parenthesized_expression "(*(uint *)(param_5 + 0xc) == uVar9)" (( "(") (binary_expression "*(uint *)(param_5 + 0xc) == uVar9" (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (identifier "uVar9")) () ")")) (goto_statement "goto LAB_0001a1cd;" (goto "goto") (statement_identifier "LAB_0001a1cd") (; ";"))) (expression_statement "uVar20 = *(uint *)(iVar24 + 0x3c);" (assignment_expression "uVar20 = *(uint *)(iVar24 + 0x3c)" (identifier "uVar20") (= "=") (pointer_expression "*(uint *)(iVar24 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar24 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar24 + 0x3c)" (( "(") (binary_expression "iVar24 + 0x3c" (identifier "iVar24") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "iVar24 = iVar24 + 0x30;" (assignment_expression "iVar24 = iVar24 + 0x30" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 0x30" (identifier "iVar24") (+ "+") (number_literal "0x30"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0001a1bc;" (goto "goto") (statement_identifier "LAB_0001a1bc") (; ";")) (} "}"))))))) (labeled_statement "LAB_0001a1cd:\n                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);" (statement_identifier "LAB_0001a1cd") (: ":") (expression_statement "__printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);" (call_expression "__printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18)" (identifier "__printf_chk") (argument_list "(1,"broken [conn_idx=%d]",uVar13,uVar18)" (( "(") (number_literal "1") (, ",") (string_literal ""broken [conn_idx=%d]"" (" """) (string_content "broken [conn_idx=%d]") (" """)) (, ",") (identifier "uVar13") (, ",") (identifier "uVar18") () ")"))) (; ";"))) (expression_statement "uVar20 = uVar13;" (assignment_expression "uVar20 = uVar13" (identifier "uVar20") (= "=") (identifier "uVar13")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0001a1e2:\n                uVar18 = (uint)param_2[-9];" (statement_identifier "LAB_0001a1e2") (: ":") (expression_statement "uVar18 = (uint)param_2[-9];" (assignment_expression "uVar18 = (uint)param_2[-9]" (identifier "uVar18") (= "=") (cast_expression "(uint)param_2[-9]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[-9]" (identifier "param_2") ([ "[") (number_literal "-9") (] "]")))) (; ";"))) (if_statement "if (uVar18 != 0xff) {\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" (if "if") (parenthesized_expression "(uVar18 != 0xff)" (( "(") (binary_expression "uVar18 != 0xff" (identifier "uVar18") (!= "!=") (number_literal "0xff")) () ")")) (compound_statement "{\n                  __printf_chk(1,&DAT_0001f46d,uVar20);\n                  puVar22 = *(undefined4 **)(param_5 + 8);\n                  if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }\n                }" ({ "{") (expression_statement "__printf_chk(1,&DAT_0001f46d,uVar20);" (call_expression "__printf_chk(1,&DAT_0001f46d,uVar20)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f46d,uVar20)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f46d" (& "&") (identifier "DAT_0001f46d")) (, ",") (identifier "uVar20") () ")"))) (; ";")) (expression_statement "puVar22 = *(undefined4 **)(param_5 + 8);" (assignment_expression "puVar22 = *(undefined4 **)(param_5 + 8)" (identifier "puVar22") (= "=") (pointer_expression "*(undefined4 **)(param_5 + 8)" (* "*") (cast_expression "(undefined4 **)(param_5 + 8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (puVar22 == (undefined4 *)0x0) {\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }\n                  else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" (if "if") (parenthesized_expression "(puVar22 == (undefined4 *)0x0)" (( "(") (binary_expression "puVar22 == (undefined4 *)0x0" (identifier "puVar22") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    __printf_chk(1,"other ei: %d",uVar18);\n                  }" ({ "{") (expression_statement "__printf_chk(1,"other ei: %d",uVar18);" (call_expression "__printf_chk(1,"other ei: %d",uVar18)" (identifier "__printf_chk") (argument_list "(1,"other ei: %d",uVar18)" (( "(") (number_literal "1") (, ",") (string_literal ""other ei: %d"" (" """) (string_content "other ei: %d") (" """)) (, ",") (identifier "uVar18") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" (else "else") (compound_statement "{\n                    if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }\n                    if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);\n                  }" ({ "{") (if_statement "if (local_90 == 0) {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }\n                    else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (if "if") (parenthesized_expression "(local_90 == 0)" (( "(") (binary_expression "local_90 == 0" (identifier "local_90") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;\n                      if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }\n                    }" ({ "{") (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         ) goto LAB_0001a426;" (if "if") (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)\n                         )" (( "(") (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18)" (( "(") (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18"))) () ")")) (|| "||") (parenthesized_expression "(*(int *)(param_5 + 0xc) < 1)" (( "(") (binary_expression "*(int *)(param_5 + 0xc) < 1" (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (< "<") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_0001a426;" (goto "goto") (statement_identifier "LAB_0001a426") (; ";"))) (if_statement "if (uVar18 != puVar22[4]) {\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }" (if "if") (parenthesized_expression "(uVar18 != puVar22[4])" (( "(") (binary_expression "uVar18 != puVar22[4]" (identifier "uVar18") (!= "!=") (subscript_expression "puVar22[4]" (identifier "puVar22") ([ "[") (number_literal "4") (] "]"))) () ")")) (compound_statement "{\n                        iVar24 = 0;\n                        puVar23 = puVar22;\n                        do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);\n                      }" ({ "{") (expression_statement "iVar24 = 0;" (assignment_expression "iVar24 = 0" (identifier "iVar24") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" (identifier "puVar23") (= "=") (identifier "puVar22")) (; ";")) (do_statement "do {\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        } while (uVar18 != *puVar1);" (do "do") (compound_statement "{\n                          iVar24 = iVar24 + 1;\n                          puVar22 = puVar23 + 0xc;\n                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;\n                          puVar1 = puVar23 + 0x10;\n                          puVar23 = puVar22;\n                        }" ({ "{") (expression_statement "iVar24 = iVar24 + 1;" (assignment_expression "iVar24 = iVar24 + 1" (identifier "iVar24") (= "=") (binary_expression "iVar24 + 1" (identifier "iVar24") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar22 = puVar23 + 0xc;" (assignment_expression "puVar22 = puVar23 + 0xc" (identifier "puVar22") (= "=") (binary_expression "puVar23 + 0xc" (identifier "puVar23") (+ "+") (number_literal "0xc"))) (; ";")) (if_statement "if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;" (if "if") (parenthesized_expression "(iVar24 == *(int *)(param_5 + 0xc))" (( "(") (binary_expression "iVar24 == *(int *)(param_5 + 0xc)" (identifier "iVar24") (== "==") (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (goto_statement "goto LAB_0001a426;" (goto "goto") (statement_identifier "LAB_0001a426") (; ";"))) (expression_statement "puVar1 = puVar23 + 0x10;" (assignment_expression "puVar1 = puVar23 + 0x10" (identifier "puVar1") (= "=") (binary_expression "puVar23 + 0x10" (identifier "puVar23") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "puVar23 = puVar22;" (assignment_expression "puVar23 = puVar22" (identifier "puVar23") (= "=") (identifier "puVar22")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 != *puVar1)" (( "(") (binary_expression "uVar18 != *puVar1" (identifier "uVar18") (!= "!=") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (else "else") (if_statement "if (uVar4 == 1) {\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }\n                    else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar4 == 1)" (( "(") (binary_expression "uVar4 == 1" (identifier "uVar4") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }\n                    }" ({ "{") (if_statement "if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }" (if "if") (parenthesized_expression "((*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0))" (( "(") (binary_expression "(*(int *)(param_5 + 0xc) <= (int)uVar18) ||\n                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)" (parenthesized_expression "(*(int *)(param_5 + 0xc) <= (int)uVar18)" (( "(") (binary_expression "*(int *)(param_5 + 0xc) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0xc)" (* "*") (cast_expression "(int *)(param_5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")")))) (<= "<=") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18"))) () ")")) (|| "||") (parenthesized_expression "(puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)" (( "(") (comma_expression "puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0" (assignment_expression "puVar22 = puVar22 + uVar18 * 0xc" (identifier "puVar22") (= "=") (binary_expression "puVar22 + uVar18 * 0xc" (identifier "puVar22") (+ "+") (binary_expression "uVar18 * 0xc" (identifier "uVar18") (* "*") (number_literal "0xc")))) (, ",") (binary_expression "puVar22 == (undefined4 *)0x0" (identifier "puVar22") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\nLAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);\n                        goto LAB_0001a2a0;\n                      }" ({ "{") (labeled_statement "LAB_0001a426:\n                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);" (statement_identifier "LAB_0001a426") (: ":") (expression_statement "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);" (call_expression "__printf_chk(1,"broken [oth_elem_idx=%d]",uVar18)" (identifier "__printf_chk") (argument_list "(1,"broken [oth_elem_idx=%d]",uVar18)" (( "(") (number_literal "1") (, ",") (string_literal ""broken [oth_elem_idx=%d]"" (" """) (string_content "broken [oth_elem_idx=%d]") (" """)) (, ",") (identifier "uVar18") () ")"))) (; ";"))) (goto_statement "goto LAB_0001a2a0;" (goto "goto") (statement_identifier "LAB_0001a2a0") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" (else "else") (compound_statement "{\n                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;\n                      uVar20 = puVar22[3];\n                      uVar13 = uVar4;\n                      while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }\n                    }" ({ "{") (if_statement "if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;" (if "if") (parenthesized_expression "((*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1))" (( "(") (binary_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18) ||\n                         ((int)*(uint *)(param_5 + 0xc) < 1)" (parenthesized_expression "(*(int *)(param_5 + 0x10) <= (int)uVar18)" (( "(") (binary_expression "*(int *)(param_5 + 0x10) <= (int)uVar18" (pointer_expression "*(int *)(param_5 + 0x10)" (* "*") (cast_expression "(int *)(param_5 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")")))) (<= "<=") (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18"))) () ")")) (|| "||") (parenthesized_expression "((int)*(uint *)(param_5 + 0xc) < 1)" (( "(") (binary_expression "(int)*(uint *)(param_5 + 0xc) < 1" (cast_expression "(int)*(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) (< "<") (number_literal "1")) () ")"))) () ")")) (goto_statement "goto LAB_0001a426;" (goto "goto") (statement_identifier "LAB_0001a426") (; ";"))) (expression_statement "uVar20 = puVar22[3];" (assignment_expression "uVar20 = puVar22[3]" (identifier "uVar20") (= "=") (subscript_expression "puVar22[3]" (identifier "puVar22") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "uVar13 = uVar4;" (assignment_expression "uVar13 = uVar4" (identifier "uVar13") (= "=") (identifier "uVar4")) (; ";")) (while_statement "while (uVar18 != uVar20) {\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" (while "while") (parenthesized_expression "(uVar18 != uVar20)" (( "(") (binary_expression "uVar18 != uVar20" (identifier "uVar18") (!= "!=") (identifier "uVar20")) () ")")) (compound_statement "{\n                        uVar13 = uVar13 + 1;\n                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;\n                        uVar20 = puVar22[0xf];\n                        puVar22 = puVar22 + 0xc;\n                      }" ({ "{") (expression_statement "uVar13 = uVar13 + 1;" (assignment_expression "uVar13 = uVar13 + 1" (identifier "uVar13") (= "=") (binary_expression "uVar13 + 1" (identifier "uVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;" (if "if") (parenthesized_expression "(uVar13 == *(uint *)(param_5 + 0xc))" (( "(") (binary_expression "uVar13 == *(uint *)(param_5 + 0xc)" (identifier "uVar13") (== "==") (pointer_expression "*(uint *)(param_5 + 0xc)" (* "*") (cast_expression "(uint *)(param_5 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0xc)" (( "(") (binary_expression "param_5 + 0xc" (identifier "param_5") (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (goto_statement "goto LAB_0001a426;" (goto "goto") (statement_identifier "LAB_0001a426") (; ";"))) (expression_statement "uVar20 = puVar22[0xf];" (assignment_expression "uVar20 = puVar22[0xf]" (identifier "uVar20") (= "=") (subscript_expression "puVar22[0xf]" (identifier "puVar22") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "puVar22 = puVar22 + 0xc;" (assignment_expression "puVar22 = puVar22 + 0xc" (identifier "puVar22") (= "=") (binary_expression "puVar22 + 0xc" (identifier "puVar22") (+ "+") (number_literal "0xc"))) (; ";")) (} "}"))) (} "}")))))) (if_statement "if (puVar22[5] == 0) {\n                      uVar3 = FUN_000169f0();\n                    }\n                    else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" (if "if") (parenthesized_expression "(puVar22[5] == 0)" (( "(") (binary_expression "puVar22[5] == 0" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                    }" ({ "{") (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" (identifier "uVar3") (= "=") (call_expression "FUN_000169f0()" (identifier "FUN_000169f0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" (else "else") (compound_statement "{\n                      uVar3 = FUN_000169f0();\n                      uVar15 = *(ushort *)(puVar22[5] + 2);\n                      uVar15 = uVar15 << 8 | uVar15 >> 8;\n                      if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }\n                    }" ({ "{") (expression_statement "uVar3 = FUN_000169f0();" (assignment_expression "uVar3 = FUN_000169f0()" (identifier "uVar3") (= "=") (call_expression "FUN_000169f0()" (identifier "FUN_000169f0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar15 = *(ushort *)(puVar22[5] + 2);" (assignment_expression "uVar15 = *(ushort *)(puVar22[5] + 2)" (identifier "uVar15") (= "=") (pointer_expression "*(ushort *)(puVar22[5] + 2)" (* "*") (cast_expression "(ushort *)(puVar22[5] + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar22[5] + 2)" (( "(") (binary_expression "puVar22[5] + 2" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uVar15 = uVar15 << 8 | uVar15 >> 8;" (assignment_expression "uVar15 = uVar15 << 8 | uVar15 >> 8" (identifier "uVar15") (= "=") (binary_expression "uVar15 << 8 | uVar15 >> 8" (binary_expression "uVar15 << 8" (identifier "uVar15") (<< "<<") (number_literal "8")) (| "|") (binary_expression "uVar15 >> 8" (identifier "uVar15") (>> ">>") (number_literal "8")))) (; ";")) (if_statement "if (uVar15 != 0) {\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }" (if "if") (parenthesized_expression "(uVar15 != 0)" (( "(") (binary_expression "uVar15 != 0" (identifier "uVar15") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);\n                        goto LAB_0001a2a0;\n                      }" ({ "{") (expression_statement "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3);" (call_expression "__printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" (identifier "__printf_chk") (argument_list "(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,\n                                     puVar22[1],uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""%.*s [%d,%d] etype: %s"" (" """) (string_content "%.*s [%d,%d] etype: %s") (" """)) (, ",") (identifier "uVar15") (, ",") (binary_expression "puVar22[5] + 4" (subscript_expression "puVar22[5]" (identifier "puVar22") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "4")) (, ",") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (, ",") (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "uVar3") () ")"))) (; ";")) (goto_statement "goto LAB_0001a2a0;" (goto "goto") (statement_identifier "LAB_0001a2a0") (; ";")) (} "}"))) (} "}")))) (expression_statement "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);" (call_expression "__printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" (identifier "__printf_chk") (argument_list "(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""[%d,%d] etype: %s"" (" """) (string_content "[%d,%d] etype: %s") (" """)) (, ",") (pointer_expression "*puVar22" (* "*") (identifier "puVar22")) (, ",") (subscript_expression "puVar22[1]" (identifier "puVar22") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0001a2a0:\n                pbVar19 = param_2 + -8;" (statement_identifier "LAB_0001a2a0") (: ":") (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" (identifier "pbVar19") (= "=") (binary_expression "param_2 + -8" (identifier "param_2") (+ "+") (number_literal "-8"))) (; ";"))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%s  SAS address: 0x",param_1);" (call_expression "__printf_chk(1,"%s  SAS address: 0x",param_1)" (identifier "__printf_chk") (argument_list "(1,"%s  SAS address: 0x",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  SAS address: 0x"" (" """) (string_content "%s  SAS address: 0x") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (do_statement "do {\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                } while (param_2 != pbVar19);" (do "do") (compound_statement "{\n                  bVar14 = *pbVar19;\n                  pbVar19 = pbVar19 + 1;\n                  __printf_chk(1,&DAT_0001f329,bVar14);\n                }" ({ "{") (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" (identifier "bVar14") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f329,bVar14)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f329" (& "&") (identifier "DAT_0001f329")) (, ",") (identifier "bVar14") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != pbVar19)" (( "(") (binary_expression "param_2 != pbVar19" (identifier "param_2") (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (expression_statement "param_2 = param_2 + 0xc;" (assignment_expression "param_2 = param_2 + 0xc" (identifier "param_2") (= "=") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "local_98 = local_98 + 1;" (assignment_expression "local_98 = local_98 + 1" (identifier "local_98") (= "=") (binary_expression "local_98 + 1" (identifier "local_98") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != local_98)" (( "(") (binary_expression "uVar5 != local_98" (identifier "uVar5") (!= "!=") (identifier "local_98")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" (else "else") (compound_statement "{\n            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);\n          }" ({ "{") (expression_statement "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);" (call_expression "__printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4)" (identifier "__printf_chk") (argument_list "(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4)" (( "(") (number_literal "1") (, ",") (string_literal ""%sunrecognised element type [%d] for desc_type 1\n"" (" """) (string_content "%sunrecognised element type [%d] for desc_type 1") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "param_4") () ")"))) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" (else "else") (compound_statement "{\n          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);\n        }" ({ "{") (expression_statement "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);" (call_expression "__printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14)" (identifier "__printf_chk") (argument_list "(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14)" (( "(") (number_literal "1") (, ",") (string_literal ""%sunrecognised descriptor type [%d]\n"" (" """) (string_content "%sunrecognised descriptor type [%d]") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "bVar14") () ")"))) (; ";")) (} "}")))))) (} "}"))) (goto_statement "goto LAB_000196b0;" (goto "goto") (statement_identifier "LAB_000196b0") (; ";")) (} "}"))) (if_statement "if (bVar14 == 0xb) {\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }" (if "if") (parenthesized_expression "(bVar14 == 0xb)" (( "(") (binary_expression "bVar14 == 0xb" (identifier "bVar14") (== "==") (number_literal "0xb")) () ")")) (compound_statement "{\n      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);\n      goto LAB_000196b0;\n    }" ({ "{") (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sTransport protocol: PCIe\n",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sTransport protocol: PCIe\n"" (" """) (string_content "%sTransport protocol: PCIe") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);" (call_expression "__printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sfor this protocol EIP must be set (it isn\'t)\n"" (" """) (string_content "%sfor this protocol EIP must be set (it isn") (escape_sequence "\'") (string_content "t)") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (goto_statement "goto LAB_000196b0;" (goto "goto") (statement_identifier "LAB_000196b0") (; ";")) (} "}"))) (if_statement "if (bVar14 == 0) {\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" (if "if") (parenthesized_expression "(bVar14 == 0)" (( "(") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_94 = 0xe;\n      iVar24 = 0xb;\n      local_98 = 6;\n      local_9c = 2;\n      local_a0 = 0;\nLAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);\n      if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }\n      goto LAB_000196b0;\n    }" ({ "{") (expression_statement "local_94 = 0xe;" (assignment_expression "local_94 = 0xe" (identifier "local_94") (= "=") (number_literal "0xe")) (; ";")) (expression_statement "iVar24 = 0xb;" (assignment_expression "iVar24 = 0xb" (identifier "iVar24") (= "=") (number_literal "0xb")) (; ";")) (expression_statement "local_98 = 6;" (assignment_expression "local_98 = 6" (identifier "local_98") (= "=") (number_literal "6")) (; ";")) (expression_statement "local_9c = 2;" (assignment_expression "local_9c = 2" (identifier "local_9c") (= "=") (number_literal "2")) (; ";")) (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00019709:\n      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);" (statement_identifier "LAB_00019709") (: ":") (expression_statement "__printf_chk(1,"%sTransport protocol: FCP\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: FCP\n",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sTransport protocol: FCP\n",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sTransport protocol: FCP\n"" (" """) (string_content "%sTransport protocol: FCP") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";"))) (if_statement "if (iVar24 < (int)param_3) {\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }" (if "if") (parenthesized_expression "(iVar24 < (int)param_3)" (( "(") (binary_expression "iVar24 < (int)param_3" (identifier "iVar24") (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (compound_statement "{\n        uVar4 = (uint)param_2[local_9c];\n        uVar5 = uVar4;\n        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);\n        __printf_chk(1,"%snode_name: ",param_1);\n        pbVar19 = param_2 + local_98;\n        do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);\n        if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }\n        putchar(10);\n        if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }\n      }" ({ "{") (expression_statement "uVar4 = (uint)param_2[local_9c];" (assignment_expression "uVar4 = (uint)param_2[local_9c]" (identifier "uVar4") (= "=") (cast_expression "(uint)param_2[local_9c]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[local_9c]" (identifier "param_2") ([ "[") (identifier "local_9c") (] "]")))) (; ";")) (expression_statement "uVar5 = uVar4;" (assignment_expression "uVar5 = uVar4" (identifier "uVar5") (= "=") (identifier "uVar4")) (; ";")) (expression_statement "__printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);" (call_expression "__printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4)" (identifier "__printf_chk") (argument_list "(1,"%snumber of ports: %d\n",param_1,uVar4)" (( "(") (number_literal "1") (, ",") (string_literal ""%snumber of ports: %d\n"" (" """) (string_content "%snumber of ports: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%snode_name: ",param_1);" (call_expression "__printf_chk(1,"%snode_name: ",param_1)" (identifier "__printf_chk") (argument_list "(1,"%snode_name: ",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%snode_name: "" (" """) (string_content "%snode_name: ") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "pbVar19 = param_2 + local_98;" (assignment_expression "pbVar19 = param_2 + local_98" (identifier "pbVar19") (= "=") (binary_expression "param_2 + local_98" (identifier "param_2") (+ "+") (identifier "local_98"))) (; ";")) (do_statement "do {\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        } while (param_2 + local_98 + 8 != pbVar19);" (do "do") (compound_statement "{\n          bVar14 = *pbVar19;\n          pbVar19 = pbVar19 + 1;\n          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);\n        }" ({ "{") (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" (identifier "bVar14") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14,uVar5);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14,uVar5)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f329,bVar14,uVar5)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f329" (& "&") (identifier "DAT_0001f329")) (, ",") (identifier "bVar14") (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 + local_98 + 8 != pbVar19)" (( "(") (binary_expression "param_2 + local_98 + 8 != pbVar19" (binary_expression "param_2 + local_98 + 8" (binary_expression "param_2 + local_98" (identifier "param_2") (+ "+") (identifier "local_98")) (+ "+") (number_literal "8")) (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (if_statement "if (local_a0 != 0) {\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }" (if "if") (parenthesized_expression "(local_a0 != 0)" (( "(") (binary_expression "local_a0 != 0" (identifier "local_a0") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);\n        }" ({ "{") (expression_statement "__printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);" (call_expression "__printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5)" (identifier "__printf_chk") (argument_list "(1,", device slot number: %d",param_2[local_a0 + 5],uVar5)" (( "(") (number_literal "1") (, ",") (string_literal "", device slot number: %d"" (" """) (string_content ", device slot number: %d") (" """)) (, ",") (subscript_expression "param_2[local_a0 + 5]" (identifier "param_2") ([ "[") (binary_expression "local_a0 + 5" (identifier "local_a0") (+ "+") (number_literal "5")) (] "]")) (, ",") (identifier "uVar5") () ")"))) (; ";")) (} "}"))) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (if_statement "if (uVar4 != 0) {\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }" (if "if") (parenthesized_expression "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_a0 = 0;\n          param_2 = param_2 + local_94 + 0x10;\n          do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);\n        }" ({ "{") (expression_statement "local_a0 = 0;" (assignment_expression "local_a0 = 0" (identifier "local_a0") (= "=") (number_literal "0")) (; ";")) (expression_statement "param_2 = param_2 + local_94 + 0x10;" (assignment_expression "param_2 = param_2 + local_94 + 0x10" (identifier "param_2") (= "=") (binary_expression "param_2 + local_94 + 0x10" (binary_expression "param_2 + local_94" (identifier "param_2") (+ "+") (identifier "local_94")) (+ "+") (number_literal "0x10"))) (; ";")) (do_statement "do {\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          } while (uVar4 != local_a0);" (do "do") (compound_statement "{\n            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);\n            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);\n            pbVar19 = param_2 + -8;\n            __printf_chk(1,"%s  n_port name: ",param_1);\n            do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);\n            param_2 = param_2 + 0x10;\n            putchar(10);\n            local_a0 = local_a0 + 1;\n          }" ({ "{") (expression_statement "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);" (call_expression "__printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf])" (identifier "__printf_chk") (argument_list "(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",\n                         param_1,local_a0,param_2[-0x10],param_2[-0xf])" (( "(") (number_literal "1") (, ",") (string_literal ""%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n"" (" """) (string_content "%s  port index: %d, port loop position: %d, port bypass reason: 0x%x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "local_a0") (, ",") (subscript_expression "param_2[-0x10]" (identifier "param_2") ([ "[") (number_literal "-0x10") (] "]")) (, ",") (subscript_expression "param_2[-0xf]" (identifier "param_2") ([ "[") (number_literal "-0xf") (] "]")) () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);" (call_expression "__printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9])" (identifier "__printf_chk") (argument_list "(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1\n                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9])" (( "(") (number_literal "1") (, ",") (string_literal ""%srequested hard address: %d, n_port identifier: %02x%02x%02x\n"" (" """) (string_content "%srequested hard address: %d, n_port identifier: %02x%02x%02x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (subscript_expression "param_2[-0xc]" (identifier "param_2") ([ "[") (number_literal "-0xc") (] "]")) (, ",") (subscript_expression "param_2[-0xb]" (identifier "param_2") ([ "[") (number_literal "-0xb") (] "]")) (, ",") (subscript_expression "param_2[-10]" (identifier "param_2") ([ "[") (number_literal "-10") (] "]")) (, ",") (subscript_expression "param_2[-9]" (identifier "param_2") ([ "[") (number_literal "-9") (] "]")) () ")"))) (; ";")) (expression_statement "pbVar19 = param_2 + -8;" (assignment_expression "pbVar19 = param_2 + -8" (identifier "pbVar19") (= "=") (binary_expression "param_2 + -8" (identifier "param_2") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "__printf_chk(1,"%s  n_port name: ",param_1);" (call_expression "__printf_chk(1,"%s  n_port name: ",param_1)" (identifier "__printf_chk") (argument_list "(1,"%s  n_port name: ",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  n_port name: "" (" """) (string_content "%s  n_port name: ") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (do_statement "do {\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            } while (param_2 != pbVar19);" (do "do") (compound_statement "{\n              bVar14 = *pbVar19;\n              pbVar19 = pbVar19 + 1;\n              __printf_chk(1,&DAT_0001f329,bVar14);\n            }" ({ "{") (expression_statement "bVar14 = *pbVar19;" (assignment_expression "bVar14 = *pbVar19" (identifier "bVar14") (= "=") (pointer_expression "*pbVar19" (* "*") (identifier "pbVar19"))) (; ";")) (expression_statement "pbVar19 = pbVar19 + 1;" (assignment_expression "pbVar19 = pbVar19 + 1" (identifier "pbVar19") (= "=") (binary_expression "pbVar19 + 1" (identifier "pbVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "__printf_chk(1,&DAT_0001f329,bVar14);" (call_expression "__printf_chk(1,&DAT_0001f329,bVar14)" (identifier "__printf_chk") (argument_list "(1,&DAT_0001f329,bVar14)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0001f329" (& "&") (identifier "DAT_0001f329")) (, ",") (identifier "bVar14") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_2 != pbVar19)" (( "(") (binary_expression "param_2 != pbVar19" (identifier "param_2") (!= "!=") (identifier "pbVar19")) () ")")) (; ";")) (expression_statement "param_2 = param_2 + 0x10;" (assignment_expression "param_2 = param_2 + 0x10" (identifier "param_2") (= "=") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (expression_statement "local_a0 = local_a0 + 1;" (assignment_expression "local_a0 = local_a0 + 1" (identifier "local_a0") (= "=") (binary_expression "local_a0 + 1" (identifier "local_a0") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar4 != local_a0)" (( "(") (binary_expression "uVar4 != local_a0" (identifier "uVar4") (!= "!=") (identifier "local_a0")) () ")")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_000196b0;" (goto "goto") (statement_identifier "LAB_000196b0") (; ";")) (} "}"))) (labeled_statement "LAB_00019672:\n    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);" (statement_identifier "LAB_00019672") (: ":") (expression_statement "uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);" (assignment_expression "uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60)" (identifier "uVar3") (= "=") (call_expression "sg_get_trans_proto_str(bVar14,0x40,local_60)" (identifier "sg_get_trans_proto_str") (argument_list "(bVar14,0x40,local_60)" (( "(") (identifier "bVar14") (, ",") (number_literal "0x40") (, ",") (identifier "local_60") () ")")))) (; ";"))) (expression_statement "__printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);" (call_expression "__printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3)" (identifier "__printf_chk") (argument_list "(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""%sTransport protocol: %s not decoded\n"" (" """) (string_content "%sTransport protocol: %s not decoded") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "iVar24 = *(int *)(param_6 + 0x50);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x50)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_6 + 0x50)" (* "*") (cast_expression "(int *)(param_6 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x50)" (( "(") (binary_expression "param_6 + 0x50" (identifier "param_6") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" (else "else") (compound_statement "{\n    if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }\n    if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);\n    if ((int)param_3 < 6) goto LAB_000196b0;\n    if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }\n    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);\n    iVar24 = *(int *)(param_6 + 0x50);\n  }" ({ "{") (if_statement "if (bVar14 == 6) {\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }" (if "if") (parenthesized_expression "(bVar14 == 6)" (( "(") (binary_expression "bVar14 == 6" (identifier "bVar14") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n      iVar24 = 5;\n      goto LAB_000199cd;\n    }" ({ "{") (expression_statement "iVar24 = 5;" (assignment_expression "iVar24 = 5" (identifier "iVar24") (= "=") (number_literal "5")) (; ";")) (goto_statement "goto LAB_000199cd;" (goto "goto") (statement_identifier "LAB_000199cd") (; ";")) (} "}"))) (if_statement "if (bVar14 != 0xb) {\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" (if "if") (parenthesized_expression "(bVar14 != 0xb)" (( "(") (binary_expression "bVar14 != 0xb" (identifier "bVar14") (!= "!=") (number_literal "0xb")) () ")")) (compound_statement "{\n      if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }\n      goto LAB_00019672;\n    }" ({ "{") (if_statement "if (bVar14 == 0) {\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" (if "if") (parenthesized_expression "(bVar14 == 0)" (( "(") (binary_expression "bVar14 == 0" (identifier "bVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_94 = 0x10;\n        iVar24 = 0xd;\n        local_98 = 8;\n        local_9c = 4;\n        local_a0 = 2;\n        goto LAB_00019709;\n      }" ({ "{") (expression_statement "local_94 = 0x10;" (assignment_expression "local_94 = 0x10" (identifier "local_94") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "iVar24 = 0xd;" (assignment_expression "iVar24 = 0xd" (identifier "iVar24") (= "=") (number_literal "0xd")) (; ";")) (expression_statement "local_98 = 8;" (assignment_expression "local_98 = 8" (identifier "local_98") (= "=") (number_literal "8")) (; ";")) (expression_statement "local_9c = 4;" (assignment_expression "local_9c = 4" (identifier "local_9c") (= "=") (number_literal "4")) (; ";")) (expression_statement "local_a0 = 2;" (assignment_expression "local_a0 = 2" (identifier "local_a0") (= "=") (number_literal "2")) (; ";")) (goto_statement "goto LAB_00019709;" (goto "goto") (statement_identifier "LAB_00019709") (; ";")) (} "}"))) (goto_statement "goto LAB_00019672;" (goto "goto") (statement_identifier "LAB_00019672") (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe\n",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sTransport protocol: PCIe\n",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sTransport protocol: PCIe\n"" (" """) (string_content "%sTransport protocol: PCIe") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (if_statement "if ((int)param_3 < 6) goto LAB_000196b0;" (if "if") (parenthesized_expression "((int)param_3 < 6)" (( "(") (binary_expression "(int)param_3 < 6" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (< "<") (number_literal "6")) () ")")) (goto_statement "goto LAB_000196b0;" (goto "goto") (statement_identifier "LAB_000196b0") (; ";"))) (if_statement "if (param_2[5] >> 5 == 1) {\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }" (if "if") (parenthesized_expression "(param_2[5] >> 5 == 1)" (( "(") (binary_expression "param_2[5] >> 5 == 1" (binary_expression "param_2[5] >> 5" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (>> ">>") (number_literal "5")) (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);\n      uVar5 = (uint)param_2[4];\n      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);\n      __printf_chk(1,", device slot number: %d\n",param_2[7]);\n      pcVar6 = " (not reported)";\n      if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }\n      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);\n      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);\n      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);\n      if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }\n      goto LAB_000196b0;\n    }" ({ "{") (expression_statement "__printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);" (call_expression "__printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1)" (identifier "__printf_chk") (argument_list "(1,"%sPCIe protocol type: NVMe\n",param_1)" (( "(") (number_literal "1") (, ",") (string_literal ""%sPCIe protocol type: NVMe\n"" (" """) (string_content "%sPCIe protocol type: NVMe") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar5 = (uint)param_2[4];" (assignment_expression "uVar5 = (uint)param_2[4]" (identifier "uVar5") (= "=") (cast_expression "(uint)param_2[4]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_2[4]" (identifier "param_2") ([ "[") (number_literal "4") (] "]")))) (; ";")) (expression_statement "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);" (call_expression "__printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1)" (identifier "__printf_chk") (argument_list "(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1)" (( "(") (number_literal "1") (, ",") (string_literal ""%snumber of ports: %d, not all ports: %d"" (" """) (string_content "%snumber of ports: %d, not all ports: %d") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar5") (, ",") (binary_expression "param_2[5] & 1" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (& "&") (number_literal "1")) () ")"))) (; ";")) (expression_statement "__printf_chk(1,", device slot number: %d\n",param_2[7]);" (call_expression "__printf_chk(1,", device slot number: %d\n",param_2[7])" (identifier "__printf_chk") (argument_list "(1,", device slot number: %d\n",param_2[7])" (( "(") (number_literal "1") (, ",") (string_literal "", device slot number: %d\n"" (" """) (string_content ", device slot number: %d") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) () ")"))) (; ";")) (expression_statement "pcVar6 = " (not reported)";" (assignment_expression "pcVar6 = " (not reported)"" (identifier "pcVar6") (= "=") (string_literal "" (not reported)"" (" """) (string_content " (not reported)") (" """))) (; ";")) (if_statement "if (*(short *)(param_2 + 10) != -1) {\n        pcVar6 = "";\n      }" (if "if") (parenthesized_expression "(*(short *)(param_2 + 10) != -1)" (( "(") (binary_expression "*(short *)(param_2 + 10) != -1" (pointer_expression "*(short *)(param_2 + 10)" (* "*") (cast_expression "(short *)(param_2 + 10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n        pcVar6 = "";\n      }" ({ "{") (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ (identifier "pcVar6") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);" (call_expression "__printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6)" (identifier "__printf_chk") (argument_list "(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6)" (( "(") (number_literal "1") (, ",") (string_literal ""%sPCIe vendor id: 0x%x%s\n"" (" """) (string_content "%sPCIe vendor id: 0x%x%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (pointer_expression "*(short *)(param_2 + 10)" (* "*") (cast_expression "(short *)(param_2 + 10)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (, ",") (identifier "pcVar6") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);" (call_expression "__printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc)" (identifier "__printf_chk") (argument_list "(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc)" (( "(") (number_literal "1") (, ",") (string_literal ""%sserial number: %.20s\n"" (" """) (string_content "%sserial number: %.20s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))) (; ";")) (expression_statement "__printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);" (call_expression "__printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20)" (identifier "__printf_chk") (argument_list "(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20)" (( "(") (number_literal "1") (, ",") (string_literal ""%smodel number: %.40s\n"" (" """) (string_content "%smodel number: %.40s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (binary_expression "param_2 + 0x20" (identifier "param_2") (+ "+") (number_literal "0x20")) () ")"))) (; ";")) (if_statement "if (uVar5 != 0) {\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }" (if "if") (parenthesized_expression "(uVar5 != 0)" (( "(") (binary_expression "uVar5 != 0" (identifier "uVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar4 = 0;\n        do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);\n      }" ({ "{") (expression_statement "uVar4 = 0;" (assignment_expression "uVar4 = 0" (identifier "uVar4") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        } while (uVar5 != uVar4);" (do "do") (compound_statement "{\n          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);\n          bVar14 = param_2[uVar4 * 8 + 0x48];\n          local_a0._0_1_ = bVar14 & 2;\n          local_a4 = bVar14 & 4;\n          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);\n          if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }\n          if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }\n          if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }\n          uVar4 = uVar4 + 1;\n        }" ({ "{") (expression_statement "__printf_chk(1,"%sport index: %d\n",param_1,uVar4);" (call_expression "__printf_chk(1,"%sport index: %d\n",param_1,uVar4)" (identifier "__printf_chk") (argument_list "(1,"%sport index: %d\n",param_1,uVar4)" (( "(") (number_literal "1") (, ",") (string_literal ""%sport index: %d\n"" (" """) (string_content "%sport index: %d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "bVar14 = param_2[uVar4 * 8 + 0x48];" (assignment_expression "bVar14 = param_2[uVar4 * 8 + 0x48]" (identifier "bVar14") (= "=") (subscript_expression "param_2[uVar4 * 8 + 0x48]" (identifier "param_2") ([ "[") (binary_expression "uVar4 * 8 + 0x48" (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8")) (+ "+") (number_literal "0x48")) (] "]"))) (; ";")) (expression_statement "local_a0._0_1_ = bVar14 & 2;" (assignment_expression "local_a0._0_1_ = bVar14 & 2" (field_expression "local_a0._0_1_" (identifier "local_a0") (. ".") (field_identifier "_0_1_")) (= "=") (binary_expression "bVar14 & 2" (identifier "bVar14") (& "&") (number_literal "2"))) (; ";")) (expression_statement "local_a4 = bVar14 & 4;" (assignment_expression "local_a4 = bVar14 & 4" (identifier "local_a4") (= "=") (binary_expression "bVar14 & 4" (identifier "bVar14") (& "&") (number_literal "4"))) (; ";")) (expression_statement "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1);" (call_expression "__printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1)" (identifier "__printf_chk") (argument_list "(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,\n                       (bVar14 & 2) != 0,bVar14 & 1)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n"" (" """) (string_content "%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (binary_expression "(bVar14 & 4) != 0" (parenthesized_expression "(bVar14 & 4)" (( "(") (binary_expression "bVar14 & 4" (identifier "bVar14") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) (, ",") (binary_expression "(bVar14 & 2) != 0" (parenthesized_expression "(bVar14 & 2)" (( "(") (binary_expression "bVar14 & 2" (identifier "bVar14") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) (, ",") (binary_expression "bVar14 & 1" (identifier "bVar14") (& "&") (number_literal "1")) () ")"))) (; ";")) (if_statement "if ((bVar14 & 1) != 0) {\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }" (if "if") (parenthesized_expression "((bVar14 & 1) != 0)" (( "(") (binary_expression "(bVar14 & 1) != 0" (parenthesized_expression "(bVar14 & 1)" (( "(") (binary_expression "bVar14 & 1" (identifier "bVar14") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));\n          }" ({ "{") (expression_statement "__printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));" (call_expression "__printf_chk(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49))" (identifier "__printf_chk") (argument_list "(1,"%s  controller id: 0x%x\n",param_1,\n                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49))" (( "(") (number_literal "1") (, ",") (string_literal ""%s  controller id: 0x%x\n"" (" """) (string_content "%s  controller id: 0x%x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (pointer_expression "*(undefined2 *)(param_2 + uVar4 * 8 + 0x49)" (* "*") (cast_expression "(undefined2 *)(param_2 + uVar4 * 8 + 0x49)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + uVar4 * 8 + 0x49)" (( "(") (binary_expression "param_2 + uVar4 * 8 + 0x49" (binary_expression "param_2 + uVar4 * 8" (identifier "param_2") (+ "+") (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8"))) (+ "+") (number_literal "0x49")) () ")")))) () ")"))) (; ";")) (} "}"))) (if_statement "if ((byte)local_a0 != 0) {\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }" (if "if") (parenthesized_expression "((byte)local_a0 != 0)" (( "(") (binary_expression "(byte)local_a0 != 0" (cast_expression "(byte)local_a0" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_a0")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);\n          }" ({ "{") (expression_statement "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7);" (call_expression "__printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7)" (identifier "__printf_chk") (argument_list "(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",\n                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,\n                         param_2[uVar4 * 8 + 0x4d] & 7)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n"" (" """) (string_content "%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (subscript_expression "param_2[uVar4 * 8 + 0x4c]" (identifier "param_2") ([ "[") (binary_expression "uVar4 * 8 + 0x4c" (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8")) (+ "+") (number_literal "0x4c")) (] "]")) (, ",") (binary_expression "param_2[uVar4 * 8 + 0x4d] >> 3" (subscript_expression "param_2[uVar4 * 8 + 0x4d]" (identifier "param_2") ([ "[") (binary_expression "uVar4 * 8 + 0x4d" (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8")) (+ "+") (number_literal "0x4d")) (] "]")) (>> ">>") (number_literal "3")) (, ",") (binary_expression "param_2[uVar4 * 8 + 0x4d] & 7" (subscript_expression "param_2[uVar4 * 8 + 0x4d]" (identifier "param_2") ([ "[") (binary_expression "uVar4 * 8 + 0x4d" (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8")) (+ "+") (number_literal "0x4d")) (] "]")) (& "&") (number_literal "7")) () ")"))) (; ";")) (} "}"))) (if_statement "if (local_a4 != 0) {\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }" (if "if") (parenthesized_expression "(local_a4 != 0)" (( "(") (binary_expression "local_a4 != 0" (identifier "local_a4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);\n          }" ({ "{") (expression_statement "__printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);" (call_expression "__printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff)" (identifier "__printf_chk") (argument_list "(1,"%s  physical slot number: 0x%x\n",param_1,\n                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff)" (( "(") (number_literal "1") (, ",") (string_literal ""%s  physical slot number: 0x%x\n"" (" """) (string_content "%s  physical slot number: 0x%x") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (binary_expression "*(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff" (pointer_expression "*(ushort *)(param_2 + uVar4 * 8 + 0x4e)" (* "*") (cast_expression "(ushort *)(param_2 + uVar4 * 8 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + uVar4 * 8 + 0x4e)" (( "(") (binary_expression "param_2 + uVar4 * 8 + 0x4e" (binary_expression "param_2 + uVar4 * 8" (identifier "param_2") (+ "+") (binary_expression "uVar4 * 8" (identifier "uVar4") (* "*") (number_literal "8"))) (+ "+") (number_literal "0x4e")) () ")")))) (& "&") (number_literal "0x1fff")) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar4 = uVar4 + 1;" (assignment_expression "uVar4 = uVar4 + 1" (identifier "uVar4") (= "=") (binary_expression "uVar4 + 1" (identifier "uVar4") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar5 != uVar4)" (( "(") (binary_expression "uVar5 != uVar4" (identifier "uVar5") (!= "!=") (identifier "uVar4")) () ")")) (; ";")) (} "}"))) (goto_statement "goto LAB_000196b0;" (goto "goto") (statement_identifier "LAB_000196b0") (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5);" (call_expression "__printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5)" (identifier "__printf_chk") (argument_list "(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,\n                 param_2[5] >> 5)" (( "(") (number_literal "1") (, ",") (string_literal ""%sTransport protocol: PCIe subprotocol=0x%x not decoded\n"" (" """) (string_content "%sTransport protocol: PCIe subprotocol=0x%x not decoded") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (binary_expression "param_2[5] >> 5" (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")) (>> ">>") (number_literal "5")) () ")"))) (; ";")) (expression_statement "iVar24 = *(int *)(param_6 + 0x50);" (assignment_expression "iVar24 = *(int *)(param_6 + 0x50)" (identifier "iVar24") (= "=") (pointer_expression "*(int *)(param_6 + 0x50)" (* "*") (cast_expression "(int *)(param_6 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x50)" (( "(") (binary_expression "param_6 + 0x50" (identifier "param_6") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar24 != 0) {\n    hex2stdout(param_2,param_3,0);\n  }" (if "if") (parenthesized_expression "(iVar24 != 0)" (( "(") (binary_expression "iVar24 != 0" (identifier "iVar24") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    hex2stdout(param_2,param_3,0);\n  }" ({ "{") (expression_statement "hex2stdout(param_2,param_3,0);" (call_expression "hex2stdout(param_2,param_3,0)" (identifier "hex2stdout") (argument_list "(param_2,param_3,0)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000196b0:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (statement_identifier "LAB_000196b0") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_0001eef0();" (call_expression "FUN_0001eef0()" (identifier "FUN_0001eef0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

void __regparm3
function_1(char *pad,uint8_t *var_4,int var_5,int var_15,type_1 *tesp,type_2 *op)

{
  uint8_t uVar1;
  int var_38;
  type_3 var_27;
  type_4 *pjVar4;
  char var_13;
  type_5 uVar6;
  type_3 var_22;
  type_3 var_2;
  char *pcVar9;
  char *pcVar10;
  char *var_24;
  type_3 var_32;
  type_3 var_25;
  type_3 var_28;
  int iVar15;
  char *var_20;
  type_6 var_7;
  type_7 var_30;
  char *pcVar19;
  char *pcVar20;
  type_3 var_18;
  uint8_t *var_10;
  uint8_t *var_12;
  int iVar24;
  type_4 *var_21;
  type_4 *var_26;
  int var_8;
  int var_1;
  bool bVar28;
  type_6 var_36;
  type_3 var_14;
  int local_9c;
  type_3 var_33;
  int var_34;
  type_3 var_17;
  int var_9;
  int var_16;
  int local_80;
  int var_19;
  int var_31;
  char b [64];
  
  var_38 = *(int *)(var_1 + 0x14);
  if (op->inner_hex != false) {
    var_2 = 0;
    do {
      if ((var_2 & 0xf) == 0) {
        var_24 = "\n";
        if (var_2 == 0) {
          var_24 = "";
        }
        var_3(1,&DAT_0001f086,var_24,pad);
      }
      var_10 = var_4 + var_2;
      var_2 = var_2 + 1;
      var_3(1,"%02x ",*var_10);
    } while (var_5 != var_2);
    var_6(10);
    goto LAB_000196b0;
  }
  var_7 = *var_4 & 0xf;
  if ((*var_4 & 0x10) == 0) {
    if (var_7 == 6) {
      var_8 = 3;
LAB_000199cd:
      var_3(1,"%sTransport protocol: SAS\n",pad);
      if (var_8 < var_5) {
        var_8 = op->do_filter;
        bVar28 = (*var_4 & 0x10) != 0;
        if (bVar28) {
          var_31 = 8;
          iVar15 = 4;
          iVar24 = 5;
          var_19 = 0x10;
          var_17 = var_4[2] & 3;
          var_16 = 8;
          var_9 = 8;
          local_80 = 7;
        }
        else {
          var_31 = 6;
          iVar15 = 2;
          iVar24 = 3;
          var_19 = 0xe;
          var_16 = 6;
          var_9 = 4;
          local_80 = 5;
          var_17 = 0;
        }
        var_7 = var_4[iVar24] >> 6;
        if (1 < op->verbose) {
          var_3(1,"%sdescriptor_type: %d\n",pad,var_7);
        }
        if (var_7 == 0) {
          var_2 = (type_3)var_4[iVar15];
          var_3(1,"%snumber of phys: %d, not all phys: %d",pad,var_2,var_4[iVar24] & 1);
          if (bVar28) {
            var_3(1,", device slot number: %d",var_4[local_80]);
          }
          var_6(10);
          if (var_2 != 0) {
            var_14 = 0;
            var_10 = var_4 + var_9 + 0xc;
            var_24 = "";
            do {
              var_3(1,"%sphy index: %d\n",pad,var_14);
              var_3(1,"%s  SAS device type: %s\n",pad,sas_device_type[var_10[-0xc] >> 4 & 7]
                          );
              var_7 = var_10[-10];
              if ((var_8 == 0) || ((var_7 & 0xe) != 0)) {
                var_20 = " SMP";
                if ((var_7 & 2) == 0) {
                  var_20 = var_24;
                }
                pcVar20 = " STP";
                if ((var_7 & 4) == 0) {
                  pcVar20 = var_24;
                }
                pcVar10 = " SSP";
                if ((var_7 & 8) == 0) {
                  pcVar10 = var_24;
                }
                var_3(1,"%s  initiator port for:%s%s%s\n",pad,pcVar10,pcVar20,var_20);
                if (var_8 != 0) goto LAB_00019e40;
                var_7 = var_10[-9];
LAB_00019e48:
                var_20 = var_24;
                if ((var_7 & 1) != 0) {
                  var_20 = " SATA_device";
                }
                pcVar20 = " SMP";
                if ((var_7 & 2) == 0) {
                  pcVar20 = var_24;
                }
                pcVar10 = " STP";
                if ((var_7 & 4) == 0) {
                  pcVar10 = var_24;
                }
                pcVar19 = " SSP";
                if ((var_7 & 8) == 0) {
                  pcVar19 = var_24;
                }
                pcVar9 = " SATA_port_selector";
                if (-1 < (char)var_7) {
                  pcVar9 = var_24;
                }
                var_3(1,"%s  target port for:%s%s%s%s%s\n",pad,pcVar9,pcVar19,pcVar10,pcVar20
                             ,var_20);
              }
              else {
LAB_00019e40:
                var_7 = var_10[-9];
                if ((var_7 & 0x8f) != 0) goto LAB_00019e48;
              }
              var_12 = var_10 + -8;
              var_7 = var_11(var_12,8);
              if ((var_8 == 0) || ((var_7 ^ 1) != 0)) {
                var_3(1,"%s  attached SAS address: 0x",pad);
                if ((var_7 ^ 1) == 0) {
                  var_6(0x30);
                  var_7 = var_11(var_10,8);
                  var_7 = var_7 ^ 1;
LAB_00019fce:
                  var_3(1,"\n%s  SAS address: 0x",pad);
                  if (var_7 != 0) goto LAB_0001a030;
                  var_6(0x30);
                }
                else {
                  do {
                    uVar1 = *var_12;
                    var_12 = var_12 + 1;
                    var_3(1,&DAT_0001f329,uVar1);
                  } while (var_10 != var_12);
                  var_7 = var_11(var_10,8);
                  var_7 = var_7 ^ 1;
                  if ((var_8 == 0) || (var_7 != 0)) goto LAB_00019fce;
                }
LAB_00019ff9:
                var_3(1,"\n%s  phy identifier: 0x%x\n",pad,var_10[8]);
              }
              else {
                var_13 = var_11(var_10,8);
                if (var_13 == '\0') {
                  var_3(1,"\n%s  SAS address: 0x",pad);
LAB_0001a030:
                  var_12 = var_10;
                  do {
                    uVar1 = *var_12;
                    var_12 = var_12 + 1;
                    var_3(1,&DAT_0001f329,uVar1);
                  } while (var_10 + 8 != var_12);
                  goto LAB_00019ff9;
                }
              }
              var_14 = var_14 + 1;
              var_10 = var_10 + 0x1c;
            } while (var_2 != var_14);
          }
        }
        else if (var_7 == 1) {
          var_2 = (type_3)var_4[iVar15];
          if (var_15 == 0x18) {
            var_22 = var_2;
            var_3(1,"%snumber of phys: %d\n",pad,var_2);
            var_3(1,"%sSAS address: 0x",pad);
            var_10 = var_4 + var_16;
            do {
              uVar1 = *var_10;
              var_10 = var_10 + 1;
              var_3(1,&DAT_0001f329,uVar1,var_22);
            } while (var_4 + var_16 + 8 != var_10);
            var_3(1,"\n%sAttached connector; other_element pairs:\n",pad,var_22);
            if (var_2 != 0) {
              var_18 = 0;
              var_22 = var_17 & 0xfffffffd;
              do {
                var_24 = pad;
                var_32 = var_18;
                var_3(1,"%s  [%d] ",pad,var_18);
                var_20 = (char *)(type_3)var_4[var_18 * 2 + var_19];
                if (var_20 == (char *)0xff) {
                  var_3(1,"no connector",var_24,var_32);
                }
                else {
                  var_21 = tesp->j_base;
                  if (var_21 == (type_4 *)0x0) {
                    var_3(1,"connector ei: %d",var_20,var_32);
                    var_24 = var_20;
                  }
                  else {
                    if (var_17 == 0) {
                      if ((int)var_20 < tesp->num_j_rows) {
                        var_8 = 0;
                        do {
                          if ((var_21->var_15 == '\x19') && (var_20 == (char *)var_21->indiv_i)) {
                            var_10 = var_21->enc_statp;
                            if (var_10 != (uint8_t *)0x0) goto LAB_0001a70c;
                            break;
                          }
                          var_8 = var_8 + 1;
                          var_21 = var_21 + 1;
                        } while (var_8 < tesp->num_j_rows);
                      }
                    }
                    else if (var_22 == 1) {
                      if (((int)var_20 < tesp->num_j_rows) &&
                         (var_21 = var_21 + (int)var_20, var_21 != (type_4 *)0x0)) {
LAB_0001a59d:
                        var_10 = var_21->enc_statp;
                        if ((var_10 != (uint8_t *)0x0) && (var_21->var_15 == '\x19')) {
LAB_0001a70c:
                          var_23("",var_10,0x19,true,op);
                          var_24 = (char *)var_21->indiv_i;
                          var_3(1," [%d]",var_24,var_32);
                          goto LAB_0001a5c3;
                        }
                      }
                    }
                    else if (((int)var_20 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {
                      var_24 = (char *)var_21->ei_eoe;
                      var_25 = var_22;
                      while (var_20 != var_24) {
                        var_25 = var_25 + 1;
                        if (tesp->num_j_rows == var_25) goto LAB_0001a5ae;
                        var_24 = (char *)var_21[1].ei_eoe;
                        var_21 = var_21 + 1;
                      }
                      goto LAB_0001a59d;
                    }
LAB_0001a5ae:
                    var_3(1,"broken [conn_idx=%d]",var_20,var_32);
                    var_24 = var_20;
                  }
                }
LAB_0001a5c3:
                var_25 = (type_3)var_4[var_18 * 2 + var_19 + 1];
                if (var_25 != 0xff) {
                  var_3(1,&DAT_0001f46d,var_24,var_32);
                  var_21 = tesp->j_base;
                  if (var_21 == (type_4 *)0x0) {
                    var_3(1,"other ei: %d",var_25,var_32);
                  }
                  else {
                    if (var_17 == 0) {
                      if ((tesp->num_j_eoe <= (int)var_25) || (tesp->num_j_rows < 1))
                      goto LAB_0001a7fc;
                      if (var_25 != var_21->ei_aess) {
                        var_8 = 0;
                        var_26 = var_21;
                        do {
                          var_8 = var_8 + 1;
                          var_21 = var_26 + 1;
                          if (var_8 == tesp->num_j_rows) goto LAB_0001a7fc;
                          pjVar4 = var_26 + 1;
                          var_26 = var_21;
                        } while (var_25 != pjVar4->ei_aess);
                      }
                    }
                    else if (var_22 == 1) {
                      if ((tesp->num_j_rows <= (int)var_25) ||
                         (var_21 = var_21 + var_25, var_21 == (type_4 *)0x0)) {
LAB_0001a7fc:
                        var_3(1,"broken [oth_elem_idx=%d]",var_25,var_32);
                        goto LAB_0001a67a;
                      }
                    }
                    else {
                      if ((tesp->num_j_eoe <= (int)var_25) || (tesp->num_j_rows < 1))
                      goto LAB_0001a7fc;
                      var_27 = var_21->ei_eoe;
                      var_28 = var_22;
                      while (var_27 != var_25) {
                        var_28 = var_28 + 1;
                        if (tesp->num_j_rows == var_28) goto LAB_0001a7fc;
                        var_27 = var_21[1].ei_eoe;
                        var_21 = var_21 + 1;
                      }
                    }
                    if (var_21->elem_descp == (uint8_t *)0x0) {
                      var_24 = var_29((type_3)var_21->var_15,b,0);
                    }
                    else {
                      var_24 = var_29((type_3)var_21->var_15,b,(int)var_21->elem_descp);
                      var_30 = *(type_7 *)(var_21->elem_descp + 2);
                      var_30 = var_30 << 8 | var_30 >> 8;
                      if (var_30 != 0) {
                        var_3(1,"%.*s [%d,%d] etype: %s",var_30,var_21->elem_descp + 4,
                                     var_21->th_i,var_21->indiv_i,var_24);
                        goto LAB_0001a67a;
                      }
                    }
                    var_3(1,"[%d,%d] etype: %s",var_21->th_i,var_21->indiv_i,var_24);
                  }
                }
LAB_0001a67a:
                var_18 = var_18 + 1;
                var_6(10);
              } while (var_2 != var_18);
            }
          }
          else if ((var_15 - 0x14U < 2) || (var_15 == 7)) {
            var_3(1,"%snumber of phys: %d\n",pad,var_2);
            if (var_2 != 0) {
              var_33 = 0;
              var_22 = var_17 & 0xfffffffd;
              var_10 = var_4 + var_31 + 0xc;
              do {
                var_18 = var_33;
                var_3(1,"%sphy index: %d\n",pad,var_33);
                var_3(1,"%s  phy_id: 0x%x\n",pad,var_10[-0xc]);
                var_24 = pad;
                var_3(1,&DAT_0001f4bf,pad);
                var_20 = (char *)(type_3)var_10[-10];
                if (var_20 == (char *)0xff) {
                  var_3(1,"no connector",var_24,var_18);
                }
                else {
                  var_21 = tesp->j_base;
                  if (var_21 == (type_4 *)0x0) {
                    var_3(1,"connector ei: %d",var_20,var_18);
                    var_24 = var_20;
                  }
                  else {
                    if (var_17 == 0) {
                      if ((int)var_20 < tesp->num_j_rows) {
                        var_8 = 0;
                        do {
                          if ((var_21->var_15 == '\x19') && (var_20 == (char *)var_21->indiv_i)) {
                            var_12 = var_21->enc_statp;
                            if (var_12 != (uint8_t *)0x0) goto LAB_0001a344;
                            break;
                          }
                          var_8 = var_8 + 1;
                          var_21 = var_21 + 1;
                        } while (var_8 < tesp->num_j_rows);
                      }
                    }
                    else if (var_22 == 1) {
                      if (((int)var_20 < tesp->num_j_rows) &&
                         (var_21 = var_21 + (int)var_20, var_21 != (type_4 *)0x0)) {
LAB_0001a1bc:
                        var_12 = var_21->enc_statp;
                        if ((var_12 != (uint8_t *)0x0) && (var_21->var_15 == '\x19')) {
LAB_0001a344:
                          var_23("",var_12,0x19,true,op);
                          var_24 = (char *)var_21->indiv_i;
                          var_3(1," [%d]",var_24,var_18);
                          goto LAB_0001a1e2;
                        }
                      }
                    }
                    else if (((int)var_20 < tesp->num_j_eoe) && (0 < tesp->num_j_rows)) {
                      var_24 = (char *)var_21->ei_eoe;
                      var_32 = var_22;
                      while (var_20 != var_24) {
                        var_32 = var_32 + 1;
                        if (tesp->num_j_rows == var_32) goto LAB_0001a1cd;
                        var_24 = (char *)var_21[1].ei_eoe;
                        var_21 = var_21 + 1;
                      }
                      goto LAB_0001a1bc;
                    }
LAB_0001a1cd:
                    var_3(1,"broken [conn_idx=%d]",var_20,var_18);
                    var_24 = var_20;
                  }
                }
LAB_0001a1e2:
                var_18 = (type_3)var_10[-9];
                if (var_18 != 0xff) {
                  var_3(1,&DAT_0001f46d,var_24);
                  var_21 = tesp->j_base;
                  if (var_21 == (type_4 *)0x0) {
                    var_3(1,"other ei: %d",var_18);
                  }
                  else {
                    if (var_17 == 0) {
                      if ((tesp->num_j_eoe <= (int)var_18) || (tesp->num_j_rows < 1))
                      goto LAB_0001a426;
                      if (var_18 != var_21->ei_aess) {
                        var_8 = 0;
                        var_26 = var_21;
                        do {
                          var_8 = var_8 + 1;
                          var_21 = var_26 + 1;
                          if (var_8 == tesp->num_j_rows) goto LAB_0001a426;
                          pjVar4 = var_26 + 1;
                          var_26 = var_21;
                        } while (var_18 != pjVar4->ei_aess);
                      }
                    }
                    else if (var_22 == 1) {
                      if ((tesp->num_j_rows <= (int)var_18) ||
                         (var_21 = var_21 + var_18, var_21 == (type_4 *)0x0)) {
LAB_0001a426:
                        var_3(1,"broken [oth_elem_idx=%d]",var_18);
                        goto LAB_0001a2a0;
                      }
                    }
                    else {
                      if ((tesp->num_j_eoe <= (int)var_18) || (tesp->num_j_rows < 1))
                      goto LAB_0001a426;
                      var_32 = var_21->ei_eoe;
                      var_25 = var_22;
                      while (var_18 != var_32) {
                        var_25 = var_25 + 1;
                        if (var_25 == tesp->num_j_rows) goto LAB_0001a426;
                        var_32 = var_21[1].ei_eoe;
                        var_21 = var_21 + 1;
                      }
                    }
                    if (var_21->elem_descp == (uint8_t *)0x0) {
                      var_24 = var_29((type_3)var_21->var_15,b,0);
                    }
                    else {
                      var_24 = var_29((type_3)var_21->var_15,b,(int)var_21->elem_descp);
                      var_30 = *(type_7 *)(var_21->elem_descp + 2);
                      var_30 = var_30 << 8 | var_30 >> 8;
                      if (var_30 != 0) {
                        var_3(1,"%.*s [%d,%d] etype: %s",var_30,var_21->elem_descp + 4,
                                     var_21->th_i,var_21->indiv_i,var_24);
                        goto LAB_0001a2a0;
                      }
                    }
                    var_3(1,"[%d,%d] etype: %s",var_21->th_i,var_21->indiv_i,var_24);
                  }
                }
LAB_0001a2a0:
                var_12 = var_10 + -8;
                var_6(10);
                var_3(1,"%s  SAS address: 0x",pad);
                do {
                  uVar1 = *var_12;
                  var_12 = var_12 + 1;
                  var_3(1,&DAT_0001f329,uVar1);
                } while (var_10 != var_12);
                var_10 = var_10 + 0xc;
                var_6(10);
                var_33 = var_33 + 1;
              } while (var_2 != var_33);
            }
          }
          else {
            var_3(1,"%sunrecognised element type [%d] for desc_type 1\n",pad,var_15);
          }
        }
        else {
          var_3(1,"%sunrecognised descriptor type [%d]\n",pad,var_7);
        }
      }
      goto LAB_000196b0;
    }
    if (var_7 == 0xb) {
      var_3(1,"%sTransport protocol: PCIe\n",pad);
      var_3(1,"%sfor this protocol EIP must be set (it isn\'t)\n",pad);
      goto LAB_000196b0;
    }
    if (var_7 == 0) {
      var_34 = 0xe;
      var_8 = 0xb;
      var_33 = 6;
      local_9c = 2;
      var_14 = 0;
LAB_00019709:
      var_3(1,"%sTransport protocol: FCP\n",pad);
      if (var_8 < var_5) {
        var_22 = (type_3)var_4[local_9c];
        var_2 = var_22;
        var_3(1,"%snumber of ports: %d\n",pad,var_22);
        var_3(1,"%snode_name: ",pad);
        var_10 = var_4 + var_33;
        do {
          uVar1 = *var_10;
          var_10 = var_10 + 1;
          var_3(1,&DAT_0001f329,uVar1,var_2);
        } while (var_4 + var_33 + 8 != var_10);
        if (var_14 != 0) {
          var_3(1,", device slot number: %d",var_4[var_14 + 5],var_2);
        }
        var_6(10);
        if (var_22 != 0) {
          var_14 = 0;
          var_10 = var_4 + var_34 + 0x10;
          do {
            var_3(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",
                         pad,var_14,var_10[-0x10],var_10[-0xf]);
            var_3(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",pad,
                         var_10[-0xc],var_10[-0xb],var_10[-10],var_10[-9]);
            var_12 = var_10 + -8;
            var_3(1,"%s  n_port name: ",pad);
            do {
              uVar1 = *var_12;
              var_12 = var_12 + 1;
              var_3(1,&DAT_0001f329,uVar1);
            } while (var_10 != var_12);
            var_10 = var_10 + 0x10;
            var_6(10);
            var_14 = var_14 + 1;
          } while (var_22 != var_14);
        }
      }
      goto LAB_000196b0;
    }
LAB_00019672:
    uVar6 = var_35(var_7,0x40,b);
    var_3(1,"%sTransport protocol: %s not decoded\n",pad,uVar6);
    var_8 = op->verbose;
  }
  else {
    if (var_7 == 6) {
      var_8 = 5;
      goto LAB_000199cd;
    }
    if (var_7 != 0xb) {
      if (var_7 == 0) {
        var_34 = 0x10;
        var_8 = 0xd;
        var_33 = 8;
        local_9c = 4;
        var_14 = 2;
        goto LAB_00019709;
      }
      goto LAB_00019672;
    }
    var_3(1,"%sTransport protocol: PCIe\n",pad);
    if (var_5 < 6) goto LAB_000196b0;
    if (var_4[5] >> 5 == 1) {
      var_3(1,"%sPCIe protocol type: NVMe\n",pad);
      var_2 = (type_3)var_4[4];
      var_3(1,"%snumber of ports: %d, not all ports: %d",pad,var_2,var_4[5] & 1);
      var_3(1,", device slot number: %d\n",var_4[7]);
      var_24 = " (not reported)";
      if (*(short *)(var_4 + 10) != -1) {
        var_24 = "";
      }
      var_3(1,"%sPCIe vendor id: 0x%x%s\n",pad,*(short *)(var_4 + 10),var_24);
      var_3(1,"%sserial number: %.20s\n",pad,var_4 + 0xc);
      var_3(1,"%smodel number: %.40s\n",pad,var_4 + 0x20);
      if (var_2 != 0) {
        var_22 = 0;
        do {
          var_3(1,"%sport index: %d\n",pad,var_22);
          var_7 = var_4[var_22 * 8 + 0x48];
          var_14._0_1_ = var_7 & 2;
          var_36 = var_7 & 4;
          var_3(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",pad,(var_7 & 4) != 0,
                       (var_7 & 2) != 0,var_7 & 1);
          if ((var_7 & 1) != 0) {
            var_3(1,"%s  controller id: 0x%x\n",pad,*(type_8 *)(var_4 + var_22 * 8 + 0x49)
                        );
          }
          if ((type_6)var_14 != 0) {
            var_3(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",pad,
                         var_4[var_22 * 8 + 0x4c],var_4[var_22 * 8 + 0x4d] >> 3,
                         var_4[var_22 * 8 + 0x4d] & 7);
          }
          if (var_36 != 0) {
            var_3(1,"%s  physical slot number: 0x%x\n",pad,
                         *(type_7 *)(var_4 + var_22 * 8 + 0x4e) & 0x1fff);
          }
          var_22 = var_22 + 1;
        } while (var_2 != var_22);
      }
      goto LAB_000196b0;
    }
    var_3(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",pad,var_4[5] >> 5);
    var_8 = op->verbose;
  }
  if (var_8 != 0) {
    var_37(var_4,var_5,0);
  }
LAB_000196b0:
  if (var_38 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_39();
}


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

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

void __regparm3
MASKED(uint param_1,byte *param_2,uint param_3,int param_4,int param_5,int param_6)

{
  uint *puVar1;
  char cVar2;
  undefined4 uVar3;
  uint uVar4;
  uint uVar5;
  char *pcVar6;
  char *pcVar7;
  char *pcVar8;
  uint uVar9;
  uint uVar10;
  int iVar11;
  char *pcVar12;
  uint uVar13;
  byte bVar14;
  ushort uVar15;
  char *pcVar16;
  char *pcVar17;
  uint uVar18;
  byte *pbVar19;
  uint uVar20;
  int iVar21;
  undefined4 *puVar22;
  undefined4 *puVar23;
  int iVar24;
  int in_GS_OFFSET;
  bool bVar25;
  byte local_a4;
  uint local_a0;
  int local_9c;
  uint local_98;
  int local_94;
  uint local_90;
  int local_88;
  int local_84;
  int local_80;
  int local_7c;
  int local_74;
  undefined1 local_60 [64];
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x1960d;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (*(char *)(param_6 + 8) != '\0') {
    uVar5 = 0;
    do {
      if ((uVar5 & 0xf) == 0) {
        pcVar6 = "\n";
        if (uVar5 == 0) {
          pcVar6 = "";
        }
        __printf_chk(1,&DAT_0001f086,pcVar6,param_1);
      }
      pbVar19 = param_2 + uVar5;
      uVar5 = uVar5 + 1;
      __printf_chk(1,"%02x ",*pbVar19);
    } while (param_3 != uVar5);
    putchar(10);
    goto LAB_000196b0;
  }
  bVar14 = *param_2 & 0xf;
  if ((*param_2 & 0x10) == 0) {
    if (bVar14 == 6) {
      iVar24 = 3;
LAB_000199cd:
      __printf_chk(1,"%sTransport protocol: SAS\n",param_1);
      if (iVar24 < (int)param_3) {
        iVar24 = *(int *)(param_6 + 0x1c);
        bVar25 = (*param_2 & 0x10) != 0;
        if (bVar25) {
          local_74 = 8;
          iVar11 = 4;
          iVar21 = 5;
          local_7c = 0x10;
          local_90 = param_2[2] & 3;
          local_84 = 8;
          local_88 = 8;
          local_80 = 7;
        }
        else {
          local_74 = 6;
          iVar11 = 2;
          iVar21 = 3;
          local_7c = 0xe;
          local_84 = 6;
          local_88 = 4;
          local_80 = 5;
          local_90 = 0;
        }
        bVar14 = param_2[iVar21] >> 6;
        if (1 < *(int *)(param_6 + 0x50)) {
          __printf_chk(1,"%sdescriptor_type: %d\n",param_1,bVar14);
        }
        if (bVar14 == 0) {
          uVar5 = (uint)param_2[iVar11];
          __printf_chk(1,"%snumber of phys: %d, not all phys: %d",param_1,uVar5,param_2[iVar21] & 1)
          ;
          if (bVar25) {
            __printf_chk(1,", device slot number: %d",param_2[local_80]);
          }
          putchar(10);
          if (uVar5 != 0) {
            local_a0 = 0;
            param_2 = param_2 + local_88 + 0xc;
            pcVar6 = "";
            do {
              __printf_chk(1,"%sphy index: %d\n",param_1,local_a0);
              __printf_chk(1,"%s  SAS device type: %s\n",param_1,
                           (&PTR_s_no_SAS_device_attached_0002ad40)[param_2[-0xc] >> 4 & 7]);
              bVar14 = param_2[-10];
              if ((iVar24 == 0) || ((bVar14 & 0xe) != 0)) {
                pcVar12 = " SMP";
                if ((bVar14 & 2) == 0) {
                  pcVar12 = pcVar6;
                }
                pcVar17 = " STP";
                if ((bVar14 & 4) == 0) {
                  pcVar17 = pcVar6;
                }
                pcVar8 = " SSP";
                if ((bVar14 & 8) == 0) {
                  pcVar8 = pcVar6;
                }
                __printf_chk(1,"%s  initiator port for:%s%s%s\n",param_1,pcVar8,pcVar17,pcVar12);
                if (iVar24 != 0) goto LAB_00019e40;
                bVar14 = param_2[-9];
LAB_00019e48:
                pcVar12 = pcVar6;
                if ((bVar14 & 1) != 0) {
                  pcVar12 = " SATA_device";
                }
                pcVar17 = " SMP";
                if ((bVar14 & 2) == 0) {
                  pcVar17 = pcVar6;
                }
                pcVar8 = " STP";
                if ((bVar14 & 4) == 0) {
                  pcVar8 = pcVar6;
                }
                pcVar16 = " SSP";
                if ((bVar14 & 8) == 0) {
                  pcVar16 = pcVar6;
                }
                pcVar7 = " SATA_port_selector";
                if (-1 < (char)bVar14) {
                  pcVar7 = pcVar6;
                }
                __printf_chk(1,"%s  target port for:%s%s%s%s%s\n",param_1,pcVar7,pcVar16,pcVar8,
                             pcVar17,pcVar12);
              }
              else {
LAB_00019e40:
                bVar14 = param_2[-9];
                if ((bVar14 & 0x8f) != 0) goto LAB_00019e48;
              }
              pbVar19 = param_2 + -8;
              bVar14 = sg_all_zeros(pbVar19,8);
              if ((iVar24 == 0) || ((bVar14 ^ 1) != 0)) {
                __printf_chk(1,"%s  attached SAS address: 0x",param_1);
                if ((bVar14 ^ 1) == 0) {
                  putchar(0x30);
                  bVar14 = sg_all_zeros(param_2,8);
                  bVar14 = bVar14 ^ 1;
LAB_00019fce:
                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);
                  if (bVar14 != 0) goto LAB_0001a030;
                  putchar(0x30);
                }
                else {
                  do {
                    bVar14 = *pbVar19;
                    pbVar19 = pbVar19 + 1;
                    __printf_chk(1,&DAT_0001f329,bVar14);
                  } while (param_2 != pbVar19);
                  bVar14 = sg_all_zeros(param_2,8);
                  bVar14 = bVar14 ^ 1;
                  if ((iVar24 == 0) || (bVar14 != 0)) goto LAB_00019fce;
                }
LAB_00019ff9:
                __printf_chk(1,"\n%s  phy identifier: 0x%x\n",param_1,param_2[8]);
              }
              else {
                cVar2 = sg_all_zeros(param_2,8);
                if (cVar2 == '\0') {
                  __printf_chk(1,"\n%s  SAS address: 0x",param_1);
LAB_0001a030:
                  pbVar19 = param_2;
                  do {
                    bVar14 = *pbVar19;
                    pbVar19 = pbVar19 + 1;
                    __printf_chk(1,&DAT_0001f329,bVar14);
                  } while (param_2 + 8 != pbVar19);
                  goto LAB_00019ff9;
                }
              }
              local_a0 = local_a0 + 1;
              param_2 = param_2 + 0x1c;
            } while (uVar5 != local_a0);
          }
        }
        else if (bVar14 == 1) {
          uVar5 = (uint)param_2[iVar11];
          if (param_4 == 0x18) {
            uVar4 = uVar5;
            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);
            __printf_chk(1,"%sSAS address: 0x",param_1);
            pbVar19 = param_2 + local_84;
            do {
              bVar14 = *pbVar19;
              pbVar19 = pbVar19 + 1;
              __printf_chk(1,&DAT_0001f329,bVar14,uVar4);
            } while (param_2 + local_84 + 8 != pbVar19);
            __printf_chk(1,"\n%sAttached connector; other_element pairs:\n",param_1,uVar4);
            if (uVar5 != 0) {
              uVar20 = 0;
              uVar4 = local_90 & 0xfffffffd;
              do {
                uVar18 = param_1;
                uVar13 = uVar20;
                __printf_chk(1,"%s  [%d] ",param_1,uVar20);
                uVar9 = (uint)param_2[uVar20 * 2 + local_7c];
                if (uVar9 == 0xff) {
                  __printf_chk(1,"no connector",uVar18,uVar13);
                }
                else {
                  iVar24 = *(int *)(param_5 + 8);
                  if (iVar24 == 0) {
                    __printf_chk(1,"connector ei: %d",uVar9,uVar13);
                    uVar18 = uVar9;
                  }
                  else {
                    if (local_90 == 0) {
                      if ((int)uVar9 < *(int *)(param_5 + 0xc)) {
                        iVar11 = 0;
                        do {
                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar9 == *(uint *)(iVar24 + 4)))
                          {
                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a70c;
                            break;
                          }
                          iVar11 = iVar11 + 1;
                          iVar24 = iVar24 + 0x30;
                        } while (iVar11 < *(int *)(param_5 + 0xc));
                      }
                    }
                    else if (uVar4 == 1) {
                      if (((int)uVar9 < *(int *)(param_5 + 0xc)) &&
                         (iVar24 = iVar24 + uVar9 * 0x30, iVar24 != 0)) {
LAB_0001a59d:
                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {
LAB_0001a70c:
                          FUN_00017c20(1,param_6);
                          uVar18 = *(uint *)(iVar24 + 4);
                          __printf_chk(1," [%d]",uVar18,uVar13);
                          goto LAB_0001a5c3;
                        }
                      }
                    }
                    else if (((int)uVar9 < *(int *)(param_5 + 0x10)) &&
                            (0 < (int)*(uint *)(param_5 + 0xc))) {
                      uVar18 = *(uint *)(iVar24 + 0xc);
                      uVar10 = uVar4;
                      while (uVar9 != uVar18) {
                        uVar10 = uVar10 + 1;
                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a5ae;
                        uVar18 = *(uint *)(iVar24 + 0x3c);
                        iVar24 = iVar24 + 0x30;
                      }
                      goto LAB_0001a59d;
                    }
LAB_0001a5ae:
                    __printf_chk(1,"broken [conn_idx=%d]",uVar9,uVar13);
                    uVar18 = uVar9;
                  }
                }
LAB_0001a5c3:
                uVar9 = (uint)param_2[uVar20 * 2 + local_7c + 1];
                if (uVar9 != 0xff) {
                  __printf_chk(1,&DAT_0001f46d,uVar18,uVar13);
                  puVar22 = *(undefined4 **)(param_5 + 8);
                  if (puVar22 == (undefined4 *)0x0) {
                    __printf_chk(1,"other ei: %d",uVar9,uVar13);
                  }
                  else {
                    if (local_90 == 0) {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) || (*(int *)(param_5 + 0xc) < 1))
                      goto LAB_0001a7fc;
                      if (uVar9 != puVar22[4]) {
                        iVar24 = 0;
                        puVar23 = puVar22;
                        do {
                          iVar24 = iVar24 + 1;
                          puVar22 = puVar23 + 0xc;
                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a7fc;
                          puVar1 = puVar23 + 0x10;
                          puVar23 = puVar22;
                        } while (uVar9 != *puVar1);
                      }
                    }
                    else if (uVar4 == 1) {
                      if ((*(int *)(param_5 + 0xc) <= (int)uVar9) ||
                         (puVar22 = puVar22 + uVar9 * 0xc, puVar22 == (undefined4 *)0x0)) {
LAB_0001a7fc:
                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar9,uVar13);
                        goto LAB_0001a67a;
                      }
                    }
                    else {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar9) ||
                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a7fc;
                      uVar18 = puVar22[3];
                      uVar10 = uVar4;
                      while (uVar18 != uVar9) {
                        uVar10 = uVar10 + 1;
                        if (*(uint *)(param_5 + 0xc) == uVar10) goto LAB_0001a7fc;
                        uVar18 = puVar22[0xf];
                        puVar22 = puVar22 + 0xc;
                      }
                    }
                    if (puVar22[5] == 0) {
                      uVar3 = FUN_000169f0();
                    }
                    else {
                      uVar3 = FUN_000169f0();
                      uVar15 = *(ushort *)(puVar22[5] + 2);
                      uVar15 = uVar15 << 8 | uVar15 >> 8;
                      if (uVar15 != 0) {
                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,
                                     puVar22[1],uVar3);
                        goto LAB_0001a67a;
                      }
                    }
                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);
                  }
                }
LAB_0001a67a:
                uVar20 = uVar20 + 1;
                putchar(10);
              } while (uVar5 != uVar20);
            }
          }
          else if ((param_4 - 0x14U < 2) || (param_4 == 7)) {
            __printf_chk(1,"%snumber of phys: %d\n",param_1,uVar5);
            if (uVar5 != 0) {
              local_98 = 0;
              uVar4 = local_90 & 0xfffffffd;
              param_2 = param_2 + local_74 + 0xc;
              do {
                uVar18 = local_98;
                __printf_chk(1,"%sphy index: %d\n",param_1,local_98);
                __printf_chk(1,"%s  phy_id: 0x%x\n",param_1,param_2[-0xc]);
                uVar20 = param_1;
                __printf_chk(1,&DAT_0001f4bf,param_1);
                uVar13 = (uint)param_2[-10];
                if (uVar13 == 0xff) {
                  __printf_chk(1,"no connector",uVar20,uVar18);
                }
                else {
                  iVar24 = *(int *)(param_5 + 8);
                  if (iVar24 == 0) {
                    __printf_chk(1,"connector ei: %d",uVar13,uVar18);
                    uVar20 = uVar13;
                  }
                  else {
                    if (local_90 == 0) {
                      if ((int)uVar13 < *(int *)(param_5 + 0xc)) {
                        iVar11 = 0;
                        do {
                          if ((*(char *)(iVar24 + 8) == '\x19') && (uVar13 == *(uint *)(iVar24 + 4))
                             ) {
                            if (*(int *)(iVar24 + 0x18) != 0) goto LAB_0001a344;
                            break;
                          }
                          iVar11 = iVar11 + 1;
                          iVar24 = iVar24 + 0x30;
                        } while (iVar11 < *(int *)(param_5 + 0xc));
                      }
                    }
                    else if (uVar4 == 1) {
                      if (((int)uVar13 < *(int *)(param_5 + 0xc)) &&
                         (iVar24 = iVar24 + uVar13 * 0x30, iVar24 != 0)) {
LAB_0001a1bc:
                        if ((*(int *)(iVar24 + 0x18) != 0) && (*(char *)(iVar24 + 8) == '\x19')) {
LAB_0001a344:
                          FUN_00017c20(1,param_6);
                          uVar20 = *(uint *)(iVar24 + 4);
                          __printf_chk(1," [%d]",uVar20,uVar18);
                          goto LAB_0001a1e2;
                        }
                      }
                    }
                    else if (((int)uVar13 < *(int *)(param_5 + 0x10)) &&
                            (0 < (int)*(uint *)(param_5 + 0xc))) {
                      uVar20 = *(uint *)(iVar24 + 0xc);
                      uVar9 = uVar4;
                      while (uVar13 != uVar20) {
                        uVar9 = uVar9 + 1;
                        if (*(uint *)(param_5 + 0xc) == uVar9) goto LAB_0001a1cd;
                        uVar20 = *(uint *)(iVar24 + 0x3c);
                        iVar24 = iVar24 + 0x30;
                      }
                      goto LAB_0001a1bc;
                    }
LAB_0001a1cd:
                    __printf_chk(1,"broken [conn_idx=%d]",uVar13,uVar18);
                    uVar20 = uVar13;
                  }
                }
LAB_0001a1e2:
                uVar18 = (uint)param_2[-9];
                if (uVar18 != 0xff) {
                  __printf_chk(1,&DAT_0001f46d,uVar20);
                  puVar22 = *(undefined4 **)(param_5 + 8);
                  if (puVar22 == (undefined4 *)0x0) {
                    __printf_chk(1,"other ei: %d",uVar18);
                  }
                  else {
                    if (local_90 == 0) {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) || (*(int *)(param_5 + 0xc) < 1)
                         ) goto LAB_0001a426;
                      if (uVar18 != puVar22[4]) {
                        iVar24 = 0;
                        puVar23 = puVar22;
                        do {
                          iVar24 = iVar24 + 1;
                          puVar22 = puVar23 + 0xc;
                          if (iVar24 == *(int *)(param_5 + 0xc)) goto LAB_0001a426;
                          puVar1 = puVar23 + 0x10;
                          puVar23 = puVar22;
                        } while (uVar18 != *puVar1);
                      }
                    }
                    else if (uVar4 == 1) {
                      if ((*(int *)(param_5 + 0xc) <= (int)uVar18) ||
                         (puVar22 = puVar22 + uVar18 * 0xc, puVar22 == (undefined4 *)0x0)) {
LAB_0001a426:
                        __printf_chk(1,"broken [oth_elem_idx=%d]",uVar18);
                        goto LAB_0001a2a0;
                      }
                    }
                    else {
                      if ((*(int *)(param_5 + 0x10) <= (int)uVar18) ||
                         ((int)*(uint *)(param_5 + 0xc) < 1)) goto LAB_0001a426;
                      uVar20 = puVar22[3];
                      uVar13 = uVar4;
                      while (uVar18 != uVar20) {
                        uVar13 = uVar13 + 1;
                        if (uVar13 == *(uint *)(param_5 + 0xc)) goto LAB_0001a426;
                        uVar20 = puVar22[0xf];
                        puVar22 = puVar22 + 0xc;
                      }
                    }
                    if (puVar22[5] == 0) {
                      uVar3 = FUN_000169f0();
                    }
                    else {
                      uVar3 = FUN_000169f0();
                      uVar15 = *(ushort *)(puVar22[5] + 2);
                      uVar15 = uVar15 << 8 | uVar15 >> 8;
                      if (uVar15 != 0) {
                        __printf_chk(1,"%.*s [%d,%d] etype: %s",uVar15,puVar22[5] + 4,*puVar22,
                                     puVar22[1],uVar3);
                        goto LAB_0001a2a0;
                      }
                    }
                    __printf_chk(1,"[%d,%d] etype: %s",*puVar22,puVar22[1],uVar3);
                  }
                }
LAB_0001a2a0:
                pbVar19 = param_2 + -8;
                putchar(10);
                __printf_chk(1,"%s  SAS address: 0x",param_1);
                do {
                  bVar14 = *pbVar19;
                  pbVar19 = pbVar19 + 1;
                  __printf_chk(1,&DAT_0001f329,bVar14);
                } while (param_2 != pbVar19);
                param_2 = param_2 + 0xc;
                putchar(10);
                local_98 = local_98 + 1;
              } while (uVar5 != local_98);
            }
          }
          else {
            __printf_chk(1,"%sunrecognised element type [%d] for desc_type 1\n",param_1,param_4);
          }
        }
        else {
          __printf_chk(1,"%sunrecognised descriptor type [%d]\n",param_1,bVar14);
        }
      }
      goto LAB_000196b0;
    }
    if (bVar14 == 0xb) {
      __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);
      __printf_chk(1,"%sfor this protocol EIP must be set (it isn\'t)\n",param_1);
      goto LAB_000196b0;
    }
    if (bVar14 == 0) {
      local_94 = 0xe;
      iVar24 = 0xb;
      local_98 = 6;
      local_9c = 2;
      local_a0 = 0;
LAB_00019709:
      __printf_chk(1,"%sTransport protocol: FCP\n",param_1);
      if (iVar24 < (int)param_3) {
        uVar4 = (uint)param_2[local_9c];
        uVar5 = uVar4;
        __printf_chk(1,"%snumber of ports: %d\n",param_1,uVar4);
        __printf_chk(1,"%snode_name: ",param_1);
        pbVar19 = param_2 + local_98;
        do {
          bVar14 = *pbVar19;
          pbVar19 = pbVar19 + 1;
          __printf_chk(1,&DAT_0001f329,bVar14,uVar5);
        } while (param_2 + local_98 + 8 != pbVar19);
        if (local_a0 != 0) {
          __printf_chk(1,", device slot number: %d",param_2[local_a0 + 5],uVar5);
        }
        putchar(10);
        if (uVar4 != 0) {
          local_a0 = 0;
          param_2 = param_2 + local_94 + 0x10;
          do {
            __printf_chk(1,"%s  port index: %d, port loop position: %d, port bypass reason: 0x%x\n",
                         param_1,local_a0,param_2[-0x10],param_2[-0xf]);
            __printf_chk(1,"%srequested hard address: %d, n_port identifier: %02x%02x%02x\n",param_1
                         ,param_2[-0xc],param_2[-0xb],param_2[-10],param_2[-9]);
            pbVar19 = param_2 + -8;
            __printf_chk(1,"%s  n_port name: ",param_1);
            do {
              bVar14 = *pbVar19;
              pbVar19 = pbVar19 + 1;
              __printf_chk(1,&DAT_0001f329,bVar14);
            } while (param_2 != pbVar19);
            param_2 = param_2 + 0x10;
            putchar(10);
            local_a0 = local_a0 + 1;
          } while (uVar4 != local_a0);
        }
      }
      goto LAB_000196b0;
    }
LAB_00019672:
    uVar3 = sg_get_trans_proto_str(bVar14,0x40,local_60);
    __printf_chk(1,"%sTransport protocol: %s not decoded\n",param_1,uVar3);
    iVar24 = *(int *)(param_6 + 0x50);
  }
  else {
    if (bVar14 == 6) {
      iVar24 = 5;
      goto LAB_000199cd;
    }
    if (bVar14 != 0xb) {
      if (bVar14 == 0) {
        local_94 = 0x10;
        iVar24 = 0xd;
        local_98 = 8;
        local_9c = 4;
        local_a0 = 2;
        goto LAB_00019709;
      }
      goto LAB_00019672;
    }
    __printf_chk(1,"%sTransport protocol: PCIe\n",param_1);
    if ((int)param_3 < 6) goto LAB_000196b0;
    if (param_2[5] >> 5 == 1) {
      __printf_chk(1,"%sPCIe protocol type: NVMe\n",param_1);
      uVar5 = (uint)param_2[4];
      __printf_chk(1,"%snumber of ports: %d, not all ports: %d",param_1,uVar5,param_2[5] & 1);
      __printf_chk(1,", device slot number: %d\n",param_2[7]);
      pcVar6 = " (not reported)";
      if (*(short *)(param_2 + 10) != -1) {
        pcVar6 = "";
      }
      __printf_chk(1,"%sPCIe vendor id: 0x%x%s\n",param_1,*(short *)(param_2 + 10),pcVar6);
      __printf_chk(1,"%sserial number: %.20s\n",param_1,param_2 + 0xc);
      __printf_chk(1,"%smodel number: %.40s\n",param_1,param_2 + 0x20);
      if (uVar5 != 0) {
        uVar4 = 0;
        do {
          __printf_chk(1,"%sport index: %d\n",param_1,uVar4);
          bVar14 = param_2[uVar4 * 8 + 0x48];
          local_a0._0_1_ = bVar14 & 2;
          local_a4 = bVar14 & 4;
          __printf_chk(1,"%s  PSN_VALID=%d, BDF_VALID=%d, CID_VALID=%d\n",param_1,(bVar14 & 4) != 0,
                       (bVar14 & 2) != 0,bVar14 & 1);
          if ((bVar14 & 1) != 0) {
            __printf_chk(1,"%s  controller id: 0x%x\n",param_1,
                         *(undefined2 *)(param_2 + uVar4 * 8 + 0x49));
          }
          if ((byte)local_a0 != 0) {
            __printf_chk(1,"%s  bus number: 0x%x, device number: 0x%x, function number: 0x%x\n",
                         param_1,param_2[uVar4 * 8 + 0x4c],param_2[uVar4 * 8 + 0x4d] >> 3,
                         param_2[uVar4 * 8 + 0x4d] & 7);
          }
          if (local_a4 != 0) {
            __printf_chk(1,"%s  physical slot number: 0x%x\n",param_1,
                         *(ushort *)(param_2 + uVar4 * 8 + 0x4e) & 0x1fff);
          }
          uVar4 = uVar4 + 1;
        } while (uVar5 != uVar4);
      }
      goto LAB_000196b0;
    }
    __printf_chk(1,"%sTransport protocol: PCIe subprotocol=0x%x not decoded\n",param_1,
                 param_2[5] >> 5);
    iVar24 = *(int *)(param_6 + 0x50);
  }
  if (iVar24 != 0) {
    hex2stdout(param_2,param_3,0);
  }
LAB_000196b0:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0001eef0();
}

