
libusb_device * get_usb_device(libusb_context *ctx,char *path)

{
  libusb_device *plVar1;
  undefined *puVar2;
  int iVar3;
  libusb_device *plVar4;
  int iVar5;
  libusb_device *plVar6;
  libusb_device *plVar7;
  undefined4 uVar8;
  int iVar9;
  char *pcVar10;
  libusb_device lVar13;
  libusb_device *plVar11;
  EVP_PKEY_CTX *ctx_00;
  undefined1 **ppuVar14;
  undefined1 **ppuVar15;
  size_t in_a2;
  libusb_device *plVar16;
  int *piVar17;
  undefined4 *puVar18;
  undefined1 *puVar19;
  int iVar20;
  undefined *puVar21;
  code *pcVar22;
  undefined1 *puStack_2194;
  libusb_device *plStack_2190;
  int iStack_218c;
  int iStack_2188;
  byte bStack_2184;
  char cStack_2183;
  undefined1 uStack_2182;
  undefined1 uStack_2181;
  EVP_PKEY_CTX *pEStack_2084;
  libusb_device *plStack_207c;
  char *pcStack_2078;
  libusb_device *plStack_2074;
  undefined *puStack_2070;
  undefined1 *puStack_206c;
  libusb_device *plStack_2068;
  code *pcStack_2064;
  undefined1 *local_2050;
  libusb_device *local_204c;
  undefined4 local_2048;
  undefined4 local_2044;
  libusb_device **list;
  char device_path [4097];
  char absolute_path [4097];
  libusb_device *plVar12;
  
  puVar2 = PTR___stack_chk_guard_00049a28;
  puVar19 = &DAT_0000002f;
  iVar3 = *(int *)PTR___stack_chk_guard_00049a28;
  readlink_recursive(path,device_path,in_a2);
  absolute_path[0] = '\0';
  pcVar10 = device_path;
  if (device_path[0] == '/') {
    plVar6 = (libusb_device *)0x1001;
    plVar16 = (libusb_device *)absolute_path;
    plVar4 = (libusb_device *)absolute_path;
  }
  else {
    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);
    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);
    plVar6 = (libusb_device *)(0x1000 - iVar5);
    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;
    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);
  }
LAB_00023d1c:
  plVar7 = plVar6;
  lVar13 = (libusb_device)device_path[0];
  if ((libusb_device)device_path[0] != (libusb_device)0x0) {
    do {
      if (plVar7 < (libusb_device *)0x2) break;
      device_path[0] = *(char *)(pcVar10 + 1);
      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;
      if (lVar13 == (libusb_device)0x2e) {
        plVar6 = plVar7;
        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {
          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {
            plVar12 = plVar16;
            if (plVar4 == plVar16 + -1) {
              device_path[0] = *(char *)(pcVar10 + 3);
              pcVar10 = pcVar10 + 3;
            }
            else {
              do {
                plVar11 = plVar12 + -1;
                plVar1 = plVar12 + -2;
                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);
                plVar12 = plVar11;
              } while (*plVar1 != (libusb_device)0x2f);
              device_path[0] = *(char *)(pcVar10 + 3);
              pcVar10 = pcVar10 + 3;
              plVar16 = plVar11;
            }
            goto LAB_00023d1c;
          }
        }
        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&
                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;
      }
      *plVar16 = lVar13;
      pcVar10 = pcVar10 + 1;
      plVar7 = plVar7 + -1;
      plVar16 = plVar16 + 1;
      lVar13 = (libusb_device)device_path[0];
      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;
    } while( true );
  }
  *plVar16 = (libusb_device)0x0;
  iVar5 = (*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list);
  if (iVar5 < 1) {
LAB_00023ea0:
    plVar6 = (libusb_device *)0x0;
  }
  else {
    iVar20 = 0;
    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);
    puVar19 = PTR_s__00049870 + 0x1a18;
    while( true ) {
      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);
      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);
      plVar16 = (libusb_device *)0x1;
      local_2050 = puVar19;
      local_204c = plVar4;
      local_2048 = uVar8;
      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);
      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);
      if (iVar9 == 0) break;
      iVar20 = iVar20 + 1;
      if (iVar5 == iVar20) goto LAB_00023ea0;
    }
    plVar6 = list[iVar20];
  }
  ppuVar14 = (undefined1 **)0x0;
  (*(code *)PTR_libusb_free_device_list_0004996c)(list);
  if (iVar3 == *(int *)puVar2) {
    return plVar6;
  }
  pcVar22 = get_dev_string;
  puVar21 = PTR___stack_chk_fail_00049a1c;
  (*(code *)PTR___stack_chk_fail_00049a1c)();
  piVar17 = *(int **)(puVar21 + 0x25ae8);
  puStack_2070 = puVar2;
  pEStack_2084 = (EVP_PKEY_CTX *)*piVar17;
  plStack_207c = plVar6;
  pcStack_2078 = device_path;
  plStack_2074 = (libusb_device *)absolute_path;
  puStack_206c = puVar19;
  plStack_2068 = plVar4;
  pcStack_2064 = pcVar22;
  if ((iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0)) {
    ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);
    ppuVar15 = ppuVar14;
    if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {
                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      plVar16 = (libusb_device *)
                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);
      return plVar16;
    }
    goto LAB_000241f4;
  }
  plVar16 = (libusb_device *)0x6;
  ppuVar15 = (undefined1 **)&DAT_00000080;
  iVar5 = (**(code **)(puVar21 + 0x25a1c))();
  if (iVar5 == 4) {
    if (CONCAT11(uStack_2181,uStack_2182) != 0) {
      plVar16 = (libusb_device *)0x6;
      ppuVar15 = (undefined1 **)&DAT_00000080;
      iVar5 = (**(code **)(puVar21 + 0x25a1c))
                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),
                         &bStack_2184,0xfe,1000);
      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {
        iVar20 = (int)(bStack_2184 - 2) >> 1;
        puStack_2194 = &uStack_2182;
        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);
        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);
        if (iVar5 == -1) {
LAB_000241a8:
          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);
          plVar16 = plVar4;
          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);
          ppuVar15 = ppuVar14;
          if (iVar3 < 0) {
            (**(code **)(puVar21 + 0x25af4))(plVar4);
            ppuVar15 = ppuVar14;
            goto LAB_0002406c;
          }
        }
        else {
          iStack_218c = iVar20 << 1;
          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();
          iStack_2188 = iVar20 * iStack_2188;
          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);
          plVar16 = (libusb_device *)&iStack_218c;
          ppuVar15 = &puStack_2194;
          plStack_2190 = plVar4;
          iVar20 = (**(code **)(puVar21 + 0x25b10))
                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);
          (**(code **)(puVar21 + 0x25b14))(iVar5);
          if (iVar20 == -1) {
            (**(code **)(puVar21 + 0x25af4))(plVar4);
            goto LAB_000241a8;
          }
          *plStack_2190 = (libusb_device)0x0;
          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;
        }
        ctx_00 = pEStack_2084;
        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {
          return plVar4;
        }
        goto LAB_000241f4;
      }
    }
  }
LAB_0002406c:
  ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);
  if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {
                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    plVar16 = (libusb_device *)
              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);
    return plVar16;
  }
LAB_000241f4:
  pcVar22 = *(code **)(puVar21 + 0x25adc);
  (*pcVar22)();
  plVar4 = (libusb_device *)_init(ctx_00);
  puVar18 = *(undefined4 **)(pcVar22 + 0x25718);
  iVar5 = *(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2;
  iVar3 = 0;
  if (iVar5 != 0) {
    do {
      iVar3 = iVar3 + 1;
      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);
      puVar18 = puVar18 + 1;
    } while (iVar5 != iVar3);
  }
  return plVar4;
LAB_00023e2c:
  while ((libusb_device)device_path[0] == (libusb_device)0x2f) {
    device_path[0] = *(char *)(pcVar10 + 2);
    pcVar10 = pcVar10 + 1;
  }
  *plVar16 = (libusb_device)0x2f;
  plVar6 = plVar7 + -1;
  pcVar10 = pcVar10 + 1;
  plVar16 = plVar16 + 1;
  goto LAB_00023d1c;
code_r0x00023e64:
  device_path[0] = *(char *)(pcVar10 + 2);
  pcVar10 = pcVar10 + 2;
  goto LAB_00023d1c;
}



int * get_usb_device(undefined4 param_1,undefined4 param_2)

{
  char *pcVar1;
  undefined *puVar2;
  int *piVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  undefined4 uVar7;
  int iVar8;
  char *pcVar9;
  char cVar10;
  undefined1 **ppuVar11;
  undefined1 **ppuVar12;
  int *piVar13;
  int iVar14;
  int *piVar15;
  int *piVar16;
  undefined4 *puVar17;
  undefined1 *puVar18;
  int iVar19;
  undefined *puVar20;
  code *pcVar21;
  undefined1 *puStack_2194;
  int *piStack_2190;
  int iStack_218c;
  int iStack_2188;
  byte bStack_2184;
  char cStack_2183;
  undefined1 uStack_2182;
  undefined1 uStack_2181;
  int iStack_2084;
  int *piStack_207c;
  char *pcStack_2078;
  int *piStack_2074;
  undefined *puStack_2070;
  undefined1 *puStack_206c;
  int *piStack_2068;
  code *pcStack_2064;
  undefined1 *local_2050;
  int *local_204c;
  undefined4 local_2048;
  undefined4 local_2044;
  int local_2038;
  char local_2034;
  char local_2033 [4099];
  undefined1 local_1030 [4100];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_00049a28;
  puVar18 = &DAT_0000002f;
  local_2c = *(int *)PTR___stack_chk_guard_00049a28;
  FUN_00023ac0(param_2,&local_2034);
  local_1030[0] = 0;
  pcVar9 = &local_2034;
  if (local_2034 == '/') {
    pcVar5 = (char *)0x1001;
    piVar13 = (int *)local_1030;
    piVar3 = (int *)local_1030;
  }
  else {
    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);
    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);
    pcVar5 = (char *)(0x1000 - iVar4);
    *(char *)((int)local_1030 + iVar4) = '/';
    piVar13 = (int *)(local_1030 + iVar4 + 1);
  }
LAB_00023d1c:
  pcVar6 = pcVar5;
  cVar10 = local_2034;
  if (local_2034 != '\0') {
    do {
      if (pcVar6 < (char *)0x2) break;
      local_2034 = pcVar9[1];
      if (cVar10 == '/') goto LAB_00023e2c;
      if (cVar10 == '.') {
        pcVar5 = pcVar6;
        if (local_2034 == '.') {
          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {
            piVar15 = piVar13;
            if (piVar3 == (int *)((int)piVar13 + -1)) {
              local_2034 = pcVar9[3];
              pcVar9 = pcVar9 + 3;
            }
            else {
              do {
                piVar16 = (int *)((int)piVar15 + -1);
                pcVar1 = (char *)((int)piVar15 + -2);
                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));
                piVar15 = piVar16;
              } while (*pcVar1 != '/');
              local_2034 = pcVar9[3];
              pcVar9 = pcVar9 + 3;
              piVar13 = piVar16;
            }
            goto LAB_00023d1c;
          }
        }
        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))
        goto code_r0x00023e64;
      }
      *(char *)piVar13 = cVar10;
      pcVar9 = pcVar9 + 1;
      pcVar6 = pcVar6 + -1;
      piVar13 = (int *)((int)piVar13 + 1);
      cVar10 = local_2034;
      if (local_2034 == '\0') break;
    } while( true );
  }
  *(char *)piVar13 = '\0';
  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);
  if (iVar4 < 1) {
LAB_00023ea0:
    piVar15 = (int *)0x0;
  }
  else {
    iVar19 = 0;
    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);
    puVar18 = PTR_s__00049870 + 0x1a18;
    while( true ) {
      iVar14 = iVar19 * 4;
      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));
      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)
                             (*(undefined4 *)(local_2038 + iVar14));
      piVar13 = (int *)0x1;
      local_2050 = puVar18;
      local_204c = piVar3;
      local_2048 = uVar7;
      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);
      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);
      if (iVar8 == 0) break;
      iVar19 = iVar19 + 1;
      if (iVar4 == iVar19) goto LAB_00023ea0;
    }
    piVar15 = *(int **)(local_2038 + iVar14);
  }
  ppuVar11 = (undefined1 **)0x0;
  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);
  if (local_2c == *(int *)puVar2) {
    return piVar15;
  }
  pcVar21 = get_dev_string;
  iVar4 = local_2c;
  puVar20 = PTR___stack_chk_fail_00049a1c;
  (*(code *)PTR___stack_chk_fail_00049a1c)();
  piVar16 = *(int **)(puVar20 + 0x25ae8);
  puStack_2070 = puVar2;
  iStack_2084 = *piVar16;
  piStack_207c = piVar15;
  pcStack_2078 = &local_2034;
  piStack_2074 = (int *)local_1030;
  puStack_206c = puVar18;
  piStack_2068 = piVar3;
  pcStack_2064 = pcVar21;
  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {
    iVar4 = *(int *)(puVar20 + 0x25930);
    ppuVar12 = ppuVar11;
    if (iStack_2084 == *piVar16) {
                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);
      return piVar13;
    }
    goto LAB_000241f4;
  }
  piVar13 = (int *)0x6;
  ppuVar12 = (undefined1 **)&DAT_00000080;
  iVar19 = (**(code **)(puVar20 + 0x25a1c))();
  if (iVar19 == 4) {
    if (CONCAT11(uStack_2181,uStack_2182) != 0) {
      piVar13 = (int *)0x6;
      ppuVar12 = (undefined1 **)&DAT_00000080;
      iVar19 = (**(code **)(puVar20 + 0x25a1c))
                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),
                          &bStack_2184,0xfe,1000);
      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {
        iVar8 = (int)(bStack_2184 - 2) >> 1;
        puStack_2194 = &uStack_2182;
        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);
        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);
        if (iVar19 == -1) {
LAB_000241a8:
          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);
          piVar13 = piVar3;
          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);
          ppuVar12 = ppuVar11;
          if (iVar4 < 0) {
            (**(code **)(puVar20 + 0x25af4))(piVar3);
            ppuVar12 = ppuVar11;
            goto LAB_0002406c;
          }
        }
        else {
          iStack_218c = iVar8 << 1;
          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();
          iStack_2188 = iVar8 * iStack_2188;
          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);
          piVar13 = &iStack_218c;
          ppuVar12 = &puStack_2194;
          piStack_2190 = piVar3;
          iVar8 = (**(code **)(puVar20 + 0x25b10))
                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);
          (**(code **)(puVar20 + 0x25b14))(iVar19);
          if (iVar8 == -1) {
            (**(code **)(puVar20 + 0x25af4))(piVar3);
            goto LAB_000241a8;
          }
          *(char *)piStack_2190 = '\0';
          if (piVar3 == (int *)0x0) goto LAB_000241a8;
        }
        iVar4 = iStack_2084;
        if (iStack_2084 == *piVar16) {
          return piVar3;
        }
        goto LAB_000241f4;
      }
    }
  }
LAB_0002406c:
  iVar4 = *(int *)(puVar20 + 0x25930);
  if (iStack_2084 == *piVar16) {
                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);
    return piVar13;
  }
LAB_000241f4:
  pcVar21 = *(code **)(puVar20 + 0x25adc);
  (*pcVar21)();
  piVar3 = (int *)_DT_INIT();
  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);
  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;
  iVar19 = 0;
  if (iVar8 != 0) {
    do {
      iVar19 = iVar19 + 1;
      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);
      puVar17 = puVar17 + 1;
    } while (iVar8 != iVar19);
  }
  return piVar3;
LAB_00023e2c:
  while (local_2034 == '/') {
    local_2034 = pcVar9[2];
    pcVar9 = pcVar9 + 1;
  }
  *(char *)piVar13 = '/';
  pcVar5 = pcVar6 + -1;
  pcVar9 = pcVar9 + 1;
  piVar13 = (int *)((int)piVar13 + 1);
  goto LAB_00023d1c;
code_r0x00023e64:
  local_2034 = pcVar9[2];
  pcVar9 = pcVar9 + 2;
  goto LAB_00023d1c;
}


lui gp,0x3
addiu gp,gp,-0x241c
addu gp,gp,t9
addiu sp,sp,-0x2060
lw t9,-0x7fc4(gp)
or v1,a1,zero
sw s3,0x2044(sp)
addiu t9,t9,0x3ac0
lw s3,-0x7e08(gp)
sw s1,0x203c(sp)
addiu s1,sp,0x2c
sw gp,0x20(sp)
sw s4,0x2048(sp)
or a1,s1,zero
sw s2,0x2040(sp)
li s4,0x2f
sw s0,0x2038(sp)
or s0,a0,zero
sw ra,0x205c(sp)
or a0,v1,zero
sw s8,0x2058(sp)
addiu s2,sp,0x1030
sw s7,0x2054(sp)
sw s6,0x2050(sp)
sw s5,0x204c(sp)
lw v0,0x0(s3)
sw v0,0x2034(sp)
bal 0x00023ac0
_nop
lb a0,0x2c(sp)
lw gp,0x20(sp)
beq a0,s4,0x00023ef8
_sb zero,0x1030(sp)
lw t9,-0x7e74(gp)
li a1,0x1001
jalr t9
_or a0,s2,zero
lw gp,0x20(sp)
or a0,v0,zero
lw t9,-0x7e7c(gp)
jalr t9
_or s5,v0,zero
li v1,0x1000
addu a1,s2,v0
lb a0,0x2c(sp)
subu v0,v1,v0
lw gp,0x20(sp)
addiu a2,a1,0x1
sb s4,0x0(a1)
li a3,0x2f
li t0,0x2e
or v1,s1,zero
beq a0,zero,0x00023d5c
_lw t9,-0x7e78(gp)
sltiu a1,v0,0x2
bne a1,zero,0x00023d5c
_lw t9,-0x7e78(gp)
beq a0,a3,0x00023e2c
_lb a1,0x1(v1)
beq a0,t0,0x00023e48
_nop
sb a0,0x0(a2)
or a0,a1,zero
addiu v1,v1,0x1
addiu v0,v0,-0x1
bne a0,zero,0x00023d24
_addiu a2,a2,0x1
lw t9,-0x7e78(gp)
addiu a1,sp,0x28
sb zero,0x0(a2)
jalr t9
_or a0,s0,zero
lw gp,0x20(sp)
blez v0,0x00023ea0
_or s6,v0,zero
lw s5,-0x7fc0(gp)
or s7,zero,zero
lw s4,-0x7fc0(gp)
addiu s5,s5,0x1a08
b 0x00023d9c
_addiu s4,s4,0x1a18
addiu s7,s7,0x1
beq s6,s7,0x00023ea0
_nop
lw v0,0x28(sp)
sll s0,s7,0x2
lw t9,-0x7e5c(gp)
addu v0,v0,s0
jalr t9
_lw a0,0x0(v0)
or s8,v0,zero
lw v0,0x28(sp)
lw gp,0x20(sp)
addu v0,v0,s0
lw t9,-0x7ef4(gp)
jalr t9
_lw a0,0x0(v0)
li a3,0x1001
lw gp,0x20(sp)
li a2,0x1
li a1,0x1001
sw s8,0x18(sp)
or a0,s1,zero
sw s5,0x14(sp)
sw s4,0x10(sp)
lw t9,-0x7dd8(gp)
jalr t9
_sw v0,0x1c(sp)
or a1,s2,zero
lw gp,0x20(sp)
lw t9,-0x7de4(gp)
jalr t9
_or a0,s1,zero
bne v0,zero,0x00023d90
_lw gp,0x20(sp)
lw a0,0x28(sp)
addu s0,a0,s0
b 0x00023ea8
_lw s0,0x0(s0)
lb a1,0x1(v1)
beq a1,a3,0x00023e28
_addiu v1,v1,0x1
sb a3,0x0(a2)
addiu v0,v0,-0x1
or a0,a1,zero
b 0x00023d1c
_addiu a2,a2,0x1
beq a1,t0,0x00023e70
_nop
bne a1,a3,0x00023d40
_nop
lb t1,-0x1(a2)
bne t1,a3,0x00023d40
_nop
lb a0,0x2(v1)
b 0x00023d1c
_addiu v1,v1,0x2
lb t1,0x2(v1)
bne t1,a3,0x00023d40
_nop
lb t1,-0x1(a2)
bne t1,a3,0x00023d40
_nop
addiu a0,a2,-0x1
bne s5,a0,0x00023f08
_nop
lb a0,0x3(v1)
b 0x00023d1c
_addiu v1,v1,0x3
lw a0,0x28(sp)
or s0,zero,zero
lw t9,-0x7ec4(gp)
jalr t9
_or a1,zero,zero
or v0,s0,zero
lw a0,0x2034(sp)
lw v1,0x0(s3)
bne a0,v1,0x00023f34
_lw gp,0x20(sp)
lw ra,0x205c(sp)
lw s8,0x2058(sp)
lw s7,0x2054(sp)
lw s6,0x2050(sp)
lw s5,0x204c(sp)
lw s4,0x2048(sp)
lw s3,0x2044(sp)
lw s2,0x2040(sp)
lw s1,0x203c(sp)
lw s0,0x2038(sp)
jr ra
_addiu sp,sp,0x2060
li v0,0x1001
or a2,s2,zero
b 0x00023d10
_or s5,s2,zero
or a0,a2,zero
addiu a0,a0,-0x1
lb t1,-0x1(a0)
subu a1,v0,a0
bne t1,a3,0x00023f0c
_addu a1,a2,a1
or a2,a0,zero
lb a0,0x3(v1)
or v0,a1,zero
b 0x00023d1c
_addiu v1,v1,0x3
lw t9,-0x7e14(gp)
jalr t9
_nop
(translation_unit "int * get_usb_device(undefined4 param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}\n\n" (function_definition "int * get_usb_device(undefined4 param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}" primitive_type (pointer_declarator "* get_usb_device(undefined4 param_1,undefined4 param_2)" * (function_declarator "get_usb_device(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) )))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "undefined1 **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "undefined1 **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined1 *puStack_2194;" type_identifier (pointer_declarator "*puStack_2194" * identifier) ;) (declaration "int *piStack_2190;" primitive_type (pointer_declarator "*piStack_2190" * identifier) ;) (declaration "int iStack_218c;" primitive_type identifier ;) (declaration "int iStack_2188;" primitive_type identifier ;) (declaration "byte bStack_2184;" type_identifier identifier ;) (declaration "char cStack_2183;" primitive_type identifier ;) (declaration "undefined1 uStack_2182;" type_identifier identifier ;) (declaration "undefined1 uStack_2181;" type_identifier identifier ;) (declaration "int iStack_2084;" primitive_type identifier ;) (declaration "int *piStack_207c;" primitive_type (pointer_declarator "*piStack_207c" * identifier) ;) (declaration "char *pcStack_2078;" primitive_type (pointer_declarator "*pcStack_2078" * identifier) ;) (declaration "int *piStack_2074;" primitive_type (pointer_declarator "*piStack_2074" * identifier) ;) (declaration "undefined *puStack_2070;" type_identifier (pointer_declarator "*puStack_2070" * identifier) ;) (declaration "undefined1 *puStack_206c;" type_identifier (pointer_declarator "*puStack_206c" * identifier) ;) (declaration "int *piStack_2068;" primitive_type (pointer_declarator "*piStack_2068" * identifier) ;) (declaration "code *pcStack_2064;" type_identifier (pointer_declarator "*pcStack_2064" * identifier) ;) (declaration "undefined1 *local_2050;" type_identifier (pointer_declarator "*local_2050" * identifier) ;) (declaration "int *local_204c;" primitive_type (pointer_declarator "*local_204c" * identifier) ;) (declaration "undefined4 local_2048;" type_identifier identifier ;) (declaration "undefined4 local_2044;" type_identifier identifier ;) (declaration "int local_2038;" primitive_type identifier ;) (declaration "char local_2034;" primitive_type identifier ;) (declaration "char local_2033 [4099];" primitive_type (array_declarator "local_2033 [4099]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1030 [4100];" type_identifier (array_declarator "local_1030 [4100]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00049a28;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00049a28" identifier = identifier) ;) (expression_statement "puVar18 = &DAT_0000002f;" (assignment_expression "puVar18 = &DAT_0000002f" identifier = (pointer_expression "&DAT_0000002f" & identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00049a28;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00049a28" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00049a28" * (cast_expression "(int *)PTR___stack_chk_guard_00049a28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "FUN_00023ac0(param_2,&local_2034);" (call_expression "FUN_00023ac0(param_2,&local_2034)" identifier (argument_list "(param_2,&local_2034)" ( identifier , (pointer_expression "&local_2034" & identifier) ))) ;) (expression_statement "local_1030[0] = 0;" (assignment_expression "local_1030[0] = 0" (subscript_expression "local_1030[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = &local_2034;" (assignment_expression "pcVar9 = &local_2034" identifier = (pointer_expression "&local_2034" & identifier)) ;) (if_statement "if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" if (parenthesized_expression "(local_2034 == '/')" ( (binary_expression "local_2034 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }" { (expression_statement "pcVar5 = (char *)0x1001;" (assignment_expression "pcVar5 = (char *)0x1001" identifier = (cast_expression "(char *)0x1001" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar13 = (int *)local_1030;" (assignment_expression "piVar13 = (int *)local_1030" identifier = (cast_expression "(int *)local_1030" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar3 = (int *)local_1030;" (assignment_expression "piVar3 = (int *)local_1030" identifier = (cast_expression "(int *)local_1030" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" else (compound_statement "{\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" { (expression_statement "piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" identifier = (cast_expression "(int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" (parenthesized_expression "(*(code *)PTR_getcwd_000499bc)" ( (pointer_expression "*(code *)PTR_getcwd_000499bc" * (cast_expression "(code *)PTR_getcwd_000499bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_1030,0x1001)" ( identifier , number_literal ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000499b4)(piVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000499b4)" ( (pointer_expression "*(code *)PTR_strlen_000499b4" * (cast_expression "(code *)PTR_strlen_000499b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3)" ( identifier )))) ;) (expression_statement "pcVar5 = (char *)(0x1000 - iVar4);" (assignment_expression "pcVar5 = (char *)(0x1000 - iVar4)" identifier = (cast_expression "(char *)(0x1000 - iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x1000 - iVar4)" ( (binary_expression "0x1000 - iVar4" number_literal - identifier) )))) ;) (expression_statement "*(char *)((int)local_1030 + iVar4) = '/';" (assignment_expression "*(char *)((int)local_1030 + iVar4) = '/'" (pointer_expression "*(char *)((int)local_1030 + iVar4)" * (cast_expression "(char *)((int)local_1030 + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1030 + iVar4)" ( (binary_expression "(int)local_1030 + iVar4" (cast_expression "(int)local_1030" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (char_literal "'/'" ' character ')) ;) (expression_statement "piVar13 = (int *)(local_1030 + iVar4 + 1);" (assignment_expression "piVar13 = (int *)(local_1030 + iVar4 + 1)" identifier = (cast_expression "(int *)(local_1030 + iVar4 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1030 + iVar4 + 1)" ( (binary_expression "local_1030 + iVar4 + 1" (binary_expression "local_1030 + iVar4" identifier + identifier) + number_literal) )))) ;) }))) (labeled_statement "LAB_00023d1c:\n  pcVar6 = pcVar5;" statement_identifier : (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) ;)) (expression_statement "cVar10 = local_2034;" (assignment_expression "cVar10 = local_2034" identifier = identifier) ;) (if_statement "if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }" if (parenthesized_expression "(local_2034 != '\0')" ( (binary_expression "local_2034 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }" { (do_statement "do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );" do (compound_statement "{\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    }" { (if_statement "if (pcVar6 < (char *)0x2) break;" if (parenthesized_expression "(pcVar6 < (char *)0x2)" ( (binary_expression "pcVar6 < (char *)0x2" identifier < (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_2034 = pcVar9[1];" (assignment_expression "local_2034 = pcVar9[1]" identifier = (subscript_expression "pcVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar10 == '/') goto LAB_00023e2c;" if (parenthesized_expression "(cVar10 == '/')" ( (binary_expression "cVar10 == '/'" identifier == (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00023e2c;" goto statement_identifier ;)) (if_statement "if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }" if (parenthesized_expression "(cVar10 == '.')" ( (binary_expression "cVar10 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }" { (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" if (parenthesized_expression "(local_2034 == '.')" ( (binary_expression "local_2034 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }" { (if_statement "if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }" if (parenthesized_expression "((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/'))" ( (binary_expression "(pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')" (parenthesized_expression "(pcVar9[2] == '/')" ( (binary_expression "pcVar9[2] == '/'" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(*(char *)((int)piVar13 + -1) == '/')" ( (binary_expression "*(char *)((int)piVar13 + -1) == '/'" (pointer_expression "*(char *)((int)piVar13 + -1)" * (cast_expression "(char *)((int)piVar13 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }" { (expression_statement "piVar15 = piVar13;" (assignment_expression "piVar15 = piVar13" identifier = identifier) ;) (if_statement "if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" if (parenthesized_expression "(piVar3 == (int *)((int)piVar13 + -1))" ( (binary_expression "piVar3 == (int *)((int)piVar13 + -1)" identifier == (cast_expression "(int *)((int)piVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }" { (expression_statement "local_2034 = pcVar9[3];" (assignment_expression "local_2034 = pcVar9[3]" identifier = (subscript_expression "pcVar9[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = pcVar9 + 3;" (assignment_expression "pcVar9 = pcVar9 + 3" identifier = (binary_expression "pcVar9 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" else (compound_statement "{\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" { (do_statement "do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');" do (compound_statement "{\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              }" { (expression_statement "piVar16 = (int *)((int)piVar15 + -1);" (assignment_expression "piVar16 = (int *)((int)piVar15 + -1)" identifier = (cast_expression "(int *)((int)piVar15 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar15 + -1)" ( (binary_expression "(int)piVar15 + -1" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar1 = (char *)((int)piVar15 + -2);" (assignment_expression "pcVar1 = (char *)((int)piVar15 + -2)" identifier = (cast_expression "(char *)((int)piVar15 + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar15 + -2)" ( (binary_expression "(int)piVar15 + -2" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));" (assignment_expression "pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16))" identifier = (cast_expression "(char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + ((int)pcVar6 - (int)piVar16))" ( (binary_expression "(int)piVar13 + ((int)pcVar6 - (int)piVar16)" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pcVar6 - (int)piVar16)" ( (binary_expression "(int)pcVar6 - (int)piVar16" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "piVar15 = piVar16;" (assignment_expression "piVar15 = piVar16" identifier = identifier) ;) }) while (parenthesized_expression "(*pcVar1 != '/')" ( (binary_expression "*pcVar1 != '/'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'/'" ' character ')) )) ;) (expression_statement "local_2034 = pcVar9[3];" (assignment_expression "local_2034 = pcVar9[3]" identifier = (subscript_expression "pcVar9[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = pcVar9 + 3;" (assignment_expression "pcVar9 = pcVar9 + 3" identifier = (binary_expression "pcVar9 + 3" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar16;" (assignment_expression "piVar13 = piVar16" identifier = identifier) ;) }))) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) })) }) (else_clause "else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" else (if_statement "if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" if (parenthesized_expression "((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))" ( (binary_expression "(local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/')" (parenthesized_expression "(local_2034 == '/')" ( (binary_expression "local_2034 == '/'" identifier == (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(*(char *)((int)piVar13 + -1) == '/')" ( (binary_expression "*(char *)((int)piVar13 + -1) == '/'" (pointer_expression "*(char *)((int)piVar13 + -1)" * (cast_expression "(char *)((int)piVar13 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'/'" ' character ')) ))) )) (goto_statement "goto code_r0x00023e64;" goto statement_identifier ;)))) })) (expression_statement "*(char *)piVar13 = cVar10;" (assignment_expression "*(char *)piVar13 = cVar10" (pointer_expression "*(char *)piVar13" * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar6 + -1;" (assignment_expression "pcVar6 = pcVar6 + -1" identifier = (binary_expression "pcVar6 + -1" identifier + number_literal)) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "cVar10 = local_2034;" (assignment_expression "cVar10 = local_2034" identifier = identifier) ;) (if_statement "if (local_2034 == '\0') break;" if (parenthesized_expression "(local_2034 == '\0')" ( (binary_expression "local_2034 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "*(char *)piVar13 = '\0';" (assignment_expression "*(char *)piVar13 = '\0'" (pointer_expression "*(char *)piVar13" * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);" (assignment_expression "iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038)" identifier = (call_expression "(*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038)" (parenthesized_expression "(*(code *)PTR_libusb_get_device_list_000499b8)" ( (pointer_expression "*(code *)PTR_libusb_get_device_list_000499b8" * (cast_expression "(code *)PTR_libusb_get_device_list_000499b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_2038)" ( identifier , (pointer_expression "&local_2038" & identifier) )))) ;) (if_statement "if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }" { (labeled_statement "LAB_00023ea0:\n    piVar15 = (int *)0x0;" statement_identifier : (expression_statement "piVar15 = (int *)0x0;" (assignment_expression "piVar15 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" else (compound_statement "{\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "piVar3 = (int *)(PTR_s__00049870 + 0x1a08);" (assignment_expression "piVar3 = (int *)(PTR_s__00049870 + 0x1a08)" identifier = (cast_expression "(int *)(PTR_s__00049870 + 0x1a08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__00049870 + 0x1a08)" ( (binary_expression "PTR_s__00049870 + 0x1a08" identifier + number_literal) )))) ;) (expression_statement "puVar18 = PTR_s__00049870 + 0x1a18;" (assignment_expression "puVar18 = PTR_s__00049870 + 0x1a18" identifier = (binary_expression "PTR_s__00049870 + 0x1a18" identifier + number_literal)) ;) (while_statement "while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }" { (expression_statement "iVar14 = iVar19 * 4;" (assignment_expression "iVar14 = iVar19 * 4" identifier = (binary_expression "iVar19 * 4" identifier * number_literal)) ;) (expression_statement "uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));" (assignment_expression "uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14))" identifier = (call_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14))" (parenthesized_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)" ( (pointer_expression "*(code *)PTR_libusb_get_bus_number_000499d4" * (cast_expression "(code *)PTR_libusb_get_bus_number_000499d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(local_2038 + iVar14))" ( (pointer_expression "*(undefined4 *)(local_2038 + iVar14)" * (cast_expression "(undefined4 *)(local_2038 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2038 + iVar14)" ( (binary_expression "local_2038 + iVar14" identifier + identifier) )))) )))) ;) (expression_statement "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));" (assignment_expression "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14))" identifier = (call_expression "(*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14))" (parenthesized_expression "(*(code *)PTR_libusb_get_device_address_0004993c)" ( (pointer_expression "*(code *)PTR_libusb_get_device_address_0004993c" * (cast_expression "(code *)PTR_libusb_get_device_address_0004993c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(local_2038 + iVar14))" ( (pointer_expression "*(undefined4 *)(local_2038 + iVar14)" * (cast_expression "(undefined4 *)(local_2038 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2038 + iVar14)" ( (binary_expression "local_2038 + iVar14" identifier + identifier) )))) )))) ;) (expression_statement "piVar13 = (int *)0x1;" (assignment_expression "piVar13 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2050 = puVar18;" (assignment_expression "local_2050 = puVar18" identifier = identifier) ;) (expression_statement "local_204c = piVar3;" (assignment_expression "local_204c = piVar3" identifier = identifier) ;) (expression_statement "local_2048 = uVar7;" (assignment_expression "local_2048 = uVar7" identifier = identifier) ;) (expression_statement "(*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);" (call_expression "(*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001)" (parenthesized_expression "(*(code *)PTR___snprintf_chk_00049a58)" ( (pointer_expression "*(code *)PTR___snprintf_chk_00049a58" * (cast_expression "(code *)PTR___snprintf_chk_00049a58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_2034,0x1001,1,0x1001)" ( (pointer_expression "&local_2034" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);" (assignment_expression "iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030)" identifier = (call_expression "(*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030)" (parenthesized_expression "(*(code *)PTR_strcmp_00049a4c)" ( (pointer_expression "*(code *)PTR_strcmp_00049a4c" * (cast_expression "(code *)PTR_strcmp_00049a4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_2034,local_1030)" ( (pointer_expression "&local_2034" & identifier) , identifier )))) ;) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == iVar19) goto LAB_00023ea0;" if (parenthesized_expression "(iVar4 == iVar19)" ( (binary_expression "iVar4 == iVar19" identifier == identifier) )) (goto_statement "goto LAB_00023ea0;" goto statement_identifier ;)) })) (expression_statement "piVar15 = *(int **)(local_2038 + iVar14);" (assignment_expression "piVar15 = *(int **)(local_2038 + iVar14)" identifier = (pointer_expression "*(int **)(local_2038 + iVar14)" * (cast_expression "(int **)(local_2038 + iVar14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_2038 + iVar14)" ( (binary_expression "local_2038 + iVar14" identifier + identifier) ))))) ;) }))) (expression_statement "ppuVar11 = (undefined1 **)0x0;" (assignment_expression "ppuVar11 = (undefined1 **)0x0" identifier = (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "(*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);" (call_expression "(*(code *)PTR_libusb_free_device_list_0004996c)(local_2038)" (parenthesized_expression "(*(code *)PTR_libusb_free_device_list_0004996c)" ( (pointer_expression "*(code *)PTR_libusb_free_device_list_0004996c" * (cast_expression "(code *)PTR_libusb_free_device_list_0004996c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2038)" ( identifier ))) ;) (if_statement "if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar15;\n  }" { (return_statement "return piVar15;" return identifier ;) })) (expression_statement "pcVar21 = get_dev_string;" (assignment_expression "pcVar21 = get_dev_string" identifier = identifier) ;) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_00049a1c;" (assignment_expression "puVar20 = PTR___stack_chk_fail_00049a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00049a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00049a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00049a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00049a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00049a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16 = *(int **)(puVar20 + 0x25ae8);" (assignment_expression "piVar16 = *(int **)(puVar20 + 0x25ae8)" identifier = (pointer_expression "*(int **)(puVar20 + 0x25ae8)" * (cast_expression "(int **)(puVar20 + 0x25ae8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ae8)" ( (binary_expression "puVar20 + 0x25ae8" identifier + number_literal) ))))) ;) (expression_statement "puStack_2070 = puVar2;" (assignment_expression "puStack_2070 = puVar2" identifier = identifier) ;) (expression_statement "iStack_2084 = *piVar16;" (assignment_expression "iStack_2084 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "piStack_207c = piVar15;" (assignment_expression "piStack_207c = piVar15" identifier = identifier) ;) (expression_statement "pcStack_2078 = &local_2034;" (assignment_expression "pcStack_2078 = &local_2034" identifier = (pointer_expression "&local_2034" & identifier)) ;) (expression_statement "piStack_2074 = (int *)local_1030;" (assignment_expression "piStack_2074 = (int *)local_1030" identifier = (cast_expression "(int *)local_1030" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStack_206c = puVar18;" (assignment_expression "puStack_206c = puVar18" identifier = identifier) ;) (expression_statement "piStack_2068 = piVar3;" (assignment_expression "piStack_2068 = piVar3" identifier = identifier) ;) (expression_statement "pcStack_2064 = pcVar21;" (assignment_expression "pcStack_2064 = pcVar21" identifier = identifier) ;) (if_statement "if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }" if (parenthesized_expression "((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0))" ( (binary_expression "(iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(ppuVar11 == (undefined1 **)0x0)" ( (binary_expression "ppuVar11 == (undefined1 **)0x0" identifier == (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }" { (expression_statement "iVar4 = *(int *)(puVar20 + 0x25930);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x25930)" identifier = (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) ))))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (if_statement "if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }" if (parenthesized_expression "(iStack_2084 == *piVar16)" ( (binary_expression "iStack_2084 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }" { comment comment (expression_statement "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);" (assignment_expression "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af0))" ( (pointer_expression "**(code **)(puVar20 + 0x25af0)" * (pointer_expression "*(code **)(puVar20 + 0x25af0)" * (cast_expression "(code **)(puVar20 + 0x25af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af0)" ( (binary_expression "puVar20 + 0x25af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x25930) + -0x4ab0)" ( (binary_expression "*(int *)(puVar20 + 0x25930) + -0x4ab0" (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return piVar13;" return identifier ;) })) (goto_statement "goto LAB_000241f4;" goto statement_identifier ;) })) (expression_statement "piVar13 = (int *)0x6;" (assignment_expression "piVar13 = (int *)0x6" identifier = (cast_expression "(int *)0x6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar12 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar12 = (undefined1 **)&DAT_00000080" identifier = (cast_expression "(undefined1 **)&DAT_00000080" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000080" & identifier))) ;) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25a1c))();" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25a1c))()" identifier = (call_expression "(**(code **)(puVar20 + 0x25a1c))()" (parenthesized_expression "(**(code **)(puVar20 + 0x25a1c))" ( (pointer_expression "**(code **)(puVar20 + 0x25a1c)" * (pointer_expression "*(code **)(puVar20 + 0x25a1c)" * (cast_expression "(code **)(puVar20 + 0x25a1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25a1c)" ( (binary_expression "puVar20 + 0x25a1c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" if (parenthesized_expression "(iVar19 == 4)" ( (binary_expression "iVar19 == 4" identifier == number_literal) )) (compound_statement "{\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" { (if_statement "if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }" if (parenthesized_expression "(CONCAT11(uStack_2181,uStack_2182) != 0)" ( (binary_expression "CONCAT11(uStack_2181,uStack_2182) != 0" (call_expression "CONCAT11(uStack_2181,uStack_2182)" identifier (argument_list "(uStack_2181,uStack_2182)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }" { (expression_statement "piVar13 = (int *)0x6;" (assignment_expression "piVar13 = (int *)0x6" identifier = (cast_expression "(int *)0x6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar12 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar12 = (undefined1 **)&DAT_00000080" identifier = (cast_expression "(undefined1 **)&DAT_00000080" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000080" & identifier))) ;) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" identifier = (call_expression "(**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" (parenthesized_expression "(**(code **)(puVar20 + 0x25a1c))" ( (pointer_expression "**(code **)(puVar20 + 0x25a1c)" * (pointer_expression "*(code **)(puVar20 + 0x25a1c)" * (cast_expression "(code **)(puVar20 + 0x25a1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25a1c)" ( (binary_expression "puVar20 + 0x25a1c" identifier + number_literal) ))))) )) (argument_list "(iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" ( identifier , number_literal , number_literal , (binary_expression "(uint)ppuVar11 | 0x300" (cast_expression "(uint)ppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) , (call_expression "CONCAT11(uStack_2181,uStack_2182)" identifier (argument_list "(uStack_2181,uStack_2182)" ( identifier , identifier ))) , (pointer_expression "&bStack_2184" & identifier) , number_literal , number_literal )))) ;) (if_statement "if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }" if (parenthesized_expression "(((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03'))" ( (binary_expression "((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')" (parenthesized_expression "((1 < iVar19) && (1 < bStack_2184))" ( (binary_expression "(1 < iVar19) && (1 < bStack_2184)" (parenthesized_expression "(1 < iVar19)" ( (binary_expression "1 < iVar19" number_literal < identifier) )) && (parenthesized_expression "(1 < bStack_2184)" ( (binary_expression "1 < bStack_2184" number_literal < identifier) ))) )) && (parenthesized_expression "(cStack_2183 == '\x03')" ( (binary_expression "cStack_2183 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }" { (expression_statement "iVar8 = (int)(bStack_2184 - 2) >> 1;" (assignment_expression "iVar8 = (int)(bStack_2184 - 2) >> 1" identifier = (binary_expression "(int)(bStack_2184 - 2) >> 1" (cast_expression "(int)(bStack_2184 - 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(bStack_2184 - 2)" ( (binary_expression "bStack_2184 - 2" identifier - number_literal) ))) >> number_literal)) ;) (expression_statement "puStack_2194 = &uStack_2182;" (assignment_expression "puStack_2194 = &uStack_2182" identifier = (pointer_expression "&uStack_2182" & identifier)) ;) (expression_statement "uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);" (assignment_expression "uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe)" identifier = (call_expression "(**(code **)(puVar20 + 0x25a38))(0xe)" (parenthesized_expression "(**(code **)(puVar20 + 0x25a38))" ( (pointer_expression "**(code **)(puVar20 + 0x25a38)" * (pointer_expression "*(code **)(puVar20 + 0x25a38)" * (cast_expression "(code **)(puVar20 + 0x25a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25a38)" ( (binary_expression "puVar20 + 0x25a38" identifier + number_literal) ))))) )) (argument_list "(0xe)" ( number_literal )))) ;) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" identifier = (call_expression "(**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" (parenthesized_expression "(**(code **)(puVar20 + 0x25aac))" ( (pointer_expression "**(code **)(puVar20 + 0x25aac)" * (pointer_expression "*(code **)(puVar20 + 0x25aac)" * (cast_expression "(code **)(puVar20 + 0x25aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25aac)" ( (binary_expression "puVar20 + 0x25aac" identifier + number_literal) ))))) )) (argument_list "(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x25930) + 0x1a30" (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" if (parenthesized_expression "(iVar19 == -1)" ( (binary_expression "iVar19 == -1" identifier == number_literal) )) (compound_statement "{\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }" { (labeled_statement "LAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);" statement_identifier : (expression_statement "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);" (assignment_expression "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25ab0))(0x7f)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25ab0))(0x7f)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab0))" ( (pointer_expression "**(code **)(puVar20 + 0x25ab0)" * (pointer_expression "*(code **)(puVar20 + 0x25ab0)" * (cast_expression "(code **)(puVar20 + 0x25ab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ab0)" ( (binary_expression "puVar20 + 0x25ab0" identifier + number_literal) ))))) )) (argument_list "(0x7f)" ( number_literal ))))) ;)) (expression_statement "piVar13 = piVar3;" (assignment_expression "piVar13 = piVar3" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);" (assignment_expression "iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f)" identifier = (call_expression "(**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ad0))" ( (pointer_expression "**(code **)(puVar20 + 0x25ad0)" * (pointer_expression "*(code **)(puVar20 + 0x25ad0)" * (cast_expression "(code **)(puVar20 + 0x25ad0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ad0)" ( (binary_expression "puVar20 + 0x25ad0" identifier + number_literal) ))))) )) (argument_list "(iVar4,ppuVar11,piVar3,0x7f)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (if_statement "if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }" { (expression_statement "(**(code **)(puVar20 + 0x25af4))(piVar3);" (call_expression "(**(code **)(puVar20 + 0x25af4))(piVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af4))" ( (pointer_expression "**(code **)(puVar20 + 0x25af4)" * (pointer_expression "*(code **)(puVar20 + 0x25af4)" * (cast_expression "(code **)(puVar20 + 0x25af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af4)" ( (binary_expression "puVar20 + 0x25af4" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) }) (else_clause "else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" else (compound_statement "{\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" { (expression_statement "iStack_218c = iVar8 << 1;" (assignment_expression "iStack_218c = iVar8 << 1" identifier = (binary_expression "iVar8 << 1" identifier << number_literal)) ;) (expression_statement "iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();" (assignment_expression "iStack_2188 = (**(code **)(puVar20 + 0x25ab8))()" identifier = (call_expression "(**(code **)(puVar20 + 0x25ab8))()" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab8))" ( (pointer_expression "**(code **)(puVar20 + 0x25ab8)" * (pointer_expression "*(code **)(puVar20 + 0x25ab8)" * (cast_expression "(code **)(puVar20 + 0x25ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ab8)" ( (binary_expression "puVar20 + 0x25ab8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iStack_2188 = iVar8 * iStack_2188;" (assignment_expression "iStack_2188 = iVar8 * iStack_2188" identifier = (binary_expression "iVar8 * iStack_2188" identifier * identifier)) ;) (expression_statement "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);" (assignment_expression "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab0))" ( (pointer_expression "**(code **)(puVar20 + 0x25ab0)" * (pointer_expression "*(code **)(puVar20 + 0x25ab0)" * (cast_expression "(code **)(puVar20 + 0x25ab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ab0)" ( (binary_expression "puVar20 + 0x25ab0" identifier + number_literal) ))))) )) (argument_list "(iStack_2188 + 1)" ( (binary_expression "iStack_2188 + 1" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = &iStack_218c;" (assignment_expression "piVar13 = &iStack_218c" identifier = (pointer_expression "&iStack_218c" & identifier)) ;) (expression_statement "ppuVar12 = &puStack_2194;" (assignment_expression "ppuVar12 = &puStack_2194" identifier = (pointer_expression "&puStack_2194" & identifier)) ;) (expression_statement "piStack_2190 = piVar3;" (assignment_expression "piStack_2190 = piVar3" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);" (assignment_expression "iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" identifier = (call_expression "(**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" (parenthesized_expression "(**(code **)(puVar20 + 0x25b10))" ( (pointer_expression "**(code **)(puVar20 + 0x25b10)" * (pointer_expression "*(code **)(puVar20 + 0x25b10)" * (cast_expression "(code **)(puVar20 + 0x25b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25b10)" ( (binary_expression "puVar20 + 0x25b10" identifier + number_literal) ))))) )) (argument_list "(iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" ( identifier , identifier , identifier , (pointer_expression "&piStack_2190" & identifier) , (pointer_expression "&iStack_2188" & identifier) )))) ;) (expression_statement "(**(code **)(puVar20 + 0x25b14))(iVar19);" (call_expression "(**(code **)(puVar20 + 0x25b14))(iVar19)" (parenthesized_expression "(**(code **)(puVar20 + 0x25b14))" ( (pointer_expression "**(code **)(puVar20 + 0x25b14)" * (pointer_expression "*(code **)(puVar20 + 0x25b14)" * (cast_expression "(code **)(puVar20 + 0x25b14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25b14)" ( (binary_expression "puVar20 + 0x25b14" identifier + number_literal) ))))) )) (argument_list "(iVar19)" ( identifier ))) ;) (if_statement "if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }" { (expression_statement "(**(code **)(puVar20 + 0x25af4))(piVar3);" (call_expression "(**(code **)(puVar20 + 0x25af4))(piVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af4))" ( (pointer_expression "**(code **)(puVar20 + 0x25af4)" * (pointer_expression "*(code **)(puVar20 + 0x25af4)" * (cast_expression "(code **)(puVar20 + 0x25af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af4)" ( (binary_expression "puVar20 + 0x25af4" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (goto_statement "goto LAB_000241a8;" goto statement_identifier ;) })) (expression_statement "*(char *)piStack_2190 = '\0';" (assignment_expression "*(char *)piStack_2190 = '\0'" (pointer_expression "*(char *)piStack_2190" * (cast_expression "(char *)piStack_2190" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (piVar3 == (int *)0x0) goto LAB_000241a8;" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000241a8;" goto statement_identifier ;)) }))) (expression_statement "iVar4 = iStack_2084;" (assignment_expression "iVar4 = iStack_2084" identifier = identifier) ;) (if_statement "if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }" if (parenthesized_expression "(iStack_2084 == *piVar16)" ( (binary_expression "iStack_2084 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n          return piVar3;\n        }" { (return_statement "return piVar3;" return identifier ;) })) (goto_statement "goto LAB_000241f4;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);" statement_identifier : (expression_statement "iVar4 = *(int *)(puVar20 + 0x25930);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x25930)" identifier = (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) ))))) ;)) (if_statement "if (iStack_2084 == *piVar16) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }" if (parenthesized_expression "(iStack_2084 == *piVar16)" ( (binary_expression "iStack_2084 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }" { comment comment (expression_statement "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);" (assignment_expression "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af0))" ( (pointer_expression "**(code **)(puVar20 + 0x25af0)" * (pointer_expression "*(code **)(puVar20 + 0x25af0)" * (cast_expression "(code **)(puVar20 + 0x25af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af0)" ( (binary_expression "puVar20 + 0x25af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x25930) + 0x1a28)" ( (binary_expression "*(int *)(puVar20 + 0x25930) + 0x1a28" (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return piVar13;" return identifier ;) })) (labeled_statement "LAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);" statement_identifier : (expression_statement "pcVar21 = *(code **)(puVar20 + 0x25adc);" (assignment_expression "pcVar21 = *(code **)(puVar20 + 0x25adc)" identifier = (pointer_expression "*(code **)(puVar20 + 0x25adc)" * (cast_expression "(code **)(puVar20 + 0x25adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25adc)" ( (binary_expression "puVar20 + 0x25adc" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar3 = (int *)_DT_INIT();" (assignment_expression "piVar3 = (int *)_DT_INIT()" identifier = (cast_expression "(int *)_DT_INIT()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "_DT_INIT()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar17 = *(undefined4 **)(pcVar21 + 0x25718);" (assignment_expression "puVar17 = *(undefined4 **)(pcVar21 + 0x25718)" identifier = (pointer_expression "*(undefined4 **)(pcVar21 + 0x25718)" * (cast_expression "(undefined4 **)(pcVar21 + 0x25718)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x25718)" ( (binary_expression "pcVar21 + 0x25718" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;" (assignment_expression "iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2" identifier = (binary_expression "*(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2" (binary_expression "*(int *)(pcVar21 + 0x25718) - (int)puVar17" (pointer_expression "*(int *)(pcVar21 + 0x25718)" * (cast_expression "(int *)(pcVar21 + 0x25718)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x25718)" ( (binary_expression "pcVar21 + 0x25718" identifier + number_literal) )))) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }" { (do_statement "do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);" do (compound_statement "{\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);" (assignment_expression "piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" identifier = (cast_expression "(int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" (parenthesized_expression "(*(code *)*puVar17)" ( (pointer_expression "*(code *)*puVar17" * (cast_expression "(code *)*puVar17" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) )) (argument_list "(iVar4,ppuVar12,piVar13)" ( identifier , identifier , identifier ))))) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != iVar19)" ( (binary_expression "iVar8 != iVar19" identifier != identifier) )) ;) })) (return_statement "return piVar3;" return identifier ;) (labeled_statement "LAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" statement_identifier : (while_statement "while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" while (parenthesized_expression "(local_2034 == '/')" ( (binary_expression "local_2034 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" { (expression_statement "local_2034 = pcVar9[2];" (assignment_expression "local_2034 = pcVar9[2]" identifier = (subscript_expression "pcVar9[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(char *)piVar13 = '/';" (assignment_expression "*(char *)piVar13 = '/'" (pointer_expression "*(char *)piVar13" * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar5 = pcVar6 + -1;" (assignment_expression "pcVar5 = pcVar6 + -1" identifier = (binary_expression "pcVar6 + -1" identifier + number_literal)) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) (labeled_statement "code_r0x00023e64:\n  local_2034 = pcVar9[2];" statement_identifier : (expression_statement "local_2034 = pcVar9[2];" (assignment_expression "local_2034 = pcVar9[2]" identifier = (subscript_expression "pcVar9[2]" identifier [ number_literal ])) ;)) (expression_statement "pcVar9 = pcVar9 + 2;" (assignment_expression "pcVar9 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) })))
(translation_unit "libusb_device * get_usb_device(libusb_context *ctx,char *path)\n\n{\n  libusb_device *plVar1;\n  undefined *puVar2;\n  int iVar3;\n  libusb_device *plVar4;\n  int iVar5;\n  libusb_device *plVar6;\n  libusb_device *plVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  libusb_device lVar13;\n  libusb_device *plVar11;\n  EVP_PKEY_CTX *ctx_00;\n  undefined1 **ppuVar14;\n  undefined1 **ppuVar15;\n  size_t in_a2;\n  libusb_device *plVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  undefined1 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined1 *puStack_2194;\n  libusb_device *plStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  EVP_PKEY_CTX *pEStack_2084;\n  libusb_device *plStack_207c;\n  char *pcStack_2078;\n  libusb_device *plStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  libusb_device *plStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  libusb_device *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  libusb_device **list;\n  char device_path [4097];\n  char absolute_path [4097];\n  libusb_device *plVar12;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar19 = &DAT_0000002f;\n  iVar3 = *(int *)PTR___stack_chk_guard_00049a28;\n  readlink_recursive(path,device_path,in_a2);\n  absolute_path[0] = '\0';\n  pcVar10 = device_path;\n  if (device_path[0] == '/') {\n    plVar6 = (libusb_device *)0x1001;\n    plVar16 = (libusb_device *)absolute_path;\n    plVar4 = (libusb_device *)absolute_path;\n  }\n  else {\n    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);\n    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);\n    plVar6 = (libusb_device *)(0x1000 - iVar5);\n    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;\n    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);\n  }\nLAB_00023d1c:\n  plVar7 = plVar6;\n  lVar13 = (libusb_device)device_path[0];\n  if ((libusb_device)device_path[0] != (libusb_device)0x0) {\n    do {\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    } while( true );\n  }\n  *plVar16 = (libusb_device)0x0;\n  iVar5 = (*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list);\n  if (iVar5 < 1) {\nLAB_00023ea0:\n    plVar6 = (libusb_device *)0x0;\n  }\n  else {\n    iVar20 = 0;\n    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);\n    puVar19 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }\n    plVar6 = list[iVar20];\n  }\n  ppuVar14 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(list);\n  if (iVar3 == *(int *)puVar2) {\n    return plVar6;\n  }\n  pcVar22 = get_dev_string;\n  puVar21 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar17 = *(int **)(puVar21 + 0x25ae8);\n  puStack_2070 = puVar2;\n  pEStack_2084 = (EVP_PKEY_CTX *)*piVar17;\n  plStack_207c = plVar6;\n  pcStack_2078 = device_path;\n  plStack_2074 = (libusb_device *)absolute_path;\n  puStack_206c = puVar19;\n  plStack_2068 = plVar4;\n  pcStack_2064 = pcVar22;\n  if ((iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0)) {\n    ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n    ppuVar15 = ppuVar14;\n    if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }\n    goto LAB_000241f4;\n  }\n  plVar16 = (libusb_device *)0x6;\n  ppuVar15 = (undefined1 **)&DAT_00000080;\n  iVar5 = (**(code **)(puVar21 + 0x25a1c))();\n  if (iVar5 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n  if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);\n    return plVar16;\n  }\nLAB_000241f4:\n  pcVar22 = *(code **)(puVar21 + 0x25adc);\n  (*pcVar22)();\n  plVar4 = (libusb_device *)_init(ctx_00);\n  puVar18 = *(undefined4 **)(pcVar22 + 0x25718);\n  iVar5 = *(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2;\n  iVar3 = 0;\n  if (iVar5 != 0) {\n    do {\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    } while (iVar5 != iVar3);\n  }\n  return plVar4;\nLAB_00023e2c:\n  while ((libusb_device)device_path[0] == (libusb_device)0x2f) {\n    device_path[0] = *(char *)(pcVar10 + 2);\n    pcVar10 = pcVar10 + 1;\n  }\n  *plVar16 = (libusb_device)0x2f;\n  plVar6 = plVar7 + -1;\n  pcVar10 = pcVar10 + 1;\n  plVar16 = plVar16 + 1;\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  device_path[0] = *(char *)(pcVar10 + 2);\n  pcVar10 = pcVar10 + 2;\n  goto LAB_00023d1c;\n}\n\n" (function_definition "libusb_device * get_usb_device(libusb_context *ctx,char *path)\n\n{\n  libusb_device *plVar1;\n  undefined *puVar2;\n  int iVar3;\n  libusb_device *plVar4;\n  int iVar5;\n  libusb_device *plVar6;\n  libusb_device *plVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  libusb_device lVar13;\n  libusb_device *plVar11;\n  EVP_PKEY_CTX *ctx_00;\n  undefined1 **ppuVar14;\n  undefined1 **ppuVar15;\n  size_t in_a2;\n  libusb_device *plVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  undefined1 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined1 *puStack_2194;\n  libusb_device *plStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  EVP_PKEY_CTX *pEStack_2084;\n  libusb_device *plStack_207c;\n  char *pcStack_2078;\n  libusb_device *plStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  libusb_device *plStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  libusb_device *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  libusb_device **list;\n  char device_path [4097];\n  char absolute_path [4097];\n  libusb_device *plVar12;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar19 = &DAT_0000002f;\n  iVar3 = *(int *)PTR___stack_chk_guard_00049a28;\n  readlink_recursive(path,device_path,in_a2);\n  absolute_path[0] = '\0';\n  pcVar10 = device_path;\n  if (device_path[0] == '/') {\n    plVar6 = (libusb_device *)0x1001;\n    plVar16 = (libusb_device *)absolute_path;\n    plVar4 = (libusb_device *)absolute_path;\n  }\n  else {\n    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);\n    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);\n    plVar6 = (libusb_device *)(0x1000 - iVar5);\n    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;\n    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);\n  }\nLAB_00023d1c:\n  plVar7 = plVar6;\n  lVar13 = (libusb_device)device_path[0];\n  if ((libusb_device)device_path[0] != (libusb_device)0x0) {\n    do {\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    } while( true );\n  }\n  *plVar16 = (libusb_device)0x0;\n  iVar5 = (*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list);\n  if (iVar5 < 1) {\nLAB_00023ea0:\n    plVar6 = (libusb_device *)0x0;\n  }\n  else {\n    iVar20 = 0;\n    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);\n    puVar19 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }\n    plVar6 = list[iVar20];\n  }\n  ppuVar14 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(list);\n  if (iVar3 == *(int *)puVar2) {\n    return plVar6;\n  }\n  pcVar22 = get_dev_string;\n  puVar21 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar17 = *(int **)(puVar21 + 0x25ae8);\n  puStack_2070 = puVar2;\n  pEStack_2084 = (EVP_PKEY_CTX *)*piVar17;\n  plStack_207c = plVar6;\n  pcStack_2078 = device_path;\n  plStack_2074 = (libusb_device *)absolute_path;\n  puStack_206c = puVar19;\n  plStack_2068 = plVar4;\n  pcStack_2064 = pcVar22;\n  if ((iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0)) {\n    ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n    ppuVar15 = ppuVar14;\n    if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }\n    goto LAB_000241f4;\n  }\n  plVar16 = (libusb_device *)0x6;\n  ppuVar15 = (undefined1 **)&DAT_00000080;\n  iVar5 = (**(code **)(puVar21 + 0x25a1c))();\n  if (iVar5 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n  if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);\n    return plVar16;\n  }\nLAB_000241f4:\n  pcVar22 = *(code **)(puVar21 + 0x25adc);\n  (*pcVar22)();\n  plVar4 = (libusb_device *)_init(ctx_00);\n  puVar18 = *(undefined4 **)(pcVar22 + 0x25718);\n  iVar5 = *(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2;\n  iVar3 = 0;\n  if (iVar5 != 0) {\n    do {\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    } while (iVar5 != iVar3);\n  }\n  return plVar4;\nLAB_00023e2c:\n  while ((libusb_device)device_path[0] == (libusb_device)0x2f) {\n    device_path[0] = *(char *)(pcVar10 + 2);\n    pcVar10 = pcVar10 + 1;\n  }\n  *plVar16 = (libusb_device)0x2f;\n  plVar6 = plVar7 + -1;\n  pcVar10 = pcVar10 + 1;\n  plVar16 = plVar16 + 1;\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  device_path[0] = *(char *)(pcVar10 + 2);\n  pcVar10 = pcVar10 + 2;\n  goto LAB_00023d1c;\n}" type_identifier (pointer_declarator "* get_usb_device(libusb_context *ctx,char *path)" * (function_declarator "get_usb_device(libusb_context *ctx,char *path)" identifier (parameter_list "(libusb_context *ctx,char *path)" ( (parameter_declaration "libusb_context *ctx" type_identifier (pointer_declarator "*ctx" * identifier)) , (parameter_declaration "char *path" primitive_type (pointer_declarator "*path" * identifier)) )))) (compound_statement "{\n  libusb_device *plVar1;\n  undefined *puVar2;\n  int iVar3;\n  libusb_device *plVar4;\n  int iVar5;\n  libusb_device *plVar6;\n  libusb_device *plVar7;\n  undefined4 uVar8;\n  int iVar9;\n  char *pcVar10;\n  libusb_device lVar13;\n  libusb_device *plVar11;\n  EVP_PKEY_CTX *ctx_00;\n  undefined1 **ppuVar14;\n  undefined1 **ppuVar15;\n  size_t in_a2;\n  libusb_device *plVar16;\n  int *piVar17;\n  undefined4 *puVar18;\n  undefined1 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  undefined1 *puStack_2194;\n  libusb_device *plStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  EVP_PKEY_CTX *pEStack_2084;\n  libusb_device *plStack_207c;\n  char *pcStack_2078;\n  libusb_device *plStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  libusb_device *plStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  libusb_device *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  libusb_device **list;\n  char device_path [4097];\n  char absolute_path [4097];\n  libusb_device *plVar12;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar19 = &DAT_0000002f;\n  iVar3 = *(int *)PTR___stack_chk_guard_00049a28;\n  readlink_recursive(path,device_path,in_a2);\n  absolute_path[0] = '\0';\n  pcVar10 = device_path;\n  if (device_path[0] == '/') {\n    plVar6 = (libusb_device *)0x1001;\n    plVar16 = (libusb_device *)absolute_path;\n    plVar4 = (libusb_device *)absolute_path;\n  }\n  else {\n    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);\n    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);\n    plVar6 = (libusb_device *)(0x1000 - iVar5);\n    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;\n    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);\n  }\nLAB_00023d1c:\n  plVar7 = plVar6;\n  lVar13 = (libusb_device)device_path[0];\n  if ((libusb_device)device_path[0] != (libusb_device)0x0) {\n    do {\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    } while( true );\n  }\n  *plVar16 = (libusb_device)0x0;\n  iVar5 = (*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list);\n  if (iVar5 < 1) {\nLAB_00023ea0:\n    plVar6 = (libusb_device *)0x0;\n  }\n  else {\n    iVar20 = 0;\n    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);\n    puVar19 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }\n    plVar6 = list[iVar20];\n  }\n  ppuVar14 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(list);\n  if (iVar3 == *(int *)puVar2) {\n    return plVar6;\n  }\n  pcVar22 = get_dev_string;\n  puVar21 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar17 = *(int **)(puVar21 + 0x25ae8);\n  puStack_2070 = puVar2;\n  pEStack_2084 = (EVP_PKEY_CTX *)*piVar17;\n  plStack_207c = plVar6;\n  pcStack_2078 = device_path;\n  plStack_2074 = (libusb_device *)absolute_path;\n  puStack_206c = puVar19;\n  plStack_2068 = plVar4;\n  pcStack_2064 = pcVar22;\n  if ((iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0)) {\n    ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n    ppuVar15 = ppuVar14;\n    if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }\n    goto LAB_000241f4;\n  }\n  plVar16 = (libusb_device *)0x6;\n  ppuVar15 = (undefined1 **)&DAT_00000080;\n  iVar5 = (**(code **)(puVar21 + 0x25a1c))();\n  if (iVar5 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n  if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);\n    return plVar16;\n  }\nLAB_000241f4:\n  pcVar22 = *(code **)(puVar21 + 0x25adc);\n  (*pcVar22)();\n  plVar4 = (libusb_device *)_init(ctx_00);\n  puVar18 = *(undefined4 **)(pcVar22 + 0x25718);\n  iVar5 = *(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2;\n  iVar3 = 0;\n  if (iVar5 != 0) {\n    do {\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    } while (iVar5 != iVar3);\n  }\n  return plVar4;\nLAB_00023e2c:\n  while ((libusb_device)device_path[0] == (libusb_device)0x2f) {\n    device_path[0] = *(char *)(pcVar10 + 2);\n    pcVar10 = pcVar10 + 1;\n  }\n  *plVar16 = (libusb_device)0x2f;\n  plVar6 = plVar7 + -1;\n  pcVar10 = pcVar10 + 1;\n  plVar16 = plVar16 + 1;\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  device_path[0] = *(char *)(pcVar10 + 2);\n  pcVar10 = pcVar10 + 2;\n  goto LAB_00023d1c;\n}" { (declaration "libusb_device *plVar1;" type_identifier (pointer_declarator "*plVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "libusb_device *plVar4;" type_identifier (pointer_declarator "*plVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "libusb_device *plVar6;" type_identifier (pointer_declarator "*plVar6" * identifier) ;) (declaration "libusb_device *plVar7;" type_identifier (pointer_declarator "*plVar7" * identifier) ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "libusb_device lVar13;" type_identifier identifier ;) (declaration "libusb_device *plVar11;" type_identifier (pointer_declarator "*plVar11" * identifier) ;) (declaration "EVP_PKEY_CTX *ctx_00;" type_identifier (pointer_declarator "*ctx_00" * identifier) ;) (declaration "undefined1 **ppuVar14;" type_identifier (pointer_declarator "**ppuVar14" * (pointer_declarator "*ppuVar14" * identifier)) ;) (declaration "undefined1 **ppuVar15;" type_identifier (pointer_declarator "**ppuVar15" * (pointer_declarator "*ppuVar15" * identifier)) ;) (declaration "size_t in_a2;" primitive_type identifier ;) (declaration "libusb_device *plVar16;" type_identifier (pointer_declarator "*plVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "undefined4 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined1 *puStack_2194;" type_identifier (pointer_declarator "*puStack_2194" * identifier) ;) (declaration "libusb_device *plStack_2190;" type_identifier (pointer_declarator "*plStack_2190" * identifier) ;) (declaration "int iStack_218c;" primitive_type identifier ;) (declaration "int iStack_2188;" primitive_type identifier ;) (declaration "byte bStack_2184;" type_identifier identifier ;) (declaration "char cStack_2183;" primitive_type identifier ;) (declaration "undefined1 uStack_2182;" type_identifier identifier ;) (declaration "undefined1 uStack_2181;" type_identifier identifier ;) (declaration "EVP_PKEY_CTX *pEStack_2084;" type_identifier (pointer_declarator "*pEStack_2084" * identifier) ;) (declaration "libusb_device *plStack_207c;" type_identifier (pointer_declarator "*plStack_207c" * identifier) ;) (declaration "char *pcStack_2078;" primitive_type (pointer_declarator "*pcStack_2078" * identifier) ;) (declaration "libusb_device *plStack_2074;" type_identifier (pointer_declarator "*plStack_2074" * identifier) ;) (declaration "undefined *puStack_2070;" type_identifier (pointer_declarator "*puStack_2070" * identifier) ;) (declaration "undefined1 *puStack_206c;" type_identifier (pointer_declarator "*puStack_206c" * identifier) ;) (declaration "libusb_device *plStack_2068;" type_identifier (pointer_declarator "*plStack_2068" * identifier) ;) (declaration "code *pcStack_2064;" type_identifier (pointer_declarator "*pcStack_2064" * identifier) ;) (declaration "undefined1 *local_2050;" type_identifier (pointer_declarator "*local_2050" * identifier) ;) (declaration "libusb_device *local_204c;" type_identifier (pointer_declarator "*local_204c" * identifier) ;) (declaration "undefined4 local_2048;" type_identifier identifier ;) (declaration "undefined4 local_2044;" type_identifier identifier ;) (declaration "libusb_device **list;" type_identifier (pointer_declarator "**list" * (pointer_declarator "*list" * identifier)) ;) (declaration "char device_path [4097];" primitive_type (array_declarator "device_path [4097]" identifier [ number_literal ]) ;) (declaration "char absolute_path [4097];" primitive_type (array_declarator "absolute_path [4097]" identifier [ number_literal ]) ;) (declaration "libusb_device *plVar12;" type_identifier (pointer_declarator "*plVar12" * identifier) ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00049a28;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00049a28" identifier = identifier) ;) (expression_statement "puVar19 = &DAT_0000002f;" (assignment_expression "puVar19 = &DAT_0000002f" identifier = (pointer_expression "&DAT_0000002f" & identifier)) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_00049a28;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_00049a28" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00049a28" * (cast_expression "(int *)PTR___stack_chk_guard_00049a28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "readlink_recursive(path,device_path,in_a2);" (call_expression "readlink_recursive(path,device_path,in_a2)" identifier (argument_list "(path,device_path,in_a2)" ( identifier , identifier , identifier ))) ;) (expression_statement "absolute_path[0] = '\0';" (assignment_expression "absolute_path[0] = '\0'" (subscript_expression "absolute_path[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar10 = device_path;" (assignment_expression "pcVar10 = device_path" identifier = identifier) ;) (if_statement "if (device_path[0] == '/') {\n    plVar6 = (libusb_device *)0x1001;\n    plVar16 = (libusb_device *)absolute_path;\n    plVar4 = (libusb_device *)absolute_path;\n  }\n  else {\n    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);\n    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);\n    plVar6 = (libusb_device *)(0x1000 - iVar5);\n    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;\n    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);\n  }" if (parenthesized_expression "(device_path[0] == '/')" ( (binary_expression "device_path[0] == '/'" (subscript_expression "device_path[0]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n    plVar6 = (libusb_device *)0x1001;\n    plVar16 = (libusb_device *)absolute_path;\n    plVar4 = (libusb_device *)absolute_path;\n  }" { (expression_statement "plVar6 = (libusb_device *)0x1001;" (assignment_expression "plVar6 = (libusb_device *)0x1001" identifier = (cast_expression "(libusb_device *)0x1001" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "plVar16 = (libusb_device *)absolute_path;" (assignment_expression "plVar16 = (libusb_device *)absolute_path" identifier = (cast_expression "(libusb_device *)absolute_path" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "plVar4 = (libusb_device *)absolute_path;" (assignment_expression "plVar4 = (libusb_device *)absolute_path" identifier = (cast_expression "(libusb_device *)absolute_path" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);\n    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);\n    plVar6 = (libusb_device *)(0x1000 - iVar5);\n    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;\n    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);\n  }" else (compound_statement "{\n    plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);\n    iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);\n    plVar6 = (libusb_device *)(0x1000 - iVar5);\n    ((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;\n    plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);\n  }" { (expression_statement "plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001);" (assignment_expression "plVar4 = (libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001)" identifier = (cast_expression "(libusb_device *)(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getcwd_000499bc)((libusb_device *)absolute_path,0x1001)" (parenthesized_expression "(*(code *)PTR_getcwd_000499bc)" ( (pointer_expression "*(code *)PTR_getcwd_000499bc" * (cast_expression "(code *)PTR_getcwd_000499bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((libusb_device *)absolute_path,0x1001)" ( (cast_expression "(libusb_device *)absolute_path" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (expression_statement "iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4);" (assignment_expression "iVar5 = (*(code *)PTR_strlen_000499b4)(plVar4)" identifier = (call_expression "(*(code *)PTR_strlen_000499b4)(plVar4)" (parenthesized_expression "(*(code *)PTR_strlen_000499b4)" ( (pointer_expression "*(code *)PTR_strlen_000499b4" * (cast_expression "(code *)PTR_strlen_000499b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(plVar4)" ( identifier )))) ;) (expression_statement "plVar6 = (libusb_device *)(0x1000 - iVar5);" (assignment_expression "plVar6 = (libusb_device *)(0x1000 - iVar5)" identifier = (cast_expression "(libusb_device *)(0x1000 - iVar5)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x1000 - iVar5)" ( (binary_expression "0x1000 - iVar5" number_literal - identifier) )))) ;) (expression_statement "((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f;" (assignment_expression "((libusb_device *)absolute_path)[iVar5] = (libusb_device)0x2f" (subscript_expression "((libusb_device *)absolute_path)[iVar5]" (parenthesized_expression "((libusb_device *)absolute_path)" ( (cast_expression "(libusb_device *)absolute_path" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) [ identifier ]) = (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) ;) (expression_statement "plVar16 = (libusb_device *)(absolute_path + iVar5 + 1);" (assignment_expression "plVar16 = (libusb_device *)(absolute_path + iVar5 + 1)" identifier = (cast_expression "(libusb_device *)(absolute_path + iVar5 + 1)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(absolute_path + iVar5 + 1)" ( (binary_expression "absolute_path + iVar5 + 1" (binary_expression "absolute_path + iVar5" identifier + identifier) + number_literal) )))) ;) }))) (labeled_statement "LAB_00023d1c:\n  plVar7 = plVar6;" statement_identifier : (expression_statement "plVar7 = plVar6;" (assignment_expression "plVar7 = plVar6" identifier = identifier) ;)) (expression_statement "lVar13 = (libusb_device)device_path[0];" (assignment_expression "lVar13 = (libusb_device)device_path[0]" identifier = (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ]))) ;) (if_statement "if ((libusb_device)device_path[0] != (libusb_device)0x0) {\n    do {\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    } while( true );\n  }" if (parenthesized_expression "((libusb_device)device_path[0] != (libusb_device)0x0)" ( (binary_expression "(libusb_device)device_path[0] != (libusb_device)0x0" (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ])) != (cast_expression "(libusb_device)0x0" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) (compound_statement "{\n    do {\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    } while( true );\n  }" { (do_statement "do {\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    } while( true );" do (compound_statement "{\n      if (plVar7 < (libusb_device *)0x2) break;\n      device_path[0] = *(char *)(pcVar10 + 1);\n      if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;\n      if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }\n      *plVar16 = lVar13;\n      pcVar10 = pcVar10 + 1;\n      plVar7 = plVar7 + -1;\n      plVar16 = plVar16 + 1;\n      lVar13 = (libusb_device)device_path[0];\n      if ((libusb_device)device_path[0] == (libusb_device)0x0) break;\n    }" { (if_statement "if (plVar7 < (libusb_device *)0x2) break;" if (parenthesized_expression "(plVar7 < (libusb_device *)0x2)" ( (binary_expression "plVar7 < (libusb_device *)0x2" identifier < (cast_expression "(libusb_device *)0x2" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "device_path[0] = *(char *)(pcVar10 + 1);" (assignment_expression "device_path[0] = *(char *)(pcVar10 + 1)" (subscript_expression "device_path[0]" identifier [ number_literal ]) = (pointer_expression "*(char *)(pcVar10 + 1)" * (cast_expression "(char *)(pcVar10 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) ))))) ;) (if_statement "if (lVar13 == (libusb_device)0x2f) goto LAB_00023e2c;" if (parenthesized_expression "(lVar13 == (libusb_device)0x2f)" ( (binary_expression "lVar13 == (libusb_device)0x2f" identifier == (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00023e2c;" goto statement_identifier ;)) (if_statement "if (lVar13 == (libusb_device)0x2e) {\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }" if (parenthesized_expression "(lVar13 == (libusb_device)0x2e)" ( (binary_expression "lVar13 == (libusb_device)0x2e" identifier == (cast_expression "(libusb_device)0x2e" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) (compound_statement "{\n        plVar6 = plVar7;\n        if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;\n      }" { (expression_statement "plVar6 = plVar7;" (assignment_expression "plVar6 = plVar7" identifier = identifier) ;) (if_statement "if ((libusb_device)device_path[0] == (libusb_device)0x2e) {\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;" if (parenthesized_expression "((libusb_device)device_path[0] == (libusb_device)0x2e)" ( (binary_expression "(libusb_device)device_path[0] == (libusb_device)0x2e" (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ])) == (cast_expression "(libusb_device)0x2e" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) (compound_statement "{\n          if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }\n        }" { (if_statement "if ((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)) {\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }" if (parenthesized_expression "((pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f))" ( (binary_expression "(pcVar10[2] == '/') && (plVar16[-1] == (libusb_device)0x2f)" (parenthesized_expression "(pcVar10[2] == '/')" ( (binary_expression "pcVar10[2] == '/'" (subscript_expression "pcVar10[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(plVar16[-1] == (libusb_device)0x2f)" ( (binary_expression "plVar16[-1] == (libusb_device)0x2f" (subscript_expression "plVar16[-1]" identifier [ number_literal ]) == (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) ))) )) (compound_statement "{\n            plVar12 = plVar16;\n            if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }\n            goto LAB_00023d1c;\n          }" { (expression_statement "plVar12 = plVar16;" (assignment_expression "plVar12 = plVar16" identifier = identifier) ;) (if_statement "if (plVar4 == plVar16 + -1) {\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }\n            else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }" if (parenthesized_expression "(plVar4 == plVar16 + -1)" ( (binary_expression "plVar4 == plVar16 + -1" identifier == (binary_expression "plVar16 + -1" identifier + number_literal)) )) (compound_statement "{\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n            }" { (expression_statement "device_path[0] = *(char *)(pcVar10 + 3);" (assignment_expression "device_path[0] = *(char *)(pcVar10 + 3)" (subscript_expression "device_path[0]" identifier [ number_literal ]) = (pointer_expression "*(char *)(pcVar10 + 3)" * (cast_expression "(char *)(pcVar10 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 3)" ( (binary_expression "pcVar10 + 3" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = pcVar10 + 3;" (assignment_expression "pcVar10 = pcVar10 + 3" identifier = (binary_expression "pcVar10 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }" else (compound_statement "{\n              do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);\n              device_path[0] = *(char *)(pcVar10 + 3);\n              pcVar10 = pcVar10 + 3;\n              plVar16 = plVar11;\n            }" { (do_statement "do {\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              } while (*plVar1 != (libusb_device)0x2f);" do (compound_statement "{\n                plVar11 = plVar12 + -1;\n                plVar1 = plVar12 + -2;\n                plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);\n                plVar12 = plVar11;\n              }" { (expression_statement "plVar11 = plVar12 + -1;" (assignment_expression "plVar11 = plVar12 + -1" identifier = (binary_expression "plVar12 + -1" identifier + number_literal)) ;) (expression_statement "plVar1 = plVar12 + -2;" (assignment_expression "plVar1 = plVar12 + -2" identifier = (binary_expression "plVar12 + -2" identifier + number_literal)) ;) (expression_statement "plVar6 = plVar16 + ((int)plVar7 - (int)plVar11);" (assignment_expression "plVar6 = plVar16 + ((int)plVar7 - (int)plVar11)" identifier = (binary_expression "plVar16 + ((int)plVar7 - (int)plVar11)" identifier + (parenthesized_expression "((int)plVar7 - (int)plVar11)" ( (binary_expression "(int)plVar7 - (int)plVar11" (cast_expression "(int)plVar7" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)plVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "plVar12 = plVar11;" (assignment_expression "plVar12 = plVar11" identifier = identifier) ;) }) while (parenthesized_expression "(*plVar1 != (libusb_device)0x2f)" ( (binary_expression "*plVar1 != (libusb_device)0x2f" (pointer_expression "*plVar1" * identifier) != (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) ;) (expression_statement "device_path[0] = *(char *)(pcVar10 + 3);" (assignment_expression "device_path[0] = *(char *)(pcVar10 + 3)" (subscript_expression "device_path[0]" identifier [ number_literal ]) = (pointer_expression "*(char *)(pcVar10 + 3)" * (cast_expression "(char *)(pcVar10 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 3)" ( (binary_expression "pcVar10 + 3" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = pcVar10 + 3;" (assignment_expression "pcVar10 = pcVar10 + 3" identifier = (binary_expression "pcVar10 + 3" identifier + number_literal)) ;) (expression_statement "plVar16 = plVar11;" (assignment_expression "plVar16 = plVar11" identifier = identifier) ;) }))) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) })) }) (else_clause "else if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;" else (if_statement "if (((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)) goto code_r0x00023e64;" if (parenthesized_expression "(((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f))" ( (binary_expression "((libusb_device)device_path[0] == (libusb_device)0x2f) &&\n                (plVar16[-1] == (libusb_device)0x2f)" (parenthesized_expression "((libusb_device)device_path[0] == (libusb_device)0x2f)" ( (binary_expression "(libusb_device)device_path[0] == (libusb_device)0x2f" (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ])) == (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) && (parenthesized_expression "(plVar16[-1] == (libusb_device)0x2f)" ( (binary_expression "plVar16[-1] == (libusb_device)0x2f" (subscript_expression "plVar16[-1]" identifier [ number_literal ]) == (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) ))) )) (goto_statement "goto code_r0x00023e64;" goto statement_identifier ;)))) })) (expression_statement "*plVar16 = lVar13;" (assignment_expression "*plVar16 = lVar13" (pointer_expression "*plVar16" * identifier) = identifier) ;) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "plVar7 = plVar7 + -1;" (assignment_expression "plVar7 = plVar7 + -1" identifier = (binary_expression "plVar7 + -1" identifier + number_literal)) ;) (expression_statement "plVar16 = plVar16 + 1;" (assignment_expression "plVar16 = plVar16 + 1" identifier = (binary_expression "plVar16 + 1" identifier + number_literal)) ;) (expression_statement "lVar13 = (libusb_device)device_path[0];" (assignment_expression "lVar13 = (libusb_device)device_path[0]" identifier = (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ]))) ;) (if_statement "if ((libusb_device)device_path[0] == (libusb_device)0x0) break;" if (parenthesized_expression "((libusb_device)device_path[0] == (libusb_device)0x0)" ( (binary_expression "(libusb_device)device_path[0] == (libusb_device)0x0" (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ])) == (cast_expression "(libusb_device)0x0" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "*plVar16 = (libusb_device)0x0;" (assignment_expression "*plVar16 = (libusb_device)0x0" (pointer_expression "*plVar16" * identifier) = (cast_expression "(libusb_device)0x0" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) ;) (expression_statement "iVar5 = (*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list);" (assignment_expression "iVar5 = (*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list)" identifier = (call_expression "(*(code *)PTR_libusb_get_device_list_000499b8)(ctx,&list)" (parenthesized_expression "(*(code *)PTR_libusb_get_device_list_000499b8)" ( (pointer_expression "*(code *)PTR_libusb_get_device_list_000499b8" * (cast_expression "(code *)PTR_libusb_get_device_list_000499b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(ctx,&list)" ( identifier , (pointer_expression "&list" & identifier) )))) ;) (if_statement "if (iVar5 < 1) {\nLAB_00023ea0:\n    plVar6 = (libusb_device *)0x0;\n  }\n  else {\n    iVar20 = 0;\n    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);\n    puVar19 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }\n    plVar6 = list[iVar20];\n  }" if (parenthesized_expression "(iVar5 < 1)" ( (binary_expression "iVar5 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00023ea0:\n    plVar6 = (libusb_device *)0x0;\n  }" { (labeled_statement "LAB_00023ea0:\n    plVar6 = (libusb_device *)0x0;" statement_identifier : (expression_statement "plVar6 = (libusb_device *)0x0;" (assignment_expression "plVar6 = (libusb_device *)0x0" identifier = (cast_expression "(libusb_device *)0x0" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n    iVar20 = 0;\n    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);\n    puVar19 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }\n    plVar6 = list[iVar20];\n  }" else (compound_statement "{\n    iVar20 = 0;\n    plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);\n    puVar19 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }\n    plVar6 = list[iVar20];\n  }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (expression_statement "plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08);" (assignment_expression "plVar4 = (libusb_device *)(PTR_s__00049870 + 0x1a08)" identifier = (cast_expression "(libusb_device *)(PTR_s__00049870 + 0x1a08)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__00049870 + 0x1a08)" ( (binary_expression "PTR_s__00049870 + 0x1a08" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR_s__00049870 + 0x1a18;" (assignment_expression "puVar19 = PTR_s__00049870 + 0x1a18" identifier = (binary_expression "PTR_s__00049870 + 0x1a18" identifier + number_literal)) ;) (while_statement "while( true ) {\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);\n      plVar16 = (libusb_device *)0x1;\n      local_2050 = puVar19;\n      local_204c = plVar4;\n      local_2048 = uVar8;\n      (*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);\n      iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);\n      if (iVar9 == 0) break;\n      iVar20 = iVar20 + 1;\n      if (iVar5 == iVar20) goto LAB_00023ea0;\n    }" { (expression_statement "uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20]);" (assignment_expression "uVar8 = (*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20])" identifier = (call_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)(list[iVar20])" (parenthesized_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)" ( (pointer_expression "*(code *)PTR_libusb_get_bus_number_000499d4" * (cast_expression "(code *)PTR_libusb_get_bus_number_000499d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(list[iVar20])" ( (subscript_expression "list[iVar20]" identifier [ identifier ]) )))) ;) (expression_statement "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20]);" (assignment_expression "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20])" identifier = (call_expression "(*(code *)PTR_libusb_get_device_address_0004993c)(list[iVar20])" (parenthesized_expression "(*(code *)PTR_libusb_get_device_address_0004993c)" ( (pointer_expression "*(code *)PTR_libusb_get_device_address_0004993c" * (cast_expression "(code *)PTR_libusb_get_device_address_0004993c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(list[iVar20])" ( (subscript_expression "list[iVar20]" identifier [ identifier ]) )))) ;) (expression_statement "plVar16 = (libusb_device *)0x1;" (assignment_expression "plVar16 = (libusb_device *)0x1" identifier = (cast_expression "(libusb_device *)0x1" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2050 = puVar19;" (assignment_expression "local_2050 = puVar19" identifier = identifier) ;) (expression_statement "local_204c = plVar4;" (assignment_expression "local_204c = plVar4" identifier = identifier) ;) (expression_statement "local_2048 = uVar8;" (assignment_expression "local_2048 = uVar8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);" (call_expression "(*(code *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001)" (parenthesized_expression "(*(code *)PTR___snprintf_chk_00049a58)" ( (pointer_expression "*(code *)PTR___snprintf_chk_00049a58" * (cast_expression "(code *)PTR___snprintf_chk_00049a58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(device_path,0x1001,1,0x1001)" ( identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path);" (assignment_expression "iVar9 = (*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path)" identifier = (call_expression "(*(code *)PTR_strcmp_00049a4c)(device_path,(libusb_device *)absolute_path)" (parenthesized_expression "(*(code *)PTR_strcmp_00049a4c)" ( (pointer_expression "*(code *)PTR_strcmp_00049a4c" * (cast_expression "(code *)PTR_strcmp_00049a4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(device_path,(libusb_device *)absolute_path)" ( identifier , (cast_expression "(libusb_device *)absolute_path" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar9 == 0) break;" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (if_statement "if (iVar5 == iVar20) goto LAB_00023ea0;" if (parenthesized_expression "(iVar5 == iVar20)" ( (binary_expression "iVar5 == iVar20" identifier == identifier) )) (goto_statement "goto LAB_00023ea0;" goto statement_identifier ;)) })) (expression_statement "plVar6 = list[iVar20];" (assignment_expression "plVar6 = list[iVar20]" identifier = (subscript_expression "list[iVar20]" identifier [ identifier ])) ;) }))) (expression_statement "ppuVar14 = (undefined1 **)0x0;" (assignment_expression "ppuVar14 = (undefined1 **)0x0" identifier = (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "(*(code *)PTR_libusb_free_device_list_0004996c)(list);" (call_expression "(*(code *)PTR_libusb_free_device_list_0004996c)(list)" (parenthesized_expression "(*(code *)PTR_libusb_free_device_list_0004996c)" ( (pointer_expression "*(code *)PTR_libusb_free_device_list_0004996c" * (cast_expression "(code *)PTR_libusb_free_device_list_0004996c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(list)" ( identifier ))) ;) (if_statement "if (iVar3 == *(int *)puVar2) {\n    return plVar6;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return plVar6;\n  }" { (return_statement "return plVar6;" return identifier ;) })) (expression_statement "pcVar22 = get_dev_string;" (assignment_expression "pcVar22 = get_dev_string" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_00049a1c;" (assignment_expression "puVar21 = PTR___stack_chk_fail_00049a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00049a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00049a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00049a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00049a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00049a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar17 = *(int **)(puVar21 + 0x25ae8);" (assignment_expression "piVar17 = *(int **)(puVar21 + 0x25ae8)" identifier = (pointer_expression "*(int **)(puVar21 + 0x25ae8)" * (cast_expression "(int **)(puVar21 + 0x25ae8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25ae8)" ( (binary_expression "puVar21 + 0x25ae8" identifier + number_literal) ))))) ;) (expression_statement "puStack_2070 = puVar2;" (assignment_expression "puStack_2070 = puVar2" identifier = identifier) ;) (expression_statement "pEStack_2084 = (EVP_PKEY_CTX *)*piVar17;" (assignment_expression "pEStack_2084 = (EVP_PKEY_CTX *)*piVar17" identifier = (cast_expression "(EVP_PKEY_CTX *)*piVar17" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) ;) (expression_statement "plStack_207c = plVar6;" (assignment_expression "plStack_207c = plVar6" identifier = identifier) ;) (expression_statement "pcStack_2078 = device_path;" (assignment_expression "pcStack_2078 = device_path" identifier = identifier) ;) (expression_statement "plStack_2074 = (libusb_device *)absolute_path;" (assignment_expression "plStack_2074 = (libusb_device *)absolute_path" identifier = (cast_expression "(libusb_device *)absolute_path" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStack_206c = puVar19;" (assignment_expression "puStack_206c = puVar19" identifier = identifier) ;) (expression_statement "plStack_2068 = plVar4;" (assignment_expression "plStack_2068 = plVar4" identifier = identifier) ;) (expression_statement "pcStack_2064 = pcVar22;" (assignment_expression "pcStack_2064 = pcVar22" identifier = identifier) ;) (if_statement "if ((iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0)) {\n    ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n    ppuVar15 = ppuVar14;\n    if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }\n    goto LAB_000241f4;\n  }" if (parenthesized_expression "((iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0))" ( (binary_expression "(iVar3 == 0) || (ppuVar14 == (undefined1 **)0x0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) || (parenthesized_expression "(ppuVar14 == (undefined1 **)0x0)" ( (binary_expression "ppuVar14 == (undefined1 **)0x0" identifier == (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n    ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);\n    ppuVar15 = ppuVar14;\n    if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }\n    goto LAB_000241f4;\n  }" { (expression_statement "ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);" (assignment_expression "ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930)" identifier = (pointer_expression "*(EVP_PKEY_CTX **)(puVar21 + 0x25930)" * (cast_expression "(EVP_PKEY_CTX **)(puVar21 + 0x25930)" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25930)" ( (binary_expression "puVar21 + 0x25930" identifier + number_literal) ))))) ;) (expression_statement "ppuVar15 = ppuVar14;" (assignment_expression "ppuVar15 = ppuVar14" identifier = identifier) ;) (if_statement "if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }" if (parenthesized_expression "(pEStack_2084 == (EVP_PKEY_CTX *)*piVar17)" ( (binary_expression "pEStack_2084 == (EVP_PKEY_CTX *)*piVar17" identifier == (cast_expression "(EVP_PKEY_CTX *)*piVar17" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);\n      return plVar16;\n    }" { comment comment (expression_statement "plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0);" (assignment_expression "plVar16 = (libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0)" identifier = (cast_expression "(libusb_device *)\n                (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0)" (parenthesized_expression "(**(code **)(puVar21 + 0x25af0))" ( (pointer_expression "**(code **)(puVar21 + 0x25af0)" * (pointer_expression "*(code **)(puVar21 + 0x25af0)" * (cast_expression "(code **)(puVar21 + 0x25af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25af0)" ( (binary_expression "puVar21 + 0x25af0" identifier + number_literal) ))))) )) (argument_list "(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0)" ( (binary_expression "*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + -0x4ab0" (pointer_expression "*(EVP_PKEY_CTX **)(puVar21 + 0x25930)" * (cast_expression "(EVP_PKEY_CTX **)(puVar21 + 0x25930)" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25930)" ( (binary_expression "puVar21 + 0x25930" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return plVar16;" return identifier ;) })) (goto_statement "goto LAB_000241f4;" goto statement_identifier ;) })) (expression_statement "plVar16 = (libusb_device *)0x6;" (assignment_expression "plVar16 = (libusb_device *)0x6" identifier = (cast_expression "(libusb_device *)0x6" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar15 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar15 = (undefined1 **)&DAT_00000080" identifier = (cast_expression "(undefined1 **)&DAT_00000080" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000080" & identifier))) ;) (expression_statement "iVar5 = (**(code **)(puVar21 + 0x25a1c))();" (assignment_expression "iVar5 = (**(code **)(puVar21 + 0x25a1c))()" identifier = (call_expression "(**(code **)(puVar21 + 0x25a1c))()" (parenthesized_expression "(**(code **)(puVar21 + 0x25a1c))" ( (pointer_expression "**(code **)(puVar21 + 0x25a1c)" * (pointer_expression "*(code **)(puVar21 + 0x25a1c)" * (cast_expression "(code **)(puVar21 + 0x25a1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25a1c)" ( (binary_expression "puVar21 + 0x25a1c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" if (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) )) (compound_statement "{\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" { (if_statement "if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }" if (parenthesized_expression "(CONCAT11(uStack_2181,uStack_2182) != 0)" ( (binary_expression "CONCAT11(uStack_2181,uStack_2182) != 0" (call_expression "CONCAT11(uStack_2181,uStack_2182)" identifier (argument_list "(uStack_2181,uStack_2182)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n      plVar16 = (libusb_device *)0x6;\n      ppuVar15 = (undefined1 **)&DAT_00000080;\n      iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);\n      if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }\n    }" { (expression_statement "plVar16 = (libusb_device *)0x6;" (assignment_expression "plVar16 = (libusb_device *)0x6" identifier = (cast_expression "(libusb_device *)0x6" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar15 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar15 = (undefined1 **)&DAT_00000080" identifier = (cast_expression "(undefined1 **)&DAT_00000080" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000080" & identifier))) ;) (expression_statement "iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000);" (assignment_expression "iVar5 = (**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000)" identifier = (call_expression "(**(code **)(puVar21 + 0x25a1c))\n                        (iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000)" (parenthesized_expression "(**(code **)(puVar21 + 0x25a1c))" ( (pointer_expression "**(code **)(puVar21 + 0x25a1c)" * (pointer_expression "*(code **)(puVar21 + 0x25a1c)" * (cast_expression "(code **)(puVar21 + 0x25a1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25a1c)" ( (binary_expression "puVar21 + 0x25a1c" identifier + number_literal) ))))) )) (argument_list "(iVar3,0x80,6,(uint)ppuVar14 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                         &bStack_2184,0xfe,1000)" ( identifier , number_literal , number_literal , (binary_expression "(uint)ppuVar14 | 0x300" (cast_expression "(uint)ppuVar14" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) , (call_expression "CONCAT11(uStack_2181,uStack_2182)" identifier (argument_list "(uStack_2181,uStack_2182)" ( identifier , identifier ))) , (pointer_expression "&bStack_2184" & identifier) , number_literal , number_literal )))) ;) (if_statement "if (((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }" if (parenthesized_expression "(((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03'))" ( (binary_expression "((1 < iVar5) && (1 < bStack_2184)) && (cStack_2183 == '\x03')" (parenthesized_expression "((1 < iVar5) && (1 < bStack_2184))" ( (binary_expression "(1 < iVar5) && (1 < bStack_2184)" (parenthesized_expression "(1 < iVar5)" ( (binary_expression "1 < iVar5" number_literal < identifier) )) && (parenthesized_expression "(1 < bStack_2184)" ( (binary_expression "1 < bStack_2184" number_literal < identifier) ))) )) && (parenthesized_expression "(cStack_2183 == '\x03')" ( (binary_expression "cStack_2183 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar20 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);\n        iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);\n        if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }\n        ctx_00 = pEStack_2084;\n        if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }\n        goto LAB_000241f4;\n      }" { (expression_statement "iVar20 = (int)(bStack_2184 - 2) >> 1;" (assignment_expression "iVar20 = (int)(bStack_2184 - 2) >> 1" identifier = (binary_expression "(int)(bStack_2184 - 2) >> 1" (cast_expression "(int)(bStack_2184 - 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(bStack_2184 - 2)" ( (binary_expression "bStack_2184 - 2" identifier - number_literal) ))) >> number_literal)) ;) (expression_statement "puStack_2194 = &uStack_2182;" (assignment_expression "puStack_2194 = &uStack_2182" identifier = (pointer_expression "&uStack_2182" & identifier)) ;) (expression_statement "uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe);" (assignment_expression "uVar8 = (**(code **)(puVar21 + 0x25a38))(0xe)" identifier = (call_expression "(**(code **)(puVar21 + 0x25a38))(0xe)" (parenthesized_expression "(**(code **)(puVar21 + 0x25a38))" ( (pointer_expression "**(code **)(puVar21 + 0x25a38)" * (pointer_expression "*(code **)(puVar21 + 0x25a38)" * (cast_expression "(code **)(puVar21 + 0x25a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25a38)" ( (binary_expression "puVar21 + 0x25a38" identifier + number_literal) ))))) )) (argument_list "(0xe)" ( number_literal )))) ;) (expression_statement "iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30);" (assignment_expression "iVar5 = (**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30)" identifier = (call_expression "(**(code **)(puVar21 + 0x25aac))(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30)" (parenthesized_expression "(**(code **)(puVar21 + 0x25aac))" ( (pointer_expression "**(code **)(puVar21 + 0x25aac)" * (pointer_expression "*(code **)(puVar21 + 0x25aac)" * (cast_expression "(code **)(puVar21 + 0x25aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25aac)" ( (binary_expression "puVar21 + 0x25aac" identifier + number_literal) ))))) )) (argument_list "(uVar8,*(int *)(puVar21 + 0x25930) + 0x1a30)" ( identifier , (binary_expression "*(int *)(puVar21 + 0x25930) + 0x1a30" (pointer_expression "*(int *)(puVar21 + 0x25930)" * (cast_expression "(int *)(puVar21 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x25930)" ( (binary_expression "puVar21 + 0x25930" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar5 == -1) {\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }" if (parenthesized_expression "(iVar5 == -1)" ( (binary_expression "iVar5 == -1" identifier == number_literal) )) (compound_statement "{\nLAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);\n          plVar16 = plVar4;\n          iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);\n          ppuVar15 = ppuVar14;\n          if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }\n        }" { (labeled_statement "LAB_000241a8:\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);" statement_identifier : (expression_statement "plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f);" (assignment_expression "plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f)" identifier = (cast_expression "(libusb_device *)(**(code **)(puVar21 + 0x25ab0))(0x7f)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x25ab0))(0x7f)" (parenthesized_expression "(**(code **)(puVar21 + 0x25ab0))" ( (pointer_expression "**(code **)(puVar21 + 0x25ab0)" * (pointer_expression "*(code **)(puVar21 + 0x25ab0)" * (cast_expression "(code **)(puVar21 + 0x25ab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25ab0)" ( (binary_expression "puVar21 + 0x25ab0" identifier + number_literal) ))))) )) (argument_list "(0x7f)" ( number_literal ))))) ;)) (expression_statement "plVar16 = plVar4;" (assignment_expression "plVar16 = plVar4" identifier = identifier) ;) (expression_statement "iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f);" (assignment_expression "iVar3 = (**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f)" identifier = (call_expression "(**(code **)(puVar21 + 0x25ad0))(iVar3,ppuVar14,plVar4,0x7f)" (parenthesized_expression "(**(code **)(puVar21 + 0x25ad0))" ( (pointer_expression "**(code **)(puVar21 + 0x25ad0)" * (pointer_expression "*(code **)(puVar21 + 0x25ad0)" * (cast_expression "(code **)(puVar21 + 0x25ad0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25ad0)" ( (binary_expression "puVar21 + 0x25ad0" identifier + number_literal) ))))) )) (argument_list "(iVar3,ppuVar14,plVar4,0x7f)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "ppuVar15 = ppuVar14;" (assignment_expression "ppuVar15 = ppuVar14" identifier = identifier) ;) (if_statement "if (iVar3 < 0) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(iVar3 < 0)" ( (binary_expression "iVar3 < 0" identifier < number_literal) )) (compound_statement "{\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            ppuVar15 = ppuVar14;\n            goto LAB_0002406c;\n          }" { (expression_statement "(**(code **)(puVar21 + 0x25af4))(plVar4);" (call_expression "(**(code **)(puVar21 + 0x25af4))(plVar4)" (parenthesized_expression "(**(code **)(puVar21 + 0x25af4))" ( (pointer_expression "**(code **)(puVar21 + 0x25af4)" * (pointer_expression "*(code **)(puVar21 + 0x25af4)" * (cast_expression "(code **)(puVar21 + 0x25af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25af4)" ( (binary_expression "puVar21 + 0x25af4" identifier + number_literal) ))))) )) (argument_list "(plVar4)" ( identifier ))) ;) (expression_statement "ppuVar15 = ppuVar14;" (assignment_expression "ppuVar15 = ppuVar14" identifier = identifier) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) }) (else_clause "else {\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }" else (compound_statement "{\n          iStack_218c = iVar20 << 1;\n          iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();\n          iStack_2188 = iVar20 * iStack_2188;\n          plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);\n          plVar16 = (libusb_device *)&iStack_218c;\n          ppuVar15 = &puStack_2194;\n          plStack_2190 = plVar4;\n          iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);\n          (**(code **)(puVar21 + 0x25b14))(iVar5);\n          if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }\n          *plStack_2190 = (libusb_device)0x0;\n          if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;\n        }" { (expression_statement "iStack_218c = iVar20 << 1;" (assignment_expression "iStack_218c = iVar20 << 1" identifier = (binary_expression "iVar20 << 1" identifier << number_literal)) ;) (expression_statement "iStack_2188 = (**(code **)(puVar21 + 0x25ab8))();" (assignment_expression "iStack_2188 = (**(code **)(puVar21 + 0x25ab8))()" identifier = (call_expression "(**(code **)(puVar21 + 0x25ab8))()" (parenthesized_expression "(**(code **)(puVar21 + 0x25ab8))" ( (pointer_expression "**(code **)(puVar21 + 0x25ab8)" * (pointer_expression "*(code **)(puVar21 + 0x25ab8)" * (cast_expression "(code **)(puVar21 + 0x25ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25ab8)" ( (binary_expression "puVar21 + 0x25ab8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iStack_2188 = iVar20 * iStack_2188;" (assignment_expression "iStack_2188 = iVar20 * iStack_2188" identifier = (binary_expression "iVar20 * iStack_2188" identifier * identifier)) ;) (expression_statement "plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1);" (assignment_expression "plVar4 = (libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1)" identifier = (cast_expression "(libusb_device *)(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x25ab0))(iStack_2188 + 1)" (parenthesized_expression "(**(code **)(puVar21 + 0x25ab0))" ( (pointer_expression "**(code **)(puVar21 + 0x25ab0)" * (pointer_expression "*(code **)(puVar21 + 0x25ab0)" * (cast_expression "(code **)(puVar21 + 0x25ab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25ab0)" ( (binary_expression "puVar21 + 0x25ab0" identifier + number_literal) ))))) )) (argument_list "(iStack_2188 + 1)" ( (binary_expression "iStack_2188 + 1" identifier + number_literal) ))))) ;) (expression_statement "plVar16 = (libusb_device *)&iStack_218c;" (assignment_expression "plVar16 = (libusb_device *)&iStack_218c" identifier = (cast_expression "(libusb_device *)&iStack_218c" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&iStack_218c" & identifier))) ;) (expression_statement "ppuVar15 = &puStack_2194;" (assignment_expression "ppuVar15 = &puStack_2194" identifier = (pointer_expression "&puStack_2194" & identifier)) ;) (expression_statement "plStack_2190 = plVar4;" (assignment_expression "plStack_2190 = plVar4" identifier = identifier) ;) (expression_statement "iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188);" (assignment_expression "iVar20 = (**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188)" identifier = (call_expression "(**(code **)(puVar21 + 0x25b10))\n                             (iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188)" (parenthesized_expression "(**(code **)(puVar21 + 0x25b10))" ( (pointer_expression "**(code **)(puVar21 + 0x25b10)" * (pointer_expression "*(code **)(puVar21 + 0x25b10)" * (cast_expression "(code **)(puVar21 + 0x25b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25b10)" ( (binary_expression "puVar21 + 0x25b10" identifier + number_literal) ))))) )) (argument_list "(iVar5,ppuVar15,plVar16,&plStack_2190,&iStack_2188)" ( identifier , identifier , identifier , (pointer_expression "&plStack_2190" & identifier) , (pointer_expression "&iStack_2188" & identifier) )))) ;) (expression_statement "(**(code **)(puVar21 + 0x25b14))(iVar5);" (call_expression "(**(code **)(puVar21 + 0x25b14))(iVar5)" (parenthesized_expression "(**(code **)(puVar21 + 0x25b14))" ( (pointer_expression "**(code **)(puVar21 + 0x25b14)" * (pointer_expression "*(code **)(puVar21 + 0x25b14)" * (cast_expression "(code **)(puVar21 + 0x25b14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25b14)" ( (binary_expression "puVar21 + 0x25b14" identifier + number_literal) ))))) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (iVar20 == -1) {\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }" if (parenthesized_expression "(iVar20 == -1)" ( (binary_expression "iVar20 == -1" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar21 + 0x25af4))(plVar4);\n            goto LAB_000241a8;\n          }" { (expression_statement "(**(code **)(puVar21 + 0x25af4))(plVar4);" (call_expression "(**(code **)(puVar21 + 0x25af4))(plVar4)" (parenthesized_expression "(**(code **)(puVar21 + 0x25af4))" ( (pointer_expression "**(code **)(puVar21 + 0x25af4)" * (pointer_expression "*(code **)(puVar21 + 0x25af4)" * (cast_expression "(code **)(puVar21 + 0x25af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25af4)" ( (binary_expression "puVar21 + 0x25af4" identifier + number_literal) ))))) )) (argument_list "(plVar4)" ( identifier ))) ;) (goto_statement "goto LAB_000241a8;" goto statement_identifier ;) })) (expression_statement "*plStack_2190 = (libusb_device)0x0;" (assignment_expression "*plStack_2190 = (libusb_device)0x0" (pointer_expression "*plStack_2190" * identifier) = (cast_expression "(libusb_device)0x0" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) ;) (if_statement "if (plVar4 == (libusb_device *)0x0) goto LAB_000241a8;" if (parenthesized_expression "(plVar4 == (libusb_device *)0x0)" ( (binary_expression "plVar4 == (libusb_device *)0x0" identifier == (cast_expression "(libusb_device *)0x0" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000241a8;" goto statement_identifier ;)) }))) (expression_statement "ctx_00 = pEStack_2084;" (assignment_expression "ctx_00 = pEStack_2084" identifier = identifier) ;) (if_statement "if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n          return plVar4;\n        }" if (parenthesized_expression "(pEStack_2084 == (EVP_PKEY_CTX *)*piVar17)" ( (binary_expression "pEStack_2084 == (EVP_PKEY_CTX *)*piVar17" identifier == (cast_expression "(EVP_PKEY_CTX *)*piVar17" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) )) (compound_statement "{\n          return plVar4;\n        }" { (return_statement "return plVar4;" return identifier ;) })) (goto_statement "goto LAB_000241f4;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_0002406c:\n  ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);" statement_identifier : (expression_statement "ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930);" (assignment_expression "ctx_00 = *(EVP_PKEY_CTX **)(puVar21 + 0x25930)" identifier = (pointer_expression "*(EVP_PKEY_CTX **)(puVar21 + 0x25930)" * (cast_expression "(EVP_PKEY_CTX **)(puVar21 + 0x25930)" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25930)" ( (binary_expression "puVar21 + 0x25930" identifier + number_literal) ))))) ;)) (if_statement "if (pEStack_2084 == (EVP_PKEY_CTX *)*piVar17) {\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);\n    return plVar16;\n  }" if (parenthesized_expression "(pEStack_2084 == (EVP_PKEY_CTX *)*piVar17)" ( (binary_expression "pEStack_2084 == (EVP_PKEY_CTX *)*piVar17" identifier == (cast_expression "(EVP_PKEY_CTX *)*piVar17" ( (type_descriptor "EVP_PKEY_CTX *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);\n    return plVar16;\n  }" { comment comment (expression_statement "plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28);" (assignment_expression "plVar16 = (libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28)" identifier = (cast_expression "(libusb_device *)\n              (**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar21 + 0x25af0))(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28)" (parenthesized_expression "(**(code **)(puVar21 + 0x25af0))" ( (pointer_expression "**(code **)(puVar21 + 0x25af0)" * (pointer_expression "*(code **)(puVar21 + 0x25af0)" * (cast_expression "(code **)(puVar21 + 0x25af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25af0)" ( (binary_expression "puVar21 + 0x25af0" identifier + number_literal) ))))) )) (argument_list "(*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28)" ( (binary_expression "*(EVP_PKEY_CTX **)(puVar21 + 0x25930) + 0x1a28" (pointer_expression "*(EVP_PKEY_CTX **)(puVar21 + 0x25930)" * (cast_expression "(EVP_PKEY_CTX **)(puVar21 + 0x25930)" ( (type_descriptor "EVP_PKEY_CTX **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25930)" ( (binary_expression "puVar21 + 0x25930" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return plVar16;" return identifier ;) })) (labeled_statement "LAB_000241f4:\n  pcVar22 = *(code **)(puVar21 + 0x25adc);" statement_identifier : (expression_statement "pcVar22 = *(code **)(puVar21 + 0x25adc);" (assignment_expression "pcVar22 = *(code **)(puVar21 + 0x25adc)" identifier = (pointer_expression "*(code **)(puVar21 + 0x25adc)" * (cast_expression "(code **)(puVar21 + 0x25adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x25adc)" ( (binary_expression "puVar21 + 0x25adc" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "plVar4 = (libusb_device *)_init(ctx_00);" (assignment_expression "plVar4 = (libusb_device *)_init(ctx_00)" identifier = (cast_expression "(libusb_device *)_init(ctx_00)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "_init(ctx_00)" identifier (argument_list "(ctx_00)" ( identifier ))))) ;) (expression_statement "puVar18 = *(undefined4 **)(pcVar22 + 0x25718);" (assignment_expression "puVar18 = *(undefined4 **)(pcVar22 + 0x25718)" identifier = (pointer_expression "*(undefined4 **)(pcVar22 + 0x25718)" * (cast_expression "(undefined4 **)(pcVar22 + 0x25718)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x25718)" ( (binary_expression "pcVar22 + 0x25718" identifier + number_literal) ))))) ;) (expression_statement "iVar5 = *(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2;" (assignment_expression "iVar5 = *(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2" identifier = (binary_expression "*(int *)(pcVar22 + 0x25718) - (int)puVar18 >> 2" (binary_expression "*(int *)(pcVar22 + 0x25718) - (int)puVar18" (pointer_expression "*(int *)(pcVar22 + 0x25718)" * (cast_expression "(int *)(pcVar22 + 0x25718)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 0x25718)" ( (binary_expression "pcVar22 + 0x25718" identifier + number_literal) )))) - (cast_expression "(int)puVar18" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0) {\n    do {\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    } while (iVar5 != iVar3);\n  }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    } while (iVar5 != iVar3);\n  }" { (do_statement "do {\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    } while (iVar5 != iVar3);" do (compound_statement "{\n      iVar3 = iVar3 + 1;\n      plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);\n      puVar18 = puVar18 + 1;\n    }" { (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16);" (assignment_expression "plVar4 = (libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16)" identifier = (cast_expression "(libusb_device *)(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16)" ( (type_descriptor "libusb_device *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)*puVar18)(ctx_00,ppuVar15,plVar16)" (parenthesized_expression "(*(code *)*puVar18)" ( (pointer_expression "*(code *)*puVar18" * (cast_expression "(code *)*puVar18" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar18" * identifier))) )) (argument_list "(ctx_00,ppuVar15,plVar16)" ( identifier , identifier , identifier ))))) ;) (expression_statement "puVar18 = puVar18 + 1;" (assignment_expression "puVar18 = puVar18 + 1" identifier = (binary_expression "puVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 != iVar3)" ( (binary_expression "iVar5 != iVar3" identifier != identifier) )) ;) })) (return_statement "return plVar4;" return identifier ;) (labeled_statement "LAB_00023e2c:\n  while ((libusb_device)device_path[0] == (libusb_device)0x2f) {\n    device_path[0] = *(char *)(pcVar10 + 2);\n    pcVar10 = pcVar10 + 1;\n  }" statement_identifier : (while_statement "while ((libusb_device)device_path[0] == (libusb_device)0x2f) {\n    device_path[0] = *(char *)(pcVar10 + 2);\n    pcVar10 = pcVar10 + 1;\n  }" while (parenthesized_expression "((libusb_device)device_path[0] == (libusb_device)0x2f)" ( (binary_expression "(libusb_device)device_path[0] == (libusb_device)0x2f" (cast_expression "(libusb_device)device_path[0]" ( (type_descriptor "libusb_device" type_identifier) ) (subscript_expression "device_path[0]" identifier [ number_literal ])) == (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) )) (compound_statement "{\n    device_path[0] = *(char *)(pcVar10 + 2);\n    pcVar10 = pcVar10 + 1;\n  }" { (expression_statement "device_path[0] = *(char *)(pcVar10 + 2);" (assignment_expression "device_path[0] = *(char *)(pcVar10 + 2)" (subscript_expression "device_path[0]" identifier [ number_literal ]) = (pointer_expression "*(char *)(pcVar10 + 2)" * (cast_expression "(char *)(pcVar10 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 2)" ( (binary_expression "pcVar10 + 2" identifier + number_literal) ))))) ;) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) }))) (expression_statement "*plVar16 = (libusb_device)0x2f;" (assignment_expression "*plVar16 = (libusb_device)0x2f" (pointer_expression "*plVar16" * identifier) = (cast_expression "(libusb_device)0x2f" ( (type_descriptor "libusb_device" type_identifier) ) number_literal)) ;) (expression_statement "plVar6 = plVar7 + -1;" (assignment_expression "plVar6 = plVar7 + -1" identifier = (binary_expression "plVar7 + -1" identifier + number_literal)) ;) (expression_statement "pcVar10 = pcVar10 + 1;" (assignment_expression "pcVar10 = pcVar10 + 1" identifier = (binary_expression "pcVar10 + 1" identifier + number_literal)) ;) (expression_statement "plVar16 = plVar16 + 1;" (assignment_expression "plVar16 = plVar16 + 1" identifier = (binary_expression "plVar16 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) (labeled_statement "code_r0x00023e64:\n  device_path[0] = *(char *)(pcVar10 + 2);" statement_identifier : (expression_statement "device_path[0] = *(char *)(pcVar10 + 2);" (assignment_expression "device_path[0] = *(char *)(pcVar10 + 2)" (subscript_expression "device_path[0]" identifier [ number_literal ]) = (pointer_expression "*(char *)(pcVar10 + 2)" * (cast_expression "(char *)(pcVar10 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar10 + 2)" ( (binary_expression "pcVar10 + 2" identifier + number_literal) ))))) ;)) (expression_statement "pcVar10 = pcVar10 + 2;" (assignment_expression "pcVar10 = pcVar10 + 2" identifier = (binary_expression "pcVar10 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) })))
(translation_unit "int * get_usb_device(undefined4 param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}\n\n" (function_definition "int * get_usb_device(undefined4 param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}" primitive_type (pointer_declarator "* get_usb_device(undefined4 param_1,undefined4 param_2)" * (function_declarator "get_usb_device(undefined4 param_1,undefined4 param_2)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) )))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}" { (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "char cVar10;" primitive_type identifier ;) (declaration "undefined1 **ppuVar11;" type_identifier (pointer_declarator "**ppuVar11" * (pointer_declarator "*ppuVar11" * identifier)) ;) (declaration "undefined1 **ppuVar12;" type_identifier (pointer_declarator "**ppuVar12" * (pointer_declarator "*ppuVar12" * identifier)) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int *piVar16;" primitive_type (pointer_declarator "*piVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined1 *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "code *pcVar21;" type_identifier (pointer_declarator "*pcVar21" * identifier) ;) (declaration "undefined1 *puStack_2194;" type_identifier (pointer_declarator "*puStack_2194" * identifier) ;) (declaration "int *piStack_2190;" primitive_type (pointer_declarator "*piStack_2190" * identifier) ;) (declaration "int iStack_218c;" primitive_type identifier ;) (declaration "int iStack_2188;" primitive_type identifier ;) (declaration "byte bStack_2184;" type_identifier identifier ;) (declaration "char cStack_2183;" primitive_type identifier ;) (declaration "undefined1 uStack_2182;" type_identifier identifier ;) (declaration "undefined1 uStack_2181;" type_identifier identifier ;) (declaration "int iStack_2084;" primitive_type identifier ;) (declaration "int *piStack_207c;" primitive_type (pointer_declarator "*piStack_207c" * identifier) ;) (declaration "char *pcStack_2078;" primitive_type (pointer_declarator "*pcStack_2078" * identifier) ;) (declaration "int *piStack_2074;" primitive_type (pointer_declarator "*piStack_2074" * identifier) ;) (declaration "undefined *puStack_2070;" type_identifier (pointer_declarator "*puStack_2070" * identifier) ;) (declaration "undefined1 *puStack_206c;" type_identifier (pointer_declarator "*puStack_206c" * identifier) ;) (declaration "int *piStack_2068;" primitive_type (pointer_declarator "*piStack_2068" * identifier) ;) (declaration "code *pcStack_2064;" type_identifier (pointer_declarator "*pcStack_2064" * identifier) ;) (declaration "undefined1 *local_2050;" type_identifier (pointer_declarator "*local_2050" * identifier) ;) (declaration "int *local_204c;" primitive_type (pointer_declarator "*local_204c" * identifier) ;) (declaration "undefined4 local_2048;" type_identifier identifier ;) (declaration "undefined4 local_2044;" type_identifier identifier ;) (declaration "int local_2038;" primitive_type identifier ;) (declaration "char local_2034;" primitive_type identifier ;) (declaration "char local_2033 [4099];" primitive_type (array_declarator "local_2033 [4099]" identifier [ number_literal ]) ;) (declaration "undefined1 local_1030 [4100];" type_identifier (array_declarator "local_1030 [4100]" identifier [ number_literal ]) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_00049a28;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00049a28" identifier = identifier) ;) (expression_statement "puVar18 = &DAT_0000002f;" (assignment_expression "puVar18 = &DAT_0000002f" identifier = (pointer_expression "&DAT_0000002f" & identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00049a28;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00049a28" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00049a28" * (cast_expression "(int *)PTR___stack_chk_guard_00049a28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "FUN_00023ac0(param_2,&local_2034);" (call_expression "FUN_00023ac0(param_2,&local_2034)" identifier (argument_list "(param_2,&local_2034)" ( identifier , (pointer_expression "&local_2034" & identifier) ))) ;) (expression_statement "local_1030[0] = 0;" (assignment_expression "local_1030[0] = 0" (subscript_expression "local_1030[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pcVar9 = &local_2034;" (assignment_expression "pcVar9 = &local_2034" identifier = (pointer_expression "&local_2034" & identifier)) ;) (if_statement "if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" if (parenthesized_expression "(local_2034 == '/')" ( (binary_expression "local_2034 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }" { (expression_statement "pcVar5 = (char *)0x1001;" (assignment_expression "pcVar5 = (char *)0x1001" identifier = (cast_expression "(char *)0x1001" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar13 = (int *)local_1030;" (assignment_expression "piVar13 = (int *)local_1030" identifier = (cast_expression "(int *)local_1030" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar3 = (int *)local_1030;" (assignment_expression "piVar3 = (int *)local_1030" identifier = (cast_expression "(int *)local_1030" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" else (compound_statement "{\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" { (expression_statement "piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" identifier = (cast_expression "(int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" (parenthesized_expression "(*(code *)PTR_getcwd_000499bc)" ( (pointer_expression "*(code *)PTR_getcwd_000499bc" * (cast_expression "(code *)PTR_getcwd_000499bc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_1030,0x1001)" ( identifier , number_literal ))))) ;) (expression_statement "iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3)" identifier = (call_expression "(*(code *)PTR_strlen_000499b4)(piVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000499b4)" ( (pointer_expression "*(code *)PTR_strlen_000499b4" * (cast_expression "(code *)PTR_strlen_000499b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar3)" ( identifier )))) ;) (expression_statement "pcVar5 = (char *)(0x1000 - iVar4);" (assignment_expression "pcVar5 = (char *)(0x1000 - iVar4)" identifier = (cast_expression "(char *)(0x1000 - iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(0x1000 - iVar4)" ( (binary_expression "0x1000 - iVar4" number_literal - identifier) )))) ;) (expression_statement "*(char *)((int)local_1030 + iVar4) = '/';" (assignment_expression "*(char *)((int)local_1030 + iVar4) = '/'" (pointer_expression "*(char *)((int)local_1030 + iVar4)" * (cast_expression "(char *)((int)local_1030 + iVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_1030 + iVar4)" ( (binary_expression "(int)local_1030 + iVar4" (cast_expression "(int)local_1030" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (char_literal "'/'" ' character ')) ;) (expression_statement "piVar13 = (int *)(local_1030 + iVar4 + 1);" (assignment_expression "piVar13 = (int *)(local_1030 + iVar4 + 1)" identifier = (cast_expression "(int *)(local_1030 + iVar4 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_1030 + iVar4 + 1)" ( (binary_expression "local_1030 + iVar4 + 1" (binary_expression "local_1030 + iVar4" identifier + identifier) + number_literal) )))) ;) }))) (labeled_statement "LAB_00023d1c:\n  pcVar6 = pcVar5;" statement_identifier : (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" identifier = identifier) ;)) (expression_statement "cVar10 = local_2034;" (assignment_expression "cVar10 = local_2034" identifier = identifier) ;) (if_statement "if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }" if (parenthesized_expression "(local_2034 != '\0')" ( (binary_expression "local_2034 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }" { (do_statement "do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );" do (compound_statement "{\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    }" { (if_statement "if (pcVar6 < (char *)0x2) break;" if (parenthesized_expression "(pcVar6 < (char *)0x2)" ( (binary_expression "pcVar6 < (char *)0x2" identifier < (cast_expression "(char *)0x2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "local_2034 = pcVar9[1];" (assignment_expression "local_2034 = pcVar9[1]" identifier = (subscript_expression "pcVar9[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar10 == '/') goto LAB_00023e2c;" if (parenthesized_expression "(cVar10 == '/')" ( (binary_expression "cVar10 == '/'" identifier == (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00023e2c;" goto statement_identifier ;)) (if_statement "if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }" if (parenthesized_expression "(cVar10 == '.')" ( (binary_expression "cVar10 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }" { (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" identifier = identifier) ;) (if_statement "if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" if (parenthesized_expression "(local_2034 == '.')" ( (binary_expression "local_2034 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }" { (if_statement "if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }" if (parenthesized_expression "((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/'))" ( (binary_expression "(pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')" (parenthesized_expression "(pcVar9[2] == '/')" ( (binary_expression "pcVar9[2] == '/'" (subscript_expression "pcVar9[2]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(*(char *)((int)piVar13 + -1) == '/')" ( (binary_expression "*(char *)((int)piVar13 + -1) == '/'" (pointer_expression "*(char *)((int)piVar13 + -1)" * (cast_expression "(char *)((int)piVar13 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'/'" ' character ')) ))) )) (compound_statement "{\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }" { (expression_statement "piVar15 = piVar13;" (assignment_expression "piVar15 = piVar13" identifier = identifier) ;) (if_statement "if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" if (parenthesized_expression "(piVar3 == (int *)((int)piVar13 + -1))" ( (binary_expression "piVar3 == (int *)((int)piVar13 + -1)" identifier == (cast_expression "(int *)((int)piVar13 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) (compound_statement "{\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }" { (expression_statement "local_2034 = pcVar9[3];" (assignment_expression "local_2034 = pcVar9[3]" identifier = (subscript_expression "pcVar9[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = pcVar9 + 3;" (assignment_expression "pcVar9 = pcVar9 + 3" identifier = (binary_expression "pcVar9 + 3" identifier + number_literal)) ;) }) (else_clause "else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" else (compound_statement "{\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" { (do_statement "do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');" do (compound_statement "{\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              }" { (expression_statement "piVar16 = (int *)((int)piVar15 + -1);" (assignment_expression "piVar16 = (int *)((int)piVar15 + -1)" identifier = (cast_expression "(int *)((int)piVar15 + -1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar15 + -1)" ( (binary_expression "(int)piVar15 + -1" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar1 = (char *)((int)piVar15 + -2);" (assignment_expression "pcVar1 = (char *)((int)piVar15 + -2)" identifier = (cast_expression "(char *)((int)piVar15 + -2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar15 + -2)" ( (binary_expression "(int)piVar15 + -2" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));" (assignment_expression "pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16))" identifier = (cast_expression "(char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + ((int)pcVar6 - (int)piVar16))" ( (binary_expression "(int)piVar13 + ((int)pcVar6 - (int)piVar16)" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + (parenthesized_expression "((int)pcVar6 - (int)piVar16)" ( (binary_expression "(int)pcVar6 - (int)piVar16" (cast_expression "(int)pcVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar16" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "piVar15 = piVar16;" (assignment_expression "piVar15 = piVar16" identifier = identifier) ;) }) while (parenthesized_expression "(*pcVar1 != '/')" ( (binary_expression "*pcVar1 != '/'" (pointer_expression "*pcVar1" * identifier) != (char_literal "'/'" ' character ')) )) ;) (expression_statement "local_2034 = pcVar9[3];" (assignment_expression "local_2034 = pcVar9[3]" identifier = (subscript_expression "pcVar9[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = pcVar9 + 3;" (assignment_expression "pcVar9 = pcVar9 + 3" identifier = (binary_expression "pcVar9 + 3" identifier + number_literal)) ;) (expression_statement "piVar13 = piVar16;" (assignment_expression "piVar13 = piVar16" identifier = identifier) ;) }))) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) })) }) (else_clause "else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" else (if_statement "if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" if (parenthesized_expression "((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))" ( (binary_expression "(local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/')" (parenthesized_expression "(local_2034 == '/')" ( (binary_expression "local_2034 == '/'" identifier == (char_literal "'/'" ' character ')) )) && (parenthesized_expression "(*(char *)((int)piVar13 + -1) == '/')" ( (binary_expression "*(char *)((int)piVar13 + -1) == '/'" (pointer_expression "*(char *)((int)piVar13 + -1)" * (cast_expression "(char *)((int)piVar13 + -1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + -1)" ( (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'/'" ' character ')) ))) )) (goto_statement "goto code_r0x00023e64;" goto statement_identifier ;)))) })) (expression_statement "*(char *)piVar13 = cVar10;" (assignment_expression "*(char *)piVar13 = cVar10" (pointer_expression "*(char *)piVar13" * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "pcVar6 = pcVar6 + -1;" (assignment_expression "pcVar6 = pcVar6 + -1" identifier = (binary_expression "pcVar6 + -1" identifier + number_literal)) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "cVar10 = local_2034;" (assignment_expression "cVar10 = local_2034" identifier = identifier) ;) (if_statement "if (local_2034 == '\0') break;" if (parenthesized_expression "(local_2034 == '\0')" ( (binary_expression "local_2034 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "*(char *)piVar13 = '\0';" (assignment_expression "*(char *)piVar13 = '\0'" (pointer_expression "*(char *)piVar13" * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);" (assignment_expression "iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038)" identifier = (call_expression "(*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038)" (parenthesized_expression "(*(code *)PTR_libusb_get_device_list_000499b8)" ( (pointer_expression "*(code *)PTR_libusb_get_device_list_000499b8" * (cast_expression "(code *)PTR_libusb_get_device_list_000499b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,&local_2038)" ( identifier , (pointer_expression "&local_2038" & identifier) )))) ;) (if_statement "if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" if (parenthesized_expression "(iVar4 < 1)" ( (binary_expression "iVar4 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }" { (labeled_statement "LAB_00023ea0:\n    piVar15 = (int *)0x0;" statement_identifier : (expression_statement "piVar15 = (int *)0x0;" (assignment_expression "piVar15 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) }) (else_clause "else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" else (compound_statement "{\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" { (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "piVar3 = (int *)(PTR_s__00049870 + 0x1a08);" (assignment_expression "piVar3 = (int *)(PTR_s__00049870 + 0x1a08)" identifier = (cast_expression "(int *)(PTR_s__00049870 + 0x1a08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s__00049870 + 0x1a08)" ( (binary_expression "PTR_s__00049870 + 0x1a08" identifier + number_literal) )))) ;) (expression_statement "puVar18 = PTR_s__00049870 + 0x1a18;" (assignment_expression "puVar18 = PTR_s__00049870 + 0x1a18" identifier = (binary_expression "PTR_s__00049870 + 0x1a18" identifier + number_literal)) ;) (while_statement "while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }" { (expression_statement "iVar14 = iVar19 * 4;" (assignment_expression "iVar14 = iVar19 * 4" identifier = (binary_expression "iVar19 * 4" identifier * number_literal)) ;) (expression_statement "uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));" (assignment_expression "uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14))" identifier = (call_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14))" (parenthesized_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)" ( (pointer_expression "*(code *)PTR_libusb_get_bus_number_000499d4" * (cast_expression "(code *)PTR_libusb_get_bus_number_000499d4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(local_2038 + iVar14))" ( (pointer_expression "*(undefined4 *)(local_2038 + iVar14)" * (cast_expression "(undefined4 *)(local_2038 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2038 + iVar14)" ( (binary_expression "local_2038 + iVar14" identifier + identifier) )))) )))) ;) (expression_statement "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));" (assignment_expression "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14))" identifier = (call_expression "(*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14))" (parenthesized_expression "(*(code *)PTR_libusb_get_device_address_0004993c)" ( (pointer_expression "*(code *)PTR_libusb_get_device_address_0004993c" * (cast_expression "(code *)PTR_libusb_get_device_address_0004993c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(local_2038 + iVar14))" ( (pointer_expression "*(undefined4 *)(local_2038 + iVar14)" * (cast_expression "(undefined4 *)(local_2038 + iVar14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2038 + iVar14)" ( (binary_expression "local_2038 + iVar14" identifier + identifier) )))) )))) ;) (expression_statement "piVar13 = (int *)0x1;" (assignment_expression "piVar13 = (int *)0x1" identifier = (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2050 = puVar18;" (assignment_expression "local_2050 = puVar18" identifier = identifier) ;) (expression_statement "local_204c = piVar3;" (assignment_expression "local_204c = piVar3" identifier = identifier) ;) (expression_statement "local_2048 = uVar7;" (assignment_expression "local_2048 = uVar7" identifier = identifier) ;) (expression_statement "(*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);" (call_expression "(*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001)" (parenthesized_expression "(*(code *)PTR___snprintf_chk_00049a58)" ( (pointer_expression "*(code *)PTR___snprintf_chk_00049a58" * (cast_expression "(code *)PTR___snprintf_chk_00049a58" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_2034,0x1001,1,0x1001)" ( (pointer_expression "&local_2034" & identifier) , number_literal , number_literal , number_literal ))) ;) (expression_statement "iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);" (assignment_expression "iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030)" identifier = (call_expression "(*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030)" (parenthesized_expression "(*(code *)PTR_strcmp_00049a4c)" ( (pointer_expression "*(code *)PTR_strcmp_00049a4c" * (cast_expression "(code *)PTR_strcmp_00049a4c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(&local_2034,local_1030)" ( (pointer_expression "&local_2034" & identifier) , identifier )))) ;) (if_statement "if (iVar8 == 0) break;" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (if_statement "if (iVar4 == iVar19) goto LAB_00023ea0;" if (parenthesized_expression "(iVar4 == iVar19)" ( (binary_expression "iVar4 == iVar19" identifier == identifier) )) (goto_statement "goto LAB_00023ea0;" goto statement_identifier ;)) })) (expression_statement "piVar15 = *(int **)(local_2038 + iVar14);" (assignment_expression "piVar15 = *(int **)(local_2038 + iVar14)" identifier = (pointer_expression "*(int **)(local_2038 + iVar14)" * (cast_expression "(int **)(local_2038 + iVar14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_2038 + iVar14)" ( (binary_expression "local_2038 + iVar14" identifier + identifier) ))))) ;) }))) (expression_statement "ppuVar11 = (undefined1 **)0x0;" (assignment_expression "ppuVar11 = (undefined1 **)0x0" identifier = (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "(*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);" (call_expression "(*(code *)PTR_libusb_free_device_list_0004996c)(local_2038)" (parenthesized_expression "(*(code *)PTR_libusb_free_device_list_0004996c)" ( (pointer_expression "*(code *)PTR_libusb_free_device_list_0004996c" * (cast_expression "(code *)PTR_libusb_free_device_list_0004996c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_2038)" ( identifier ))) ;) (if_statement "if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar2)" ( (binary_expression "local_2c == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return piVar15;\n  }" { (return_statement "return piVar15;" return identifier ;) })) (expression_statement "pcVar21 = get_dev_string;" (assignment_expression "pcVar21 = get_dev_string" identifier = identifier) ;) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" identifier = identifier) ;) (expression_statement "puVar20 = PTR___stack_chk_fail_00049a1c;" (assignment_expression "puVar20 = PTR___stack_chk_fail_00049a1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00049a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00049a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00049a1c)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00049a1c" * (cast_expression "(code *)PTR___stack_chk_fail_00049a1c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar16 = *(int **)(puVar20 + 0x25ae8);" (assignment_expression "piVar16 = *(int **)(puVar20 + 0x25ae8)" identifier = (pointer_expression "*(int **)(puVar20 + 0x25ae8)" * (cast_expression "(int **)(puVar20 + 0x25ae8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ae8)" ( (binary_expression "puVar20 + 0x25ae8" identifier + number_literal) ))))) ;) (expression_statement "puStack_2070 = puVar2;" (assignment_expression "puStack_2070 = puVar2" identifier = identifier) ;) (expression_statement "iStack_2084 = *piVar16;" (assignment_expression "iStack_2084 = *piVar16" identifier = (pointer_expression "*piVar16" * identifier)) ;) (expression_statement "piStack_207c = piVar15;" (assignment_expression "piStack_207c = piVar15" identifier = identifier) ;) (expression_statement "pcStack_2078 = &local_2034;" (assignment_expression "pcStack_2078 = &local_2034" identifier = (pointer_expression "&local_2034" & identifier)) ;) (expression_statement "piStack_2074 = (int *)local_1030;" (assignment_expression "piStack_2074 = (int *)local_1030" identifier = (cast_expression "(int *)local_1030" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "puStack_206c = puVar18;" (assignment_expression "puStack_206c = puVar18" identifier = identifier) ;) (expression_statement "piStack_2068 = piVar3;" (assignment_expression "piStack_2068 = piVar3" identifier = identifier) ;) (expression_statement "pcStack_2064 = pcVar21;" (assignment_expression "pcStack_2064 = pcVar21" identifier = identifier) ;) (if_statement "if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }" if (parenthesized_expression "((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0))" ( (binary_expression "(iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)" (parenthesized_expression "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(ppuVar11 == (undefined1 **)0x0)" ( (binary_expression "ppuVar11 == (undefined1 **)0x0" identifier == (cast_expression "(undefined1 **)0x0" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }" { (expression_statement "iVar4 = *(int *)(puVar20 + 0x25930);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x25930)" identifier = (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) ))))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (if_statement "if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }" if (parenthesized_expression "(iStack_2084 == *piVar16)" ( (binary_expression "iStack_2084 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }" { (expression_statement "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);" (assignment_expression "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af0))" ( (pointer_expression "**(code **)(puVar20 + 0x25af0)" * (pointer_expression "*(code **)(puVar20 + 0x25af0)" * (cast_expression "(code **)(puVar20 + 0x25af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af0)" ( (binary_expression "puVar20 + 0x25af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x25930) + -0x4ab0)" ( (binary_expression "*(int *)(puVar20 + 0x25930) + -0x4ab0" (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return piVar13;" return identifier ;) })) (goto_statement "goto LAB_000241f4;" goto statement_identifier ;) })) (expression_statement "piVar13 = (int *)0x6;" (assignment_expression "piVar13 = (int *)0x6" identifier = (cast_expression "(int *)0x6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar12 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar12 = (undefined1 **)&DAT_00000080" identifier = (cast_expression "(undefined1 **)&DAT_00000080" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000080" & identifier))) ;) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25a1c))();" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25a1c))()" identifier = (call_expression "(**(code **)(puVar20 + 0x25a1c))()" (parenthesized_expression "(**(code **)(puVar20 + 0x25a1c))" ( (pointer_expression "**(code **)(puVar20 + 0x25a1c)" * (pointer_expression "*(code **)(puVar20 + 0x25a1c)" * (cast_expression "(code **)(puVar20 + 0x25a1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25a1c)" ( (binary_expression "puVar20 + 0x25a1c" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" if (parenthesized_expression "(iVar19 == 4)" ( (binary_expression "iVar19 == 4" identifier == number_literal) )) (compound_statement "{\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" { (if_statement "if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }" if (parenthesized_expression "(CONCAT11(uStack_2181,uStack_2182) != 0)" ( (binary_expression "CONCAT11(uStack_2181,uStack_2182) != 0" (call_expression "CONCAT11(uStack_2181,uStack_2182)" identifier (argument_list "(uStack_2181,uStack_2182)" ( identifier , identifier ))) != number_literal) )) (compound_statement "{\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }" { (expression_statement "piVar13 = (int *)0x6;" (assignment_expression "piVar13 = (int *)0x6" identifier = (cast_expression "(int *)0x6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppuVar12 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar12 = (undefined1 **)&DAT_00000080" identifier = (cast_expression "(undefined1 **)&DAT_00000080" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&DAT_00000080" & identifier))) ;) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" identifier = (call_expression "(**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" (parenthesized_expression "(**(code **)(puVar20 + 0x25a1c))" ( (pointer_expression "**(code **)(puVar20 + 0x25a1c)" * (pointer_expression "*(code **)(puVar20 + 0x25a1c)" * (cast_expression "(code **)(puVar20 + 0x25a1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25a1c)" ( (binary_expression "puVar20 + 0x25a1c" identifier + number_literal) ))))) )) (argument_list "(iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" ( identifier , number_literal , number_literal , (binary_expression "(uint)ppuVar11 | 0x300" (cast_expression "(uint)ppuVar11" ( (type_descriptor "uint" type_identifier) ) identifier) | number_literal) , (call_expression "CONCAT11(uStack_2181,uStack_2182)" identifier (argument_list "(uStack_2181,uStack_2182)" ( identifier , identifier ))) , (pointer_expression "&bStack_2184" & identifier) , number_literal , number_literal )))) ;) (if_statement "if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }" if (parenthesized_expression "(((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03'))" ( (binary_expression "((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')" (parenthesized_expression "((1 < iVar19) && (1 < bStack_2184))" ( (binary_expression "(1 < iVar19) && (1 < bStack_2184)" (parenthesized_expression "(1 < iVar19)" ( (binary_expression "1 < iVar19" number_literal < identifier) )) && (parenthesized_expression "(1 < bStack_2184)" ( (binary_expression "1 < bStack_2184" number_literal < identifier) ))) )) && (parenthesized_expression "(cStack_2183 == '\x03')" ( (binary_expression "cStack_2183 == '\x03'" identifier == (char_literal "'\x03'" ' escape_sequence ')) ))) )) (compound_statement "{\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }" { (expression_statement "iVar8 = (int)(bStack_2184 - 2) >> 1;" (assignment_expression "iVar8 = (int)(bStack_2184 - 2) >> 1" identifier = (binary_expression "(int)(bStack_2184 - 2) >> 1" (cast_expression "(int)(bStack_2184 - 2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(bStack_2184 - 2)" ( (binary_expression "bStack_2184 - 2" identifier - number_literal) ))) >> number_literal)) ;) (expression_statement "puStack_2194 = &uStack_2182;" (assignment_expression "puStack_2194 = &uStack_2182" identifier = (pointer_expression "&uStack_2182" & identifier)) ;) (expression_statement "uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);" (assignment_expression "uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe)" identifier = (call_expression "(**(code **)(puVar20 + 0x25a38))(0xe)" (parenthesized_expression "(**(code **)(puVar20 + 0x25a38))" ( (pointer_expression "**(code **)(puVar20 + 0x25a38)" * (pointer_expression "*(code **)(puVar20 + 0x25a38)" * (cast_expression "(code **)(puVar20 + 0x25a38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25a38)" ( (binary_expression "puVar20 + 0x25a38" identifier + number_literal) ))))) )) (argument_list "(0xe)" ( number_literal )))) ;) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" identifier = (call_expression "(**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" (parenthesized_expression "(**(code **)(puVar20 + 0x25aac))" ( (pointer_expression "**(code **)(puVar20 + 0x25aac)" * (pointer_expression "*(code **)(puVar20 + 0x25aac)" * (cast_expression "(code **)(puVar20 + 0x25aac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25aac)" ( (binary_expression "puVar20 + 0x25aac" identifier + number_literal) ))))) )) (argument_list "(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" ( identifier , (binary_expression "*(int *)(puVar20 + 0x25930) + 0x1a30" (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) )))) + number_literal) )))) ;) (if_statement "if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" if (parenthesized_expression "(iVar19 == -1)" ( (binary_expression "iVar19 == -1" identifier == number_literal) )) (compound_statement "{\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }" { (labeled_statement "LAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);" statement_identifier : (expression_statement "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);" (assignment_expression "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25ab0))(0x7f)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25ab0))(0x7f)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab0))" ( (pointer_expression "**(code **)(puVar20 + 0x25ab0)" * (pointer_expression "*(code **)(puVar20 + 0x25ab0)" * (cast_expression "(code **)(puVar20 + 0x25ab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ab0)" ( (binary_expression "puVar20 + 0x25ab0" identifier + number_literal) ))))) )) (argument_list "(0x7f)" ( number_literal ))))) ;)) (expression_statement "piVar13 = piVar3;" (assignment_expression "piVar13 = piVar3" identifier = identifier) ;) (expression_statement "iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);" (assignment_expression "iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f)" identifier = (call_expression "(**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ad0))" ( (pointer_expression "**(code **)(puVar20 + 0x25ad0)" * (pointer_expression "*(code **)(puVar20 + 0x25ad0)" * (cast_expression "(code **)(puVar20 + 0x25ad0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ad0)" ( (binary_expression "puVar20 + 0x25ad0" identifier + number_literal) ))))) )) (argument_list "(iVar4,ppuVar11,piVar3,0x7f)" ( identifier , identifier , identifier , number_literal )))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (if_statement "if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }" if (parenthesized_expression "(iVar4 < 0)" ( (binary_expression "iVar4 < 0" identifier < number_literal) )) (compound_statement "{\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }" { (expression_statement "(**(code **)(puVar20 + 0x25af4))(piVar3);" (call_expression "(**(code **)(puVar20 + 0x25af4))(piVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af4))" ( (pointer_expression "**(code **)(puVar20 + 0x25af4)" * (pointer_expression "*(code **)(puVar20 + 0x25af4)" * (cast_expression "(code **)(puVar20 + 0x25af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af4)" ( (binary_expression "puVar20 + 0x25af4" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" identifier = identifier) ;) (goto_statement "goto LAB_0002406c;" goto statement_identifier ;) })) }) (else_clause "else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" else (compound_statement "{\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" { (expression_statement "iStack_218c = iVar8 << 1;" (assignment_expression "iStack_218c = iVar8 << 1" identifier = (binary_expression "iVar8 << 1" identifier << number_literal)) ;) (expression_statement "iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();" (assignment_expression "iStack_2188 = (**(code **)(puVar20 + 0x25ab8))()" identifier = (call_expression "(**(code **)(puVar20 + 0x25ab8))()" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab8))" ( (pointer_expression "**(code **)(puVar20 + 0x25ab8)" * (pointer_expression "*(code **)(puVar20 + 0x25ab8)" * (cast_expression "(code **)(puVar20 + 0x25ab8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ab8)" ( (binary_expression "puVar20 + 0x25ab8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "iStack_2188 = iVar8 * iStack_2188;" (assignment_expression "iStack_2188 = iVar8 * iStack_2188" identifier = (binary_expression "iVar8 * iStack_2188" identifier * identifier)) ;) (expression_statement "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);" (assignment_expression "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab0))" ( (pointer_expression "**(code **)(puVar20 + 0x25ab0)" * (pointer_expression "*(code **)(puVar20 + 0x25ab0)" * (cast_expression "(code **)(puVar20 + 0x25ab0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25ab0)" ( (binary_expression "puVar20 + 0x25ab0" identifier + number_literal) ))))) )) (argument_list "(iStack_2188 + 1)" ( (binary_expression "iStack_2188 + 1" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = &iStack_218c;" (assignment_expression "piVar13 = &iStack_218c" identifier = (pointer_expression "&iStack_218c" & identifier)) ;) (expression_statement "ppuVar12 = &puStack_2194;" (assignment_expression "ppuVar12 = &puStack_2194" identifier = (pointer_expression "&puStack_2194" & identifier)) ;) (expression_statement "piStack_2190 = piVar3;" (assignment_expression "piStack_2190 = piVar3" identifier = identifier) ;) (expression_statement "iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);" (assignment_expression "iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" identifier = (call_expression "(**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" (parenthesized_expression "(**(code **)(puVar20 + 0x25b10))" ( (pointer_expression "**(code **)(puVar20 + 0x25b10)" * (pointer_expression "*(code **)(puVar20 + 0x25b10)" * (cast_expression "(code **)(puVar20 + 0x25b10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25b10)" ( (binary_expression "puVar20 + 0x25b10" identifier + number_literal) ))))) )) (argument_list "(iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" ( identifier , identifier , identifier , (pointer_expression "&piStack_2190" & identifier) , (pointer_expression "&iStack_2188" & identifier) )))) ;) (expression_statement "(**(code **)(puVar20 + 0x25b14))(iVar19);" (call_expression "(**(code **)(puVar20 + 0x25b14))(iVar19)" (parenthesized_expression "(**(code **)(puVar20 + 0x25b14))" ( (pointer_expression "**(code **)(puVar20 + 0x25b14)" * (pointer_expression "*(code **)(puVar20 + 0x25b14)" * (cast_expression "(code **)(puVar20 + 0x25b14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25b14)" ( (binary_expression "puVar20 + 0x25b14" identifier + number_literal) ))))) )) (argument_list "(iVar19)" ( identifier ))) ;) (if_statement "if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }" { (expression_statement "(**(code **)(puVar20 + 0x25af4))(piVar3);" (call_expression "(**(code **)(puVar20 + 0x25af4))(piVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af4))" ( (pointer_expression "**(code **)(puVar20 + 0x25af4)" * (pointer_expression "*(code **)(puVar20 + 0x25af4)" * (cast_expression "(code **)(puVar20 + 0x25af4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af4)" ( (binary_expression "puVar20 + 0x25af4" identifier + number_literal) ))))) )) (argument_list "(piVar3)" ( identifier ))) ;) (goto_statement "goto LAB_000241a8;" goto statement_identifier ;) })) (expression_statement "*(char *)piStack_2190 = '\0';" (assignment_expression "*(char *)piStack_2190 = '\0'" (pointer_expression "*(char *)piStack_2190" * (cast_expression "(char *)piStack_2190" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (piVar3 == (int *)0x0) goto LAB_000241a8;" if (parenthesized_expression "(piVar3 == (int *)0x0)" ( (binary_expression "piVar3 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000241a8;" goto statement_identifier ;)) }))) (expression_statement "iVar4 = iStack_2084;" (assignment_expression "iVar4 = iStack_2084" identifier = identifier) ;) (if_statement "if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }" if (parenthesized_expression "(iStack_2084 == *piVar16)" ( (binary_expression "iStack_2084 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n          return piVar3;\n        }" { (return_statement "return piVar3;" return identifier ;) })) (goto_statement "goto LAB_000241f4;" goto statement_identifier ;) })) })) })) (labeled_statement "LAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);" statement_identifier : (expression_statement "iVar4 = *(int *)(puVar20 + 0x25930);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x25930)" identifier = (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) ))))) ;)) (if_statement "if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }" if (parenthesized_expression "(iStack_2084 == *piVar16)" ( (binary_expression "iStack_2084 == *piVar16" identifier == (pointer_expression "*piVar16" * identifier)) )) (compound_statement "{\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }" { (expression_statement "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);" (assignment_expression "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" identifier = (cast_expression "(int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af0))" ( (pointer_expression "**(code **)(puVar20 + 0x25af0)" * (pointer_expression "*(code **)(puVar20 + 0x25af0)" * (cast_expression "(code **)(puVar20 + 0x25af0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25af0)" ( (binary_expression "puVar20 + 0x25af0" identifier + number_literal) ))))) )) (argument_list "(*(int *)(puVar20 + 0x25930) + 0x1a28)" ( (binary_expression "*(int *)(puVar20 + 0x25930) + 0x1a28" (pointer_expression "*(int *)(puVar20 + 0x25930)" * (cast_expression "(int *)(puVar20 + 0x25930)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar20 + 0x25930)" ( (binary_expression "puVar20 + 0x25930" identifier + number_literal) )))) + number_literal) ))))) ;) (return_statement "return piVar13;" return identifier ;) })) (labeled_statement "LAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);" statement_identifier : (expression_statement "pcVar21 = *(code **)(puVar20 + 0x25adc);" (assignment_expression "pcVar21 = *(code **)(puVar20 + 0x25adc)" identifier = (pointer_expression "*(code **)(puVar20 + 0x25adc)" * (cast_expression "(code **)(puVar20 + 0x25adc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar20 + 0x25adc)" ( (binary_expression "puVar20 + 0x25adc" identifier + number_literal) ))))) ;)) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" ( (pointer_expression "*pcVar21" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "piVar3 = (int *)_DT_INIT();" (assignment_expression "piVar3 = (int *)_DT_INIT()" identifier = (cast_expression "(int *)_DT_INIT()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "_DT_INIT()" identifier (argument_list "()" ( ))))) ;) (expression_statement "puVar17 = *(undefined4 **)(pcVar21 + 0x25718);" (assignment_expression "puVar17 = *(undefined4 **)(pcVar21 + 0x25718)" identifier = (pointer_expression "*(undefined4 **)(pcVar21 + 0x25718)" * (cast_expression "(undefined4 **)(pcVar21 + 0x25718)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar21 + 0x25718)" ( (binary_expression "pcVar21 + 0x25718" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;" (assignment_expression "iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2" identifier = (binary_expression "*(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2" (binary_expression "*(int *)(pcVar21 + 0x25718) - (int)puVar17" (pointer_expression "*(int *)(pcVar21 + 0x25718)" * (cast_expression "(int *)(pcVar21 + 0x25718)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar21 + 0x25718)" ( (binary_expression "pcVar21 + 0x25718" identifier + number_literal) )))) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) >> number_literal)) ;) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (if_statement "if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (compound_statement "{\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }" { (do_statement "do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);" do (compound_statement "{\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);" (assignment_expression "piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" identifier = (cast_expression "(int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" (parenthesized_expression "(*(code *)*puVar17)" ( (pointer_expression "*(code *)*puVar17" * (cast_expression "(code *)*puVar17" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar17" * identifier))) )) (argument_list "(iVar4,ppuVar12,piVar13)" ( identifier , identifier , identifier ))))) ;) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" identifier = (binary_expression "puVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 != iVar19)" ( (binary_expression "iVar8 != iVar19" identifier != identifier) )) ;) })) (return_statement "return piVar3;" return identifier ;) (labeled_statement "LAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" statement_identifier : (while_statement "while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" while (parenthesized_expression "(local_2034 == '/')" ( (binary_expression "local_2034 == '/'" identifier == (char_literal "'/'" ' character ')) )) (compound_statement "{\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" { (expression_statement "local_2034 = pcVar9[2];" (assignment_expression "local_2034 = pcVar9[2]" identifier = (subscript_expression "pcVar9[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) }))) (expression_statement "*(char *)piVar13 = '/';" (assignment_expression "*(char *)piVar13 = '/'" (pointer_expression "*(char *)piVar13" * (cast_expression "(char *)piVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (char_literal "'/'" ' character ')) ;) (expression_statement "pcVar5 = pcVar6 + -1;" (assignment_expression "pcVar5 = pcVar6 + -1" identifier = (binary_expression "pcVar6 + -1" identifier + number_literal)) ;) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" identifier = (cast_expression "(int *)((int)piVar13 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar13 + 1)" ( (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) (labeled_statement "code_r0x00023e64:\n  local_2034 = pcVar9[2];" statement_identifier : (expression_statement "local_2034 = pcVar9[2];" (assignment_expression "local_2034 = pcVar9[2]" identifier = (subscript_expression "pcVar9[2]" identifier [ number_literal ])) ;)) (expression_statement "pcVar9 = pcVar9 + 2;" (assignment_expression "pcVar9 = pcVar9 + 2" identifier = (binary_expression "pcVar9 + 2" identifier + number_literal)) ;) (goto_statement "goto LAB_00023d1c;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression LIT - IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)))) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (break_statement break ;)) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) 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) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( IDENT , IDENT ))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , LIT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) | LIT) , (call_expression IDENT (argument_list ( IDENT , IDENT ))) , (pointer_expression & IDENT) , LIT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT - LIT) ))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT << LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return IDENT ;) })) (goto_statement goto statement_identifier ;) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (return_statement return IDENT ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_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)) >> LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) (return_statement return IDENT ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })))
(function_definition "int * get_usb_device(undefined4 param_1,undefined4 param_2)\n\n{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}" (primitive_type "int") (pointer_declarator "* get_usb_device(undefined4 param_1,undefined4 param_2)" (* "*") (function_declarator "get_usb_device(undefined4 param_1,undefined4 param_2)" (identifier "get_usb_device") (parameter_list "(undefined4 param_1,undefined4 param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) () ")")))) (compound_statement "{\n  char *pcVar1;\n  undefined *puVar2;\n  int *piVar3;\n  int iVar4;\n  char *pcVar5;\n  char *pcVar6;\n  undefined4 uVar7;\n  int iVar8;\n  char *pcVar9;\n  char cVar10;\n  undefined1 **ppuVar11;\n  undefined1 **ppuVar12;\n  int *piVar13;\n  int iVar14;\n  int *piVar15;\n  int *piVar16;\n  undefined4 *puVar17;\n  undefined1 *puVar18;\n  int iVar19;\n  undefined *puVar20;\n  code *pcVar21;\n  undefined1 *puStack_2194;\n  int *piStack_2190;\n  int iStack_218c;\n  int iStack_2188;\n  byte bStack_2184;\n  char cStack_2183;\n  undefined1 uStack_2182;\n  undefined1 uStack_2181;\n  int iStack_2084;\n  int *piStack_207c;\n  char *pcStack_2078;\n  int *piStack_2074;\n  undefined *puStack_2070;\n  undefined1 *puStack_206c;\n  int *piStack_2068;\n  code *pcStack_2064;\n  undefined1 *local_2050;\n  int *local_204c;\n  undefined4 local_2048;\n  undefined4 local_2044;\n  int local_2038;\n  char local_2034;\n  char local_2033 [4099];\n  undefined1 local_1030 [4100];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_00049a28;\n  puVar18 = &DAT_0000002f;\n  local_2c = *(int *)PTR___stack_chk_guard_00049a28;\n  FUN_00023ac0(param_2,&local_2034);\n  local_1030[0] = 0;\n  pcVar9 = &local_2034;\n  if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }\nLAB_00023d1c:\n  pcVar6 = pcVar5;\n  cVar10 = local_2034;\n  if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }\n  *(char *)piVar13 = '\0';\n  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);\n  if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }\n  ppuVar11 = (undefined1 **)0x0;\n  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);\n  if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }\n  pcVar21 = get_dev_string;\n  iVar4 = local_2c;\n  puVar20 = PTR___stack_chk_fail_00049a1c;\n  (*(code *)PTR___stack_chk_fail_00049a1c)();\n  piVar16 = *(int **)(puVar20 + 0x25ae8);\n  puStack_2070 = puVar2;\n  iStack_2084 = *piVar16;\n  piStack_207c = piVar15;\n  pcStack_2078 = &local_2034;\n  piStack_2074 = (int *)local_1030;\n  puStack_206c = puVar18;\n  piStack_2068 = piVar3;\n  pcStack_2064 = pcVar21;\n  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }\n  piVar13 = (int *)0x6;\n  ppuVar12 = (undefined1 **)&DAT_00000080;\n  iVar19 = (**(code **)(puVar20 + 0x25a1c))();\n  if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }\nLAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);\n  if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }\nLAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);\n  (*pcVar21)();\n  piVar3 = (int *)_DT_INIT();\n  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);\n  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;\n  iVar19 = 0;\n  if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }\n  return piVar3;\nLAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }\n  *(char *)piVar13 = '/';\n  pcVar5 = pcVar6 + -1;\n  pcVar9 = pcVar9 + 1;\n  piVar13 = (int *)((int)piVar13 + 1);\n  goto LAB_00023d1c;\ncode_r0x00023e64:\n  local_2034 = pcVar9[2];\n  pcVar9 = pcVar9 + 2;\n  goto LAB_00023d1c;\n}" ({ "{") (declaration "char *pcVar1;" (primitive_type "char") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "char cVar10;" (primitive_type "char") (identifier "cVar10") (; ";")) (declaration "undefined1 **ppuVar11;" (type_identifier "undefined1") (pointer_declarator "**ppuVar11" (* "*") (pointer_declarator "*ppuVar11" (* "*") (identifier "ppuVar11"))) (; ";")) (declaration "undefined1 **ppuVar12;" (type_identifier "undefined1") (pointer_declarator "**ppuVar12" (* "*") (pointer_declarator "*ppuVar12" (* "*") (identifier "ppuVar12"))) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "int *piVar16;" (primitive_type "int") (pointer_declarator "*piVar16" (* "*") (identifier "piVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "code *pcVar21;" (type_identifier "code") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "undefined1 *puStack_2194;" (type_identifier "undefined1") (pointer_declarator "*puStack_2194" (* "*") (identifier "puStack_2194")) (; ";")) (declaration "int *piStack_2190;" (primitive_type "int") (pointer_declarator "*piStack_2190" (* "*") (identifier "piStack_2190")) (; ";")) (declaration "int iStack_218c;" (primitive_type "int") (identifier "iStack_218c") (; ";")) (declaration "int iStack_2188;" (primitive_type "int") (identifier "iStack_2188") (; ";")) (declaration "byte bStack_2184;" (type_identifier "byte") (identifier "bStack_2184") (; ";")) (declaration "char cStack_2183;" (primitive_type "char") (identifier "cStack_2183") (; ";")) (declaration "undefined1 uStack_2182;" (type_identifier "undefined1") (identifier "uStack_2182") (; ";")) (declaration "undefined1 uStack_2181;" (type_identifier "undefined1") (identifier "uStack_2181") (; ";")) (declaration "int iStack_2084;" (primitive_type "int") (identifier "iStack_2084") (; ";")) (declaration "int *piStack_207c;" (primitive_type "int") (pointer_declarator "*piStack_207c" (* "*") (identifier "piStack_207c")) (; ";")) (declaration "char *pcStack_2078;" (primitive_type "char") (pointer_declarator "*pcStack_2078" (* "*") (identifier "pcStack_2078")) (; ";")) (declaration "int *piStack_2074;" (primitive_type "int") (pointer_declarator "*piStack_2074" (* "*") (identifier "piStack_2074")) (; ";")) (declaration "undefined *puStack_2070;" (type_identifier "undefined") (pointer_declarator "*puStack_2070" (* "*") (identifier "puStack_2070")) (; ";")) (declaration "undefined1 *puStack_206c;" (type_identifier "undefined1") (pointer_declarator "*puStack_206c" (* "*") (identifier "puStack_206c")) (; ";")) (declaration "int *piStack_2068;" (primitive_type "int") (pointer_declarator "*piStack_2068" (* "*") (identifier "piStack_2068")) (; ";")) (declaration "code *pcStack_2064;" (type_identifier "code") (pointer_declarator "*pcStack_2064" (* "*") (identifier "pcStack_2064")) (; ";")) (declaration "undefined1 *local_2050;" (type_identifier "undefined1") (pointer_declarator "*local_2050" (* "*") (identifier "local_2050")) (; ";")) (declaration "int *local_204c;" (primitive_type "int") (pointer_declarator "*local_204c" (* "*") (identifier "local_204c")) (; ";")) (declaration "undefined4 local_2048;" (type_identifier "undefined4") (identifier "local_2048") (; ";")) (declaration "undefined4 local_2044;" (type_identifier "undefined4") (identifier "local_2044") (; ";")) (declaration "int local_2038;" (primitive_type "int") (identifier "local_2038") (; ";")) (declaration "char local_2034;" (primitive_type "char") (identifier "local_2034") (; ";")) (declaration "char local_2033 [4099];" (primitive_type "char") (array_declarator "local_2033 [4099]" (identifier "local_2033") ([ "[") (number_literal "4099") (] "]")) (; ";")) (declaration "undefined1 local_1030 [4100];" (type_identifier "undefined1") (array_declarator "local_1030 [4100]" (identifier "local_1030") ([ "[") (number_literal "4100") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_00049a28;" (assignment_expression "puVar2 = PTR___stack_chk_guard_00049a28" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_00049a28")) (; ";")) (expression_statement "puVar18 = &DAT_0000002f;" (assignment_expression "puVar18 = &DAT_0000002f" (identifier "puVar18") (= "=") (pointer_expression "&DAT_0000002f" (& "&") (identifier "DAT_0000002f"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00049a28;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00049a28" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00049a28" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00049a28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00049a28")))) (; ";")) (expression_statement "FUN_00023ac0(param_2,&local_2034);" (call_expression "FUN_00023ac0(param_2,&local_2034)" (identifier "FUN_00023ac0") (argument_list "(param_2,&local_2034)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&local_2034" (& "&") (identifier "local_2034")) () ")"))) (; ";")) (expression_statement "local_1030[0] = 0;" (assignment_expression "local_1030[0] = 0" (subscript_expression "local_1030[0]" (identifier "local_1030") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar9 = &local_2034;" (assignment_expression "pcVar9 = &local_2034" (identifier "pcVar9") (= "=") (pointer_expression "&local_2034" (& "&") (identifier "local_2034"))) (; ";")) (if_statement "if (local_2034 == '/') {\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }\n  else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" (if "if") (parenthesized_expression "(local_2034 == '/')" (( "(") (binary_expression "local_2034 == '/'" (identifier "local_2034") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n    pcVar5 = (char *)0x1001;\n    piVar13 = (int *)local_1030;\n    piVar3 = (int *)local_1030;\n  }" ({ "{") (expression_statement "pcVar5 = (char *)0x1001;" (assignment_expression "pcVar5 = (char *)0x1001" (identifier "pcVar5") (= "=") (cast_expression "(char *)0x1001" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1001"))) (; ";")) (expression_statement "piVar13 = (int *)local_1030;" (assignment_expression "piVar13 = (int *)local_1030" (identifier "piVar13") (= "=") (cast_expression "(int *)local_1030" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_1030"))) (; ";")) (expression_statement "piVar3 = (int *)local_1030;" (assignment_expression "piVar3 = (int *)local_1030" (identifier "piVar3") (= "=") (cast_expression "(int *)local_1030" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_1030"))) (; ";")) (} "}")) (else_clause "else {\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" (else "else") (compound_statement "{\n    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);\n    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);\n    pcVar5 = (char *)(0x1000 - iVar4);\n    *(char *)((int)local_1030 + iVar4) = '/';\n    piVar13 = (int *)(local_1030 + iVar4 + 1);\n  }" ({ "{") (expression_statement "piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);" (assignment_expression "piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001)" (parenthesized_expression "(*(code *)PTR_getcwd_000499bc)" (( "(") (pointer_expression "*(code *)PTR_getcwd_000499bc" (* "*") (cast_expression "(code *)PTR_getcwd_000499bc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_getcwd_000499bc"))) () ")")) (argument_list "(local_1030,0x1001)" (( "(") (identifier "local_1030") (, ",") (number_literal "0x1001") () ")"))))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);" (assignment_expression "iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_strlen_000499b4)(piVar3)" (parenthesized_expression "(*(code *)PTR_strlen_000499b4)" (( "(") (pointer_expression "*(code *)PTR_strlen_000499b4" (* "*") (cast_expression "(code *)PTR_strlen_000499b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_000499b4"))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)(0x1000 - iVar4);" (assignment_expression "pcVar5 = (char *)(0x1000 - iVar4)" (identifier "pcVar5") (= "=") (cast_expression "(char *)(0x1000 - iVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(0x1000 - iVar4)" (( "(") (binary_expression "0x1000 - iVar4" (number_literal "0x1000") (- "-") (identifier "iVar4")) () ")")))) (; ";")) (expression_statement "*(char *)((int)local_1030 + iVar4) = '/';" (assignment_expression "*(char *)((int)local_1030 + iVar4) = '/'" (pointer_expression "*(char *)((int)local_1030 + iVar4)" (* "*") (cast_expression "(char *)((int)local_1030 + iVar4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_1030 + iVar4)" (( "(") (binary_expression "(int)local_1030 + iVar4" (cast_expression "(int)local_1030" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_1030")) (+ "+") (identifier "iVar4")) () ")")))) (= "=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (; ";")) (expression_statement "piVar13 = (int *)(local_1030 + iVar4 + 1);" (assignment_expression "piVar13 = (int *)(local_1030 + iVar4 + 1)" (identifier "piVar13") (= "=") (cast_expression "(int *)(local_1030 + iVar4 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_1030 + iVar4 + 1)" (( "(") (binary_expression "local_1030 + iVar4 + 1" (binary_expression "local_1030 + iVar4" (identifier "local_1030") (+ "+") (identifier "iVar4")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_00023d1c:\n  pcVar6 = pcVar5;" (statement_identifier "LAB_00023d1c") (: ":") (expression_statement "pcVar6 = pcVar5;" (assignment_expression "pcVar6 = pcVar5" (identifier "pcVar6") (= "=") (identifier "pcVar5")) (; ";"))) (expression_statement "cVar10 = local_2034;" (assignment_expression "cVar10 = local_2034" (identifier "cVar10") (= "=") (identifier "local_2034")) (; ";")) (if_statement "if (local_2034 != '\0') {\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }" (if "if") (parenthesized_expression "(local_2034 != '\0')" (( "(") (binary_expression "local_2034 != '\0'" (identifier "local_2034") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    } while( true );" (do "do") (compound_statement "{\n      if (pcVar6 < (char *)0x2) break;\n      local_2034 = pcVar9[1];\n      if (cVar10 == '/') goto LAB_00023e2c;\n      if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }\n      *(char *)piVar13 = cVar10;\n      pcVar9 = pcVar9 + 1;\n      pcVar6 = pcVar6 + -1;\n      piVar13 = (int *)((int)piVar13 + 1);\n      cVar10 = local_2034;\n      if (local_2034 == '\0') break;\n    }" ({ "{") (if_statement "if (pcVar6 < (char *)0x2) break;" (if "if") (parenthesized_expression "(pcVar6 < (char *)0x2)" (( "(") (binary_expression "pcVar6 < (char *)0x2" (identifier "pcVar6") (< "<") (cast_expression "(char *)0x2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_2034 = pcVar9[1];" (assignment_expression "local_2034 = pcVar9[1]" (identifier "local_2034") (= "=") (subscript_expression "pcVar9[1]" (identifier "pcVar9") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (cVar10 == '/') goto LAB_00023e2c;" (if "if") (parenthesized_expression "(cVar10 == '/')" (( "(") (binary_expression "cVar10 == '/'" (identifier "cVar10") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (goto_statement "goto LAB_00023e2c;" (goto "goto") (statement_identifier "LAB_00023e2c") (; ";"))) (if_statement "if (cVar10 == '.') {\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }" (if "if") (parenthesized_expression "(cVar10 == '.')" (( "(") (binary_expression "cVar10 == '.'" (identifier "cVar10") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n        pcVar5 = pcVar6;\n        if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;\n      }" ({ "{") (expression_statement "pcVar5 = pcVar6;" (assignment_expression "pcVar5 = pcVar6" (identifier "pcVar5") (= "=") (identifier "pcVar6")) (; ";")) (if_statement "if (local_2034 == '.') {\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }\n        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" (if "if") (parenthesized_expression "(local_2034 == '.')" (( "(") (binary_expression "local_2034 == '.'" (identifier "local_2034") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }\n        }" ({ "{") (if_statement "if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }" (if "if") (parenthesized_expression "((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/'))" (( "(") (binary_expression "(pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')" (parenthesized_expression "(pcVar9[2] == '/')" (( "(") (binary_expression "pcVar9[2] == '/'" (subscript_expression "pcVar9[2]" (identifier "pcVar9") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)piVar13 + -1) == '/')" (( "(") (binary_expression "*(char *)((int)piVar13 + -1) == '/'" (pointer_expression "*(char *)((int)piVar13 + -1)" (* "*") (cast_expression "(char *)((int)piVar13 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -1)" (( "(") (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-1")) () ")")))) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            piVar15 = piVar13;\n            if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }\n            goto LAB_00023d1c;\n          }" ({ "{") (expression_statement "piVar15 = piVar13;" (assignment_expression "piVar15 = piVar13" (identifier "piVar15") (= "=") (identifier "piVar13")) (; ";")) (if_statement "if (piVar3 == (int *)((int)piVar13 + -1)) {\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }\n            else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" (if "if") (parenthesized_expression "(piVar3 == (int *)((int)piVar13 + -1))" (( "(") (binary_expression "piVar3 == (int *)((int)piVar13 + -1)" (identifier "piVar3") (== "==") (cast_expression "(int *)((int)piVar13 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -1)" (( "(") (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-1")) () ")")))) () ")")) (compound_statement "{\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n            }" ({ "{") (expression_statement "local_2034 = pcVar9[3];" (assignment_expression "local_2034 = pcVar9[3]" (identifier "local_2034") (= "=") (subscript_expression "pcVar9[3]" (identifier "pcVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + 3;" (assignment_expression "pcVar9 = pcVar9 + 3" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 3" (identifier "pcVar9") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (else_clause "else {\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" (else "else") (compound_statement "{\n              do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');\n              local_2034 = pcVar9[3];\n              pcVar9 = pcVar9 + 3;\n              piVar13 = piVar16;\n            }" ({ "{") (do_statement "do {\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              } while (*pcVar1 != '/');" (do "do") (compound_statement "{\n                piVar16 = (int *)((int)piVar15 + -1);\n                pcVar1 = (char *)((int)piVar15 + -2);\n                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));\n                piVar15 = piVar16;\n              }" ({ "{") (expression_statement "piVar16 = (int *)((int)piVar15 + -1);" (assignment_expression "piVar16 = (int *)((int)piVar15 + -1)" (identifier "piVar16") (= "=") (cast_expression "(int *)((int)piVar15 + -1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar15 + -1)" (( "(") (binary_expression "(int)piVar15 + -1" (cast_expression "(int)piVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar15")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "pcVar1 = (char *)((int)piVar15 + -2);" (assignment_expression "pcVar1 = (char *)((int)piVar15 + -2)" (identifier "pcVar1") (= "=") (cast_expression "(char *)((int)piVar15 + -2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar15 + -2)" (( "(") (binary_expression "(int)piVar15 + -2" (cast_expression "(int)piVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar15")) (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));" (assignment_expression "pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16))" (identifier "pcVar5") (= "=") (cast_expression "(char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + ((int)pcVar6 - (int)piVar16))" (( "(") (binary_expression "(int)piVar13 + ((int)pcVar6 - (int)piVar16)" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (parenthesized_expression "((int)pcVar6 - (int)piVar16)" (( "(") (binary_expression "(int)pcVar6 - (int)piVar16" (cast_expression "(int)pcVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar6")) (- "-") (cast_expression "(int)piVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar16"))) () ")"))) () ")")))) (; ";")) (expression_statement "piVar15 = piVar16;" (assignment_expression "piVar15 = piVar16" (identifier "piVar15") (= "=") (identifier "piVar16")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pcVar1 != '/')" (( "(") (binary_expression "*pcVar1 != '/'" (pointer_expression "*pcVar1" (* "*") (identifier "pcVar1")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (; ";")) (expression_statement "local_2034 = pcVar9[3];" (assignment_expression "local_2034 = pcVar9[3]" (identifier "local_2034") (= "=") (subscript_expression "pcVar9[3]" (identifier "pcVar9") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + 3;" (assignment_expression "pcVar9 = pcVar9 + 3" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 3" (identifier "pcVar9") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "piVar13 = piVar16;" (assignment_expression "piVar13 = piVar16" (identifier "piVar13") (= "=") (identifier "piVar16")) (; ";")) (} "}")))) (goto_statement "goto LAB_00023d1c;" (goto "goto") (statement_identifier "LAB_00023d1c") (; ";")) (} "}"))) (} "}")) (else_clause "else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" (else "else") (if_statement "if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))\n        goto code_r0x00023e64;" (if "if") (parenthesized_expression "((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))" (( "(") (binary_expression "(local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/')" (parenthesized_expression "(local_2034 == '/')" (( "(") (binary_expression "local_2034 == '/'" (identifier "local_2034") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)((int)piVar13 + -1) == '/')" (( "(") (binary_expression "*(char *)((int)piVar13 + -1) == '/'" (pointer_expression "*(char *)((int)piVar13 + -1)" (* "*") (cast_expression "(char *)((int)piVar13 + -1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + -1)" (( "(") (binary_expression "(int)piVar13 + -1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "-1")) () ")")))) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")"))) () ")")) (goto_statement "goto code_r0x00023e64;" (goto "goto") (statement_identifier "code_r0x00023e64") (; ";"))))) (} "}"))) (expression_statement "*(char *)piVar13 = cVar10;" (assignment_expression "*(char *)piVar13 = cVar10" (pointer_expression "*(char *)piVar13" (* "*") (cast_expression "(char *)piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar13"))) (= "=") (identifier "cVar10")) (; ";")) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + -1;" (assignment_expression "pcVar6 = pcVar6 + -1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + -1" (identifier "pcVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar13 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 1)" (( "(") (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "cVar10 = local_2034;" (assignment_expression "cVar10 = local_2034" (identifier "cVar10") (= "=") (identifier "local_2034")) (; ";")) (if_statement "if (local_2034 == '\0') break;" (if "if") (parenthesized_expression "(local_2034 == '\0')" (( "(") (binary_expression "local_2034 == '\0'" (identifier "local_2034") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "*(char *)piVar13 = '\0';" (assignment_expression "*(char *)piVar13 = '\0'" (pointer_expression "*(char *)piVar13" (* "*") (cast_expression "(char *)piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar13"))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);" (assignment_expression "iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038)" (identifier "iVar4") (= "=") (call_expression "(*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038)" (parenthesized_expression "(*(code *)PTR_libusb_get_device_list_000499b8)" (( "(") (pointer_expression "*(code *)PTR_libusb_get_device_list_000499b8" (* "*") (cast_expression "(code *)PTR_libusb_get_device_list_000499b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_libusb_get_device_list_000499b8"))) () ")")) (argument_list "(param_1,&local_2038)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_2038" (& "&") (identifier "local_2038")) () ")")))) (; ";")) (if_statement "if (iVar4 < 1) {\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }\n  else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" (if "if") (parenthesized_expression "(iVar4 < 1)" (( "(") (binary_expression "iVar4 < 1" (identifier "iVar4") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_00023ea0:\n    piVar15 = (int *)0x0;\n  }" ({ "{") (labeled_statement "LAB_00023ea0:\n    piVar15 = (int *)0x0;" (statement_identifier "LAB_00023ea0") (: ":") (expression_statement "piVar15 = (int *)0x0;" (assignment_expression "piVar15 = (int *)0x0" (identifier "piVar15") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (} "}")) (else_clause "else {\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" (else "else") (compound_statement "{\n    iVar19 = 0;\n    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);\n    puVar18 = PTR_s__00049870 + 0x1a18;\n    while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }\n    piVar15 = *(int **)(local_2038 + iVar14);\n  }" ({ "{") (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar3 = (int *)(PTR_s__00049870 + 0x1a08);" (assignment_expression "piVar3 = (int *)(PTR_s__00049870 + 0x1a08)" (identifier "piVar3") (= "=") (cast_expression "(int *)(PTR_s__00049870 + 0x1a08)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s__00049870 + 0x1a08)" (( "(") (binary_expression "PTR_s__00049870 + 0x1a08" (identifier "PTR_s__00049870") (+ "+") (number_literal "0x1a08")) () ")")))) (; ";")) (expression_statement "puVar18 = PTR_s__00049870 + 0x1a18;" (assignment_expression "puVar18 = PTR_s__00049870 + 0x1a18" (identifier "puVar18") (= "=") (binary_expression "PTR_s__00049870 + 0x1a18" (identifier "PTR_s__00049870") (+ "+") (number_literal "0x1a18"))) (; ";")) (while_statement "while( true ) {\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      iVar14 = iVar19 * 4;\n      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));\n      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));\n      piVar13 = (int *)0x1;\n      local_2050 = puVar18;\n      local_204c = piVar3;\n      local_2048 = uVar7;\n      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);\n      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);\n      if (iVar8 == 0) break;\n      iVar19 = iVar19 + 1;\n      if (iVar4 == iVar19) goto LAB_00023ea0;\n    }" ({ "{") (expression_statement "iVar14 = iVar19 * 4;" (assignment_expression "iVar14 = iVar19 * 4" (identifier "iVar14") (= "=") (binary_expression "iVar19 * 4" (identifier "iVar19") (* "*") (number_literal "4"))) (; ";")) (expression_statement "uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));" (assignment_expression "uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14))" (identifier "uVar7") (= "=") (call_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14))" (parenthesized_expression "(*(code *)PTR_libusb_get_bus_number_000499d4)" (( "(") (pointer_expression "*(code *)PTR_libusb_get_bus_number_000499d4" (* "*") (cast_expression "(code *)PTR_libusb_get_bus_number_000499d4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_libusb_get_bus_number_000499d4"))) () ")")) (argument_list "(*(undefined4 *)(local_2038 + iVar14))" (( "(") (pointer_expression "*(undefined4 *)(local_2038 + iVar14)" (* "*") (cast_expression "(undefined4 *)(local_2038 + iVar14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2038 + iVar14)" (( "(") (binary_expression "local_2038 + iVar14" (identifier "local_2038") (+ "+") (identifier "iVar14")) () ")")))) () ")")))) (; ";")) (expression_statement "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14));" (assignment_expression "local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14))" (identifier "local_2044") (= "=") (call_expression "(*(code *)PTR_libusb_get_device_address_0004993c)\n                             (*(undefined4 *)(local_2038 + iVar14))" (parenthesized_expression "(*(code *)PTR_libusb_get_device_address_0004993c)" (( "(") (pointer_expression "*(code *)PTR_libusb_get_device_address_0004993c" (* "*") (cast_expression "(code *)PTR_libusb_get_device_address_0004993c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_libusb_get_device_address_0004993c"))) () ")")) (argument_list "(*(undefined4 *)(local_2038 + iVar14))" (( "(") (pointer_expression "*(undefined4 *)(local_2038 + iVar14)" (* "*") (cast_expression "(undefined4 *)(local_2038 + iVar14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2038 + iVar14)" (( "(") (binary_expression "local_2038 + iVar14" (identifier "local_2038") (+ "+") (identifier "iVar14")) () ")")))) () ")")))) (; ";")) (expression_statement "piVar13 = (int *)0x1;" (assignment_expression "piVar13 = (int *)0x1" (identifier "piVar13") (= "=") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "local_2050 = puVar18;" (assignment_expression "local_2050 = puVar18" (identifier "local_2050") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "local_204c = piVar3;" (assignment_expression "local_204c = piVar3" (identifier "local_204c") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "local_2048 = uVar7;" (assignment_expression "local_2048 = uVar7" (identifier "local_2048") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "(*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);" (call_expression "(*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001)" (parenthesized_expression "(*(code *)PTR___snprintf_chk_00049a58)" (( "(") (pointer_expression "*(code *)PTR___snprintf_chk_00049a58" (* "*") (cast_expression "(code *)PTR___snprintf_chk_00049a58" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___snprintf_chk_00049a58"))) () ")")) (argument_list "(&local_2034,0x1001,1,0x1001)" (( "(") (pointer_expression "&local_2034" (& "&") (identifier "local_2034")) (, ",") (number_literal "0x1001") (, ",") (number_literal "1") (, ",") (number_literal "0x1001") () ")"))) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);" (assignment_expression "iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030)" (parenthesized_expression "(*(code *)PTR_strcmp_00049a4c)" (( "(") (pointer_expression "*(code *)PTR_strcmp_00049a4c" (* "*") (cast_expression "(code *)PTR_strcmp_00049a4c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strcmp_00049a4c"))) () ")")) (argument_list "(&local_2034,local_1030)" (( "(") (pointer_expression "&local_2034" (& "&") (identifier "local_2034")) (, ",") (identifier "local_1030") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) break;" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar4 == iVar19) goto LAB_00023ea0;" (if "if") (parenthesized_expression "(iVar4 == iVar19)" (( "(") (binary_expression "iVar4 == iVar19" (identifier "iVar4") (== "==") (identifier "iVar19")) () ")")) (goto_statement "goto LAB_00023ea0;" (goto "goto") (statement_identifier "LAB_00023ea0") (; ";"))) (} "}"))) (expression_statement "piVar15 = *(int **)(local_2038 + iVar14);" (assignment_expression "piVar15 = *(int **)(local_2038 + iVar14)" (identifier "piVar15") (= "=") (pointer_expression "*(int **)(local_2038 + iVar14)" (* "*") (cast_expression "(int **)(local_2038 + iVar14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_2038 + iVar14)" (( "(") (binary_expression "local_2038 + iVar14" (identifier "local_2038") (+ "+") (identifier "iVar14")) () ")"))))) (; ";")) (} "}")))) (expression_statement "ppuVar11 = (undefined1 **)0x0;" (assignment_expression "ppuVar11 = (undefined1 **)0x0" (identifier "ppuVar11") (= "=") (cast_expression "(undefined1 **)0x0" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "(*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);" (call_expression "(*(code *)PTR_libusb_free_device_list_0004996c)(local_2038)" (parenthesized_expression "(*(code *)PTR_libusb_free_device_list_0004996c)" (( "(") (pointer_expression "*(code *)PTR_libusb_free_device_list_0004996c" (* "*") (cast_expression "(code *)PTR_libusb_free_device_list_0004996c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_libusb_free_device_list_0004996c"))) () ")")) (argument_list "(local_2038)" (( "(") (identifier "local_2038") () ")"))) (; ";")) (if_statement "if (local_2c == *(int *)puVar2) {\n    return piVar15;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar2)" (( "(") (binary_expression "local_2c == *(int *)puVar2" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar2" (* "*") (cast_expression "(int *)puVar2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar2")))) () ")")) (compound_statement "{\n    return piVar15;\n  }" ({ "{") (return_statement "return piVar15;" (return "return") (identifier "piVar15") (; ";")) (} "}"))) (expression_statement "pcVar21 = get_dev_string;" (assignment_expression "pcVar21 = get_dev_string" (identifier "pcVar21") (= "=") (identifier "get_dev_string")) (; ";")) (expression_statement "iVar4 = local_2c;" (assignment_expression "iVar4 = local_2c" (identifier "iVar4") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar20 = PTR___stack_chk_fail_00049a1c;" (assignment_expression "puVar20 = PTR___stack_chk_fail_00049a1c" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_fail_00049a1c")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00049a1c)();" (call_expression "(*(code *)PTR___stack_chk_fail_00049a1c)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00049a1c)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00049a1c" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00049a1c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00049a1c"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar16 = *(int **)(puVar20 + 0x25ae8);" (assignment_expression "piVar16 = *(int **)(puVar20 + 0x25ae8)" (identifier "piVar16") (= "=") (pointer_expression "*(int **)(puVar20 + 0x25ae8)" (* "*") (cast_expression "(int **)(puVar20 + 0x25ae8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25ae8)" (( "(") (binary_expression "puVar20 + 0x25ae8" (identifier "puVar20") (+ "+") (number_literal "0x25ae8")) () ")"))))) (; ";")) (expression_statement "puStack_2070 = puVar2;" (assignment_expression "puStack_2070 = puVar2" (identifier "puStack_2070") (= "=") (identifier "puVar2")) (; ";")) (expression_statement "iStack_2084 = *piVar16;" (assignment_expression "iStack_2084 = *piVar16" (identifier "iStack_2084") (= "=") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) (; ";")) (expression_statement "piStack_207c = piVar15;" (assignment_expression "piStack_207c = piVar15" (identifier "piStack_207c") (= "=") (identifier "piVar15")) (; ";")) (expression_statement "pcStack_2078 = &local_2034;" (assignment_expression "pcStack_2078 = &local_2034" (identifier "pcStack_2078") (= "=") (pointer_expression "&local_2034" (& "&") (identifier "local_2034"))) (; ";")) (expression_statement "piStack_2074 = (int *)local_1030;" (assignment_expression "piStack_2074 = (int *)local_1030" (identifier "piStack_2074") (= "=") (cast_expression "(int *)local_1030" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_1030"))) (; ";")) (expression_statement "puStack_206c = puVar18;" (assignment_expression "puStack_206c = puVar18" (identifier "puStack_206c") (= "=") (identifier "puVar18")) (; ";")) (expression_statement "piStack_2068 = piVar3;" (assignment_expression "piStack_2068 = piVar3" (identifier "piStack_2068") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "pcStack_2064 = pcVar21;" (assignment_expression "pcStack_2064 = pcVar21" (identifier "pcStack_2064") (= "=") (identifier "pcVar21")) (; ";")) (if_statement "if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }" (if "if") (parenthesized_expression "((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0))" (( "(") (binary_expression "(iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)" (parenthesized_expression "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(ppuVar11 == (undefined1 **)0x0)" (( "(") (binary_expression "ppuVar11 == (undefined1 **)0x0" (identifier "ppuVar11") (== "==") (cast_expression "(undefined1 **)0x0" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    iVar4 = *(int *)(puVar20 + 0x25930);\n    ppuVar12 = ppuVar11;\n    if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }\n    goto LAB_000241f4;\n  }" ({ "{") (expression_statement "iVar4 = *(int *)(puVar20 + 0x25930);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x25930)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar20 + 0x25930)" (* "*") (cast_expression "(int *)(puVar20 + 0x25930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x25930)" (( "(") (binary_expression "puVar20 + 0x25930" (identifier "puVar20") (+ "+") (number_literal "0x25930")) () ")"))))) (; ";")) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" (identifier "ppuVar12") (= "=") (identifier "ppuVar11")) (; ";")) (if_statement "if (iStack_2084 == *piVar16) {\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }" (if "if") (parenthesized_expression "(iStack_2084 == *piVar16)" (( "(") (binary_expression "iStack_2084 == *piVar16" (identifier "iStack_2084") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n                    \n                    \n      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);\n      return piVar13;\n    }" ({ "{") (expression_statement "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);" (assignment_expression "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" (identifier "piVar13") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25af0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25af0)" (* "*") (cast_expression "(code **)(puVar20 + 0x25af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25af0)" (( "(") (binary_expression "puVar20 + 0x25af0" (identifier "puVar20") (+ "+") (number_literal "0x25af0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar20 + 0x25930) + -0x4ab0)" (( "(") (binary_expression "*(int *)(puVar20 + 0x25930) + -0x4ab0" (pointer_expression "*(int *)(puVar20 + 0x25930)" (* "*") (cast_expression "(int *)(puVar20 + 0x25930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x25930)" (( "(") (binary_expression "puVar20 + 0x25930" (identifier "puVar20") (+ "+") (number_literal "0x25930")) () ")")))) (+ "+") (number_literal "-0x4ab0")) () ")"))))) (; ";")) (return_statement "return piVar13;" (return "return") (identifier "piVar13") (; ";")) (} "}"))) (goto_statement "goto LAB_000241f4;" (goto "goto") (statement_identifier "LAB_000241f4") (; ";")) (} "}"))) (expression_statement "piVar13 = (int *)0x6;" (assignment_expression "piVar13 = (int *)0x6" (identifier "piVar13") (= "=") (cast_expression "(int *)0x6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (expression_statement "ppuVar12 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar12 = (undefined1 **)&DAT_00000080" (identifier "ppuVar12") (= "=") (cast_expression "(undefined1 **)&DAT_00000080" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_00000080" (& "&") (identifier "DAT_00000080")))) (; ";")) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25a1c))();" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25a1c))()" (identifier "iVar19") (= "=") (call_expression "(**(code **)(puVar20 + 0x25a1c))()" (parenthesized_expression "(**(code **)(puVar20 + 0x25a1c))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25a1c)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25a1c)" (* "*") (cast_expression "(code **)(puVar20 + 0x25a1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25a1c)" (( "(") (binary_expression "puVar20 + 0x25a1c" (identifier "puVar20") (+ "+") (number_literal "0x25a1c")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar19 == 4) {\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar19 == 4)" (( "(") (binary_expression "iVar19 == 4" (identifier "iVar19") (== "==") (number_literal "4")) () ")")) (compound_statement "{\n    if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }\n  }" ({ "{") (if_statement "if (CONCAT11(uStack_2181,uStack_2182) != 0) {\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }" (if "if") (parenthesized_expression "(CONCAT11(uStack_2181,uStack_2182) != 0)" (( "(") (binary_expression "CONCAT11(uStack_2181,uStack_2182) != 0" (call_expression "CONCAT11(uStack_2181,uStack_2182)" (identifier "CONCAT11") (argument_list "(uStack_2181,uStack_2182)" (( "(") (identifier "uStack_2181") (, ",") (identifier "uStack_2182") () ")"))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piVar13 = (int *)0x6;\n      ppuVar12 = (undefined1 **)&DAT_00000080;\n      iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);\n      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }\n    }" ({ "{") (expression_statement "piVar13 = (int *)0x6;" (assignment_expression "piVar13 = (int *)0x6" (identifier "piVar13") (= "=") (cast_expression "(int *)0x6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x6"))) (; ";")) (expression_statement "ppuVar12 = (undefined1 **)&DAT_00000080;" (assignment_expression "ppuVar12 = (undefined1 **)&DAT_00000080" (identifier "ppuVar12") (= "=") (cast_expression "(undefined1 **)&DAT_00000080" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (pointer_expression "&DAT_00000080" (& "&") (identifier "DAT_00000080")))) (; ";")) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000);" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" (identifier "iVar19") (= "=") (call_expression "(**(code **)(puVar20 + 0x25a1c))\n                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" (parenthesized_expression "(**(code **)(puVar20 + 0x25a1c))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25a1c)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25a1c)" (* "*") (cast_expression "(code **)(puVar20 + 0x25a1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25a1c)" (( "(") (binary_expression "puVar20 + 0x25a1c" (identifier "puVar20") (+ "+") (number_literal "0x25a1c")) () ")"))))) () ")")) (argument_list "(iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),\n                          &bStack_2184,0xfe,1000)" (( "(") (identifier "iVar4") (, ",") (number_literal "0x80") (, ",") (number_literal "6") (, ",") (binary_expression "(uint)ppuVar11 | 0x300" (cast_expression "(uint)ppuVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "ppuVar11")) (| "|") (number_literal "0x300")) (, ",") (call_expression "CONCAT11(uStack_2181,uStack_2182)" (identifier "CONCAT11") (argument_list "(uStack_2181,uStack_2182)" (( "(") (identifier "uStack_2181") (, ",") (identifier "uStack_2182") () ")"))) (, ",") (pointer_expression "&bStack_2184" (& "&") (identifier "bStack_2184")) (, ",") (number_literal "0xfe") (, ",") (number_literal "1000") () ")")))) (; ";")) (if_statement "if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }" (if "if") (parenthesized_expression "(((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03'))" (( "(") (binary_expression "((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')" (parenthesized_expression "((1 < iVar19) && (1 < bStack_2184))" (( "(") (binary_expression "(1 < iVar19) && (1 < bStack_2184)" (parenthesized_expression "(1 < iVar19)" (( "(") (binary_expression "1 < iVar19" (number_literal "1") (< "<") (identifier "iVar19")) () ")")) (&& "&&") (parenthesized_expression "(1 < bStack_2184)" (( "(") (binary_expression "1 < bStack_2184" (number_literal "1") (< "<") (identifier "bStack_2184")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(cStack_2183 == '\x03')" (( "(") (binary_expression "cStack_2183 == '\x03'" (identifier "cStack_2183") (== "==") (char_literal "'\x03'" (' "'") (escape_sequence "\x03") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        iVar8 = (int)(bStack_2184 - 2) >> 1;\n        puStack_2194 = &uStack_2182;\n        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);\n        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);\n        if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }\n        iVar4 = iStack_2084;\n        if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }\n        goto LAB_000241f4;\n      }" ({ "{") (expression_statement "iVar8 = (int)(bStack_2184 - 2) >> 1;" (assignment_expression "iVar8 = (int)(bStack_2184 - 2) >> 1" (identifier "iVar8") (= "=") (binary_expression "(int)(bStack_2184 - 2) >> 1" (cast_expression "(int)(bStack_2184 - 2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(bStack_2184 - 2)" (( "(") (binary_expression "bStack_2184 - 2" (identifier "bStack_2184") (- "-") (number_literal "2")) () ")"))) (>> ">>") (number_literal "1"))) (; ";")) (expression_statement "puStack_2194 = &uStack_2182;" (assignment_expression "puStack_2194 = &uStack_2182" (identifier "puStack_2194") (= "=") (pointer_expression "&uStack_2182" (& "&") (identifier "uStack_2182"))) (; ";")) (expression_statement "uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);" (assignment_expression "uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe)" (identifier "uVar7") (= "=") (call_expression "(**(code **)(puVar20 + 0x25a38))(0xe)" (parenthesized_expression "(**(code **)(puVar20 + 0x25a38))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25a38)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25a38)" (* "*") (cast_expression "(code **)(puVar20 + 0x25a38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25a38)" (( "(") (binary_expression "puVar20 + 0x25a38" (identifier "puVar20") (+ "+") (number_literal "0x25a38")) () ")"))))) () ")")) (argument_list "(0xe)" (( "(") (number_literal "0xe") () ")")))) (; ";")) (expression_statement "iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);" (assignment_expression "iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" (identifier "iVar19") (= "=") (call_expression "(**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" (parenthesized_expression "(**(code **)(puVar20 + 0x25aac))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25aac)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25aac)" (* "*") (cast_expression "(code **)(puVar20 + 0x25aac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25aac)" (( "(") (binary_expression "puVar20 + 0x25aac" (identifier "puVar20") (+ "+") (number_literal "0x25aac")) () ")"))))) () ")")) (argument_list "(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30)" (( "(") (identifier "uVar7") (, ",") (binary_expression "*(int *)(puVar20 + 0x25930) + 0x1a30" (pointer_expression "*(int *)(puVar20 + 0x25930)" (* "*") (cast_expression "(int *)(puVar20 + 0x25930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x25930)" (( "(") (binary_expression "puVar20 + 0x25930" (identifier "puVar20") (+ "+") (number_literal "0x25930")) () ")")))) (+ "+") (number_literal "0x1a30")) () ")")))) (; ";")) (if_statement "if (iVar19 == -1) {\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }\n        else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" (if "if") (parenthesized_expression "(iVar19 == -1)" (( "(") (binary_expression "iVar19 == -1" (identifier "iVar19") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\nLAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);\n          piVar13 = piVar3;\n          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);\n          ppuVar12 = ppuVar11;\n          if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }\n        }" ({ "{") (labeled_statement "LAB_000241a8:\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);" (statement_identifier "LAB_000241a8") (: ":") (expression_statement "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);" (assignment_expression "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f)" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + 0x25ab0))(0x7f)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x25ab0))(0x7f)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25ab0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25ab0)" (* "*") (cast_expression "(code **)(puVar20 + 0x25ab0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25ab0)" (( "(") (binary_expression "puVar20 + 0x25ab0" (identifier "puVar20") (+ "+") (number_literal "0x25ab0")) () ")"))))) () ")")) (argument_list "(0x7f)" (( "(") (number_literal "0x7f") () ")"))))) (; ";"))) (expression_statement "piVar13 = piVar3;" (assignment_expression "piVar13 = piVar3" (identifier "piVar13") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);" (assignment_expression "iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f)" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ad0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25ad0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25ad0)" (* "*") (cast_expression "(code **)(puVar20 + 0x25ad0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25ad0)" (( "(") (binary_expression "puVar20 + 0x25ad0" (identifier "puVar20") (+ "+") (number_literal "0x25ad0")) () ")"))))) () ")")) (argument_list "(iVar4,ppuVar11,piVar3,0x7f)" (( "(") (identifier "iVar4") (, ",") (identifier "ppuVar11") (, ",") (identifier "piVar3") (, ",") (number_literal "0x7f") () ")")))) (; ";")) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" (identifier "ppuVar12") (= "=") (identifier "ppuVar11")) (; ";")) (if_statement "if (iVar4 < 0) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }" (if "if") (parenthesized_expression "(iVar4 < 0)" (( "(") (binary_expression "iVar4 < 0" (identifier "iVar4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            ppuVar12 = ppuVar11;\n            goto LAB_0002406c;\n          }" ({ "{") (expression_statement "(**(code **)(puVar20 + 0x25af4))(piVar3);" (call_expression "(**(code **)(puVar20 + 0x25af4))(piVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af4))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25af4)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25af4)" (* "*") (cast_expression "(code **)(puVar20 + 0x25af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25af4)" (( "(") (binary_expression "puVar20 + 0x25af4" (identifier "puVar20") (+ "+") (number_literal "0x25af4")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")"))) (; ";")) (expression_statement "ppuVar12 = ppuVar11;" (assignment_expression "ppuVar12 = ppuVar11" (identifier "ppuVar12") (= "=") (identifier "ppuVar11")) (; ";")) (goto_statement "goto LAB_0002406c;" (goto "goto") (statement_identifier "LAB_0002406c") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" (else "else") (compound_statement "{\n          iStack_218c = iVar8 << 1;\n          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();\n          iStack_2188 = iVar8 * iStack_2188;\n          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);\n          piVar13 = &iStack_218c;\n          ppuVar12 = &puStack_2194;\n          piStack_2190 = piVar3;\n          iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);\n          (**(code **)(puVar20 + 0x25b14))(iVar19);\n          if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }\n          *(char *)piStack_2190 = '\0';\n          if (piVar3 == (int *)0x0) goto LAB_000241a8;\n        }" ({ "{") (expression_statement "iStack_218c = iVar8 << 1;" (assignment_expression "iStack_218c = iVar8 << 1" (identifier "iStack_218c") (= "=") (binary_expression "iVar8 << 1" (identifier "iVar8") (<< "<<") (number_literal "1"))) (; ";")) (expression_statement "iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();" (assignment_expression "iStack_2188 = (**(code **)(puVar20 + 0x25ab8))()" (identifier "iStack_2188") (= "=") (call_expression "(**(code **)(puVar20 + 0x25ab8))()" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab8))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25ab8)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25ab8)" (* "*") (cast_expression "(code **)(puVar20 + 0x25ab8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25ab8)" (( "(") (binary_expression "puVar20 + 0x25ab8" (identifier "puVar20") (+ "+") (number_literal "0x25ab8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iStack_2188 = iVar8 * iStack_2188;" (assignment_expression "iStack_2188 = iVar8 * iStack_2188" (identifier "iStack_2188") (= "=") (binary_expression "iVar8 * iStack_2188" (identifier "iVar8") (* "*") (identifier "iStack_2188"))) (; ";")) (expression_statement "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);" (assignment_expression "piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" (identifier "piVar3") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1)" (parenthesized_expression "(**(code **)(puVar20 + 0x25ab0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25ab0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25ab0)" (* "*") (cast_expression "(code **)(puVar20 + 0x25ab0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25ab0)" (( "(") (binary_expression "puVar20 + 0x25ab0" (identifier "puVar20") (+ "+") (number_literal "0x25ab0")) () ")"))))) () ")")) (argument_list "(iStack_2188 + 1)" (( "(") (binary_expression "iStack_2188 + 1" (identifier "iStack_2188") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (expression_statement "piVar13 = &iStack_218c;" (assignment_expression "piVar13 = &iStack_218c" (identifier "piVar13") (= "=") (pointer_expression "&iStack_218c" (& "&") (identifier "iStack_218c"))) (; ";")) (expression_statement "ppuVar12 = &puStack_2194;" (assignment_expression "ppuVar12 = &puStack_2194" (identifier "ppuVar12") (= "=") (pointer_expression "&puStack_2194" (& "&") (identifier "puStack_2194"))) (; ";")) (expression_statement "piStack_2190 = piVar3;" (assignment_expression "piStack_2190 = piVar3" (identifier "piStack_2190") (= "=") (identifier "piVar3")) (; ";")) (expression_statement "iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);" (assignment_expression "iVar8 = (**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(puVar20 + 0x25b10))\n                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" (parenthesized_expression "(**(code **)(puVar20 + 0x25b10))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25b10)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25b10)" (* "*") (cast_expression "(code **)(puVar20 + 0x25b10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25b10)" (( "(") (binary_expression "puVar20 + 0x25b10" (identifier "puVar20") (+ "+") (number_literal "0x25b10")) () ")"))))) () ")")) (argument_list "(iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188)" (( "(") (identifier "iVar19") (, ",") (identifier "ppuVar12") (, ",") (identifier "piVar13") (, ",") (pointer_expression "&piStack_2190" (& "&") (identifier "piStack_2190")) (, ",") (pointer_expression "&iStack_2188" (& "&") (identifier "iStack_2188")) () ")")))) (; ";")) (expression_statement "(**(code **)(puVar20 + 0x25b14))(iVar19);" (call_expression "(**(code **)(puVar20 + 0x25b14))(iVar19)" (parenthesized_expression "(**(code **)(puVar20 + 0x25b14))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25b14)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25b14)" (* "*") (cast_expression "(code **)(puVar20 + 0x25b14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25b14)" (( "(") (binary_expression "puVar20 + 0x25b14" (identifier "puVar20") (+ "+") (number_literal "0x25b14")) () ")"))))) () ")")) (argument_list "(iVar19)" (( "(") (identifier "iVar19") () ")"))) (; ";")) (if_statement "if (iVar8 == -1) {\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            (**(code **)(puVar20 + 0x25af4))(piVar3);\n            goto LAB_000241a8;\n          }" ({ "{") (expression_statement "(**(code **)(puVar20 + 0x25af4))(piVar3);" (call_expression "(**(code **)(puVar20 + 0x25af4))(piVar3)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af4))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25af4)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25af4)" (* "*") (cast_expression "(code **)(puVar20 + 0x25af4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25af4)" (( "(") (binary_expression "puVar20 + 0x25af4" (identifier "puVar20") (+ "+") (number_literal "0x25af4")) () ")"))))) () ")")) (argument_list "(piVar3)" (( "(") (identifier "piVar3") () ")"))) (; ";")) (goto_statement "goto LAB_000241a8;" (goto "goto") (statement_identifier "LAB_000241a8") (; ";")) (} "}"))) (expression_statement "*(char *)piStack_2190 = '\0';" (assignment_expression "*(char *)piStack_2190 = '\0'" (pointer_expression "*(char *)piStack_2190" (* "*") (cast_expression "(char *)piStack_2190" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piStack_2190"))) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (if_statement "if (piVar3 == (int *)0x0) goto LAB_000241a8;" (if "if") (parenthesized_expression "(piVar3 == (int *)0x0)" (( "(") (binary_expression "piVar3 == (int *)0x0" (identifier "piVar3") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000241a8;" (goto "goto") (statement_identifier "LAB_000241a8") (; ";"))) (} "}")))) (expression_statement "iVar4 = iStack_2084;" (assignment_expression "iVar4 = iStack_2084" (identifier "iVar4") (= "=") (identifier "iStack_2084")) (; ";")) (if_statement "if (iStack_2084 == *piVar16) {\n          return piVar3;\n        }" (if "if") (parenthesized_expression "(iStack_2084 == *piVar16)" (( "(") (binary_expression "iStack_2084 == *piVar16" (identifier "iStack_2084") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n          return piVar3;\n        }" ({ "{") (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (} "}"))) (goto_statement "goto LAB_000241f4;" (goto "goto") (statement_identifier "LAB_000241f4") (; ";")) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_0002406c:\n  iVar4 = *(int *)(puVar20 + 0x25930);" (statement_identifier "LAB_0002406c") (: ":") (expression_statement "iVar4 = *(int *)(puVar20 + 0x25930);" (assignment_expression "iVar4 = *(int *)(puVar20 + 0x25930)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar20 + 0x25930)" (* "*") (cast_expression "(int *)(puVar20 + 0x25930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x25930)" (( "(") (binary_expression "puVar20 + 0x25930" (identifier "puVar20") (+ "+") (number_literal "0x25930")) () ")"))))) (; ";"))) (if_statement "if (iStack_2084 == *piVar16) {\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }" (if "if") (parenthesized_expression "(iStack_2084 == *piVar16)" (( "(") (binary_expression "iStack_2084 == *piVar16" (identifier "iStack_2084") (== "==") (pointer_expression "*piVar16" (* "*") (identifier "piVar16"))) () ")")) (compound_statement "{\n                    \n                    \n    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);\n    return piVar13;\n  }" ({ "{") (expression_statement "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);" (assignment_expression "piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" (identifier "piVar13") (= "=") (cast_expression "(int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28)" (parenthesized_expression "(**(code **)(puVar20 + 0x25af0))" (( "(") (pointer_expression "**(code **)(puVar20 + 0x25af0)" (* "*") (pointer_expression "*(code **)(puVar20 + 0x25af0)" (* "*") (cast_expression "(code **)(puVar20 + 0x25af0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25af0)" (( "(") (binary_expression "puVar20 + 0x25af0" (identifier "puVar20") (+ "+") (number_literal "0x25af0")) () ")"))))) () ")")) (argument_list "(*(int *)(puVar20 + 0x25930) + 0x1a28)" (( "(") (binary_expression "*(int *)(puVar20 + 0x25930) + 0x1a28" (pointer_expression "*(int *)(puVar20 + 0x25930)" (* "*") (cast_expression "(int *)(puVar20 + 0x25930)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar20 + 0x25930)" (( "(") (binary_expression "puVar20 + 0x25930" (identifier "puVar20") (+ "+") (number_literal "0x25930")) () ")")))) (+ "+") (number_literal "0x1a28")) () ")"))))) (; ";")) (return_statement "return piVar13;" (return "return") (identifier "piVar13") (; ";")) (} "}"))) (labeled_statement "LAB_000241f4:\n  pcVar21 = *(code **)(puVar20 + 0x25adc);" (statement_identifier "LAB_000241f4") (: ":") (expression_statement "pcVar21 = *(code **)(puVar20 + 0x25adc);" (assignment_expression "pcVar21 = *(code **)(puVar20 + 0x25adc)" (identifier "pcVar21") (= "=") (pointer_expression "*(code **)(puVar20 + 0x25adc)" (* "*") (cast_expression "(code **)(puVar20 + 0x25adc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar20 + 0x25adc)" (( "(") (binary_expression "puVar20 + 0x25adc" (identifier "puVar20") (+ "+") (number_literal "0x25adc")) () ")"))))) (; ";"))) (expression_statement "(*pcVar21)();" (call_expression "(*pcVar21)()" (parenthesized_expression "(*pcVar21)" (( "(") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar3 = (int *)_DT_INIT();" (assignment_expression "piVar3 = (int *)_DT_INIT()" (identifier "piVar3") (= "=") (cast_expression "(int *)_DT_INIT()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "_DT_INIT()" (identifier "_DT_INIT") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "puVar17 = *(undefined4 **)(pcVar21 + 0x25718);" (assignment_expression "puVar17 = *(undefined4 **)(pcVar21 + 0x25718)" (identifier "puVar17") (= "=") (pointer_expression "*(undefined4 **)(pcVar21 + 0x25718)" (* "*") (cast_expression "(undefined4 **)(pcVar21 + 0x25718)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar21 + 0x25718)" (( "(") (binary_expression "pcVar21 + 0x25718" (identifier "pcVar21") (+ "+") (number_literal "0x25718")) () ")"))))) (; ";")) (expression_statement "iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;" (assignment_expression "iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2" (identifier "iVar8") (= "=") (binary_expression "*(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2" (binary_expression "*(int *)(pcVar21 + 0x25718) - (int)puVar17" (pointer_expression "*(int *)(pcVar21 + 0x25718)" (* "*") (cast_expression "(int *)(pcVar21 + 0x25718)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar21 + 0x25718)" (( "(") (binary_expression "pcVar21 + 0x25718" (identifier "pcVar21") (+ "+") (number_literal "0x25718")) () ")")))) (- "-") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" (identifier "iVar19") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar8 != 0) {\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }" (if "if") (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);\n  }" ({ "{") (do_statement "do {\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    } while (iVar8 != iVar19);" (do "do") (compound_statement "{\n      iVar19 = iVar19 + 1;\n      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);\n      puVar17 = puVar17 + 1;\n    }" ({ "{") (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + 1" (identifier "iVar19") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);" (assignment_expression "piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)*puVar17)(iVar4,ppuVar12,piVar13)" (parenthesized_expression "(*(code *)*puVar17)" (( "(") (pointer_expression "*(code *)*puVar17" (* "*") (cast_expression "(code *)*puVar17" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar17" (* "*") (identifier "puVar17")))) () ")")) (argument_list "(iVar4,ppuVar12,piVar13)" (( "(") (identifier "iVar4") (, ",") (identifier "ppuVar12") (, ",") (identifier "piVar13") () ")"))))) (; ";")) (expression_statement "puVar17 = puVar17 + 1;" (assignment_expression "puVar17 = puVar17 + 1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + 1" (identifier "puVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar8 != iVar19)" (( "(") (binary_expression "iVar8 != iVar19" (identifier "iVar8") (!= "!=") (identifier "iVar19")) () ")")) (; ";")) (} "}"))) (return_statement "return piVar3;" (return "return") (identifier "piVar3") (; ";")) (labeled_statement "LAB_00023e2c:\n  while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" (statement_identifier "LAB_00023e2c") (: ":") (while_statement "while (local_2034 == '/') {\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" (while "while") (parenthesized_expression "(local_2034 == '/')" (( "(") (binary_expression "local_2034 == '/'" (identifier "local_2034") (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n    local_2034 = pcVar9[2];\n    pcVar9 = pcVar9 + 1;\n  }" ({ "{") (expression_statement "local_2034 = pcVar9[2];" (assignment_expression "local_2034 = pcVar9[2]" (identifier "local_2034") (= "=") (subscript_expression "pcVar9[2]" (identifier "pcVar9") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "*(char *)piVar13 = '/';" (assignment_expression "*(char *)piVar13 = '/'" (pointer_expression "*(char *)piVar13" (* "*") (cast_expression "(char *)piVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "piVar13"))) (= "=") (char_literal "'/'" (' "'") (character "/") (' "'"))) (; ";")) (expression_statement "pcVar5 = pcVar6 + -1;" (assignment_expression "pcVar5 = pcVar6 + -1" (identifier "pcVar5") (= "=") (binary_expression "pcVar6 + -1" (identifier "pcVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "pcVar9 = pcVar9 + 1;" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar13 = (int *)((int)piVar13 + 1);" (assignment_expression "piVar13 = (int *)((int)piVar13 + 1)" (identifier "piVar13") (= "=") (cast_expression "(int *)((int)piVar13 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar13 + 1)" (( "(") (binary_expression "(int)piVar13 + 1" (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_00023d1c;" (goto "goto") (statement_identifier "LAB_00023d1c") (; ";")) (labeled_statement "code_r0x00023e64:\n  local_2034 = pcVar9[2];" (statement_identifier "code_r0x00023e64") (: ":") (expression_statement "local_2034 = pcVar9[2];" (assignment_expression "local_2034 = pcVar9[2]" (identifier "local_2034") (= "=") (subscript_expression "pcVar9[2]" (identifier "pcVar9") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "pcVar9 = pcVar9 + 2;" (assignment_expression "pcVar9 = pcVar9 + 2" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 2" (identifier "pcVar9") (+ "+") (number_literal "2"))) (; ";")) (goto_statement "goto LAB_00023d1c;" (goto "goto") (statement_identifier "LAB_00023d1c") (; ";")) (} "}")))

type_1 * function_1(type_2 *ctx,char *path)

{
  type_1 *plVar1;
  type_3 *puVar2;
  int var_13;
  type_1 *var_7;
  int var_2;
  type_1 *plVar6;
  type_1 *var_4;
  type_4 uVar8;
  int var_11;
  char *var_5;
  type_1 var_6;
  type_1 *plVar11;
  type_5 *ctx_00;
  type_6 **var_15;
  type_6 **ppuVar15;
  size_t in_a2;
  type_1 *var_8;
  int *piVar17;
  type_4 *var_23;
  type_6 *puVar19;
  int var_12;
  type_3 *var_14;
  type_7 *var_22;
  type_6 *puStack_2194;
  type_1 *plStack_2190;
  int iStack_218c;
  int var_20;
  type_8 var_18;
  char var_19;
  type_6 uStack_2182;
  type_6 uStack_2181;
  type_5 *var_16;
  type_1 *plStack_207c;
  char *pcStack_2078;
  type_1 *plStack_2074;
  type_3 *puStack_2070;
  type_6 *puStack_206c;
  type_1 *plStack_2068;
  type_7 *pcStack_2064;
  type_6 *local_2050;
  type_1 *local_204c;
  type_4 local_2048;
  type_4 local_2044;
  type_1 **list;
  char device_path [4097];
  char var_3 [4097];
  type_1 *var_9;
  
  puVar2 = PTR___stack_chk_guard_00049a28;
  puVar19 = &DAT_0000002f;
  var_13 = *(int *)PTR___stack_chk_guard_00049a28;
  var_1(path,device_path,in_a2);
  var_3[0] = '\0';
  var_5 = device_path;
  if (device_path[0] == '/') {
    plVar6 = (type_1 *)0x1001;
    var_8 = (type_1 *)var_3;
    var_7 = (type_1 *)var_3;
  }
  else {
    var_7 = (type_1 *)(*(type_7 *)PTR_getcwd_000499bc)((type_1 *)var_3,0x1001);
    var_2 = (*(type_7 *)PTR_strlen_000499b4)(var_7);
    plVar6 = (type_1 *)(0x1000 - var_2);
    ((type_1 *)var_3)[var_2] = (type_1)0x2f;
    var_8 = (type_1 *)(var_3 + var_2 + 1);
  }
LAB_00023d1c:
  var_4 = plVar6;
  var_6 = (type_1)device_path[0];
  if ((type_1)device_path[0] != (type_1)0x0) {
    do {
      if (var_4 < (type_1 *)0x2) break;
      device_path[0] = *(char *)(var_5 + 1);
      if (var_6 == (type_1)0x2f) goto LAB_00023e2c;
      if (var_6 == (type_1)0x2e) {
        plVar6 = var_4;
        if ((type_1)device_path[0] == (type_1)0x2e) {
          if ((var_5[2] == '/') && (var_8[-1] == (type_1)0x2f)) {
            var_9 = var_8;
            if (var_7 == var_8 + -1) {
              device_path[0] = *(char *)(var_5 + 3);
              var_5 = var_5 + 3;
            }
            else {
              do {
                plVar11 = var_9 + -1;
                plVar1 = var_9 + -2;
                plVar6 = var_8 + ((int)var_4 - (int)plVar11);
                var_9 = plVar11;
              } while (*plVar1 != (type_1)0x2f);
              device_path[0] = *(char *)(var_5 + 3);
              var_5 = var_5 + 3;
              var_8 = plVar11;
            }
            goto LAB_00023d1c;
          }
        }
        else if (((type_1)device_path[0] == (type_1)0x2f) &&
                (var_8[-1] == (type_1)0x2f)) goto code_r0x00023e64;
      }
      *var_8 = var_6;
      var_5 = var_5 + 1;
      var_4 = var_4 + -1;
      var_8 = var_8 + 1;
      var_6 = (type_1)device_path[0];
      if ((type_1)device_path[0] == (type_1)0x0) break;
    } while( true );
  }
  *var_8 = (type_1)0x0;
  var_2 = (*(type_7 *)PTR_libusb_get_device_list_000499b8)(ctx,&list);
  if (var_2 < 1) {
LAB_00023ea0:
    plVar6 = (type_1 *)0x0;
  }
  else {
    var_12 = 0;
    var_7 = (type_1 *)(var_10 + 0x1a08);
    puVar19 = var_10 + 0x1a18;
    while( true ) {
      uVar8 = (*(type_7 *)PTR_libusb_get_bus_number_000499d4)(list[var_12]);
      local_2044 = (*(type_7 *)PTR_libusb_get_device_address_0004993c)(list[var_12]);
      var_8 = (type_1 *)0x1;
      local_2050 = puVar19;
      local_204c = var_7;
      local_2048 = uVar8;
      (*(type_7 *)PTR___snprintf_chk_00049a58)(device_path,0x1001,1,0x1001);
      var_11 = (*(type_7 *)PTR_strcmp_00049a4c)(device_path,(type_1 *)var_3);
      if (var_11 == 0) break;
      var_12 = var_12 + 1;
      if (var_2 == var_12) goto LAB_00023ea0;
    }
    plVar6 = list[var_12];
  }
  var_15 = (type_6 **)0x0;
  (*(type_7 *)PTR_libusb_free_device_list_0004996c)(list);
  if (var_13 == *(int *)puVar2) {
    return plVar6;
  }
  var_22 = get_dev_string;
  var_14 = PTR___stack_chk_fail_00049a1c;
  (*(type_7 *)PTR___stack_chk_fail_00049a1c)();
  piVar17 = *(int **)(var_14 + 0x25ae8);
  puStack_2070 = puVar2;
  var_16 = (type_5 *)*piVar17;
  plStack_207c = plVar6;
  pcStack_2078 = device_path;
  plStack_2074 = (type_1 *)var_3;
  puStack_206c = puVar19;
  plStack_2068 = var_7;
  pcStack_2064 = var_22;
  if ((var_13 == 0) || (var_15 == (type_6 **)0x0)) {
    ctx_00 = *(type_5 **)(var_14 + 0x25930);
    ppuVar15 = var_15;
    if (var_16 == (type_5 *)*piVar17) {
                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      var_8 = (type_1 *)
                (**(type_7 **)(var_14 + 0x25af0))(*(type_5 **)(var_14 + 0x25930) + -0x4ab0);
      return var_8;
    }
    goto LAB_000241f4;
  }
  var_8 = (type_1 *)0x6;
  ppuVar15 = (type_6 **)&DAT_00000080;
  var_2 = (**(type_7 **)(var_14 + 0x25a1c))();
  if (var_2 == 4) {
    if (var_17(uStack_2181,uStack_2182) != 0) {
      var_8 = (type_1 *)0x6;
      ppuVar15 = (type_6 **)&DAT_00000080;
      var_2 = (**(type_7 **)(var_14 + 0x25a1c))
                        (var_13,0x80,6,(type_9)var_15 | 0x300,var_17(uStack_2181,uStack_2182),
                         &var_18,0xfe,1000);
      if (((1 < var_2) && (1 < var_18)) && (var_19 == '\x03')) {
        var_12 = (int)(var_18 - 2) >> 1;
        puStack_2194 = &uStack_2182;
        uVar8 = (**(type_7 **)(var_14 + 0x25a38))(0xe);
        var_2 = (**(type_7 **)(var_14 + 0x25aac))(uVar8,*(int *)(var_14 + 0x25930) + 0x1a30);
        if (var_2 == -1) {
LAB_000241a8:
          var_7 = (type_1 *)(**(type_7 **)(var_14 + 0x25ab0))(0x7f);
          var_8 = var_7;
          var_13 = (**(type_7 **)(var_14 + 0x25ad0))(var_13,var_15,var_7,0x7f);
          ppuVar15 = var_15;
          if (var_13 < 0) {
            (**(type_7 **)(var_14 + 0x25af4))(var_7);
            ppuVar15 = var_15;
            goto LAB_0002406c;
          }
        }
        else {
          iStack_218c = var_12 << 1;
          var_20 = (**(type_7 **)(var_14 + 0x25ab8))();
          var_20 = var_12 * var_20;
          var_7 = (type_1 *)(**(type_7 **)(var_14 + 0x25ab0))(var_20 + 1);
          var_8 = (type_1 *)&iStack_218c;
          ppuVar15 = &puStack_2194;
          plStack_2190 = var_7;
          var_12 = (**(type_7 **)(var_14 + 0x25b10))
                             (var_2,ppuVar15,var_8,&plStack_2190,&var_20);
          (**(type_7 **)(var_14 + 0x25b14))(var_2);
          if (var_12 == -1) {
            (**(type_7 **)(var_14 + 0x25af4))(var_7);
            goto LAB_000241a8;
          }
          *plStack_2190 = (type_1)0x0;
          if (var_7 == (type_1 *)0x0) goto LAB_000241a8;
        }
        ctx_00 = var_16;
        if (var_16 == (type_5 *)*piVar17) {
          return var_7;
        }
        goto LAB_000241f4;
      }
    }
  }
LAB_0002406c:
  ctx_00 = *(type_5 **)(var_14 + 0x25930);
  if (var_16 == (type_5 *)*piVar17) {
                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    var_8 = (type_1 *)
              (**(type_7 **)(var_14 + 0x25af0))(*(type_5 **)(var_14 + 0x25930) + 0x1a28);
    return var_8;
  }
LAB_000241f4:
  var_22 = *(type_7 **)(var_14 + 0x25adc);
  (*var_22)();
  var_7 = (type_1 *)var_21(ctx_00);
  var_23 = *(type_4 **)(var_22 + 0x25718);
  var_2 = *(int *)(var_22 + 0x25718) - (int)var_23 >> 2;
  var_13 = 0;
  if (var_2 != 0) {
    do {
      var_13 = var_13 + 1;
      var_7 = (type_1 *)(*(type_7 *)*var_23)(ctx_00,ppuVar15,var_8);
      var_23 = var_23 + 1;
    } while (var_2 != var_13);
  }
  return var_7;
LAB_00023e2c:
  while ((type_1)device_path[0] == (type_1)0x2f) {
    device_path[0] = *(char *)(var_5 + 2);
    var_5 = var_5 + 1;
  }
  *var_8 = (type_1)0x2f;
  plVar6 = var_4 + -1;
  var_5 = var_5 + 1;
  var_8 = var_8 + 1;
  goto LAB_00023d1c;
code_r0x00023e64:
  device_path[0] = *(char *)(var_5 + 2);
  var_5 = var_5 + 2;
  goto LAB_00023d1c;
}


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

int * MASKED(undefined4 param_1,undefined4 param_2)

{
  char *pcVar1;
  undefined *puVar2;
  int *piVar3;
  int iVar4;
  char *pcVar5;
  char *pcVar6;
  undefined4 uVar7;
  int iVar8;
  char *pcVar9;
  char cVar10;
  undefined1 **ppuVar11;
  undefined1 **ppuVar12;
  int *piVar13;
  int iVar14;
  int *piVar15;
  int *piVar16;
  undefined4 *puVar17;
  undefined1 *puVar18;
  int iVar19;
  undefined *puVar20;
  code *pcVar21;
  undefined1 *puStack_2194;
  int *piStack_2190;
  int iStack_218c;
  int iStack_2188;
  byte bStack_2184;
  char cStack_2183;
  undefined1 uStack_2182;
  undefined1 uStack_2181;
  int iStack_2084;
  int *piStack_207c;
  char *pcStack_2078;
  int *piStack_2074;
  undefined *puStack_2070;
  undefined1 *puStack_206c;
  int *piStack_2068;
  code *pcStack_2064;
  undefined1 *local_2050;
  int *local_204c;
  undefined4 local_2048;
  undefined4 local_2044;
  int local_2038;
  char local_2034;
  char local_2033 [4099];
  undefined1 local_1030 [4100];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_00049a28;
  puVar18 = &DAT_0000002f;
  local_2c = *(int *)PTR___stack_chk_guard_00049a28;
  FUN_00023ac0(param_2,&local_2034);
  local_1030[0] = 0;
  pcVar9 = &local_2034;
  if (local_2034 == '/') {
    pcVar5 = (char *)0x1001;
    piVar13 = (int *)local_1030;
    piVar3 = (int *)local_1030;
  }
  else {
    piVar3 = (int *)(*(code *)PTR_getcwd_000499bc)(local_1030,0x1001);
    iVar4 = (*(code *)PTR_strlen_000499b4)(piVar3);
    pcVar5 = (char *)(0x1000 - iVar4);
    *(char *)((int)local_1030 + iVar4) = '/';
    piVar13 = (int *)(local_1030 + iVar4 + 1);
  }
LAB_00023d1c:
  pcVar6 = pcVar5;
  cVar10 = local_2034;
  if (local_2034 != '\0') {
    do {
      if (pcVar6 < (char *)0x2) break;
      local_2034 = pcVar9[1];
      if (cVar10 == '/') goto LAB_00023e2c;
      if (cVar10 == '.') {
        pcVar5 = pcVar6;
        if (local_2034 == '.') {
          if ((pcVar9[2] == '/') && (*(char *)((int)piVar13 + -1) == '/')) {
            piVar15 = piVar13;
            if (piVar3 == (int *)((int)piVar13 + -1)) {
              local_2034 = pcVar9[3];
              pcVar9 = pcVar9 + 3;
            }
            else {
              do {
                piVar16 = (int *)((int)piVar15 + -1);
                pcVar1 = (char *)((int)piVar15 + -2);
                pcVar5 = (char *)((int)piVar13 + ((int)pcVar6 - (int)piVar16));
                piVar15 = piVar16;
              } while (*pcVar1 != '/');
              local_2034 = pcVar9[3];
              pcVar9 = pcVar9 + 3;
              piVar13 = piVar16;
            }
            goto LAB_00023d1c;
          }
        }
        else if ((local_2034 == '/') && (*(char *)((int)piVar13 + -1) == '/'))
        goto code_r0x00023e64;
      }
      *(char *)piVar13 = cVar10;
      pcVar9 = pcVar9 + 1;
      pcVar6 = pcVar6 + -1;
      piVar13 = (int *)((int)piVar13 + 1);
      cVar10 = local_2034;
      if (local_2034 == '\0') break;
    } while( true );
  }
  *(char *)piVar13 = '\0';
  iVar4 = (*(code *)PTR_libusb_get_device_list_000499b8)(param_1,&local_2038);
  if (iVar4 < 1) {
LAB_00023ea0:
    piVar15 = (int *)0x0;
  }
  else {
    iVar19 = 0;
    piVar3 = (int *)(PTR_s__00049870 + 0x1a08);
    puVar18 = PTR_s__00049870 + 0x1a18;
    while( true ) {
      iVar14 = iVar19 * 4;
      uVar7 = (*(code *)PTR_libusb_get_bus_number_000499d4)(*(undefined4 *)(local_2038 + iVar14));
      local_2044 = (*(code *)PTR_libusb_get_device_address_0004993c)
                             (*(undefined4 *)(local_2038 + iVar14));
      piVar13 = (int *)0x1;
      local_2050 = puVar18;
      local_204c = piVar3;
      local_2048 = uVar7;
      (*(code *)PTR___snprintf_chk_00049a58)(&local_2034,0x1001,1,0x1001);
      iVar8 = (*(code *)PTR_strcmp_00049a4c)(&local_2034,local_1030);
      if (iVar8 == 0) break;
      iVar19 = iVar19 + 1;
      if (iVar4 == iVar19) goto LAB_00023ea0;
    }
    piVar15 = *(int **)(local_2038 + iVar14);
  }
  ppuVar11 = (undefined1 **)0x0;
  (*(code *)PTR_libusb_free_device_list_0004996c)(local_2038);
  if (local_2c == *(int *)puVar2) {
    return piVar15;
  }
  pcVar21 = get_dev_string;
  iVar4 = local_2c;
  puVar20 = PTR___stack_chk_fail_00049a1c;
  (*(code *)PTR___stack_chk_fail_00049a1c)();
  piVar16 = *(int **)(puVar20 + 0x25ae8);
  puStack_2070 = puVar2;
  iStack_2084 = *piVar16;
  piStack_207c = piVar15;
  pcStack_2078 = &local_2034;
  piStack_2074 = (int *)local_1030;
  puStack_206c = puVar18;
  piStack_2068 = piVar3;
  pcStack_2064 = pcVar21;
  if ((iVar4 == 0) || (ppuVar11 == (undefined1 **)0x0)) {
    iVar4 = *(int *)(puVar20 + 0x25930);
    ppuVar12 = ppuVar11;
    if (iStack_2084 == *piVar16) {
                    /* WARNING: Could not recover jumptable at 0x00023fc0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + -0x4ab0);
      return piVar13;
    }
    goto LAB_000241f4;
  }
  piVar13 = (int *)0x6;
  ppuVar12 = (undefined1 **)&DAT_00000080;
  iVar19 = (**(code **)(puVar20 + 0x25a1c))();
  if (iVar19 == 4) {
    if (CONCAT11(uStack_2181,uStack_2182) != 0) {
      piVar13 = (int *)0x6;
      ppuVar12 = (undefined1 **)&DAT_00000080;
      iVar19 = (**(code **)(puVar20 + 0x25a1c))
                         (iVar4,0x80,6,(uint)ppuVar11 | 0x300,CONCAT11(uStack_2181,uStack_2182),
                          &bStack_2184,0xfe,1000);
      if (((1 < iVar19) && (1 < bStack_2184)) && (cStack_2183 == '\x03')) {
        iVar8 = (int)(bStack_2184 - 2) >> 1;
        puStack_2194 = &uStack_2182;
        uVar7 = (**(code **)(puVar20 + 0x25a38))(0xe);
        iVar19 = (**(code **)(puVar20 + 0x25aac))(uVar7,*(int *)(puVar20 + 0x25930) + 0x1a30);
        if (iVar19 == -1) {
LAB_000241a8:
          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(0x7f);
          piVar13 = piVar3;
          iVar4 = (**(code **)(puVar20 + 0x25ad0))(iVar4,ppuVar11,piVar3,0x7f);
          ppuVar12 = ppuVar11;
          if (iVar4 < 0) {
            (**(code **)(puVar20 + 0x25af4))(piVar3);
            ppuVar12 = ppuVar11;
            goto LAB_0002406c;
          }
        }
        else {
          iStack_218c = iVar8 << 1;
          iStack_2188 = (**(code **)(puVar20 + 0x25ab8))();
          iStack_2188 = iVar8 * iStack_2188;
          piVar3 = (int *)(**(code **)(puVar20 + 0x25ab0))(iStack_2188 + 1);
          piVar13 = &iStack_218c;
          ppuVar12 = &puStack_2194;
          piStack_2190 = piVar3;
          iVar8 = (**(code **)(puVar20 + 0x25b10))
                            (iVar19,ppuVar12,piVar13,&piStack_2190,&iStack_2188);
          (**(code **)(puVar20 + 0x25b14))(iVar19);
          if (iVar8 == -1) {
            (**(code **)(puVar20 + 0x25af4))(piVar3);
            goto LAB_000241a8;
          }
          *(char *)piStack_2190 = '\0';
          if (piVar3 == (int *)0x0) goto LAB_000241a8;
        }
        iVar4 = iStack_2084;
        if (iStack_2084 == *piVar16) {
          return piVar3;
        }
        goto LAB_000241f4;
      }
    }
  }
LAB_0002406c:
  iVar4 = *(int *)(puVar20 + 0x25930);
  if (iStack_2084 == *piVar16) {
                    /* WARNING: Could not recover jumptable at 0x000240a0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    piVar13 = (int *)(**(code **)(puVar20 + 0x25af0))(*(int *)(puVar20 + 0x25930) + 0x1a28);
    return piVar13;
  }
LAB_000241f4:
  pcVar21 = *(code **)(puVar20 + 0x25adc);
  (*pcVar21)();
  piVar3 = (int *)_DT_INIT();
  puVar17 = *(undefined4 **)(pcVar21 + 0x25718);
  iVar8 = *(int *)(pcVar21 + 0x25718) - (int)puVar17 >> 2;
  iVar19 = 0;
  if (iVar8 != 0) {
    do {
      iVar19 = iVar19 + 1;
      piVar3 = (int *)(*(code *)*puVar17)(iVar4,ppuVar12,piVar13);
      puVar17 = puVar17 + 1;
    } while (iVar8 != iVar19);
  }
  return piVar3;
LAB_00023e2c:
  while (local_2034 == '/') {
    local_2034 = pcVar9[2];
    pcVar9 = pcVar9 + 1;
  }
  *(char *)piVar13 = '/';
  pcVar5 = pcVar6 + -1;
  pcVar9 = pcVar9 + 1;
  piVar13 = (int *)((int)piVar13 + 1);
  goto LAB_00023d1c;
code_r0x00023e64:
  local_2034 = pcVar9[2];
  pcVar9 = pcVar9 + 2;
  goto LAB_00023d1c;
}

