if ((rc != 0) || ((regs->eax & 0xffff) == 0xffff) || (regs->eax == eax)) { 
if (rc != 0 || (regs->eax & 0xffff) == 0xffff || regs->eax == eax) 
static int i8k_smm(SMMRegisters * regs){	int rc;	int eax = regs->eax;	asm("pushl %%eax\n\t"	    "movl 0(%%eax),%%edx\n\t"	    "push %%edx\n\t"	    "movl 4(%%eax),%%ebx\n\t"	    "movl 8(%%eax),%%ecx\n\t"	    "movl 12(%%eax),%%edx\n\t"	    "movl 16(%%eax),%%esi\n\t"	    "movl 20(%%eax),%%edi\n\t"	    "popl %%eax\n\t"	    "out %%al,$0xb2\n\t"	    "out %%al,$0x84\n\t"	    "xchgl %%eax,(%%esp)\n\t"	    "movl %%ebx,4(%%eax)\n\t"	    "movl %%ecx,8(%%eax)\n\t"	    "movl %%edx,12(%%eax)\n\t"	    "movl %%esi,16(%%eax)\n\t"	    "movl %%edi,20(%%eax)\n\t"	    "popl %%edx\n\t"	    "movl %%edx,0(%%eax)\n\t"	    "lahf\n\t"	    "shrl $8,%%eax\n\t"	    "andl $1,%%eax\n":"=a"(rc)	    :    "a"(regs)	    :    "%ebx", "%ecx", "%edx", "%esi", "%edi", "memory");	if ((rc != 0) || ((regs->eax & 0xffff) == 0xffff) || (regs->eax == eax)) {		return -EINVAL;	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/8378b92405dd606c6f3a0b1e303b67c8f8c9f743/i8k.c/clean/drivers/char/i8k.c