
void dump_ccid_device(uchar *buf)

{
  byte bVar1;
  uint uVar2;
  char *pcVar3;
  char *pcVar4;
  char *pcVar5;
  
  if (*buf < 0x36) {
    puts("      Warning: Descriptor too short");
  }
  else {
    __printf_chk(1,
                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"
                 ,*buf,buf[1],buf[3],buf[2]);
    if ((buf[3] != '\x01') || (buf[2] != '\0')) {
      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);
    }
    putc(10,stdout);
    bVar1 = buf[5];
    pcVar3 = "1.8V ";
    if ((bVar1 & 4) == 0) {
      pcVar3 = "";
    }
    pcVar5 = "3.0V ";
    if ((bVar1 & 2) == 0) {
      pcVar5 = "";
    }
    pcVar4 = "5.0V ";
    if ((bVar1 & 1) == 0) {
      pcVar4 = "";
    }
    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",
                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);
    uVar2 = convert_le_u32(buf + 6);
    __printf_chk(1,"        dwProtocols         %5u ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(&DAT_0011c46e,1,4,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(&DAT_0011c473,1,4,stdout);
    }
    if ((uVar2 & 0xfffffffc) != 0) {
      fwrite(" (Invalid values detected)",1,0x1a,stdout);
    }
    putc(10,stdout);
    uVar2 = convert_le_u32(buf + 10);
    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);
    uVar2 = convert_le_u32(buf + 0xe);
    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);
    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);
    uVar2 = convert_le_u32(buf + 0x13);
    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);
    uVar2 = convert_le_u32(buf + 0x17);
    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);
    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);
    uVar2 = convert_le_u32(buf + 0x1c);
    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);
    uVar2 = convert_le_u32(buf + 0x20);
    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(" 2-wire",1,7,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(" 3-wire",1,7,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite(&DAT_0011c4a3,1,4,stdout);
    }
    putc(10,stdout);
    uVar2 = convert_le_u32(buf + 0x24);
    __printf_chk(1,"        dwMechanical     %08X ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(" accept",1,7,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(" eject",1,6,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite(" capture",1,8,stdout);
    }
    if ((uVar2 & 8) != 0) {
      fwrite(" lock",1,5,stdout);
    }
    putc(10,stdout);
    uVar2 = convert_le_u32(buf + 0x28);
    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);
    if ((uVar2 & 2) != 0) {
      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite("          Auto activation on insert\n",1,0x24,stdout);
    }
    if ((uVar2 & 8) != 0) {
      fwrite("          Auto voltage selection\n",1,0x21,stdout);
    }
    if ((uVar2 & 0x10) != 0) {
      fwrite("          Auto clock change\n",1,0x1c,stdout);
    }
    if ((uVar2 & 0x20) != 0) {
      fwrite("          Auto baud rate change\n",1,0x20,stdout);
    }
    if ((uVar2 & 0x40) == 0) {
      if ((uVar2 & 0x80) == 0) {
        if ((uVar2 & 0xc0) != 0) {
          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);
        }
      }
      else {
        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);
      }
    }
    else {
      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);
    }
    if ((uVar2 & 0x100) != 0) {
      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);
    }
    if ((uVar2 & 0x200) != 0) {
      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);
    }
    if ((uVar2 & 0x400) != 0) {
      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);
    }
    if ((uVar2 & 0x10000) == 0) {
      if ((uVar2 & 0x20000) == 0) {
        if ((uVar2 & 0x40000) == 0) {
          if ((uVar2 & 0x70000) != 0) {
            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);
          }
        }
        else {
          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);
        }
      }
      else {
        fwrite("          Short APDU level exchange\n",1,0x24,stdout);
      }
    }
    else {
      fwrite("          TPDU level exchange\n",1,0x1e,stdout);
    }
    uVar2 = convert_le_u32(buf + 0x2c);
    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);
    __printf_chk(1,"        bClassGetResponse    ");
    if (buf[0x30] == 0xff) {
      fwrite("echo\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"  %02X\n",buf[0x30]);
    }
    __printf_chk(1,"        bClassEnvelope       ");
    if (buf[0x31] == 0xff) {
      fwrite("echo\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"  %02X\n",buf[0x30]);
    }
    __printf_chk(1,"        wlcdLayout           ");
    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {
      fwrite("none\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);
    }
    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);
    if ((buf[0x34] & 1) != 0) {
      fwrite(" verification",1,0xd,stdout);
    }
    if ((buf[0x34] & 2) != 0) {
      fwrite(" modification",1,0xd,stdout);
    }
    putc(10,stdout);
    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);
    if (0x36 < *buf) {
      fwrite(&DAT_0011c59d,1,0x19,stdout);
      dump_bytes(buf + 0x36,*buf - 0x36);
    }
  }
  return;
}



void FUN_00111ec6(byte *param_1)

{
  byte bVar1;
  uint uVar2;
  undefined4 uVar3;
  char *pcVar4;
  char *pcVar5;
  char *pcVar6;
  
  if (*param_1 < 0x36) {
    puts("      Warning: Descriptor too short");
  }
  else {
    __printf_chk(1,
                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"
                 ,*param_1,param_1[1],param_1[3],param_1[2]);
    if ((param_1[3] != 1) || (param_1[2] != 0)) {
      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);
    }
    putc(10,stdout);
    bVar1 = param_1[5];
    pcVar4 = "1.8V ";
    if ((bVar1 & 4) == 0) {
      pcVar4 = "";
    }
    pcVar6 = "3.0V ";
    if ((bVar1 & 2) == 0) {
      pcVar6 = "";
    }
    pcVar5 = "5.0V ";
    if ((bVar1 & 1) == 0) {
      pcVar5 = "";
    }
    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",
                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);
    uVar2 = FUN_00110555(param_1 + 6);
    __printf_chk(1,"        dwProtocols         %5u ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(&DAT_0011c46e,1,4,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(&DAT_0011c473,1,4,stdout);
    }
    if ((uVar2 & 0xfffffffc) != 0) {
      fwrite(" (Invalid values detected)",1,0x1a,stdout);
    }
    putc(10,stdout);
    uVar3 = FUN_00110555(param_1 + 10);
    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);
    uVar3 = FUN_00110555(param_1 + 0xe);
    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);
    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);
    uVar3 = FUN_00110555(param_1 + 0x13);
    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);
    uVar3 = FUN_00110555(param_1 + 0x17);
    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);
    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);
    uVar3 = FUN_00110555(param_1 + 0x1c);
    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);
    uVar2 = FUN_00110555(param_1 + 0x20);
    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(" 2-wire",1,7,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(" 3-wire",1,7,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite(&DAT_0011c4a3,1,4,stdout);
    }
    putc(10,stdout);
    uVar2 = FUN_00110555(param_1 + 0x24);
    __printf_chk(1,"        dwMechanical     %08X ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(" accept",1,7,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(" eject",1,6,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite(" capture",1,8,stdout);
    }
    if ((uVar2 & 8) != 0) {
      fwrite(" lock",1,5,stdout);
    }
    putc(10,stdout);
    uVar2 = FUN_00110555(param_1 + 0x28);
    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);
    if ((uVar2 & 2) != 0) {
      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite("          Auto activation on insert\n",1,0x24,stdout);
    }
    if ((uVar2 & 8) != 0) {
      fwrite("          Auto voltage selection\n",1,0x21,stdout);
    }
    if ((uVar2 & 0x10) != 0) {
      fwrite("          Auto clock change\n",1,0x1c,stdout);
    }
    if ((uVar2 & 0x20) != 0) {
      fwrite("          Auto baud rate change\n",1,0x20,stdout);
    }
    if ((uVar2 & 0x40) == 0) {
      if ((uVar2 & 0x80) == 0) {
        if ((uVar2 & 0xc0) != 0) {
          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);
        }
      }
      else {
        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);
      }
    }
    else {
      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);
    }
    if ((uVar2 & 0x100) != 0) {
      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);
    }
    if ((uVar2 & 0x200) != 0) {
      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);
    }
    if ((uVar2 & 0x400) != 0) {
      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);
    }
    if ((uVar2 & 0x10000) == 0) {
      if ((uVar2 & 0x20000) == 0) {
        if ((uVar2 & 0x40000) == 0) {
          if ((uVar2 & 0x70000) != 0) {
            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);
          }
        }
        else {
          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);
        }
      }
      else {
        fwrite("          Short APDU level exchange\n",1,0x24,stdout);
      }
    }
    else {
      fwrite("          TPDU level exchange\n",1,0x1e,stdout);
    }
    uVar3 = FUN_00110555(param_1 + 0x2c);
    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);
    __printf_chk(1,"        bClassGetResponse    ");
    if (param_1[0x30] == 0xff) {
      fwrite("echo\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"  %02X\n",param_1[0x30]);
    }
    __printf_chk(1,"        bClassEnvelope       ");
    if (param_1[0x31] == 0xff) {
      fwrite("echo\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"  %02X\n",param_1[0x30]);
    }
    __printf_chk(1,"        wlcdLayout           ");
    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {
      fwrite("none\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);
    }
    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);
    if ((param_1[0x34] & 1) != 0) {
      fwrite(" verification",1,0xd,stdout);
    }
    if ((param_1[0x34] & 2) != 0) {
      fwrite(" modification",1,0xd,stdout);
    }
    putc(10,stdout);
    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);
    if (0x36 < *param_1) {
      fwrite(&DAT_0011c59d,1,0x19,stdout);
      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);
    }
  }
  return;
}


PUSH RBP
PUSH RBX
SUB RSP,0x8
MOVZX EDX,byte ptr [RDI]
CMP DL,0x35
JBE 0x00112212
MOV RBX,RDI
MOVZX ECX,byte ptr [RDI + 0x1]
MOVZX EDX,DL
MOVZX R9D,byte ptr [RDI + 0x2]
MOVZX R8D,byte ptr [RDI + 0x3]
LEA RSI,[0x11e438]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
CMP byte ptr [RBX + 0x3],0x1
JNZ 0x00111f0e
CMP byte ptr [RBX + 0x2],0x0
JZ 0x00111f2b
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x2a
MOV ESI,0x1
LEA RDI,[0x11e4c8]
CALL 0x001103d0
MOV RSI,qword ptr [0x0013b2a0]
MOV EDI,0xa
CALL 0x00110230
MOVZX EAX,byte ptr [RBX + 0x5]
MOVZX ECX,AL
MOV EDX,EAX
AND EDX,0x4
LEA RSI,[0x11c45c]
LEA RDX,[0x11cf3b]
CMOVZ RSI,RDX
MOV EDX,EAX
AND EDX,0x2
LEA R9,[0x11c462]
LEA RDX,[0x11cf3b]
CMOVZ R9,RDX
AND EAX,0x1
LEA R8,[0x11c468]
CMOVZ R8,RDX
MOVZX EDX,byte ptr [RBX + 0x4]
SUB RSP,0x8
PUSH RSI
LEA RSI,[0x11e4f8]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RDI,[RBX + 0x6]
CALL 0x00110555
MOV EBP,EAX
MOV EDX,EAX
LEA RSI,[0x11e548]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
ADD RSP,0x10
TEST BPL,0x1
JNZ 0x00112223
TEST BPL,0x2
JNZ 0x00112245
TEST EBP,0xfffffffc
JNZ 0x00112267
MOV RSI,qword ptr [0x0013b2a0]
MOV EDI,0xa
CALL 0x00110230
LEA RDI,[RBX + 0xa]
CALL 0x00110555
MOV EDX,EAX
LEA RSI,[0x11e570]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RDI,[RBX + 0xe]
CALL 0x00110555
MOV EDX,EAX
LEA RSI,[0x11e598]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
MOVZX EDX,byte ptr [RBX + 0x12]
LEA RSI,[0x11e5c0]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RDI,[RBX + 0x13]
CALL 0x00110555
MOV EDX,EAX
LEA RSI,[0x11e5e8]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RDI,[RBX + 0x17]
CALL 0x00110555
MOV EDX,EAX
LEA RSI,[0x11e610]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
MOVZX EDX,byte ptr [RBX + 0x1b]
LEA RSI,[0x11e638]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RDI,[RBX + 0x1c]
CALL 0x00110555
MOV EDX,EAX
LEA RSI,[0x11e660]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RDI,[RBX + 0x20]
CALL 0x00110555
MOV EBP,EAX
MOV EDX,EAX
LEA RSI,[0x11e688]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
TEST BPL,0x1
JNZ 0x00112289
TEST BPL,0x2
JNZ 0x001122ab
TEST BPL,0x4
JNZ 0x001122cd
MOV RSI,qword ptr [0x0013b2a0]
MOV EDI,0xa
CALL 0x00110230
LEA RDI,[RBX + 0x24]
CALL 0x00110555
MOV EBP,EAX
MOV EDX,EAX
LEA RSI,[0x11e6a8]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
TEST BPL,0x1
JNZ 0x001122ef
TEST BPL,0x2
JNZ 0x00112311
TEST BPL,0x4
JNZ 0x00112333
TEST BPL,0x8
JNZ 0x00112355
MOV RSI,qword ptr [0x0013b2a0]
MOV EDI,0xa
CALL 0x00110230
LEA RDI,[RBX + 0x28]
CALL 0x00110555
MOV EBP,EAX
MOV EDX,EAX
LEA RSI,[0x11e6c8]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
TEST BPL,0x2
JNZ 0x00112377
TEST BPL,0x4
JNZ 0x00112399
TEST BPL,0x8
JNZ 0x001123bb
TEST BPL,0x10
JNZ 0x001123dd
TEST BPL,0x20
JNZ 0x001123ff
TEST BPL,0x40
JNZ 0x00112421
TEST BPL,0x80
JNZ 0x001124b4
TEST BPL,0xc0
JZ 0x0011243e
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x32
MOV ESI,0x1
LEA RDI,[0x11e7f0]
CALL 0x001103d0
JMP 0x0011243e
LEA RDI,[0x11e1b8]
CALL 0x001100c0
JMP 0x00112697
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x4
MOV ESI,0x1
LEA RDI,[0x11c46e]
CALL 0x001103d0
JMP 0x00111fcf
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x4
MOV ESI,0x1
LEA RDI,[0x11c473]
CALL 0x001103d0
JMP 0x00111fd9
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x1a
MOV ESI,0x1
LEA RDI,[0x11c478]
CALL 0x001103d0
JMP 0x00111fe5
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x11c493]
CALL 0x001103d0
JMP 0x001120fc
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x11c49b]
CALL 0x001103d0
JMP 0x00112106
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x4
MOV ESI,0x1
LEA RDI,[0x11c4a3]
CALL 0x001103d0
JMP 0x00112110
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x7
MOV ESI,0x1
LEA RDI,[0x11c4a8]
CALL 0x001103d0
JMP 0x0011214e
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x6
MOV ESI,0x1
LEA RDI,[0x11c4b0]
CALL 0x001103d0
JMP 0x00112158
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x8
MOV ESI,0x1
LEA RDI,[0x11c4b7]
CALL 0x001103d0
JMP 0x00112162
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x11c4c0]
CALL 0x001103d0
JMP 0x0011216c
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x2a
MOV ESI,0x1
LEA RDI,[0x11e6e8]
CALL 0x001103d0
JMP 0x001121aa
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x24
MOV ESI,0x1
LEA RDI,[0x11e718]
CALL 0x001103d0
JMP 0x001121b4
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x21
MOV ESI,0x1
LEA RDI,[0x11e740]
CALL 0x001103d0
JMP 0x001121be
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x1c
MOV ESI,0x1
LEA RDI,[0x11c4c6]
CALL 0x001103d0
JMP 0x001121c8
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x20
MOV ESI,0x1
LEA RDI,[0x11e768]
CALL 0x001103d0
JMP 0x001121d2
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x32
MOV ESI,0x1
LEA RDI,[0x11e790]
CALL 0x001103d0
TEST EBP,0x100
JNZ 0x001124d6
TEST EBP,0x200
JNZ 0x001124f8
TEST EBP,0x400
JNZ 0x0011251a
TEST EBP,0x10000
JNZ 0x0011253c
TEST EBP,0x20000
JNZ 0x0011269e
TEST EBP,0x40000
JNZ 0x001126c0
TEST EBP,0x70000
JZ 0x00112559
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x2d
MOV ESI,0x1
LEA RDI,[0x11e908]
CALL 0x001103d0
JMP 0x00112559
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x20
MOV ESI,0x1
LEA RDI,[0x11e7c8]
CALL 0x001103d0
JMP 0x0011243e
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x2e
MOV ESI,0x1
LEA RDI,[0x11e828]
CALL 0x001103d0
JMP 0x0011244a
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x2d
MOV ESI,0x1
LEA RDI,[0x11e858]
CALL 0x001103d0
JMP 0x00112456
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x1d
MOV ESI,0x1
LEA RDI,[0x11c4e3]
CALL 0x001103d0
JMP 0x00112462
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x1e
MOV ESI,0x1
LEA RDI,[0x11e888]
CALL 0x001103d0
LEA RDI,[RBX + 0x2c]
CALL 0x00110555
MOV EDX,EAX
LEA RSI,[0x11e938]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RSI,[0x11c501]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
MOVZX EDX,byte ptr [RBX + 0x30]
CMP DL,0xff
JZ 0x001126e2
MOVZX EDX,DL
LEA RSI,[0x11c525]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RSI,[0x11c52d]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
CMP byte ptr [RBX + 0x31],0xff
JZ 0x00112704
MOVZX EDX,byte ptr [RBX + 0x30]
LEA RSI,[0x11c525]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
LEA RSI,[0x11c54b]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
MOVZX EDX,byte ptr [RBX + 0x32]
TEST DL,DL
JNZ 0x00112618
CMP byte ptr [RBX + 0x33],0x0
JZ 0x00112726
MOVZX ECX,byte ptr [RBX + 0x33]
MOVZX EDX,DL
LEA RSI,[0x11c56f]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
MOVZX EDX,byte ptr [RBX + 0x34]
LEA RSI,[0x11e960]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
TEST byte ptr [RBX + 0x34],0x1
JNZ 0x00112748
TEST byte ptr [RBX + 0x34],0x2
JNZ 0x0011276a
MOV RSI,qword ptr [0x0013b2a0]
MOV EDI,0xa
CALL 0x00110230
MOVZX EDX,byte ptr [RBX + 0x35]
LEA RSI,[0x11e988]
MOV EDI,0x1
MOV EAX,0x0
CALL 0x001102e0
CMP byte ptr [RBX],0x36
JA 0x0011278c
ADD RSP,0x8
POP RBX
POP RBP
RET
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x24
MOV ESI,0x1
LEA RDI,[0x11e8a8]
CALL 0x001103d0
JMP 0x00112559
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x31
MOV ESI,0x1
LEA RDI,[0x11e8d0]
CALL 0x001103d0
JMP 0x00112559
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x11c51f]
CALL 0x001103d0
JMP 0x001125b6
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x11c51f]
CALL 0x001103d0
JMP 0x001125f0
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x5
MOV ESI,0x1
LEA RDI,[0x11c569]
CALL 0x001103d0
JMP 0x00112635
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0xd
MOV ESI,0x1
LEA RDI,[0x11c581]
CALL 0x001103d0
JMP 0x00112659
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0xd
MOV ESI,0x1
LEA RDI,[0x11c58f]
CALL 0x001103d0
JMP 0x00112663
MOV RCX,qword ptr [0x0013b2a0]
MOV EDX,0x19
MOV ESI,0x1
LEA RDI,[0x11c59d]
CALL 0x001103d0
MOVZX ESI,byte ptr [RBX]
SUB ESI,0x36
LEA RDI,[RBX + 0x36]
CALL 0x001105ba
JMP 0x00112697
(translation_unit "void FUN_00111ec6(byte *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00111ec6(byte *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00111ec6(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (if_statement "if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" if (parenthesized_expression "(*param_1 < 0x36)" ( (binary_expression "*param_1 < 0x36" (pointer_expression "*param_1" * identifier) < number_literal) )) (compound_statement "{\n    puts("      Warning: Descriptor too short");\n  }" { (expression_statement "puts("      Warning: Descriptor too short");" (call_expression "puts("      Warning: Descriptor too short")" identifier (argument_list "("      Warning: Descriptor too short")" ( (string_literal ""      Warning: Descriptor too short"" " string_content ") ))) ;) }) (else_clause "else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" else (compound_statement "{\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" { (expression_statement "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);" (call_expression "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2])" identifier (argument_list "(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2])" ( number_literal , (string_literal ""      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*param_1" * identifier) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , (subscript_expression "param_1[3]" identifier [ number_literal ]) , (subscript_expression "param_1[2]" identifier [ number_literal ]) ))) ;) (if_statement "if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" if (parenthesized_expression "((param_1[3] != 1) || (param_1[2] != 0))" ( (binary_expression "(param_1[3] != 1) || (param_1[2] != 0)" (parenthesized_expression "(param_1[3] != 1)" ( (binary_expression "param_1[3] != 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" { (expression_statement "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);" (call_expression "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" identifier (argument_list "("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" ( (string_literal ""  (Warning: Only accurate for version 1.0)"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "bVar1 = param_1[5];" (assignment_expression "bVar1 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pcVar4 = "1.8V ";" (assignment_expression "pcVar4 = "1.8V "" identifier = (string_literal ""1.8V "" " string_content ")) ;) (if_statement "if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar4 = "";\n    }" { (expression_statement "pcVar4 = "";" (assignment_expression "pcVar4 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar6 = "3.0V ";" (assignment_expression "pcVar6 = "3.0V "" identifier = (string_literal ""3.0V "" " string_content ")) ;) (if_statement "if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar6 = "";\n    }" { (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar5 = "5.0V ";" (assignment_expression "pcVar5 = "5.0V "" identifier = (string_literal ""5.0V "" " string_content ")) ;) (if_statement "if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar5 = "";\n    }" { (expression_statement "pcVar5 = "";" (assignment_expression "pcVar5 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);" (call_expression "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4)" identifier (argument_list "(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4)" ( number_literal , (string_literal ""        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n"" " string_content escape_sequence string_content escape_sequence ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 6);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 6)" identifier = (call_expression "FUN_00110555(param_1 + 6)" identifier (argument_list "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwProtocols         %5u ",uVar2);" (call_expression "__printf_chk(1,"        dwProtocols         %5u ",uVar2)" identifier (argument_list "(1,"        dwProtocols         %5u ",uVar2)" ( number_literal , (string_literal ""        dwProtocols         %5u "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c46e,1,4,stdout);" (call_expression "fwrite(&DAT_0011c46e,1,4,stdout)" identifier (argument_list "(&DAT_0011c46e,1,4,stdout)" ( (pointer_expression "&DAT_0011c46e" & identifier) , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c473,1,4,stdout);" (call_expression "fwrite(&DAT_0011c473,1,4,stdout)" identifier (argument_list "(&DAT_0011c473,1,4,stdout)" ( (pointer_expression "&DAT_0011c473" & identifier) , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0xfffffffc) != 0)" ( (binary_expression "(uVar2 & 0xfffffffc) != 0" (parenthesized_expression "(uVar2 & 0xfffffffc)" ( (binary_expression "uVar2 & 0xfffffffc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" { (expression_statement "fwrite(" (Invalid values detected)",1,0x1a,stdout);" (call_expression "fwrite(" (Invalid values detected)",1,0x1a,stdout)" identifier (argument_list "(" (Invalid values detected)",1,0x1a,stdout)" ( (string_literal "" (Invalid values detected)"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 10);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 10)" identifier = (call_expression "FUN_00110555(param_1 + 10)" identifier (argument_list "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar3)" identifier (argument_list "(1,"        dwDefaultClock      %5u\n",uVar3)" ( number_literal , (string_literal ""        dwDefaultClock      %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0xe);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0xe)" identifier = (call_expression "FUN_00110555(param_1 + 0xe)" identifier (argument_list "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3)" identifier (argument_list "(1,"        dwMaxiumumClock     %5u\n",uVar3)" ( number_literal , (string_literal ""        dwMaxiumumClock     %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);" (call_expression "__printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12])" identifier (argument_list "(1,"        bNumClockSupported  %5u\n",param_1[0x12])" ( number_literal , (string_literal ""        bNumClockSupported  %5u\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x13);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x13)" identifier = (call_expression "FUN_00110555(param_1 + 0x13)" identifier (argument_list "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);" (call_expression "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar3)" identifier (argument_list "(1,"        dwDataRate        %7u bps\n",uVar3)" ( number_literal , (string_literal ""        dwDataRate        %7u bps\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x17);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x17)" identifier = (call_expression "FUN_00110555(param_1 + 0x17)" identifier (argument_list "(param_1 + 0x17)" ( (binary_expression "param_1 + 0x17" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3)" identifier (argument_list "(1,"        dwMaxDataRate     %7u bps\n",uVar3)" ( number_literal , (string_literal ""        dwMaxDataRate     %7u bps\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);" (call_expression "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b])" identifier (argument_list "(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b])" ( number_literal , (string_literal ""        bNumDataRatesSupp.  %5u\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x1c);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x1c)" identifier = (call_expression "FUN_00110555(param_1 + 0x1c)" identifier (argument_list "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3)" identifier (argument_list "(1,"        dwMaxIFSD           %5u\n",uVar3)" ( number_literal , (string_literal ""        dwMaxIFSD           %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x20);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x20)" identifier = (call_expression "FUN_00110555(param_1 + 0x20)" identifier (argument_list "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2)" identifier (argument_list "(1,"        dwSyncProtocols  %08X ",uVar2)" ( number_literal , (string_literal ""        dwSyncProtocols  %08X "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" 2-wire",1,7,stdout);\n    }" { (expression_statement "fwrite(" 2-wire",1,7,stdout);" (call_expression "fwrite(" 2-wire",1,7,stdout)" identifier (argument_list "(" 2-wire",1,7,stdout)" ( (string_literal "" 2-wire"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" 3-wire",1,7,stdout);\n    }" { (expression_statement "fwrite(" 3-wire",1,7,stdout);" (call_expression "fwrite(" 3-wire",1,7,stdout)" identifier (argument_list "(" 3-wire",1,7,stdout)" ( (string_literal "" 3-wire"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c4a3,1,4,stdout);" (call_expression "fwrite(&DAT_0011c4a3,1,4,stdout)" identifier (argument_list "(&DAT_0011c4a3,1,4,stdout)" ( (pointer_expression "&DAT_0011c4a3" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x24);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x24)" identifier = (call_expression "FUN_00110555(param_1 + 0x24)" identifier (argument_list "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMechanical     %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwMechanical     %08X ",uVar2)" identifier (argument_list "(1,"        dwMechanical     %08X ",uVar2)" ( number_literal , (string_literal ""        dwMechanical     %08X "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" accept",1,7,stdout);\n    }" { (expression_statement "fwrite(" accept",1,7,stdout);" (call_expression "fwrite(" accept",1,7,stdout)" identifier (argument_list "(" accept",1,7,stdout)" ( (string_literal "" accept"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" eject",1,6,stdout);\n    }" { (expression_statement "fwrite(" eject",1,6,stdout);" (call_expression "fwrite(" eject",1,6,stdout)" identifier (argument_list "(" eject",1,6,stdout)" ( (string_literal "" eject"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" capture",1,8,stdout);\n    }" { (expression_statement "fwrite(" capture",1,8,stdout);" (call_expression "fwrite(" capture",1,8,stdout)" identifier (argument_list "(" capture",1,8,stdout)" ( (string_literal "" capture"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }" if (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" lock",1,5,stdout);\n    }" { (expression_statement "fwrite(" lock",1,5,stdout);" (call_expression "fwrite(" lock",1,5,stdout)" identifier (argument_list "(" lock",1,5,stdout)" ( (string_literal "" lock"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x28);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x28)" identifier = (call_expression "FUN_00110555(param_1 + 0x28)" identifier (argument_list "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwFeatures       %08X\n",uVar2);" (call_expression "__printf_chk(1,"        dwFeatures       %08X\n",uVar2)" identifier (argument_list "(1,"        dwFeatures       %08X\n",uVar2)" ( number_literal , (string_literal ""        dwFeatures       %08X\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" { (expression_statement "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);" (call_expression "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout)" identifier (argument_list "("          Auto configuration based on ATR\n",1,0x2a,stdout)" ( (string_literal ""          Auto configuration based on ATR\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" { (expression_statement "fwrite("          Auto activation on insert\n",1,0x24,stdout);" (call_expression "fwrite("          Auto activation on insert\n",1,0x24,stdout)" identifier (argument_list "("          Auto activation on insert\n",1,0x24,stdout)" ( (string_literal ""          Auto activation on insert\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" if (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" { (expression_statement "fwrite("          Auto voltage selection\n",1,0x21,stdout);" (call_expression "fwrite("          Auto voltage selection\n",1,0x21,stdout)" identifier (argument_list "("          Auto voltage selection\n",1,0x21,stdout)" ( (string_literal ""          Auto voltage selection\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x10) != 0)" ( (binary_expression "(uVar2 & 0x10) != 0" (parenthesized_expression "(uVar2 & 0x10)" ( (binary_expression "uVar2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" { (expression_statement "fwrite("          Auto clock change\n",1,0x1c,stdout);" (call_expression "fwrite("          Auto clock change\n",1,0x1c,stdout)" identifier (argument_list "("          Auto clock change\n",1,0x1c,stdout)" ( (string_literal ""          Auto clock change\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" { (expression_statement "fwrite("          Auto baud rate change\n",1,0x20,stdout);" (call_expression "fwrite("          Auto baud rate change\n",1,0x20,stdout)" identifier (argument_list "("          Auto baud rate change\n",1,0x20,stdout)" ( (string_literal ""          Auto baud rate change\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x40) == 0)" ( (binary_expression "(uVar2 & 0x40) == 0" (parenthesized_expression "(uVar2 & 0x40)" ( (binary_expression "uVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }" { (if_statement "if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }" { (if_statement "if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" if (parenthesized_expression "((uVar2 & 0xc0) != 0)" ( (binary_expression "(uVar2 & 0xc0) != 0" (parenthesized_expression "(uVar2 & 0xc0)" ( (binary_expression "uVar2 & 0xc0" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" { (expression_statement "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);" (call_expression "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" identifier (argument_list "("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" ( (string_literal ""        WARNING: conflicting negotiation features\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) }) (else_clause "else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" else (compound_statement "{\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" { (expression_statement "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);" (call_expression "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout)" identifier (argument_list "("          Auto PPS made by CCID\n",1,0x20,stdout)" ( (string_literal ""          Auto PPS made by CCID\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" else (compound_statement "{\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" { (expression_statement "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);" (call_expression "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" identifier (argument_list "("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" ( (string_literal ""          Auto parameter negotiation made by CCID\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) (if_statement "if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" { (expression_statement "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);" (call_expression "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" identifier (argument_list "("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" ( (string_literal ""          CCID can set ICC in clock stop mode\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x200) != 0)" ( (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" ( (binary_expression "uVar2 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" { (expression_statement "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);" (call_expression "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" identifier (argument_list "("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" ( (string_literal ""          NAD value other than 0x00 accepted\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x400) != 0)" ( (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" { (expression_statement "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);" (call_expression "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout)" identifier (argument_list "("          Auto IFSD exchange\n",1,0x1d,stdout)" ( (string_literal ""          Auto IFSD exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x10000) == 0)" ( (binary_expression "(uVar2 & 0x10000) == 0" (parenthesized_expression "(uVar2 & 0x10000)" ( (binary_expression "uVar2 & 0x10000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }" { (if_statement "if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" if (parenthesized_expression "((uVar2 & 0x20000) == 0)" ( (binary_expression "(uVar2 & 0x20000) == 0" (parenthesized_expression "(uVar2 & 0x20000)" ( (binary_expression "uVar2 & 0x20000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }" { (if_statement "if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" if (parenthesized_expression "((uVar2 & 0x40000) == 0)" ( (binary_expression "(uVar2 & 0x40000) == 0" (parenthesized_expression "(uVar2 & 0x40000)" ( (binary_expression "uVar2 & 0x40000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }" { (if_statement "if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" if (parenthesized_expression "((uVar2 & 0x70000) != 0)" ( (binary_expression "(uVar2 & 0x70000) != 0" (parenthesized_expression "(uVar2 & 0x70000)" ( (binary_expression "uVar2 & 0x70000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" { (expression_statement "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);" (call_expression "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" identifier (argument_list "("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" ( (string_literal ""        WARNING: conflicting exchange levels\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) }) (else_clause "else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" else (compound_statement "{\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" { (expression_statement "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);" (call_expression "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout)" identifier (argument_list "("          Short and extended APDU level exchange\n",1,0x31,stdout)" ( (string_literal ""          Short and extended APDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" else (compound_statement "{\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" { (expression_statement "fwrite("          Short APDU level exchange\n",1,0x24,stdout);" (call_expression "fwrite("          Short APDU level exchange\n",1,0x24,stdout)" identifier (argument_list "("          Short APDU level exchange\n",1,0x24,stdout)" ( (string_literal ""          Short APDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" else (compound_statement "{\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" { (expression_statement "fwrite("          TPDU level exchange\n",1,0x1e,stdout);" (call_expression "fwrite("          TPDU level exchange\n",1,0x1e,stdout)" identifier (argument_list "("          TPDU level exchange\n",1,0x1e,stdout)" ( (string_literal ""          TPDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x2c);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x2c)" identifier = (call_expression "FUN_00110555(param_1 + 0x2c)" identifier (argument_list "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3)" identifier (argument_list "(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3)" ( number_literal , (string_literal ""        dwMaxCCIDMsgLen     %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bClassGetResponse    ");" (call_expression "__printf_chk(1,"        bClassGetResponse    ")" identifier (argument_list "(1,"        bClassGetResponse    ")" ( number_literal , (string_literal ""        bClassGetResponse    "" " string_content ") ))) ;) (if_statement "if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" if (parenthesized_expression "(param_1[0x30] == 0xff)" ( (binary_expression "param_1[0x30] == 0xff" (subscript_expression "param_1[0x30]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" { (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" identifier (argument_list "("echo\n",1,5,stdout)" ( (string_literal ""echo\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" else (compound_statement "{\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" { (expression_statement "__printf_chk(1,"  %02X\n",param_1[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",param_1[0x30])" identifier (argument_list "(1,"  %02X\n",param_1[0x30])" ( number_literal , (string_literal ""  %02X\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x30]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        bClassEnvelope       ");" (call_expression "__printf_chk(1,"        bClassEnvelope       ")" identifier (argument_list "(1,"        bClassEnvelope       ")" ( number_literal , (string_literal ""        bClassEnvelope       "" " string_content ") ))) ;) (if_statement "if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" if (parenthesized_expression "(param_1[0x31] == 0xff)" ( (binary_expression "param_1[0x31] == 0xff" (subscript_expression "param_1[0x31]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" { (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" identifier (argument_list "("echo\n",1,5,stdout)" ( (string_literal ""echo\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" else (compound_statement "{\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" { (expression_statement "__printf_chk(1,"  %02X\n",param_1[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",param_1[0x30])" identifier (argument_list "(1,"  %02X\n",param_1[0x30])" ( number_literal , (string_literal ""  %02X\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x30]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        wlcdLayout           ");" (call_expression "__printf_chk(1,"        wlcdLayout           ")" identifier (argument_list "(1,"        wlcdLayout           ")" ( number_literal , (string_literal ""        wlcdLayout           "" " string_content ") ))) ;) (if_statement "if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" if (parenthesized_expression "((param_1[0x32] == 0) && (param_1[0x33] == 0))" ( (binary_expression "(param_1[0x32] == 0) && (param_1[0x33] == 0)" (parenthesized_expression "(param_1[0x32] == 0)" ( (binary_expression "param_1[0x32] == 0" (subscript_expression "param_1[0x32]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_1[0x33] == 0)" ( (binary_expression "param_1[0x33] == 0" (subscript_expression "param_1[0x33]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      fwrite("none\n",1,5,stdout);\n    }" { (expression_statement "fwrite("none\n",1,5,stdout);" (call_expression "fwrite("none\n",1,5,stdout)" identifier (argument_list "("none\n",1,5,stdout)" ( (string_literal ""none\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" else (compound_statement "{\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" { (expression_statement "__printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);" (call_expression "__printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33])" identifier (argument_list "(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33])" ( number_literal , (string_literal ""%u cols %u lines\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x32]" identifier [ number_literal ]) , (subscript_expression "param_1[0x33]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);" (call_expression "__printf_chk(1,"        bPINSupport         %5u ",param_1[0x34])" identifier (argument_list "(1,"        bPINSupport         %5u ",param_1[0x34])" ( number_literal , (string_literal ""        bPINSupport         %5u "" " string_content ") , (subscript_expression "param_1[0x34]" identifier [ number_literal ]) ))) ;) (if_statement "if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }" if (parenthesized_expression "((param_1[0x34] & 1) != 0)" ( (binary_expression "(param_1[0x34] & 1) != 0" (parenthesized_expression "(param_1[0x34] & 1)" ( (binary_expression "param_1[0x34] & 1" (subscript_expression "param_1[0x34]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" verification",1,0xd,stdout);\n    }" { (expression_statement "fwrite(" verification",1,0xd,stdout);" (call_expression "fwrite(" verification",1,0xd,stdout)" identifier (argument_list "(" verification",1,0xd,stdout)" ( (string_literal "" verification"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }" if (parenthesized_expression "((param_1[0x34] & 2) != 0)" ( (binary_expression "(param_1[0x34] & 2) != 0" (parenthesized_expression "(param_1[0x34] & 2)" ( (binary_expression "param_1[0x34] & 2" (subscript_expression "param_1[0x34]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" modification",1,0xd,stdout);\n    }" { (expression_statement "fwrite(" modification",1,0xd,stdout);" (call_expression "fwrite(" modification",1,0xd,stdout)" identifier (argument_list "(" modification",1,0xd,stdout)" ( (string_literal "" modification"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);" (call_expression "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35])" identifier (argument_list "(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35])" ( number_literal , (string_literal ""        bMaxCCIDBusySlots   %5u\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x35]" identifier [ number_literal ]) ))) ;) (if_statement "if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }" if (parenthesized_expression "(0x36 < *param_1)" ( (binary_expression "0x36 < *param_1" number_literal < (pointer_expression "*param_1" * identifier)) )) (compound_statement "{\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }" { (expression_statement "fwrite(&DAT_0011c59d,1,0x19,stdout);" (call_expression "fwrite(&DAT_0011c59d,1,0x19,stdout)" identifier (argument_list "(&DAT_0011c59d,1,0x19,stdout)" ( (pointer_expression "&DAT_0011c59d" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);" (call_expression "FUN_001105ba(param_1 + 0x36,*param_1 - 0x36)" identifier (argument_list "(param_1 + 0x36,*param_1 - 0x36)" ( (binary_expression "param_1 + 0x36" identifier + number_literal) , (binary_expression "*param_1 - 0x36" (pointer_expression "*param_1" * identifier) - number_literal) ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void dump_ccid_device(uchar *buf)\n\n{\n  byte bVar1;\n  uint uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (*buf < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);\n    if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = buf[5];\n    pcVar3 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }\n    pcVar5 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }\n    pcVar4 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);\n    uVar2 = convert_le_u32(buf + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);\n    uVar2 = convert_le_u32(buf + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);\n    uVar2 = convert_le_u32(buf + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar2 = convert_le_u32(buf + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);\n    if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);\n    if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }\n  }\n  return;\n}\n\n" (function_definition "void dump_ccid_device(uchar *buf)\n\n{\n  byte bVar1;\n  uint uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (*buf < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);\n    if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = buf[5];\n    pcVar3 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }\n    pcVar5 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }\n    pcVar4 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);\n    uVar2 = convert_le_u32(buf + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);\n    uVar2 = convert_le_u32(buf + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);\n    uVar2 = convert_le_u32(buf + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar2 = convert_le_u32(buf + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);\n    if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);\n    if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "dump_ccid_device(uchar *buf)" identifier (parameter_list "(uchar *buf)" ( (parameter_declaration "uchar *buf" type_identifier (pointer_declarator "*buf" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  char *pcVar3;\n  char *pcVar4;\n  char *pcVar5;\n  \n  if (*buf < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);\n    if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = buf[5];\n    pcVar3 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }\n    pcVar5 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }\n    pcVar4 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);\n    uVar2 = convert_le_u32(buf + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);\n    uVar2 = convert_le_u32(buf + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);\n    uVar2 = convert_le_u32(buf + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar2 = convert_le_u32(buf + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);\n    if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);\n    if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (if_statement "if (*buf < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);\n    if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = buf[5];\n    pcVar3 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }\n    pcVar5 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }\n    pcVar4 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);\n    uVar2 = convert_le_u32(buf + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);\n    uVar2 = convert_le_u32(buf + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);\n    uVar2 = convert_le_u32(buf + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar2 = convert_le_u32(buf + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);\n    if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);\n    if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }\n  }" if (parenthesized_expression "(*buf < 0x36)" ( (binary_expression "*buf < 0x36" (pointer_expression "*buf" * identifier) < number_literal) )) (compound_statement "{\n    puts("      Warning: Descriptor too short");\n  }" { (expression_statement "puts("      Warning: Descriptor too short");" (call_expression "puts("      Warning: Descriptor too short")" identifier (argument_list "("      Warning: Descriptor too short")" ( (string_literal ""      Warning: Descriptor too short"" " string_content ") ))) ;) }) (else_clause "else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);\n    if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = buf[5];\n    pcVar3 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }\n    pcVar5 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }\n    pcVar4 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);\n    uVar2 = convert_le_u32(buf + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);\n    uVar2 = convert_le_u32(buf + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);\n    uVar2 = convert_le_u32(buf + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar2 = convert_le_u32(buf + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);\n    if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);\n    if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }\n  }" else (compound_statement "{\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);\n    if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = buf[5];\n    pcVar3 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }\n    pcVar5 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }\n    pcVar4 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);\n    uVar2 = convert_le_u32(buf + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);\n    uVar2 = convert_le_u32(buf + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);\n    uVar2 = convert_le_u32(buf + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);\n    uVar2 = convert_le_u32(buf + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = convert_le_u32(buf + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar2 = convert_le_u32(buf + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);\n    if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);\n    if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }\n  }" { (expression_statement "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2]);" (call_expression "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2])" identifier (argument_list "(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*buf,buf[1],buf[3],buf[2])" ( number_literal , (string_literal ""      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*buf" * identifier) , (subscript_expression "buf[1]" identifier [ number_literal ]) , (subscript_expression "buf[3]" identifier [ number_literal ]) , (subscript_expression "buf[2]" identifier [ number_literal ]) ))) ;) (if_statement "if ((buf[3] != '\x01') || (buf[2] != '\0')) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" if (parenthesized_expression "((buf[3] != '\x01') || (buf[2] != '\0'))" ( (binary_expression "(buf[3] != '\x01') || (buf[2] != '\0')" (parenthesized_expression "(buf[3] != '\x01')" ( (binary_expression "buf[3] != '\x01'" (subscript_expression "buf[3]" identifier [ number_literal ]) != (char_literal "'\x01'" ' escape_sequence ')) )) || (parenthesized_expression "(buf[2] != '\0')" ( (binary_expression "buf[2] != '\0'" (subscript_expression "buf[2]" identifier [ number_literal ]) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" { (expression_statement "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);" (call_expression "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" identifier (argument_list "("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" ( (string_literal ""  (Warning: Only accurate for version 1.0)"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "bVar1 = buf[5];" (assignment_expression "bVar1 = buf[5]" identifier = (subscript_expression "buf[5]" identifier [ number_literal ])) ;) (expression_statement "pcVar3 = "1.8V ";" (assignment_expression "pcVar3 = "1.8V "" identifier = (string_literal ""1.8V "" " string_content ")) ;) (if_statement "if ((bVar1 & 4) == 0) {\n      pcVar3 = "";\n    }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar3 = "";\n    }" { (expression_statement "pcVar3 = "";" (assignment_expression "pcVar3 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar5 = "3.0V ";" (assignment_expression "pcVar5 = "3.0V "" identifier = (string_literal ""3.0V "" " string_content ")) ;) (if_statement "if ((bVar1 & 2) == 0) {\n      pcVar5 = "";\n    }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar5 = "";\n    }" { (expression_statement "pcVar5 = "";" (assignment_expression "pcVar5 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar4 = "5.0V ";" (assignment_expression "pcVar4 = "5.0V "" identifier = (string_literal ""5.0V "" " string_content ")) ;) (if_statement "if ((bVar1 & 1) == 0) {\n      pcVar4 = "";\n    }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar4 = "";\n    }" { (expression_statement "pcVar4 = "";" (assignment_expression "pcVar4 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3);" (call_expression "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3)" identifier (argument_list "(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 buf[4],bVar1,pcVar4,pcVar5,pcVar3)" ( number_literal , (string_literal ""        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n"" " string_content escape_sequence string_content escape_sequence ") , (subscript_expression "buf[4]" identifier [ number_literal ]) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 6);" (assignment_expression "uVar2 = convert_le_u32(buf + 6)" identifier = (call_expression "convert_le_u32(buf + 6)" identifier (argument_list "(buf + 6)" ( (binary_expression "buf + 6" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwProtocols         %5u ",uVar2);" (call_expression "__printf_chk(1,"        dwProtocols         %5u ",uVar2)" identifier (argument_list "(1,"        dwProtocols         %5u ",uVar2)" ( number_literal , (string_literal ""        dwProtocols         %5u "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c46e,1,4,stdout);" (call_expression "fwrite(&DAT_0011c46e,1,4,stdout)" identifier (argument_list "(&DAT_0011c46e,1,4,stdout)" ( (pointer_expression "&DAT_0011c46e" & identifier) , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c473,1,4,stdout);" (call_expression "fwrite(&DAT_0011c473,1,4,stdout)" identifier (argument_list "(&DAT_0011c473,1,4,stdout)" ( (pointer_expression "&DAT_0011c473" & identifier) , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0xfffffffc) != 0)" ( (binary_expression "(uVar2 & 0xfffffffc) != 0" (parenthesized_expression "(uVar2 & 0xfffffffc)" ( (binary_expression "uVar2 & 0xfffffffc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" { (expression_statement "fwrite(" (Invalid values detected)",1,0x1a,stdout);" (call_expression "fwrite(" (Invalid values detected)",1,0x1a,stdout)" identifier (argument_list "(" (Invalid values detected)",1,0x1a,stdout)" ( (string_literal "" (Invalid values detected)"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 10);" (assignment_expression "uVar2 = convert_le_u32(buf + 10)" identifier = (call_expression "convert_le_u32(buf + 10)" identifier (argument_list "(buf + 10)" ( (binary_expression "buf + 10" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar2);" (call_expression "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar2)" identifier (argument_list "(1,"        dwDefaultClock      %5u\n",uVar2)" ( number_literal , (string_literal ""        dwDefaultClock      %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0xe);" (assignment_expression "uVar2 = convert_le_u32(buf + 0xe)" identifier = (call_expression "convert_le_u32(buf + 0xe)" identifier (argument_list "(buf + 0xe)" ( (binary_expression "buf + 0xe" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2);" (call_expression "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar2)" identifier (argument_list "(1,"        dwMaxiumumClock     %5u\n",uVar2)" ( number_literal , (string_literal ""        dwMaxiumumClock     %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12]);" (call_expression "__printf_chk(1,"        bNumClockSupported  %5u\n",buf[0x12])" identifier (argument_list "(1,"        bNumClockSupported  %5u\n",buf[0x12])" ( number_literal , (string_literal ""        bNumClockSupported  %5u\n"" " string_content escape_sequence ") , (subscript_expression "buf[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0x13);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x13)" identifier = (call_expression "convert_le_u32(buf + 0x13)" identifier (argument_list "(buf + 0x13)" ( (binary_expression "buf + 0x13" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar2);" (call_expression "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar2)" identifier (argument_list "(1,"        dwDataRate        %7u bps\n",uVar2)" ( number_literal , (string_literal ""        dwDataRate        %7u bps\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0x17);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x17)" identifier = (call_expression "convert_le_u32(buf + 0x17)" identifier (argument_list "(buf + 0x17)" ( (binary_expression "buf + 0x17" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2);" (call_expression "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar2)" identifier (argument_list "(1,"        dwMaxDataRate     %7u bps\n",uVar2)" ( number_literal , (string_literal ""        dwMaxDataRate     %7u bps\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b]);" (call_expression "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b])" identifier (argument_list "(1,"        bNumDataRatesSupp.  %5u\n",buf[0x1b])" ( number_literal , (string_literal ""        bNumDataRatesSupp.  %5u\n"" " string_content escape_sequence ") , (subscript_expression "buf[0x1b]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0x1c);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x1c)" identifier = (call_expression "convert_le_u32(buf + 0x1c)" identifier (argument_list "(buf + 0x1c)" ( (binary_expression "buf + 0x1c" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2);" (call_expression "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar2)" identifier (argument_list "(1,"        dwMaxIFSD           %5u\n",uVar2)" ( number_literal , (string_literal ""        dwMaxIFSD           %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0x20);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x20)" identifier = (call_expression "convert_le_u32(buf + 0x20)" identifier (argument_list "(buf + 0x20)" ( (binary_expression "buf + 0x20" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2)" identifier (argument_list "(1,"        dwSyncProtocols  %08X ",uVar2)" ( number_literal , (string_literal ""        dwSyncProtocols  %08X "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" 2-wire",1,7,stdout);\n    }" { (expression_statement "fwrite(" 2-wire",1,7,stdout);" (call_expression "fwrite(" 2-wire",1,7,stdout)" identifier (argument_list "(" 2-wire",1,7,stdout)" ( (string_literal "" 2-wire"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" 3-wire",1,7,stdout);\n    }" { (expression_statement "fwrite(" 3-wire",1,7,stdout);" (call_expression "fwrite(" 3-wire",1,7,stdout)" identifier (argument_list "(" 3-wire",1,7,stdout)" ( (string_literal "" 3-wire"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c4a3,1,4,stdout);" (call_expression "fwrite(&DAT_0011c4a3,1,4,stdout)" identifier (argument_list "(&DAT_0011c4a3,1,4,stdout)" ( (pointer_expression "&DAT_0011c4a3" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0x24);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x24)" identifier = (call_expression "convert_le_u32(buf + 0x24)" identifier (argument_list "(buf + 0x24)" ( (binary_expression "buf + 0x24" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMechanical     %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwMechanical     %08X ",uVar2)" identifier (argument_list "(1,"        dwMechanical     %08X ",uVar2)" ( number_literal , (string_literal ""        dwMechanical     %08X "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" accept",1,7,stdout);\n    }" { (expression_statement "fwrite(" accept",1,7,stdout);" (call_expression "fwrite(" accept",1,7,stdout)" identifier (argument_list "(" accept",1,7,stdout)" ( (string_literal "" accept"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" eject",1,6,stdout);\n    }" { (expression_statement "fwrite(" eject",1,6,stdout);" (call_expression "fwrite(" eject",1,6,stdout)" identifier (argument_list "(" eject",1,6,stdout)" ( (string_literal "" eject"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" capture",1,8,stdout);\n    }" { (expression_statement "fwrite(" capture",1,8,stdout);" (call_expression "fwrite(" capture",1,8,stdout)" identifier (argument_list "(" capture",1,8,stdout)" ( (string_literal "" capture"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }" if (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" lock",1,5,stdout);\n    }" { (expression_statement "fwrite(" lock",1,5,stdout);" (call_expression "fwrite(" lock",1,5,stdout)" identifier (argument_list "(" lock",1,5,stdout)" ( (string_literal "" lock"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = convert_le_u32(buf + 0x28);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x28)" identifier = (call_expression "convert_le_u32(buf + 0x28)" identifier (argument_list "(buf + 0x28)" ( (binary_expression "buf + 0x28" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwFeatures       %08X\n",uVar2);" (call_expression "__printf_chk(1,"        dwFeatures       %08X\n",uVar2)" identifier (argument_list "(1,"        dwFeatures       %08X\n",uVar2)" ( number_literal , (string_literal ""        dwFeatures       %08X\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" { (expression_statement "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);" (call_expression "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout)" identifier (argument_list "("          Auto configuration based on ATR\n",1,0x2a,stdout)" ( (string_literal ""          Auto configuration based on ATR\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" { (expression_statement "fwrite("          Auto activation on insert\n",1,0x24,stdout);" (call_expression "fwrite("          Auto activation on insert\n",1,0x24,stdout)" identifier (argument_list "("          Auto activation on insert\n",1,0x24,stdout)" ( (string_literal ""          Auto activation on insert\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" if (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" { (expression_statement "fwrite("          Auto voltage selection\n",1,0x21,stdout);" (call_expression "fwrite("          Auto voltage selection\n",1,0x21,stdout)" identifier (argument_list "("          Auto voltage selection\n",1,0x21,stdout)" ( (string_literal ""          Auto voltage selection\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x10) != 0)" ( (binary_expression "(uVar2 & 0x10) != 0" (parenthesized_expression "(uVar2 & 0x10)" ( (binary_expression "uVar2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" { (expression_statement "fwrite("          Auto clock change\n",1,0x1c,stdout);" (call_expression "fwrite("          Auto clock change\n",1,0x1c,stdout)" identifier (argument_list "("          Auto clock change\n",1,0x1c,stdout)" ( (string_literal ""          Auto clock change\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" { (expression_statement "fwrite("          Auto baud rate change\n",1,0x20,stdout);" (call_expression "fwrite("          Auto baud rate change\n",1,0x20,stdout)" identifier (argument_list "("          Auto baud rate change\n",1,0x20,stdout)" ( (string_literal ""          Auto baud rate change\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x40) == 0)" ( (binary_expression "(uVar2 & 0x40) == 0" (parenthesized_expression "(uVar2 & 0x40)" ( (binary_expression "uVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }" { (if_statement "if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }" { (if_statement "if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" if (parenthesized_expression "((uVar2 & 0xc0) != 0)" ( (binary_expression "(uVar2 & 0xc0) != 0" (parenthesized_expression "(uVar2 & 0xc0)" ( (binary_expression "uVar2 & 0xc0" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" { (expression_statement "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);" (call_expression "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" identifier (argument_list "("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" ( (string_literal ""        WARNING: conflicting negotiation features\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) }) (else_clause "else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" else (compound_statement "{\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" { (expression_statement "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);" (call_expression "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout)" identifier (argument_list "("          Auto PPS made by CCID\n",1,0x20,stdout)" ( (string_literal ""          Auto PPS made by CCID\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" else (compound_statement "{\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" { (expression_statement "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);" (call_expression "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" identifier (argument_list "("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" ( (string_literal ""          Auto parameter negotiation made by CCID\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) (if_statement "if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" { (expression_statement "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);" (call_expression "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" identifier (argument_list "("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" ( (string_literal ""          CCID can set ICC in clock stop mode\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x200) != 0)" ( (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" ( (binary_expression "uVar2 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" { (expression_statement "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);" (call_expression "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" identifier (argument_list "("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" ( (string_literal ""          NAD value other than 0x00 accepted\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x400) != 0)" ( (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" { (expression_statement "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);" (call_expression "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout)" identifier (argument_list "("          Auto IFSD exchange\n",1,0x1d,stdout)" ( (string_literal ""          Auto IFSD exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x10000) == 0)" ( (binary_expression "(uVar2 & 0x10000) == 0" (parenthesized_expression "(uVar2 & 0x10000)" ( (binary_expression "uVar2 & 0x10000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }" { (if_statement "if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" if (parenthesized_expression "((uVar2 & 0x20000) == 0)" ( (binary_expression "(uVar2 & 0x20000) == 0" (parenthesized_expression "(uVar2 & 0x20000)" ( (binary_expression "uVar2 & 0x20000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }" { (if_statement "if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" if (parenthesized_expression "((uVar2 & 0x40000) == 0)" ( (binary_expression "(uVar2 & 0x40000) == 0" (parenthesized_expression "(uVar2 & 0x40000)" ( (binary_expression "uVar2 & 0x40000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }" { (if_statement "if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" if (parenthesized_expression "((uVar2 & 0x70000) != 0)" ( (binary_expression "(uVar2 & 0x70000) != 0" (parenthesized_expression "(uVar2 & 0x70000)" ( (binary_expression "uVar2 & 0x70000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" { (expression_statement "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);" (call_expression "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" identifier (argument_list "("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" ( (string_literal ""        WARNING: conflicting exchange levels\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) }) (else_clause "else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" else (compound_statement "{\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" { (expression_statement "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);" (call_expression "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout)" identifier (argument_list "("          Short and extended APDU level exchange\n",1,0x31,stdout)" ( (string_literal ""          Short and extended APDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" else (compound_statement "{\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" { (expression_statement "fwrite("          Short APDU level exchange\n",1,0x24,stdout);" (call_expression "fwrite("          Short APDU level exchange\n",1,0x24,stdout)" identifier (argument_list "("          Short APDU level exchange\n",1,0x24,stdout)" ( (string_literal ""          Short APDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" else (compound_statement "{\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" { (expression_statement "fwrite("          TPDU level exchange\n",1,0x1e,stdout);" (call_expression "fwrite("          TPDU level exchange\n",1,0x1e,stdout)" identifier (argument_list "("          TPDU level exchange\n",1,0x1e,stdout)" ( (string_literal ""          TPDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "uVar2 = convert_le_u32(buf + 0x2c);" (assignment_expression "uVar2 = convert_le_u32(buf + 0x2c)" identifier = (call_expression "convert_le_u32(buf + 0x2c)" identifier (argument_list "(buf + 0x2c)" ( (binary_expression "buf + 0x2c" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2);" (call_expression "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2)" identifier (argument_list "(1,"        dwMaxCCIDMsgLen     %5u\n",uVar2)" ( number_literal , (string_literal ""        dwMaxCCIDMsgLen     %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bClassGetResponse    ");" (call_expression "__printf_chk(1,"        bClassGetResponse    ")" identifier (argument_list "(1,"        bClassGetResponse    ")" ( number_literal , (string_literal ""        bClassGetResponse    "" " string_content ") ))) ;) (if_statement "if (buf[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }" if (parenthesized_expression "(buf[0x30] == 0xff)" ( (binary_expression "buf[0x30] == 0xff" (subscript_expression "buf[0x30]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" { (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" identifier (argument_list "("echo\n",1,5,stdout)" ( (string_literal ""echo\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }" else (compound_statement "{\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }" { (expression_statement "__printf_chk(1,"  %02X\n",buf[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",buf[0x30])" identifier (argument_list "(1,"  %02X\n",buf[0x30])" ( number_literal , (string_literal ""  %02X\n"" " string_content escape_sequence ") , (subscript_expression "buf[0x30]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        bClassEnvelope       ");" (call_expression "__printf_chk(1,"        bClassEnvelope       ")" identifier (argument_list "(1,"        bClassEnvelope       ")" ( number_literal , (string_literal ""        bClassEnvelope       "" " string_content ") ))) ;) (if_statement "if (buf[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }" if (parenthesized_expression "(buf[0x31] == 0xff)" ( (binary_expression "buf[0x31] == 0xff" (subscript_expression "buf[0x31]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" { (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" identifier (argument_list "("echo\n",1,5,stdout)" ( (string_literal ""echo\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }" else (compound_statement "{\n      __printf_chk(1,"  %02X\n",buf[0x30]);\n    }" { (expression_statement "__printf_chk(1,"  %02X\n",buf[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",buf[0x30])" identifier (argument_list "(1,"  %02X\n",buf[0x30])" ( number_literal , (string_literal ""  %02X\n"" " string_content escape_sequence ") , (subscript_expression "buf[0x30]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        wlcdLayout           ");" (call_expression "__printf_chk(1,"        wlcdLayout           ")" identifier (argument_list "(1,"        wlcdLayout           ")" ( number_literal , (string_literal ""        wlcdLayout           "" " string_content ") ))) ;) (if_statement "if ((buf[0x32] == '\0') && (buf[0x33] == '\0')) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }" if (parenthesized_expression "((buf[0x32] == '\0') && (buf[0x33] == '\0'))" ( (binary_expression "(buf[0x32] == '\0') && (buf[0x33] == '\0')" (parenthesized_expression "(buf[0x32] == '\0')" ( (binary_expression "buf[0x32] == '\0'" (subscript_expression "buf[0x32]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(buf[0x33] == '\0')" ( (binary_expression "buf[0x33] == '\0'" (subscript_expression "buf[0x33]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n      fwrite("none\n",1,5,stdout);\n    }" { (expression_statement "fwrite("none\n",1,5,stdout);" (call_expression "fwrite("none\n",1,5,stdout)" identifier (argument_list "("none\n",1,5,stdout)" ( (string_literal ""none\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }" else (compound_statement "{\n      __printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);\n    }" { (expression_statement "__printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33]);" (call_expression "__printf_chk(1,"%u cols %u lines\n",buf[0x32],buf[0x33])" identifier (argument_list "(1,"%u cols %u lines\n",buf[0x32],buf[0x33])" ( number_literal , (string_literal ""%u cols %u lines\n"" " string_content escape_sequence ") , (subscript_expression "buf[0x32]" identifier [ number_literal ]) , (subscript_expression "buf[0x33]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        bPINSupport         %5u ",buf[0x34]);" (call_expression "__printf_chk(1,"        bPINSupport         %5u ",buf[0x34])" identifier (argument_list "(1,"        bPINSupport         %5u ",buf[0x34])" ( number_literal , (string_literal ""        bPINSupport         %5u "" " string_content ") , (subscript_expression "buf[0x34]" identifier [ number_literal ]) ))) ;) (if_statement "if ((buf[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }" if (parenthesized_expression "((buf[0x34] & 1) != 0)" ( (binary_expression "(buf[0x34] & 1) != 0" (parenthesized_expression "(buf[0x34] & 1)" ( (binary_expression "buf[0x34] & 1" (subscript_expression "buf[0x34]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" verification",1,0xd,stdout);\n    }" { (expression_statement "fwrite(" verification",1,0xd,stdout);" (call_expression "fwrite(" verification",1,0xd,stdout)" identifier (argument_list "(" verification",1,0xd,stdout)" ( (string_literal "" verification"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((buf[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }" if (parenthesized_expression "((buf[0x34] & 2) != 0)" ( (binary_expression "(buf[0x34] & 2) != 0" (parenthesized_expression "(buf[0x34] & 2)" ( (binary_expression "buf[0x34] & 2" (subscript_expression "buf[0x34]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" modification",1,0xd,stdout);\n    }" { (expression_statement "fwrite(" modification",1,0xd,stdout);" (call_expression "fwrite(" modification",1,0xd,stdout)" identifier (argument_list "(" modification",1,0xd,stdout)" ( (string_literal "" modification"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35]);" (call_expression "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35])" identifier (argument_list "(1,"        bMaxCCIDBusySlots   %5u\n",buf[0x35])" ( number_literal , (string_literal ""        bMaxCCIDBusySlots   %5u\n"" " string_content escape_sequence ") , (subscript_expression "buf[0x35]" identifier [ number_literal ]) ))) ;) (if_statement "if (0x36 < *buf) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }" if (parenthesized_expression "(0x36 < *buf)" ( (binary_expression "0x36 < *buf" number_literal < (pointer_expression "*buf" * identifier)) )) (compound_statement "{\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      dump_bytes(buf + 0x36,*buf - 0x36);\n    }" { (expression_statement "fwrite(&DAT_0011c59d,1,0x19,stdout);" (call_expression "fwrite(&DAT_0011c59d,1,0x19,stdout)" identifier (argument_list "(&DAT_0011c59d,1,0x19,stdout)" ( (pointer_expression "&DAT_0011c59d" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "dump_bytes(buf + 0x36,*buf - 0x36);" (call_expression "dump_bytes(buf + 0x36,*buf - 0x36)" identifier (argument_list "(buf + 0x36,*buf - 0x36)" ( (binary_expression "buf + 0x36" identifier + number_literal) , (binary_expression "*buf - 0x36" (pointer_expression "*buf" * identifier) - number_literal) ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00111ec6(byte *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00111ec6(byte *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00111ec6(byte *param_1)" identifier (parameter_list "(byte *param_1)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (if_statement "if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" if (parenthesized_expression "(*param_1 < 0x36)" ( (binary_expression "*param_1 < 0x36" (pointer_expression "*param_1" * identifier) < number_literal) )) (compound_statement "{\n    puts("      Warning: Descriptor too short");\n  }" { (expression_statement "puts("      Warning: Descriptor too short");" (call_expression "puts("      Warning: Descriptor too short")" identifier (argument_list "("      Warning: Descriptor too short")" ( (string_literal ""      Warning: Descriptor too short"" " string_content ") ))) ;) }) (else_clause "else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" else (compound_statement "{\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" { (expression_statement "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);" (call_expression "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2])" identifier (argument_list "(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2])" ( number_literal , (string_literal ""      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression "*param_1" * identifier) , (subscript_expression "param_1[1]" identifier [ number_literal ]) , (subscript_expression "param_1[3]" identifier [ number_literal ]) , (subscript_expression "param_1[2]" identifier [ number_literal ]) ))) ;) (if_statement "if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" if (parenthesized_expression "((param_1[3] != 1) || (param_1[2] != 0))" ( (binary_expression "(param_1[3] != 1) || (param_1[2] != 0)" (parenthesized_expression "(param_1[3] != 1)" ( (binary_expression "param_1[3] != 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) != number_literal) )) || (parenthesized_expression "(param_1[2] != 0)" ( (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" { (expression_statement "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);" (call_expression "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" identifier (argument_list "("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" ( (string_literal ""  (Warning: Only accurate for version 1.0)"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "bVar1 = param_1[5];" (assignment_expression "bVar1 = param_1[5]" identifier = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "pcVar4 = "1.8V ";" (assignment_expression "pcVar4 = "1.8V "" identifier = (string_literal ""1.8V "" " string_content ")) ;) (if_statement "if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }" if (parenthesized_expression "((bVar1 & 4) == 0)" ( (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" ( (binary_expression "bVar1 & 4" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar4 = "";\n    }" { (expression_statement "pcVar4 = "";" (assignment_expression "pcVar4 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar6 = "3.0V ";" (assignment_expression "pcVar6 = "3.0V "" identifier = (string_literal ""3.0V "" " string_content ")) ;) (if_statement "if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }" if (parenthesized_expression "((bVar1 & 2) == 0)" ( (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" ( (binary_expression "bVar1 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar6 = "";\n    }" { (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar5 = "5.0V ";" (assignment_expression "pcVar5 = "5.0V "" identifier = (string_literal ""5.0V "" " string_content ")) ;) (if_statement "if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }" if (parenthesized_expression "((bVar1 & 1) == 0)" ( (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" ( (binary_expression "bVar1 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      pcVar5 = "";\n    }" { (expression_statement "pcVar5 = "";" (assignment_expression "pcVar5 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);" (call_expression "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4)" identifier (argument_list "(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4)" ( number_literal , (string_literal ""        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n"" " string_content escape_sequence string_content escape_sequence ") , (subscript_expression "param_1[4]" identifier [ number_literal ]) , identifier , identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 6);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 6)" identifier = (call_expression "FUN_00110555(param_1 + 6)" identifier (argument_list "(param_1 + 6)" ( (binary_expression "param_1 + 6" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwProtocols         %5u ",uVar2);" (call_expression "__printf_chk(1,"        dwProtocols         %5u ",uVar2)" identifier (argument_list "(1,"        dwProtocols         %5u ",uVar2)" ( number_literal , (string_literal ""        dwProtocols         %5u "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c46e,1,4,stdout);" (call_expression "fwrite(&DAT_0011c46e,1,4,stdout)" identifier (argument_list "(&DAT_0011c46e,1,4,stdout)" ( (pointer_expression "&DAT_0011c46e" & identifier) , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c473,1,4,stdout);" (call_expression "fwrite(&DAT_0011c473,1,4,stdout)" identifier (argument_list "(&DAT_0011c473,1,4,stdout)" ( (pointer_expression "&DAT_0011c473" & identifier) , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0xfffffffc) != 0)" ( (binary_expression "(uVar2 & 0xfffffffc) != 0" (parenthesized_expression "(uVar2 & 0xfffffffc)" ( (binary_expression "uVar2 & 0xfffffffc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" { (expression_statement "fwrite(" (Invalid values detected)",1,0x1a,stdout);" (call_expression "fwrite(" (Invalid values detected)",1,0x1a,stdout)" identifier (argument_list "(" (Invalid values detected)",1,0x1a,stdout)" ( (string_literal "" (Invalid values detected)"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 10);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 10)" identifier = (call_expression "FUN_00110555(param_1 + 10)" identifier (argument_list "(param_1 + 10)" ( (binary_expression "param_1 + 10" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar3)" identifier (argument_list "(1,"        dwDefaultClock      %5u\n",uVar3)" ( number_literal , (string_literal ""        dwDefaultClock      %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0xe);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0xe)" identifier = (call_expression "FUN_00110555(param_1 + 0xe)" identifier (argument_list "(param_1 + 0xe)" ( (binary_expression "param_1 + 0xe" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3)" identifier (argument_list "(1,"        dwMaxiumumClock     %5u\n",uVar3)" ( number_literal , (string_literal ""        dwMaxiumumClock     %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);" (call_expression "__printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12])" identifier (argument_list "(1,"        bNumClockSupported  %5u\n",param_1[0x12])" ( number_literal , (string_literal ""        bNumClockSupported  %5u\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x13);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x13)" identifier = (call_expression "FUN_00110555(param_1 + 0x13)" identifier (argument_list "(param_1 + 0x13)" ( (binary_expression "param_1 + 0x13" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);" (call_expression "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar3)" identifier (argument_list "(1,"        dwDataRate        %7u bps\n",uVar3)" ( number_literal , (string_literal ""        dwDataRate        %7u bps\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x17);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x17)" identifier = (call_expression "FUN_00110555(param_1 + 0x17)" identifier (argument_list "(param_1 + 0x17)" ( (binary_expression "param_1 + 0x17" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3)" identifier (argument_list "(1,"        dwMaxDataRate     %7u bps\n",uVar3)" ( number_literal , (string_literal ""        dwMaxDataRate     %7u bps\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);" (call_expression "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b])" identifier (argument_list "(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b])" ( number_literal , (string_literal ""        bNumDataRatesSupp.  %5u\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x1b]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x1c);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x1c)" identifier = (call_expression "FUN_00110555(param_1 + 0x1c)" identifier (argument_list "(param_1 + 0x1c)" ( (binary_expression "param_1 + 0x1c" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3)" identifier (argument_list "(1,"        dwMaxIFSD           %5u\n",uVar3)" ( number_literal , (string_literal ""        dwMaxIFSD           %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x20);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x20)" identifier = (call_expression "FUN_00110555(param_1 + 0x20)" identifier (argument_list "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2)" identifier (argument_list "(1,"        dwSyncProtocols  %08X ",uVar2)" ( number_literal , (string_literal ""        dwSyncProtocols  %08X "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" 2-wire",1,7,stdout);\n    }" { (expression_statement "fwrite(" 2-wire",1,7,stdout);" (call_expression "fwrite(" 2-wire",1,7,stdout)" identifier (argument_list "(" 2-wire",1,7,stdout)" ( (string_literal "" 2-wire"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" 3-wire",1,7,stdout);\n    }" { (expression_statement "fwrite(" 3-wire",1,7,stdout);" (call_expression "fwrite(" 3-wire",1,7,stdout)" identifier (argument_list "(" 3-wire",1,7,stdout)" ( (string_literal "" 3-wire"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" { (expression_statement "fwrite(&DAT_0011c4a3,1,4,stdout);" (call_expression "fwrite(&DAT_0011c4a3,1,4,stdout)" identifier (argument_list "(&DAT_0011c4a3,1,4,stdout)" ( (pointer_expression "&DAT_0011c4a3" & identifier) , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x24);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x24)" identifier = (call_expression "FUN_00110555(param_1 + 0x24)" identifier (argument_list "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMechanical     %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwMechanical     %08X ",uVar2)" identifier (argument_list "(1,"        dwMechanical     %08X ",uVar2)" ( number_literal , (string_literal ""        dwMechanical     %08X "" " string_content ") , identifier ))) ;) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }" if (parenthesized_expression "((uVar2 & 1) != 0)" ( (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" ( (binary_expression "uVar2 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" accept",1,7,stdout);\n    }" { (expression_statement "fwrite(" accept",1,7,stdout);" (call_expression "fwrite(" accept",1,7,stdout)" identifier (argument_list "(" accept",1,7,stdout)" ( (string_literal "" accept"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" eject",1,6,stdout);\n    }" { (expression_statement "fwrite(" eject",1,6,stdout);" (call_expression "fwrite(" eject",1,6,stdout)" identifier (argument_list "(" eject",1,6,stdout)" ( (string_literal "" eject"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" capture",1,8,stdout);\n    }" { (expression_statement "fwrite(" capture",1,8,stdout);" (call_expression "fwrite(" capture",1,8,stdout)" identifier (argument_list "(" capture",1,8,stdout)" ( (string_literal "" capture"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }" if (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" lock",1,5,stdout);\n    }" { (expression_statement "fwrite(" lock",1,5,stdout);" (call_expression "fwrite(" lock",1,5,stdout)" identifier (argument_list "(" lock",1,5,stdout)" ( (string_literal "" lock"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x28);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x28)" identifier = (call_expression "FUN_00110555(param_1 + 0x28)" identifier (argument_list "(param_1 + 0x28)" ( (binary_expression "param_1 + 0x28" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwFeatures       %08X\n",uVar2);" (call_expression "__printf_chk(1,"        dwFeatures       %08X\n",uVar2)" identifier (argument_list "(1,"        dwFeatures       %08X\n",uVar2)" ( number_literal , (string_literal ""        dwFeatures       %08X\n"" " string_content escape_sequence ") , identifier ))) ;) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" if (parenthesized_expression "((uVar2 & 2) != 0)" ( (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" ( (binary_expression "uVar2 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" { (expression_statement "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);" (call_expression "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout)" identifier (argument_list "("          Auto configuration based on ATR\n",1,0x2a,stdout)" ( (string_literal ""          Auto configuration based on ATR\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" if (parenthesized_expression "((uVar2 & 4) != 0)" ( (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" ( (binary_expression "uVar2 & 4" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" { (expression_statement "fwrite("          Auto activation on insert\n",1,0x24,stdout);" (call_expression "fwrite("          Auto activation on insert\n",1,0x24,stdout)" identifier (argument_list "("          Auto activation on insert\n",1,0x24,stdout)" ( (string_literal ""          Auto activation on insert\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" if (parenthesized_expression "((uVar2 & 8) != 0)" ( (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" ( (binary_expression "uVar2 & 8" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" { (expression_statement "fwrite("          Auto voltage selection\n",1,0x21,stdout);" (call_expression "fwrite("          Auto voltage selection\n",1,0x21,stdout)" identifier (argument_list "("          Auto voltage selection\n",1,0x21,stdout)" ( (string_literal ""          Auto voltage selection\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x10) != 0)" ( (binary_expression "(uVar2 & 0x10) != 0" (parenthesized_expression "(uVar2 & 0x10)" ( (binary_expression "uVar2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" { (expression_statement "fwrite("          Auto clock change\n",1,0x1c,stdout);" (call_expression "fwrite("          Auto clock change\n",1,0x1c,stdout)" identifier (argument_list "("          Auto clock change\n",1,0x1c,stdout)" ( (string_literal ""          Auto clock change\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x20) != 0)" ( (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" ( (binary_expression "uVar2 & 0x20" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" { (expression_statement "fwrite("          Auto baud rate change\n",1,0x20,stdout);" (call_expression "fwrite("          Auto baud rate change\n",1,0x20,stdout)" identifier (argument_list "("          Auto baud rate change\n",1,0x20,stdout)" ( (string_literal ""          Auto baud rate change\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x40) == 0)" ( (binary_expression "(uVar2 & 0x40) == 0" (parenthesized_expression "(uVar2 & 0x40)" ( (binary_expression "uVar2 & 0x40" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }" { (if_statement "if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" if (parenthesized_expression "((uVar2 & 0x80) == 0)" ( (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" ( (binary_expression "uVar2 & 0x80" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }" { (if_statement "if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" if (parenthesized_expression "((uVar2 & 0xc0) != 0)" ( (binary_expression "(uVar2 & 0xc0) != 0" (parenthesized_expression "(uVar2 & 0xc0)" ( (binary_expression "uVar2 & 0xc0" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" { (expression_statement "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);" (call_expression "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" identifier (argument_list "("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" ( (string_literal ""        WARNING: conflicting negotiation features\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) }) (else_clause "else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" else (compound_statement "{\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" { (expression_statement "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);" (call_expression "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout)" identifier (argument_list "("          Auto PPS made by CCID\n",1,0x20,stdout)" ( (string_literal ""          Auto PPS made by CCID\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" else (compound_statement "{\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" { (expression_statement "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);" (call_expression "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" identifier (argument_list "("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" ( (string_literal ""          Auto parameter negotiation made by CCID\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) (if_statement "if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x100) != 0)" ( (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" ( (binary_expression "uVar2 & 0x100" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" { (expression_statement "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);" (call_expression "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" identifier (argument_list "("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" ( (string_literal ""          CCID can set ICC in clock stop mode\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x200) != 0)" ( (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" ( (binary_expression "uVar2 & 0x200" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" { (expression_statement "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);" (call_expression "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" identifier (argument_list "("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" ( (string_literal ""          NAD value other than 0x00 accepted\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x400) != 0)" ( (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" ( (binary_expression "uVar2 & 0x400" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" { (expression_statement "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);" (call_expression "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout)" identifier (argument_list "("          Auto IFSD exchange\n",1,0x1d,stdout)" ( (string_literal ""          Auto IFSD exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" if (parenthesized_expression "((uVar2 & 0x10000) == 0)" ( (binary_expression "(uVar2 & 0x10000) == 0" (parenthesized_expression "(uVar2 & 0x10000)" ( (binary_expression "uVar2 & 0x10000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }" { (if_statement "if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" if (parenthesized_expression "((uVar2 & 0x20000) == 0)" ( (binary_expression "(uVar2 & 0x20000) == 0" (parenthesized_expression "(uVar2 & 0x20000)" ( (binary_expression "uVar2 & 0x20000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }" { (if_statement "if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" if (parenthesized_expression "((uVar2 & 0x40000) == 0)" ( (binary_expression "(uVar2 & 0x40000) == 0" (parenthesized_expression "(uVar2 & 0x40000)" ( (binary_expression "uVar2 & 0x40000" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }" { (if_statement "if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" if (parenthesized_expression "((uVar2 & 0x70000) != 0)" ( (binary_expression "(uVar2 & 0x70000) != 0" (parenthesized_expression "(uVar2 & 0x70000)" ( (binary_expression "uVar2 & 0x70000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" { (expression_statement "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);" (call_expression "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" identifier (argument_list "("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" ( (string_literal ""        WARNING: conflicting exchange levels\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) })) }) (else_clause "else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" else (compound_statement "{\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" { (expression_statement "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);" (call_expression "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout)" identifier (argument_list "("          Short and extended APDU level exchange\n",1,0x31,stdout)" ( (string_literal ""          Short and extended APDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" else (compound_statement "{\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" { (expression_statement "fwrite("          Short APDU level exchange\n",1,0x24,stdout);" (call_expression "fwrite("          Short APDU level exchange\n",1,0x24,stdout)" identifier (argument_list "("          Short APDU level exchange\n",1,0x24,stdout)" ( (string_literal ""          Short APDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) }) (else_clause "else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" else (compound_statement "{\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" { (expression_statement "fwrite("          TPDU level exchange\n",1,0x1e,stdout);" (call_expression "fwrite("          TPDU level exchange\n",1,0x1e,stdout)" identifier (argument_list "("          TPDU level exchange\n",1,0x1e,stdout)" ( (string_literal ""          TPDU level exchange\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }))) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x2c);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x2c)" identifier = (call_expression "FUN_00110555(param_1 + 0x2c)" identifier (argument_list "(param_1 + 0x2c)" ( (binary_expression "param_1 + 0x2c" identifier + number_literal) )))) ;) (expression_statement "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3)" identifier (argument_list "(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3)" ( number_literal , (string_literal ""        dwMaxCCIDMsgLen     %5u\n"" " string_content escape_sequence ") , identifier ))) ;) (expression_statement "__printf_chk(1,"        bClassGetResponse    ");" (call_expression "__printf_chk(1,"        bClassGetResponse    ")" identifier (argument_list "(1,"        bClassGetResponse    ")" ( number_literal , (string_literal ""        bClassGetResponse    "" " string_content ") ))) ;) (if_statement "if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" if (parenthesized_expression "(param_1[0x30] == 0xff)" ( (binary_expression "param_1[0x30] == 0xff" (subscript_expression "param_1[0x30]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" { (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" identifier (argument_list "("echo\n",1,5,stdout)" ( (string_literal ""echo\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" else (compound_statement "{\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" { (expression_statement "__printf_chk(1,"  %02X\n",param_1[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",param_1[0x30])" identifier (argument_list "(1,"  %02X\n",param_1[0x30])" ( number_literal , (string_literal ""  %02X\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x30]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        bClassEnvelope       ");" (call_expression "__printf_chk(1,"        bClassEnvelope       ")" identifier (argument_list "(1,"        bClassEnvelope       ")" ( number_literal , (string_literal ""        bClassEnvelope       "" " string_content ") ))) ;) (if_statement "if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" if (parenthesized_expression "(param_1[0x31] == 0xff)" ( (binary_expression "param_1[0x31] == 0xff" (subscript_expression "param_1[0x31]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" { (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" identifier (argument_list "("echo\n",1,5,stdout)" ( (string_literal ""echo\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" else (compound_statement "{\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" { (expression_statement "__printf_chk(1,"  %02X\n",param_1[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",param_1[0x30])" identifier (argument_list "(1,"  %02X\n",param_1[0x30])" ( number_literal , (string_literal ""  %02X\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x30]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        wlcdLayout           ");" (call_expression "__printf_chk(1,"        wlcdLayout           ")" identifier (argument_list "(1,"        wlcdLayout           ")" ( number_literal , (string_literal ""        wlcdLayout           "" " string_content ") ))) ;) (if_statement "if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" if (parenthesized_expression "((param_1[0x32] == 0) && (param_1[0x33] == 0))" ( (binary_expression "(param_1[0x32] == 0) && (param_1[0x33] == 0)" (parenthesized_expression "(param_1[0x32] == 0)" ( (binary_expression "param_1[0x32] == 0" (subscript_expression "param_1[0x32]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(param_1[0x33] == 0)" ( (binary_expression "param_1[0x33] == 0" (subscript_expression "param_1[0x33]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      fwrite("none\n",1,5,stdout);\n    }" { (expression_statement "fwrite("none\n",1,5,stdout);" (call_expression "fwrite("none\n",1,5,stdout)" identifier (argument_list "("none\n",1,5,stdout)" ( (string_literal ""none\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) }) (else_clause "else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" else (compound_statement "{\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" { (expression_statement "__printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);" (call_expression "__printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33])" identifier (argument_list "(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33])" ( number_literal , (string_literal ""%u cols %u lines\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x32]" identifier [ number_literal ]) , (subscript_expression "param_1[0x33]" identifier [ number_literal ]) ))) ;) }))) (expression_statement "__printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);" (call_expression "__printf_chk(1,"        bPINSupport         %5u ",param_1[0x34])" identifier (argument_list "(1,"        bPINSupport         %5u ",param_1[0x34])" ( number_literal , (string_literal ""        bPINSupport         %5u "" " string_content ") , (subscript_expression "param_1[0x34]" identifier [ number_literal ]) ))) ;) (if_statement "if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }" if (parenthesized_expression "((param_1[0x34] & 1) != 0)" ( (binary_expression "(param_1[0x34] & 1) != 0" (parenthesized_expression "(param_1[0x34] & 1)" ( (binary_expression "param_1[0x34] & 1" (subscript_expression "param_1[0x34]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" verification",1,0xd,stdout);\n    }" { (expression_statement "fwrite(" verification",1,0xd,stdout);" (call_expression "fwrite(" verification",1,0xd,stdout)" identifier (argument_list "(" verification",1,0xd,stdout)" ( (string_literal "" verification"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (if_statement "if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }" if (parenthesized_expression "((param_1[0x34] & 2) != 0)" ( (binary_expression "(param_1[0x34] & 2) != 0" (parenthesized_expression "(param_1[0x34] & 2)" ( (binary_expression "param_1[0x34] & 2" (subscript_expression "param_1[0x34]" identifier [ number_literal ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      fwrite(" modification",1,0xd,stdout);\n    }" { (expression_statement "fwrite(" modification",1,0xd,stdout);" (call_expression "fwrite(" modification",1,0xd,stdout)" identifier (argument_list "(" modification",1,0xd,stdout)" ( (string_literal "" modification"" " string_content ") , number_literal , number_literal , identifier ))) ;) })) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) (expression_statement "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);" (call_expression "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35])" identifier (argument_list "(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35])" ( number_literal , (string_literal ""        bMaxCCIDBusySlots   %5u\n"" " string_content escape_sequence ") , (subscript_expression "param_1[0x35]" identifier [ number_literal ]) ))) ;) (if_statement "if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }" if (parenthesized_expression "(0x36 < *param_1)" ( (binary_expression "0x36 < *param_1" number_literal < (pointer_expression "*param_1" * identifier)) )) (compound_statement "{\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }" { (expression_statement "fwrite(&DAT_0011c59d,1,0x19,stdout);" (call_expression "fwrite(&DAT_0011c59d,1,0x19,stdout)" identifier (argument_list "(&DAT_0011c59d,1,0x19,stdout)" ( (pointer_expression "&DAT_0011c59d" & identifier) , number_literal , number_literal , identifier ))) ;) (expression_statement "FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);" (call_expression "FUN_001105ba(param_1 + 0x36,*param_1 - 0x36)" identifier (argument_list "(param_1 + 0x36,*param_1 - 0x36)" ( (binary_expression "param_1 + 0x36" identifier + number_literal) , (binary_expression "*param_1 - 0x36" (pointer_expression "*param_1" * identifier) - number_literal) ))) ;) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , LIT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , LIT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression (pointer_expression * IDENT) - LIT) ))) ;) })) }))) (return_statement return ;) })))
(function_definition "void FUN_00111ec6(byte *param_1)\n\n{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00111ec6(byte *param_1)" (identifier "FUN_00111ec6") (parameter_list "(byte *param_1)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  char *pcVar4;\n  char *pcVar5;\n  char *pcVar6;\n  \n  if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "char *pcVar5;" (primitive_type "char") (pointer_declarator "*pcVar5" (* "*") (identifier "pcVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (if_statement "if (*param_1 < 0x36) {\n    puts("      Warning: Descriptor too short");\n  }\n  else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" (if "if") (parenthesized_expression "(*param_1 < 0x36)" (( "(") (binary_expression "*param_1 < 0x36" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (number_literal "0x36")) () ")")) (compound_statement "{\n    puts("      Warning: Descriptor too short");\n  }" ({ "{") (expression_statement "puts("      Warning: Descriptor too short");" (call_expression "puts("      Warning: Descriptor too short")" (identifier "puts") (argument_list "("      Warning: Descriptor too short")" (( "(") (string_literal ""      Warning: Descriptor too short"" (" """) (string_content "      Warning: Descriptor too short") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" (else "else") (compound_statement "{\n    __printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);\n    if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }\n    putc(10,stdout);\n    bVar1 = param_1[5];\n    pcVar4 = "1.8V ";\n    if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }\n    pcVar6 = "3.0V ";\n    if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }\n    pcVar5 = "5.0V ";\n    if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }\n    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);\n    uVar2 = FUN_00110555(param_1 + 6);\n    __printf_chk(1,"        dwProtocols         %5u ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }\n    if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }\n    putc(10,stdout);\n    uVar3 = FUN_00110555(param_1 + 10);\n    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0xe);\n    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);\n    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);\n    uVar3 = FUN_00110555(param_1 + 0x13);\n    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);\n    uVar3 = FUN_00110555(param_1 + 0x17);\n    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);\n    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);\n    uVar3 = FUN_00110555(param_1 + 0x1c);\n    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);\n    uVar2 = FUN_00110555(param_1 + 0x20);\n    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x24);\n    __printf_chk(1,"        dwMechanical     %08X ",uVar2);\n    if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }\n    if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }\n    putc(10,stdout);\n    uVar2 = FUN_00110555(param_1 + 0x28);\n    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);\n    if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }\n    if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }\n    if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }\n    if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }\n    if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }\n    if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }\n    if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }\n    if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }\n    if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }\n    if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }\n    uVar3 = FUN_00110555(param_1 + 0x2c);\n    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);\n    __printf_chk(1,"        bClassGetResponse    ");\n    if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        bClassEnvelope       ");\n    if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }\n    __printf_chk(1,"        wlcdLayout           ");\n    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }\n    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);\n    if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }\n    if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }\n    putc(10,stdout);\n    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);\n    if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }\n  }" ({ "{") (expression_statement "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2]);" (call_expression "__printf_chk(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2])" (identifier "__printf_chk") (argument_list "(1,\n                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"\n                 ,*param_1,param_1[1],param_1[3],param_1[2])" (( "(") (number_literal "1") (, ",") (string_literal ""      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"" (" """) (string_content "      ChipCard Interface Descriptor:") (escape_sequence "\n") (string_content "        bLength             %5u") (escape_sequence "\n") (string_content "        bDescriptorType     %5u") (escape_sequence "\n") (string_content "        bcdCCID             %2x.%02x") (" """)) (, ",") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (, ",") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (if_statement "if ((param_1[3] != 1) || (param_1[2] != 0)) {\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" (if "if") (parenthesized_expression "((param_1[3] != 1) || (param_1[2] != 0))" (( "(") (binary_expression "(param_1[3] != 1) || (param_1[2] != 0)" (parenthesized_expression "(param_1[3] != 1)" (( "(") (binary_expression "param_1[3] != 1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(param_1[2] != 0)" (( "(") (binary_expression "param_1[2] != 0" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);\n    }" ({ "{") (expression_statement "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);" (call_expression "fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" (identifier "fwrite") (argument_list "("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout)" (( "(") (string_literal ""  (Warning: Only accurate for version 1.0)"" (" """) (string_content "  (Warning: Only accurate for version 1.0)") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x2a") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "bVar1 = param_1[5];" (assignment_expression "bVar1 = param_1[5]" (identifier "bVar1") (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "pcVar4 = "1.8V ";" (assignment_expression "pcVar4 = "1.8V "" (identifier "pcVar4") (= "=") (string_literal ""1.8V "" (" """) (string_content "1.8V ") (" """))) (; ";")) (if_statement "if ((bVar1 & 4) == 0) {\n      pcVar4 = "";\n    }" (if "if") (parenthesized_expression "((bVar1 & 4) == 0)" (( "(") (binary_expression "(bVar1 & 4) == 0" (parenthesized_expression "(bVar1 & 4)" (( "(") (binary_expression "bVar1 & 4" (identifier "bVar1") (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar4 = "";\n    }" ({ "{") (expression_statement "pcVar4 = "";" (assignment_expression "pcVar4 = """ (identifier "pcVar4") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "pcVar6 = "3.0V ";" (assignment_expression "pcVar6 = "3.0V "" (identifier "pcVar6") (= "=") (string_literal ""3.0V "" (" """) (string_content "3.0V ") (" """))) (; ";")) (if_statement "if ((bVar1 & 2) == 0) {\n      pcVar6 = "";\n    }" (if "if") (parenthesized_expression "((bVar1 & 2) == 0)" (( "(") (binary_expression "(bVar1 & 2) == 0" (parenthesized_expression "(bVar1 & 2)" (( "(") (binary_expression "bVar1 & 2" (identifier "bVar1") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar6 = "";\n    }" ({ "{") (expression_statement "pcVar6 = "";" (assignment_expression "pcVar6 = """ (identifier "pcVar6") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "pcVar5 = "5.0V ";" (assignment_expression "pcVar5 = "5.0V "" (identifier "pcVar5") (= "=") (string_literal ""5.0V "" (" """) (string_content "5.0V ") (" """))) (; ";")) (if_statement "if ((bVar1 & 1) == 0) {\n      pcVar5 = "";\n    }" (if "if") (parenthesized_expression "((bVar1 & 1) == 0)" (( "(") (binary_expression "(bVar1 & 1) == 0" (parenthesized_expression "(bVar1 & 1)" (( "(") (binary_expression "bVar1 & 1" (identifier "bVar1") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar5 = "";\n    }" ({ "{") (expression_statement "pcVar5 = "";" (assignment_expression "pcVar5 = """ (identifier "pcVar5") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);" (call_expression "__printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4)" (identifier "__printf_chk") (argument_list "(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",\n                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4)" (( "(") (number_literal "1") (, ",") (string_literal ""        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n"" (" """) (string_content "        nMaxSlotIndex       %5u") (escape_sequence "\n") (string_content "        bVoltageSupport     %5u  %s%s%s") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (, ",") (identifier "bVar1") (, ",") (identifier "pcVar5") (, ",") (identifier "pcVar6") (, ",") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "uVar2 = FUN_00110555(param_1 + 6);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 6)" (identifier "uVar2") (= "=") (call_expression "FUN_00110555(param_1 + 6)" (identifier "FUN_00110555") (argument_list "(param_1 + 6)" (( "(") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwProtocols         %5u ",uVar2);" (call_expression "__printf_chk(1,"        dwProtocols         %5u ",uVar2)" (identifier "__printf_chk") (argument_list "(1,"        dwProtocols         %5u ",uVar2)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwProtocols         %5u "" (" """) (string_content "        dwProtocols         %5u ") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 1) != 0)" (( "(") (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(&DAT_0011c46e,1,4,stdout);\n    }" ({ "{") (expression_statement "fwrite(&DAT_0011c46e,1,4,stdout);" (call_expression "fwrite(&DAT_0011c46e,1,4,stdout)" (identifier "fwrite") (argument_list "(&DAT_0011c46e,1,4,stdout)" (( "(") (pointer_expression "&DAT_0011c46e" (& "&") (identifier "DAT_0011c46e")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(&DAT_0011c473,1,4,stdout);\n    }" ({ "{") (expression_statement "fwrite(&DAT_0011c473,1,4,stdout);" (call_expression "fwrite(&DAT_0011c473,1,4,stdout)" (identifier "fwrite") (argument_list "(&DAT_0011c473,1,4,stdout)" (( "(") (pointer_expression "&DAT_0011c473" (& "&") (identifier "DAT_0011c473")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0xfffffffc) != 0) {\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0xfffffffc) != 0)" (( "(") (binary_expression "(uVar2 & 0xfffffffc) != 0" (parenthesized_expression "(uVar2 & 0xfffffffc)" (( "(") (binary_expression "uVar2 & 0xfffffffc" (identifier "uVar2") (& "&") (number_literal "0xfffffffc")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" (Invalid values detected)",1,0x1a,stdout);\n    }" ({ "{") (expression_statement "fwrite(" (Invalid values detected)",1,0x1a,stdout);" (call_expression "fwrite(" (Invalid values detected)",1,0x1a,stdout)" (identifier "fwrite") (argument_list "(" (Invalid values detected)",1,0x1a,stdout)" (( "(") (string_literal "" (Invalid values detected)"" (" """) (string_content " (Invalid values detected)") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x1a") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "uVar3 = FUN_00110555(param_1 + 10);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 10)" (identifier "uVar3") (= "=") (call_expression "FUN_00110555(param_1 + 10)" (identifier "FUN_00110555") (argument_list "(param_1 + 10)" (( "(") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwDefaultClock      %5u\n",uVar3)" (identifier "__printf_chk") (argument_list "(1,"        dwDefaultClock      %5u\n",uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwDefaultClock      %5u\n"" (" """) (string_content "        dwDefaultClock      %5u") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "uVar3 = FUN_00110555(param_1 + 0xe);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0xe)" (identifier "uVar3") (= "=") (call_expression "FUN_00110555(param_1 + 0xe)" (identifier "FUN_00110555") (argument_list "(param_1 + 0xe)" (( "(") (binary_expression "param_1 + 0xe" (identifier "param_1") (+ "+") (number_literal "0xe")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3)" (identifier "__printf_chk") (argument_list "(1,"        dwMaxiumumClock     %5u\n",uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwMaxiumumClock     %5u\n"" (" """) (string_content "        dwMaxiumumClock     %5u") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);" (call_expression "__printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12])" (identifier "__printf_chk") (argument_list "(1,"        bNumClockSupported  %5u\n",param_1[0x12])" (( "(") (number_literal "1") (, ",") (string_literal ""        bNumClockSupported  %5u\n"" (" """) (string_content "        bNumClockSupported  %5u") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]")) () ")"))) (; ";")) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x13);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x13)" (identifier "uVar3") (= "=") (call_expression "FUN_00110555(param_1 + 0x13)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x13)" (( "(") (binary_expression "param_1 + 0x13" (identifier "param_1") (+ "+") (number_literal "0x13")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);" (call_expression "__printf_chk(1,"        dwDataRate        %7u bps\n",uVar3)" (identifier "__printf_chk") (argument_list "(1,"        dwDataRate        %7u bps\n",uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwDataRate        %7u bps\n"" (" """) (string_content "        dwDataRate        %7u bps") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x17);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x17)" (identifier "uVar3") (= "=") (call_expression "FUN_00110555(param_1 + 0x17)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x17)" (( "(") (binary_expression "param_1 + 0x17" (identifier "param_1") (+ "+") (number_literal "0x17")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3)" (identifier "__printf_chk") (argument_list "(1,"        dwMaxDataRate     %7u bps\n",uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwMaxDataRate     %7u bps\n"" (" """) (string_content "        dwMaxDataRate     %7u bps") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);" (call_expression "__printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b])" (identifier "__printf_chk") (argument_list "(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b])" (( "(") (number_literal "1") (, ",") (string_literal ""        bNumDataRatesSupp.  %5u\n"" (" """) (string_content "        bNumDataRatesSupp.  %5u") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[0x1b]" (identifier "param_1") ([ "[") (number_literal "0x1b") (] "]")) () ")"))) (; ";")) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x1c);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x1c)" (identifier "uVar3") (= "=") (call_expression "FUN_00110555(param_1 + 0x1c)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x1c)" (( "(") (binary_expression "param_1 + 0x1c" (identifier "param_1") (+ "+") (number_literal "0x1c")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3)" (identifier "__printf_chk") (argument_list "(1,"        dwMaxIFSD           %5u\n",uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwMaxIFSD           %5u\n"" (" """) (string_content "        dwMaxIFSD           %5u") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x20);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x20)" (identifier "uVar2") (= "=") (call_expression "FUN_00110555(param_1 + 0x20)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwSyncProtocols  %08X ",uVar2)" (identifier "__printf_chk") (argument_list "(1,"        dwSyncProtocols  %08X ",uVar2)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwSyncProtocols  %08X "" (" """) (string_content "        dwSyncProtocols  %08X ") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" 2-wire",1,7,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 1) != 0)" (( "(") (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" 2-wire",1,7,stdout);\n    }" ({ "{") (expression_statement "fwrite(" 2-wire",1,7,stdout);" (call_expression "fwrite(" 2-wire",1,7,stdout)" (identifier "fwrite") (argument_list "(" 2-wire",1,7,stdout)" (( "(") (string_literal "" 2-wire"" (" """) (string_content " 2-wire") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" 3-wire",1,7,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" 3-wire",1,7,stdout);\n    }" ({ "{") (expression_statement "fwrite(" 3-wire",1,7,stdout);" (call_expression "fwrite(" 3-wire",1,7,stdout)" (identifier "fwrite") (argument_list "(" 3-wire",1,7,stdout)" (( "(") (string_literal "" 3-wire"" (" """) (string_content " 3-wire") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(&DAT_0011c4a3,1,4,stdout);\n    }" ({ "{") (expression_statement "fwrite(&DAT_0011c4a3,1,4,stdout);" (call_expression "fwrite(&DAT_0011c4a3,1,4,stdout)" (identifier "fwrite") (argument_list "(&DAT_0011c4a3,1,4,stdout)" (( "(") (pointer_expression "&DAT_0011c4a3" (& "&") (identifier "DAT_0011c4a3")) (, ",") (number_literal "1") (, ",") (number_literal "4") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x24);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x24)" (identifier "uVar2") (= "=") (call_expression "FUN_00110555(param_1 + 0x24)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwMechanical     %08X ",uVar2);" (call_expression "__printf_chk(1,"        dwMechanical     %08X ",uVar2)" (identifier "__printf_chk") (argument_list "(1,"        dwMechanical     %08X ",uVar2)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwMechanical     %08X "" (" """) (string_content "        dwMechanical     %08X ") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if ((uVar2 & 1) != 0) {\n      fwrite(" accept",1,7,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 1) != 0)" (( "(") (binary_expression "(uVar2 & 1) != 0" (parenthesized_expression "(uVar2 & 1)" (( "(") (binary_expression "uVar2 & 1" (identifier "uVar2") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" accept",1,7,stdout);\n    }" ({ "{") (expression_statement "fwrite(" accept",1,7,stdout);" (call_expression "fwrite(" accept",1,7,stdout)" (identifier "fwrite") (argument_list "(" accept",1,7,stdout)" (( "(") (string_literal "" accept"" (" """) (string_content " accept") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "7") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite(" eject",1,6,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" eject",1,6,stdout);\n    }" ({ "{") (expression_statement "fwrite(" eject",1,6,stdout);" (call_expression "fwrite(" eject",1,6,stdout)" (identifier "fwrite") (argument_list "(" eject",1,6,stdout)" (( "(") (string_literal "" eject"" (" """) (string_content " eject") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "6") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite(" capture",1,8,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" capture",1,8,stdout);\n    }" ({ "{") (expression_statement "fwrite(" capture",1,8,stdout);" (call_expression "fwrite(" capture",1,8,stdout)" (identifier "fwrite") (argument_list "(" capture",1,8,stdout)" (( "(") (string_literal "" capture"" (" """) (string_content " capture") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "8") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite(" lock",1,5,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 8) != 0)" (( "(") (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" (( "(") (binary_expression "uVar2 & 8" (identifier "uVar2") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" lock",1,5,stdout);\n    }" ({ "{") (expression_statement "fwrite(" lock",1,5,stdout);" (call_expression "fwrite(" lock",1,5,stdout)" (identifier "fwrite") (argument_list "(" lock",1,5,stdout)" (( "(") (string_literal "" lock"" (" """) (string_content " lock") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "uVar2 = FUN_00110555(param_1 + 0x28);" (assignment_expression "uVar2 = FUN_00110555(param_1 + 0x28)" (identifier "uVar2") (= "=") (call_expression "FUN_00110555(param_1 + 0x28)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x28)" (( "(") (binary_expression "param_1 + 0x28" (identifier "param_1") (+ "+") (number_literal "0x28")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwFeatures       %08X\n",uVar2);" (call_expression "__printf_chk(1,"        dwFeatures       %08X\n",uVar2)" (identifier "__printf_chk") (argument_list "(1,"        dwFeatures       %08X\n",uVar2)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwFeatures       %08X\n"" (" """) (string_content "        dwFeatures       %08X") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") () ")"))) (; ";")) (if_statement "if ((uVar2 & 2) != 0) {\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 2) != 0)" (( "(") (binary_expression "(uVar2 & 2) != 0" (parenthesized_expression "(uVar2 & 2)" (( "(") (binary_expression "uVar2 & 2" (identifier "uVar2") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);" (call_expression "fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout)" (identifier "fwrite") (argument_list "("          Auto configuration based on ATR\n",1,0x2a,stdout)" (( "(") (string_literal ""          Auto configuration based on ATR\n"" (" """) (string_content "          Auto configuration based on ATR") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x2a") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 4) != 0) {\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 4) != 0)" (( "(") (binary_expression "(uVar2 & 4) != 0" (parenthesized_expression "(uVar2 & 4)" (( "(") (binary_expression "uVar2 & 4" (identifier "uVar2") (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          Auto activation on insert\n",1,0x24,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto activation on insert\n",1,0x24,stdout);" (call_expression "fwrite("          Auto activation on insert\n",1,0x24,stdout)" (identifier "fwrite") (argument_list "("          Auto activation on insert\n",1,0x24,stdout)" (( "(") (string_literal ""          Auto activation on insert\n"" (" """) (string_content "          Auto activation on insert") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x24") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 8) != 0) {\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 8) != 0)" (( "(") (binary_expression "(uVar2 & 8) != 0" (parenthesized_expression "(uVar2 & 8)" (( "(") (binary_expression "uVar2 & 8" (identifier "uVar2") (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          Auto voltage selection\n",1,0x21,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto voltage selection\n",1,0x21,stdout);" (call_expression "fwrite("          Auto voltage selection\n",1,0x21,stdout)" (identifier "fwrite") (argument_list "("          Auto voltage selection\n",1,0x21,stdout)" (( "(") (string_literal ""          Auto voltage selection\n"" (" """) (string_content "          Auto voltage selection") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x21") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0x10) != 0) {\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x10) != 0)" (( "(") (binary_expression "(uVar2 & 0x10) != 0" (parenthesized_expression "(uVar2 & 0x10)" (( "(") (binary_expression "uVar2 & 0x10" (identifier "uVar2") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          Auto clock change\n",1,0x1c,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto clock change\n",1,0x1c,stdout);" (call_expression "fwrite("          Auto clock change\n",1,0x1c,stdout)" (identifier "fwrite") (argument_list "("          Auto clock change\n",1,0x1c,stdout)" (( "(") (string_literal ""          Auto clock change\n"" (" """) (string_content "          Auto clock change") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x1c") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0x20) != 0) {\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x20) != 0)" (( "(") (binary_expression "(uVar2 & 0x20) != 0" (parenthesized_expression "(uVar2 & 0x20)" (( "(") (binary_expression "uVar2 & 0x20" (identifier "uVar2") (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          Auto baud rate change\n",1,0x20,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto baud rate change\n",1,0x20,stdout);" (call_expression "fwrite("          Auto baud rate change\n",1,0x20,stdout)" (identifier "fwrite") (argument_list "("          Auto baud rate change\n",1,0x20,stdout)" (( "(") (string_literal ""          Auto baud rate change\n"" (" """) (string_content "          Auto baud rate change") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x20") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0x40) == 0) {\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }\n    else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x40) == 0)" (( "(") (binary_expression "(uVar2 & 0x40) == 0" (parenthesized_expression "(uVar2 & 0x40)" (( "(") (binary_expression "uVar2 & 0x40" (identifier "uVar2") (& "&") (number_literal "0x40")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }\n    }" ({ "{") (if_statement "if ((uVar2 & 0x80) == 0) {\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }\n      else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" (if "if") (parenthesized_expression "((uVar2 & 0x80) == 0)" (( "(") (binary_expression "(uVar2 & 0x80) == 0" (parenthesized_expression "(uVar2 & 0x80)" (( "(") (binary_expression "uVar2 & 0x80" (identifier "uVar2") (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }\n      }" ({ "{") (if_statement "if ((uVar2 & 0xc0) != 0) {\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" (if "if") (parenthesized_expression "((uVar2 & 0xc0) != 0)" (( "(") (binary_expression "(uVar2 & 0xc0) != 0" (parenthesized_expression "(uVar2 & 0xc0)" (( "(") (binary_expression "uVar2 & 0xc0" (identifier "uVar2") (& "&") (number_literal "0xc0")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);\n        }" ({ "{") (expression_statement "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);" (call_expression "fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" (identifier "fwrite") (argument_list "("        WARNING: conflicting negotiation features\n",1,0x32,stdout)" (( "(") (string_literal ""        WARNING: conflicting negotiation features\n"" (" """) (string_content "        WARNING: conflicting negotiation features") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x32") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" (else "else") (compound_statement "{\n        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);\n      }" ({ "{") (expression_statement "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);" (call_expression "fwrite("          Auto PPS made by CCID\n",1,0x20,stdout)" (identifier "fwrite") (argument_list "("          Auto PPS made by CCID\n",1,0x20,stdout)" (( "(") (string_literal ""          Auto PPS made by CCID\n"" (" """) (string_content "          Auto PPS made by CCID") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x20") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" (else "else") (compound_statement "{\n      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);" (call_expression "fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" (identifier "fwrite") (argument_list "("          Auto parameter negotiation made by CCID\n",1,0x32,stdout)" (( "(") (string_literal ""          Auto parameter negotiation made by CCID\n"" (" """) (string_content "          Auto parameter negotiation made by CCID") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x32") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")))) (if_statement "if ((uVar2 & 0x100) != 0) {\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x100) != 0)" (( "(") (binary_expression "(uVar2 & 0x100) != 0" (parenthesized_expression "(uVar2 & 0x100)" (( "(") (binary_expression "uVar2 & 0x100" (identifier "uVar2") (& "&") (number_literal "0x100")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);\n    }" ({ "{") (expression_statement "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);" (call_expression "fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" (identifier "fwrite") (argument_list "("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout)" (( "(") (string_literal ""          CCID can set ICC in clock stop mode\n"" (" """) (string_content "          CCID can set ICC in clock stop mode") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x2e") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0x200) != 0) {\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x200) != 0)" (( "(") (binary_expression "(uVar2 & 0x200) != 0" (parenthesized_expression "(uVar2 & 0x200)" (( "(") (binary_expression "uVar2 & 0x200" (identifier "uVar2") (& "&") (number_literal "0x200")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);\n    }" ({ "{") (expression_statement "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);" (call_expression "fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" (identifier "fwrite") (argument_list "("          NAD value other than 0x00 accepted\n",1,0x2d,stdout)" (( "(") (string_literal ""          NAD value other than 0x00 accepted\n"" (" """) (string_content "          NAD value other than 0x00 accepted") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x2d") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0x400) != 0) {\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x400) != 0)" (( "(") (binary_expression "(uVar2 & 0x400) != 0" (parenthesized_expression "(uVar2 & 0x400)" (( "(") (binary_expression "uVar2 & 0x400" (identifier "uVar2") (& "&") (number_literal "0x400")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);\n    }" ({ "{") (expression_statement "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);" (call_expression "fwrite("          Auto IFSD exchange\n",1,0x1d,stdout)" (identifier "fwrite") (argument_list "("          Auto IFSD exchange\n",1,0x1d,stdout)" (( "(") (string_literal ""          Auto IFSD exchange\n"" (" """) (string_content "          Auto IFSD exchange") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x1d") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((uVar2 & 0x10000) == 0) {\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }\n    else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" (if "if") (parenthesized_expression "((uVar2 & 0x10000) == 0)" (( "(") (binary_expression "(uVar2 & 0x10000) == 0" (parenthesized_expression "(uVar2 & 0x10000)" (( "(") (binary_expression "uVar2 & 0x10000" (identifier "uVar2") (& "&") (number_literal "0x10000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }\n    }" ({ "{") (if_statement "if ((uVar2 & 0x20000) == 0) {\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }\n      else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" (if "if") (parenthesized_expression "((uVar2 & 0x20000) == 0)" (( "(") (binary_expression "(uVar2 & 0x20000) == 0" (parenthesized_expression "(uVar2 & 0x20000)" (( "(") (binary_expression "uVar2 & 0x20000" (identifier "uVar2") (& "&") (number_literal "0x20000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }\n      }" ({ "{") (if_statement "if ((uVar2 & 0x40000) == 0) {\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }\n        else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" (if "if") (parenthesized_expression "((uVar2 & 0x40000) == 0)" (( "(") (binary_expression "(uVar2 & 0x40000) == 0" (parenthesized_expression "(uVar2 & 0x40000)" (( "(") (binary_expression "uVar2 & 0x40000" (identifier "uVar2") (& "&") (number_literal "0x40000")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }\n        }" ({ "{") (if_statement "if ((uVar2 & 0x70000) != 0) {\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" (if "if") (parenthesized_expression "((uVar2 & 0x70000) != 0)" (( "(") (binary_expression "(uVar2 & 0x70000) != 0" (parenthesized_expression "(uVar2 & 0x70000)" (( "(") (binary_expression "uVar2 & 0x70000" (identifier "uVar2") (& "&") (number_literal "0x70000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);\n          }" ({ "{") (expression_statement "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);" (call_expression "fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" (identifier "fwrite") (argument_list "("        WARNING: conflicting exchange levels\n",1,0x2d,stdout)" (( "(") (string_literal ""        WARNING: conflicting exchange levels\n"" (" """) (string_content "        WARNING: conflicting exchange levels") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x2d") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" (else "else") (compound_statement "{\n          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);\n        }" ({ "{") (expression_statement "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);" (call_expression "fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout)" (identifier "fwrite") (argument_list "("          Short and extended APDU level exchange\n",1,0x31,stdout)" (( "(") (string_literal ""          Short and extended APDU level exchange\n"" (" """) (string_content "          Short and extended APDU level exchange") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x31") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" (else "else") (compound_statement "{\n        fwrite("          Short APDU level exchange\n",1,0x24,stdout);\n      }" ({ "{") (expression_statement "fwrite("          Short APDU level exchange\n",1,0x24,stdout);" (call_expression "fwrite("          Short APDU level exchange\n",1,0x24,stdout)" (identifier "fwrite") (argument_list "("          Short APDU level exchange\n",1,0x24,stdout)" (( "(") (string_literal ""          Short APDU level exchange\n"" (" """) (string_content "          Short APDU level exchange") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x24") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" (else "else") (compound_statement "{\n      fwrite("          TPDU level exchange\n",1,0x1e,stdout);\n    }" ({ "{") (expression_statement "fwrite("          TPDU level exchange\n",1,0x1e,stdout);" (call_expression "fwrite("          TPDU level exchange\n",1,0x1e,stdout)" (identifier "fwrite") (argument_list "("          TPDU level exchange\n",1,0x1e,stdout)" (( "(") (string_literal ""          TPDU level exchange\n"" (" """) (string_content "          TPDU level exchange") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x1e") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar3 = FUN_00110555(param_1 + 0x2c);" (assignment_expression "uVar3 = FUN_00110555(param_1 + 0x2c)" (identifier "uVar3") (= "=") (call_expression "FUN_00110555(param_1 + 0x2c)" (identifier "FUN_00110555") (argument_list "(param_1 + 0x2c)" (( "(") (binary_expression "param_1 + 0x2c" (identifier "param_1") (+ "+") (number_literal "0x2c")) () ")")))) (; ";")) (expression_statement "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);" (call_expression "__printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3)" (identifier "__printf_chk") (argument_list "(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""        dwMaxCCIDMsgLen     %5u\n"" (" """) (string_content "        dwMaxCCIDMsgLen     %5u") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"        bClassGetResponse    ");" (call_expression "__printf_chk(1,"        bClassGetResponse    ")" (identifier "__printf_chk") (argument_list "(1,"        bClassGetResponse    ")" (( "(") (number_literal "1") (, ",") (string_literal ""        bClassGetResponse    "" (" """) (string_content "        bClassGetResponse    ") (" """)) () ")"))) (; ";")) (if_statement "if (param_1[0x30] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" (if "if") (parenthesized_expression "(param_1[0x30] == 0xff)" (( "(") (binary_expression "param_1[0x30] == 0xff" (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]")) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" ({ "{") (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" (identifier "fwrite") (argument_list "("echo\n",1,5,stdout)" (( "(") (string_literal ""echo\n"" (" """) (string_content "echo") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" (else "else") (compound_statement "{\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" ({ "{") (expression_statement "__printf_chk(1,"  %02X\n",param_1[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",param_1[0x30])" (identifier "__printf_chk") (argument_list "(1,"  %02X\n",param_1[0x30])" (( "(") (number_literal "1") (, ",") (string_literal ""  %02X\n"" (" """) (string_content "  %02X") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]")) () ")"))) (; ";")) (} "}")))) (expression_statement "__printf_chk(1,"        bClassEnvelope       ");" (call_expression "__printf_chk(1,"        bClassEnvelope       ")" (identifier "__printf_chk") (argument_list "(1,"        bClassEnvelope       ")" (( "(") (number_literal "1") (, ",") (string_literal ""        bClassEnvelope       "" (" """) (string_content "        bClassEnvelope       ") (" """)) () ")"))) (; ";")) (if_statement "if (param_1[0x31] == 0xff) {\n      fwrite("echo\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" (if "if") (parenthesized_expression "(param_1[0x31] == 0xff)" (( "(") (binary_expression "param_1[0x31] == 0xff" (subscript_expression "param_1[0x31]" (identifier "param_1") ([ "[") (number_literal "0x31") (] "]")) (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n      fwrite("echo\n",1,5,stdout);\n    }" ({ "{") (expression_statement "fwrite("echo\n",1,5,stdout);" (call_expression "fwrite("echo\n",1,5,stdout)" (identifier "fwrite") (argument_list "("echo\n",1,5,stdout)" (( "(") (string_literal ""echo\n"" (" """) (string_content "echo") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" (else "else") (compound_statement "{\n      __printf_chk(1,"  %02X\n",param_1[0x30]);\n    }" ({ "{") (expression_statement "__printf_chk(1,"  %02X\n",param_1[0x30]);" (call_expression "__printf_chk(1,"  %02X\n",param_1[0x30])" (identifier "__printf_chk") (argument_list "(1,"  %02X\n",param_1[0x30])" (( "(") (number_literal "1") (, ",") (string_literal ""  %02X\n"" (" """) (string_content "  %02X") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]")) () ")"))) (; ";")) (} "}")))) (expression_statement "__printf_chk(1,"        wlcdLayout           ");" (call_expression "__printf_chk(1,"        wlcdLayout           ")" (identifier "__printf_chk") (argument_list "(1,"        wlcdLayout           ")" (( "(") (number_literal "1") (, ",") (string_literal ""        wlcdLayout           "" (" """) (string_content "        wlcdLayout           ") (" """)) () ")"))) (; ";")) (if_statement "if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {\n      fwrite("none\n",1,5,stdout);\n    }\n    else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" (if "if") (parenthesized_expression "((param_1[0x32] == 0) && (param_1[0x33] == 0))" (( "(") (binary_expression "(param_1[0x32] == 0) && (param_1[0x33] == 0)" (parenthesized_expression "(param_1[0x32] == 0)" (( "(") (binary_expression "param_1[0x32] == 0" (subscript_expression "param_1[0x32]" (identifier "param_1") ([ "[") (number_literal "0x32") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x33] == 0)" (( "(") (binary_expression "param_1[0x33] == 0" (subscript_expression "param_1[0x33]" (identifier "param_1") ([ "[") (number_literal "0x33") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      fwrite("none\n",1,5,stdout);\n    }" ({ "{") (expression_statement "fwrite("none\n",1,5,stdout);" (call_expression "fwrite("none\n",1,5,stdout)" (identifier "fwrite") (argument_list "("none\n",1,5,stdout)" (( "(") (string_literal ""none\n"" (" """) (string_content "none") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "5") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")) (else_clause "else {\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" (else "else") (compound_statement "{\n      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);\n    }" ({ "{") (expression_statement "__printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);" (call_expression "__printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33])" (identifier "__printf_chk") (argument_list "(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33])" (( "(") (number_literal "1") (, ",") (string_literal ""%u cols %u lines\n"" (" """) (string_content "%u cols %u lines") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[0x32]" (identifier "param_1") ([ "[") (number_literal "0x32") (] "]")) (, ",") (subscript_expression "param_1[0x33]" (identifier "param_1") ([ "[") (number_literal "0x33") (] "]")) () ")"))) (; ";")) (} "}")))) (expression_statement "__printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);" (call_expression "__printf_chk(1,"        bPINSupport         %5u ",param_1[0x34])" (identifier "__printf_chk") (argument_list "(1,"        bPINSupport         %5u ",param_1[0x34])" (( "(") (number_literal "1") (, ",") (string_literal ""        bPINSupport         %5u "" (" """) (string_content "        bPINSupport         %5u ") (" """)) (, ",") (subscript_expression "param_1[0x34]" (identifier "param_1") ([ "[") (number_literal "0x34") (] "]")) () ")"))) (; ";")) (if_statement "if ((param_1[0x34] & 1) != 0) {\n      fwrite(" verification",1,0xd,stdout);\n    }" (if "if") (parenthesized_expression "((param_1[0x34] & 1) != 0)" (( "(") (binary_expression "(param_1[0x34] & 1) != 0" (parenthesized_expression "(param_1[0x34] & 1)" (( "(") (binary_expression "param_1[0x34] & 1" (subscript_expression "param_1[0x34]" (identifier "param_1") ([ "[") (number_literal "0x34") (] "]")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" verification",1,0xd,stdout);\n    }" ({ "{") (expression_statement "fwrite(" verification",1,0xd,stdout);" (call_expression "fwrite(" verification",1,0xd,stdout)" (identifier "fwrite") (argument_list "(" verification",1,0xd,stdout)" (( "(") (string_literal "" verification"" (" """) (string_content " verification") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xd") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (if_statement "if ((param_1[0x34] & 2) != 0) {\n      fwrite(" modification",1,0xd,stdout);\n    }" (if "if") (parenthesized_expression "((param_1[0x34] & 2) != 0)" (( "(") (binary_expression "(param_1[0x34] & 2) != 0" (parenthesized_expression "(param_1[0x34] & 2)" (( "(") (binary_expression "param_1[0x34] & 2" (subscript_expression "param_1[0x34]" (identifier "param_1") ([ "[") (number_literal "0x34") (] "]")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      fwrite(" modification",1,0xd,stdout);\n    }" ({ "{") (expression_statement "fwrite(" modification",1,0xd,stdout);" (call_expression "fwrite(" modification",1,0xd,stdout)" (identifier "fwrite") (argument_list "(" modification",1,0xd,stdout)" (( "(") (string_literal "" modification"" (" """) (string_content " modification") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0xd") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}"))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);" (call_expression "__printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35])" (identifier "__printf_chk") (argument_list "(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35])" (( "(") (number_literal "1") (, ",") (string_literal ""        bMaxCCIDBusySlots   %5u\n"" (" """) (string_content "        bMaxCCIDBusySlots   %5u") (escape_sequence "\n") (" """)) (, ",") (subscript_expression "param_1[0x35]" (identifier "param_1") ([ "[") (number_literal "0x35") (] "]")) () ")"))) (; ";")) (if_statement "if (0x36 < *param_1) {\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }" (if "if") (parenthesized_expression "(0x36 < *param_1)" (( "(") (binary_expression "0x36 < *param_1" (number_literal "0x36") (< "<") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) () ")")) (compound_statement "{\n      fwrite(&DAT_0011c59d,1,0x19,stdout);\n      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);\n    }" ({ "{") (expression_statement "fwrite(&DAT_0011c59d,1,0x19,stdout);" (call_expression "fwrite(&DAT_0011c59d,1,0x19,stdout)" (identifier "fwrite") (argument_list "(&DAT_0011c59d,1,0x19,stdout)" (( "(") (pointer_expression "&DAT_0011c59d" (& "&") (identifier "DAT_0011c59d")) (, ",") (number_literal "1") (, ",") (number_literal "0x19") (, ",") (identifier "stdout") () ")"))) (; ";")) (expression_statement "FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);" (call_expression "FUN_001105ba(param_1 + 0x36,*param_1 - 0x36)" (identifier "FUN_001105ba") (argument_list "(param_1 + 0x36,*param_1 - 0x36)" (( "(") (binary_expression "param_1 + 0x36" (identifier "param_1") (+ "+") (number_literal "0x36")) (, ",") (binary_expression "*param_1 - 0x36" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (- "-") (number_literal "0x36")) () ")"))) (; ";")) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_7)

{
  type_2 var_5;
  type_3 var_8;
  char *pcVar3;
  char *pcVar4;
  char *pcVar5;
  
  if (*var_7 < 0x36) {
    var_1("      Warning: Descriptor too short");
  }
  else {
    var_2(1,
                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"
                 ,*var_7,var_7[1],var_7[3],var_7[2]);
    if ((var_7[3] != '\x01') || (var_7[2] != '\0')) {
      var_3("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);
    }
    var_4(10,stdout);
    var_5 = var_7[5];
    pcVar3 = "1.8V ";
    if ((var_5 & 4) == 0) {
      pcVar3 = "";
    }
    pcVar5 = "3.0V ";
    if ((var_5 & 2) == 0) {
      pcVar5 = "";
    }
    pcVar4 = "5.0V ";
    if ((var_5 & 1) == 0) {
      pcVar4 = "";
    }
    var_2(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",
                 var_7[4],var_5,pcVar4,pcVar5,pcVar3);
    var_8 = var_6(var_7 + 6);
    var_2(1,"        dwProtocols         %5u ",var_8);
    if ((var_8 & 1) != 0) {
      var_3(&DAT_0011c46e,1,4,stdout);
    }
    if ((var_8 & 2) != 0) {
      var_3(&DAT_0011c473,1,4,stdout);
    }
    if ((var_8 & 0xfffffffc) != 0) {
      var_3(" (Invalid values detected)",1,0x1a,stdout);
    }
    var_4(10,stdout);
    var_8 = var_6(var_7 + 10);
    var_2(1,"        dwDefaultClock      %5u\n",var_8);
    var_8 = var_6(var_7 + 0xe);
    var_2(1,"        dwMaxiumumClock     %5u\n",var_8);
    var_2(1,"        bNumClockSupported  %5u\n",var_7[0x12]);
    var_8 = var_6(var_7 + 0x13);
    var_2(1,"        dwDataRate        %7u bps\n",var_8);
    var_8 = var_6(var_7 + 0x17);
    var_2(1,"        dwMaxDataRate     %7u bps\n",var_8);
    var_2(1,"        bNumDataRatesSupp.  %5u\n",var_7[0x1b]);
    var_8 = var_6(var_7 + 0x1c);
    var_2(1,"        dwMaxIFSD           %5u\n",var_8);
    var_8 = var_6(var_7 + 0x20);
    var_2(1,"        dwSyncProtocols  %08X ",var_8);
    if ((var_8 & 1) != 0) {
      var_3(" 2-wire",1,7,stdout);
    }
    if ((var_8 & 2) != 0) {
      var_3(" 3-wire",1,7,stdout);
    }
    if ((var_8 & 4) != 0) {
      var_3(&DAT_0011c4a3,1,4,stdout);
    }
    var_4(10,stdout);
    var_8 = var_6(var_7 + 0x24);
    var_2(1,"        dwMechanical     %08X ",var_8);
    if ((var_8 & 1) != 0) {
      var_3(" accept",1,7,stdout);
    }
    if ((var_8 & 2) != 0) {
      var_3(" eject",1,6,stdout);
    }
    if ((var_8 & 4) != 0) {
      var_3(" capture",1,8,stdout);
    }
    if ((var_8 & 8) != 0) {
      var_3(" lock",1,5,stdout);
    }
    var_4(10,stdout);
    var_8 = var_6(var_7 + 0x28);
    var_2(1,"        dwFeatures       %08X\n",var_8);
    if ((var_8 & 2) != 0) {
      var_3("          Auto configuration based on ATR\n",1,0x2a,stdout);
    }
    if ((var_8 & 4) != 0) {
      var_3("          Auto activation on insert\n",1,0x24,stdout);
    }
    if ((var_8 & 8) != 0) {
      var_3("          Auto voltage selection\n",1,0x21,stdout);
    }
    if ((var_8 & 0x10) != 0) {
      var_3("          Auto clock change\n",1,0x1c,stdout);
    }
    if ((var_8 & 0x20) != 0) {
      var_3("          Auto baud rate change\n",1,0x20,stdout);
    }
    if ((var_8 & 0x40) == 0) {
      if ((var_8 & 0x80) == 0) {
        if ((var_8 & 0xc0) != 0) {
          var_3("        WARNING: conflicting negotiation features\n",1,0x32,stdout);
        }
      }
      else {
        var_3("          Auto PPS made by CCID\n",1,0x20,stdout);
      }
    }
    else {
      var_3("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);
    }
    if ((var_8 & 0x100) != 0) {
      var_3("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);
    }
    if ((var_8 & 0x200) != 0) {
      var_3("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);
    }
    if ((var_8 & 0x400) != 0) {
      var_3("          Auto IFSD exchange\n",1,0x1d,stdout);
    }
    if ((var_8 & 0x10000) == 0) {
      if ((var_8 & 0x20000) == 0) {
        if ((var_8 & 0x40000) == 0) {
          if ((var_8 & 0x70000) != 0) {
            var_3("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);
          }
        }
        else {
          var_3("          Short and extended APDU level exchange\n",1,0x31,stdout);
        }
      }
      else {
        var_3("          Short APDU level exchange\n",1,0x24,stdout);
      }
    }
    else {
      var_3("          TPDU level exchange\n",1,0x1e,stdout);
    }
    var_8 = var_6(var_7 + 0x2c);
    var_2(1,"        dwMaxCCIDMsgLen     %5u\n",var_8);
    var_2(1,"        bClassGetResponse    ");
    if (var_7[0x30] == 0xff) {
      var_3("echo\n",1,5,stdout);
    }
    else {
      var_2(1,"  %02X\n",var_7[0x30]);
    }
    var_2(1,"        bClassEnvelope       ");
    if (var_7[0x31] == 0xff) {
      var_3("echo\n",1,5,stdout);
    }
    else {
      var_2(1,"  %02X\n",var_7[0x30]);
    }
    var_2(1,"        wlcdLayout           ");
    if ((var_7[0x32] == '\0') && (var_7[0x33] == '\0')) {
      var_3("none\n",1,5,stdout);
    }
    else {
      var_2(1,"%u cols %u lines\n",var_7[0x32],var_7[0x33]);
    }
    var_2(1,"        bPINSupport         %5u ",var_7[0x34]);
    if ((var_7[0x34] & 1) != 0) {
      var_3(" verification",1,0xd,stdout);
    }
    if ((var_7[0x34] & 2) != 0) {
      var_3(" modification",1,0xd,stdout);
    }
    var_4(10,stdout);
    var_2(1,"        bMaxCCIDBusySlots   %5u\n",var_7[0x35]);
    if (0x36 < *var_7) {
      var_3(&DAT_0011c59d,1,0x19,stdout);
      var_9(var_7 + 0x36,*var_7 - 0x36);
    }
  }
  return;
}


(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))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content) (escape_sequence) (string_content)) (pointer_expression argument: (identifier)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal))))) (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence) (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (number_literal) (number_literal) (identifier))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (number_literal) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content) (escape_sequence)) (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (number_literal) (number_literal) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))))))) (return_statement))))

void MASKED(byte *param_1)

{
  byte bVar1;
  uint uVar2;
  undefined4 uVar3;
  char *pcVar4;
  char *pcVar5;
  char *pcVar6;
  
  if (*param_1 < 0x36) {
    puts("      Warning: Descriptor too short");
  }
  else {
    __printf_chk(1,
                 "      ChipCard Interface Descriptor:\n        bLength             %5u\n        bDescriptorType     %5u\n        bcdCCID             %2x.%02x"
                 ,*param_1,param_1[1],param_1[3],param_1[2]);
    if ((param_1[3] != 1) || (param_1[2] != 0)) {
      fwrite("  (Warning: Only accurate for version 1.0)",1,0x2a,stdout);
    }
    putc(10,stdout);
    bVar1 = param_1[5];
    pcVar4 = "1.8V ";
    if ((bVar1 & 4) == 0) {
      pcVar4 = "";
    }
    pcVar6 = "3.0V ";
    if ((bVar1 & 2) == 0) {
      pcVar6 = "";
    }
    pcVar5 = "5.0V ";
    if ((bVar1 & 1) == 0) {
      pcVar5 = "";
    }
    __printf_chk(1,"        nMaxSlotIndex       %5u\n        bVoltageSupport     %5u  %s%s%s\n",
                 param_1[4],bVar1,pcVar5,pcVar6,pcVar4);
    uVar2 = FUN_00110555(param_1 + 6);
    __printf_chk(1,"        dwProtocols         %5u ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(&DAT_0011c46e,1,4,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(&DAT_0011c473,1,4,stdout);
    }
    if ((uVar2 & 0xfffffffc) != 0) {
      fwrite(" (Invalid values detected)",1,0x1a,stdout);
    }
    putc(10,stdout);
    uVar3 = FUN_00110555(param_1 + 10);
    __printf_chk(1,"        dwDefaultClock      %5u\n",uVar3);
    uVar3 = FUN_00110555(param_1 + 0xe);
    __printf_chk(1,"        dwMaxiumumClock     %5u\n",uVar3);
    __printf_chk(1,"        bNumClockSupported  %5u\n",param_1[0x12]);
    uVar3 = FUN_00110555(param_1 + 0x13);
    __printf_chk(1,"        dwDataRate        %7u bps\n",uVar3);
    uVar3 = FUN_00110555(param_1 + 0x17);
    __printf_chk(1,"        dwMaxDataRate     %7u bps\n",uVar3);
    __printf_chk(1,"        bNumDataRatesSupp.  %5u\n",param_1[0x1b]);
    uVar3 = FUN_00110555(param_1 + 0x1c);
    __printf_chk(1,"        dwMaxIFSD           %5u\n",uVar3);
    uVar2 = FUN_00110555(param_1 + 0x20);
    __printf_chk(1,"        dwSyncProtocols  %08X ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(" 2-wire",1,7,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(" 3-wire",1,7,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite(&DAT_0011c4a3,1,4,stdout);
    }
    putc(10,stdout);
    uVar2 = FUN_00110555(param_1 + 0x24);
    __printf_chk(1,"        dwMechanical     %08X ",uVar2);
    if ((uVar2 & 1) != 0) {
      fwrite(" accept",1,7,stdout);
    }
    if ((uVar2 & 2) != 0) {
      fwrite(" eject",1,6,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite(" capture",1,8,stdout);
    }
    if ((uVar2 & 8) != 0) {
      fwrite(" lock",1,5,stdout);
    }
    putc(10,stdout);
    uVar2 = FUN_00110555(param_1 + 0x28);
    __printf_chk(1,"        dwFeatures       %08X\n",uVar2);
    if ((uVar2 & 2) != 0) {
      fwrite("          Auto configuration based on ATR\n",1,0x2a,stdout);
    }
    if ((uVar2 & 4) != 0) {
      fwrite("          Auto activation on insert\n",1,0x24,stdout);
    }
    if ((uVar2 & 8) != 0) {
      fwrite("          Auto voltage selection\n",1,0x21,stdout);
    }
    if ((uVar2 & 0x10) != 0) {
      fwrite("          Auto clock change\n",1,0x1c,stdout);
    }
    if ((uVar2 & 0x20) != 0) {
      fwrite("          Auto baud rate change\n",1,0x20,stdout);
    }
    if ((uVar2 & 0x40) == 0) {
      if ((uVar2 & 0x80) == 0) {
        if ((uVar2 & 0xc0) != 0) {
          fwrite("        WARNING: conflicting negotiation features\n",1,0x32,stdout);
        }
      }
      else {
        fwrite("          Auto PPS made by CCID\n",1,0x20,stdout);
      }
    }
    else {
      fwrite("          Auto parameter negotiation made by CCID\n",1,0x32,stdout);
    }
    if ((uVar2 & 0x100) != 0) {
      fwrite("          CCID can set ICC in clock stop mode\n",1,0x2e,stdout);
    }
    if ((uVar2 & 0x200) != 0) {
      fwrite("          NAD value other than 0x00 accepted\n",1,0x2d,stdout);
    }
    if ((uVar2 & 0x400) != 0) {
      fwrite("          Auto IFSD exchange\n",1,0x1d,stdout);
    }
    if ((uVar2 & 0x10000) == 0) {
      if ((uVar2 & 0x20000) == 0) {
        if ((uVar2 & 0x40000) == 0) {
          if ((uVar2 & 0x70000) != 0) {
            fwrite("        WARNING: conflicting exchange levels\n",1,0x2d,stdout);
          }
        }
        else {
          fwrite("          Short and extended APDU level exchange\n",1,0x31,stdout);
        }
      }
      else {
        fwrite("          Short APDU level exchange\n",1,0x24,stdout);
      }
    }
    else {
      fwrite("          TPDU level exchange\n",1,0x1e,stdout);
    }
    uVar3 = FUN_00110555(param_1 + 0x2c);
    __printf_chk(1,"        dwMaxCCIDMsgLen     %5u\n",uVar3);
    __printf_chk(1,"        bClassGetResponse    ");
    if (param_1[0x30] == 0xff) {
      fwrite("echo\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"  %02X\n",param_1[0x30]);
    }
    __printf_chk(1,"        bClassEnvelope       ");
    if (param_1[0x31] == 0xff) {
      fwrite("echo\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"  %02X\n",param_1[0x30]);
    }
    __printf_chk(1,"        wlcdLayout           ");
    if ((param_1[0x32] == 0) && (param_1[0x33] == 0)) {
      fwrite("none\n",1,5,stdout);
    }
    else {
      __printf_chk(1,"%u cols %u lines\n",param_1[0x32],param_1[0x33]);
    }
    __printf_chk(1,"        bPINSupport         %5u ",param_1[0x34]);
    if ((param_1[0x34] & 1) != 0) {
      fwrite(" verification",1,0xd,stdout);
    }
    if ((param_1[0x34] & 2) != 0) {
      fwrite(" modification",1,0xd,stdout);
    }
    putc(10,stdout);
    __printf_chk(1,"        bMaxCCIDBusySlots   %5u\n",param_1[0x35]);
    if (0x36 < *param_1) {
      fwrite(&DAT_0011c59d,1,0x19,stdout);
      FUN_001105ba(param_1 + 0x36,*param_1 - 0x36);
    }
  }
  return;
}

