
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void list_i2c_busses_and_exit(void)

{
  int bus;
  ulong funcs;
  char name [128];
  char path [255];
  
}



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

void FUN_000275fd(void)

{
  DIR *__dirp;
  dirent64 *pdVar1;
  FILE *__stream;
  DIR *__dirp_00;
  int iVar2;
  char *pcVar3;
  char *pcVar4;
  int in_GS_OFFSET;
  byte bVar5;
  undefined4 local_1a8;
  uint local_1a4;
  char local_19f [128];
  char local_11f [255];
  undefined4 local_20;
  
  bVar5 = 0;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  __dirp = (DIR *)FUN_0001a25e();
LAB_00027644:
  do {
    do {
      pdVar1 = readdir64(__dirp);
      if (pdVar1 == (dirent64 *)0x0) {
                    /* WARNING: Subroutine does not return */
        exit(0);
      }
    } while (pdVar1->d_name[0] == '.');
    pcVar4 = pdVar1->d_name;
    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);
    __stream = fopen64(local_11f,"r");
    if (__stream != (FILE *)0x0) goto LAB_00027789;
    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);
    __stream = fopen64(local_11f,"r");
    if (__stream != (FILE *)0x0) goto LAB_00027789;
    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);
    __dirp_00 = opendir(local_11f);
    if (__dirp_00 != (DIR *)0x0) {
      do {
        do {
          pdVar1 = readdir64(__dirp_00);
          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;
        } while (pdVar1->d_name[0] == '.');
        iVar2 = FUN_00018a40();
      } while (iVar2 == 0);
      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,
                     pdVar1->d_name);
      __stream = fopen64(local_11f,"r");
      if (__stream != (FILE *)0x0) {
LAB_00027789:
        pcVar3 = local_19f;
        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {
          pcVar3[0] = '\0';
          pcVar3[1] = '\0';
          pcVar3[2] = '\0';
          pcVar3[3] = '\0';
          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;
        }
        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);
        fclose(__stream);
        if (pcVar3 != (char *)0x0) {
          pcVar3 = strchr(local_19f,10);
          if (pcVar3 != (char *)0x0) {
            *pcVar3 = '\0';
          }
          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);
          if (iVar2 == 1) {
            iVar2 = FUN_00018a40();
            if (iVar2 == 0) {
              iVar2 = FUN_00027233();
              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");
              if ((local_1a4 & 1) == 0) {
                if ((local_1a4 & 0x7e0000) == 0) {
                  pcVar4 = "dummy";
                  pcVar3 = "Dummy bus";
                }
                else {
                  pcVar4 = "smbus";
                  pcVar3 = "SMBus adapter";
                }
              }
              else {
                pcVar4 = "i2c";
                pcVar3 = "I2C adapter";
              }
              close(iVar2);
            }
            else {
              pcVar4 = "isa";
              pcVar3 = "ISA bus";
            }
            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);
          }
        }
      }
    }
  } while( true );
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1bc
CALL 0x00017640
ADD EBX,0xa9414
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x1ac],EAX
XOR EAX,EAX
LEA EAX,[EBX + 0xffff3a1f]
CALL 0x0001a25e
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xffff3a1f]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xffff3a32]
MOV dword ptr [ESP + 0x18],EAX
SUB ESP,0xc
PUSH dword ptr [ESP + 0x1c]
CALL 0x000172e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027813
CMP byte ptr [EAX + 0x13],0x2e
JZ 0x00027644
LEA ESI,[EAX + 0x13]
PUSH EAX
PUSH ESI
MOV EBP,dword ptr [ESP + 0x10]
PUSH EBP
PUSH dword ptr [ESP + 0x24]
PUSH 0xff
PUSH 0x1
PUSH 0xff
LEA EDI,[ESP + 0xc9]
PUSH EDI
CALL 0x00016120
ADD ESP,0x18
LEA EAX,[EBX + 0xffffc498]
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH EDI
CALL 0x000166b0
MOV EDX,EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027789
PUSH EAX
PUSH ESI
MOV dword ptr [ESP + 0x10],EBP
PUSH EBP
LEA EBP,[EBX + 0xffff3a3d]
PUSH EBP
PUSH 0xff
PUSH 0x1
PUSH 0xff
PUSH EDI
CALL 0x00016120
ADD ESP,0x18
PUSH dword ptr [ESP + 0x14]
PUSH EDI
CALL 0x000166b0
MOV EDX,EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00027789
PUSH EAX
PUSH ESI
PUSH dword ptr [ESP + 0x10]
PUSH EBP
PUSH 0xff
PUSH 0x1
PUSH 0xff
PUSH EDI
CALL 0x00016120
ADD ESP,0x14
PUSH EDI
CALL 0x00017530
MOV EBP,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027644
LEA EAX,[EBX + 0xffff3a4f]
MOV dword ptr [ESP + 0x14],EAX
SUB ESP,0xc
PUSH EBP
CALL 0x000172e0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027644
CMP byte ptr [EAX + 0x13],0x2e
JZ 0x0002771c
LEA ECX,[EAX + 0x13]
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x00018a40
TEST EAX,EAX
JZ 0x0002771c
MOV ECX,dword ptr [ESP + 0x1c]
PUSH ECX
PUSH ESI
PUSH dword ptr [ESP + 0x10]
LEA EAX,[EBX + 0xffff3a54]
PUSH EAX
PUSH 0xff
PUSH 0x1
PUSH 0xff
PUSH EDI
CALL 0x00016120
ADD ESP,0x18
PUSH dword ptr [ESP + 0x14]
PUSH EDI
CALL 0x000166b0
MOV EDX,EAX
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00027644
LEA EBP,[ESP + 0x2d]
MOV ECX,0x20
XOR EAX,EAX
MOV EDI,EBP
STOSD.REP ES:EDI
PUSH ECX
PUSH EDX
MOV dword ptr [ESP + 0x14],EDX
PUSH 0x80
PUSH EBP
CALL 0x00016c30
MOV EDI,EAX
MOV EDX,dword ptr [ESP + 0x1c]
MOV dword ptr [ESP],EDX
CALL 0x00016320
ADD ESP,0x10
TEST EDI,EDI
JZ 0x00027644
SUB ESP,0x8
PUSH 0xa
PUSH EBP
CALL 0x00016ad0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000277d7
MOV byte ptr [EAX],0x0
PUSH EAX
LEA EAX,[ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xffff391a]
PUSH EAX
PUSH ESI
CALL 0x00017150
ADD ESP,0x10
DEC EAX
JNZ 0x00027644
LEA EDX,[EBX + 0xffff3a69]
MOV EAX,EBP
CALL 0x00018a40
TEST EAX,EAX
JZ 0x0002781d
LEA ESI,[EBX + 0xffff3a13]
LEA EDI,[EBX + 0xffff3a17]
JMP 0x0002787f
SUB ESP,0xc
PUSH 0x0
CALL 0x000169e0
MOV EAX,dword ptr [ESP + 0x24]
CALL 0x00027233
MOV EDX,EAX
LEA EAX,[EBX + 0xfffe6b5c]
PUSH EAX
LEA EAX,[ESP + 0x2c]
PUSH EAX
PUSH 0x705
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x0001a3c7
MOV EAX,dword ptr [ESP + 0x38]
ADD ESP,0x10
TEST AL,0x1
MOV EDX,dword ptr [ESP + 0xc]
JZ 0x00027860
LEA ESI,[EBX + 0xffff39df]
LEA EDI,[EBX + 0xffff39e3]
JMP 0x00027873
TEST EAX,0x7e0000
JNZ 0x0002789f
LEA ESI,[EBX + 0xffff3a03]
LEA EDI,[EBX + 0xffff3a09]
SUB ESP,0xc
PUSH EDX
CALL 0x000174d0
ADD ESP,0x10
SUB ESP,0x8
PUSH EDI
PUSH EBP
PUSH ESI
PUSH dword ptr [ESP + 0x38]
LEA EAX,[EBX + 0xffff3a6d]
PUSH EAX
PUSH 0x1
CALL 0x00016f40
ADD ESP,0x20
JMP 0x00027644
LEA ESI,[EBX + 0xffff39ef]
LEA EDI,[EBX + 0xffff39f5]
JMP 0x00027873
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_000275fd(void)\n\n{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}\n\n" comment (function_definition "void FUN_000275fd(void)\n\n{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_000275fd(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}" { (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "DIR *__dirp_00;" type_identifier (pointer_declarator "*__dirp_00" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 local_1a8;" type_identifier identifier ;) (declaration "uint local_1a4;" type_identifier identifier ;) (declaration "char local_19f [128];" primitive_type (array_declarator "local_19f [128]" identifier [ number_literal ]) ;) (declaration "char local_11f [255];" primitive_type (array_declarator "local_11f [255]" identifier [ number_literal ]) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "__dirp = (DIR *)FUN_0001a25e();" (assignment_expression "__dirp = (DIR *)FUN_0001a25e()" identifier = (cast_expression "(DIR *)FUN_0001a25e()" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a25e()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );" do (compound_statement "{\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  }" { (do_statement "do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');" do (compound_statement "{\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }\n    }" { (expression_statement "pdVar1 = readdir64(__dirp);" (assignment_expression "pdVar1 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar1 == (dirent64 *)0x0) {\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }" if (parenthesized_expression "(pdVar1 == (dirent64 *)0x0)" ( (binary_expression "pdVar1 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        exit(0);\n      }" { comment (expression_statement "exit(0);" (call_expression "exit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) }) while (parenthesized_expression "(pdVar1->d_name[0] == '.')" ( (binary_expression "pdVar1->d_name[0] == '.'" (subscript_expression "pdVar1->d_name[0]" (field_expression "pdVar1->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) ;) (expression_statement "pcVar4 = pdVar1->d_name;" (assignment_expression "pcVar4 = pdVar1->d_name" identifier = (field_expression "pdVar1->d_name" identifier -> field_identifier)) ;) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , identifier ))) ;) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" identifier = (call_expression "fopen64(local_11f,"r")" identifier (argument_list "(local_11f,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00027789;" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027789;" goto statement_identifier ;)) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/device/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" identifier = (call_expression "fopen64(local_11f,"r")" identifier (argument_list "(local_11f,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00027789;" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027789;" goto statement_identifier ;)) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/device/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "__dirp_00 = opendir(local_11f);" (assignment_expression "__dirp_00 = opendir(local_11f)" identifier = (call_expression "opendir(local_11f)" identifier (argument_list "(local_11f)" ( identifier )))) ;) (if_statement "if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(__dirp_00 != (DIR *)0x0)" ( (binary_expression "__dirp_00 != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }" { (do_statement "do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);" do (compound_statement "{\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      }" { (do_statement "do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');" do (compound_statement "{\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        }" { (expression_statement "pdVar1 = readdir64(__dirp_00);" (assignment_expression "pdVar1 = readdir64(__dirp_00)" identifier = (call_expression "readdir64(__dirp_00)" identifier (argument_list "(__dirp_00)" ( identifier )))) ;) (if_statement "if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;" if (parenthesized_expression "(pdVar1 == (dirent64 *)0x0)" ( (binary_expression "pdVar1 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027644;" goto statement_identifier ;)) }) while (parenthesized_expression "(pdVar1->d_name[0] == '.')" ( (binary_expression "pdVar1->d_name[0] == '.'" (subscript_expression "pdVar1->d_name[0]" (field_expression "pdVar1->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) ;) (expression_statement "iVar2 = FUN_00018a40();" (assignment_expression "iVar2 = FUN_00018a40()" identifier = (call_expression "FUN_00018a40()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) ;) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/device/%s/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , (field_expression "pdVar1->d_name" identifier -> field_identifier) ))) ;) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" identifier = (call_expression "fopen64(local_11f,"r")" identifier (argument_list "(local_11f,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }" { (labeled_statement "LAB_00027789:\n        pcVar3 = local_19f;" statement_identifier : (expression_statement "pcVar3 = local_19f;" (assignment_expression "pcVar3 = local_19f" identifier = identifier) ;)) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }" for ( (assignment_expression "iVar2 = 0x20" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ) (compound_statement "{\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }" { (expression_statement "pcVar3[0] = '\0';" (assignment_expression "pcVar3[0] = '\0'" (subscript_expression "pcVar3[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3[1] = '\0';" (assignment_expression "pcVar3[1] = '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3[2] = '\0';" (assignment_expression "pcVar3[2] = '\0'" (subscript_expression "pcVar3[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3[3] = '\0';" (assignment_expression "pcVar3[3] = '\0'" (subscript_expression "pcVar3[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;" (assignment_expression "pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4" identifier = (binary_expression "pcVar3 + (uint)bVar5 * -8 + 4" (binary_expression "pcVar3 + (uint)bVar5 * -8" identifier + (binary_expression "(uint)bVar5 * -8" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "pcVar3 = fgets_unlocked(local_19f,0x80,__stream);" (assignment_expression "pcVar3 = fgets_unlocked(local_19f,0x80,__stream)" identifier = (call_expression "fgets_unlocked(local_19f,0x80,__stream)" identifier (argument_list "(local_19f,0x80,__stream)" ( identifier , number_literal , identifier )))) ;) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }" { (expression_statement "pcVar3 = strchr(local_19f,10);" (assignment_expression "pcVar3 = strchr(local_19f,10)" identifier = (call_expression "strchr(local_19f,10)" identifier (argument_list "(local_19f,10)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *pcVar3 = '\0';\n          }" { (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);" (assignment_expression "iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3)" identifier = (call_expression "sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3)" identifier (argument_list "(pcVar4,"i2c-%d",&local_1a8,pcVar3)" ( identifier , (string_literal ""i2c-%d"" " string_content ") , (pointer_expression "&local_1a8" & identifier) , identifier )))) ;) (if_statement "if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }" { (expression_statement "iVar2 = FUN_00018a40();" (assignment_expression "iVar2 = FUN_00018a40()" identifier = (call_expression "FUN_00018a40()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }" { (expression_statement "iVar2 = FUN_00027233();" (assignment_expression "iVar2 = FUN_00027233()" identifier = (call_expression "FUN_00027233()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");" (call_expression "FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix")" identifier (argument_list "(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix")" ( identifier , number_literal , (pointer_expression "&local_1a4" & identifier) , (string_literal ""can\'t get adapter functionality matrix"" " string_content escape_sequence string_content ") ))) ;) (if_statement "if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" if (parenthesized_expression "((local_1a4 & 1) == 0)" ( (binary_expression "(local_1a4 & 1) == 0" (parenthesized_expression "(local_1a4 & 1)" ( (binary_expression "local_1a4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }" { (if_statement "if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" if (parenthesized_expression "((local_1a4 & 0x7e0000) == 0)" ( (binary_expression "(local_1a4 & 0x7e0000) == 0" (parenthesized_expression "(local_1a4 & 0x7e0000)" ( (binary_expression "local_1a4 & 0x7e0000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }" { (expression_statement "pcVar4 = "dummy";" (assignment_expression "pcVar4 = "dummy"" identifier = (string_literal ""dummy"" " string_content ")) ;) (expression_statement "pcVar3 = "Dummy bus";" (assignment_expression "pcVar3 = "Dummy bus"" identifier = (string_literal ""Dummy bus"" " string_content ")) ;) }) (else_clause "else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" else (compound_statement "{\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" { (expression_statement "pcVar4 = "smbus";" (assignment_expression "pcVar4 = "smbus"" identifier = (string_literal ""smbus"" " string_content ")) ;) (expression_statement "pcVar3 = "SMBus adapter";" (assignment_expression "pcVar3 = "SMBus adapter"" identifier = (string_literal ""SMBus adapter"" " string_content ")) ;) }))) }) (else_clause "else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" else (compound_statement "{\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" { (expression_statement "pcVar4 = "i2c";" (assignment_expression "pcVar4 = "i2c"" identifier = (string_literal ""i2c"" " string_content ")) ;) (expression_statement "pcVar3 = "I2C adapter";" (assignment_expression "pcVar3 = "I2C adapter"" identifier = (string_literal ""I2C adapter"" " string_content ")) ;) }))) (expression_statement "close(iVar2);" (call_expression "close(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) }) (else_clause "else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" else (compound_statement "{\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" { (expression_statement "pcVar4 = "isa";" (assignment_expression "pcVar4 = "isa"" identifier = (string_literal ""isa"" " string_content ")) ;) (expression_statement "pcVar3 = "ISA bus";" (assignment_expression "pcVar3 = "ISA bus"" identifier = (string_literal ""ISA bus"" " string_content ")) ;) }))) (expression_statement "__printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);" (call_expression "__printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3)" identifier (argument_list "(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3)" ( number_literal , (string_literal ""i2c-%d\t%-10s\t%-32s\t%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) })) })) })) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid list_i2c_busses_and_exit(void)\n\n{\n  int bus;\n  ulong funcs;\n  char name [128];\n  char path [255];\n  \n}\n\n" comment comment (function_definition "void list_i2c_busses_and_exit(void)\n\n{\n  int bus;\n  ulong funcs;\n  char name [128];\n  char path [255];\n  \n}" primitive_type (function_declarator "list_i2c_busses_and_exit(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int bus;\n  ulong funcs;\n  char name [128];\n  char path [255];\n  \n}" { (declaration "int bus;" primitive_type identifier ;) (declaration "ulong funcs;" type_identifier identifier ;) (declaration "char name [128];" primitive_type (array_declarator "name [128]" identifier [ number_literal ]) ;) (declaration "char path [255];" primitive_type (array_declarator "path [255]" identifier [ number_literal ]) ;) })))
(translation_unit "void FUN_000275fd(void)\n\n{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}\n\n" (function_definition "void FUN_000275fd(void)\n\n{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}" primitive_type (function_declarator "FUN_000275fd(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}" { (declaration "DIR *__dirp;" type_identifier (pointer_declarator "*__dirp" * identifier) ;) (declaration "dirent64 *pdVar1;" type_identifier (pointer_declarator "*pdVar1" * identifier) ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "DIR *__dirp_00;" type_identifier (pointer_declarator "*__dirp_00" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "undefined4 local_1a8;" type_identifier identifier ;) (declaration "uint local_1a4;" type_identifier identifier ;) (declaration "char local_19f [128];" primitive_type (array_declarator "local_19f [128]" identifier [ number_literal ]) ;) (declaration "char local_11f [255];" primitive_type (array_declarator "local_11f [255]" identifier [ number_literal ]) ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" identifier = number_literal) ;) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" * (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "__dirp = (DIR *)FUN_0001a25e();" (assignment_expression "__dirp = (DIR *)FUN_0001a25e()" identifier = (cast_expression "(DIR *)FUN_0001a25e()" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001a25e()" identifier (argument_list "()" ( ))))) ;) (labeled_statement "LAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );" do (compound_statement "{\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  }" { (do_statement "do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');" do (compound_statement "{\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    }" { (expression_statement "pdVar1 = readdir64(__dirp);" (assignment_expression "pdVar1 = readdir64(__dirp)" identifier = (call_expression "readdir64(__dirp)" identifier (argument_list "(__dirp)" ( identifier )))) ;) (if_statement "if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }" if (parenthesized_expression "(pdVar1 == (dirent64 *)0x0)" ( (binary_expression "pdVar1 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n        exit(0);\n      }" { (expression_statement "exit(0);" (call_expression "exit(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) }) while (parenthesized_expression "(pdVar1->d_name[0] == '.')" ( (binary_expression "pdVar1->d_name[0] == '.'" (subscript_expression "pdVar1->d_name[0]" (field_expression "pdVar1->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) ;) (expression_statement "pcVar4 = pdVar1->d_name;" (assignment_expression "pcVar4 = pdVar1->d_name" identifier = (field_expression "pdVar1->d_name" identifier -> field_identifier)) ;) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , identifier ))) ;) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" identifier = (call_expression "fopen64(local_11f,"r")" identifier (argument_list "(local_11f,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00027789;" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027789;" goto statement_identifier ;)) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/device/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" identifier = (call_expression "fopen64(local_11f,"r")" identifier (argument_list "(local_11f,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00027789;" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027789;" goto statement_identifier ;)) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/device/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "__dirp_00 = opendir(local_11f);" (assignment_expression "__dirp_00 = opendir(local_11f)" identifier = (call_expression "opendir(local_11f)" identifier (argument_list "(local_11f)" ( identifier )))) ;) (if_statement "if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }" if (parenthesized_expression "(__dirp_00 != (DIR *)0x0)" ( (binary_expression "__dirp_00 != (DIR *)0x0" identifier != (cast_expression "(DIR *)0x0" ( (type_descriptor "DIR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }" { (do_statement "do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);" do (compound_statement "{\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      }" { (do_statement "do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');" do (compound_statement "{\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        }" { (expression_statement "pdVar1 = readdir64(__dirp_00);" (assignment_expression "pdVar1 = readdir64(__dirp_00)" identifier = (call_expression "readdir64(__dirp_00)" identifier (argument_list "(__dirp_00)" ( identifier )))) ;) (if_statement "if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;" if (parenthesized_expression "(pdVar1 == (dirent64 *)0x0)" ( (binary_expression "pdVar1 == (dirent64 *)0x0" identifier == (cast_expression "(dirent64 *)0x0" ( (type_descriptor "dirent64 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00027644;" goto statement_identifier ;)) }) while (parenthesized_expression "(pdVar1->d_name[0] == '.')" ( (binary_expression "pdVar1->d_name[0] == '.'" (subscript_expression "pdVar1->d_name[0]" (field_expression "pdVar1->d_name" identifier -> field_identifier) [ number_literal ]) == (char_literal "'.'" ' character ')) )) ;) (expression_statement "iVar2 = FUN_00018a40();" (assignment_expression "iVar2 = FUN_00018a40()" identifier = (call_expression "FUN_00018a40()" identifier (argument_list "()" ( )))) ;) }) while (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) ;) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name)" identifier (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name)" ( identifier , number_literal , number_literal , number_literal , (string_literal ""%s/%s/device/%s/name"" " string_content ") , (string_literal ""/sys/class/i2c-dev"" " string_content ") , identifier , (field_expression "pdVar1->d_name" identifier -> field_identifier) ))) ;) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" identifier = (call_expression "fopen64(local_11f,"r")" identifier (argument_list "(local_11f,"r")" ( identifier , (string_literal ""r"" " string_content ") )))) ;) (if_statement "if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }" if (parenthesized_expression "(__stream != (FILE *)0x0)" ( (binary_expression "__stream != (FILE *)0x0" identifier != (cast_expression "(FILE *)0x0" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }" { (labeled_statement "LAB_00027789:\n        pcVar3 = local_19f;" statement_identifier : (expression_statement "pcVar3 = local_19f;" (assignment_expression "pcVar3 = local_19f" identifier = identifier) ;)) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }" for ( (assignment_expression "iVar2 = 0x20" identifier = number_literal) ; (binary_expression "iVar2 != 0" identifier != number_literal) ; (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ) (compound_statement "{\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }" { (expression_statement "pcVar3[0] = '\0';" (assignment_expression "pcVar3[0] = '\0'" (subscript_expression "pcVar3[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3[1] = '\0';" (assignment_expression "pcVar3[1] = '\0'" (subscript_expression "pcVar3[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3[2] = '\0';" (assignment_expression "pcVar3[2] = '\0'" (subscript_expression "pcVar3[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3[3] = '\0';" (assignment_expression "pcVar3[3] = '\0'" (subscript_expression "pcVar3[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;" (assignment_expression "pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4" identifier = (binary_expression "pcVar3 + (uint)bVar5 * -8 + 4" (binary_expression "pcVar3 + (uint)bVar5 * -8" identifier + (binary_expression "(uint)bVar5 * -8" (cast_expression "(uint)bVar5" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "pcVar3 = fgets_unlocked(local_19f,0x80,__stream);" (assignment_expression "pcVar3 = fgets_unlocked(local_19f,0x80,__stream)" identifier = (call_expression "fgets_unlocked(local_19f,0x80,__stream)" identifier (argument_list "(local_19f,0x80,__stream)" ( identifier , number_literal , identifier )))) ;) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" identifier (argument_list "(__stream)" ( identifier ))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }" { (expression_statement "pcVar3 = strchr(local_19f,10);" (assignment_expression "pcVar3 = strchr(local_19f,10)" identifier = (call_expression "strchr(local_19f,10)" identifier (argument_list "(local_19f,10)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }" if (parenthesized_expression "(pcVar3 != (char *)0x0)" ( (binary_expression "pcVar3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            *pcVar3 = '\0';\n          }" { (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) })) (expression_statement "iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);" (assignment_expression "iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3)" identifier = (call_expression "sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3)" identifier (argument_list "(pcVar4,"i2c-%d",&local_1a8,pcVar3)" ( identifier , (string_literal ""i2c-%d"" " string_content ") , (pointer_expression "&local_1a8" & identifier) , identifier )))) ;) (if_statement "if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }" if (parenthesized_expression "(iVar2 == 1)" ( (binary_expression "iVar2 == 1" identifier == number_literal) )) (compound_statement "{\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }" { (expression_statement "iVar2 = FUN_00018a40();" (assignment_expression "iVar2 = FUN_00018a40()" identifier = (call_expression "FUN_00018a40()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }" { (expression_statement "iVar2 = FUN_00027233();" (assignment_expression "iVar2 = FUN_00027233()" identifier = (call_expression "FUN_00027233()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");" (call_expression "FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix")" identifier (argument_list "(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix")" ( identifier , number_literal , (pointer_expression "&local_1a4" & identifier) , (string_literal ""can\'t get adapter functionality matrix"" " string_content escape_sequence string_content ") ))) ;) (if_statement "if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" if (parenthesized_expression "((local_1a4 & 1) == 0)" ( (binary_expression "(local_1a4 & 1) == 0" (parenthesized_expression "(local_1a4 & 1)" ( (binary_expression "local_1a4 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }" { (if_statement "if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" if (parenthesized_expression "((local_1a4 & 0x7e0000) == 0)" ( (binary_expression "(local_1a4 & 0x7e0000) == 0" (parenthesized_expression "(local_1a4 & 0x7e0000)" ( (binary_expression "local_1a4 & 0x7e0000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }" { (expression_statement "pcVar4 = "dummy";" (assignment_expression "pcVar4 = "dummy"" identifier = (string_literal ""dummy"" " string_content ")) ;) (expression_statement "pcVar3 = "Dummy bus";" (assignment_expression "pcVar3 = "Dummy bus"" identifier = (string_literal ""Dummy bus"" " string_content ")) ;) }) (else_clause "else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" else (compound_statement "{\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" { (expression_statement "pcVar4 = "smbus";" (assignment_expression "pcVar4 = "smbus"" identifier = (string_literal ""smbus"" " string_content ")) ;) (expression_statement "pcVar3 = "SMBus adapter";" (assignment_expression "pcVar3 = "SMBus adapter"" identifier = (string_literal ""SMBus adapter"" " string_content ")) ;) }))) }) (else_clause "else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" else (compound_statement "{\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" { (expression_statement "pcVar4 = "i2c";" (assignment_expression "pcVar4 = "i2c"" identifier = (string_literal ""i2c"" " string_content ")) ;) (expression_statement "pcVar3 = "I2C adapter";" (assignment_expression "pcVar3 = "I2C adapter"" identifier = (string_literal ""I2C adapter"" " string_content ")) ;) }))) (expression_statement "close(iVar2);" (call_expression "close(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) }) (else_clause "else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" else (compound_statement "{\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" { (expression_statement "pcVar4 = "isa";" (assignment_expression "pcVar4 = "isa"" identifier = (string_literal ""isa"" " string_content ")) ;) (expression_statement "pcVar3 = "ISA bus";" (assignment_expression "pcVar3 = "ISA bus"" identifier = (string_literal ""ISA bus"" " string_content ")) ;) }))) (expression_statement "__printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);" (call_expression "__printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3)" identifier (argument_list "(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3)" ( number_literal , (string_literal ""i2c-%d\t%-10s\t%-32s\t%s\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier , identifier , identifier , identifier ))) ;) })) })) })) })) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) }) while (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) ;) (expression_statement (assignment_expression IDENT = (field_expression IDENT -> field_identifier)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (do_statement do (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression (field_expression IDENT -> field_identifier) [ LIT ]) == (char_literal ' character ')) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , (field_expression IDENT -> field_identifier) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) , (string_literal " string_content escape_sequence string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT ))) ;) })) })) })) })) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "void FUN_000275fd(void)\n\n{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}" (primitive_type "void") (function_declarator "FUN_000275fd(void)" (identifier "FUN_000275fd") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  DIR *__dirp;\n  dirent64 *pdVar1;\n  FILE *__stream;\n  DIR *__dirp_00;\n  int iVar2;\n  char *pcVar3;\n  char *pcVar4;\n  int in_GS_OFFSET;\n  byte bVar5;\n  undefined4 local_1a8;\n  uint local_1a4;\n  char local_19f [128];\n  char local_11f [255];\n  undefined4 local_20;\n  \n  bVar5 = 0;\n  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);\n  __dirp = (DIR *)FUN_0001a25e();\nLAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );\n}" ({ "{") (declaration "DIR *__dirp;" (type_identifier "DIR") (pointer_declarator "*__dirp" (* "*") (identifier "__dirp")) (; ";")) (declaration "dirent64 *pdVar1;" (type_identifier "dirent64") (pointer_declarator "*pdVar1" (* "*") (identifier "pdVar1")) (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "DIR *__dirp_00;" (type_identifier "DIR") (pointer_declarator "*__dirp_00" (* "*") (identifier "__dirp_00")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar5;" (type_identifier "byte") (identifier "bVar5") (; ";")) (declaration "undefined4 local_1a8;" (type_identifier "undefined4") (identifier "local_1a8") (; ";")) (declaration "uint local_1a4;" (type_identifier "uint") (identifier "local_1a4") (; ";")) (declaration "char local_19f [128];" (primitive_type "char") (array_declarator "local_19f [128]" (identifier "local_19f") ([ "[") (number_literal "128") (] "]")) (; ";")) (declaration "char local_11f [255];" (primitive_type "char") (array_declarator "local_11f [255]" (identifier "local_11f") ([ "[") (number_literal "255") (] "]")) (; ";")) (declaration "undefined4 local_20;" (type_identifier "undefined4") (identifier "local_20") (; ";")) (expression_statement "bVar5 = 0;" (assignment_expression "bVar5 = 0" (identifier "bVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(undefined4 *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(undefined4 *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "__dirp = (DIR *)FUN_0001a25e();" (assignment_expression "__dirp = (DIR *)FUN_0001a25e()" (identifier "__dirp") (= "=") (cast_expression "(DIR *)FUN_0001a25e()" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001a25e()" (identifier "FUN_0001a25e") (argument_list "()" (( "(") () ")"))))) (; ";")) (labeled_statement "LAB_00027644:\n  do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );" (statement_identifier "LAB_00027644") (: ":") (do_statement "do {\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  } while( true );" (do "do") (compound_statement "{\n    do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');\n    pcVar4 = pdVar1->d_name;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __stream = fopen64(local_11f,"r");\n    if (__stream != (FILE *)0x0) goto LAB_00027789;\n    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);\n    __dirp_00 = opendir(local_11f);\n    if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }\n  }" ({ "{") (do_statement "do {\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    } while (pdVar1->d_name[0] == '.');" (do "do") (compound_statement "{\n      pdVar1 = readdir64(__dirp);\n      if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }\n    }" ({ "{") (expression_statement "pdVar1 = readdir64(__dirp);" (assignment_expression "pdVar1 = readdir64(__dirp)" (identifier "pdVar1") (= "=") (call_expression "readdir64(__dirp)" (identifier "readdir64") (argument_list "(__dirp)" (( "(") (identifier "__dirp") () ")")))) (; ";")) (if_statement "if (pdVar1 == (dirent64 *)0x0) {\n                    \n        exit(0);\n      }" (if "if") (parenthesized_expression "(pdVar1 == (dirent64 *)0x0)" (( "(") (binary_expression "pdVar1 == (dirent64 *)0x0" (identifier "pdVar1") (== "==") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n        exit(0);\n      }" ({ "{") (expression_statement "exit(0);" (call_expression "exit(0)" (identifier "exit") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(pdVar1->d_name[0] == '.')" (( "(") (binary_expression "pdVar1->d_name[0] == '.'" (subscript_expression "pdVar1->d_name[0]" (field_expression "pdVar1->d_name" (identifier "pdVar1") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (; ";")) (expression_statement "pcVar4 = pdVar1->d_name;" (assignment_expression "pcVar4 = pdVar1->d_name" (identifier "pcVar4") (= "=") (field_expression "pdVar1->d_name" (identifier "pdVar1") (-> "->") (field_identifier "d_name"))) (; ";")) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1)" (identifier "__snprintf_chk") (argument_list "(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1)" (( "(") (identifier "local_11f") (, ",") (number_literal "0xff") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (string_literal ""%s/%s/name"" (" """) (string_content "%s/%s/name") (" """)) (, ",") (string_literal ""/sys/class/i2c-dev"" (" """) (string_content "/sys/class/i2c-dev") (" """)) (, ",") (identifier "pcVar4") (, ",") (identifier "pdVar1") () ")"))) (; ";")) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(local_11f,"r")" (identifier "fopen64") (argument_list "(local_11f,"r")" (( "(") (identifier "local_11f") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00027789;" (if "if") (parenthesized_expression "(__stream != (FILE *)0x0)" (( "(") (binary_expression "__stream != (FILE *)0x0" (identifier "__stream") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00027789;" (goto "goto") (statement_identifier "LAB_00027789") (; ";"))) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" (identifier "__snprintf_chk") (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" (( "(") (identifier "local_11f") (, ",") (number_literal "0xff") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (string_literal ""%s/%s/device/name"" (" """) (string_content "%s/%s/device/name") (" """)) (, ",") (string_literal ""/sys/class/i2c-dev"" (" """) (string_content "/sys/class/i2c-dev") (" """)) (, ",") (identifier "pcVar4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(local_11f,"r")" (identifier "fopen64") (argument_list "(local_11f,"r")" (( "(") (identifier "local_11f") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (__stream != (FILE *)0x0) goto LAB_00027789;" (if "if") (parenthesized_expression "(__stream != (FILE *)0x0)" (( "(") (binary_expression "__stream != (FILE *)0x0" (identifier "__stream") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00027789;" (goto "goto") (statement_identifier "LAB_00027789") (; ";"))) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" (identifier "__snprintf_chk") (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0)" (( "(") (identifier "local_11f") (, ",") (number_literal "0xff") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (string_literal ""%s/%s/device/name"" (" """) (string_content "%s/%s/device/name") (" """)) (, ",") (string_literal ""/sys/class/i2c-dev"" (" """) (string_content "/sys/class/i2c-dev") (" """)) (, ",") (identifier "pcVar4") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "__dirp_00 = opendir(local_11f);" (assignment_expression "__dirp_00 = opendir(local_11f)" (identifier "__dirp_00") (= "=") (call_expression "opendir(local_11f)" (identifier "opendir") (argument_list "(local_11f)" (( "(") (identifier "local_11f") () ")")))) (; ";")) (if_statement "if (__dirp_00 != (DIR *)0x0) {\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }" (if "if") (parenthesized_expression "(__dirp_00 != (DIR *)0x0)" (( "(") (binary_expression "__dirp_00 != (DIR *)0x0" (identifier "__dirp_00") (!= "!=") (cast_expression "(DIR *)0x0" (( "(") (type_descriptor "DIR *" (type_identifier "DIR") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);\n      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);\n      __stream = fopen64(local_11f,"r");\n      if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }\n    }" ({ "{") (do_statement "do {\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      } while (iVar2 == 0);" (do "do") (compound_statement "{\n        do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');\n        iVar2 = FUN_00018a40();\n      }" ({ "{") (do_statement "do {\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        } while (pdVar1->d_name[0] == '.');" (do "do") (compound_statement "{\n          pdVar1 = readdir64(__dirp_00);\n          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;\n        }" ({ "{") (expression_statement "pdVar1 = readdir64(__dirp_00);" (assignment_expression "pdVar1 = readdir64(__dirp_00)" (identifier "pdVar1") (= "=") (call_expression "readdir64(__dirp_00)" (identifier "readdir64") (argument_list "(__dirp_00)" (( "(") (identifier "__dirp_00") () ")")))) (; ";")) (if_statement "if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;" (if "if") (parenthesized_expression "(pdVar1 == (dirent64 *)0x0)" (( "(") (binary_expression "pdVar1 == (dirent64 *)0x0" (identifier "pdVar1") (== "==") (cast_expression "(dirent64 *)0x0" (( "(") (type_descriptor "dirent64 *" (type_identifier "dirent64") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00027644;" (goto "goto") (statement_identifier "LAB_00027644") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(pdVar1->d_name[0] == '.')" (( "(") (binary_expression "pdVar1->d_name[0] == '.'" (subscript_expression "pdVar1->d_name[0]" (field_expression "pdVar1->d_name" (identifier "pdVar1") (-> "->") (field_identifier "d_name")) ([ "[") (number_literal "0") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (; ";")) (expression_statement "iVar2 = FUN_00018a40();" (assignment_expression "iVar2 = FUN_00018a40()" (identifier "iVar2") (= "=") (call_expression "FUN_00018a40()" (identifier "FUN_00018a40") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name);" (call_expression "__snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name)" (identifier "__snprintf_chk") (argument_list "(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,\n                     pdVar1->d_name)" (( "(") (identifier "local_11f") (, ",") (number_literal "0xff") (, ",") (number_literal "1") (, ",") (number_literal "0xff") (, ",") (string_literal ""%s/%s/device/%s/name"" (" """) (string_content "%s/%s/device/%s/name") (" """)) (, ",") (string_literal ""/sys/class/i2c-dev"" (" """) (string_content "/sys/class/i2c-dev") (" """)) (, ",") (identifier "pcVar4") (, ",") (field_expression "pdVar1->d_name" (identifier "pdVar1") (-> "->") (field_identifier "d_name")) () ")"))) (; ";")) (expression_statement "__stream = fopen64(local_11f,"r");" (assignment_expression "__stream = fopen64(local_11f,"r")" (identifier "__stream") (= "=") (call_expression "fopen64(local_11f,"r")" (identifier "fopen64") (argument_list "(local_11f,"r")" (( "(") (identifier "local_11f") (, ",") (string_literal ""r"" (" """) (string_content "r") (" """)) () ")")))) (; ";")) (if_statement "if (__stream != (FILE *)0x0) {\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }" (if "if") (parenthesized_expression "(__stream != (FILE *)0x0)" (( "(") (binary_expression "__stream != (FILE *)0x0" (identifier "__stream") (!= "!=") (cast_expression "(FILE *)0x0" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00027789:\n        pcVar3 = local_19f;\n        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }\n        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);\n        fclose(__stream);\n        if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }\n      }" ({ "{") (labeled_statement "LAB_00027789:\n        pcVar3 = local_19f;" (statement_identifier "LAB_00027789") (: ":") (expression_statement "pcVar3 = local_19f;" (assignment_expression "pcVar3 = local_19f" (identifier "pcVar3") (= "=") (identifier "local_19f")) (; ";"))) (for_statement "for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }" (for "for") (( "(") (assignment_expression "iVar2 = 0x20" (identifier "iVar2") (= "=") (number_literal "0x20")) (; ";") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n          pcVar3[0] = '\0';\n          pcVar3[1] = '\0';\n          pcVar3[2] = '\0';\n          pcVar3[3] = '\0';\n          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;\n        }" ({ "{") (expression_statement "pcVar3[0] = '\0';" (assignment_expression "pcVar3[0] = '\0'" (subscript_expression "pcVar3[0]" (identifier "pcVar3") ([ "[") (number_literal "0") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar3[1] = '\0';" (assignment_expression "pcVar3[1] = '\0'" (subscript_expression "pcVar3[1]" (identifier "pcVar3") ([ "[") (number_literal "1") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar3[2] = '\0';" (assignment_expression "pcVar3[2] = '\0'" (subscript_expression "pcVar3[2]" (identifier "pcVar3") ([ "[") (number_literal "2") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar3[3] = '\0';" (assignment_expression "pcVar3[3] = '\0'" (subscript_expression "pcVar3[3]" (identifier "pcVar3") ([ "[") (number_literal "3") (] "]")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;" (assignment_expression "pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4" (identifier "pcVar3") (= "=") (binary_expression "pcVar3 + (uint)bVar5 * -8 + 4" (binary_expression "pcVar3 + (uint)bVar5 * -8" (identifier "pcVar3") (+ "+") (binary_expression "(uint)bVar5 * -8" (cast_expression "(uint)bVar5" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar5")) (* "*") (number_literal "-8"))) (+ "+") (number_literal "4"))) (; ";")) (} "}"))) (expression_statement "pcVar3 = fgets_unlocked(local_19f,0x80,__stream);" (assignment_expression "pcVar3 = fgets_unlocked(local_19f,0x80,__stream)" (identifier "pcVar3") (= "=") (call_expression "fgets_unlocked(local_19f,0x80,__stream)" (identifier "fgets_unlocked") (argument_list "(local_19f,0x80,__stream)" (( "(") (identifier "local_19f") (, ",") (number_literal "0x80") (, ",") (identifier "__stream") () ")")))) (; ";")) (expression_statement "fclose(__stream);" (call_expression "fclose(__stream)" (identifier "fclose") (argument_list "(__stream)" (( "(") (identifier "__stream") () ")"))) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) {\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar3 = strchr(local_19f,10);\n          if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }\n          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);\n          if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }\n        }" ({ "{") (expression_statement "pcVar3 = strchr(local_19f,10);" (assignment_expression "pcVar3 = strchr(local_19f,10)" (identifier "pcVar3") (= "=") (call_expression "strchr(local_19f,10)" (identifier "strchr") (argument_list "(local_19f,10)" (( "(") (identifier "local_19f") (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if (pcVar3 != (char *)0x0) {\n            *pcVar3 = '\0';\n          }" (if "if") (parenthesized_expression "(pcVar3 != (char *)0x0)" (( "(") (binary_expression "pcVar3 != (char *)0x0" (identifier "pcVar3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            *pcVar3 = '\0';\n          }" ({ "{") (expression_statement "*pcVar3 = '\0';" (assignment_expression "*pcVar3 = '\0'" (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (} "}"))) (expression_statement "iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);" (assignment_expression "iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3)" (identifier "iVar2") (= "=") (call_expression "sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3)" (identifier "sscanf") (argument_list "(pcVar4,"i2c-%d",&local_1a8,pcVar3)" (( "(") (identifier "pcVar4") (, ",") (string_literal ""i2c-%d"" (" """) (string_content "i2c-%d") (" """)) (, ",") (pointer_expression "&local_1a8" (& "&") (identifier "local_1a8")) (, ",") (identifier "pcVar3") () ")")))) (; ";")) (if_statement "if (iVar2 == 1) {\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }" (if "if") (parenthesized_expression "(iVar2 == 1)" (( "(") (binary_expression "iVar2 == 1" (identifier "iVar2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            iVar2 = FUN_00018a40();\n            if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }\n            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);\n          }" ({ "{") (expression_statement "iVar2 = FUN_00018a40();" (assignment_expression "iVar2 = FUN_00018a40()" (identifier "iVar2") (= "=") (call_expression "FUN_00018a40()" (identifier "FUN_00018a40") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }\n            else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              iVar2 = FUN_00027233();\n              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");\n              if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }\n              close(iVar2);\n            }" ({ "{") (expression_statement "iVar2 = FUN_00027233();" (assignment_expression "iVar2 = FUN_00027233()" (identifier "iVar2") (= "=") (call_expression "FUN_00027233()" (identifier "FUN_00027233") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");" (call_expression "FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix")" (identifier "FUN_0001a3c7") (argument_list "(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix")" (( "(") (identifier "iVar2") (, ",") (number_literal "0x705") (, ",") (pointer_expression "&local_1a4" (& "&") (identifier "local_1a4")) (, ",") (string_literal ""can\'t get adapter functionality matrix"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t get adapter functionality matrix") (" """)) () ")"))) (; ";")) (if_statement "if ((local_1a4 & 1) == 0) {\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }\n              else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" (if "if") (parenthesized_expression "((local_1a4 & 1) == 0)" (( "(") (binary_expression "(local_1a4 & 1) == 0" (parenthesized_expression "(local_1a4 & 1)" (( "(") (binary_expression "local_1a4 & 1" (identifier "local_1a4") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }\n              }" ({ "{") (if_statement "if ((local_1a4 & 0x7e0000) == 0) {\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }\n                else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" (if "if") (parenthesized_expression "((local_1a4 & 0x7e0000) == 0)" (( "(") (binary_expression "(local_1a4 & 0x7e0000) == 0" (parenthesized_expression "(local_1a4 & 0x7e0000)" (( "(") (binary_expression "local_1a4 & 0x7e0000" (identifier "local_1a4") (& "&") (number_literal "0x7e0000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  pcVar4 = "dummy";\n                  pcVar3 = "Dummy bus";\n                }" ({ "{") (expression_statement "pcVar4 = "dummy";" (assignment_expression "pcVar4 = "dummy"" (identifier "pcVar4") (= "=") (string_literal ""dummy"" (" """) (string_content "dummy") (" """))) (; ";")) (expression_statement "pcVar3 = "Dummy bus";" (assignment_expression "pcVar3 = "Dummy bus"" (identifier "pcVar3") (= "=") (string_literal ""Dummy bus"" (" """) (string_content "Dummy bus") (" """))) (; ";")) (} "}")) (else_clause "else {\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" (else "else") (compound_statement "{\n                  pcVar4 = "smbus";\n                  pcVar3 = "SMBus adapter";\n                }" ({ "{") (expression_statement "pcVar4 = "smbus";" (assignment_expression "pcVar4 = "smbus"" (identifier "pcVar4") (= "=") (string_literal ""smbus"" (" """) (string_content "smbus") (" """))) (; ";")) (expression_statement "pcVar3 = "SMBus adapter";" (assignment_expression "pcVar3 = "SMBus adapter"" (identifier "pcVar3") (= "=") (string_literal ""SMBus adapter"" (" """) (string_content "SMBus adapter") (" """))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" (else "else") (compound_statement "{\n                pcVar4 = "i2c";\n                pcVar3 = "I2C adapter";\n              }" ({ "{") (expression_statement "pcVar4 = "i2c";" (assignment_expression "pcVar4 = "i2c"" (identifier "pcVar4") (= "=") (string_literal ""i2c"" (" """) (string_content "i2c") (" """))) (; ";")) (expression_statement "pcVar3 = "I2C adapter";" (assignment_expression "pcVar3 = "I2C adapter"" (identifier "pcVar3") (= "=") (string_literal ""I2C adapter"" (" """) (string_content "I2C adapter") (" """))) (; ";")) (} "}")))) (expression_statement "close(iVar2);" (call_expression "close(iVar2)" (identifier "close") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" (else "else") (compound_statement "{\n              pcVar4 = "isa";\n              pcVar3 = "ISA bus";\n            }" ({ "{") (expression_statement "pcVar4 = "isa";" (assignment_expression "pcVar4 = "isa"" (identifier "pcVar4") (= "=") (string_literal ""isa"" (" """) (string_content "isa") (" """))) (; ";")) (expression_statement "pcVar3 = "ISA bus";" (assignment_expression "pcVar3 = "ISA bus"" (identifier "pcVar3") (= "=") (string_literal ""ISA bus"" (" """) (string_content "ISA bus") (" """))) (; ";")) (} "}")))) (expression_statement "__printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);" (call_expression "__printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3)" (identifier "__printf_chk") (argument_list "(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""i2c-%d\t%-10s\t%-32s\t%s\n"" (" """) (string_content "i2c-%d") (escape_sequence "\t") (string_content "%-10s") (escape_sequence "\t") (string_content "%-32s") (escape_sequence "\t") (string_content "%s") (escape_sequence "\n") (" """)) (, ",") (identifier "local_1a8") (, ",") (identifier "pcVar4") (, ",") (identifier "local_19f") (, ",") (identifier "pcVar3") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  int bus;
  type_1 funcs;
  char name [128];
  char path [255];
  
}


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

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

void MASKED(void)

{
  DIR *__dirp;
  dirent64 *pdVar1;
  FILE *__stream;
  DIR *__dirp_00;
  int iVar2;
  char *pcVar3;
  char *pcVar4;
  int in_GS_OFFSET;
  byte bVar5;
  undefined4 local_1a8;
  uint local_1a4;
  char local_19f [128];
  char local_11f [255];
  undefined4 local_20;
  
  bVar5 = 0;
  local_20 = *(undefined4 *)(in_GS_OFFSET + 0x14);
  __dirp = (DIR *)FUN_0001a25e();
LAB_00027644:
  do {
    do {
      pdVar1 = readdir64(__dirp);
      if (pdVar1 == (dirent64 *)0x0) {
                    /* WARNING: Subroutine does not return */
        exit(0);
      }
    } while (pdVar1->d_name[0] == '.');
    pcVar4 = pdVar1->d_name;
    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/name","/sys/class/i2c-dev",pcVar4,pdVar1);
    __stream = fopen64(local_11f,"r");
    if (__stream != (FILE *)0x0) goto LAB_00027789;
    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);
    __stream = fopen64(local_11f,"r");
    if (__stream != (FILE *)0x0) goto LAB_00027789;
    __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/name","/sys/class/i2c-dev",pcVar4,0);
    __dirp_00 = opendir(local_11f);
    if (__dirp_00 != (DIR *)0x0) {
      do {
        do {
          pdVar1 = readdir64(__dirp_00);
          if (pdVar1 == (dirent64 *)0x0) goto LAB_00027644;
        } while (pdVar1->d_name[0] == '.');
        iVar2 = FUN_00018a40();
      } while (iVar2 == 0);
      __snprintf_chk(local_11f,0xff,1,0xff,"%s/%s/device/%s/name","/sys/class/i2c-dev",pcVar4,
                     pdVar1->d_name);
      __stream = fopen64(local_11f,"r");
      if (__stream != (FILE *)0x0) {
LAB_00027789:
        pcVar3 = local_19f;
        for (iVar2 = 0x20; iVar2 != 0; iVar2 = iVar2 + -1) {
          pcVar3[0] = '\0';
          pcVar3[1] = '\0';
          pcVar3[2] = '\0';
          pcVar3[3] = '\0';
          pcVar3 = pcVar3 + (uint)bVar5 * -8 + 4;
        }
        pcVar3 = fgets_unlocked(local_19f,0x80,__stream);
        fclose(__stream);
        if (pcVar3 != (char *)0x0) {
          pcVar3 = strchr(local_19f,10);
          if (pcVar3 != (char *)0x0) {
            *pcVar3 = '\0';
          }
          iVar2 = sscanf(pcVar4,"i2c-%d",&local_1a8,pcVar3);
          if (iVar2 == 1) {
            iVar2 = FUN_00018a40();
            if (iVar2 == 0) {
              iVar2 = FUN_00027233();
              FUN_0001a3c7(iVar2,0x705,&local_1a4,"can\'t get adapter functionality matrix");
              if ((local_1a4 & 1) == 0) {
                if ((local_1a4 & 0x7e0000) == 0) {
                  pcVar4 = "dummy";
                  pcVar3 = "Dummy bus";
                }
                else {
                  pcVar4 = "smbus";
                  pcVar3 = "SMBus adapter";
                }
              }
              else {
                pcVar4 = "i2c";
                pcVar3 = "I2C adapter";
              }
              close(iVar2);
            }
            else {
              pcVar4 = "isa";
              pcVar3 = "ISA bus";
            }
            __printf_chk(1,"i2c-%d\t%-10s\t%-32s\t%s\n",local_1a8,pcVar4,local_19f,pcVar3);
          }
        }
      }
    }
  } while( true );
}

