
int cdvd_mm_capab(mpage_info *mpi,char *prefix)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  long in_FS_OFFSET;
  uint8_t *pagestart;
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  iVar2 = setup_mode_page(mpi,0x31,cbuffer,&pagestart);
  if (iVar2 == 0) {
    if (*prefix != '\0') {
      __printf_chk(1,&DAT_0010dd75,prefix);
    }
    if (x_interface == '\0' && replace == '\0') {
      iVar1 = mpi->page;
      pcVar3 = get_page_name(mpi);
      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);
      puts("----------------------------------------------------");
    }
    bitfield(pagestart + 2,"DVD-RAM read",1,5);
    bitfield(pagestart + 2,"DVD-R read",1,4);
    bitfield(pagestart + 2,"DVD-ROM read",1,3);
    bitfield(pagestart + 2,"Method 2",1,2);
    bitfield(pagestart + 2,"CD-RW read",1,1);
    bitfield(pagestart + 2,"CD-R read",1,0);
    bitfield(pagestart + 3,"DVD-RAM write",1,5);
    bitfield(pagestart + 3,"DVD-R write",1,4);
    bitfield(pagestart + 3,"DVD-ROM write",1,3);
    bitfield(pagestart + 3,"Test Write",1,2);
    bitfield(pagestart + 3,"CD-RW write",1,1);
    bitfield(pagestart + 3,"CD-R write",1,0);
    bitfield(pagestart + 4,"BUF",1,7);
    bitfield(pagestart + 4,"MultiSession",1,6);
    bitfield(pagestart + 4,"Mode 2 Form 2",1,5);
    bitfield(pagestart + 4,"Mode 2 Form 1",1,4);
    bitfield(pagestart + 4,"Digital port (2)",1,3);
    bitfield(pagestart + 4,"Digital port (1)",1,2);
    bitfield(pagestart + 4,"Composite",1,1);
    bitfield(pagestart + 4,"Audio play",1,0);
    bitfield(pagestart + 5,"Read bar code",1,7);
    bitfield(pagestart + 5,"UPC",1,6);
    bitfield(pagestart + 5,"ISRC",1,5);
    bitfield(pagestart + 5,"C2 pointers supported",1,4);
    bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);
    bitfield(pagestart + 5,"R-W supported",1,2);
    bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);
    bitfield(pagestart + 5,"CD-DA commands supported",1,0);
    bitfield(pagestart + 6,"Loading mechanism type",7,5);
    bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);
    bitfield(pagestart + 6,"Prevent jumper",1,2);
    bitfield(pagestart + 6,"Lock state",1,1);
    bitfield(pagestart + 6,"Lock",1,0);
    bitfield(pagestart + 7,"R-W in lead-in",1,5);
    bitfield(pagestart + 7,"Side change capable",1,4);
    bitfield(pagestart + 7,"S/W slot selection",1,3);
    bitfield(pagestart + 7,"Changer supports disc present",1,2);
    bitfield(pagestart + 7,"Separate channel mute",1,1);
    bitfield(pagestart + 7,"Separate volume levels",1,0);
    intfield(pagestart + 10,2,"number of volume level supported");
    intfield(pagestart + 0xc,2,"Buffer size supported");
    bitfield(pagestart + 0x11,"Length",3,4);
    bitfield(pagestart + 0x11,"LSBF",1,3);
    bitfield(pagestart + 0x11,"RCK",1,2);
    bitfield(pagestart + 0x11,"BCKF",1,1);
    intfield(pagestart + 0x16,2,"Copy management revision supported");
    bitfield(pagestart + 0x1b,"Rotation control selected",3,0);
    intfield(pagestart + 0x1c,2,"Current write speed selected");
    intfield(pagestart + 0x1e,2,"# of lu speed performance tables");
    if ((x_interface == '\0') || (replace == '\0')) {
      putchar(10);
    }
    else {
      iVar2 = put_mode_page(mpi,cbuffer);
    }
  }
  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int FUN_00108102(undefined4 *param_1,char *param_2)

{
  undefined4 uVar1;
  int iVar2;
  undefined8 uVar3;
  long in_FS_OFFSET;
  long local_28;
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);
  if (iVar2 == 0) {
    if (*param_2 != '\0') {
      __printf_chk(1,&DAT_0010dd75,param_2);
    }
    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {
      uVar1 = *param_1;
      uVar3 = FUN_0010497b(param_1);
      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);
      puts("----------------------------------------------------");
    }
    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);
    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);
    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);
    FUN_001026d7(local_28 + 2,"Method 2",1,2);
    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);
    FUN_001026d7(local_28 + 2,"CD-R read",1,0);
    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);
    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);
    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);
    FUN_001026d7(local_28 + 3,"Test Write",1,2);
    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);
    FUN_001026d7(local_28 + 3,"CD-R write",1,0);
    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);
    FUN_001026d7(local_28 + 4,"MultiSession",1,6);
    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);
    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);
    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);
    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);
    FUN_001026d7(local_28 + 4,"Composite",1,1);
    FUN_001026d7(local_28 + 4,"Audio play",1,0);
    FUN_001026d7(local_28 + 5,"Read bar code",1,7);
    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);
    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);
    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);
    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);
    FUN_001026d7(local_28 + 5,"R-W supported",1,2);
    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);
    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);
    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);
    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);
    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);
    FUN_001026d7(local_28 + 6,"Lock state",1,1);
    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);
    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);
    FUN_001026d7(local_28 + 7,"Side change capable",1,4);
    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);
    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);
    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);
    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);
    FUN_0010277d(local_28 + 10,2,"number of volume level supported");
    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");
    FUN_001026d7(local_28 + 0x11,"Length",3,4);
    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);
    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);
    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);
    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");
    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);
    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");
    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");
    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {
      putchar(10);
    }
    else {
      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);
    }
  }
  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x10
MOV RBP,RDI
MOV R12,RSI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x8],RAX
XOR EAX,EAX
MOV RCX,RSP
LEA RDX,[0x14a9e0]
MOV ESI,0x31
CALL 0x00104fe8
MOV EBX,EAX
TEST EAX,EAX
JNZ 0x0010871d
CMP byte ptr [R12],0x0
JNZ 0x00108738
MOVZX EAX,byte ptr [0x001429cb]
OR AL,byte ptr [0x001429cd]
JZ 0x00108756
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x2]
MOV ECX,0x5
MOV EDX,0x1
LEA RSI,[0x10e7f8]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x2]
MOV ECX,0x4
MOV EDX,0x1
LEA RSI,[0x10e805]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x2]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10e810]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x2]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10e81d]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x2]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10e826]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x2]
MOV ECX,0x0
MOV EDX,0x1
LEA RSI,[0x10e831]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x3]
MOV ECX,0x5
MOV EDX,0x1
LEA RSI,[0x10e83b]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x3]
MOV ECX,0x4
MOV EDX,0x1
LEA RSI,[0x10e849]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x3]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10e855]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x3]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10e863]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x3]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10e86e]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x3]
MOV ECX,0x0
MOV EDX,0x1
LEA RSI,[0x10e87a]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x7
MOV EDX,0x1
LEA RSI,[0x10e885]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x6
MOV EDX,0x1
LEA RSI,[0x10e889]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x5
MOV EDX,0x1
LEA RSI,[0x10e896]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x4
MOV EDX,0x1
LEA RSI,[0x10e8a4]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10e8b2]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10e8c3]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10e8d4]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x4]
MOV ECX,0x0
MOV EDX,0x1
LEA RSI,[0x10e8de]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x7
MOV EDX,0x1
LEA RSI,[0x10e8e9]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x6
MOV EDX,0x1
LEA RSI,[0x10e8f7]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x5
MOV EDX,0x1
LEA RSI,[0x10e8fb]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x4
MOV EDX,0x1
LEA RSI,[0x10e900]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10d488]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10e916]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10e924]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x5]
MOV ECX,0x0
MOV EDX,0x1
LEA RSI,[0x10e93d]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x6]
MOV ECX,0x5
MOV EDX,0x7
LEA RSI,[0x10e956]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x6]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10d4a8]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x6]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10e96d]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x6]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10e97c]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x6]
MOV ECX,0x0
MOV EDX,0x1
LEA RSI,[0x10e987]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x7]
MOV ECX,0x5
MOV EDX,0x1
LEA RSI,[0x10e98c]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x7]
MOV ECX,0x4
MOV EDX,0x1
LEA RSI,[0x10e99b]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x7]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10e9af]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x7]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10e9c2]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x7]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10e9e0]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x7]
MOV ECX,0x0
MOV EDX,0x1
LEA RSI,[0x10e9f6]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0xa]
LEA RDX,[0x10d4c8]
MOV ESI,0x2
CALL 0x0010277d
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0xc]
LEA RDX,[0x10ea0d]
MOV ESI,0x2
CALL 0x0010277d
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x11]
MOV ECX,0x4
MOV EDX,0x3
LEA RSI,[0x10ecd9]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x11]
MOV ECX,0x3
MOV EDX,0x1
LEA RSI,[0x10ea23]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x11]
MOV ECX,0x2
MOV EDX,0x1
LEA RSI,[0x10ea28]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x11]
MOV ECX,0x1
MOV EDX,0x1
LEA RSI,[0x10ea2c]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x16]
LEA RDX,[0x10d4f0]
MOV ESI,0x2
CALL 0x0010277d
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x1b]
MOV ECX,0x0
MOV EDX,0x3
LEA RSI,[0x10ea31]
CALL 0x001026d7
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x1c]
LEA RDX,[0x10ea4b]
MOV ESI,0x2
CALL 0x0010277d
MOV RAX,qword ptr [RSP]
LEA RDI,[RAX + 0x1e]
LEA RDX,[0x10d518]
MOV ESI,0x2
CALL 0x0010277d
CMP byte ptr [0x001429cb],0x0
JZ 0x00108713
CMP byte ptr [0x001429cd],0x0
JNZ 0x0010878f
MOV EDI,0xa
CALL 0x00102050
MOV EAX,EBX
MOV RBX,qword ptr [RSP + 0x8]
XOR RBX,qword ptr FS:[0x28]
JNZ 0x001087a5
ADD RSP,0x10
POP RBX
POP RBP
POP R12
RET
MOV RDX,R12
LEA RSI,[0x10dd75]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00102190
JMP 0x00108149
MOV R12D,dword ptr [RBP]
MOV RDI,RBP
CALL 0x0010497b
MOV ECX,R12D
MOV RDX,RAX
LEA RSI,[0x10e29f]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x00102190
LEA RDI,[0x10d1d8]
CALL 0x001020a0
JMP 0x0010815c
LEA RSI,[0x14a9e0]
MOV RDI,RBP
CALL 0x0010523d
MOV EBX,EAX
JMP 0x0010871d
CALL 0x001020c0
(translation_unit "int FUN_00108102(undefined4 *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int FUN_00108102(undefined4 *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00108102(undefined4 *param_1,char *param_2)" identifier (parameter_list "(undefined4 *param_1,char *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_28;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);" (assignment_expression "iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28)" identifier = (call_expression "FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28)" identifier (argument_list "(param_1,0x31,&DAT_0014a9e0,&local_28)" ( identifier , number_literal , (pointer_expression "&DAT_0014a9e0" & identifier) , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }" { (if_statement "if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }" { (expression_statement "__printf_chk(1,&DAT_0010dd75,param_2);" (call_expression "__printf_chk(1,&DAT_0010dd75,param_2)" identifier (argument_list "(1,&DAT_0010dd75,param_2)" ( number_literal , (pointer_expression "&DAT_0010dd75" & identifier) , identifier ))) ;) })) (if_statement "if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }" if (parenthesized_expression "(DAT_001429cb == '\0' && DAT_001429cd == '\0')" ( (binary_expression "DAT_001429cb == '\0' && DAT_001429cd == '\0'" (binary_expression "DAT_001429cb == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (binary_expression "DAT_001429cd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }" { (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar3 = FUN_0010497b(param_1);" (assignment_expression "uVar3 = FUN_0010497b(param_1)" identifier = (call_expression "FUN_0010497b(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "__printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);" (call_expression "__printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1)" identifier (argument_list "(1,"%s mode page (0x%x)\n",uVar3,uVar1)" ( number_literal , (string_literal ""%s mode page (0x%x)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "puts("----------------------------------------------------");" (call_expression "puts("----------------------------------------------------")" identifier (argument_list "("----------------------------------------------------")" ( (string_literal ""----------------------------------------------------"" " string_content ") ))) ;) })) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5)" identifier (argument_list "(local_28 + 2,"DVD-RAM read",1,5)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""DVD-RAM read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-R read",1,4);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-R read",1,4)" identifier (argument_list "(local_28 + 2,"DVD-R read",1,4)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""DVD-R read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3)" identifier (argument_list "(local_28 + 2,"DVD-ROM read",1,3)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""DVD-ROM read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"Method 2",1,2);" (call_expression "FUN_001026d7(local_28 + 2,"Method 2",1,2)" identifier (argument_list "(local_28 + 2,"Method 2",1,2)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""Method 2"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"CD-RW read",1,1);" (call_expression "FUN_001026d7(local_28 + 2,"CD-RW read",1,1)" identifier (argument_list "(local_28 + 2,"CD-RW read",1,1)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""CD-RW read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"CD-R read",1,0);" (call_expression "FUN_001026d7(local_28 + 2,"CD-R read",1,0)" identifier (argument_list "(local_28 + 2,"CD-R read",1,0)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""CD-R read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5)" identifier (argument_list "(local_28 + 3,"DVD-RAM write",1,5)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""DVD-RAM write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-R write",1,4);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-R write",1,4)" identifier (argument_list "(local_28 + 3,"DVD-R write",1,4)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""DVD-R write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3)" identifier (argument_list "(local_28 + 3,"DVD-ROM write",1,3)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""DVD-ROM write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"Test Write",1,2);" (call_expression "FUN_001026d7(local_28 + 3,"Test Write",1,2)" identifier (argument_list "(local_28 + 3,"Test Write",1,2)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""Test Write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"CD-RW write",1,1);" (call_expression "FUN_001026d7(local_28 + 3,"CD-RW write",1,1)" identifier (argument_list "(local_28 + 3,"CD-RW write",1,1)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""CD-RW write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"CD-R write",1,0);" (call_expression "FUN_001026d7(local_28 + 3,"CD-R write",1,0)" identifier (argument_list "(local_28 + 3,"CD-R write",1,0)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""CD-R write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);" (call_expression "FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7)" identifier (argument_list "(local_28 + 4,&DAT_0010e885,1,7)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (pointer_expression "&DAT_0010e885" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"MultiSession",1,6);" (call_expression "FUN_001026d7(local_28 + 4,"MultiSession",1,6)" identifier (argument_list "(local_28 + 4,"MultiSession",1,6)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""MultiSession"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);" (call_expression "FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5)" identifier (argument_list "(local_28 + 4,"Mode 2 Form 2",1,5)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Mode 2 Form 2"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);" (call_expression "FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4)" identifier (argument_list "(local_28 + 4,"Mode 2 Form 1",1,4)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Mode 2 Form 1"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);" (call_expression "FUN_001026d7(local_28 + 4,"Digital port (2)",1,3)" identifier (argument_list "(local_28 + 4,"Digital port (2)",1,3)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Digital port (2)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);" (call_expression "FUN_001026d7(local_28 + 4,"Digital port (1)",1,2)" identifier (argument_list "(local_28 + 4,"Digital port (1)",1,2)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Digital port (1)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Composite",1,1);" (call_expression "FUN_001026d7(local_28 + 4,"Composite",1,1)" identifier (argument_list "(local_28 + 4,"Composite",1,1)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Composite"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Audio play",1,0);" (call_expression "FUN_001026d7(local_28 + 4,"Audio play",1,0)" identifier (argument_list "(local_28 + 4,"Audio play",1,0)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Audio play"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"Read bar code",1,7);" (call_expression "FUN_001026d7(local_28 + 5,"Read bar code",1,7)" identifier (argument_list "(local_28 + 5,"Read bar code",1,7)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""Read bar code"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);" (call_expression "FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6)" identifier (argument_list "(local_28 + 5,&DAT_0010e8f7,1,6)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (pointer_expression "&DAT_0010e8f7" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);" (call_expression "FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5)" identifier (argument_list "(local_28 + 5,&DAT_0010e8fb,1,5)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (pointer_expression "&DAT_0010e8fb" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);" (call_expression "FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4)" identifier (argument_list "(local_28 + 5,"C2 pointers supported",1,4)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""C2 pointers supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);" (call_expression "FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3)" identifier (argument_list "(local_28 + 5,"R-W de-interleaved & corrected",1,3)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""R-W de-interleaved & corrected"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"R-W supported",1,2);" (call_expression "FUN_001026d7(local_28 + 5,"R-W supported",1,2)" identifier (argument_list "(local_28 + 5,"R-W supported",1,2)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""R-W supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);" (call_expression "FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1)" identifier (argument_list "(local_28 + 5,"CD-DA stream is accurate",1,1)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""CD-DA stream is accurate"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);" (call_expression "FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0)" identifier (argument_list "(local_28 + 5,"CD-DA commands supported",1,0)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""CD-DA commands supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);" (call_expression "FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5)" identifier (argument_list "(local_28 + 6,"Loading mechanism type",7,5)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Loading mechanism type"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);" (call_expression "FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3)" identifier (argument_list "(local_28 + 6,"Eject (individual or magazine)",1,3)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Eject (individual or magazine)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);" (call_expression "FUN_001026d7(local_28 + 6,"Prevent jumper",1,2)" identifier (argument_list "(local_28 + 6,"Prevent jumper",1,2)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Prevent jumper"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Lock state",1,1);" (call_expression "FUN_001026d7(local_28 + 6,"Lock state",1,1)" identifier (argument_list "(local_28 + 6,"Lock state",1,1)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Lock state"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);" (call_expression "FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0)" identifier (argument_list "(local_28 + 6,&DAT_0010e987,1,0)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (pointer_expression "&DAT_0010e987" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);" (call_expression "FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5)" identifier (argument_list "(local_28 + 7,"R-W in lead-in",1,5)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""R-W in lead-in"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Side change capable",1,4);" (call_expression "FUN_001026d7(local_28 + 7,"Side change capable",1,4)" identifier (argument_list "(local_28 + 7,"Side change capable",1,4)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Side change capable"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);" (call_expression "FUN_001026d7(local_28 + 7,"S/W slot selection",1,3)" identifier (argument_list "(local_28 + 7,"S/W slot selection",1,3)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""S/W slot selection"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);" (call_expression "FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2)" identifier (argument_list "(local_28 + 7,"Changer supports disc present",1,2)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Changer supports disc present"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);" (call_expression "FUN_001026d7(local_28 + 7,"Separate channel mute",1,1)" identifier (argument_list "(local_28 + 7,"Separate channel mute",1,1)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Separate channel mute"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);" (call_expression "FUN_001026d7(local_28 + 7,"Separate volume levels",1,0)" identifier (argument_list "(local_28 + 7,"Separate volume levels",1,0)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Separate volume levels"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_0010277d(local_28 + 10,2,"number of volume level supported");" (call_expression "FUN_0010277d(local_28 + 10,2,"number of volume level supported")" identifier (argument_list "(local_28 + 10,2,"number of volume level supported")" ( (binary_expression "local_28 + 10" identifier + number_literal) , number_literal , (string_literal ""number of volume level supported"" " string_content ") ))) ;) (expression_statement "FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");" (call_expression "FUN_0010277d(local_28 + 0xc,2,"Buffer size supported")" identifier (argument_list "(local_28 + 0xc,2,"Buffer size supported")" ( (binary_expression "local_28 + 0xc" identifier + number_literal) , number_literal , (string_literal ""Buffer size supported"" " string_content ") ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,"Length",3,4);" (call_expression "FUN_001026d7(local_28 + 0x11,"Length",3,4)" identifier (argument_list "(local_28 + 0x11,"Length",3,4)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (string_literal ""Length"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3)" identifier (argument_list "(local_28 + 0x11,&DAT_0010ea23,1,3)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (pointer_expression "&DAT_0010ea23" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2)" identifier (argument_list "(local_28 + 0x11,&DAT_0010ea28,1,2)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (pointer_expression "&DAT_0010ea28" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1)" identifier (argument_list "(local_28 + 0x11,&DAT_0010ea2c,1,1)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (pointer_expression "&DAT_0010ea2c" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");" (call_expression "FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported")" identifier (argument_list "(local_28 + 0x16,2,"Copy management revision supported")" ( (binary_expression "local_28 + 0x16" identifier + number_literal) , number_literal , (string_literal ""Copy management revision supported"" " string_content ") ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);" (call_expression "FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0)" identifier (argument_list "(local_28 + 0x1b,"Rotation control selected",3,0)" ( (binary_expression "local_28 + 0x1b" identifier + number_literal) , (string_literal ""Rotation control selected"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");" (call_expression "FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected")" identifier (argument_list "(local_28 + 0x1c,2,"Current write speed selected")" ( (binary_expression "local_28 + 0x1c" identifier + number_literal) , number_literal , (string_literal ""Current write speed selected"" " string_content ") ))) ;) (expression_statement "FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");" (call_expression "FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables")" identifier (argument_list "(local_28 + 0x1e,2,"# of lu speed performance tables")" ( (binary_expression "local_28 + 0x1e" identifier + number_literal) , number_literal , (string_literal ""# of lu speed performance tables"" " string_content ") ))) ;) (if_statement "if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" if (parenthesized_expression "((DAT_001429cb == '\0') || (DAT_001429cd == '\0'))" ( (binary_expression "(DAT_001429cb == '\0') || (DAT_001429cd == '\0')" (parenthesized_expression "(DAT_001429cb == '\0')" ( (binary_expression "DAT_001429cb == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_001429cd == '\0')" ( (binary_expression "DAT_001429cd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      putchar(10);\n    }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) (else_clause "else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" else (compound_statement "{\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" { (expression_statement "iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);" (assignment_expression "iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0)" identifier = (call_expression "FUN_0010523d(param_1,&DAT_0014a9e0)" identifier (argument_list "(param_1,&DAT_0014a9e0)" ( identifier , (pointer_expression "&DAT_0014a9e0" & identifier) )))) ;) }))) })) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int cdvd_mm_capab(mpage_info *mpi,char *prefix)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long in_FS_OFFSET;\n  uint8_t *pagestart;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = setup_mode_page(mpi,0x31,cbuffer,&pagestart);\n  if (iVar2 == 0) {\n    if (*prefix != '\0') {\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }\n    if (x_interface == '\0' && replace == '\0') {\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }\n    bitfield(pagestart + 2,"DVD-RAM read",1,5);\n    bitfield(pagestart + 2,"DVD-R read",1,4);\n    bitfield(pagestart + 2,"DVD-ROM read",1,3);\n    bitfield(pagestart + 2,"Method 2",1,2);\n    bitfield(pagestart + 2,"CD-RW read",1,1);\n    bitfield(pagestart + 2,"CD-R read",1,0);\n    bitfield(pagestart + 3,"DVD-RAM write",1,5);\n    bitfield(pagestart + 3,"DVD-R write",1,4);\n    bitfield(pagestart + 3,"DVD-ROM write",1,3);\n    bitfield(pagestart + 3,"Test Write",1,2);\n    bitfield(pagestart + 3,"CD-RW write",1,1);\n    bitfield(pagestart + 3,"CD-R write",1,0);\n    bitfield(pagestart + 4,"BUF",1,7);\n    bitfield(pagestart + 4,"MultiSession",1,6);\n    bitfield(pagestart + 4,"Mode 2 Form 2",1,5);\n    bitfield(pagestart + 4,"Mode 2 Form 1",1,4);\n    bitfield(pagestart + 4,"Digital port (2)",1,3);\n    bitfield(pagestart + 4,"Digital port (1)",1,2);\n    bitfield(pagestart + 4,"Composite",1,1);\n    bitfield(pagestart + 4,"Audio play",1,0);\n    bitfield(pagestart + 5,"Read bar code",1,7);\n    bitfield(pagestart + 5,"UPC",1,6);\n    bitfield(pagestart + 5,"ISRC",1,5);\n    bitfield(pagestart + 5,"C2 pointers supported",1,4);\n    bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);\n    bitfield(pagestart + 5,"R-W supported",1,2);\n    bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);\n    bitfield(pagestart + 5,"CD-DA commands supported",1,0);\n    bitfield(pagestart + 6,"Loading mechanism type",7,5);\n    bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);\n    bitfield(pagestart + 6,"Prevent jumper",1,2);\n    bitfield(pagestart + 6,"Lock state",1,1);\n    bitfield(pagestart + 6,"Lock",1,0);\n    bitfield(pagestart + 7,"R-W in lead-in",1,5);\n    bitfield(pagestart + 7,"Side change capable",1,4);\n    bitfield(pagestart + 7,"S/W slot selection",1,3);\n    bitfield(pagestart + 7,"Changer supports disc present",1,2);\n    bitfield(pagestart + 7,"Separate channel mute",1,1);\n    bitfield(pagestart + 7,"Separate volume levels",1,0);\n    intfield(pagestart + 10,2,"number of volume level supported");\n    intfield(pagestart + 0xc,2,"Buffer size supported");\n    bitfield(pagestart + 0x11,"Length",3,4);\n    bitfield(pagestart + 0x11,"LSBF",1,3);\n    bitfield(pagestart + 0x11,"RCK",1,2);\n    bitfield(pagestart + 0x11,"BCKF",1,1);\n    intfield(pagestart + 0x16,2,"Copy management revision supported");\n    bitfield(pagestart + 0x1b,"Rotation control selected",3,0);\n    intfield(pagestart + 0x1c,2,"Current write speed selected");\n    intfield(pagestart + 0x1e,2,"# of lu speed performance tables");\n    if ((x_interface == '\0') || (replace == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int cdvd_mm_capab(mpage_info *mpi,char *prefix)\n\n{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long in_FS_OFFSET;\n  uint8_t *pagestart;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = setup_mode_page(mpi,0x31,cbuffer,&pagestart);\n  if (iVar2 == 0) {\n    if (*prefix != '\0') {\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }\n    if (x_interface == '\0' && replace == '\0') {\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }\n    bitfield(pagestart + 2,"DVD-RAM read",1,5);\n    bitfield(pagestart + 2,"DVD-R read",1,4);\n    bitfield(pagestart + 2,"DVD-ROM read",1,3);\n    bitfield(pagestart + 2,"Method 2",1,2);\n    bitfield(pagestart + 2,"CD-RW read",1,1);\n    bitfield(pagestart + 2,"CD-R read",1,0);\n    bitfield(pagestart + 3,"DVD-RAM write",1,5);\n    bitfield(pagestart + 3,"DVD-R write",1,4);\n    bitfield(pagestart + 3,"DVD-ROM write",1,3);\n    bitfield(pagestart + 3,"Test Write",1,2);\n    bitfield(pagestart + 3,"CD-RW write",1,1);\n    bitfield(pagestart + 3,"CD-R write",1,0);\n    bitfield(pagestart + 4,"BUF",1,7);\n    bitfield(pagestart + 4,"MultiSession",1,6);\n    bitfield(pagestart + 4,"Mode 2 Form 2",1,5);\n    bitfield(pagestart + 4,"Mode 2 Form 1",1,4);\n    bitfield(pagestart + 4,"Digital port (2)",1,3);\n    bitfield(pagestart + 4,"Digital port (1)",1,2);\n    bitfield(pagestart + 4,"Composite",1,1);\n    bitfield(pagestart + 4,"Audio play",1,0);\n    bitfield(pagestart + 5,"Read bar code",1,7);\n    bitfield(pagestart + 5,"UPC",1,6);\n    bitfield(pagestart + 5,"ISRC",1,5);\n    bitfield(pagestart + 5,"C2 pointers supported",1,4);\n    bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);\n    bitfield(pagestart + 5,"R-W supported",1,2);\n    bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);\n    bitfield(pagestart + 5,"CD-DA commands supported",1,0);\n    bitfield(pagestart + 6,"Loading mechanism type",7,5);\n    bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);\n    bitfield(pagestart + 6,"Prevent jumper",1,2);\n    bitfield(pagestart + 6,"Lock state",1,1);\n    bitfield(pagestart + 6,"Lock",1,0);\n    bitfield(pagestart + 7,"R-W in lead-in",1,5);\n    bitfield(pagestart + 7,"Side change capable",1,4);\n    bitfield(pagestart + 7,"S/W slot selection",1,3);\n    bitfield(pagestart + 7,"Changer supports disc present",1,2);\n    bitfield(pagestart + 7,"Separate channel mute",1,1);\n    bitfield(pagestart + 7,"Separate volume levels",1,0);\n    intfield(pagestart + 10,2,"number of volume level supported");\n    intfield(pagestart + 0xc,2,"Buffer size supported");\n    bitfield(pagestart + 0x11,"Length",3,4);\n    bitfield(pagestart + 0x11,"LSBF",1,3);\n    bitfield(pagestart + 0x11,"RCK",1,2);\n    bitfield(pagestart + 0x11,"BCKF",1,1);\n    intfield(pagestart + 0x16,2,"Copy management revision supported");\n    bitfield(pagestart + 0x1b,"Rotation control selected",3,0);\n    intfield(pagestart + 0x1c,2,"Current write speed selected");\n    intfield(pagestart + 0x1e,2,"# of lu speed performance tables");\n    if ((x_interface == '\0') || (replace == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "cdvd_mm_capab(mpage_info *mpi,char *prefix)" identifier (parameter_list "(mpage_info *mpi,char *prefix)" ( (parameter_declaration "mpage_info *mpi" type_identifier (pointer_declarator "*mpi" * identifier)) , (parameter_declaration "char *prefix" primitive_type (pointer_declarator "*prefix" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  char *pcVar3;\n  long in_FS_OFFSET;\n  uint8_t *pagestart;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = setup_mode_page(mpi,0x31,cbuffer,&pagestart);\n  if (iVar2 == 0) {\n    if (*prefix != '\0') {\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }\n    if (x_interface == '\0' && replace == '\0') {\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }\n    bitfield(pagestart + 2,"DVD-RAM read",1,5);\n    bitfield(pagestart + 2,"DVD-R read",1,4);\n    bitfield(pagestart + 2,"DVD-ROM read",1,3);\n    bitfield(pagestart + 2,"Method 2",1,2);\n    bitfield(pagestart + 2,"CD-RW read",1,1);\n    bitfield(pagestart + 2,"CD-R read",1,0);\n    bitfield(pagestart + 3,"DVD-RAM write",1,5);\n    bitfield(pagestart + 3,"DVD-R write",1,4);\n    bitfield(pagestart + 3,"DVD-ROM write",1,3);\n    bitfield(pagestart + 3,"Test Write",1,2);\n    bitfield(pagestart + 3,"CD-RW write",1,1);\n    bitfield(pagestart + 3,"CD-R write",1,0);\n    bitfield(pagestart + 4,"BUF",1,7);\n    bitfield(pagestart + 4,"MultiSession",1,6);\n    bitfield(pagestart + 4,"Mode 2 Form 2",1,5);\n    bitfield(pagestart + 4,"Mode 2 Form 1",1,4);\n    bitfield(pagestart + 4,"Digital port (2)",1,3);\n    bitfield(pagestart + 4,"Digital port (1)",1,2);\n    bitfield(pagestart + 4,"Composite",1,1);\n    bitfield(pagestart + 4,"Audio play",1,0);\n    bitfield(pagestart + 5,"Read bar code",1,7);\n    bitfield(pagestart + 5,"UPC",1,6);\n    bitfield(pagestart + 5,"ISRC",1,5);\n    bitfield(pagestart + 5,"C2 pointers supported",1,4);\n    bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);\n    bitfield(pagestart + 5,"R-W supported",1,2);\n    bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);\n    bitfield(pagestart + 5,"CD-DA commands supported",1,0);\n    bitfield(pagestart + 6,"Loading mechanism type",7,5);\n    bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);\n    bitfield(pagestart + 6,"Prevent jumper",1,2);\n    bitfield(pagestart + 6,"Lock state",1,1);\n    bitfield(pagestart + 6,"Lock",1,0);\n    bitfield(pagestart + 7,"R-W in lead-in",1,5);\n    bitfield(pagestart + 7,"Side change capable",1,4);\n    bitfield(pagestart + 7,"S/W slot selection",1,3);\n    bitfield(pagestart + 7,"Changer supports disc present",1,2);\n    bitfield(pagestart + 7,"Separate channel mute",1,1);\n    bitfield(pagestart + 7,"Separate volume levels",1,0);\n    intfield(pagestart + 10,2,"number of volume level supported");\n    intfield(pagestart + 0xc,2,"Buffer size supported");\n    bitfield(pagestart + 0x11,"Length",3,4);\n    bitfield(pagestart + 0x11,"LSBF",1,3);\n    bitfield(pagestart + 0x11,"RCK",1,2);\n    bitfield(pagestart + 0x11,"BCKF",1,1);\n    intfield(pagestart + 0x16,2,"Copy management revision supported");\n    bitfield(pagestart + 0x1b,"Rotation control selected",3,0);\n    intfield(pagestart + 0x1c,2,"Current write speed selected");\n    intfield(pagestart + 0x1e,2,"# of lu speed performance tables");\n    if ((x_interface == '\0') || (replace == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "uint8_t *pagestart;" primitive_type (pointer_declarator "*pagestart" * identifier) ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = setup_mode_page(mpi,0x31,cbuffer,&pagestart);" (assignment_expression "iVar2 = setup_mode_page(mpi,0x31,cbuffer,&pagestart)" identifier = (call_expression "setup_mode_page(mpi,0x31,cbuffer,&pagestart)" identifier (argument_list "(mpi,0x31,cbuffer,&pagestart)" ( identifier , number_literal , identifier , (pointer_expression "&pagestart" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    if (*prefix != '\0') {\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }\n    if (x_interface == '\0' && replace == '\0') {\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }\n    bitfield(pagestart + 2,"DVD-RAM read",1,5);\n    bitfield(pagestart + 2,"DVD-R read",1,4);\n    bitfield(pagestart + 2,"DVD-ROM read",1,3);\n    bitfield(pagestart + 2,"Method 2",1,2);\n    bitfield(pagestart + 2,"CD-RW read",1,1);\n    bitfield(pagestart + 2,"CD-R read",1,0);\n    bitfield(pagestart + 3,"DVD-RAM write",1,5);\n    bitfield(pagestart + 3,"DVD-R write",1,4);\n    bitfield(pagestart + 3,"DVD-ROM write",1,3);\n    bitfield(pagestart + 3,"Test Write",1,2);\n    bitfield(pagestart + 3,"CD-RW write",1,1);\n    bitfield(pagestart + 3,"CD-R write",1,0);\n    bitfield(pagestart + 4,"BUF",1,7);\n    bitfield(pagestart + 4,"MultiSession",1,6);\n    bitfield(pagestart + 4,"Mode 2 Form 2",1,5);\n    bitfield(pagestart + 4,"Mode 2 Form 1",1,4);\n    bitfield(pagestart + 4,"Digital port (2)",1,3);\n    bitfield(pagestart + 4,"Digital port (1)",1,2);\n    bitfield(pagestart + 4,"Composite",1,1);\n    bitfield(pagestart + 4,"Audio play",1,0);\n    bitfield(pagestart + 5,"Read bar code",1,7);\n    bitfield(pagestart + 5,"UPC",1,6);\n    bitfield(pagestart + 5,"ISRC",1,5);\n    bitfield(pagestart + 5,"C2 pointers supported",1,4);\n    bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);\n    bitfield(pagestart + 5,"R-W supported",1,2);\n    bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);\n    bitfield(pagestart + 5,"CD-DA commands supported",1,0);\n    bitfield(pagestart + 6,"Loading mechanism type",7,5);\n    bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);\n    bitfield(pagestart + 6,"Prevent jumper",1,2);\n    bitfield(pagestart + 6,"Lock state",1,1);\n    bitfield(pagestart + 6,"Lock",1,0);\n    bitfield(pagestart + 7,"R-W in lead-in",1,5);\n    bitfield(pagestart + 7,"Side change capable",1,4);\n    bitfield(pagestart + 7,"S/W slot selection",1,3);\n    bitfield(pagestart + 7,"Changer supports disc present",1,2);\n    bitfield(pagestart + 7,"Separate channel mute",1,1);\n    bitfield(pagestart + 7,"Separate volume levels",1,0);\n    intfield(pagestart + 10,2,"number of volume level supported");\n    intfield(pagestart + 0xc,2,"Buffer size supported");\n    bitfield(pagestart + 0x11,"Length",3,4);\n    bitfield(pagestart + 0x11,"LSBF",1,3);\n    bitfield(pagestart + 0x11,"RCK",1,2);\n    bitfield(pagestart + 0x11,"BCKF",1,1);\n    intfield(pagestart + 0x16,2,"Copy management revision supported");\n    bitfield(pagestart + 0x1b,"Rotation control selected",3,0);\n    intfield(pagestart + 0x1c,2,"Current write speed selected");\n    intfield(pagestart + 0x1e,2,"# of lu speed performance tables");\n    if ((x_interface == '\0') || (replace == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*prefix != '\0') {\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }\n    if (x_interface == '\0' && replace == '\0') {\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }\n    bitfield(pagestart + 2,"DVD-RAM read",1,5);\n    bitfield(pagestart + 2,"DVD-R read",1,4);\n    bitfield(pagestart + 2,"DVD-ROM read",1,3);\n    bitfield(pagestart + 2,"Method 2",1,2);\n    bitfield(pagestart + 2,"CD-RW read",1,1);\n    bitfield(pagestart + 2,"CD-R read",1,0);\n    bitfield(pagestart + 3,"DVD-RAM write",1,5);\n    bitfield(pagestart + 3,"DVD-R write",1,4);\n    bitfield(pagestart + 3,"DVD-ROM write",1,3);\n    bitfield(pagestart + 3,"Test Write",1,2);\n    bitfield(pagestart + 3,"CD-RW write",1,1);\n    bitfield(pagestart + 3,"CD-R write",1,0);\n    bitfield(pagestart + 4,"BUF",1,7);\n    bitfield(pagestart + 4,"MultiSession",1,6);\n    bitfield(pagestart + 4,"Mode 2 Form 2",1,5);\n    bitfield(pagestart + 4,"Mode 2 Form 1",1,4);\n    bitfield(pagestart + 4,"Digital port (2)",1,3);\n    bitfield(pagestart + 4,"Digital port (1)",1,2);\n    bitfield(pagestart + 4,"Composite",1,1);\n    bitfield(pagestart + 4,"Audio play",1,0);\n    bitfield(pagestart + 5,"Read bar code",1,7);\n    bitfield(pagestart + 5,"UPC",1,6);\n    bitfield(pagestart + 5,"ISRC",1,5);\n    bitfield(pagestart + 5,"C2 pointers supported",1,4);\n    bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);\n    bitfield(pagestart + 5,"R-W supported",1,2);\n    bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);\n    bitfield(pagestart + 5,"CD-DA commands supported",1,0);\n    bitfield(pagestart + 6,"Loading mechanism type",7,5);\n    bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);\n    bitfield(pagestart + 6,"Prevent jumper",1,2);\n    bitfield(pagestart + 6,"Lock state",1,1);\n    bitfield(pagestart + 6,"Lock",1,0);\n    bitfield(pagestart + 7,"R-W in lead-in",1,5);\n    bitfield(pagestart + 7,"Side change capable",1,4);\n    bitfield(pagestart + 7,"S/W slot selection",1,3);\n    bitfield(pagestart + 7,"Changer supports disc present",1,2);\n    bitfield(pagestart + 7,"Separate channel mute",1,1);\n    bitfield(pagestart + 7,"Separate volume levels",1,0);\n    intfield(pagestart + 10,2,"number of volume level supported");\n    intfield(pagestart + 0xc,2,"Buffer size supported");\n    bitfield(pagestart + 0x11,"Length",3,4);\n    bitfield(pagestart + 0x11,"LSBF",1,3);\n    bitfield(pagestart + 0x11,"RCK",1,2);\n    bitfield(pagestart + 0x11,"BCKF",1,1);\n    intfield(pagestart + 0x16,2,"Copy management revision supported");\n    bitfield(pagestart + 0x1b,"Rotation control selected",3,0);\n    intfield(pagestart + 0x1c,2,"Current write speed selected");\n    intfield(pagestart + 0x1e,2,"# of lu speed performance tables");\n    if ((x_interface == '\0') || (replace == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }\n  }" { (if_statement "if (*prefix != '\0') {\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }" if (parenthesized_expression "(*prefix != '\0')" ( (binary_expression "*prefix != '\0'" (pointer_expression "*prefix" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      __printf_chk(1,&DAT_0010dd75,prefix);\n    }" { (expression_statement "__printf_chk(1,&DAT_0010dd75,prefix);" (call_expression "__printf_chk(1,&DAT_0010dd75,prefix)" identifier (argument_list "(1,&DAT_0010dd75,prefix)" ( number_literal , (pointer_expression "&DAT_0010dd75" & identifier) , identifier ))) ;) })) (if_statement "if (x_interface == '\0' && replace == '\0') {\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }" if (parenthesized_expression "(x_interface == '\0' && replace == '\0')" ( (binary_expression "x_interface == '\0' && replace == '\0'" (binary_expression "x_interface == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (binary_expression "replace == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      iVar1 = mpi->page;\n      pcVar3 = get_page_name(mpi);\n      __printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);\n      puts("----------------------------------------------------");\n    }" { (expression_statement "iVar1 = mpi->page;" (assignment_expression "iVar1 = mpi->page" identifier = (field_expression "mpi->page" identifier -> field_identifier)) ;) (expression_statement "pcVar3 = get_page_name(mpi);" (assignment_expression "pcVar3 = get_page_name(mpi)" identifier = (call_expression "get_page_name(mpi)" identifier (argument_list "(mpi)" ( identifier )))) ;) (expression_statement "__printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1);" (call_expression "__printf_chk(1,"%s mode page (0x%x)\n",pcVar3,iVar1)" identifier (argument_list "(1,"%s mode page (0x%x)\n",pcVar3,iVar1)" ( number_literal , (string_literal ""%s mode page (0x%x)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "puts("----------------------------------------------------");" (call_expression "puts("----------------------------------------------------")" identifier (argument_list "("----------------------------------------------------")" ( (string_literal ""----------------------------------------------------"" " string_content ") ))) ;) })) (expression_statement "bitfield(pagestart + 2,"DVD-RAM read",1,5);" (call_expression "bitfield(pagestart + 2,"DVD-RAM read",1,5)" identifier (argument_list "(pagestart + 2,"DVD-RAM read",1,5)" ( (binary_expression "pagestart + 2" identifier + number_literal) , (string_literal ""DVD-RAM read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 2,"DVD-R read",1,4);" (call_expression "bitfield(pagestart + 2,"DVD-R read",1,4)" identifier (argument_list "(pagestart + 2,"DVD-R read",1,4)" ( (binary_expression "pagestart + 2" identifier + number_literal) , (string_literal ""DVD-R read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 2,"DVD-ROM read",1,3);" (call_expression "bitfield(pagestart + 2,"DVD-ROM read",1,3)" identifier (argument_list "(pagestart + 2,"DVD-ROM read",1,3)" ( (binary_expression "pagestart + 2" identifier + number_literal) , (string_literal ""DVD-ROM read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 2,"Method 2",1,2);" (call_expression "bitfield(pagestart + 2,"Method 2",1,2)" identifier (argument_list "(pagestart + 2,"Method 2",1,2)" ( (binary_expression "pagestart + 2" identifier + number_literal) , (string_literal ""Method 2"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 2,"CD-RW read",1,1);" (call_expression "bitfield(pagestart + 2,"CD-RW read",1,1)" identifier (argument_list "(pagestart + 2,"CD-RW read",1,1)" ( (binary_expression "pagestart + 2" identifier + number_literal) , (string_literal ""CD-RW read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 2,"CD-R read",1,0);" (call_expression "bitfield(pagestart + 2,"CD-R read",1,0)" identifier (argument_list "(pagestart + 2,"CD-R read",1,0)" ( (binary_expression "pagestart + 2" identifier + number_literal) , (string_literal ""CD-R read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 3,"DVD-RAM write",1,5);" (call_expression "bitfield(pagestart + 3,"DVD-RAM write",1,5)" identifier (argument_list "(pagestart + 3,"DVD-RAM write",1,5)" ( (binary_expression "pagestart + 3" identifier + number_literal) , (string_literal ""DVD-RAM write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 3,"DVD-R write",1,4);" (call_expression "bitfield(pagestart + 3,"DVD-R write",1,4)" identifier (argument_list "(pagestart + 3,"DVD-R write",1,4)" ( (binary_expression "pagestart + 3" identifier + number_literal) , (string_literal ""DVD-R write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 3,"DVD-ROM write",1,3);" (call_expression "bitfield(pagestart + 3,"DVD-ROM write",1,3)" identifier (argument_list "(pagestart + 3,"DVD-ROM write",1,3)" ( (binary_expression "pagestart + 3" identifier + number_literal) , (string_literal ""DVD-ROM write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 3,"Test Write",1,2);" (call_expression "bitfield(pagestart + 3,"Test Write",1,2)" identifier (argument_list "(pagestart + 3,"Test Write",1,2)" ( (binary_expression "pagestart + 3" identifier + number_literal) , (string_literal ""Test Write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 3,"CD-RW write",1,1);" (call_expression "bitfield(pagestart + 3,"CD-RW write",1,1)" identifier (argument_list "(pagestart + 3,"CD-RW write",1,1)" ( (binary_expression "pagestart + 3" identifier + number_literal) , (string_literal ""CD-RW write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 3,"CD-R write",1,0);" (call_expression "bitfield(pagestart + 3,"CD-R write",1,0)" identifier (argument_list "(pagestart + 3,"CD-R write",1,0)" ( (binary_expression "pagestart + 3" identifier + number_literal) , (string_literal ""CD-R write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"BUF",1,7);" (call_expression "bitfield(pagestart + 4,"BUF",1,7)" identifier (argument_list "(pagestart + 4,"BUF",1,7)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""BUF"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"MultiSession",1,6);" (call_expression "bitfield(pagestart + 4,"MultiSession",1,6)" identifier (argument_list "(pagestart + 4,"MultiSession",1,6)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""MultiSession"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"Mode 2 Form 2",1,5);" (call_expression "bitfield(pagestart + 4,"Mode 2 Form 2",1,5)" identifier (argument_list "(pagestart + 4,"Mode 2 Form 2",1,5)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""Mode 2 Form 2"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"Mode 2 Form 1",1,4);" (call_expression "bitfield(pagestart + 4,"Mode 2 Form 1",1,4)" identifier (argument_list "(pagestart + 4,"Mode 2 Form 1",1,4)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""Mode 2 Form 1"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"Digital port (2)",1,3);" (call_expression "bitfield(pagestart + 4,"Digital port (2)",1,3)" identifier (argument_list "(pagestart + 4,"Digital port (2)",1,3)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""Digital port (2)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"Digital port (1)",1,2);" (call_expression "bitfield(pagestart + 4,"Digital port (1)",1,2)" identifier (argument_list "(pagestart + 4,"Digital port (1)",1,2)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""Digital port (1)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"Composite",1,1);" (call_expression "bitfield(pagestart + 4,"Composite",1,1)" identifier (argument_list "(pagestart + 4,"Composite",1,1)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""Composite"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 4,"Audio play",1,0);" (call_expression "bitfield(pagestart + 4,"Audio play",1,0)" identifier (argument_list "(pagestart + 4,"Audio play",1,0)" ( (binary_expression "pagestart + 4" identifier + number_literal) , (string_literal ""Audio play"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"Read bar code",1,7);" (call_expression "bitfield(pagestart + 5,"Read bar code",1,7)" identifier (argument_list "(pagestart + 5,"Read bar code",1,7)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""Read bar code"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"UPC",1,6);" (call_expression "bitfield(pagestart + 5,"UPC",1,6)" identifier (argument_list "(pagestart + 5,"UPC",1,6)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""UPC"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"ISRC",1,5);" (call_expression "bitfield(pagestart + 5,"ISRC",1,5)" identifier (argument_list "(pagestart + 5,"ISRC",1,5)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""ISRC"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"C2 pointers supported",1,4);" (call_expression "bitfield(pagestart + 5,"C2 pointers supported",1,4)" identifier (argument_list "(pagestart + 5,"C2 pointers supported",1,4)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""C2 pointers supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3);" (call_expression "bitfield(pagestart + 5,"R-W de-interleaved & corrected",1,3)" identifier (argument_list "(pagestart + 5,"R-W de-interleaved & corrected",1,3)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""R-W de-interleaved & corrected"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"R-W supported",1,2);" (call_expression "bitfield(pagestart + 5,"R-W supported",1,2)" identifier (argument_list "(pagestart + 5,"R-W supported",1,2)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""R-W supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"CD-DA stream is accurate",1,1);" (call_expression "bitfield(pagestart + 5,"CD-DA stream is accurate",1,1)" identifier (argument_list "(pagestart + 5,"CD-DA stream is accurate",1,1)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""CD-DA stream is accurate"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 5,"CD-DA commands supported",1,0);" (call_expression "bitfield(pagestart + 5,"CD-DA commands supported",1,0)" identifier (argument_list "(pagestart + 5,"CD-DA commands supported",1,0)" ( (binary_expression "pagestart + 5" identifier + number_literal) , (string_literal ""CD-DA commands supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 6,"Loading mechanism type",7,5);" (call_expression "bitfield(pagestart + 6,"Loading mechanism type",7,5)" identifier (argument_list "(pagestart + 6,"Loading mechanism type",7,5)" ( (binary_expression "pagestart + 6" identifier + number_literal) , (string_literal ""Loading mechanism type"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 6,"Eject (individual or magazine)",1,3);" (call_expression "bitfield(pagestart + 6,"Eject (individual or magazine)",1,3)" identifier (argument_list "(pagestart + 6,"Eject (individual or magazine)",1,3)" ( (binary_expression "pagestart + 6" identifier + number_literal) , (string_literal ""Eject (individual or magazine)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 6,"Prevent jumper",1,2);" (call_expression "bitfield(pagestart + 6,"Prevent jumper",1,2)" identifier (argument_list "(pagestart + 6,"Prevent jumper",1,2)" ( (binary_expression "pagestart + 6" identifier + number_literal) , (string_literal ""Prevent jumper"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 6,"Lock state",1,1);" (call_expression "bitfield(pagestart + 6,"Lock state",1,1)" identifier (argument_list "(pagestart + 6,"Lock state",1,1)" ( (binary_expression "pagestart + 6" identifier + number_literal) , (string_literal ""Lock state"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 6,"Lock",1,0);" (call_expression "bitfield(pagestart + 6,"Lock",1,0)" identifier (argument_list "(pagestart + 6,"Lock",1,0)" ( (binary_expression "pagestart + 6" identifier + number_literal) , (string_literal ""Lock"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 7,"R-W in lead-in",1,5);" (call_expression "bitfield(pagestart + 7,"R-W in lead-in",1,5)" identifier (argument_list "(pagestart + 7,"R-W in lead-in",1,5)" ( (binary_expression "pagestart + 7" identifier + number_literal) , (string_literal ""R-W in lead-in"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 7,"Side change capable",1,4);" (call_expression "bitfield(pagestart + 7,"Side change capable",1,4)" identifier (argument_list "(pagestart + 7,"Side change capable",1,4)" ( (binary_expression "pagestart + 7" identifier + number_literal) , (string_literal ""Side change capable"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 7,"S/W slot selection",1,3);" (call_expression "bitfield(pagestart + 7,"S/W slot selection",1,3)" identifier (argument_list "(pagestart + 7,"S/W slot selection",1,3)" ( (binary_expression "pagestart + 7" identifier + number_literal) , (string_literal ""S/W slot selection"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 7,"Changer supports disc present",1,2);" (call_expression "bitfield(pagestart + 7,"Changer supports disc present",1,2)" identifier (argument_list "(pagestart + 7,"Changer supports disc present",1,2)" ( (binary_expression "pagestart + 7" identifier + number_literal) , (string_literal ""Changer supports disc present"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 7,"Separate channel mute",1,1);" (call_expression "bitfield(pagestart + 7,"Separate channel mute",1,1)" identifier (argument_list "(pagestart + 7,"Separate channel mute",1,1)" ( (binary_expression "pagestart + 7" identifier + number_literal) , (string_literal ""Separate channel mute"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 7,"Separate volume levels",1,0);" (call_expression "bitfield(pagestart + 7,"Separate volume levels",1,0)" identifier (argument_list "(pagestart + 7,"Separate volume levels",1,0)" ( (binary_expression "pagestart + 7" identifier + number_literal) , (string_literal ""Separate volume levels"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "intfield(pagestart + 10,2,"number of volume level supported");" (call_expression "intfield(pagestart + 10,2,"number of volume level supported")" identifier (argument_list "(pagestart + 10,2,"number of volume level supported")" ( (binary_expression "pagestart + 10" identifier + number_literal) , number_literal , (string_literal ""number of volume level supported"" " string_content ") ))) ;) (expression_statement "intfield(pagestart + 0xc,2,"Buffer size supported");" (call_expression "intfield(pagestart + 0xc,2,"Buffer size supported")" identifier (argument_list "(pagestart + 0xc,2,"Buffer size supported")" ( (binary_expression "pagestart + 0xc" identifier + number_literal) , number_literal , (string_literal ""Buffer size supported"" " string_content ") ))) ;) (expression_statement "bitfield(pagestart + 0x11,"Length",3,4);" (call_expression "bitfield(pagestart + 0x11,"Length",3,4)" identifier (argument_list "(pagestart + 0x11,"Length",3,4)" ( (binary_expression "pagestart + 0x11" identifier + number_literal) , (string_literal ""Length"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 0x11,"LSBF",1,3);" (call_expression "bitfield(pagestart + 0x11,"LSBF",1,3)" identifier (argument_list "(pagestart + 0x11,"LSBF",1,3)" ( (binary_expression "pagestart + 0x11" identifier + number_literal) , (string_literal ""LSBF"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 0x11,"RCK",1,2);" (call_expression "bitfield(pagestart + 0x11,"RCK",1,2)" identifier (argument_list "(pagestart + 0x11,"RCK",1,2)" ( (binary_expression "pagestart + 0x11" identifier + number_literal) , (string_literal ""RCK"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "bitfield(pagestart + 0x11,"BCKF",1,1);" (call_expression "bitfield(pagestart + 0x11,"BCKF",1,1)" identifier (argument_list "(pagestart + 0x11,"BCKF",1,1)" ( (binary_expression "pagestart + 0x11" identifier + number_literal) , (string_literal ""BCKF"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "intfield(pagestart + 0x16,2,"Copy management revision supported");" (call_expression "intfield(pagestart + 0x16,2,"Copy management revision supported")" identifier (argument_list "(pagestart + 0x16,2,"Copy management revision supported")" ( (binary_expression "pagestart + 0x16" identifier + number_literal) , number_literal , (string_literal ""Copy management revision supported"" " string_content ") ))) ;) (expression_statement "bitfield(pagestart + 0x1b,"Rotation control selected",3,0);" (call_expression "bitfield(pagestart + 0x1b,"Rotation control selected",3,0)" identifier (argument_list "(pagestart + 0x1b,"Rotation control selected",3,0)" ( (binary_expression "pagestart + 0x1b" identifier + number_literal) , (string_literal ""Rotation control selected"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "intfield(pagestart + 0x1c,2,"Current write speed selected");" (call_expression "intfield(pagestart + 0x1c,2,"Current write speed selected")" identifier (argument_list "(pagestart + 0x1c,2,"Current write speed selected")" ( (binary_expression "pagestart + 0x1c" identifier + number_literal) , number_literal , (string_literal ""Current write speed selected"" " string_content ") ))) ;) (expression_statement "intfield(pagestart + 0x1e,2,"# of lu speed performance tables");" (call_expression "intfield(pagestart + 0x1e,2,"# of lu speed performance tables")" identifier (argument_list "(pagestart + 0x1e,2,"# of lu speed performance tables")" ( (binary_expression "pagestart + 0x1e" identifier + number_literal) , number_literal , (string_literal ""# of lu speed performance tables"" " string_content ") ))) ;) (if_statement "if ((x_interface == '\0') || (replace == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }" if (parenthesized_expression "((x_interface == '\0') || (replace == '\0'))" ( (binary_expression "(x_interface == '\0') || (replace == '\0')" (parenthesized_expression "(x_interface == '\0')" ( (binary_expression "x_interface == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(replace == '\0')" ( (binary_expression "replace == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      putchar(10);\n    }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) (else_clause "else {\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }" else (compound_statement "{\n      iVar2 = put_mode_page(mpi,cbuffer);\n    }" { (expression_statement "iVar2 = put_mode_page(mpi,cbuffer);" (assignment_expression "iVar2 = put_mode_page(mpi,cbuffer)" identifier = (call_expression "put_mode_page(mpi,cbuffer)" identifier (argument_list "(mpi,cbuffer)" ( identifier , identifier )))) ;) }))) })) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_00108102(undefined4 *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int FUN_00108102(undefined4 *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_00108102(undefined4 *param_1,char *param_2)" identifier (parameter_list "(undefined4 *param_1,char *param_2)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_28;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_20;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);" (assignment_expression "iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28)" identifier = (call_expression "FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28)" identifier (argument_list "(param_1,0x31,&DAT_0014a9e0,&local_28)" ( identifier , number_literal , (pointer_expression "&DAT_0014a9e0" & identifier) , (pointer_expression "&local_28" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }" { (if_statement "if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }" if (parenthesized_expression "(*param_2 != '\0')" ( (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }" { (expression_statement "__printf_chk(1,&DAT_0010dd75,param_2);" (call_expression "__printf_chk(1,&DAT_0010dd75,param_2)" identifier (argument_list "(1,&DAT_0010dd75,param_2)" ( number_literal , (pointer_expression "&DAT_0010dd75" & identifier) , identifier ))) ;) })) (if_statement "if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }" if (parenthesized_expression "(DAT_001429cb == '\0' && DAT_001429cd == '\0')" ( (binary_expression "DAT_001429cb == '\0' && DAT_001429cd == '\0'" (binary_expression "DAT_001429cb == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (binary_expression "DAT_001429cd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }" { (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar3 = FUN_0010497b(param_1);" (assignment_expression "uVar3 = FUN_0010497b(param_1)" identifier = (call_expression "FUN_0010497b(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "__printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);" (call_expression "__printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1)" identifier (argument_list "(1,"%s mode page (0x%x)\n",uVar3,uVar1)" ( number_literal , (string_literal ""%s mode page (0x%x)\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (expression_statement "puts("----------------------------------------------------");" (call_expression "puts("----------------------------------------------------")" identifier (argument_list "("----------------------------------------------------")" ( (string_literal ""----------------------------------------------------"" " string_content ") ))) ;) })) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5)" identifier (argument_list "(local_28 + 2,"DVD-RAM read",1,5)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""DVD-RAM read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-R read",1,4);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-R read",1,4)" identifier (argument_list "(local_28 + 2,"DVD-R read",1,4)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""DVD-R read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3)" identifier (argument_list "(local_28 + 2,"DVD-ROM read",1,3)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""DVD-ROM read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"Method 2",1,2);" (call_expression "FUN_001026d7(local_28 + 2,"Method 2",1,2)" identifier (argument_list "(local_28 + 2,"Method 2",1,2)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""Method 2"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"CD-RW read",1,1);" (call_expression "FUN_001026d7(local_28 + 2,"CD-RW read",1,1)" identifier (argument_list "(local_28 + 2,"CD-RW read",1,1)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""CD-RW read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 2,"CD-R read",1,0);" (call_expression "FUN_001026d7(local_28 + 2,"CD-R read",1,0)" identifier (argument_list "(local_28 + 2,"CD-R read",1,0)" ( (binary_expression "local_28 + 2" identifier + number_literal) , (string_literal ""CD-R read"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5)" identifier (argument_list "(local_28 + 3,"DVD-RAM write",1,5)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""DVD-RAM write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-R write",1,4);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-R write",1,4)" identifier (argument_list "(local_28 + 3,"DVD-R write",1,4)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""DVD-R write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3)" identifier (argument_list "(local_28 + 3,"DVD-ROM write",1,3)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""DVD-ROM write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"Test Write",1,2);" (call_expression "FUN_001026d7(local_28 + 3,"Test Write",1,2)" identifier (argument_list "(local_28 + 3,"Test Write",1,2)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""Test Write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"CD-RW write",1,1);" (call_expression "FUN_001026d7(local_28 + 3,"CD-RW write",1,1)" identifier (argument_list "(local_28 + 3,"CD-RW write",1,1)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""CD-RW write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 3,"CD-R write",1,0);" (call_expression "FUN_001026d7(local_28 + 3,"CD-R write",1,0)" identifier (argument_list "(local_28 + 3,"CD-R write",1,0)" ( (binary_expression "local_28 + 3" identifier + number_literal) , (string_literal ""CD-R write"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);" (call_expression "FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7)" identifier (argument_list "(local_28 + 4,&DAT_0010e885,1,7)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (pointer_expression "&DAT_0010e885" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"MultiSession",1,6);" (call_expression "FUN_001026d7(local_28 + 4,"MultiSession",1,6)" identifier (argument_list "(local_28 + 4,"MultiSession",1,6)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""MultiSession"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);" (call_expression "FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5)" identifier (argument_list "(local_28 + 4,"Mode 2 Form 2",1,5)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Mode 2 Form 2"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);" (call_expression "FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4)" identifier (argument_list "(local_28 + 4,"Mode 2 Form 1",1,4)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Mode 2 Form 1"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);" (call_expression "FUN_001026d7(local_28 + 4,"Digital port (2)",1,3)" identifier (argument_list "(local_28 + 4,"Digital port (2)",1,3)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Digital port (2)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);" (call_expression "FUN_001026d7(local_28 + 4,"Digital port (1)",1,2)" identifier (argument_list "(local_28 + 4,"Digital port (1)",1,2)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Digital port (1)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Composite",1,1);" (call_expression "FUN_001026d7(local_28 + 4,"Composite",1,1)" identifier (argument_list "(local_28 + 4,"Composite",1,1)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Composite"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 4,"Audio play",1,0);" (call_expression "FUN_001026d7(local_28 + 4,"Audio play",1,0)" identifier (argument_list "(local_28 + 4,"Audio play",1,0)" ( (binary_expression "local_28 + 4" identifier + number_literal) , (string_literal ""Audio play"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"Read bar code",1,7);" (call_expression "FUN_001026d7(local_28 + 5,"Read bar code",1,7)" identifier (argument_list "(local_28 + 5,"Read bar code",1,7)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""Read bar code"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);" (call_expression "FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6)" identifier (argument_list "(local_28 + 5,&DAT_0010e8f7,1,6)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (pointer_expression "&DAT_0010e8f7" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);" (call_expression "FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5)" identifier (argument_list "(local_28 + 5,&DAT_0010e8fb,1,5)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (pointer_expression "&DAT_0010e8fb" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);" (call_expression "FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4)" identifier (argument_list "(local_28 + 5,"C2 pointers supported",1,4)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""C2 pointers supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);" (call_expression "FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3)" identifier (argument_list "(local_28 + 5,"R-W de-interleaved & corrected",1,3)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""R-W de-interleaved & corrected"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"R-W supported",1,2);" (call_expression "FUN_001026d7(local_28 + 5,"R-W supported",1,2)" identifier (argument_list "(local_28 + 5,"R-W supported",1,2)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""R-W supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);" (call_expression "FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1)" identifier (argument_list "(local_28 + 5,"CD-DA stream is accurate",1,1)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""CD-DA stream is accurate"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);" (call_expression "FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0)" identifier (argument_list "(local_28 + 5,"CD-DA commands supported",1,0)" ( (binary_expression "local_28 + 5" identifier + number_literal) , (string_literal ""CD-DA commands supported"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);" (call_expression "FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5)" identifier (argument_list "(local_28 + 6,"Loading mechanism type",7,5)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Loading mechanism type"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);" (call_expression "FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3)" identifier (argument_list "(local_28 + 6,"Eject (individual or magazine)",1,3)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Eject (individual or magazine)"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);" (call_expression "FUN_001026d7(local_28 + 6,"Prevent jumper",1,2)" identifier (argument_list "(local_28 + 6,"Prevent jumper",1,2)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Prevent jumper"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,"Lock state",1,1);" (call_expression "FUN_001026d7(local_28 + 6,"Lock state",1,1)" identifier (argument_list "(local_28 + 6,"Lock state",1,1)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (string_literal ""Lock state"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);" (call_expression "FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0)" identifier (argument_list "(local_28 + 6,&DAT_0010e987,1,0)" ( (binary_expression "local_28 + 6" identifier + number_literal) , (pointer_expression "&DAT_0010e987" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);" (call_expression "FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5)" identifier (argument_list "(local_28 + 7,"R-W in lead-in",1,5)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""R-W in lead-in"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Side change capable",1,4);" (call_expression "FUN_001026d7(local_28 + 7,"Side change capable",1,4)" identifier (argument_list "(local_28 + 7,"Side change capable",1,4)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Side change capable"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);" (call_expression "FUN_001026d7(local_28 + 7,"S/W slot selection",1,3)" identifier (argument_list "(local_28 + 7,"S/W slot selection",1,3)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""S/W slot selection"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);" (call_expression "FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2)" identifier (argument_list "(local_28 + 7,"Changer supports disc present",1,2)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Changer supports disc present"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);" (call_expression "FUN_001026d7(local_28 + 7,"Separate channel mute",1,1)" identifier (argument_list "(local_28 + 7,"Separate channel mute",1,1)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Separate channel mute"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);" (call_expression "FUN_001026d7(local_28 + 7,"Separate volume levels",1,0)" identifier (argument_list "(local_28 + 7,"Separate volume levels",1,0)" ( (binary_expression "local_28 + 7" identifier + number_literal) , (string_literal ""Separate volume levels"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_0010277d(local_28 + 10,2,"number of volume level supported");" (call_expression "FUN_0010277d(local_28 + 10,2,"number of volume level supported")" identifier (argument_list "(local_28 + 10,2,"number of volume level supported")" ( (binary_expression "local_28 + 10" identifier + number_literal) , number_literal , (string_literal ""number of volume level supported"" " string_content ") ))) ;) (expression_statement "FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");" (call_expression "FUN_0010277d(local_28 + 0xc,2,"Buffer size supported")" identifier (argument_list "(local_28 + 0xc,2,"Buffer size supported")" ( (binary_expression "local_28 + 0xc" identifier + number_literal) , number_literal , (string_literal ""Buffer size supported"" " string_content ") ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,"Length",3,4);" (call_expression "FUN_001026d7(local_28 + 0x11,"Length",3,4)" identifier (argument_list "(local_28 + 0x11,"Length",3,4)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (string_literal ""Length"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3)" identifier (argument_list "(local_28 + 0x11,&DAT_0010ea23,1,3)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (pointer_expression "&DAT_0010ea23" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2)" identifier (argument_list "(local_28 + 0x11,&DAT_0010ea28,1,2)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (pointer_expression "&DAT_0010ea28" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1)" identifier (argument_list "(local_28 + 0x11,&DAT_0010ea2c,1,1)" ( (binary_expression "local_28 + 0x11" identifier + number_literal) , (pointer_expression "&DAT_0010ea2c" & identifier) , number_literal , number_literal ))) ;) (expression_statement "FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");" (call_expression "FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported")" identifier (argument_list "(local_28 + 0x16,2,"Copy management revision supported")" ( (binary_expression "local_28 + 0x16" identifier + number_literal) , number_literal , (string_literal ""Copy management revision supported"" " string_content ") ))) ;) (expression_statement "FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);" (call_expression "FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0)" identifier (argument_list "(local_28 + 0x1b,"Rotation control selected",3,0)" ( (binary_expression "local_28 + 0x1b" identifier + number_literal) , (string_literal ""Rotation control selected"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");" (call_expression "FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected")" identifier (argument_list "(local_28 + 0x1c,2,"Current write speed selected")" ( (binary_expression "local_28 + 0x1c" identifier + number_literal) , number_literal , (string_literal ""Current write speed selected"" " string_content ") ))) ;) (expression_statement "FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");" (call_expression "FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables")" identifier (argument_list "(local_28 + 0x1e,2,"# of lu speed performance tables")" ( (binary_expression "local_28 + 0x1e" identifier + number_literal) , number_literal , (string_literal ""# of lu speed performance tables"" " string_content ") ))) ;) (if_statement "if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" if (parenthesized_expression "((DAT_001429cb == '\0') || (DAT_001429cd == '\0'))" ( (binary_expression "(DAT_001429cb == '\0') || (DAT_001429cd == '\0')" (parenthesized_expression "(DAT_001429cb == '\0')" ( (binary_expression "DAT_001429cb == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(DAT_001429cd == '\0')" ( (binary_expression "DAT_001429cd == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      putchar(10);\n    }" { (expression_statement "putchar(10);" (call_expression "putchar(10)" identifier (argument_list "(10)" ( number_literal ))) ;) }) (else_clause "else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" else (compound_statement "{\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" { (expression_statement "iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);" (assignment_expression "iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0)" identifier = (call_expression "FUN_0010523d(param_1,&DAT_0014a9e0)" identifier (argument_list "(param_1,&DAT_0014a9e0)" ( identifier , (pointer_expression "&DAT_0014a9e0" & identifier) )))) ;) }))) })) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (pointer_expression & IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' escape_sequence ')) && (binary_expression IDENT == (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_00108102(undefined4 *param_1,char *param_2)\n\n{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "FUN_00108102(undefined4 *param_1,char *param_2)" (identifier "FUN_00108102") (parameter_list "(undefined4 *param_1,char *param_2)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  int iVar2;\n  undefined8 uVar3;\n  long in_FS_OFFSET;\n  long local_28;\n  long local_20;\n  \n  local_20 = *(long *)(in_FS_OFFSET + 0x28);\n  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);\n  if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }\n  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "long local_28;" (sized_type_specifier "long" (long "long")) (identifier "local_28") (; ";")) (declaration "long local_20;" (sized_type_specifier "long" (long "long")) (identifier "local_20") (; ";")) (expression_statement "local_20 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_20 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);" (assignment_expression "iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28)" (identifier "iVar2") (= "=") (call_expression "FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28)" (identifier "FUN_00104fe8") (argument_list "(param_1,0x31,&DAT_0014a9e0,&local_28)" (( "(") (identifier "param_1") (, ",") (number_literal "0x31") (, ",") (pointer_expression "&DAT_0014a9e0" (& "&") (identifier "DAT_0014a9e0")) (, ",") (pointer_expression "&local_28" (& "&") (identifier "local_28")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }\n    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }\n    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);\n    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);\n    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);\n    FUN_001026d7(local_28 + 2,"Method 2",1,2);\n    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);\n    FUN_001026d7(local_28 + 2,"CD-R read",1,0);\n    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);\n    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);\n    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);\n    FUN_001026d7(local_28 + 3,"Test Write",1,2);\n    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);\n    FUN_001026d7(local_28 + 3,"CD-R write",1,0);\n    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);\n    FUN_001026d7(local_28 + 4,"MultiSession",1,6);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);\n    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);\n    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);\n    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);\n    FUN_001026d7(local_28 + 4,"Composite",1,1);\n    FUN_001026d7(local_28 + 4,"Audio play",1,0);\n    FUN_001026d7(local_28 + 5,"Read bar code",1,7);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);\n    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);\n    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);\n    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);\n    FUN_001026d7(local_28 + 5,"R-W supported",1,2);\n    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);\n    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);\n    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);\n    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);\n    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);\n    FUN_001026d7(local_28 + 6,"Lock state",1,1);\n    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);\n    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);\n    FUN_001026d7(local_28 + 7,"Side change capable",1,4);\n    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);\n    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);\n    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);\n    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);\n    FUN_0010277d(local_28 + 10,2,"number of volume level supported");\n    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");\n    FUN_001026d7(local_28 + 0x11,"Length",3,4);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);\n    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);\n    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");\n    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);\n    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");\n    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");\n    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }\n  }" ({ "{") (if_statement "if (*param_2 != '\0') {\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }" (if "if") (parenthesized_expression "(*param_2 != '\0')" (( "(") (binary_expression "*param_2 != '\0'" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      __printf_chk(1,&DAT_0010dd75,param_2);\n    }" ({ "{") (expression_statement "__printf_chk(1,&DAT_0010dd75,param_2);" (call_expression "__printf_chk(1,&DAT_0010dd75,param_2)" (identifier "__printf_chk") (argument_list "(1,&DAT_0010dd75,param_2)" (( "(") (number_literal "1") (, ",") (pointer_expression "&DAT_0010dd75" (& "&") (identifier "DAT_0010dd75")) (, ",") (identifier "param_2") () ")"))) (; ";")) (} "}"))) (if_statement "if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }" (if "if") (parenthesized_expression "(DAT_001429cb == '\0' && DAT_001429cd == '\0')" (( "(") (binary_expression "DAT_001429cb == '\0' && DAT_001429cd == '\0'" (binary_expression "DAT_001429cb == '\0'" (identifier "DAT_001429cb") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (binary_expression "DAT_001429cd == '\0'" (identifier "DAT_001429cd") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n      uVar1 = *param_1;\n      uVar3 = FUN_0010497b(param_1);\n      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);\n      puts("----------------------------------------------------");\n    }" ({ "{") (expression_statement "uVar1 = *param_1;" (assignment_expression "uVar1 = *param_1" (identifier "uVar1") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar3 = FUN_0010497b(param_1);" (assignment_expression "uVar3 = FUN_0010497b(param_1)" (identifier "uVar3") (= "=") (call_expression "FUN_0010497b(param_1)" (identifier "FUN_0010497b") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "__printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);" (call_expression "__printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1)" (identifier "__printf_chk") (argument_list "(1,"%s mode page (0x%x)\n",uVar3,uVar1)" (( "(") (number_literal "1") (, ",") (string_literal ""%s mode page (0x%x)\n"" (" """) (string_content "%s mode page (0x%x)") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") (, ",") (identifier "uVar1") () ")"))) (; ";")) (expression_statement "puts("----------------------------------------------------");" (call_expression "puts("----------------------------------------------------")" (identifier "puts") (argument_list "("----------------------------------------------------")" (( "(") (string_literal ""----------------------------------------------------"" (" """) (string_content "----------------------------------------------------") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5)" (identifier "FUN_001026d7") (argument_list "(local_28 + 2,"DVD-RAM read",1,5)" (( "(") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2")) (, ",") (string_literal ""DVD-RAM read"" (" """) (string_content "DVD-RAM read") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-R read",1,4);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-R read",1,4)" (identifier "FUN_001026d7") (argument_list "(local_28 + 2,"DVD-R read",1,4)" (( "(") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2")) (, ",") (string_literal ""DVD-R read"" (" """) (string_content "DVD-R read") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);" (call_expression "FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 2,"DVD-ROM read",1,3)" (( "(") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2")) (, ",") (string_literal ""DVD-ROM read"" (" """) (string_content "DVD-ROM read") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 2,"Method 2",1,2);" (call_expression "FUN_001026d7(local_28 + 2,"Method 2",1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 2,"Method 2",1,2)" (( "(") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2")) (, ",") (string_literal ""Method 2"" (" """) (string_content "Method 2") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 2,"CD-RW read",1,1);" (call_expression "FUN_001026d7(local_28 + 2,"CD-RW read",1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 2,"CD-RW read",1,1)" (( "(") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2")) (, ",") (string_literal ""CD-RW read"" (" """) (string_content "CD-RW read") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 2,"CD-R read",1,0);" (call_expression "FUN_001026d7(local_28 + 2,"CD-R read",1,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 2,"CD-R read",1,0)" (( "(") (binary_expression "local_28 + 2" (identifier "local_28") (+ "+") (number_literal "2")) (, ",") (string_literal ""CD-R read"" (" """) (string_content "CD-R read") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5)" (identifier "FUN_001026d7") (argument_list "(local_28 + 3,"DVD-RAM write",1,5)" (( "(") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3")) (, ",") (string_literal ""DVD-RAM write"" (" """) (string_content "DVD-RAM write") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-R write",1,4);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-R write",1,4)" (identifier "FUN_001026d7") (argument_list "(local_28 + 3,"DVD-R write",1,4)" (( "(") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3")) (, ",") (string_literal ""DVD-R write"" (" """) (string_content "DVD-R write") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);" (call_expression "FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 3,"DVD-ROM write",1,3)" (( "(") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3")) (, ",") (string_literal ""DVD-ROM write"" (" """) (string_content "DVD-ROM write") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 3,"Test Write",1,2);" (call_expression "FUN_001026d7(local_28 + 3,"Test Write",1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 3,"Test Write",1,2)" (( "(") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3")) (, ",") (string_literal ""Test Write"" (" """) (string_content "Test Write") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 3,"CD-RW write",1,1);" (call_expression "FUN_001026d7(local_28 + 3,"CD-RW write",1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 3,"CD-RW write",1,1)" (( "(") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3")) (, ",") (string_literal ""CD-RW write"" (" """) (string_content "CD-RW write") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 3,"CD-R write",1,0);" (call_expression "FUN_001026d7(local_28 + 3,"CD-R write",1,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 3,"CD-R write",1,0)" (( "(") (binary_expression "local_28 + 3" (identifier "local_28") (+ "+") (number_literal "3")) (, ",") (string_literal ""CD-R write"" (" """) (string_content "CD-R write") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);" (call_expression "FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,&DAT_0010e885,1,7)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (pointer_expression "&DAT_0010e885" (& "&") (identifier "DAT_0010e885")) (, ",") (number_literal "1") (, ",") (number_literal "7") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"MultiSession",1,6);" (call_expression "FUN_001026d7(local_28 + 4,"MultiSession",1,6)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"MultiSession",1,6)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""MultiSession"" (" """) (string_content "MultiSession") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);" (call_expression "FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"Mode 2 Form 2",1,5)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""Mode 2 Form 2"" (" """) (string_content "Mode 2 Form 2") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);" (call_expression "FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"Mode 2 Form 1",1,4)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""Mode 2 Form 1"" (" """) (string_content "Mode 2 Form 1") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);" (call_expression "FUN_001026d7(local_28 + 4,"Digital port (2)",1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"Digital port (2)",1,3)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""Digital port (2)"" (" """) (string_content "Digital port (2)") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);" (call_expression "FUN_001026d7(local_28 + 4,"Digital port (1)",1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"Digital port (1)",1,2)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""Digital port (1)"" (" """) (string_content "Digital port (1)") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"Composite",1,1);" (call_expression "FUN_001026d7(local_28 + 4,"Composite",1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"Composite",1,1)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""Composite"" (" """) (string_content "Composite") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 4,"Audio play",1,0);" (call_expression "FUN_001026d7(local_28 + 4,"Audio play",1,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 4,"Audio play",1,0)" (( "(") (binary_expression "local_28 + 4" (identifier "local_28") (+ "+") (number_literal "4")) (, ",") (string_literal ""Audio play"" (" """) (string_content "Audio play") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,"Read bar code",1,7);" (call_expression "FUN_001026d7(local_28 + 5,"Read bar code",1,7)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,"Read bar code",1,7)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (string_literal ""Read bar code"" (" """) (string_content "Read bar code") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);" (call_expression "FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,&DAT_0010e8f7,1,6)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (pointer_expression "&DAT_0010e8f7" (& "&") (identifier "DAT_0010e8f7")) (, ",") (number_literal "1") (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);" (call_expression "FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,&DAT_0010e8fb,1,5)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (pointer_expression "&DAT_0010e8fb" (& "&") (identifier "DAT_0010e8fb")) (, ",") (number_literal "1") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);" (call_expression "FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,"C2 pointers supported",1,4)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (string_literal ""C2 pointers supported"" (" """) (string_content "C2 pointers supported") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);" (call_expression "FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,"R-W de-interleaved & corrected",1,3)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (string_literal ""R-W de-interleaved & corrected"" (" """) (string_content "R-W de-interleaved & corrected") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,"R-W supported",1,2);" (call_expression "FUN_001026d7(local_28 + 5,"R-W supported",1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,"R-W supported",1,2)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (string_literal ""R-W supported"" (" """) (string_content "R-W supported") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);" (call_expression "FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,"CD-DA stream is accurate",1,1)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (string_literal ""CD-DA stream is accurate"" (" """) (string_content "CD-DA stream is accurate") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);" (call_expression "FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 5,"CD-DA commands supported",1,0)" (( "(") (binary_expression "local_28 + 5" (identifier "local_28") (+ "+") (number_literal "5")) (, ",") (string_literal ""CD-DA commands supported"" (" """) (string_content "CD-DA commands supported") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);" (call_expression "FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5)" (identifier "FUN_001026d7") (argument_list "(local_28 + 6,"Loading mechanism type",7,5)" (( "(") (binary_expression "local_28 + 6" (identifier "local_28") (+ "+") (number_literal "6")) (, ",") (string_literal ""Loading mechanism type"" (" """) (string_content "Loading mechanism type") (" """)) (, ",") (number_literal "7") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);" (call_expression "FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 6,"Eject (individual or magazine)",1,3)" (( "(") (binary_expression "local_28 + 6" (identifier "local_28") (+ "+") (number_literal "6")) (, ",") (string_literal ""Eject (individual or magazine)"" (" """) (string_content "Eject (individual or magazine)") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);" (call_expression "FUN_001026d7(local_28 + 6,"Prevent jumper",1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 6,"Prevent jumper",1,2)" (( "(") (binary_expression "local_28 + 6" (identifier "local_28") (+ "+") (number_literal "6")) (, ",") (string_literal ""Prevent jumper"" (" """) (string_content "Prevent jumper") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 6,"Lock state",1,1);" (call_expression "FUN_001026d7(local_28 + 6,"Lock state",1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 6,"Lock state",1,1)" (( "(") (binary_expression "local_28 + 6" (identifier "local_28") (+ "+") (number_literal "6")) (, ",") (string_literal ""Lock state"" (" """) (string_content "Lock state") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);" (call_expression "FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 6,&DAT_0010e987,1,0)" (( "(") (binary_expression "local_28 + 6" (identifier "local_28") (+ "+") (number_literal "6")) (, ",") (pointer_expression "&DAT_0010e987" (& "&") (identifier "DAT_0010e987")) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);" (call_expression "FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5)" (identifier "FUN_001026d7") (argument_list "(local_28 + 7,"R-W in lead-in",1,5)" (( "(") (binary_expression "local_28 + 7" (identifier "local_28") (+ "+") (number_literal "7")) (, ",") (string_literal ""R-W in lead-in"" (" """) (string_content "R-W in lead-in") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 7,"Side change capable",1,4);" (call_expression "FUN_001026d7(local_28 + 7,"Side change capable",1,4)" (identifier "FUN_001026d7") (argument_list "(local_28 + 7,"Side change capable",1,4)" (( "(") (binary_expression "local_28 + 7" (identifier "local_28") (+ "+") (number_literal "7")) (, ",") (string_literal ""Side change capable"" (" """) (string_content "Side change capable") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);" (call_expression "FUN_001026d7(local_28 + 7,"S/W slot selection",1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 7,"S/W slot selection",1,3)" (( "(") (binary_expression "local_28 + 7" (identifier "local_28") (+ "+") (number_literal "7")) (, ",") (string_literal ""S/W slot selection"" (" """) (string_content "S/W slot selection") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);" (call_expression "FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 7,"Changer supports disc present",1,2)" (( "(") (binary_expression "local_28 + 7" (identifier "local_28") (+ "+") (number_literal "7")) (, ",") (string_literal ""Changer supports disc present"" (" """) (string_content "Changer supports disc present") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);" (call_expression "FUN_001026d7(local_28 + 7,"Separate channel mute",1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 7,"Separate channel mute",1,1)" (( "(") (binary_expression "local_28 + 7" (identifier "local_28") (+ "+") (number_literal "7")) (, ",") (string_literal ""Separate channel mute"" (" """) (string_content "Separate channel mute") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);" (call_expression "FUN_001026d7(local_28 + 7,"Separate volume levels",1,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 7,"Separate volume levels",1,0)" (( "(") (binary_expression "local_28 + 7" (identifier "local_28") (+ "+") (number_literal "7")) (, ",") (string_literal ""Separate volume levels"" (" """) (string_content "Separate volume levels") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0010277d(local_28 + 10,2,"number of volume level supported");" (call_expression "FUN_0010277d(local_28 + 10,2,"number of volume level supported")" (identifier "FUN_0010277d") (argument_list "(local_28 + 10,2,"number of volume level supported")" (( "(") (binary_expression "local_28 + 10" (identifier "local_28") (+ "+") (number_literal "10")) (, ",") (number_literal "2") (, ",") (string_literal ""number of volume level supported"" (" """) (string_content "number of volume level supported") (" """)) () ")"))) (; ";")) (expression_statement "FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");" (call_expression "FUN_0010277d(local_28 + 0xc,2,"Buffer size supported")" (identifier "FUN_0010277d") (argument_list "(local_28 + 0xc,2,"Buffer size supported")" (( "(") (binary_expression "local_28 + 0xc" (identifier "local_28") (+ "+") (number_literal "0xc")) (, ",") (number_literal "2") (, ",") (string_literal ""Buffer size supported"" (" """) (string_content "Buffer size supported") (" """)) () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 0x11,"Length",3,4);" (call_expression "FUN_001026d7(local_28 + 0x11,"Length",3,4)" (identifier "FUN_001026d7") (argument_list "(local_28 + 0x11,"Length",3,4)" (( "(") (binary_expression "local_28 + 0x11" (identifier "local_28") (+ "+") (number_literal "0x11")) (, ",") (string_literal ""Length"" (" """) (string_content "Length") (" """)) (, ",") (number_literal "3") (, ",") (number_literal "4") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3)" (identifier "FUN_001026d7") (argument_list "(local_28 + 0x11,&DAT_0010ea23,1,3)" (( "(") (binary_expression "local_28 + 0x11" (identifier "local_28") (+ "+") (number_literal "0x11")) (, ",") (pointer_expression "&DAT_0010ea23" (& "&") (identifier "DAT_0010ea23")) (, ",") (number_literal "1") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2)" (identifier "FUN_001026d7") (argument_list "(local_28 + 0x11,&DAT_0010ea28,1,2)" (( "(") (binary_expression "local_28 + 0x11" (identifier "local_28") (+ "+") (number_literal "0x11")) (, ",") (pointer_expression "&DAT_0010ea28" (& "&") (identifier "DAT_0010ea28")) (, ",") (number_literal "1") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);" (call_expression "FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1)" (identifier "FUN_001026d7") (argument_list "(local_28 + 0x11,&DAT_0010ea2c,1,1)" (( "(") (binary_expression "local_28 + 0x11" (identifier "local_28") (+ "+") (number_literal "0x11")) (, ",") (pointer_expression "&DAT_0010ea2c" (& "&") (identifier "DAT_0010ea2c")) (, ",") (number_literal "1") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");" (call_expression "FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported")" (identifier "FUN_0010277d") (argument_list "(local_28 + 0x16,2,"Copy management revision supported")" (( "(") (binary_expression "local_28 + 0x16" (identifier "local_28") (+ "+") (number_literal "0x16")) (, ",") (number_literal "2") (, ",") (string_literal ""Copy management revision supported"" (" """) (string_content "Copy management revision supported") (" """)) () ")"))) (; ";")) (expression_statement "FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);" (call_expression "FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0)" (identifier "FUN_001026d7") (argument_list "(local_28 + 0x1b,"Rotation control selected",3,0)" (( "(") (binary_expression "local_28 + 0x1b" (identifier "local_28") (+ "+") (number_literal "0x1b")) (, ",") (string_literal ""Rotation control selected"" (" """) (string_content "Rotation control selected") (" """)) (, ",") (number_literal "3") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");" (call_expression "FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected")" (identifier "FUN_0010277d") (argument_list "(local_28 + 0x1c,2,"Current write speed selected")" (( "(") (binary_expression "local_28 + 0x1c" (identifier "local_28") (+ "+") (number_literal "0x1c")) (, ",") (number_literal "2") (, ",") (string_literal ""Current write speed selected"" (" """) (string_content "Current write speed selected") (" """)) () ")"))) (; ";")) (expression_statement "FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");" (call_expression "FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables")" (identifier "FUN_0010277d") (argument_list "(local_28 + 0x1e,2,"# of lu speed performance tables")" (( "(") (binary_expression "local_28 + 0x1e" (identifier "local_28") (+ "+") (number_literal "0x1e")) (, ",") (number_literal "2") (, ",") (string_literal ""# of lu speed performance tables"" (" """) (string_content "# of lu speed performance tables") (" """)) () ")"))) (; ";")) (if_statement "if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {\n      putchar(10);\n    }\n    else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" (if "if") (parenthesized_expression "((DAT_001429cb == '\0') || (DAT_001429cd == '\0'))" (( "(") (binary_expression "(DAT_001429cb == '\0') || (DAT_001429cd == '\0')" (parenthesized_expression "(DAT_001429cb == '\0')" (( "(") (binary_expression "DAT_001429cb == '\0'" (identifier "DAT_001429cb") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(DAT_001429cd == '\0')" (( "(") (binary_expression "DAT_001429cd == '\0'" (identifier "DAT_001429cd") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n      putchar(10);\n    }" ({ "{") (expression_statement "putchar(10);" (call_expression "putchar(10)" (identifier "putchar") (argument_list "(10)" (( "(") (number_literal "10") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" (else "else") (compound_statement "{\n      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);\n    }" ({ "{") (expression_statement "iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);" (assignment_expression "iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0)" (identifier "iVar2") (= "=") (call_expression "FUN_0010523d(param_1,&DAT_0014a9e0)" (identifier "FUN_0010523d") (argument_list "(param_1,&DAT_0014a9e0)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&DAT_0014a9e0" (& "&") (identifier "DAT_0014a9e0")) () ")")))) (; ";")) (} "}")))) (} "}"))) (if_statement "if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_20 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_20 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_20") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(type_1 *mpi,char *prefix)

{
  int iVar1;
  int var_3;
  char *pcVar3;
  long var_1;
  uint8_t *var_10;
  long var_14;
  
  var_14 = *(long *)(var_1 + 0x28);
  var_3 = var_2(mpi,0x31,cbuffer,&var_10);
  if (var_3 == 0) {
    if (*prefix != '\0') {
      var_4(1,&DAT_0010dd75,prefix);
    }
    if (var_5 == '\0' && var_6 == '\0') {
      iVar1 = mpi->page;
      pcVar3 = var_7(mpi);
      var_4(1,"%s mode page (0x%x)\n",pcVar3,iVar1);
      var_8("----------------------------------------------------");
    }
    var_9(var_10 + 2,"DVD-RAM read",1,5);
    var_9(var_10 + 2,"DVD-R read",1,4);
    var_9(var_10 + 2,"DVD-ROM read",1,3);
    var_9(var_10 + 2,"Method 2",1,2);
    var_9(var_10 + 2,"CD-RW read",1,1);
    var_9(var_10 + 2,"CD-R read",1,0);
    var_9(var_10 + 3,"DVD-RAM write",1,5);
    var_9(var_10 + 3,"DVD-R write",1,4);
    var_9(var_10 + 3,"DVD-ROM write",1,3);
    var_9(var_10 + 3,"Test Write",1,2);
    var_9(var_10 + 3,"CD-RW write",1,1);
    var_9(var_10 + 3,"CD-R write",1,0);
    var_9(var_10 + 4,"BUF",1,7);
    var_9(var_10 + 4,"MultiSession",1,6);
    var_9(var_10 + 4,"Mode 2 Form 2",1,5);
    var_9(var_10 + 4,"Mode 2 Form 1",1,4);
    var_9(var_10 + 4,"Digital port (2)",1,3);
    var_9(var_10 + 4,"Digital port (1)",1,2);
    var_9(var_10 + 4,"Composite",1,1);
    var_9(var_10 + 4,"Audio play",1,0);
    var_9(var_10 + 5,"Read bar code",1,7);
    var_9(var_10 + 5,"UPC",1,6);
    var_9(var_10 + 5,"ISRC",1,5);
    var_9(var_10 + 5,"C2 pointers supported",1,4);
    var_9(var_10 + 5,"R-W de-interleaved & corrected",1,3);
    var_9(var_10 + 5,"R-W supported",1,2);
    var_9(var_10 + 5,"CD-DA stream is accurate",1,1);
    var_9(var_10 + 5,"CD-DA commands supported",1,0);
    var_9(var_10 + 6,"Loading mechanism type",7,5);
    var_9(var_10 + 6,"Eject (individual or magazine)",1,3);
    var_9(var_10 + 6,"Prevent jumper",1,2);
    var_9(var_10 + 6,"Lock state",1,1);
    var_9(var_10 + 6,"Lock",1,0);
    var_9(var_10 + 7,"R-W in lead-in",1,5);
    var_9(var_10 + 7,"Side change capable",1,4);
    var_9(var_10 + 7,"S/W slot selection",1,3);
    var_9(var_10 + 7,"Changer supports disc present",1,2);
    var_9(var_10 + 7,"Separate channel mute",1,1);
    var_9(var_10 + 7,"Separate volume levels",1,0);
    var_11(var_10 + 10,2,"number of volume level supported");
    var_11(var_10 + 0xc,2,"Buffer size supported");
    var_9(var_10 + 0x11,"Length",3,4);
    var_9(var_10 + 0x11,"LSBF",1,3);
    var_9(var_10 + 0x11,"RCK",1,2);
    var_9(var_10 + 0x11,"BCKF",1,1);
    var_11(var_10 + 0x16,2,"Copy management revision supported");
    var_9(var_10 + 0x1b,"Rotation control selected",3,0);
    var_11(var_10 + 0x1c,2,"Current write speed selected");
    var_11(var_10 + 0x1e,2,"# of lu speed performance tables");
    if ((var_5 == '\0') || (var_6 == '\0')) {
      var_12(10);
    }
    else {
      var_3 = var_13(mpi,cbuffer);
    }
  }
  if (var_14 == *(long *)(var_1 + 0x28)) {
    return var_3;
  }
                    /* WARNING: Subroutine does not return */
  var_15();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (char_literal (escape_sequence))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (string_literal (string_content)) (number_literal) (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (string_literal (string_content))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (number_literal) (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

int MASKED(undefined4 *param_1,char *param_2)

{
  undefined4 uVar1;
  int iVar2;
  undefined8 uVar3;
  long in_FS_OFFSET;
  long local_28;
  long local_20;
  
  local_20 = *(long *)(in_FS_OFFSET + 0x28);
  iVar2 = FUN_00104fe8(param_1,0x31,&DAT_0014a9e0,&local_28);
  if (iVar2 == 0) {
    if (*param_2 != '\0') {
      __printf_chk(1,&DAT_0010dd75,param_2);
    }
    if (DAT_001429cb == '\0' && DAT_001429cd == '\0') {
      uVar1 = *param_1;
      uVar3 = FUN_0010497b(param_1);
      __printf_chk(1,"%s mode page (0x%x)\n",uVar3,uVar1);
      puts("----------------------------------------------------");
    }
    FUN_001026d7(local_28 + 2,"DVD-RAM read",1,5);
    FUN_001026d7(local_28 + 2,"DVD-R read",1,4);
    FUN_001026d7(local_28 + 2,"DVD-ROM read",1,3);
    FUN_001026d7(local_28 + 2,"Method 2",1,2);
    FUN_001026d7(local_28 + 2,"CD-RW read",1,1);
    FUN_001026d7(local_28 + 2,"CD-R read",1,0);
    FUN_001026d7(local_28 + 3,"DVD-RAM write",1,5);
    FUN_001026d7(local_28 + 3,"DVD-R write",1,4);
    FUN_001026d7(local_28 + 3,"DVD-ROM write",1,3);
    FUN_001026d7(local_28 + 3,"Test Write",1,2);
    FUN_001026d7(local_28 + 3,"CD-RW write",1,1);
    FUN_001026d7(local_28 + 3,"CD-R write",1,0);
    FUN_001026d7(local_28 + 4,&DAT_0010e885,1,7);
    FUN_001026d7(local_28 + 4,"MultiSession",1,6);
    FUN_001026d7(local_28 + 4,"Mode 2 Form 2",1,5);
    FUN_001026d7(local_28 + 4,"Mode 2 Form 1",1,4);
    FUN_001026d7(local_28 + 4,"Digital port (2)",1,3);
    FUN_001026d7(local_28 + 4,"Digital port (1)",1,2);
    FUN_001026d7(local_28 + 4,"Composite",1,1);
    FUN_001026d7(local_28 + 4,"Audio play",1,0);
    FUN_001026d7(local_28 + 5,"Read bar code",1,7);
    FUN_001026d7(local_28 + 5,&DAT_0010e8f7,1,6);
    FUN_001026d7(local_28 + 5,&DAT_0010e8fb,1,5);
    FUN_001026d7(local_28 + 5,"C2 pointers supported",1,4);
    FUN_001026d7(local_28 + 5,"R-W de-interleaved & corrected",1,3);
    FUN_001026d7(local_28 + 5,"R-W supported",1,2);
    FUN_001026d7(local_28 + 5,"CD-DA stream is accurate",1,1);
    FUN_001026d7(local_28 + 5,"CD-DA commands supported",1,0);
    FUN_001026d7(local_28 + 6,"Loading mechanism type",7,5);
    FUN_001026d7(local_28 + 6,"Eject (individual or magazine)",1,3);
    FUN_001026d7(local_28 + 6,"Prevent jumper",1,2);
    FUN_001026d7(local_28 + 6,"Lock state",1,1);
    FUN_001026d7(local_28 + 6,&DAT_0010e987,1,0);
    FUN_001026d7(local_28 + 7,"R-W in lead-in",1,5);
    FUN_001026d7(local_28 + 7,"Side change capable",1,4);
    FUN_001026d7(local_28 + 7,"S/W slot selection",1,3);
    FUN_001026d7(local_28 + 7,"Changer supports disc present",1,2);
    FUN_001026d7(local_28 + 7,"Separate channel mute",1,1);
    FUN_001026d7(local_28 + 7,"Separate volume levels",1,0);
    FUN_0010277d(local_28 + 10,2,"number of volume level supported");
    FUN_0010277d(local_28 + 0xc,2,"Buffer size supported");
    FUN_001026d7(local_28 + 0x11,"Length",3,4);
    FUN_001026d7(local_28 + 0x11,&DAT_0010ea23,1,3);
    FUN_001026d7(local_28 + 0x11,&DAT_0010ea28,1,2);
    FUN_001026d7(local_28 + 0x11,&DAT_0010ea2c,1,1);
    FUN_0010277d(local_28 + 0x16,2,"Copy management revision supported");
    FUN_001026d7(local_28 + 0x1b,"Rotation control selected",3,0);
    FUN_0010277d(local_28 + 0x1c,2,"Current write speed selected");
    FUN_0010277d(local_28 + 0x1e,2,"# of lu speed performance tables");
    if ((DAT_001429cb == '\0') || (DAT_001429cd == '\0')) {
      putchar(10);
    }
    else {
      iVar2 = FUN_0010523d(param_1,&DAT_0014a9e0);
    }
  }
  if (local_20 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

