
videoprt.nostrip.sys:     file format pei-i386

Disassembly of section .text:

00011000 <_GUID_POWER_DEVICE_WAKE_ENABLE>:
   11000:	82                   	(bad)  
   11001:	6a 54                	push   $0x54
   11003:	a9 b0 fe d0 11       	test   $0x11d0feb0,%eax
   11008:	bd 26 00 aa 00       	mov    $0xaa0026,%ebp
   1100d:	b7 b3                	mov    $0xb3,%bh
   1100f:	2a 35 a7 5d a4 b0    	sub    0xb0a45da7,%dh

00011010 <_GUID_POWER_DEVICE_TIMEOUTS>:
   11010:	35 a7 5d a4 b0       	xor    $0xb0a45da7,%eax
   11015:	fe                   	(bad)  
   11016:	d0 11                	rclb   (%ecx)
   11018:	bd 26 00 aa 00       	mov    $0xaa0026,%ebp
   1101d:	b7 b3                	mov    $0xb3,%bh
   1101f:	2a 6f 0a             	sub    0xa(%edi),%ch

00011020 <_GUID_POWER_DEVICE_ENABLE>:
   11020:	6f                   	outsl  %ds:(%esi),(%dx)
   11021:	0a 7c 82 b0          	or     0xffffffb0(%edx,%eax,4),%bh
   11025:	fe                   	(bad)  
   11026:	d0 11                	rclb   (%ecx)
   11028:	bd 26 00 aa 00       	mov    $0xaa0026,%ebp
   1102d:	b7 b3                	mov    $0xb3,%bh
   1102f:	2a 04 cc             	sub    (%esp,%ecx,8),%al

00011030 <_GUID_BUS_TYPE_SD>:
   11030:	04 cc                	add    $0xcc,%al
   11032:	00 e7                	add    %ah,%bh
   11034:	36                   	ss
   11035:	40                   	inc    %eax
   11036:	89 4e 95             	mov    %ecx,0xffffff95(%esi)
   11039:	79 89                	jns    10fc4 <__image_base__+0xfc4>
   1103b:	eb f4                	jmp    11031 <_GUID_BUS_TYPE_SD+0x1>
   1103d:	5f                   	pop    %edi
   1103e:	00 cd                	add    %cl,%ch

00011040 <_GUID_BUS_TYPE_IRDA>:
   11040:	c1 7d e1 7a          	sarl   $0x7a,0xffffffe1(%ebp)
   11044:	44                   	inc    %esp
   11045:	c9                   	leave  
   11046:	d6                   	(bad)  
   11047:	44                   	inc    %esp
   11048:	88 1f                	mov    %bl,(%edi)
   1104a:	4c                   	dec    %esp
   1104b:	2e                   	cs
   1104c:	61                   	popa   
   1104d:	05 3b c1 65 f2       	add    $0xf265c13b,%eax

00011050 <_GUID_BUS_TYPE_AVC>:
   11050:	65 f2 6f             	repnz outsl %gs:(%esi),(%dx)
   11053:	c0 09 ae             	rorb   $0xae,(%ecx)
   11056:	f0 48                	lock dec %eax
   11058:	81 2c 16 75 3d 7c ba 	subl   $0xba7c3d75,(%esi,%edx,1)
   1105f:	83 d0 37             	adc    $0x37,%eax

00011060 <_GUID_BUS_TYPE_HID>:
   11060:	d0                   	(bad)  
   11061:	37                   	aaa    
   11062:	af                   	scas   %es:(%edi),%eax
   11063:	ee                   	out    %al,(%dx)
   11064:	63 19                	arpl   %bx,(%ecx)
   11066:	c4 47 aa             	les    0xffffffaa(%edi),%eax
   11069:	48                   	dec    %eax
   1106a:	72 47                	jb     110b3 <_GUID_BUS_TYPE_USBPRINT+0x3>
   1106c:	6d                   	insl   (%dx),%es:(%edi)
   1106d:	b7 cf                	mov    $0xcf,%bh
   1106f:	49                   	dec    %ecx

00011070 <_GUID_BUS_TYPE_1394>:
   11070:	eb 73                	jmp    110e5 <_GUID_BUS_TYPE_EISA+0x5>
   11072:	4e                   	dec    %esi
   11073:	f7 c5 9a eb 45 be    	test   $0xbe45eb9a,%ebp
   11079:	4d                   	dec    %ebp
   1107a:	77 2c                	ja     110a8 <_GUID_BUS_TYPE_DOT4PRT+0x8>
   1107c:	c7 1d df b3 bc eb 7d 	movl   $0xc85d9d7d,0xebbcb3df
   11083:	9d 5d c8 

00011080 <_GUID_BUS_TYPE_USB>:
   11080:	bc eb 7d 9d 5d       	mov    $0x5d9d7deb,%esp
   11085:	c8 d1 11 9e          	enter  $0x11d1,$0x9e
   11089:	b4 00                	mov    $0x0,%ah
   1108b:	60                   	pusha  
   1108c:	08 c3                	or     %al,%bl
   1108e:	a1 9a 87 4a 11       	mov    0x114a879a,%eax

00011090 <_GUID_BUS_TYPE_SERENUM>:
   11090:	87 4a 11             	xchg   %ecx,0x11(%edx)
   11093:	77 44                	ja     110d9 <_GUID_BUS_TYPE_MCA+0x9>
   11095:	89 d1                	mov    %edx,%ecx
   11097:	11 bd 90 00 a0 c9    	adc    %edi,0xc9a00090(%ebp)
   1109d:	06                   	push   %es
   1109e:	be 2d 01 e0 1e       	mov    $0x1ee0012d,%esi

000110a0 <_GUID_BUS_TYPE_DOT4PRT>:
   110a0:	01 e0                	add    %esp,%eax
   110a2:	1e                   	push   %ds
   110a3:	44                   	inc    %esp
   110a4:	42                   	inc    %edx
   110a5:	43                   	inc    %ebx
   110a6:	d5 11                	aad    $0x11
   110a8:	a1 84 00 c0 4f       	mov    0x4fc00084,%eax
   110ad:	60                   	pusha  
   110ae:	52                   	push   %edx
   110af:	4d                   	dec    %ebp

000110b0 <_GUID_BUS_TYPE_USBPRINT>:
   110b0:	00 e0                	add    %ah,%al
   110b2:	1e                   	push   %ds
   110b3:	44                   	inc    %esp
   110b4:	42                   	inc    %edx
   110b5:	43                   	inc    %ebx
   110b6:	d5 11                	aad    $0x11
   110b8:	a1 84 00 c0 4f       	mov    0x4fc00084,%eax
   110bd:	60                   	pusha  
   110be:	52                   	push   %edx
   110bf:	4d                   	dec    %ebp

000110c0 <_GUID_BUS_TYPE_LPTENUM>:
   110c0:	00 10                	add    %dl,(%eax)
   110c2:	ca c4 dc             	lret   $0xdcc4
   110c5:	2d d5 11 a1 7a       	sub    $0x7aa111d5,%eax
   110ca:	00 c0                	add    %al,%al
   110cc:	4f                   	dec    %edi
   110cd:	60                   	pusha  
   110ce:	52                   	push   %edx
   110cf:	4d                   	dec    %ebp

000110d0 <_GUID_BUS_TYPE_MCA>:
   110d0:	7a 99                	jp     1106b <_GUID_BUS_TYPE_HID+0xb>
   110d2:	75 1c                	jne    110f0 <_GUID_BUS_TYPE_ISAPNP>
   110d4:	33 dc                	xor    %esp,%ebx
   110d6:	d0 11                	rclb   (%ecx)
   110d8:	92                   	xchg   %eax,%edx
   110d9:	b2 00                	mov    $0x0,%dl
   110db:	a0 c9 05 5f c5       	mov    0xc55f05c9,%al

000110e0 <_GUID_BUS_TYPE_EISA>:
   110e0:	09 55 c3             	or     %edx,0xffffffc3(%ebp)
   110e3:	dd fc                	(bad)  
   110e5:	f3 d0 11             	repz rclb (%ecx)
   110e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
   110e9:	37                   	aaa    
   110ea:	00 00                	add    %al,(%eax)
   110ec:	f8                   	clc    
   110ed:	75 3e                	jne    1112d <_GUID_BUS_TYPE_INTERNAL+0xd>
   110ef:	d1 54 f8 76          	rcll   0x76(%eax,%edi,8)

000110f0 <_GUID_BUS_TYPE_ISAPNP>:
   110f0:	54                   	push   %esp
   110f1:	f8                   	clc    
   110f2:	76 e6                	jbe    110da <_GUID_BUS_TYPE_MCA+0xa>
   110f4:	7d d8                	jge    110ce <_GUID_BUS_TYPE_LPTENUM+0xe>
   110f6:	d0 11                	rclb   (%ecx)
   110f8:	92                   	xchg   %eax,%edx
   110f9:	b2 00                	mov    $0x0,%dl
   110fb:	a0 c9 05 5f c5       	mov    0xc55f05c9,%al

00011100 <_GUID_BUS_TYPE_PCI>:
   11100:	b0 df                	mov    $0xdf,%al
   11102:	eb c8                	jmp    110cc <_GUID_BUS_TYPE_LPTENUM+0xc>
   11104:	10 b5 d0 11 80 e5    	adc    %dh,0xe58011d0(%ebp)
   1110a:	00 a0 c9 25 42 e3    	add    %ah,0xe34225c9(%eax)

00011110 <_GUID_BUS_TYPE_PCMCIA>:
   11110:	30 36                	xor    %dh,(%esi)
   11112:	34 09                	xor    $0x9,%al
   11114:	9f                   	lahf   
   11115:	af                   	scas   %es:(%edi),%eax
   11116:	d0 11                	rclb   (%ecx)
   11118:	92                   	xchg   %eax,%edx
   11119:	e9 00 00 f8 1e       	jmp    1ef9111e <__size_of_stack_reserve__+0x1ed9111e>
   1111e:	1b 30                	sbb    (%eax),%esi

00011120 <_GUID_BUS_TYPE_INTERNAL>:
   11120:	73 ea                	jae    1110c <_GUID_BUS_TYPE_PCI+0xc>
   11122:	30 15 6b 08 d1 11    	xor    %dl,0x11d1086b
   11128:	a0 9f 00 c0 4f       	mov    0x4fc0009f,%al
   1112d:	c3                   	ret    
   1112e:	40                   	inc    %eax
   1112f:	b1 0e                	mov    $0xe,%cl

00011130 <_GUID_PNP_LOCATION_INTERFACE>:
   11130:	0e                   	push   %cs
   11131:	1b 21                	sbb    (%ecx),%esp
   11133:	70 fb                	jo     11130 <_GUID_PNP_LOCATION_INTERFACE>
   11135:	0a db                	or     %bl,%bl
   11137:	47                   	inc    %edi
   11138:	af                   	scas   %es:(%edi),%eax
   11139:	c1 41 0b f8          	roll   $0xf8,0xb(%ecx)
   1113d:	42                   	inc    %edx
   1113e:	49                   	dec    %ecx
   1113f:	7a 9b                	jp     110dc <_GUID_BUS_TYPE_MCA+0xc>

00011140 <_GUID_ACPI_PORT_RANGES_INTERFACE_STANDARD>:
   11140:	9b                   	fwait
   11141:	60                   	pusha  
   11142:	4f                   	dec    %edi
   11143:	f1                   	icebp  
   11144:	bd cb 57 49 a6       	mov    $0xa64957cb,%ebp
   11149:	74 bc                	je     11107 <_GUID_BUS_TYPE_PCI+0x7>
   1114b:	00 21                	add    %ah,(%ecx)
   1114d:	3f                   	aas    
   1114e:	1c 97                	sbb    $0x97,%al

00011150 <_GUID_ACPI_CMOS_INTERFACE_STANDARD>:
   11150:	84 03                	test   %al,(%ebx)
   11152:	8d 3a                	lea    (%edx),%edi
   11154:	05 65 ca 40 bc       	add    $0xbc40ca65,%eax
   11159:	39 56 c1             	cmp    %edx,0xffffffc1(%esi)
   1115c:	5f                   	pop    %edi
   1115d:	8c 5f ed             	movl   %ds,0xffffffed(%edi)

00011160 <_GUID_MF_ENUMERATION_INTERFACE>:
   11160:	f0 95                	lock xchg %eax,%ebp
   11162:	b8 ae 86 55 d1       	mov    $0xd15586ae,%eax
   11167:	11 8d 84 00 a0 c9    	adc    %ecx,0xc9a00084(%ebp)
   1116d:	06                   	push   %es
   1116e:	b2 44                	mov    $0x44,%dl

00011170 <_GUID_PCI_DEVICE_PRESENT_INTERFACE>:
   11170:	26                   	es
   11171:	2c b8                	sub    $0xb8,%al
   11173:	d1 49 bf             	rorl   0xffffffbf(%ecx)
   11176:	ef                   	out    %eax,(%dx)
   11177:	45                   	inc    %ebp
   11178:	b2 16                	mov    $0x16,%dl
   1117a:	71 cb                	jno    11147 <_GUID_ACPI_PORT_RANGES_INTERFACE_STANDARD+0x7>
   1117c:	d7                   	xlat   %ds:(%ebx)
   1117d:	88 9b 57 de b0 fe    	mov    %bl,0xfeb0de57(%ebx)

00011180 <_GUID_LEGACY_DEVICE_DETECTION_STANDARD>:
   11180:	de b0 fe 50 6a 59    	fidiv  0x596a50fe(%eax)
   11186:	d2 11                	rclb   %cl,(%ecx)
   11188:	a5                   	movsl  %ds:(%esi),%es:(%edi)
   11189:	b8 00 00 f8 1a       	mov    $0x1af80000,%eax
   1118e:	46                   	inc    %esi
   1118f:	19 66 19             	sbb    %esp,0x19(%esi)

00011190 <_GUID_ACPI_REGS_INTERFACE_STANDARD>:
   11190:	66 19 14 06          	sbb    %dx,(%esi,%eax,1)
   11194:	45                   	inc    %ebp
   11195:	72 69                	jb     11200 <_GUID_PCI_BUS_INTERFACE_STANDARD>
   11197:	63 46 2e             	arpl   %ax,0x2e(%esi)
   1119a:	4e                   	dec    %esi
   1119b:	65                   	gs
   1119c:	6c                   	insb   (%dx),%es:(%edi)
   1119d:	73 6f                	jae    1120e <_GUID_PCI_BUS_INTERFACE_STANDARD+0xe>
   1119f:	6e                   	outsb  %ds:(%esi),(%dx)

000111a0 <_GUID_PCMCIA_BUS_INTERFACE_STANDARD>:
   111a0:	f0 3a 17             	lock cmp (%edi),%dl
   111a3:	76 04                	jbe    111a9 <_GUID_PCMCIA_BUS_INTERFACE_STANDARD+0x9>
   111a5:	c5                   	lds    (bad),%edx
   111a6:	d1 11                	rcll   (%ecx)
   111a8:	94                   	xchg   %eax,%esp
   111a9:	7f 00                	jg     111ab <_GUID_PCMCIA_BUS_INTERFACE_STANDARD+0xb>
   111ab:	c0 4f b9 60          	rorb   $0x60,0xffffffb9(%edi)
   111af:	ee                   	out    %al,(%dx)

000111b0 <_GUID_INT_ROUTE_INTERFACE_STANDARD>:
   111b0:	f4                   	hlt    
   111b1:	1b 94 70 73 00 d1 11 	sbb    0x11d10073(%eax,%esi,2),%edx
   111b8:	a0 9e 00 c0 4f       	mov    0x4fc0009e,%al
   111bd:	c3                   	ret    
   111be:	40                   	inc    %eax
   111bf:	b1 8a                	mov    $0x8a,%cl

000111c0 <_GUID_ACPI_INTERFACE_STANDARD>:
   111c0:	8a a0 91 b0 97 ba    	mov    0xba97b091(%eax),%ah
   111c6:	d0 11                	rclb   (%ecx)
   111c8:	bd 14 00 aa 00       	mov    $0xaa0014,%ebp
   111cd:	b7 b3                	mov    $0xb3,%bh
   111cf:	2a 92 4a 15 6c cf    	sub    0xcf6c154a(%edx),%dl

000111d0 <_GUID_TRANSLATOR_INTERFACE_STANDARD>:
   111d0:	92                   	xchg   %eax,%edx
   111d1:	4a                   	dec    %edx
   111d2:	15 6c cf aa d0       	adc    $0xd0aacf6c,%eax
   111d7:	11 8d 2a 00 a0 c9    	adc    %ecx,0xc9a0002a(%ebp)
   111dd:	06                   	push   %es
   111de:	b2 44                	mov    $0x44,%dl

000111e0 <_GUID_ARBITER_INTERFACE_STANDARD>:
   111e0:	85 f1                	test   %esi,%ecx
   111e2:	44                   	inc    %esp
   111e3:	e6 0e                	out    %al,$0xe
   111e5:	8c d0                	mov    %ss,%eax
   111e7:	11 be cf 08 00 2b    	adc    %edi,0x2b0008cf(%esi)
   111ed:	e2 09                	loop   111f8 <_GUID_AGP_TARGET_BUS_INTERFACE_STANDARD+0x8>
   111ef:	2f                   	das    

000111f0 <_GUID_AGP_TARGET_BUS_INTERFACE_STANDARD>:
   111f0:	e8 fc 5c b1 d1       	call   d1b26ef1 <__size_of_stack_reserve__+0xd1926ef1>
   111f5:	06                   	push   %es
   111f6:	37                   	aaa    
   111f7:	4d                   	dec    %ebp
   111f8:	9d                   	popf   
   111f9:	4c                   	dec    %esp
   111fa:	be dd e0 c2 a6       	mov    $0xa6c2e0dd,%esi
   111ff:	ff 81 82 6b 49 25    	incl   0x25496b82(%ecx)

00011200 <_GUID_PCI_BUS_INTERFACE_STANDARD>:
   11200:	81 82 6b 49 25 6f d0 	addl   $0xafbe11d0,0x6f25496b(%edx)
   11207:	11 be af 
   1120a:	08 00                	or     %al,(%eax)
   1120c:	2b e2                	sub    %edx,%esp
   1120e:	09 2f                	or     %ebp,(%edi)

00011210 <_GUID_BUS_INTERFACE_STANDARD>:
   11210:	80 82 6b 49 25 6f d0 	addb   $0xd0,0x6f25496b(%edx)
   11217:	11 be af 08 00 2b    	adc    %edi,0x2b0008af(%esi)
   1121d:	e2 09                	loop   11228 <_GUID_PNP_POWER_NOTIFICATION+0x8>
   1121f:	2f                   	das    

00011220 <_GUID_PNP_POWER_NOTIFICATION>:
   11220:	60                   	pusha  
   11221:	06                   	push   %es
   11222:	cf                   	iret   
   11223:	c2 7a eb             	ret    $0xeb7a
   11226:	d1 11                	rcll   (%ecx)
   11228:	bd 7f 00 00 f8       	mov    $0xf800007f,%ebp
   1122d:	75 71                	jne    112a0 <_GUID_HWPROFILE_CHANGE_CANCELLED>
   1122f:	d0 8e 3f a7 ac 23    	rorb   0x23aca73f(%esi)

00011230 <_GUID_PNP_CUSTOM_NOTIFICATION>:
   11230:	8e 3f                	movl   (%edi),%?
   11232:	a7                   	cmpsl  %es:(%edi),%ds:(%esi)
   11233:	ac                   	lods   %ds:(%esi),%al
   11234:	23 8d d1 11 ac 7d    	and    0x7dac11d1(%ebp),%ecx
   1123a:	00 00                	add    %al,(%eax)
   1123c:	f8                   	clc    
   1123d:	75 71                	jne    112b0 <_GUID_HWPROFILE_QUERY_CHANGE>
   1123f:	d0 08                	rorb   (%eax)

00011240 <_GUID_TARGET_DEVICE_REMOVE_COMPLETE>:
   11240:	08 40 3a             	or     %al,0x3a(%eax)
   11243:	cb                   	lret   
   11244:	f0 46                	lock inc %esi
   11246:	d0 11                	rclb   (%ecx)
   11248:	b0 8f                	mov    $0x8f,%al
   1124a:	00 60 97             	add    %ah,0xffffff97(%eax)
   1124d:	13 05 3f 07 40 3a    	adc    0x3a40073f,%eax

00011250 <_GUID_TARGET_DEVICE_REMOVE_CANCELLED>:
   11250:	07                   	pop    %es
   11251:	40                   	inc    %eax
   11252:	3a cb                	cmp    %bl,%cl
   11254:	f0 46                	lock inc %esi
   11256:	d0 11                	rclb   (%ecx)
   11258:	b0 8f                	mov    $0x8f,%al
   1125a:	00 60 97             	add    %ah,0xffffff97(%eax)
   1125d:	13 05 3f 06 40 3a    	adc    0x3a40063f,%eax

00011260 <_GUID_TARGET_DEVICE_QUERY_REMOVE>:
   11260:	06                   	push   %es
   11261:	40                   	inc    %eax
   11262:	3a cb                	cmp    %bl,%cl
   11264:	f0 46                	lock inc %esi
   11266:	d0 11                	rclb   (%ecx)
   11268:	b0 8f                	mov    $0x8f,%al
   1126a:	00 60 97             	add    %ah,0xffffff97(%eax)
   1126d:	13 05 3f 05 40 3a    	adc    0x3a40053f,%eax

00011270 <_GUID_DEVICE_INTERFACE_REMOVAL>:
   11270:	05 40 3a cb f0       	add    $0xf0cb3a40,%eax
   11275:	46                   	inc    %esi
   11276:	d0 11                	rclb   (%ecx)
   11278:	b0 8f                	mov    $0x8f,%al
   1127a:	00 60 97             	add    %ah,0xffffff97(%eax)
   1127d:	13 05 3f 04 40 3a    	adc    0x3a40043f,%eax

00011280 <_GUID_DEVICE_INTERFACE_ARRIVAL>:
   11280:	04 40                	add    $0x40,%al
   11282:	3a cb                	cmp    %bl,%cl
   11284:	f0 46                	lock inc %esi
   11286:	d0 11                	rclb   (%ecx)
   11288:	b0 8f                	mov    $0x8f,%al
   1128a:	00 60 97             	add    %ah,0xffffff97(%eax)
   1128d:	13 05 3f 03 40 3a    	adc    0x3a40033f,%eax

00011290 <_GUID_HWPROFILE_CHANGE_COMPLETE>:
   11290:	03 40 3a             	add    0x3a(%eax),%eax
   11293:	cb                   	lret   
   11294:	f0 46                	lock inc %esi
   11296:	d0 11                	rclb   (%ecx)
   11298:	b0 8f                	mov    $0x8f,%al
   1129a:	00 60 97             	add    %ah,0xffffff97(%eax)
   1129d:	13 05 3f 02 40 3a    	adc    0x3a40023f,%eax

000112a0 <_GUID_HWPROFILE_CHANGE_CANCELLED>:
   112a0:	02 40 3a             	add    0x3a(%eax),%al
   112a3:	cb                   	lret   
   112a4:	f0 46                	lock inc %esi
   112a6:	d0 11                	rclb   (%ecx)
   112a8:	b0 8f                	mov    $0x8f,%al
   112aa:	00 60 97             	add    %ah,0xffffff97(%eax)
   112ad:	13 05 3f 01 40 3a    	adc    0x3a40013f,%eax

000112b0 <_GUID_HWPROFILE_QUERY_CHANGE>:
   112b0:	01 40 3a             	add    %eax,0x3a(%eax)
   112b3:	cb                   	lret   
   112b4:	f0 46                	lock inc %esi
   112b6:	d0 11                	rclb   (%ecx)
   112b8:	b0 8f                	mov    $0x8f,%al
   112ba:	00 60 97             	add    %ah,0xffffff97(%eax)
   112bd:	13 05 3f 55 89 e5    	adc    0xe589553f,%eax

000112c0 <_IntAgpCommitPhysical@16>:
   IN PVOID HwDeviceExtension,
   IN PVOID PhysicalContext,
   IN ULONG Pages,
   IN ULONG Offset)
{
   112c0:	55                   	push   %ebp
   112c1:	89 e5                	mov    %esp,%ebp
   112c3:	53                   	push   %ebx
   112c4:	83 ec 1c             	sub    $0x1c,%esp
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PAGP_BUS_INTERFACE_STANDARD AgpBusInterface;
   PHYSICAL_ADDRESS MappingAddr = {{0}};
   PVIDEO_PORT_AGP_MAPPING AgpMapping;
   NTSTATUS Status;

   DPRINT("AgpCommitPhysical - PhysicalContext: 0x%x Pages: %d, Offset: 0x%x\n",
          PhysicalContext, Pages, Offset);

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   AgpBusInterface = &DeviceExtension->AgpInterface;
   AgpMapping = (PVIDEO_PORT_AGP_MAPPING)PhysicalContext;

   Status = AgpBusInterface->CommitMemory(AgpBusInterface->AgpContext,
   112c7:	8d 55 f0             	lea    0xfffffff0(%ebp),%edx
   112ca:	8b 45 08             	mov    0x8(%ebp),%eax
   112cd:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   112d4:	c7 45 f4 00 00 00 00 	movl   $0x0,0xfffffff4(%ebp)
   112db:	52                   	push   %edx
   112dc:	6a 00                	push   $0x0
   112de:	8b 4d 14             	mov    0x14(%ebp),%ecx
   112e1:	83 e8 4c             	sub    $0x4c,%eax
   112e4:	51                   	push   %ecx
   112e5:	8b 55 10             	mov    0x10(%ebp),%edx
   112e8:	52                   	push   %edx
   112e9:	8b 55 0c             	mov    0xc(%ebp),%edx
   112ec:	8b 5a 04             	mov    0x4(%edx),%ebx
   112ef:	53                   	push   %ebx
   112f0:	8b 48 04             	mov    0x4(%eax),%ecx
   112f3:	51                   	push   %ecx
   112f4:	ff 50 1c             	call   *0x1c(%eax)
   112f7:	89 c3                	mov    %eax,%ebx
                                          AgpMapping->MapHandle, Pages, Offset,
                                          NULL, &MappingAddr);

   if (!NT_SUCCESS(Status))
   112f9:	58                   	pop    %eax
   112fa:	85 db                	test   %ebx,%ebx
   112fc:	5a                   	pop    %edx
   112fd:	78 11                	js     11310 <_IntAgpCommitPhysical@16+0x50>
   {
      DPRINT1("Warning: AgpBusInterface->CommitMemory failed (Status = 0x%x)\n",
              Status);
   }
   return NT_SUCCESS(Status);
   112ff:	83 f3 ff             	xor    $0xffffffff,%ebx
   11302:	c1 eb 1f             	shr    $0x1f,%ebx
}
   11305:	89 d8                	mov    %ebx,%eax
   11307:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1130a:	c9                   	leave  
   1130b:	c2 10 00             	ret    $0x10
   1130e:	89 f6                	mov    %esi,%esi
   11310:	51                   	push   %ecx
   11311:	6a 78                	push   $0x78
   11313:	68 00 60 01 00       	push   $0x16000
   11318:	68 06 60 01 00       	push   $0x16006
   1131d:	ff 15 1c a2 01 00    	call   *0x1a21c
   11323:	58                   	pop    %eax
   11324:	5a                   	pop    %edx
   11325:	53                   	push   %ebx
   11326:	68 10 60 01 00       	push   $0x16010
   1132b:	ff 15 1c a2 01 00    	call   *0x1a21c
   11331:	83 f3 ff             	xor    $0xffffffff,%ebx
   11334:	c1 eb 1f             	shr    $0x1f,%ebx
   11337:	83 c4 10             	add    $0x10,%esp
   1133a:	89 d8                	mov    %ebx,%eax
   1133c:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1133f:	c9                   	leave  
   11340:	c2 10 00             	ret    $0x10
   11343:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   11349:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00011350 <_IntAgpFreePhysical@16>:

VOID STDCALL
IntAgpFreePhysical(
   IN PVOID HwDeviceExtension,
   IN PVOID PhysicalContext,
   IN ULONG Pages,
   IN ULONG Offset)
{
   11350:	55                   	push   %ebp
   11351:	89 e5                	mov    %esp,%ebp
   11353:	53                   	push   %ebx
   11354:	50                   	push   %eax
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PAGP_BUS_INTERFACE_STANDARD AgpBusInterface;
   PVIDEO_PORT_AGP_MAPPING AgpMapping;
   NTSTATUS Status;

   DPRINT("AgpFreePhysical - PhysicalContext: 0x%x Pages: %d, Offset: 0x%x\n",
          PhysicalContext, Pages, Offset);

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   AgpBusInterface = &DeviceExtension->AgpInterface;
   AgpMapping = (PVIDEO_PORT_AGP_MAPPING)PhysicalContext;

   Status = AgpBusInterface->FreeMemory(AgpBusInterface->AgpContext,
   11355:	8b 45 14             	mov    0x14(%ebp),%eax
   11358:	8b 55 08             	mov    0x8(%ebp),%edx
   1135b:	50                   	push   %eax
   1135c:	83 ea 4c             	sub    $0x4c,%edx
   1135f:	8b 45 10             	mov    0x10(%ebp),%eax
   11362:	50                   	push   %eax
   11363:	8b 45 0c             	mov    0xc(%ebp),%eax
   11366:	8b 40 04             	mov    0x4(%eax),%eax
   11369:	50                   	push   %eax
   1136a:	8b 5a 04             	mov    0x4(%edx),%ebx
   1136d:	53                   	push   %ebx
   1136e:	ff 52 20             	call   *0x20(%edx)
   11371:	89 c3                	mov    %eax,%ebx
                                        AgpMapping->MapHandle, Pages, Offset);
   if (!NT_SUCCESS(Status))
   11373:	85 c0                	test   %eax,%eax
   11375:	78 09                	js     11380 <_IntAgpFreePhysical@16+0x30>
   {
      DPRINT1("Warning: AgpBusInterface->FreeMemory failed (Status = 0x%x)\n",
              Status);
   }
}
   11377:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1137a:	c9                   	leave  
   1137b:	c2 10 00             	ret    $0x10
   1137e:	89 f6                	mov    %esi,%esi
   11380:	51                   	push   %ecx
   11381:	68 95 00 00 00       	push   $0x95
   11386:	68 00 60 01 00       	push   $0x16000
   1138b:	68 06 60 01 00       	push   $0x16006
   11390:	ff 15 1c a2 01 00    	call   *0x1a21c
   11396:	58                   	pop    %eax
   11397:	5a                   	pop    %edx
   11398:	53                   	push   %ebx
   11399:	68 50 60 01 00       	push   $0x16050
   1139e:	ff 15 1c a2 01 00    	call   *0x1a21c
   113a4:	83 c4 10             	add    $0x10,%esp
   113a7:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   113aa:	c9                   	leave  
   113ab:	c2 10 00             	ret    $0x10
   113ae:	89 f6                	mov    %esi,%esi

000113b0 <_IntAgpReleasePhysical@8>:

VOID STDCALL
IntAgpReleasePhysical(
   IN PVOID HwDeviceExtension,
   IN PVOID PhysicalContext)
{
   113b0:	55                   	push   %ebp
   113b1:	89 e5                	mov    %esp,%ebp
   113b3:	56                   	push   %esi
   113b4:	53                   	push   %ebx
   113b5:	8b 75 0c             	mov    0xc(%ebp),%esi
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PAGP_BUS_INTERFACE_STANDARD AgpBusInterface;
   PVIDEO_PORT_AGP_MAPPING AgpMapping;
   NTSTATUS Status;

   DPRINT("AgpReleasePhysical - PhysicalContext: 0x%x\n", PhysicalContext);

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   AgpBusInterface = &DeviceExtension->AgpInterface;
   113b8:	8b 45 08             	mov    0x8(%ebp),%eax
   AgpMapping = (PVIDEO_PORT_AGP_MAPPING)PhysicalContext;
   
   /* Release memory */
   Status = AgpBusInterface->ReleaseMemory(AgpBusInterface->AgpContext,
   113bb:	52                   	push   %edx
   113bc:	52                   	push   %edx
   113bd:	8b 5e 04             	mov    0x4(%esi),%ebx
   113c0:	83 e8 4c             	sub    $0x4c,%eax
   113c3:	53                   	push   %ebx
   113c4:	8b 48 04             	mov    0x4(%eax),%ecx
   113c7:	51                   	push   %ecx
   113c8:	ff 50 18             	call   *0x18(%eax)
   113cb:	89 c3                	mov    %eax,%ebx
                                           AgpMapping->MapHandle);
   if (!NT_SUCCESS(Status))
   113cd:	58                   	pop    %eax
   113ce:	85 db                	test   %ebx,%ebx
   113d0:	5a                   	pop    %edx
   113d1:	78 13                	js     113e6 <_IntAgpReleasePhysical@8+0x36>
   {
      DPRINT1("Warning: AgpBusInterface->ReleaseMemory failed (Status = 0x%x)\n",
              Status);
   }
   
   /* Free resources */
   ExFreePool(AgpMapping);
   113d3:	83 ec 0c             	sub    $0xc,%esp
   113d6:	56                   	push   %esi
   113d7:	ff 15 28 a2 01 00    	call   *0x1a228
   113dd:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   113e0:	5b                   	pop    %ebx
   113e1:	5e                   	pop    %esi
   113e2:	5d                   	pop    %ebp
   113e3:	c2 08 00             	ret    $0x8
   113e6:	51                   	push   %ecx
   113e7:	68 af 00 00 00       	push   $0xaf
   113ec:	68 00 60 01 00       	push   $0x16000
   113f1:	68 06 60 01 00       	push   $0x16006
   113f6:	ff 15 1c a2 01 00    	call   *0x1a21c
   113fc:	58                   	pop    %eax
   113fd:	5a                   	pop    %edx
   113fe:	53                   	push   %ebx
   113ff:	68 90 60 01 00       	push   $0x16090
   11404:	ff 15 1c a2 01 00    	call   *0x1a21c
   1140a:	83 c4 10             	add    $0x10,%esp
   1140d:	83 ec 0c             	sub    $0xc,%esp
   11410:	56                   	push   %esi
   11411:	ff 15 28 a2 01 00    	call   *0x1a228
   11417:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1141a:	5b                   	pop    %ebx
   1141b:	5e                   	pop    %esi
   1141c:	5d                   	pop    %ebp
   1141d:	c2 08 00             	ret    $0x8

00011420 <_IntAgpReservePhysical@16>:
}

PHYSICAL_ADDRESS STDCALL
IntAgpReservePhysical(
   IN  PVOID HwDeviceExtension,
   IN  ULONG Pages,
   IN  VIDEO_PORT_CACHE_TYPE Caching,
   OUT PVOID *PhysicalContext)
{
   11420:	55                   	push   %ebp
   11421:	89 e5                	mov    %esp,%ebp
   11423:	57                   	push   %edi
   11424:	56                   	push   %esi
   11425:	53                   	push   %ebx
   11426:	83 ec 0c             	sub    $0xc,%esp
   PHYSICAL_ADDRESS ZeroAddress = {{0}};
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PAGP_BUS_INTERFACE_STANDARD AgpBusInterface;
   MEMORY_CACHING_TYPE MemCachingType;
   PVIDEO_PORT_AGP_MAPPING AgpMapping;
   NTSTATUS Status;

   DPRINT("AgpReservePhysical - Pages: %d, Caching: 0x%x\n", Pages, Caching);

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   AgpBusInterface = &DeviceExtension->AgpInterface;

   /* Translate memory caching type */
   if (Caching == VpNonCached)
     MemCachingType = MmNonCached;
   11429:	31 f6                	xor    %esi,%esi
   1142b:	8b 45 08             	mov    0x8(%ebp),%eax
   1142e:	8b 5d 10             	mov    0x10(%ebp),%ebx
   11431:	83 e8 4c             	sub    $0x4c,%eax
   11434:	85 db                	test   %ebx,%ebx
   11436:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   11439:	74 35                	je     11470 <_IntAgpReservePhysical@16+0x50>
   else if (Caching == VpCached)
     MemCachingType = MmCached;
   1143b:	66 be 01 00          	mov    $0x1,%si
   1143f:	83 fb 02             	cmp    $0x2,%ebx
   11442:	74 2c                	je     11470 <_IntAgpReservePhysical@16+0x50>
   else if (Caching == VpWriteCombined)
     MemCachingType = MmWriteCombined;
   11444:	66 be 02 00          	mov    $0x2,%si
   11448:	83 fb 01             	cmp    $0x1,%ebx
   1144b:	74 23                	je     11470 <_IntAgpReservePhysical@16+0x50>
   else
   {
      DPRINT1("Invalid caching type %d!\n", Caching);
   1144d:	57                   	push   %edi
   1144e:	68 d3 00 00 00       	push   $0xd3
   11453:	68 00 60 01 00       	push   $0x16000
   11458:	68 06 60 01 00       	push   $0x16006
   1145d:	ff 15 1c a2 01 00    	call   *0x1a21c
   11463:	59                   	pop    %ecx
   11464:	5e                   	pop    %esi
   11465:	53                   	push   %ebx
   11466:	68 d0 60 01 00       	push   $0x160d0
   1146b:	eb 7d                	jmp    114ea <_IntAgpReservePhysical@16+0xca>
   1146d:	8d 76 00             	lea    0x0(%esi),%esi
      return ZeroAddress;
   }

   /* Allocate an AGP mapping structure */
   AgpMapping = ExAllocatePoolWithTag(PagedPool,
   11470:	52                   	push   %edx
   11471:	68 56 49 44 50       	push   $0x50444956
   11476:	6a 10                	push   $0x10
   11478:	6a 01                	push   $0x1
   1147a:	ff 15 24 a2 01 00    	call   *0x1a224
   11480:	89 c3                	mov    %eax,%ebx
                                      sizeof(VIDEO_PORT_AGP_MAPPING),
                                      TAG_VIDEO_PORT);
   if (AgpMapping == NULL)
   11482:	58                   	pop    %eax
   11483:	85 db                	test   %ebx,%ebx
   11485:	0f 84 95 00 00 00    	je     11520 <_IntAgpReservePhysical@16+0x100>
   {
      DPRINT1("Out of memory! Couldn't allocate AGP mapping structure!\n");
      return ZeroAddress;
   }
   RtlZeroMemory(AgpMapping, sizeof(VIDEO_PORT_AGP_MAPPING));
   1148b:	fc                   	cld    
   1148c:	31 c0                	xor    %eax,%eax
   1148e:	b9 04 00 00 00       	mov    $0x4,%ecx
   11493:	89 df                	mov    %ebx,%edi

   /* Reserve memory for the AGP bus */
   Status = AgpBusInterface->ReserveMemory(AgpBusInterface->AgpContext,
   11495:	83 ec 0c             	sub    $0xc,%esp
   11498:	f3 ab                	repz stos %eax,%es:(%edi)
   1149a:	8d 43 08             	lea    0x8(%ebx),%eax
   1149d:	50                   	push   %eax
   1149e:	8d 43 04             	lea    0x4(%ebx),%eax
   114a1:	50                   	push   %eax
   114a2:	56                   	push   %esi
   114a3:	8b 45 0c             	mov    0xc(%ebp),%eax
   114a6:	50                   	push   %eax
   114a7:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   114aa:	8b 42 04             	mov    0x4(%edx),%eax
   114ad:	50                   	push   %eax
   114ae:	ff 52 14             	call   *0x14(%edx)
                                           Pages,
                                           MemCachingType,
                                           &AgpMapping->MapHandle,
                                           &AgpMapping->PhysicalAddress);
   if (!NT_SUCCESS(Status) || AgpMapping->MapHandle == NULL)
   114b1:	83 c4 0c             	add    $0xc,%esp
   114b4:	89 c7                	mov    %eax,%edi
   114b6:	85 c0                	test   %eax,%eax
   114b8:	78 07                	js     114c1 <_IntAgpReservePhysical@16+0xa1>
   114ba:	8b 43 04             	mov    0x4(%ebx),%eax
   114bd:	85 c0                	test   %eax,%eax
   114bf:	75 3f                	jne    11500 <_IntAgpReservePhysical@16+0xe0>
   {
      ExFreePool(AgpMapping);
   114c1:	83 ec 0c             	sub    $0xc,%esp
   114c4:	53                   	push   %ebx
   114c5:	ff 15 28 a2 01 00    	call   *0x1a228
      DPRINT1("Warning: AgpBusInterface->ReserveMemory failed (Status = 0x%x)\n",
   114cb:	5e                   	pop    %esi
   114cc:	58                   	pop    %eax
   114cd:	68 eb 00 00 00       	push   $0xeb
   114d2:	68 00 60 01 00       	push   $0x16000
   114d7:	68 06 60 01 00       	push   $0x16006
   114dc:	ff 15 1c a2 01 00    	call   *0x1a21c
   114e2:	59                   	pop    %ecx
   114e3:	5b                   	pop    %ebx
   114e4:	57                   	push   %edi
   114e5:	68 ec 60 01 00       	push   $0x160ec
   114ea:	ff 15 1c a2 01 00    	call   *0x1a21c
              Status);
      return ZeroAddress;
   }

   /* Fill the rest of the AGP mapping */
   AgpMapping->NumberOfPages = Pages;

   *PhysicalContext = (PVOID)AgpMapping;
   return AgpMapping->PhysicalAddress;
}
   114f0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   114f3:	31 c0                	xor    %eax,%eax
   114f5:	31 d2                	xor    %edx,%edx
   114f7:	5b                   	pop    %ebx
   114f8:	5e                   	pop    %esi
   114f9:	5f                   	pop    %edi
   114fa:	5d                   	pop    %ebp
   114fb:	c2 10 00             	ret    $0x10
   114fe:	89 f6                	mov    %esi,%esi
   11500:	8b 45 0c             	mov    0xc(%ebp),%eax
   11503:	8b 53 0c             	mov    0xc(%ebx),%edx
   11506:	89 03                	mov    %eax,(%ebx)
   11508:	8b 45 14             	mov    0x14(%ebp),%eax
   1150b:	89 18                	mov    %ebx,(%eax)
   1150d:	8b 43 08             	mov    0x8(%ebx),%eax
   11510:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11513:	5b                   	pop    %ebx
   11514:	5e                   	pop    %esi
   11515:	5f                   	pop    %edi
   11516:	5d                   	pop    %ebp
   11517:	c2 10 00             	ret    $0x10
   1151a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   11520:	50                   	push   %eax
   11521:	68 dd 00 00 00       	push   $0xdd
   11526:	68 00 60 01 00       	push   $0x16000
   1152b:	68 06 60 01 00       	push   $0x16006
   11530:	ff 15 1c a2 01 00    	call   *0x1a21c
   11536:	c7 04 24 2c 61 01 00 	movl   $0x1612c,(%esp)
   1153d:	eb ab                	jmp    114ea <_IntAgpReservePhysical@16+0xca>
   1153f:	90                   	nop    

00011540 <_IntAgpCommitVirtual@16>:
   

PVOID STDCALL
IntAgpCommitVirtual(
   IN PVOID HwDeviceExtension,
   IN PVOID VirtualContext,
   IN ULONG Pages,
   IN ULONG Offset)
{
   11540:	55                   	push   %ebp
   11541:	89 e5                	mov    %esp,%ebp
   11543:	57                   	push   %edi
   11544:	56                   	push   %esi
   11545:	53                   	push   %ebx
   11546:	83 ec 0c             	sub    $0xc,%esp
   PVIDEO_PORT_AGP_VIRTUAL_MAPPING VirtualMapping;
   PVOID BaseAddress = NULL;
   NTSTATUS Status;

   DPRINT("AgpCommitVirtual - VirtualContext: 0x%x Pages: %d, Offset: 0x%x\n",
          VirtualContext, Pages, Offset);

   VirtualMapping = (PVIDEO_PORT_AGP_VIRTUAL_MAPPING)VirtualContext;

   /* I think the NT API provides no way of reserving a part of the address space
    * and setting it up to map into a specified range of physical memory later.
    * This means that we will have to release some of the reserved virtual memory
    * and map the physical memory into it using MapViewOfSection.
    *
    * - blight (2004-12-21)
    */

   if (VirtualMapping->ProcessHandle == NULL)
   11549:	8b 55 0c             	mov    0xc(%ebp),%edx
   1154c:	8b 45 10             	mov    0x10(%ebp),%eax
   1154f:	8b 4a 04             	mov    0x4(%edx),%ecx
   11552:	85 c9                	test   %ecx,%ecx
   11554:	75 1a                	jne    11570 <_IntAgpCommitVirtual@16+0x30>
   11556:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   {
      /* FIXME: not implemented */
   }
   else /* ProcessHandle != NULL */
   {
      /* Release some virtual memory */
      ULONG Size = Pages * PAGE_SIZE;
      ULONG OffsetInBytes = Offset * PAGE_SIZE;
      BaseAddress = (PVOID)((ULONG_PTR)VirtualMapping->MappedAddress +
                                       OffsetInBytes);
      PHYSICAL_ADDRESS PhysicalAddress = VirtualMapping->AgpMapping->PhysicalAddress;
      PhysicalAddress.QuadPart += OffsetInBytes;

      Status = ZwFreeVirtualMemory(VirtualMapping->ProcessHandle,
                                   &BaseAddress,
                                   &Size, MEM_RELEASE);
      if (!NT_SUCCESS(Status))
      {
         DPRINT1("Warning: ZwFreeVirtualMemory() failed: Status = 0x%x\n", Status);
         return NULL;
      }
      ASSERT(Size == Pages * PAGE_SIZE);
      ASSERT(BaseAddress == (PVOID)((ULONG_PTR)VirtualMapping->MappedAddress +
                                               OffsetInBytes));
      
      /* Map the physical memory into the released virtual memory area */
      Status = IntVideoPortMapPhysicalMemory(VirtualMapping->ProcessHandle,
                                             PhysicalAddress,
                                             Size,
                                             PAGE_READWRITE,
                                             &BaseAddress);
      if (!NT_SUCCESS(Status))
      {
         DPRINT1("Warning: IntVideoPortMapPhysicalMemory() failed: Status = 0x%x\n", Status);
         /* Reserve the released virtual memory area again */
         Status = ZwAllocateVirtualMemory(VirtualMapping->ProcessHandle,
                                          &BaseAddress, 0, &Size, MEM_RESERVE,
                                          PAGE_NOACCESS);
         if (!NT_SUCCESS(Status))
         {
            DPRINT1("Warning: ZwAllocateVirtualMemory() failed: Status = 0x%x\n", Status);
            /* FIXME: What to do now?? */
            ASSERT(0);
            return NULL;
         }
         ASSERT(Size == Pages * PAGE_SIZE);
         ASSERT(BaseAddress == (PVOID)((ULONG_PTR)VirtualMapping->MappedAddress +
                                               OffsetInBytes));
         return NULL;
      }
      ASSERT(BaseAddress == (PVOID)((ULONG_PTR)VirtualMapping->MappedAddress +
                                               OffsetInBytes));
   }

   return BaseAddress;
   1155d:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
}
   11560:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11563:	5b                   	pop    %ebx
   11564:	5e                   	pop    %esi
   11565:	5f                   	pop    %edi
   11566:	5d                   	pop    %ebp
   11567:	c2 10 00             	ret    $0x10
   1156a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   11570:	c1 e0 0c             	shl    $0xc,%eax
   11573:	89 d3                	mov    %edx,%ebx
   11575:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   11578:	8b 45 14             	mov    0x14(%ebp),%eax
   1157b:	8b 52 08             	mov    0x8(%edx),%edx
   1157e:	31 f6                	xor    %esi,%esi
   11580:	c1 e0 0c             	shl    $0xc,%eax
   11583:	01 c2                	add    %eax,%edx
   11585:	89 55 ec             	mov    %edx,0xffffffec(%ebp)
   11588:	8b 13                	mov    (%ebx),%edx
   1158a:	89 c3                	mov    %eax,%ebx
   1158c:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   1158f:	03 5a 08             	add    0x8(%edx),%ebx
   11592:	13 72 0c             	adc    0xc(%edx),%esi
   11595:	8d 55 ec             	lea    0xffffffec(%ebp),%edx
   11598:	68 00 80 00 00       	push   $0x8000
   1159d:	50                   	push   %eax
   1159e:	52                   	push   %edx
   1159f:	51                   	push   %ecx
   115a0:	ff 15 d8 a2 01 00    	call   *0x1a2d8
   115a6:	89 c7                	mov    %eax,%edi
   115a8:	85 c0                	test   %eax,%eax
   115aa:	0f 88 9f 00 00 00    	js     1164f <_IntAgpCommitVirtual@16+0x10f>
   115b0:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
   115b3:	50                   	push   %eax
   115b4:	8b 55 0c             	mov    0xc(%ebp),%edx
   115b7:	50                   	push   %eax
   115b8:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   115bb:	50                   	push   %eax
   115bc:	6a 04                	push   $0x4
   115be:	57                   	push   %edi
   115bf:	56                   	push   %esi
   115c0:	53                   	push   %ebx
   115c1:	8b 4a 04             	mov    0x4(%edx),%ecx
   115c4:	51                   	push   %ecx
   115c5:	e8 16 25 00 00       	call   13ae0 <_IntVideoPortMapPhysicalMemory@24>
   115ca:	89 c7                	mov    %eax,%edi
   115cc:	58                   	pop    %eax
   115cd:	85 ff                	test   %edi,%edi
   115cf:	5a                   	pop    %edx
   115d0:	79 8b                	jns    1155d <_IntAgpCommitVirtual@16+0x1d>
   115d2:	56                   	push   %esi
   115d3:	68 32 01 00 00       	push   $0x132
   115d8:	68 00 60 01 00       	push   $0x16000
   115dd:	68 06 60 01 00       	push   $0x16006
   115e2:	ff 15 1c a2 01 00    	call   *0x1a21c
   115e8:	59                   	pop    %ecx
   115e9:	5b                   	pop    %ebx
   115ea:	57                   	push   %edi
   115eb:	8d 5d f0             	lea    0xfffffff0(%ebp),%ebx
   115ee:	68 68 61 01 00       	push   $0x16168
   115f3:	ff 15 1c a2 01 00    	call   *0x1a21c
   115f9:	58                   	pop    %eax
   115fa:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   115fd:	5a                   	pop    %edx
   115fe:	8b 55 0c             	mov    0xc(%ebp),%edx
   11601:	6a 01                	push   $0x1
   11603:	68 00 20 00 00       	push   $0x2000
   11608:	53                   	push   %ebx
   11609:	6a 00                	push   $0x0
   1160b:	50                   	push   %eax
   1160c:	8b 7a 04             	mov    0x4(%edx),%edi
   1160f:	57                   	push   %edi
   11610:	ff 15 d0 a2 01 00    	call   *0x1a2d0
   11616:	89 c7                	mov    %eax,%edi
   11618:	5b                   	pop    %ebx
   11619:	31 c0                	xor    %eax,%eax
   1161b:	5e                   	pop    %esi
   1161c:	85 ff                	test   %edi,%edi
   1161e:	0f 89 3c ff ff ff    	jns    11560 <_IntAgpCommitVirtual@16+0x20>
   11624:	51                   	push   %ecx
   11625:	68 39 01 00 00       	push   $0x139
   1162a:	68 00 60 01 00       	push   $0x16000
   1162f:	68 06 60 01 00       	push   $0x16006
   11634:	ff 15 1c a2 01 00    	call   *0x1a21c
   1163a:	58                   	pop    %eax
   1163b:	5a                   	pop    %edx
   1163c:	57                   	push   %edi
   1163d:	68 a8 61 01 00       	push   $0x161a8
   11642:	ff 15 1c a2 01 00    	call   *0x1a21c
   11648:	31 c0                	xor    %eax,%eax
   1164a:	e9 11 ff ff ff       	jmp    11560 <_IntAgpCommitVirtual@16+0x20>
   1164f:	51                   	push   %ecx
   11650:	68 23 01 00 00       	push   $0x123
   11655:	68 00 60 01 00       	push   $0x16000
   1165a:	68 06 60 01 00       	push   $0x16006
   1165f:	ff 15 1c a2 01 00    	call   *0x1a21c
   11665:	58                   	pop    %eax
   11666:	5a                   	pop    %edx
   11667:	57                   	push   %edi
   11668:	68 e4 61 01 00       	push   $0x161e4
   1166d:	eb d3                	jmp    11642 <_IntAgpCommitVirtual@16+0x102>
   1166f:	90                   	nop    

00011670 <_IntAgpFreeVirtual@16>:

VOID STDCALL
IntAgpFreeVirtual(
   IN PVOID HwDeviceExtension,
   IN PVOID VirtualContext,
   IN ULONG Pages,
   IN ULONG Offset)
{
   11670:	55                   	push   %ebp
   11671:	89 e5                	mov    %esp,%ebp
   11673:	56                   	push   %esi
   11674:	53                   	push   %ebx
   11675:	83 ec 10             	sub    $0x10,%esp
   11678:	8b 75 0c             	mov    0xc(%ebp),%esi
   1167b:	8b 45 10             	mov    0x10(%ebp),%eax
   PVIDEO_PORT_AGP_VIRTUAL_MAPPING VirtualMapping;
   PVOID BaseAddress = NULL;
   NTSTATUS Status;

   DPRINT("AgpFreeVirtual - VirtualContext: 0x%x Pages: %d, Offset: 0x%x\n",
          VirtualContext, Pages, Offset);

   VirtualMapping = (PVIDEO_PORT_AGP_VIRTUAL_MAPPING)VirtualContext;

   if (VirtualMapping->ProcessHandle == NULL)
   1167e:	8b 56 04             	mov    0x4(%esi),%edx
   11681:	85 d2                	test   %edx,%edx
   11683:	75 10                	jne    11695 <_IntAgpFreeVirtual@16+0x25>
   11685:	c7 45 f0 00 00 00 00 	movl   $0x0,0xfffffff0(%ebp)
   {
      /* FIXME: not implemented */
   }
   else /* ProcessHandle != NULL */
   {
      /* Unmap the section view */
      ULONG Size = Pages * PAGE_SIZE;
      ULONG OffsetInBytes = Offset * PAGE_SIZE;
      BaseAddress = (PVOID)((ULONG_PTR)VirtualMapping->MappedAddress +
                                       OffsetInBytes);

      Status = ZwUnmapViewOfSection(VirtualMapping->ProcessHandle, BaseAddress);
      if (!NT_SUCCESS(Status))
      {
         DPRINT1("Warning: ZwUnmapViewOfSection() failed: Status = 0x%x\n", Status);
         /* FIXME: What to do now?? */
         ASSERT(0);
         return;
      }

      /* And reserve the virtual memory area again */
      Status = ZwAllocateVirtualMemory(VirtualMapping->ProcessHandle,
                                       &BaseAddress, 0, &Size, MEM_RESERVE,
                                       PAGE_NOACCESS);
      if (!NT_SUCCESS(Status))
      {
         DPRINT1("Warning: ZwAllocateVirtualMemory() failed: Status = 0x%x\n", Status);
         /* FIXME: What to do now?? */
         ASSERT(0);
         return;
      }
      ASSERT(Size == Pages * PAGE_SIZE);
      ASSERT(BaseAddress == (PVOID)((ULONG_PTR)VirtualMapping->MappedAddress +
                                               OffsetInBytes));
   }
}
   1168c:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1168f:	5b                   	pop    %ebx
   11690:	5e                   	pop    %esi
   11691:	5d                   	pop    %ebp
   11692:	c2 10 00             	ret    $0x10
   11695:	c1 e0 0c             	shl    $0xc,%eax
   11698:	8b 5e 08             	mov    0x8(%esi),%ebx
   1169b:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
   1169e:	8b 45 14             	mov    0x14(%ebp),%eax
   116a1:	c1 e0 0c             	shl    $0xc,%eax
   116a4:	01 d8                	add    %ebx,%eax
   116a6:	51                   	push   %ecx
   116a7:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   116aa:	51                   	push   %ecx
   116ab:	50                   	push   %eax
   116ac:	52                   	push   %edx
   116ad:	ff 15 f0 a2 01 00    	call   *0x1a2f0
   116b3:	89 c3                	mov    %eax,%ebx
   116b5:	58                   	pop    %eax
   116b6:	85 db                	test   %ebx,%ebx
   116b8:	5a                   	pop    %edx
   116b9:	78 45                	js     11700 <_IntAgpFreeVirtual@16+0x90>
   116bb:	8d 45 f4             	lea    0xfffffff4(%ebp),%eax
   116be:	53                   	push   %ebx
   116bf:	53                   	push   %ebx
   116c0:	6a 01                	push   $0x1
   116c2:	68 00 20 00 00       	push   $0x2000
   116c7:	50                   	push   %eax
   116c8:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   116cb:	6a 00                	push   $0x0
   116cd:	50                   	push   %eax
   116ce:	8b 4e 04             	mov    0x4(%esi),%ecx
   116d1:	51                   	push   %ecx
   116d2:	ff 15 d0 a2 01 00    	call   *0x1a2d0
   116d8:	89 c3                	mov    %eax,%ebx
   116da:	58                   	pop    %eax
   116db:	85 db                	test   %ebx,%ebx
   116dd:	5a                   	pop    %edx
   116de:	79 ac                	jns    1168c <_IntAgpFreeVirtual@16+0x1c>
   116e0:	50                   	push   %eax
   116e1:	68 75 01 00 00       	push   $0x175
   116e6:	68 00 60 01 00       	push   $0x16000
   116eb:	68 06 60 01 00       	push   $0x16006
   116f0:	ff 15 1c a2 01 00    	call   *0x1a21c
   116f6:	5e                   	pop    %esi
   116f7:	58                   	pop    %eax
   116f8:	53                   	push   %ebx
   116f9:	68 a8 61 01 00       	push   $0x161a8
   116fe:	eb 1e                	jmp    1171e <_IntAgpFreeVirtual@16+0xae>
   11700:	50                   	push   %eax
   11701:	68 69 01 00 00       	push   $0x169
   11706:	68 00 60 01 00       	push   $0x16000
   1170b:	68 06 60 01 00       	push   $0x16006
   11710:	ff 15 1c a2 01 00    	call   *0x1a21c
   11716:	5e                   	pop    %esi
   11717:	58                   	pop    %eax
   11718:	53                   	push   %ebx
   11719:	68 1c 62 01 00       	push   $0x1621c
   1171e:	ff 15 1c a2 01 00    	call   *0x1a21c
   11724:	e9 63 ff ff ff       	jmp    1168c <_IntAgpFreeVirtual@16+0x1c>
   11729:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011730 <_IntAgpReleaseVirtual@8>:

VOID STDCALL
IntAgpReleaseVirtual(
   IN PVOID HwDeviceExtension,
   IN PVOID VirtualContext)
{
   11730:	55                   	push   %ebp
   11731:	89 e5                	mov    %esp,%ebp
   11733:	56                   	push   %esi
   11734:	53                   	push   %ebx
   11735:	83 ec 10             	sub    $0x10,%esp
   11738:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   PVIDEO_PORT_AGP_VIRTUAL_MAPPING VirtualMapping;
   NTSTATUS Status;

   DPRINT("AgpReleaseVirtual - VirtualContext: 0x%x\n", VirtualContext);

   VirtualMapping = (PVIDEO_PORT_AGP_VIRTUAL_MAPPING)VirtualContext;
   
   /* Release the virtual memory */
   if (VirtualMapping->ProcessHandle == NULL)
   1173b:	8b 53 04             	mov    0x4(%ebx),%edx
   1173e:	85 d2                	test   %edx,%edx
   11740:	75 13                	jne    11755 <_IntAgpReleaseVirtual@8+0x25>
   {
      /* FIXME: not implemented */
   }
   else /* ProcessHandle != NULL */
   {
      /* Release the allocated virtual memory */
      ULONG Size = VirtualMapping->AgpMapping->NumberOfPages * PAGE_SIZE;
      Status = ZwFreeVirtualMemory(VirtualMapping->ProcessHandle,
                                   &VirtualMapping->MappedAddress,
                                   &Size, MEM_RELEASE);
      if (!NT_SUCCESS(Status))
      {
         DPRINT1("Warning: ZwFreeVirtualMemory() failed: Status = 0x%x\n", Status);
      }
   }
   
   /* Free resources */
   ExFreePool(VirtualMapping);
   11742:	83 ec 0c             	sub    $0xc,%esp
   11745:	53                   	push   %ebx
   11746:	ff 15 28 a2 01 00    	call   *0x1a228
   1174c:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   1174f:	5b                   	pop    %ebx
   11750:	5e                   	pop    %esi
   11751:	5d                   	pop    %ebp
   11752:	c2 08 00             	ret    $0x8
   11755:	8b 03                	mov    (%ebx),%eax
   11757:	8b 00                	mov    (%eax),%eax
   11759:	68 00 80 00 00       	push   $0x8000
   1175e:	c1 e0 0c             	shl    $0xc,%eax
   11761:	89 45 f4             	mov    %eax,0xfffffff4(%ebp)
   11764:	8d 45 f4             	lea    0xfffffff4(%ebp),%eax
   11767:	50                   	push   %eax
   11768:	8d 43 08             	lea    0x8(%ebx),%eax
   1176b:	50                   	push   %eax
   1176c:	52                   	push   %edx
   1176d:	ff 15 d8 a2 01 00    	call   *0x1a2d8
   11773:	89 c6                	mov    %eax,%esi
   11775:	85 c0                	test   %eax,%eax
   11777:	79 c9                	jns    11742 <_IntAgpReleaseVirtual@8+0x12>
   11779:	51                   	push   %ecx
   1177a:	68 9a 01 00 00       	push   $0x19a
   1177f:	68 00 60 01 00       	push   $0x16000
   11784:	68 06 60 01 00       	push   $0x16006
   11789:	ff 15 1c a2 01 00    	call   *0x1a21c
   1178f:	58                   	pop    %eax
   11790:	5a                   	pop    %edx
   11791:	56                   	push   %esi
   11792:	68 e4 61 01 00       	push   $0x161e4
   11797:	ff 15 1c a2 01 00    	call   *0x1a21c
   1179d:	83 c4 10             	add    $0x10,%esp
   117a0:	eb a0                	jmp    11742 <_IntAgpReleaseVirtual@8+0x12>
   117a2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   117a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000117b0 <_IntAgpReserveVirtual@16>:
}

PVOID STDCALL
IntAgpReserveVirtual(
   IN  PVOID HwDeviceExtension,
   IN  HANDLE ProcessHandle,
   IN  PVOID PhysicalContext,
   OUT PVOID *VirtualContext)
{
   117b0:	55                   	push   %ebp
   117b1:	89 e5                	mov    %esp,%ebp
   117b3:	57                   	push   %edi
   117b4:	56                   	push   %esi
   117b5:	53                   	push   %ebx
   117b6:	83 ec 10             	sub    $0x10,%esp
   117b9:	8b 75 0c             	mov    0xc(%ebp),%esi
   PVIDEO_PORT_AGP_MAPPING AgpMapping;
   PVIDEO_PORT_AGP_VIRTUAL_MAPPING VirtualMapping;
   PVOID MappedAddress;
   NTSTATUS Status;

   DPRINT("AgpReserveVirtual - ProcessHandle: 0x%x PhysicalContext: 0x%x\n",
          ProcessHandle, PhysicalContext);

   AgpMapping = (PVIDEO_PORT_AGP_MAPPING)PhysicalContext;

   /* Allocate an AGP virtual mapping structure */
   VirtualMapping = ExAllocatePoolWithTag(PagedPool,
   117bc:	68 56 49 44 50       	push   $0x50444956
   117c1:	6a 0c                	push   $0xc
   117c3:	6a 01                	push   $0x1
   117c5:	ff 15 24 a2 01 00    	call   *0x1a224
   117cb:	89 c3                	mov    %eax,%ebx
                                          sizeof(VIDEO_PORT_AGP_VIRTUAL_MAPPING),
                                          TAG_VIDEO_PORT);
   if (VirtualMapping == NULL)
   117cd:	5f                   	pop    %edi
   117ce:	85 c0                	test   %eax,%eax
   117d0:	74 6f                	je     11841 <_IntAgpReserveVirtual@16+0x91>
   {
      DPRINT1("Out of memory! Couldn't allocate AGP virtual mapping structure!\n");
      return NULL;
   }
   RtlZeroMemory(VirtualMapping, sizeof(VIDEO_PORT_AGP_VIRTUAL_MAPPING));
   117d2:	fc                   	cld    
   117d3:	31 c0                	xor    %eax,%eax
   117d5:	b9 03 00 00 00       	mov    $0x3,%ecx
   117da:	89 df                	mov    %ebx,%edi

   /* Reserve a virtual memory area for the physical pages. */
   if (ProcessHandle == NULL)
   117dc:	85 f6                	test   %esi,%esi
   117de:	f3 ab                	repz stos %eax,%es:(%edi)
   117e0:	74 51                	je     11833 <_IntAgpReserveVirtual@16+0x83>
   {
      /* FIXME: What to do in this case? */
      ExFreePool(VirtualMapping);
      return NULL;
   }
   else /* ProcessHandle != NULL */
   {
      /* Reserve memory for usermode */
      ULONG Size = AgpMapping->NumberOfPages * PAGE_SIZE;
   117e2:	8b 55 10             	mov    0x10(%ebp),%edx
      MappedAddress = NULL;
   117e5:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   117ec:	8b 02                	mov    (%edx),%eax
      Status = ZwAllocateVirtualMemory(ProcessHandle, &MappedAddress, 0, &Size,
   117ee:	51                   	push   %ecx
   117ef:	c1 e0 0c             	shl    $0xc,%eax
   117f2:	51                   	push   %ecx
   117f3:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   117f6:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   117f9:	6a 01                	push   $0x1
   117fb:	68 00 20 00 00       	push   $0x2000
   11800:	50                   	push   %eax
   11801:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   11804:	6a 00                	push   $0x0
   11806:	50                   	push   %eax
   11807:	56                   	push   %esi
   11808:	ff 15 d0 a2 01 00    	call   *0x1a2d0
                                       MEM_RESERVE, PAGE_NOACCESS);
      if (!NT_SUCCESS(Status))
   1180e:	5f                   	pop    %edi
   1180f:	85 c0                	test   %eax,%eax
   11811:	5a                   	pop    %edx
   11812:	78 1f                	js     11833 <_IntAgpReserveVirtual@16+0x83>
      {
         ExFreePool(VirtualMapping);
         DPRINT("ZwAllocateVirtualMemory() failed: Status = 0x%x\n", Status);
         return NULL;
      }
   }

   /* Fill the AGP virtual mapping */
   VirtualMapping->AgpMapping = AgpMapping;
   11814:	8b 45 10             	mov    0x10(%ebp),%eax
   VirtualMapping->ProcessHandle = ProcessHandle;
   VirtualMapping->MappedAddress = MappedAddress;
   11817:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   1181a:	89 03                	mov    %eax,(%ebx)

   *VirtualContext = (PVOID)VirtualMapping;
   1181c:	8b 45 14             	mov    0x14(%ebp),%eax
   1181f:	89 73 04             	mov    %esi,0x4(%ebx)
   11822:	89 53 08             	mov    %edx,0x8(%ebx)
   11825:	89 18                	mov    %ebx,(%eax)
   return MappedAddress;
   11827:	89 d0                	mov    %edx,%eax
}
   11829:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1182c:	5b                   	pop    %ebx
   1182d:	5e                   	pop    %esi
   1182e:	5f                   	pop    %edi
   1182f:	5d                   	pop    %ebp
   11830:	c2 10 00             	ret    $0x10
   11833:	83 ec 0c             	sub    $0xc,%esp
   11836:	53                   	push   %ebx
   11837:	ff 15 28 a2 01 00    	call   *0x1a228
   1183d:	31 c0                	xor    %eax,%eax
   1183f:	eb e8                	jmp    11829 <_IntAgpReserveVirtual@16+0x79>
   11841:	53                   	push   %ebx
   11842:	68 b9 01 00 00       	push   $0x1b9
   11847:	68 00 60 01 00       	push   $0x16000
   1184c:	68 06 60 01 00       	push   $0x16006
   11851:	ff 15 1c a2 01 00    	call   *0x1a21c
   11857:	c7 04 24 54 62 01 00 	movl   $0x16254,(%esp)
   1185e:	ff 15 1c a2 01 00    	call   *0x1a21c
   11864:	31 c0                	xor    %eax,%eax
   11866:	eb c1                	jmp    11829 <_IntAgpReserveVirtual@16+0x79>
   11868:	90                   	nop    
   11869:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011870 <_IntAgpSetRate@8>:


BOOLEAN STDCALL
IntAgpSetRate(
   IN PVOID HwDeviceExtension,
   IN ULONG Rate)
{
   11870:	55                   	push   %ebp
   11871:	89 e5                	mov    %esp,%ebp
   11873:	83 ec 10             	sub    $0x10,%esp
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PAGP_BUS_INTERFACE_STANDARD AgpBusInterface;

   DPRINT("AgpSetRate - Rate: %d\n", Rate);

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   AgpBusInterface = &DeviceExtension->AgpInterface;
   11876:	8b 45 08             	mov    0x8(%ebp),%eax
   
   return NT_SUCCESS(AgpBusInterface->SetRate(AgpBusInterface->AgpContext, Rate));
   11879:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1187c:	83 e8 4c             	sub    $0x4c,%eax
   1187f:	51                   	push   %ecx
   11880:	8b 50 04             	mov    0x4(%eax),%edx
   11883:	52                   	push   %edx
   11884:	ff 50 28             	call   *0x28(%eax)
   11887:	83 f0 ff             	xor    $0xffffffff,%eax
}
   1188a:	c9                   	leave  
   1188b:	c1 e8 1f             	shr    $0x1f,%eax
   1188e:	c2 08 00             	ret    $0x8
   11891:	eb 0d                	jmp    118a0 <_IntAgpGetInterface@8>
   11893:	90                   	nop    
   11894:	90                   	nop    
   11895:	90                   	nop    
   11896:	90                   	nop    
   11897:	90                   	nop    
   11898:	90                   	nop    
   11899:	90                   	nop    
   1189a:	90                   	nop    
   1189b:	90                   	nop    
   1189c:	90                   	nop    
   1189d:	90                   	nop    
   1189e:	90                   	nop    
   1189f:	90                   	nop    

000118a0 <_IntAgpGetInterface@8>:


NTSTATUS STDCALL
IntAgpGetInterface(
   IN PVOID HwDeviceExtension,
   IN OUT PINTERFACE Interface)
{
   118a0:	55                   	push   %ebp
   IO_STATUS_BLOCK IoStatusBlock;
   IO_STACK_LOCATION IoStack;
   NTSTATUS Status;
   PVIDEO_PORT_AGP_INTERFACE_2 AgpInterface;
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PAGP_BUS_INTERFACE_STANDARD AgpBusInterface;

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   AgpBusInterface = &DeviceExtension->AgpInterface;
   AgpInterface = (PVIDEO_PORT_AGP_INTERFACE_2)Interface;

   ASSERT((Interface->Version == VIDEO_PORT_AGP_INTERFACE_VERSION_2 &&
           Interface->Size >= sizeof(VIDEO_PORT_AGP_INTERFACE_2)) ||
          (Interface->Version == VIDEO_PORT_AGP_INTERFACE_VERSION_1 &&
           Interface->Size >= sizeof(VIDEO_PORT_AGP_INTERFACE)));

   if (DeviceExtension->NextDeviceObject == NULL)
   {
      DPRINT("DeviceExtension->NextDeviceObject is NULL!\n");
      return STATUS_UNSUCCESSFUL;
   118a1:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   118a6:	89 e5                	mov    %esp,%ebp
   118a8:	57                   	push   %edi
   118a9:	56                   	push   %esi
   118aa:	53                   	push   %ebx
   118ab:	83 ec 5c             	sub    $0x5c,%esp
   118ae:	8b 4d 08             	mov    0x8(%ebp),%ecx
   118b1:	8b 75 0c             	mov    0xc(%ebp),%esi
   118b4:	8d 91 4c ff ff ff    	lea    0xffffff4c(%ecx),%edx
   118ba:	8d 79 b4             	lea    0xffffffb4(%ecx),%edi
   118bd:	8b 5a 0c             	mov    0xc(%edx),%ebx
   118c0:	85 db                	test   %ebx,%ebx
   118c2:	0f 84 26 01 00 00    	je     119ee <_IntAgpGetInterface@8+0x14e>
   }

   /* Query the interface from the AGP bus driver */
   if (DeviceExtension->AgpInterface.Size == 0)
   118c8:	66 83 7a 68 00       	cmpw   $0x0,0x68(%edx)
   118cd:	0f 85 b3 00 00 00    	jne    11986 <_IntAgpGetInterface@8+0xe6>
   {
      AgpBusInterface->Size = sizeof(AGP_BUS_INTERFACE_STANDARD);
   118d3:	66 c7 41 b4 2c 00    	movw   $0x2c,0xffffffb4(%ecx)
      if (Interface->Version == VIDEO_PORT_AGP_INTERFACE_VERSION_1)
         AgpBusInterface->Version = AGP_BUS_INTERFACE_V1;
   118d9:	66 83 7e 02 01       	cmpw   $0x1,0x2(%esi)
   118de:	0f 95 c0             	setne  %al
   118e1:	25 ff 00 00 00       	and    $0xff,%eax
   118e6:	83 ec 0c             	sub    $0xc,%esp
   118e9:	40                   	inc    %eax
   118ea:	66 89 47 02          	mov    %ax,0x2(%edi)
      else /* if (InterfaceVersion == VIDEO_PORT_AGP_INTERFACE_VERSION_2) */
         AgpBusInterface->Version = AGP_BUS_INTERFACE_V2;
      IoStack.Parameters.QueryInterface.Size = AgpBusInterface->Size;
   118ee:	66 c7 45 c0 2c 00    	movw   $0x2c,0xffffffc0(%ebp)
      IoStack.Parameters.QueryInterface.Version = AgpBusInterface->Version;
   118f4:	66 89 45 c2          	mov    %ax,0xffffffc2(%ebp)
      IoStack.Parameters.QueryInterface.Interface = (PINTERFACE)AgpBusInterface;
   118f8:	89 7d c4             	mov    %edi,0xffffffc4(%ebp)
      IoStack.Parameters.QueryInterface.InterfaceType =
   118fb:	c7 45 bc f0 11 01 00 	movl   $0x111f0,0xffffffbc(%ebp)
   11902:	53                   	push   %ebx
   11903:	ff 15 4c a2 01 00    	call   *0x1a24c
   11909:	5a                   	pop    %edx
   1190a:	59                   	pop    %ecx
   1190b:	89 45 9c             	mov    %eax,0xffffff9c(%ebp)
   1190e:	8d 45 a8             	lea    0xffffffa8(%ebp),%eax
   11911:	6a 00                	push   $0x0
   11913:	6a 00                	push   $0x0
   11915:	50                   	push   %eax
   11916:	ff 15 84 a2 01 00    	call   *0x1a284
   1191c:	8d 45 a0             	lea    0xffffffa0(%ebp),%eax
   1191f:	8b 5d 9c             	mov    0xffffff9c(%ebp),%ebx
   11922:	50                   	push   %eax
   11923:	8d 45 a8             	lea    0xffffffa8(%ebp),%eax
   11926:	50                   	push   %eax
   11927:	6a 00                	push   $0x0
   11929:	6a 00                	push   $0x0
   1192b:	6a 00                	push   $0x0
   1192d:	53                   	push   %ebx
   1192e:	6a 1b                	push   $0x1b
   11930:	ff 15 34 a2 01 00    	call   *0x1a234
   11936:	89 c3                	mov    %eax,%ebx
   11938:	8b 50 60             	mov    0x60(%eax),%edx
   1193b:	c7 40 18 02 00 00 c0 	movl   $0xc0000002,0x18(%eax)
   11942:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
   11949:	8d 45 bc             	lea    0xffffffbc(%ebp),%eax
   1194c:	c6 42 dd 08          	movb   $0x8,0xffffffdd(%edx)
   11950:	83 ea 20             	sub    $0x20,%edx
   11953:	6a 10                	push   $0x10
   11955:	50                   	push   %eax
   11956:	52                   	push   %edx
   11957:	e8 34 2f 00 00       	call   14890 <_memmove>
   1195c:	83 c4 10             	add    $0x10,%esp
   1195f:	89 da                	mov    %ebx,%edx
   11961:	8b 4d 9c             	mov    0xffffff9c(%ebp),%ecx
   11964:	ff 15 08 a2 01 00    	call   *0x1a208
   1196a:	89 c3                	mov    %eax,%ebx
   1196c:	3d 03 01 00 00       	cmp    $0x103,%eax
   11971:	0f 84 81 00 00 00    	je     119f8 <_IntAgpGetInterface@8+0x158>
   11977:	8b 4d 9c             	mov    0xffffff9c(%ebp),%ecx
   1197a:	ff 15 18 a2 01 00    	call   *0x1a218
         &GUID_AGP_TARGET_BUS_INTERFACE_STANDARD;
      Status = IopInitiatePnpIrp(DeviceExtension->NextDeviceObject,
         &IoStatusBlock, IRP_MN_QUERY_INTERFACE, &IoStack);
      if (!NT_SUCCESS(Status))
      {
         DPRINT("IopInitiatePnpIrp() failed! (Status 0x%x)\n", Status);
         return Status;
   11980:	89 d8                	mov    %ebx,%eax
   11982:	85 db                	test   %ebx,%ebx
   11984:	78 68                	js     119ee <_IntAgpGetInterface@8+0x14e>
      }
      DPRINT("Got AGP driver interface!\n");
   }

   /* FIXME: Not sure if we should wrap the reference/dereference functions */
   AgpInterface->Context = AgpBusInterface->AgpContext;
   11986:	8b 47 04             	mov    0x4(%edi),%eax
   AgpInterface->InterfaceReference = AgpBusInterface->InterfaceReference;
   AgpInterface->InterfaceDereference = AgpBusInterface->InterfaceDereference;
   AgpInterface->AgpReservePhysical = IntAgpReservePhysical;
   11989:	c7 46 10 20 14 01 00 	movl   $0x11420,0x10(%esi)
   11990:	89 46 04             	mov    %eax,0x4(%esi)
   11993:	8b 47 08             	mov    0x8(%edi),%eax
   11996:	89 46 08             	mov    %eax,0x8(%esi)
   AgpInterface->AgpReleasePhysical = IntAgpReleasePhysical;
   11999:	c7 46 14 b0 13 01 00 	movl   $0x113b0,0x14(%esi)
   119a0:	8b 47 0c             	mov    0xc(%edi),%eax
   AgpInterface->AgpCommitPhysical = IntAgpCommitPhysical;
   119a3:	c7 46 18 c0 12 01 00 	movl   $0x112c0,0x18(%esi)
   119aa:	89 46 0c             	mov    %eax,0xc(%esi)
   AgpInterface->AgpFreePhysical = IntAgpFreePhysical;
   119ad:	c7 46 1c 50 13 01 00 	movl   $0x11350,0x1c(%esi)
   AgpInterface->AgpReserveVirtual = IntAgpReserveVirtual;
   119b4:	c7 46 20 b0 17 01 00 	movl   $0x117b0,0x20(%esi)
   AgpInterface->AgpReleaseVirtual = IntAgpReleaseVirtual;
   119bb:	c7 46 24 30 17 01 00 	movl   $0x11730,0x24(%esi)
   AgpInterface->AgpCommitVirtual = IntAgpCommitVirtual;
   119c2:	c7 46 28 40 15 01 00 	movl   $0x11540,0x28(%esi)
   AgpInterface->AgpFreeVirtual = IntAgpFreeVirtual;
   119c9:	c7 46 2c 70 16 01 00 	movl   $0x11670,0x2c(%esi)
   AgpInterface->AgpAllocationLimit = 0x1000000; /* FIXME: using 16 MB for now */
   119d0:	c7 46 30 00 00 00 01 	movl   $0x1000000,0x30(%esi)
   119d7:	c7 46 34 00 00 00 00 	movl   $0x0,0x34(%esi)

   if (AgpInterface->Version >= VIDEO_PORT_AGP_INTERFACE_VERSION_2)
   119de:	66 83 7e 02 01       	cmpw   $0x1,0x2(%esi)
   119e3:	76 07                	jbe    119ec <_IntAgpGetInterface@8+0x14c>
   {
      AgpInterface->AgpSetRate = IntAgpSetRate;
   119e5:	c7 46 38 70 18 01 00 	movl   $0x11870,0x38(%esi)
   }

   return STATUS_SUCCESS;
   119ec:	31 c0                	xor    %eax,%eax
}
   119ee:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   119f1:	5b                   	pop    %ebx
   119f2:	5e                   	pop    %esi
   119f3:	5f                   	pop    %edi
   119f4:	5d                   	pop    %ebp
   119f5:	c2 08 00             	ret    $0x8
   119f8:	83 ec 0c             	sub    $0xc,%esp
   119fb:	8d 45 a8             	lea    0xffffffa8(%ebp),%eax
   119fe:	6a 00                	push   $0x0
   11a00:	6a 00                	push   $0x0
   11a02:	6a 00                	push   $0x0
   11a04:	6a 00                	push   $0x0
   11a06:	50                   	push   %eax
   11a07:	ff 15 a4 a2 01 00    	call   *0x1a2a4
   11a0d:	8b 5d a0             	mov    0xffffffa0(%ebp),%ebx
   11a10:	83 c4 0c             	add    $0xc,%esp
   11a13:	e9 5f ff ff ff       	jmp    11977 <_IntAgpGetInterface@8+0xd7>
   11a18:	90                   	nop    
   11a19:	90                   	nop    
   11a1a:	90                   	nop    
   11a1b:	90                   	nop    
   11a1c:	90                   	nop    
   11a1d:	90                   	nop    
   11a1e:	90                   	nop    
   11a1f:	90                   	nop    

00011a20 <_I2CWrite>:
   11a20:	55                   	push   %ebp
   11a21:	89 e5                	mov    %esp,%ebp
   11a23:	56                   	push   %esi
   11a24:	53                   	push   %ebx
   11a25:	89 c3                	mov    %eax,%ebx
   11a27:	83 ec 10             	sub    $0x10,%esp
   11a2a:	89 d6                	mov    %edx,%esi
   11a2c:	8a 45 08             	mov    0x8(%ebp),%al
   11a2f:	c6 45 f6 80          	movb   $0x80,0xfffffff6(%ebp)
   11a33:	88 45 f7             	mov    %al,0xfffffff7(%ebp)
   11a36:	50                   	push   %eax
   11a37:	50                   	push   %eax
   11a38:	6a 00                	push   $0x0
   11a3a:	53                   	push   %ebx
   11a3b:	ff 16                	call   *(%esi)
   11a3d:	8a 45 f6             	mov    0xfffffff6(%ebp),%al
   11a40:	84 45 f7             	test   %al,0xfffffff7(%ebp)
   11a43:	0f 95 c0             	setne  %al
   11a46:	25 ff 00 00 00       	and    $0xff,%eax
   11a4b:	50                   	push   %eax
   11a4c:	53                   	push   %ebx
   11a4d:	ff 56 04             	call   *0x4(%esi)
   11a50:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11a57:	6a 00                	push   $0x0
   11a59:	6a 00                	push   $0x0
   11a5b:	ff 15 74 a2 01 00    	call   *0x1a274
   11a61:	50                   	push   %eax
   11a62:	6a 01                	push   $0x1
   11a64:	53                   	push   %ebx
   11a65:	ff 16                	call   *(%esi)
   11a67:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11a6e:	6a 00                	push   $0x0
   11a70:	6a 00                	push   $0x0
   11a72:	ff 15 74 a2 01 00    	call   *0x1a274
   11a78:	d0 6d f6             	shrb   0xfffffff6(%ebp)
   11a7b:	58                   	pop    %eax
   11a7c:	75 b8                	jne    11a36 <_I2CWrite+0x16>
   11a7e:	50                   	push   %eax
   11a7f:	50                   	push   %eax
   11a80:	6a 00                	push   $0x0
   11a82:	53                   	push   %ebx
   11a83:	ff 16                	call   *(%esi)
   11a85:	6a 01                	push   $0x1
   11a87:	53                   	push   %ebx
   11a88:	ff 56 04             	call   *0x4(%esi)
   11a8b:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11a92:	6a 00                	push   $0x0
   11a94:	6a 00                	push   $0x0
   11a96:	ff 15 74 a2 01 00    	call   *0x1a274
   11a9c:	51                   	push   %ecx
   11a9d:	6a 01                	push   $0x1
   11a9f:	53                   	push   %ebx
   11aa0:	ff 16                	call   *(%esi)
   11aa2:	58                   	pop    %eax
   11aa3:	5a                   	pop    %edx
   11aa4:	50                   	push   %eax
   11aa5:	68 00 50 01 00       	push   $0x15000
   11aaa:	6a 00                	push   $0x0
   11aac:	6a 00                	push   $0x0
   11aae:	ff 15 74 a2 01 00    	call   *0x1a274
   11ab4:	50                   	push   %eax
   11ab5:	50                   	push   %eax
   11ab6:	53                   	push   %ebx
   11ab7:	ff 56 08             	call   *0x8(%esi)
   11aba:	83 c4 0c             	add    $0xc,%esp
   11abd:	fe c8                	dec    %al
   11abf:	75 e3                	jne    11aa4 <_I2CWrite+0x84>
   11ac1:	83 ec 0c             	sub    $0xc,%esp
   11ac4:	53                   	push   %ebx
   11ac5:	ff 56 0c             	call   *0xc(%esi)
   11ac8:	5a                   	pop    %edx
   11ac9:	59                   	pop    %ecx
   11aca:	84 c0                	test   %al,%al
   11acc:	68 00 50 01 00       	push   $0x15000
   11ad1:	0f 94 c3             	sete   %bl
   11ad4:	6a 00                	push   $0x0
   11ad6:	6a 00                	push   $0x0
   11ad8:	ff 15 74 a2 01 00    	call   *0x1a274
   11ade:	81 e3 ff 00 00 00    	and    $0xff,%ebx
   11ae4:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11ae7:	89 d8                	mov    %ebx,%eax
   11ae9:	5b                   	pop    %ebx
   11aea:	5e                   	pop    %esi
   11aeb:	5d                   	pop    %ebp
   11aec:	c3                   	ret    
   11aed:	8d 76 00             	lea    0x0(%esi),%esi

00011af0 <_I2CStop>:
   11af0:	55                   	push   %ebp
   11af1:	89 e5                	mov    %esp,%ebp
   11af3:	56                   	push   %esi
   11af4:	89 d6                	mov    %edx,%esi
   11af6:	53                   	push   %ebx
   11af7:	89 c3                	mov    %eax,%ebx
   11af9:	52                   	push   %edx
   11afa:	52                   	push   %edx
   11afb:	6a 00                	push   $0x0
   11afd:	50                   	push   %eax
   11afe:	ff 16                	call   *(%esi)
   11b00:	6a 00                	push   $0x0
   11b02:	53                   	push   %ebx
   11b03:	ff 56 04             	call   *0x4(%esi)
   11b06:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11b0d:	6a 00                	push   $0x0
   11b0f:	6a 00                	push   $0x0
   11b11:	ff 15 74 a2 01 00    	call   *0x1a274
   11b17:	50                   	push   %eax
   11b18:	6a 01                	push   $0x1
   11b1a:	53                   	push   %ebx
   11b1b:	ff 16                	call   *(%esi)
   11b1d:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11b24:	6a 00                	push   $0x0
   11b26:	6a 00                	push   $0x0
   11b28:	ff 15 74 a2 01 00    	call   *0x1a274
   11b2e:	50                   	push   %eax
   11b2f:	6a 01                	push   $0x1
   11b31:	53                   	push   %ebx
   11b32:	ff 56 04             	call   *0x4(%esi)
   11b35:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11b38:	5b                   	pop    %ebx
   11b39:	5e                   	pop    %esi
   11b3a:	5d                   	pop    %ebp
   11b3b:	c3                   	ret    
   11b3c:	8d 74 26 00          	lea    0x0(%esi),%esi

00011b40 <_I2CStart>:
   11b40:	55                   	push   %ebp
   11b41:	89 e5                	mov    %esp,%ebp
   11b43:	57                   	push   %edi
   11b44:	56                   	push   %esi
   11b45:	53                   	push   %ebx
   11b46:	83 ec 18             	sub    $0x18,%esp
   11b49:	89 c6                	mov    %eax,%esi
   11b4b:	89 d3                	mov    %edx,%ebx
   11b4d:	0f b6 7d 08          	movzbl 0x8(%ebp),%edi
   11b51:	50                   	push   %eax
   11b52:	ff 52 0c             	call   *0xc(%edx)
   11b55:	83 c4 0c             	add    $0xc,%esp
   11b58:	84 c0                	test   %al,%al
   11b5a:	74 0e                	je     11b6a <_I2CStart+0x2a>
   11b5c:	83 ec 0c             	sub    $0xc,%esp
   11b5f:	56                   	push   %esi
   11b60:	ff 53 08             	call   *0x8(%ebx)
   11b63:	83 c4 0c             	add    $0xc,%esp
   11b66:	84 c0                	test   %al,%al
   11b68:	75 36                	jne    11ba0 <_I2CStart+0x60>
   11b6a:	50                   	push   %eax
   11b6b:	68 83 00 00 00       	push   $0x83
   11b70:	68 a0 62 01 00       	push   $0x162a0
   11b75:	68 a6 62 01 00       	push   $0x162a6
   11b7a:	ff 15 1c a2 01 00    	call   *0x1a21c
   11b80:	c7 04 24 af 62 01 00 	movl   $0x162af,(%esp)
   11b87:	ff 15 1c a2 01 00    	call   *0x1a21c
   11b8d:	31 d2                	xor    %edx,%edx
   11b8f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11b92:	89 d0                	mov    %edx,%eax
   11b94:	5b                   	pop    %ebx
   11b95:	5e                   	pop    %esi
   11b96:	5f                   	pop    %edi
   11b97:	5d                   	pop    %ebp
   11b98:	c3                   	ret    
   11b99:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   11ba0:	50                   	push   %eax
   11ba1:	50                   	push   %eax
   11ba2:	6a 00                	push   $0x0
   11ba4:	56                   	push   %esi
   11ba5:	ff 53 04             	call   *0x4(%ebx)
   11ba8:	81 e7 ff 00 00 00    	and    $0xff,%edi
   11bae:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11bb5:	6a 00                	push   $0x0
   11bb7:	6a 00                	push   $0x0
   11bb9:	ff 15 74 a2 01 00    	call   *0x1a274
   11bbf:	89 da                	mov    %ebx,%edx
   11bc1:	50                   	push   %eax
   11bc2:	50                   	push   %eax
   11bc3:	89 f0                	mov    %esi,%eax
   11bc5:	57                   	push   %edi
   11bc6:	e8 55 fe ff ff       	call   11a20 <_I2CWrite>
   11bcb:	83 c4 10             	add    $0x10,%esp
   11bce:	ba 01 00 00 00       	mov    $0x1,%edx
   11bd3:	85 c0                	test   %eax,%eax
   11bd5:	75 b8                	jne    11b8f <_I2CStart+0x4f>
   11bd7:	89 da                	mov    %ebx,%edx
   11bd9:	89 f0                	mov    %esi,%eax
   11bdb:	e8 10 ff ff ff       	call   11af0 <_I2CStop>
   11be0:	56                   	push   %esi
   11be1:	68 8e 00 00 00       	push   $0x8e
   11be6:	68 a0 62 01 00       	push   $0x162a0
   11beb:	68 a6 62 01 00       	push   $0x162a6
   11bf0:	ff 15 1c a2 01 00    	call   *0x1a21c
   11bf6:	59                   	pop    %ecx
   11bf7:	5b                   	pop    %ebx
   11bf8:	57                   	push   %edi
   11bf9:	68 cc 62 01 00       	push   $0x162cc
   11bfe:	eb 87                	jmp    11b87 <_I2CStart+0x47>

00011c00 <_VideoPortDDCMonitorHelper@16>:
   11c00:	55                   	push   %ebp
   11c01:	89 e5                	mov    %esp,%ebp
   11c03:	57                   	push   %edi
   11c04:	56                   	push   %esi
   11c05:	53                   	push   %ebx
   11c06:	83 ec 1c             	sub    $0x1c,%esp
   11c09:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   11c0c:	8b 7d 10             	mov    0x10(%ebp),%edi
   11c0f:	ff 15 ec a1 01 00    	call   *0x1a1ec
   11c15:	8d 73 04             	lea    0x4(%ebx),%esi
   11c18:	84 c0                	test   %al,%al
   11c1a:	75 14                	jne    11c30 <_VideoPortDDCMonitorHelper@16+0x30>
   11c1c:	31 d2                	xor    %edx,%edx
   11c1e:	83 3b 04             	cmpl   $0x4,(%ebx)
   11c21:	74 2e                	je     11c51 <_VideoPortDDCMonitorHelper@16+0x51>
   11c23:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   11c26:	89 d0                	mov    %edx,%eax
   11c28:	5b                   	pop    %ebx
   11c29:	5e                   	pop    %esi
   11c2a:	5f                   	pop    %edi
   11c2b:	5d                   	pop    %ebp
   11c2c:	c2 10 00             	ret    $0x10
   11c2f:	90                   	nop    
   11c30:	68 f9 62 01 00       	push   $0x162f9
   11c35:	68 bb 00 00 00       	push   $0xbb
   11c3a:	68 a0 62 01 00       	push   $0x162a0
   11c3f:	68 fa 62 01 00       	push   $0x162fa
   11c44:	ff 15 b0 a2 01 00    	call   *0x1a2b0
   11c4a:	31 d2                	xor    %edx,%edx
   11c4c:	83 3b 04             	cmpl   $0x4,(%ebx)
   11c4f:	75 d2                	jne    11c23 <_VideoPortDDCMonitorHelper@16+0x23>
   11c51:	83 ec 0c             	sub    $0xc,%esp
   11c54:	89 f2                	mov    %esi,%edx
   11c56:	8b 45 08             	mov    0x8(%ebp),%eax
   11c59:	68 a0 00 00 00       	push   $0xa0
   11c5e:	e8 dd fe ff ff       	call   11b40 <_I2CStart>
   11c63:	83 c4 10             	add    $0x10,%esp
   11c66:	31 d2                	xor    %edx,%edx
   11c68:	85 c0                	test   %eax,%eax
   11c6a:	74 b7                	je     11c23 <_VideoPortDDCMonitorHelper@16+0x23>
   11c6c:	83 ec 0c             	sub    $0xc,%esp
   11c6f:	89 f2                	mov    %esi,%edx
   11c71:	8b 45 08             	mov    0x8(%ebp),%eax
   11c74:	6a 00                	push   $0x0
   11c76:	e8 a5 fd ff ff       	call   11a20 <_I2CWrite>
   11c7b:	83 c4 10             	add    $0x10,%esp
   11c7e:	31 d2                	xor    %edx,%edx
   11c80:	85 c0                	test   %eax,%eax
   11c82:	74 9f                	je     11c23 <_VideoPortDDCMonitorHelper@16+0x23>
   11c84:	50                   	push   %eax
   11c85:	50                   	push   %eax
   11c86:	8b 45 08             	mov    0x8(%ebp),%eax
   11c89:	6a 00                	push   $0x0
   11c8b:	50                   	push   %eax
   11c8c:	ff 53 04             	call   *0x4(%ebx)
   11c8f:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11c96:	6a 00                	push   $0x0
   11c98:	6a 00                	push   $0x0
   11c9a:	ff 15 74 a2 01 00    	call   *0x1a274
   11ca0:	8b 4d 08             	mov    0x8(%ebp),%ecx
   11ca3:	50                   	push   %eax
   11ca4:	6a 01                	push   $0x1
   11ca6:	51                   	push   %ecx
   11ca7:	ff 56 04             	call   *0x4(%esi)
   11caa:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11cb1:	6a 00                	push   $0x0
   11cb3:	6a 00                	push   $0x0
   11cb5:	ff 15 74 a2 01 00    	call   *0x1a274
   11cbb:	8b 45 08             	mov    0x8(%ebp),%eax
   11cbe:	52                   	push   %edx
   11cbf:	6a 01                	push   $0x1
   11cc1:	50                   	push   %eax
   11cc2:	ff 53 04             	call   *0x4(%ebx)
   11cc5:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11ccc:	6a 00                	push   $0x0
   11cce:	6a 00                	push   $0x0
   11cd0:	ff 15 74 a2 01 00    	call   *0x1a274
   11cd6:	89 f2                	mov    %esi,%edx
   11cd8:	50                   	push   %eax
   11cd9:	50                   	push   %eax
   11cda:	8b 45 08             	mov    0x8(%ebp),%eax
   11cdd:	68 a1 00 00 00       	push   $0xa1
   11ce2:	e8 59 fe ff ff       	call   11b40 <_I2CStart>
   11ce7:	83 c4 10             	add    $0x10,%esp
   11cea:	31 d2                	xor    %edx,%edx
   11cec:	85 c0                	test   %eax,%eax
   11cee:	0f 84 2f ff ff ff    	je     11c23 <_VideoPortDDCMonitorHelper@16+0x23>
   11cf4:	50                   	push   %eax
   11cf5:	8b 45 14             	mov    0x14(%ebp),%eax
   11cf8:	50                   	push   %eax
   11cf9:	6a 00                	push   $0x0
   11cfb:	57                   	push   %edi
   11cfc:	e8 bf 2b 00 00       	call   148c0 <_memset>
   11d01:	8b 45 14             	mov    0x14(%ebp),%eax
   11d04:	83 c4 10             	add    $0x10,%esp
   11d07:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   11d0a:	3d 80 00 00 00       	cmp    $0x80,%eax
   11d0f:	76 07                	jbe    11d18 <_VideoPortDDCMonitorHelper@16+0x118>
   11d11:	c7 45 f0 80 00 00 00 	movl   $0x80,0xfffffff0(%ebp)
   11d18:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   11d1f:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   11d22:	39 55 ec             	cmp    %edx,0xffffffec(%ebp)
   11d25:	0f 8d fe 00 00 00    	jge    11e29 <_VideoPortDDCMonitorHelper@16+0x229>
   11d2b:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   11d2e:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   11d31:	40                   	inc    %eax
   11d32:	c6 45 e7 00          	movb   $0x0,0xffffffe7(%ebp)
   11d36:	39 d0                	cmp    %edx,%eax
   11d38:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   11d3b:	0f 9c c0             	setl   %al
   11d3e:	25 ff 00 00 00       	and    $0xff,%eax
   11d43:	bb 80 00 00 00       	mov    $0x80,%ebx
   11d48:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   11d4b:	50                   	push   %eax
   11d4c:	50                   	push   %eax
   11d4d:	8b 45 08             	mov    0x8(%ebp),%eax
   11d50:	6a 00                	push   $0x0
   11d52:	50                   	push   %eax
   11d53:	ff 16                	call   *(%esi)
   11d55:	8b 4d 08             	mov    0x8(%ebp),%ecx
   11d58:	6a 01                	push   $0x1
   11d5a:	51                   	push   %ecx
   11d5b:	ff 56 04             	call   *0x4(%esi)
   11d5e:	58                   	pop    %eax
   11d5f:	5a                   	pop    %edx
   11d60:	eb 04                	jmp    11d66 <_VideoPortDDCMonitorHelper@16+0x166>
   11d62:	d1 fb                	sar    %ebx
   11d64:	74 4a                	je     11db0 <_VideoPortDDCMonitorHelper@16+0x1b0>
   11d66:	50                   	push   %eax
   11d67:	50                   	push   %eax
   11d68:	8b 45 08             	mov    0x8(%ebp),%eax
   11d6b:	6a 00                	push   $0x0
   11d6d:	50                   	push   %eax
   11d6e:	ff 16                	call   *(%esi)
   11d70:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11d77:	6a 00                	push   $0x0
   11d79:	6a 00                	push   $0x0
   11d7b:	ff 15 74 a2 01 00    	call   *0x1a274
   11d81:	50                   	push   %eax
   11d82:	8b 45 08             	mov    0x8(%ebp),%eax
   11d85:	6a 01                	push   $0x1
   11d87:	50                   	push   %eax
   11d88:	ff 16                	call   *(%esi)
   11d8a:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11d91:	6a 00                	push   $0x0
   11d93:	6a 00                	push   $0x0
   11d95:	ff 15 74 a2 01 00    	call   *0x1a274
   11d9b:	8b 55 08             	mov    0x8(%ebp),%edx
   11d9e:	51                   	push   %ecx
   11d9f:	51                   	push   %ecx
   11da0:	52                   	push   %edx
   11da1:	ff 56 0c             	call   *0xc(%esi)
   11da4:	83 c4 0c             	add    $0xc,%esp
   11da7:	fe c8                	dec    %al
   11da9:	75 b7                	jne    11d62 <_VideoPortDDCMonitorHelper@16+0x162>
   11dab:	08 5d e7             	or     %bl,0xffffffe7(%ebp)
   11dae:	eb b2                	jmp    11d62 <_VideoPortDDCMonitorHelper@16+0x162>
   11db0:	50                   	push   %eax
   11db1:	50                   	push   %eax
   11db2:	8b 45 08             	mov    0x8(%ebp),%eax
   11db5:	6a 00                	push   $0x0
   11db7:	50                   	push   %eax
   11db8:	ff 16                	call   *(%esi)
   11dba:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   11dbd:	85 c0                	test   %eax,%eax
   11dbf:	0f 94 c0             	sete   %al
   11dc2:	25 ff 00 00 00       	and    $0xff,%eax
   11dc7:	50                   	push   %eax
   11dc8:	8b 45 08             	mov    0x8(%ebp),%eax
   11dcb:	50                   	push   %eax
   11dcc:	ff 56 04             	call   *0x4(%esi)
   11dcf:	c7 04 24 00 50 01 00 	movl   $0x15000,(%esp)
   11dd6:	6a 00                	push   $0x0
   11dd8:	6a 00                	push   $0x0
   11dda:	ff 15 74 a2 01 00    	call   *0x1a274
   11de0:	50                   	push   %eax
   11de1:	8b 45 08             	mov    0x8(%ebp),%eax
   11de4:	6a 01                	push   $0x1
   11de6:	50                   	push   %eax
   11de7:	ff 16                	call   *(%esi)
   11de9:	59                   	pop    %ecx
   11dea:	5b                   	pop    %ebx
   11deb:	90                   	nop    
   11dec:	8d 74 26 00          	lea    0x0(%esi),%esi
   11df0:	52                   	push   %edx
   11df1:	68 00 50 01 00       	push   $0x15000
   11df6:	6a 00                	push   $0x0
   11df8:	6a 00                	push   $0x0
   11dfa:	ff 15 74 a2 01 00    	call   *0x1a274
   11e00:	50                   	push   %eax
   11e01:	50                   	push   %eax
   11e02:	8b 45 08             	mov    0x8(%ebp),%eax
   11e05:	50                   	push   %eax
   11e06:	ff 56 08             	call   *0x8(%esi)
   11e09:	83 c4 0c             	add    $0xc,%esp
   11e0c:	fe c8                	dec    %al
   11e0e:	75 e0                	jne    11df0 <_VideoPortDDCMonitorHelper@16+0x1f0>
   11e10:	8b 55 ec             	mov    0xffffffec(%ebp),%edx
   11e13:	8a 45 e7             	mov    0xffffffe7(%ebp),%al
   11e16:	88 04 3a             	mov    %al,(%edx,%edi,1)
   11e19:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   11e1c:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   11e1f:	39 d0                	cmp    %edx,%eax
   11e21:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   11e24:	e9 fc fe ff ff       	jmp    11d25 <_VideoPortDDCMonitorHelper@16+0x125>
   11e29:	89 f2                	mov    %esi,%edx
   11e2b:	8b 45 08             	mov    0x8(%ebp),%eax
   11e2e:	e8 bd fc ff ff       	call   11af0 <_I2CStop>
   11e33:	80 3f 00             	cmpb   $0x0,(%edi)
   11e36:	75 06                	jne    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e38:	80 7f 01 ff          	cmpb   $0xff,0x1(%edi)
   11e3c:	74 2a                	je     11e68 <_VideoPortDDCMonitorHelper@16+0x268>
   11e3e:	50                   	push   %eax
   11e3f:	68 db 00 00 00       	push   $0xdb
   11e44:	68 a0 62 01 00       	push   $0x162a0
   11e49:	68 a6 62 01 00       	push   $0x162a6
   11e4e:	ff 15 1c a2 01 00    	call   *0x1a21c
   11e54:	c7 04 24 00 63 01 00 	movl   $0x16300,(%esp)
   11e5b:	ff 15 1c a2 01 00    	call   *0x1a21c
   11e61:	31 d2                	xor    %edx,%edx
   11e63:	e9 bb fd ff ff       	jmp    11c23 <_VideoPortDDCMonitorHelper@16+0x23>
   11e68:	80 7f 02 ff          	cmpb   $0xff,0x2(%edi)
   11e6c:	75 d0                	jne    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e6e:	80 7f 03 ff          	cmpb   $0xff,0x3(%edi)
   11e72:	75 ca                	jne    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e74:	80 7f 04 ff          	cmpb   $0xff,0x4(%edi)
   11e78:	75 c4                	jne    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e7a:	80 7f 05 ff          	cmpb   $0xff,0x5(%edi)
   11e7e:	75 be                	jne    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e80:	80 7f 06 ff          	cmpb   $0xff,0x6(%edi)
   11e84:	75 b8                	jne    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e86:	ba 01 00 00 00       	mov    $0x1,%edx
   11e8b:	80 7f 07 00          	cmpb   $0x0,0x7(%edi)
   11e8f:	0f 84 8e fd ff ff    	je     11c23 <_VideoPortDDCMonitorHelper@16+0x23>
   11e95:	eb a7                	jmp    11e3e <_VideoPortDDCMonitorHelper@16+0x23e>
   11e97:	90                   	nop    
   11e98:	90                   	nop    
   11e99:	90                   	nop    
   11e9a:	90                   	nop    
   11e9b:	90                   	nop    
   11e9c:	90                   	nop    
   11e9d:	90                   	nop    
   11e9e:	90                   	nop    
   11e9f:	90                   	nop    

00011ea0 <_IntVideoPortResetDisplayParameters@8>:
 */

BOOLEAN STDCALL
IntVideoPortResetDisplayParameters(ULONG Columns, ULONG Rows)
{
   11ea0:	55                   	push   %ebp
   11ea1:	89 e5                	mov    %esp,%ebp
   11ea3:	50                   	push   %eax
   11ea4:	50                   	push   %eax
   PVIDEO_PORT_DRIVER_EXTENSION DriverExtension;

   if (ResetDisplayParametersDeviceExtension == NULL)
      return FALSE;
   11ea5:	31 c0                	xor    %eax,%eax
   11ea7:	8b 15 00 70 01 00    	mov    0x17000,%edx
   11ead:	85 d2                	test   %edx,%edx
   11eaf:	74 16                	je     11ec7 <_IntVideoPortResetDisplayParameters@8+0x27>

   DriverExtension = ResetDisplayParametersDeviceExtension->DriverExtension;
   11eb1:	8b 42 60             	mov    0x60(%edx),%eax

   if (DriverExtension->InitializationData.HwResetHw != NULL)
   11eb4:	8b 48 20             	mov    0x20(%eax),%ecx
   11eb7:	85 c9                	test   %ecx,%ecx
   11eb9:	75 15                	jne    11ed0 <_IntVideoPortResetDisplayParameters@8+0x30>
   {
      if (DriverExtension->InitializationData.HwResetHw(
             &ResetDisplayParametersDeviceExtension->MiniPortDeviceExtension,
             Columns, Rows))
      {
         ResetDisplayParametersDeviceExtension = NULL;
         return TRUE;
      }
   }

   ResetDisplayParametersDeviceExtension = NULL;
   11ebb:	c7 05 00 70 01 00 00 	movl   $0x0,0x17000
   11ec2:	00 00 00 
   return FALSE;
   11ec5:	31 c0                	xor    %eax,%eax
}
   11ec7:	c9                   	leave  
   11ec8:	c2 08 00             	ret    $0x8
   11ecb:	90                   	nop    
   11ecc:	8d 74 26 00          	lea    0x0(%esi),%esi
   11ed0:	50                   	push   %eax
   11ed1:	8b 45 0c             	mov    0xc(%ebp),%eax
   11ed4:	50                   	push   %eax
   11ed5:	8b 45 08             	mov    0x8(%ebp),%eax
   11ed8:	50                   	push   %eax
   11ed9:	8d 82 b4 00 00 00    	lea    0xb4(%edx),%eax
   11edf:	50                   	push   %eax
   11ee0:	ff d1                	call   *%ecx
   11ee2:	5a                   	pop    %edx
   11ee3:	84 c0                	test   %al,%al
   11ee5:	74 d4                	je     11ebb <_IntVideoPortResetDisplayParameters@8+0x1b>
   11ee7:	c7 05 00 70 01 00 00 	movl   $0x0,0x17000
   11eee:	00 00 00 
   11ef1:	b8 01 00 00 00       	mov    $0x1,%eax
   11ef6:	c9                   	leave  
   11ef7:	c2 08 00             	ret    $0x8
   11efa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00011f00 <_IntVideoPortAddDevice@8>:

NTSTATUS STDCALL
IntVideoPortAddDevice(
   IN PDRIVER_OBJECT DriverObject,
   IN PDEVICE_OBJECT PhysicalDeviceObject)
{
   11f00:	55                   	push   %ebp
   11f01:	89 e5                	mov    %esp,%ebp
   11f03:	53                   	push   %ebx
   11f04:	83 ec 0c             	sub    $0xc,%esp
   11f07:	8b 5d 08             	mov    0x8(%ebp),%ebx
   PVIDEO_PORT_DRIVER_EXTENSION DriverExtension;

   /*
    * Get the initialization data we saved in VideoPortInitialize.
    */

   DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
   11f0a:	53                   	push   %ebx
   11f0b:	53                   	push   %ebx
   11f0c:	ff 15 58 a2 01 00    	call   *0x1a258

   /*
    * Create adapter device object.
    */

   return IntVideoPortCreateAdapterDeviceObject(
   11f12:	59                   	pop    %ecx
   11f13:	5a                   	pop    %edx
   11f14:	8b 55 0c             	mov    0xc(%ebp),%edx
   11f17:	6a 00                	push   $0x0
   11f19:	52                   	push   %edx
   11f1a:	50                   	push   %eax
   11f1b:	53                   	push   %ebx
   11f1c:	e8 7f 0d 00 00       	call   12ca0 <_IntVideoPortCreateAdapterDeviceObject@16>
      DriverObject,
      DriverExtension,
      PhysicalDeviceObject,
      NULL);
}
   11f21:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   11f24:	c9                   	leave  
   11f25:	c2 08 00             	ret    $0x8
   11f28:	90                   	nop    
   11f29:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00011f30 <_IntVideoPortDispatchOpen@8>:

/*
 * IntVideoPortDispatchOpen
 *
 * Answer requests for Open calls.
 *
 * Run Level
 *    PASSIVE_LEVEL
 */

NTSTATUS STDCALL
IntVideoPortDispatchOpen(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   11f30:	55                   	push   %ebp
   11f31:	89 e5                	mov    %esp,%ebp
   11f33:	56                   	push   %esi
   11f34:	53                   	push   %ebx
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PVIDEO_PORT_DRIVER_EXTENSION DriverExtension;

   DPRINT("IntVideoPortDispatchOpen\n");

   if (CsrssInitialized == FALSE)
   11f35:	8b 0d 14 70 01 00    	mov    0x17014,%ecx
   11f3b:	8b 75 0c             	mov    0xc(%ebp),%esi
   11f3e:	85 c9                	test   %ecx,%ecx
   11f40:	75 31                	jne    11f73 <_IntVideoPortDispatchOpen@8+0x43>
   {
      /*
       * We know the first open call will be from the CSRSS process
       * to let us know its handle.
       */

      DPRINT("Referencing CSRSS\n");
      Csrss = PsGetCurrentProcess();
   11f42:	ff 15 50 a2 01 00    	call   *0x1a250
      DPRINT("Csrss %p\n", Csrss);

      CsrssInitialized = TRUE;
   11f48:	c7 05 14 70 01 00 01 	movl   $0x1,0x17014
   11f4f:	00 00 00 
   11f52:	a3 10 70 01 00       	mov    %eax,0x17010

      Irp->IoStatus.Information = FILE_OPENED;
      IoCompleteRequest(Irp, IO_NO_INCREMENT);

      return STATUS_SUCCESS;
   }

   DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
   DriverExtension = DeviceExtension->DriverExtension;

   if (DriverExtension->InitializationData.HwInitialize(&DeviceExtension->MiniPortDeviceExtension))
   {
      Irp->IoStatus.Status = STATUS_SUCCESS;

      InterlockedIncrement((PLONG)&DeviceExtension->DeviceOpened);

      /*
       * Storing the device extension pointer in a static variable is an
       * ugly hack. Unfortunately, we need it in VideoPortResetDisplayParameters
       * and HalAcquireDisplayOwnership doesn't allow us to pass a userdata
       * parameter. On the bright side, the DISPLAY device is opened
       * exclusively, so there can be only one device extension active at
       * any point in time.
       */

      ResetDisplayParametersDeviceExtension = DeviceExtension;
      HalAcquireDisplayOwnership(IntVideoPortResetDisplayParameters);
   }
   else
   {
      Irp->IoStatus.Status = STATUS_UNSUCCESSFUL;
   }

   Irp->IoStatus.Information = FILE_OPENED;
   11f57:	c7 46 1c 01 00 00 00 	movl   $0x1,0x1c(%esi)
   IoCompleteRequest(Irp, IO_NO_INCREMENT);
   11f5e:	89 f1                	mov    %esi,%ecx
   11f60:	31 d2                	xor    %edx,%edx
   11f62:	ff 15 0c a2 01 00    	call   *0x1a20c

   return STATUS_SUCCESS;
}
   11f68:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11f6b:	31 c0                	xor    %eax,%eax
   11f6d:	5b                   	pop    %ebx
   11f6e:	5e                   	pop    %esi
   11f6f:	5d                   	pop    %ebp
   11f70:	c2 08 00             	ret    $0x8
   11f73:	8b 45 08             	mov    0x8(%ebp),%eax
   11f76:	83 ec 0c             	sub    $0xc,%esp
   11f79:	8b 58 28             	mov    0x28(%eax),%ebx
   11f7c:	8b 53 60             	mov    0x60(%ebx),%edx
   11f7f:	8d 83 b4 00 00 00    	lea    0xb4(%ebx),%eax
   11f85:	50                   	push   %eax
   11f86:	ff 52 0c             	call   *0xc(%edx)
   11f89:	83 c4 0c             	add    $0xc,%esp
   11f8c:	84 c0                	test   %al,%al
   11f8e:	75 23                	jne    11fb3 <_IntVideoPortDispatchOpen@8+0x83>
   11f90:	c7 46 18 01 00 00 c0 	movl   $0xc0000001,0x18(%esi)
   11f97:	c7 46 1c 01 00 00 00 	movl   $0x1,0x1c(%esi)
   11f9e:	89 f1                	mov    %esi,%ecx
   11fa0:	31 d2                	xor    %edx,%edx
   11fa2:	ff 15 0c a2 01 00    	call   *0x1a20c
   11fa8:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11fab:	31 c0                	xor    %eax,%eax
   11fad:	5b                   	pop    %ebx
   11fae:	5e                   	pop    %esi
   11faf:	5d                   	pop    %ebp
   11fb0:	c2 08 00             	ret    $0x8
   11fb3:	8d 4b 64             	lea    0x64(%ebx),%ecx
   11fb6:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
   11fbd:	ff 15 04 a2 01 00    	call   *0x1a204
   11fc3:	83 ec 0c             	sub    $0xc,%esp
   11fc6:	89 1d 00 70 01 00    	mov    %ebx,0x17000
   11fcc:	68 a0 1e 01 00       	push   $0x11ea0
   11fd1:	e8 4a 2c 00 00       	call   14c20 <_HalAcquireDisplayOwnership@4>
   11fd6:	c7 46 1c 01 00 00 00 	movl   $0x1,0x1c(%esi)
   11fdd:	83 c4 0c             	add    $0xc,%esp
   11fe0:	89 f1                	mov    %esi,%ecx
   11fe2:	31 d2                	xor    %edx,%edx
   11fe4:	ff 15 0c a2 01 00    	call   *0x1a20c
   11fea:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   11fed:	31 c0                	xor    %eax,%eax
   11fef:	5b                   	pop    %ebx
   11ff0:	5e                   	pop    %esi
   11ff1:	5d                   	pop    %ebp
   11ff2:	c2 08 00             	ret    $0x8
   11ff5:	8d 74 26 00          	lea    0x0(%esi),%esi
   11ff9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012000 <_IntVideoPortDispatchClose@8>:

/*
 * IntVideoPortDispatchClose
 *
 * Answer requests for Close calls.
 *
 * Run Level
 *    PASSIVE_LEVEL
 */

NTSTATUS STDCALL
IntVideoPortDispatchClose(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   12000:	55                   	push   %ebp
   12001:	89 e5                	mov    %esp,%ebp
   12003:	56                   	push   %esi
   12004:	53                   	push   %ebx
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;

   DPRINT("IntVideoPortDispatchClose\n");

   DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
   12005:	8b 45 08             	mov    0x8(%ebp),%eax
   12008:	8b 75 0c             	mov    0xc(%ebp),%esi
   1200b:	8b 58 28             	mov    0x28(%eax),%ebx
   if (DeviceExtension->DeviceOpened >= 1 &&
   1200e:	8b 43 64             	mov    0x64(%ebx),%eax
   12011:	85 c0                	test   %eax,%eax
   12013:	75 1b                	jne    12030 <_IntVideoPortDispatchClose@8+0x30>
       InterlockedDecrement((PLONG)&DeviceExtension->DeviceOpened) == 0)
   {
      ResetDisplayParametersDeviceExtension = DeviceExtension;
      HalReleaseDisplayOwnership();
   }

   Irp->IoStatus.Status = STATUS_SUCCESS;
   12015:	c7 46 18 00 00 00 00 	movl   $0x0,0x18(%esi)
   IoCompleteRequest(Irp, IO_NO_INCREMENT);
   1201c:	89 f1                	mov    %esi,%ecx
   1201e:	31 d2                	xor    %edx,%edx
   12020:	ff 15 0c a2 01 00    	call   *0x1a20c

   return STATUS_SUCCESS;
}
   12026:	31 c0                	xor    %eax,%eax
   12028:	5b                   	pop    %ebx
   12029:	5e                   	pop    %esi
   1202a:	5d                   	pop    %ebp
   1202b:	c2 08 00             	ret    $0x8
   1202e:	89 f6                	mov    %esi,%esi
   12030:	8d 4b 64             	lea    0x64(%ebx),%ecx
   12033:	ff 15 00 a2 01 00    	call   *0x1a200
   12039:	85 c0                	test   %eax,%eax
   1203b:	75 d8                	jne    12015 <_IntVideoPortDispatchClose@8+0x15>
   1203d:	89 1d 00 70 01 00    	mov    %ebx,0x17000
   12043:	e8 e8 2b 00 00       	call   14c30 <_HalReleaseDisplayOwnership@0>
   12048:	eb cb                	jmp    12015 <_IntVideoPortDispatchClose@8+0x15>
   1204a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012050 <_IntVideoPortDispatchDeviceControl@8>:

/*
 * IntVideoPortDispatchDeviceControl
 *
 * Answer requests for device control calls.
 *
 * Run Level
 *    PASSIVE_LEVEL
 */

NTSTATUS STDCALL
IntVideoPortDispatchDeviceControl(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   12050:	55                   	push   %ebp
   12051:	89 e5                	mov    %esp,%ebp
   12053:	57                   	push   %edi
   12054:	56                   	push   %esi
   12055:	53                   	push   %ebx
   12056:	83 ec 14             	sub    $0x14,%esp
   PIO_STACK_LOCATION IrpStack;
   PVIDEO_PORT_DRIVER_EXTENSION DriverExtension;
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PVIDEO_REQUEST_PACKET vrp;
   NTSTATUS Status;

   DPRINT("IntVideoPortDispatchDeviceControl\n");

   IrpStack = IoGetCurrentIrpStackLocation(Irp);
   DeviceExtension = DeviceObject->DeviceExtension;
   12059:	8b 45 08             	mov    0x8(%ebp),%eax
   1205c:	8b 7d 0c             	mov    0xc(%ebp),%edi
   1205f:	8b 40 28             	mov    0x28(%eax),%eax
   12062:	8b 77 60             	mov    0x60(%edi),%esi
   12065:	89 45 ec             	mov    %eax,0xffffffec(%ebp)
   DriverExtension = DeviceExtension->DriverExtension;
   12068:	8b 40 60             	mov    0x60(%eax),%eax

   /* Translate the IRP to a VRP */
   vrp = ExAllocatePool(NonPagedPool, sizeof(VIDEO_REQUEST_PACKET));
   1206b:	6a 18                	push   $0x18
   1206d:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   12070:	6a 00                	push   $0x0
   12072:	ff 15 20 a2 01 00    	call   *0x1a220
   12078:	89 c3                	mov    %eax,%ebx
   if (NULL == vrp)
   1207a:	58                   	pop    %eax
   1207b:	85 db                	test   %ebx,%ebx
   1207d:	5a                   	pop    %edx
   {
      return STATUS_NO_MEMORY;
   1207e:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
   12083:	74 6a                	je     120ef <_IntVideoPortDispatchDeviceControl@8+0x9f>
   }

   vrp->StatusBlock = (PSTATUS_BLOCK)&(Irp->IoStatus);
   12085:	8d 47 18             	lea    0x18(%edi),%eax
   vrp->IoControlCode = IrpStack->Parameters.DeviceIoControl.IoControlCode;

   DPRINT("- IoControlCode: %x\n", vrp->IoControlCode);

   /* We're assuming METHOD_BUFFERED */
   vrp->InputBuffer = Irp->AssociatedIrp.SystemBuffer;
   vrp->InputBufferLength = IrpStack->Parameters.DeviceIoControl.InputBufferLength;
   vrp->OutputBuffer = Irp->AssociatedIrp.SystemBuffer;
   vrp->OutputBufferLength = IrpStack->Parameters.DeviceIoControl.OutputBufferLength;

   /* Call the Miniport Driver with the VRP */
   DriverExtension->InitializationData.HwStartIO(
   12088:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   1208b:	89 43 04             	mov    %eax,0x4(%ebx)
   1208e:	8b 46 0c             	mov    0xc(%esi),%eax
   12091:	89 03                	mov    %eax,(%ebx)
   12093:	8b 47 0c             	mov    0xc(%edi),%eax
   12096:	89 43 08             	mov    %eax,0x8(%ebx)
   12099:	8b 46 08             	mov    0x8(%esi),%eax
   1209c:	89 43 0c             	mov    %eax,0xc(%ebx)
   1209f:	8b 47 0c             	mov    0xc(%edi),%eax
   120a2:	89 43 10             	mov    %eax,0x10(%ebx)
   120a5:	8b 46 04             	mov    0x4(%esi),%eax
   120a8:	89 43 14             	mov    %eax,0x14(%ebx)
   120ab:	50                   	push   %eax
   120ac:	50                   	push   %eax
   120ad:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   120b0:	53                   	push   %ebx
   120b1:	05 b4 00 00 00       	add    $0xb4,%eax
   120b6:	50                   	push   %eax
   120b7:	ff 52 14             	call   *0x14(%edx)
      &DeviceExtension->MiniPortDeviceExtension,
      vrp);

   /* Free the VRP */
   ExFreePool(vrp);
   120ba:	50                   	push   %eax
   120bb:	53                   	push   %ebx
   120bc:	ff 15 28 a2 01 00    	call   *0x1a228

   DPRINT("- Returned status: %x\n", Irp->IoStatus.Status);

   if (Irp->IoStatus.Status != STATUS_SUCCESS) 
   120c2:	8b 5f 18             	mov    0x18(%edi),%ebx
   120c5:	83 c4 0c             	add    $0xc,%esp
   120c8:	85 db                	test   %ebx,%ebx
   120ca:	74 17                	je     120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   { 
      /* Map from win32 error codes to NT status values. */ 
      switch (Irp->IoStatus.Status) 
   120cc:	83 fb 57             	cmp    $0x57,%ebx
   120cf:	74 4f                	je     12120 <_IntVideoPortDispatchDeviceControl@8+0xd0>
   120d1:	7f 2d                	jg     12100 <_IntVideoPortDispatchDeviceControl@8+0xb0>
   120d3:	83 fb 08             	cmp    $0x8,%ebx
   120d6:	74 7f                	je     12157 <_IntVideoPortDispatchDeviceControl@8+0x107>
   120d8:	7f 54                	jg     1212e <_IntVideoPortDispatchDeviceControl@8+0xde>
   120da:	83 fb 01             	cmp    $0x1,%ebx
   120dd:	0f 84 96 00 00 00    	je     12179 <_IntVideoPortDispatchDeviceControl@8+0x129>
      { 
         case ERROR_NOT_ENOUGH_MEMORY: Irp->IoStatus.Status = STATUS_INSUFFICIENT_RESOURCES; break;
         case ERROR_MORE_DATA: Irp->IoStatus.Status = STATUS_BUFFER_OVERFLOW; break;
         case ERROR_INVALID_FUNCTION: Irp->IoStatus.Status = STATUS_NOT_IMPLEMENTED; break;
         case ERROR_INVALID_PARAMETER: Irp->IoStatus.Status = STATUS_INVALID_PARAMETER; break;
         case ERROR_INSUFFICIENT_BUFFER: Irp->IoStatus.Status = STATUS_BUFFER_TOO_SMALL; break; 
         case ERROR_DEV_NOT_EXIST: Irp->IoStatus.Status = STATUS_DEVICE_DOES_NOT_EXIST; break;
         case ERROR_IO_PENDING: Irp->IoStatus.Status = STATUS_PENDING; break;
      } 
   } 

   Status = Irp->IoStatus.Status;
   IoCompleteRequest(Irp, IO_NO_INCREMENT);
   120e3:	31 d2                	xor    %edx,%edx
   120e5:	89 f9                	mov    %edi,%ecx
   120e7:	ff 15 0c a2 01 00    	call   *0x1a20c

   return Status;
   120ed:	89 d8                	mov    %ebx,%eax
}
   120ef:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   120f2:	5b                   	pop    %ebx
   120f3:	5e                   	pop    %esi
   120f4:	5f                   	pop    %edi
   120f5:	5d                   	pop    %ebp
   120f6:	c2 08 00             	ret    $0x8
   120f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12100:	81 fb ea 00 00 00    	cmp    $0xea,%ebx
   12106:	74 60                	je     12168 <_IntVideoPortDispatchDeviceControl@8+0x118>
   12108:	7f 37                	jg     12141 <_IntVideoPortDispatchDeviceControl@8+0xf1>
   1210a:	83 fb 7a             	cmp    $0x7a,%ebx
   1210d:	75 d4                	jne    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   1210f:	bb 23 00 00 c0       	mov    $0xc0000023,%ebx
   12114:	c7 47 18 23 00 00 c0 	movl   $0xc0000023,0x18(%edi)
   1211b:	eb c6                	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   1211d:	8d 76 00             	lea    0x0(%esi),%esi
   12120:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
   12125:	c7 47 18 0d 00 00 c0 	movl   $0xc000000d,0x18(%edi)
   1212c:	eb b5                	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   1212e:	83 fb 37             	cmp    $0x37,%ebx
   12131:	75 b0                	jne    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   12133:	bb c0 00 00 c0       	mov    $0xc00000c0,%ebx
   12138:	c7 47 18 c0 00 00 c0 	movl   $0xc00000c0,0x18(%edi)
   1213f:	eb a2                	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   12141:	81 fb e5 03 00 00    	cmp    $0x3e5,%ebx
   12147:	75 9a                	jne    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   12149:	bb 03 01 00 00       	mov    $0x103,%ebx
   1214e:	c7 47 18 03 01 00 00 	movl   $0x103,0x18(%edi)
   12155:	eb 8c                	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   12157:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
   1215c:	c7 47 18 9a 00 00 c0 	movl   $0xc000009a,0x18(%edi)
   12163:	e9 7b ff ff ff       	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   12168:	bb 05 00 00 80       	mov    $0x80000005,%ebx
   1216d:	c7 47 18 05 00 00 80 	movl   $0x80000005,0x18(%edi)
   12174:	e9 6a ff ff ff       	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   12179:	bb 02 00 00 c0       	mov    $0xc0000002,%ebx
   1217e:	c7 47 18 02 00 00 c0 	movl   $0xc0000002,0x18(%edi)
   12185:	e9 59 ff ff ff       	jmp    120e3 <_IntVideoPortDispatchDeviceControl@8+0x93>
   1218a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012190 <_IntVideoPortPnPStartDevice@8>:

NTSTATUS STDCALL
IntVideoPortPnPStartDevice(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   12190:	55                   	push   %ebp
   12191:	89 e5                	mov    %esp,%ebp
   12193:	57                   	push   %edi
   12194:	56                   	push   %esi
   12195:	53                   	push   %ebx
   12196:	83 ec 14             	sub    $0x14,%esp
   PIO_STACK_LOCATION Stack = IoGetCurrentIrpStackLocation(Irp);
   12199:	8b 45 0c             	mov    0xc(%ebp),%eax
   1219c:	8b 58 60             	mov    0x60(%eax),%ebx
   PDRIVER_OBJECT DriverObject;
   PVIDEO_PORT_DRIVER_EXTENSION DriverExtension;
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   PCM_RESOURCE_LIST AllocatedResources;

   /*
    * Get the initialization data we saved in VideoPortInitialize.
    */

   DriverObject = DeviceObject->DriverObject;
   1219f:	8b 45 08             	mov    0x8(%ebp),%eax
   121a2:	8b 40 08             	mov    0x8(%eax),%eax
   121a5:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
   121a8:	50                   	push   %eax
   121a9:	50                   	push   %eax
   121aa:	ff 15 58 a2 01 00    	call   *0x1a258
   DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
   121b0:	8b 55 08             	mov    0x8(%ebp),%edx
   121b3:	89 45 ec             	mov    %eax,0xffffffec(%ebp)

   /*
    * Store some resources in the DeviceExtension.
    */

   AllocatedResources = Stack->Parameters.StartDevice.AllocatedResources;
   if (AllocatedResources != NULL)
   121b6:	58                   	pop    %eax
   121b7:	8b 52 28             	mov    0x28(%edx),%edx
   121ba:	89 55 e8             	mov    %edx,0xffffffe8(%ebp)
   121bd:	5a                   	pop    %edx
   121be:	8b 7b 04             	mov    0x4(%ebx),%edi
   121c1:	85 ff                	test   %edi,%edi
   121c3:	0f 84 a9 00 00 00    	je     12272 <_IntVideoPortPnPStartDevice@8+0xe2>
   {
      CM_FULL_RESOURCE_DESCRIPTOR *FullList;
      CM_PARTIAL_RESOURCE_DESCRIPTOR *Descriptor;
      ULONG ResourceCount;
      ULONG ResourceListSize;

      /* Save the resource list */
      ResourceCount = AllocatedResources->List[0].PartialResourceList.Count;
   121c9:	8b 47 10             	mov    0x10(%edi),%eax
      ResourceListSize =
   121cc:	c1 e0 04             	shl    $0x4,%eax
   121cf:	8d 58 14             	lea    0x14(%eax),%ebx
         FIELD_OFFSET(CM_RESOURCE_LIST, List[0].PartialResourceList.
                      PartialDescriptors[ResourceCount]);
      DeviceExtension->AllocatedResources = ExAllocatePool(PagedPool, ResourceListSize);
   121d2:	50                   	push   %eax
   121d3:	50                   	push   %eax
   121d4:	53                   	push   %ebx
   121d5:	6a 01                	push   $0x1
   121d7:	ff 15 20 a2 01 00    	call   *0x1a220
   121dd:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
      if (DeviceExtension->AllocatedResources == NULL)
      {
         return STATUS_INSUFFICIENT_RESOURCES;
   121e0:	ba 9a 00 00 c0       	mov    $0xc000009a,%edx
   121e5:	85 c0                	test   %eax,%eax
   121e7:	89 41 20             	mov    %eax,0x20(%ecx)
   121ea:	59                   	pop    %ecx
   121eb:	5e                   	pop    %esi
   121ec:	0f 84 94 00 00 00    	je     12286 <_IntVideoPortPnPStartDevice@8+0xf6>
      }

      RtlCopyMemory(DeviceExtension->AllocatedResources,
   121f2:	52                   	push   %edx
   121f3:	53                   	push   %ebx
   121f4:	57                   	push   %edi
   121f5:	50                   	push   %eax
   121f6:	e8 55 27 00 00       	call   14950 <_memcpy>
                    AllocatedResources,
                    ResourceListSize);

      /* Get the interrupt level/vector - needed by HwFindAdapter sometimes */
      for (FullList = AllocatedResources->List;
   121fb:	8b 37                	mov    (%edi),%esi
   121fd:	8d 5f 04             	lea    0x4(%edi),%ebx
   12200:	89 f0                	mov    %esi,%eax
   12202:	83 c4 10             	add    $0x10,%esp
   12205:	c1 e0 05             	shl    $0x5,%eax
   12208:	8d 44 38 04          	lea    0x4(%eax,%edi,1),%eax
   1220c:	39 d8                	cmp    %ebx,%eax
   1220e:	76 62                	jbe    12272 <_IntVideoPortPnPStartDevice@8+0xe2>
           FullList < AllocatedResources->List + AllocatedResources->Count;
           FullList++)
      {
         /* FIXME: Is this ASSERT ok for resources from the PNP manager? */
         ASSERT(FullList->InterfaceType == PCIBus &&
                FullList->BusNumber == DeviceExtension->SystemIoBusNumber &&
                1 == FullList->PartialResourceList.Version &&
                1 == FullList->PartialResourceList.Revision);
	 for (Descriptor = FullList->PartialResourceList.PartialDescriptors;
   12210:	8b 4b 0c             	mov    0xc(%ebx),%ecx
   12213:	8d 53 10             	lea    0x10(%ebx),%edx
   12216:	89 c8                	mov    %ecx,%eax
   12218:	c1 e0 04             	shl    $0x4,%eax
   1221b:	8d 44 18 10          	lea    0x10(%eax,%ebx,1),%eax
   1221f:	39 d0                	cmp    %edx,%eax
   12221:	77 12                	ja     12235 <_IntVideoPortPnPStartDevice@8+0xa5>
   12223:	eb 3d                	jmp    12262 <_IntVideoPortPnPStartDevice@8+0xd2>
   12225:	89 c8                	mov    %ecx,%eax
   12227:	83 c2 10             	add    $0x10,%edx
   1222a:	c1 e0 04             	shl    $0x4,%eax
   1222d:	8d 44 18 10          	lea    0x10(%eax,%ebx,1),%eax
   12231:	39 d0                	cmp    %edx,%eax
   12233:	76 2b                	jbe    12260 <_IntVideoPortPnPStartDevice@8+0xd0>
              Descriptor < FullList->PartialResourceList.PartialDescriptors + FullList->PartialResourceList.Count;
              Descriptor++)
         {
            if (Descriptor->Type == CmResourceTypeInterrupt)
   12235:	80 3a 02             	cmpb   $0x2,(%edx)
   12238:	75 eb                	jne    12225 <_IntVideoPortPnPStartDevice@8+0x95>
            {
               DeviceExtension->InterruptLevel = Descriptor->u.Interrupt.Level;
   1223a:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   1223d:	8b 42 04             	mov    0x4(%edx),%eax
   12240:	89 41 28             	mov    %eax,0x28(%ecx)
               DeviceExtension->InterruptVector = Descriptor->u.Interrupt.Vector;
   12243:	8b 42 08             	mov    0x8(%edx),%eax
   12246:	83 c2 10             	add    $0x10,%edx
   12249:	89 41 24             	mov    %eax,0x24(%ecx)
   1224c:	8b 4b 0c             	mov    0xc(%ebx),%ecx
   1224f:	89 c8                	mov    %ecx,%eax
   12251:	c1 e0 04             	shl    $0x4,%eax
   12254:	8d 44 18 10          	lea    0x10(%eax,%ebx,1),%eax
   12258:	39 d0                	cmp    %edx,%eax
   1225a:	77 d9                	ja     12235 <_IntVideoPortPnPStartDevice@8+0xa5>
   1225c:	8d 74 26 00          	lea    0x0(%esi),%esi
   12260:	8b 37                	mov    (%edi),%esi
   12262:	83 c3 20             	add    $0x20,%ebx
   12265:	89 f0                	mov    %esi,%eax
   12267:	c1 e0 05             	shl    $0x5,%eax
   1226a:	8d 44 38 04          	lea    0x4(%eax,%edi,1),%eax
   1226e:	39 d8                	cmp    %ebx,%eax
   12270:	77 9e                	ja     12210 <_IntVideoPortPnPStartDevice@8+0x80>
            }
         }
      }
   }
   DPRINT("Interrupt level: 0x%x Interrupt Vector: 0x%x\n",
          DeviceExtension->InterruptLevel,
          DeviceExtension->InterruptVector);

   /*
    * Create adapter device object.
    */

   return IntVideoPortFindAdapter(
   12272:	8b 75 08             	mov    0x8(%ebp),%esi
   12275:	8b 5d ec             	mov    0xffffffec(%ebp),%ebx
   12278:	8b 4d f0             	mov    0xfffffff0(%ebp),%ecx
   1227b:	57                   	push   %edi
   1227c:	56                   	push   %esi
   1227d:	53                   	push   %ebx
   1227e:	51                   	push   %ecx
   1227f:	e8 9c 0c 00 00       	call   12f20 <_IntVideoPortFindAdapter@12>
   12284:	89 c2                	mov    %eax,%edx
      DriverObject,
      DriverExtension,
      DeviceObject);
}
   12286:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12289:	89 d0                	mov    %edx,%eax
   1228b:	5b                   	pop    %ebx
   1228c:	5e                   	pop    %esi
   1228d:	5f                   	pop    %edi
   1228e:	5d                   	pop    %ebp
   1228f:	c2 08 00             	ret    $0x8
   12292:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12299:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000122a0 <_IntVideoPortForwardIrpAndWaitCompletionRoutine@12>:


NTSTATUS
STDCALL
IntVideoPortForwardIrpAndWaitCompletionRoutine(
    PDEVICE_OBJECT Fdo,
    PIRP Irp,
    PVOID Context)
{
   122a0:	55                   	push   %ebp
   122a1:	89 e5                	mov    %esp,%ebp
   122a3:	50                   	push   %eax
   122a4:	50                   	push   %eax
  PKEVENT Event = Context;

  if (Irp->PendingReturned)
   122a5:	8b 45 0c             	mov    0xc(%ebp),%eax
   122a8:	80 78 21 00          	cmpb   $0x0,0x21(%eax)
   122ac:	75 09                	jne    122b7 <_IntVideoPortForwardIrpAndWaitCompletionRoutine@12+0x17>
    KeSetEvent(Event, IO_NO_INCREMENT, FALSE);

  return STATUS_MORE_PROCESSING_REQUIRED;
}
   122ae:	b8 16 00 00 c0       	mov    $0xc0000016,%eax
   122b3:	c9                   	leave  
   122b4:	c2 0c 00             	ret    $0xc
   122b7:	50                   	push   %eax
   122b8:	6a 00                	push   $0x0
   122ba:	6a 00                	push   $0x0
   122bc:	8b 45 10             	mov    0x10(%ebp),%eax
   122bf:	50                   	push   %eax
   122c0:	ff 15 98 a2 01 00    	call   *0x1a298
   122c6:	b8 16 00 00 c0       	mov    $0xc0000016,%eax
   122cb:	59                   	pop    %ecx
   122cc:	c9                   	leave  
   122cd:	c2 0c 00             	ret    $0xc

000122d0 <_IntVideoPortForwardIrpAndWait@8>:


NTSTATUS
STDCALL
IntVideoPortForwardIrpAndWait(PDEVICE_OBJECT DeviceObject, PIRP Irp)
{
   122d0:	55                   	push   %ebp
   122d1:	89 e5                	mov    %esp,%ebp
   122d3:	57                   	push   %edi
   122d4:	56                   	push   %esi
   122d5:	53                   	push   %ebx
   122d6:	83 ec 20             	sub    $0x20,%esp
   KEVENT Event;
   NTSTATUS Status;
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension =
                   (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;

   KeInitializeEvent(&Event, NotificationEvent, FALSE);
   122d9:	8d 7d d8             	lea    0xffffffd8(%ebp),%edi
   122dc:	8b 75 0c             	mov    0xc(%ebp),%esi
   122df:	8b 45 08             	mov    0x8(%ebp),%eax
   122e2:	8b 58 28             	mov    0x28(%eax),%ebx
   122e5:	6a 00                	push   $0x0
   122e7:	6a 00                	push   $0x0
   122e9:	57                   	push   %edi
   122ea:	ff 15 84 a2 01 00    	call   *0x1a284
   IoCopyCurrentIrpStackLocationToNext(Irp);
   122f0:	8b 46 60             	mov    0x60(%esi),%eax
   122f3:	8b 10                	mov    (%eax),%edx
   122f5:	8d 48 dc             	lea    0xffffffdc(%eax),%ecx
   122f8:	89 50 dc             	mov    %edx,0xffffffdc(%eax)
   122fb:	8b 50 04             	mov    0x4(%eax),%edx
   122fe:	89 51 04             	mov    %edx,0x4(%ecx)
   12301:	8b 50 08             	mov    0x8(%eax),%edx
   12304:	89 51 08             	mov    %edx,0x8(%ecx)
   12307:	8b 50 0c             	mov    0xc(%eax),%edx
   1230a:	89 51 0c             	mov    %edx,0xc(%ecx)
   1230d:	8b 50 10             	mov    0x10(%eax),%edx
   12310:	89 51 10             	mov    %edx,0x10(%ecx)
   12313:	8b 50 14             	mov    0x14(%eax),%edx
   12316:	89 51 14             	mov    %edx,0x14(%ecx)
   12319:	8b 40 18             	mov    0x18(%eax),%eax
   1231c:	c6 41 03 00          	movb   $0x0,0x3(%ecx)
   12320:	89 41 18             	mov    %eax,0x18(%ecx)
   IoSetCompletionRoutine(Irp, IntVideoPortForwardIrpAndWaitCompletionRoutine,
   12323:	8b 46 60             	mov    0x60(%esi),%eax
   12326:	83 e8 24             	sub    $0x24,%eax
   12329:	c7 40 1c a0 22 01 00 	movl   $0x122a0,0x1c(%eax)
   12330:	89 78 20             	mov    %edi,0x20(%eax)
   12333:	5a                   	pop    %edx
   12334:	c6 40 03 e0          	movb   $0xe0,0x3(%eax)
                          &Event, TRUE, TRUE, TRUE);
   Status = IoCallDriver(DeviceExtension->NextDeviceObject, Irp);
   12338:	8b 4b 0c             	mov    0xc(%ebx),%ecx
   1233b:	89 f2                	mov    %esi,%edx
   1233d:	ff 15 08 a2 01 00    	call   *0x1a208
   if (Status == STATUS_PENDING)
   12343:	3d 03 01 00 00       	cmp    $0x103,%eax
   12348:	74 0a                	je     12354 <_IntVideoPortForwardIrpAndWait@8+0x84>
   {
      KeWaitForSingleObject(&Event, Executive, KernelMode, FALSE, NULL);
      Status = Irp->IoStatus.Status;
   }
   return Status;
}
   1234a:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1234d:	5b                   	pop    %ebx
   1234e:	5e                   	pop    %esi
   1234f:	5f                   	pop    %edi
   12350:	5d                   	pop    %ebp
   12351:	c2 08 00             	ret    $0x8
   12354:	83 ec 0c             	sub    $0xc,%esp
   12357:	6a 00                	push   $0x0
   12359:	6a 00                	push   $0x0
   1235b:	6a 00                	push   $0x0
   1235d:	6a 00                	push   $0x0
   1235f:	57                   	push   %edi
   12360:	ff 15 a4 a2 01 00    	call   *0x1a2a4
   12366:	8b 46 18             	mov    0x18(%esi),%eax
   12369:	83 c4 0c             	add    $0xc,%esp
   1236c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1236f:	5b                   	pop    %ebx
   12370:	5e                   	pop    %esi
   12371:	5f                   	pop    %edi
   12372:	5d                   	pop    %ebp
   12373:	c2 08 00             	ret    $0x8
   12376:	8d 76 00             	lea    0x0(%esi),%esi
   12379:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012380 <_IntVideoPortDispatchPnp@8>:


NTSTATUS STDCALL
IntVideoPortDispatchPnp(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   12380:	55                   	push   %ebp
   12381:	89 e5                	mov    %esp,%ebp
   12383:	57                   	push   %edi
   12384:	56                   	push   %esi
   12385:	53                   	push   %ebx
   12386:	83 ec 0c             	sub    $0xc,%esp
   12389:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1238c:	8b 7d 08             	mov    0x8(%ebp),%edi
   PIO_STACK_LOCATION IrpSp;
   NTSTATUS Status;

   IrpSp = IoGetCurrentIrpStackLocation(Irp);
   1238f:	8b 43 60             	mov    0x60(%ebx),%eax

   switch (IrpSp->MinorFunction)
   12392:	8a 40 01             	mov    0x1(%eax),%al
   12395:	25 ff 00 00 00       	and    $0xff,%eax
   1239a:	83 f8 17             	cmp    $0x17,%eax
   1239d:	77 07                	ja     123a6 <_IntVideoPortDispatchPnp@8+0x26>
   1239f:	ff 24 85 40 63 01 00 	jmp    *0x16340(,%eax,4)
   {
      case IRP_MN_START_DEVICE:
         Status = IntVideoPortForwardIrpAndWait(DeviceObject, Irp);
         if (NT_SUCCESS(Status) && NT_SUCCESS(Irp->IoStatus.Status))
            Status = IntVideoPortPnPStartDevice(DeviceObject, Irp);
         Irp->IoStatus.Status = Status;
         Irp->IoStatus.Information = 0;
         IoCompleteRequest(Irp, IO_NO_INCREMENT);
         break;


      case IRP_MN_REMOVE_DEVICE:
      case IRP_MN_QUERY_REMOVE_DEVICE:
      case IRP_MN_CANCEL_REMOVE_DEVICE:
      case IRP_MN_SURPRISE_REMOVAL:

      case IRP_MN_STOP_DEVICE:
         Status = IntVideoPortForwardIrpAndWait(DeviceObject, Irp);
         if (NT_SUCCESS(Status) && NT_SUCCESS(Irp->IoStatus.Status))
            Status = STATUS_SUCCESS;
         Irp->IoStatus.Status = Status;
         Irp->IoStatus.Information = 0;
         IoCompleteRequest(Irp, IO_NO_INCREMENT);
         break;

      case IRP_MN_QUERY_STOP_DEVICE:
      case IRP_MN_CANCEL_STOP_DEVICE:
         Status = STATUS_SUCCESS;
         Irp->IoStatus.Status = STATUS_SUCCESS;
         Irp->IoStatus.Information = 0;
         IoCompleteRequest(Irp, IO_NO_INCREMENT);
         break;
         
      default:
         return STATUS_NOT_IMPLEMENTED;
         break;
   }
   
   return Status;
}
   123a6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   123a9:	b8 02 00 00 c0       	mov    $0xc0000002,%eax
   123ae:	5b                   	pop    %ebx
   123af:	5e                   	pop    %esi
   123b0:	5f                   	pop    %edi
   123b1:	5d                   	pop    %ebp
   123b2:	c2 08 00             	ret    $0x8
   123b5:	50                   	push   %eax
   123b6:	50                   	push   %eax
   123b7:	53                   	push   %ebx
   123b8:	57                   	push   %edi
   123b9:	e8 12 ff ff ff       	call   122d0 <_IntVideoPortForwardIrpAndWait@8>
   123be:	59                   	pop    %ecx
   123bf:	89 c6                	mov    %eax,%esi
   123c1:	5f                   	pop    %edi
   123c2:	85 c0                	test   %eax,%eax
   123c4:	78 08                	js     123ce <_IntVideoPortDispatchPnp@8+0x4e>
   123c6:	8b 43 18             	mov    0x18(%ebx),%eax
   123c9:	c1 f8 1f             	sar    $0x1f,%eax
   123cc:	21 c6                	and    %eax,%esi
   123ce:	89 73 18             	mov    %esi,0x18(%ebx)
   123d1:	eb 09                	jmp    123dc <_IntVideoPortDispatchPnp@8+0x5c>
   123d3:	31 f6                	xor    %esi,%esi
   123d5:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
   123dc:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
   123e3:	89 d9                	mov    %ebx,%ecx
   123e5:	31 d2                	xor    %edx,%edx
   123e7:	ff 15 0c a2 01 00    	call   *0x1a20c
   123ed:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   123f0:	89 f0                	mov    %esi,%eax
   123f2:	5b                   	pop    %ebx
   123f3:	5e                   	pop    %esi
   123f4:	5f                   	pop    %edi
   123f5:	5d                   	pop    %ebp
   123f6:	c2 08 00             	ret    $0x8
   123f9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   12400:	51                   	push   %ecx
   12401:	51                   	push   %ecx
   12402:	53                   	push   %ebx
   12403:	57                   	push   %edi
   12404:	e8 c7 fe ff ff       	call   122d0 <_IntVideoPortForwardIrpAndWait@8>
   12409:	89 c6                	mov    %eax,%esi
   1240b:	58                   	pop    %eax
   1240c:	85 f6                	test   %esi,%esi
   1240e:	5a                   	pop    %edx
   1240f:	78 bd                	js     123ce <_IntVideoPortDispatchPnp@8+0x4e>
   12411:	8b 43 18             	mov    0x18(%ebx),%eax
   12414:	85 c0                	test   %eax,%eax
   12416:	78 b6                	js     123ce <_IntVideoPortDispatchPnp@8+0x4e>
   12418:	51                   	push   %ecx
   12419:	51                   	push   %ecx
   1241a:	53                   	push   %ebx
   1241b:	57                   	push   %edi
   1241c:	e8 6f fd ff ff       	call   12190 <_IntVideoPortPnPStartDevice@8>
   12421:	89 c6                	mov    %eax,%esi
   12423:	58                   	pop    %eax
   12424:	5a                   	pop    %edx
   12425:	89 73 18             	mov    %esi,0x18(%ebx)
   12428:	eb b2                	jmp    123dc <_IntVideoPortDispatchPnp@8+0x5c>
   1242a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012430 <_IntVideoPortDispatchCleanup@8>:

NTSTATUS STDCALL
IntVideoPortDispatchCleanup(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   12430:	55                   	push   %ebp
   12431:	89 e5                	mov    %esp,%ebp
   12433:	53                   	push   %ebx
   12434:	83 ec 10             	sub    $0x10,%esp
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;

   DeviceExtension = DeviceObject->DeviceExtension;
   RtlFreeUnicodeString(&DeviceExtension->RegistryPath);
   12437:	8b 45 08             	mov    0x8(%ebp),%eax
   1243a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1243d:	8b 40 28             	mov    0x28(%eax),%eax
   12440:	83 c0 10             	add    $0x10,%eax
   12443:	50                   	push   %eax
   12444:	ff 15 b8 a2 01 00    	call   *0x1a2b8

   Irp->IoStatus.Status = STATUS_SUCCESS;
   1244a:	c7 43 18 00 00 00 00 	movl   $0x0,0x18(%ebx)
   Irp->IoStatus.Information = 0;
   12451:	c7 43 1c 00 00 00 00 	movl   $0x0,0x1c(%ebx)
   IoCompleteRequest(Irp, IO_NO_INCREMENT);
   12458:	83 c4 0c             	add    $0xc,%esp
   1245b:	89 d9                	mov    %ebx,%ecx
   1245d:	31 d2                	xor    %edx,%edx
   1245f:	ff 15 0c a2 01 00    	call   *0x1a20c

   return STATUS_SUCCESS;
}
   12465:	31 c0                	xor    %eax,%eax
   12467:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1246a:	c9                   	leave  
   1246b:	c2 08 00             	ret    $0x8
   1246e:	89 f6                	mov    %esi,%esi

00012470 <_IntVideoPortDispatchPower@8>:

NTSTATUS STDCALL
IntVideoPortDispatchPower(
   IN PDEVICE_OBJECT DeviceObject,
   IN PIRP Irp)
{
   12470:	55                   	push   %ebp
   return STATUS_NOT_IMPLEMENTED;
}
   12471:	b8 02 00 00 c0       	mov    $0xc0000002,%eax
   12476:	89 e5                	mov    %esp,%ebp
   12478:	5d                   	pop    %ebp
   12479:	c2 08 00             	ret    $0x8
   1247c:	8d 74 26 00          	lea    0x0(%esi),%esi

00012480 <_IntVideoPortUnload@4>:

VOID STDCALL
IntVideoPortUnload(PDRIVER_OBJECT DriverObject)
{
   12480:	55                   	push   %ebp
   12481:	89 e5                	mov    %esp,%ebp
   12483:	5d                   	pop    %ebp
   12484:	c2 04 00             	ret    $0x4
   12487:	90                   	nop    
   12488:	90                   	nop    
   12489:	90                   	nop    
   1248a:	90                   	nop    
   1248b:	90                   	nop    
   1248c:	90                   	nop    
   1248d:	90                   	nop    
   1248e:	90                   	nop    
   1248f:	90                   	nop    

00012490 <_VideoPortAllocateCommonBuffer@24>:
   12490:	55                   	push   %ebp
   12491:	89 e5                	mov    %esp,%ebp
   12493:	50                   	push   %eax
   12494:	50                   	push   %eax
   12495:	31 c0                	xor    %eax,%eax
   12497:	8a 45 18             	mov    0x18(%ebp),%al
   1249a:	8b 4d 14             	mov    0x14(%ebp),%ecx
   1249d:	50                   	push   %eax
   1249e:	8b 55 10             	mov    0x10(%ebp),%edx
   124a1:	8b 45 0c             	mov    0xc(%ebp),%eax
   124a4:	51                   	push   %ecx
   124a5:	52                   	push   %edx
   124a6:	50                   	push   %eax
   124a7:	ff 15 b8 a1 01 00    	call   *0x1a1b8
   124ad:	c9                   	leave  
   124ae:	c2 18 00             	ret    $0x18
   124b1:	eb 0d                	jmp    124c0 <_VideoPortReleaseCommonBuffer@28>
   124b3:	90                   	nop    
   124b4:	90                   	nop    
   124b5:	90                   	nop    
   124b6:	90                   	nop    
   124b7:	90                   	nop    
   124b8:	90                   	nop    
   124b9:	90                   	nop    
   124ba:	90                   	nop    
   124bb:	90                   	nop    
   124bc:	90                   	nop    
   124bd:	90                   	nop    
   124be:	90                   	nop    
   124bf:	90                   	nop    

000124c0 <_VideoPortReleaseCommonBuffer@28>:
   124c0:	55                   	push   %ebp
   124c1:	31 c0                	xor    %eax,%eax
   124c3:	89 e5                	mov    %esp,%ebp
   124c5:	83 ec 10             	sub    $0x10,%esp
   124c8:	8a 45 20             	mov    0x20(%ebp),%al
   124cb:	50                   	push   %eax
   124cc:	8b 45 1c             	mov    0x1c(%ebp),%eax
   124cf:	50                   	push   %eax
   124d0:	8b 45 18             	mov    0x18(%ebp),%eax
   124d3:	50                   	push   %eax
   124d4:	8b 45 14             	mov    0x14(%ebp),%eax
   124d7:	50                   	push   %eax
   124d8:	8b 45 10             	mov    0x10(%ebp),%eax
   124db:	50                   	push   %eax
   124dc:	8b 45 0c             	mov    0xc(%ebp),%eax
   124df:	50                   	push   %eax
   124e0:	ff 15 c8 a1 01 00    	call   *0x1a1c8
   124e6:	c9                   	leave  
   124e7:	c2 1c 00             	ret    $0x1c
   124ea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000124f0 <_VideoPortPutDmaAdapter@8>:
   124f0:	55                   	push   %ebp
   124f1:	89 e5                	mov    %esp,%ebp
   124f3:	5d                   	pop    %ebp
   124f4:	c2 08 00             	ret    $0x8
   124f7:	89 f6                	mov    %esi,%esi
   124f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012500 <_VideoPortGetDmaAdapter@8>:
   12500:	55                   	push   %ebp
   12501:	89 e5                	mov    %esp,%ebp
   12503:	83 ec 50             	sub    $0x50,%esp
   12506:	8b 55 0c             	mov    0xc(%ebp),%edx
   12509:	c7 45 c8 00 00 00 00 	movl   $0x0,0xffffffc8(%ebp)
   12510:	c6 45 cc 01          	movb   $0x1,0xffffffcc(%ebp)
   12514:	8b 4d 08             	mov    0x8(%ebp),%ecx
   12517:	8a 02                	mov    (%edx),%al
   12519:	c6 45 ce 00          	movb   $0x0,0xffffffce(%ebp)
   1251d:	88 45 cd             	mov    %al,0xffffffcd(%ebp)
   12520:	c6 45 cf 00          	movb   $0x0,0xffffffcf(%ebp)
   12524:	8a 42 01             	mov    0x1(%edx),%al
   12527:	81 e9 b4 00 00 00    	sub    $0xb4,%ecx
   1252d:	88 45 d0             	mov    %al,0xffffffd0(%ebp)
   12530:	c6 45 d1 00          	movb   $0x0,0xffffffd1(%ebp)
   12534:	c6 45 d2 00          	movb   $0x0,0xffffffd2(%ebp)
   12538:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   1253f:	8b 41 30             	mov    0x30(%ecx),%eax
   12542:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
   12549:	89 45 d4             	mov    %eax,0xffffffd4(%ebp)
   1254c:	c7 45 e4 00 00 00 00 	movl   $0x0,0xffffffe4(%ebp)
   12553:	8b 41 2c             	mov    0x2c(%ecx),%eax
   12556:	89 45 dc             	mov    %eax,0xffffffdc(%ebp)
   12559:	8b 42 04             	mov    0x4(%edx),%eax
   1255c:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   1255f:	8d 45 c4             	lea    0xffffffc4(%ebp),%eax
   12562:	50                   	push   %eax
   12563:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   1256a:	8d 45 c8             	lea    0xffffffc8(%ebp),%eax
   1256d:	50                   	push   %eax
   1256e:	ff 15 cc a1 01 00    	call   *0x1a1cc
   12574:	c9                   	leave  
   12575:	c2 08 00             	ret    $0x8
   12578:	90                   	nop    
   12579:	90                   	nop    
   1257a:	90                   	nop    
   1257b:	90                   	nop    
   1257c:	90                   	nop    
   1257d:	90                   	nop    
   1257e:	90                   	nop    
   1257f:	90                   	nop    

00012580 <_VideoPortCreateEvent@16>:
   12580:	55                   	push   %ebp
   12581:	89 e5                	mov    %esp,%ebp
   12583:	53                   	push   %ebx
   12584:	50                   	push   %eax
   12585:	50                   	push   %eax
   12586:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   12589:	68 56 49 44 50       	push   $0x50444956
   1258e:	6a 10                	push   $0x10
   12590:	6a 00                	push   $0x0
   12592:	ff 15 24 a2 01 00    	call   *0x1a224
   12598:	89 c2                	mov    %eax,%edx
   1259a:	8b 45 14             	mov    0x14(%ebp),%eax
   1259d:	85 d2                	test   %edx,%edx
   1259f:	89 10                	mov    %edx,(%eax)
   125a1:	58                   	pop    %eax
   125a2:	b8 08 00 00 00       	mov    $0x8,%eax
   125a7:	74 1a                	je     125c3 <_VideoPortCreateEvent@16+0x43>
   125a9:	f6 c3 01             	test   $0x1,%bl
   125ac:	0f 94 c0             	sete   %al
   125af:	25 ff 00 00 00       	and    $0xff,%eax
   125b4:	83 e3 02             	and    $0x2,%ebx
   125b7:	51                   	push   %ecx
   125b8:	53                   	push   %ebx
   125b9:	50                   	push   %eax
   125ba:	52                   	push   %edx
   125bb:	ff 15 84 a2 01 00    	call   *0x1a284
   125c1:	31 c0                	xor    %eax,%eax
   125c3:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   125c6:	c9                   	leave  
   125c7:	c2 10 00             	ret    $0x10
   125ca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

000125d0 <_VideoPortDeleteEvent@8>:
   125d0:	55                   	push   %ebp
   125d1:	89 e5                	mov    %esp,%ebp
   125d3:	83 ec 14             	sub    $0x14,%esp
   125d6:	8b 45 0c             	mov    0xc(%ebp),%eax
   125d9:	50                   	push   %eax
   125da:	ff 15 28 a2 01 00    	call   *0x1a228
   125e0:	31 c0                	xor    %eax,%eax
   125e2:	c9                   	leave  
   125e3:	c2 08 00             	ret    $0x8
   125e6:	8d 76 00             	lea    0x0(%esi),%esi
   125e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000125f0 <_VideoPortSetEvent@8>:
   125f0:	55                   	push   %ebp
   125f1:	89 e5                	mov    %esp,%ebp
   125f3:	83 ec 0c             	sub    $0xc,%esp
   125f6:	8b 45 0c             	mov    0xc(%ebp),%eax
   125f9:	6a 00                	push   $0x0
   125fb:	6a 00                	push   $0x0
   125fd:	50                   	push   %eax
   125fe:	ff 15 98 a2 01 00    	call   *0x1a298
   12604:	c9                   	leave  
   12605:	c2 08 00             	ret    $0x8
   12608:	90                   	nop    
   12609:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012610 <_VideoPortClearEvent@8>:
   12610:	55                   	push   %ebp
   12611:	89 e5                	mov    %esp,%ebp
   12613:	83 ec 14             	sub    $0x14,%esp
   12616:	8b 45 0c             	mov    0xc(%ebp),%eax
   12619:	50                   	push   %eax
   1261a:	ff 15 70 a2 01 00    	call   *0x1a270
   12620:	c9                   	leave  
   12621:	c2 08 00             	ret    $0x8
   12624:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1262a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00012630 <_VideoPortWaitForSingleObject@12>:
   12630:	55                   	push   %ebp
   12631:	89 e5                	mov    %esp,%ebp
   12633:	83 ec 14             	sub    $0x14,%esp
   12636:	8b 55 10             	mov    0x10(%ebp),%edx
   12639:	8b 45 0c             	mov    0xc(%ebp),%eax
   1263c:	52                   	push   %edx
   1263d:	6a 00                	push   $0x0
   1263f:	6a 00                	push   $0x0
   12641:	6a 00                	push   $0x0
   12643:	50                   	push   %eax
   12644:	ff 15 a4 a2 01 00    	call   *0x1a2a4
   1264a:	c9                   	leave  
   1264b:	c2 0c 00             	ret    $0xc
   1264e:	90                   	nop    
   1264f:	90                   	nop    

00012650 <_IntInt10AllocateBuffer@16>:
   12650:	55                   	push   %ebp
   12651:	89 e5                	mov    %esp,%ebp
   12653:	56                   	push   %esi
   12654:	53                   	push   %ebx
   12655:	83 ec 10             	sub    $0x10,%esp
   12658:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   1265b:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   1265e:	8b 5d 14             	mov    0x14(%ebp),%ebx
   12661:	e8 0a 0c 00 00       	call   13270 <@IntAttachToCSRSS@8>
   12666:	8d 75 ec             	lea    0xffffffec(%ebp),%esi
   12669:	c7 45 ec 00 00 02 00 	movl   $0x20000,0xffffffec(%ebp)
   12670:	51                   	push   %ecx
   12671:	51                   	push   %ecx
   12672:	6a 40                	push   $0x40
   12674:	68 00 10 00 00       	push   $0x1000
   12679:	53                   	push   %ebx
   1267a:	6a 00                	push   $0x0
   1267c:	56                   	push   %esi
   1267d:	6a ff                	push   $0xffffffff
   1267f:	ff 15 d0 a2 01 00    	call   *0x1a2d0
   12685:	59                   	pop    %ecx
   12686:	85 c0                	test   %eax,%eax
   12688:	5a                   	pop    %edx
   12689:	78 4b                	js     126d6 <_IntInt10AllocateBuffer@16+0x86>
   1268b:	b8 00 00 10 00       	mov    $0x100000,%eax
   12690:	8b 13                	mov    (%ebx),%edx
   12692:	29 d0                	sub    %edx,%eax
   12694:	8b 4d ec             	mov    0xffffffec(%ebp),%ecx
   12697:	39 c8                	cmp    %ecx,%eax
   12699:	72 2c                	jb     126c7 <_IntInt10AllocateBuffer@16+0x77>
   1269b:	8b 45 0c             	mov    0xc(%ebp),%eax
   1269e:	89 ca                	mov    %ecx,%edx
   126a0:	c1 ea 04             	shr    $0x4,%edx
   126a3:	66 89 10             	mov    %dx,(%eax)
   126a6:	8b 45 10             	mov    0x10(%ebp),%eax
   126a9:	89 ca                	mov    %ecx,%edx
   126ab:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   126ae:	83 e2 0f             	and    $0xf,%edx
   126b1:	66 89 10             	mov    %dx,(%eax)
   126b4:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   126b7:	e8 14 0c 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   126bc:	31 c0                	xor    %eax,%eax
   126be:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   126c1:	5b                   	pop    %ebx
   126c2:	5e                   	pop    %esi
   126c3:	5d                   	pop    %ebp
   126c4:	c2 10 00             	ret    $0x10
   126c7:	68 00 80 00 00       	push   $0x8000
   126cc:	53                   	push   %ebx
   126cd:	56                   	push   %esi
   126ce:	6a ff                	push   $0xffffffff
   126d0:	ff 15 d8 a2 01 00    	call   *0x1a2d8
   126d6:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   126d9:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   126dc:	e8 ef 0b 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   126e1:	b8 08 00 00 00       	mov    $0x8,%eax
   126e6:	eb d6                	jmp    126be <_IntInt10AllocateBuffer@16+0x6e>
   126e8:	90                   	nop    
   126e9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000126f0 <_IntInt10FreeBuffer@12>:
   126f0:	55                   	push   %ebp
   126f1:	89 e5                	mov    %esp,%ebp
   126f3:	53                   	push   %ebx
   126f4:	83 ec 14             	sub    $0x14,%esp
   126f7:	8b 45 0c             	mov    0xc(%ebp),%eax
   126fa:	8b 55 10             	mov    0x10(%ebp),%edx
   126fd:	25 ff ff 00 00       	and    $0xffff,%eax
   12702:	81 e2 ff ff 00 00    	and    $0xffff,%edx
   12708:	c1 e0 04             	shl    $0x4,%eax
   1270b:	8d 4d f4             	lea    0xfffffff4(%ebp),%ecx
   1270e:	09 d0                	or     %edx,%eax
   12710:	8d 55 f8             	lea    0xfffffff8(%ebp),%edx
   12713:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   12716:	e8 55 0b 00 00       	call   13270 <@IntAttachToCSRSS@8>
   1271b:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   1271e:	68 00 80 00 00       	push   $0x8000
   12723:	6a 00                	push   $0x0
   12725:	50                   	push   %eax
   12726:	6a ff                	push   $0xffffffff
   12728:	ff 15 d8 a2 01 00    	call   *0x1a2d8
   1272e:	8d 55 f8             	lea    0xfffffff8(%ebp),%edx
   12731:	8d 4d f4             	lea    0xfffffff4(%ebp),%ecx
   12734:	89 c3                	mov    %eax,%ebx
   12736:	e8 95 0b 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   1273b:	89 d8                	mov    %ebx,%eax
   1273d:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   12740:	c9                   	leave  
   12741:	c2 0c 00             	ret    $0xc
   12744:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1274a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00012750 <_IntInt10ReadMemory@20>:
   12750:	55                   	push   %ebp
   12751:	89 e5                	mov    %esp,%ebp
   12753:	56                   	push   %esi
   12754:	53                   	push   %ebx
   12755:	83 ec 10             	sub    $0x10,%esp
   12758:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   1275b:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   1275e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   12761:	8b 75 10             	mov    0x10(%ebp),%esi
   12764:	e8 07 0b 00 00       	call   13270 <@IntAttachToCSRSS@8>
   12769:	81 e3 ff ff 00 00    	and    $0xffff,%ebx
   1276f:	81 e6 ff ff 00 00    	and    $0xffff,%esi
   12775:	c1 e3 04             	shl    $0x4,%ebx
   12778:	50                   	push   %eax
   12779:	09 f3                	or     %esi,%ebx
   1277b:	8b 75 18             	mov    0x18(%ebp),%esi
   1277e:	56                   	push   %esi
   1277f:	53                   	push   %ebx
   12780:	8b 5d 14             	mov    0x14(%ebp),%ebx
   12783:	53                   	push   %ebx
   12784:	e8 c7 21 00 00       	call   14950 <_memcpy>
   12789:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   1278c:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   1278f:	e8 3c 0b 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   12794:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12797:	31 c0                	xor    %eax,%eax
   12799:	5b                   	pop    %ebx
   1279a:	5e                   	pop    %esi
   1279b:	5d                   	pop    %ebp
   1279c:	c2 14 00             	ret    $0x14
   1279f:	90                   	nop    

000127a0 <_IntInt10WriteMemory@20>:
   127a0:	55                   	push   %ebp
   127a1:	89 e5                	mov    %esp,%ebp
   127a3:	56                   	push   %esi
   127a4:	53                   	push   %ebx
   127a5:	83 ec 10             	sub    $0x10,%esp
   127a8:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   127ab:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   127ae:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   127b1:	8b 75 10             	mov    0x10(%ebp),%esi
   127b4:	e8 b7 0a 00 00       	call   13270 <@IntAttachToCSRSS@8>
   127b9:	81 e3 ff ff 00 00    	and    $0xffff,%ebx
   127bf:	81 e6 ff ff 00 00    	and    $0xffff,%esi
   127c5:	c1 e3 04             	shl    $0x4,%ebx
   127c8:	50                   	push   %eax
   127c9:	8b 45 18             	mov    0x18(%ebp),%eax
   127cc:	09 f3                	or     %esi,%ebx
   127ce:	50                   	push   %eax
   127cf:	8b 45 14             	mov    0x14(%ebp),%eax
   127d2:	50                   	push   %eax
   127d3:	53                   	push   %ebx
   127d4:	e8 77 21 00 00       	call   14950 <_memcpy>
   127d9:	8d 55 f4             	lea    0xfffffff4(%ebp),%edx
   127dc:	8d 4d f0             	lea    0xfffffff0(%ebp),%ecx
   127df:	e8 ec 0a 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   127e4:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   127e7:	31 c0                	xor    %eax,%eax
   127e9:	5b                   	pop    %ebx
   127ea:	5e                   	pop    %esi
   127eb:	5d                   	pop    %ebp
   127ec:	c2 14 00             	ret    $0x14
   127ef:	90                   	nop    

000127f0 <_IntInt10CallBios@8>:
   127f0:	55                   	push   %ebp
   127f1:	89 e5                	mov    %esp,%ebp
   127f3:	56                   	push   %esi
   127f4:	53                   	push   %ebx
   127f5:	83 ec 70             	sub    $0x70,%esp
   127f8:	8d 55 94             	lea    0xffffff94(%ebp),%edx
   127fb:	8d 4d 90             	lea    0xffffff90(%ebp),%ecx
   127fe:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   12801:	e8 6a 0a 00 00       	call   13270 <@IntAttachToCSRSS@8>
   12806:	8d 75 98             	lea    0xffffff98(%ebp),%esi
   12809:	50                   	push   %eax
   1280a:	6a 54                	push   $0x54
   1280c:	6a 00                	push   $0x0
   1280e:	56                   	push   %esi
   1280f:	e8 ac 20 00 00       	call   148c0 <_memset>
   12814:	8b 03                	mov    (%ebx),%eax
   12816:	89 45 b0             	mov    %eax,0xffffffb0(%ebp)
   12819:	59                   	pop    %ecx
   1281a:	8b 43 04             	mov    0x4(%ebx),%eax
   1281d:	89 45 ac             	mov    %eax,0xffffffac(%ebp)
   12820:	8b 43 08             	mov    0x8(%ebx),%eax
   12823:	89 45 a8             	mov    %eax,0xffffffa8(%ebp)
   12826:	8b 43 0c             	mov    0xc(%ebx),%eax
   12829:	89 45 a4             	mov    %eax,0xffffffa4(%ebp)
   1282c:	8b 43 10             	mov    0x10(%ebx),%eax
   1282f:	89 45 a0             	mov    %eax,0xffffffa0(%ebp)
   12832:	8b 43 14             	mov    0x14(%ebx),%eax
   12835:	89 45 9c             	mov    %eax,0xffffff9c(%ebp)
   12838:	8b 43 18             	mov    0x18(%ebx),%eax
   1283b:	89 45 98             	mov    %eax,0xffffff98(%ebp)
   1283e:	66 8b 43 1c          	mov    0x1c(%ebx),%ax
   12842:	25 ff ff 00 00       	and    $0xffff,%eax
   12847:	89 45 b4             	mov    %eax,0xffffffb4(%ebp)
   1284a:	66 8b 43 1e          	mov    0x1e(%ebx),%ax
   1284e:	25 ff ff 00 00       	and    $0xffff,%eax
   12853:	89 45 b8             	mov    %eax,0xffffffb8(%ebp)
   12856:	58                   	pop    %eax
   12857:	56                   	push   %esi
   12858:	6a 10                	push   $0x10
   1285a:	e8 11 21 00 00       	call   14970 <_Ke386CallBios@8>
   1285f:	8d 4d 90             	lea    0xffffff90(%ebp),%ecx
   12862:	89 c6                	mov    %eax,%esi
   12864:	8b 45 b0             	mov    0xffffffb0(%ebp),%eax
   12867:	89 03                	mov    %eax,(%ebx)
   12869:	8b 45 ac             	mov    0xffffffac(%ebp),%eax
   1286c:	89 43 04             	mov    %eax,0x4(%ebx)
   1286f:	8b 45 a8             	mov    0xffffffa8(%ebp),%eax
   12872:	89 43 08             	mov    %eax,0x8(%ebx)
   12875:	8b 45 a4             	mov    0xffffffa4(%ebp),%eax
   12878:	89 43 0c             	mov    %eax,0xc(%ebx)
   1287b:	8b 45 a0             	mov    0xffffffa0(%ebp),%eax
   1287e:	89 43 10             	mov    %eax,0x10(%ebx)
   12881:	8b 45 9c             	mov    0xffffff9c(%ebp),%eax
   12884:	89 43 14             	mov    %eax,0x14(%ebx)
   12887:	8b 45 98             	mov    0xffffff98(%ebp),%eax
   1288a:	89 43 18             	mov    %eax,0x18(%ebx)
   1288d:	8b 45 b4             	mov    0xffffffb4(%ebp),%eax
   12890:	66 89 43 1c          	mov    %ax,0x1c(%ebx)
   12894:	8b 45 b8             	mov    0xffffffb8(%ebp),%eax
   12897:	66 89 43 1e          	mov    %ax,0x1e(%ebx)
   1289b:	58                   	pop    %eax
   1289c:	5a                   	pop    %edx
   1289d:	8d 55 94             	lea    0xffffff94(%ebp),%edx
   128a0:	e8 2b 0a 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   128a5:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   128a8:	89 f0                	mov    %esi,%eax
   128aa:	5b                   	pop    %ebx
   128ab:	5e                   	pop    %esi
   128ac:	5d                   	pop    %ebp
   128ad:	c2 08 00             	ret    $0x8

000128b0 <_VideoPortInt10@8>:
   128b0:	55                   	push   %ebp
   128b1:	b8 57 00 00 00       	mov    $0x57,%eax
   128b6:	89 e5                	mov    %esp,%ebp
   128b8:	56                   	push   %esi
   128b9:	53                   	push   %ebx
   128ba:	83 ec 70             	sub    $0x70,%esp
   128bd:	8b 15 14 70 01 00    	mov    0x17014,%edx
   128c3:	8b 75 0c             	mov    0xc(%ebp),%esi
   128c6:	85 d2                	test   %edx,%edx
   128c8:	0f 84 86 00 00 00    	je     12954 <_VideoPortInt10@8+0xa4>
   128ce:	8d 55 94             	lea    0xffffff94(%ebp),%edx
   128d1:	8d 4d 90             	lea    0xffffff90(%ebp),%ecx
   128d4:	e8 97 09 00 00       	call   13270 <@IntAttachToCSRSS@8>
   128d9:	8d 5d 98             	lea    0xffffff98(%ebp),%ebx
   128dc:	50                   	push   %eax
   128dd:	6a 54                	push   $0x54
   128df:	6a 00                	push   $0x0
   128e1:	53                   	push   %ebx
   128e2:	e8 d9 1f 00 00       	call   148c0 <_memset>
   128e7:	8b 06                	mov    (%esi),%eax
   128e9:	89 45 b0             	mov    %eax,0xffffffb0(%ebp)
   128ec:	59                   	pop    %ecx
   128ed:	8b 46 04             	mov    0x4(%esi),%eax
   128f0:	89 45 ac             	mov    %eax,0xffffffac(%ebp)
   128f3:	8b 46 08             	mov    0x8(%esi),%eax
   128f6:	89 45 a8             	mov    %eax,0xffffffa8(%ebp)
   128f9:	8b 46 0c             	mov    0xc(%esi),%eax
   128fc:	89 45 a4             	mov    %eax,0xffffffa4(%ebp)
   128ff:	8b 46 10             	mov    0x10(%esi),%eax
   12902:	89 45 a0             	mov    %eax,0xffffffa0(%ebp)
   12905:	8b 46 14             	mov    0x14(%esi),%eax
   12908:	89 45 9c             	mov    %eax,0xffffff9c(%ebp)
   1290b:	8b 46 18             	mov    0x18(%esi),%eax
   1290e:	89 45 98             	mov    %eax,0xffffff98(%ebp)
   12911:	58                   	pop    %eax
   12912:	53                   	push   %ebx
   12913:	6a 10                	push   $0x10
   12915:	e8 56 20 00 00       	call   14970 <_Ke386CallBios@8>
   1291a:	8d 4d 90             	lea    0xffffff90(%ebp),%ecx
   1291d:	89 c3                	mov    %eax,%ebx
   1291f:	8b 45 b0             	mov    0xffffffb0(%ebp),%eax
   12922:	89 06                	mov    %eax,(%esi)
   12924:	8b 45 ac             	mov    0xffffffac(%ebp),%eax
   12927:	89 46 04             	mov    %eax,0x4(%esi)
   1292a:	8b 45 a8             	mov    0xffffffa8(%ebp),%eax
   1292d:	89 46 08             	mov    %eax,0x8(%esi)
   12930:	8b 45 a4             	mov    0xffffffa4(%ebp),%eax
   12933:	89 46 0c             	mov    %eax,0xc(%esi)
   12936:	8b 45 a0             	mov    0xffffffa0(%ebp),%eax
   12939:	89 46 10             	mov    %eax,0x10(%esi)
   1293c:	8b 45 9c             	mov    0xffffff9c(%ebp),%eax
   1293f:	89 46 14             	mov    %eax,0x14(%esi)
   12942:	8b 45 98             	mov    0xffffff98(%ebp),%eax
   12945:	89 46 18             	mov    %eax,0x18(%esi)
   12948:	58                   	pop    %eax
   12949:	5a                   	pop    %edx
   1294a:	8d 55 94             	lea    0xffffff94(%ebp),%edx
   1294d:	e8 7e 09 00 00       	call   132d0 <@IntDetachFromCSRSS@8>
   12952:	89 d8                	mov    %ebx,%eax
   12954:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12957:	5b                   	pop    %ebx
   12958:	5e                   	pop    %esi
   12959:	5d                   	pop    %ebp
   1295a:	c2 08 00             	ret    $0x8
   1295d:	90                   	nop    
   1295e:	90                   	nop    
   1295f:	90                   	nop    

00012960 <_IntVideoPortInterruptRoutine@8>:
   12960:	55                   	push   %ebp
   12961:	89 e5                	mov    %esp,%ebp
   12963:	83 ec 14             	sub    $0x14,%esp
   12966:	8b 45 0c             	mov    0xc(%ebp),%eax
   12969:	8b 50 60             	mov    0x60(%eax),%edx
   1296c:	05 b4 00 00 00       	add    $0xb4,%eax
   12971:	50                   	push   %eax
   12972:	ff 52 10             	call   *0x10(%edx)
   12975:	c9                   	leave  
   12976:	25 ff 00 00 00       	and    $0xff,%eax
   1297b:	c2 08 00             	ret    $0x8
   1297e:	89 f6                	mov    %esi,%esi

00012980 <_IntVideoPortSetupInterrupt@12>:
   12980:	55                   	push   %ebp
   12981:	89 e5                	mov    %esp,%ebp
   12983:	57                   	push   %edi
   12984:	56                   	push   %esi
   12985:	53                   	push   %ebx
   12986:	83 ec 0c             	sub    $0xc,%esp
   12989:	8b 75 10             	mov    0x10(%ebp),%esi
   1298c:	8b 45 08             	mov    0x8(%ebp),%eax
   1298f:	8b 5e 10             	mov    0x10(%esi),%ebx
   12992:	8b 78 28             	mov    0x28(%eax),%edi
   12995:	85 db                	test   %ebx,%ebx
   12997:	75 06                	jne    1299f <_IntVideoPortSetupInterrupt@12+0x1f>
   12999:	8b 47 24             	mov    0x24(%edi),%eax
   1299c:	89 46 10             	mov    %eax,0x10(%esi)
   1299f:	8b 4e 0c             	mov    0xc(%esi),%ecx
   129a2:	85 c9                	test   %ecx,%ecx
   129a4:	75 06                	jne    129ac <_IntVideoPortSetupInterrupt@12+0x2c>
   129a6:	8b 47 28             	mov    0x28(%edi),%eax
   129a9:	89 46 0c             	mov    %eax,0xc(%esi)
   129ac:	8b 45 0c             	mov    0xc(%ebp),%eax
   129af:	8b 50 10             	mov    0x10(%eax),%edx
   129b2:	85 d2                	test   %edx,%edx
   129b4:	75 11                	jne    129c7 <_IntVideoPortSetupInterrupt@12+0x47>
   129b6:	ba 01 00 00 00       	mov    $0x1,%edx
   129bb:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   129be:	89 d0                	mov    %edx,%eax
   129c0:	5b                   	pop    %ebx
   129c1:	5e                   	pop    %esi
   129c2:	5f                   	pop    %edi
   129c3:	5d                   	pop    %ebp
   129c4:	c2 0c 00             	ret    $0xc
   129c7:	50                   	push   %eax
   129c8:	50                   	push   %eax
   129c9:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   129cc:	50                   	push   %eax
   129cd:	8d 45 ef             	lea    0xffffffef(%ebp),%eax
   129d0:	50                   	push   %eax
   129d1:	8b 46 10             	mov    0x10(%esi),%eax
   129d4:	50                   	push   %eax
   129d5:	8b 46 0c             	mov    0xc(%esi),%eax
   129d8:	50                   	push   %eax
   129d9:	8b 46 04             	mov    0x4(%esi),%eax
   129dc:	50                   	push   %eax
   129dd:	8b 46 08             	mov    0x8(%esi),%eax
   129e0:	50                   	push   %eax
   129e1:	ff 15 d8 a1 01 00    	call   *0x1a1d8
   129e7:	89 c3                	mov    %eax,%ebx
   129e9:	59                   	pop    %ecx
   129ea:	31 d2                	xor    %edx,%edx
   129ec:	58                   	pop    %eax
   129ed:	85 db                	test   %ebx,%ebx
   129ef:	74 ca                	je     129bb <_IntVideoPortSetupInterrupt@12+0x3b>
   129f1:	8d 47 1c             	lea    0x1c(%edi),%eax
   129f4:	83 ec 0c             	sub    $0xc,%esp
   129f7:	89 45 e8             	mov    %eax,0xffffffe8(%ebp)
   129fa:	50                   	push   %eax
   129fb:	ff 15 8c a2 01 00    	call   *0x1a28c
   12a01:	58                   	pop    %eax
   12a02:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   12a05:	5a                   	pop    %edx
   12a06:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   12a09:	6a 00                	push   $0x0
   12a0b:	50                   	push   %eax
   12a0c:	31 c0                	xor    %eax,%eax
   12a0e:	6a 00                	push   $0x0
   12a10:	8b 76 14             	mov    0x14(%esi),%esi
   12a13:	8a 45 ef             	mov    0xffffffef(%ebp),%al
   12a16:	56                   	push   %esi
   12a17:	50                   	push   %eax
   12a18:	50                   	push   %eax
   12a19:	8d 47 18             	lea    0x18(%edi),%eax
   12a1c:	53                   	push   %ebx
   12a1d:	51                   	push   %ecx
   12a1e:	57                   	push   %edi
   12a1f:	68 60 29 01 00       	push   $0x12960
   12a24:	50                   	push   %eax
   12a25:	ff 15 38 a2 01 00    	call   *0x1a238
   12a2b:	5a                   	pop    %edx
   12a2c:	31 d2                	xor    %edx,%edx
   12a2e:	85 c0                	test   %eax,%eax
   12a30:	79 84                	jns    129b6 <_IntVideoPortSetupInterrupt@12+0x36>
   12a32:	eb 87                	jmp    129bb <_IntVideoPortSetupInterrupt@12+0x3b>
   12a34:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   12a3a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00012a40 <_VideoPortEnableInterrupt@4>:
   12a40:	55                   	push   %ebp
   12a41:	89 e5                	mov    %esp,%ebp
   12a43:	83 ec 0c             	sub    $0xc,%esp
   12a46:	8b 45 08             	mov    0x8(%ebp),%eax
   12a49:	2d b4 00 00 00       	sub    $0xb4,%eax
   12a4e:	8b 50 28             	mov    0x28(%eax),%edx
   12a51:	52                   	push   %edx
   12a52:	6a 00                	push   $0x0
   12a54:	8b 48 24             	mov    0x24(%eax),%ecx
   12a57:	51                   	push   %ecx
   12a58:	e8 23 22 00 00       	call   14c80 <_HalEnableSystemInterrupt@12>
   12a5d:	3c 01                	cmp    $0x1,%al
   12a5f:	5a                   	pop    %edx
   12a60:	19 c0                	sbb    %eax,%eax
   12a62:	c9                   	leave  
   12a63:	83 e0 0c             	and    $0xc,%eax
   12a66:	c2 04 00             	ret    $0x4
   12a69:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012a70 <_VideoPortDisableInterrupt@4>:
   12a70:	55                   	push   %ebp
   12a71:	89 e5                	mov    %esp,%ebp
   12a73:	83 ec 10             	sub    $0x10,%esp
   12a76:	8b 45 08             	mov    0x8(%ebp),%eax
   12a79:	6a 00                	push   $0x0
   12a7b:	2d b4 00 00 00       	sub    $0xb4,%eax
   12a80:	8b 48 24             	mov    0x24(%eax),%ecx
   12a83:	51                   	push   %ecx
   12a84:	e8 07 22 00 00       	call   14c90 <_HalDisableSystemInterrupt@8>
   12a89:	3c 01                	cmp    $0x1,%al
   12a8b:	59                   	pop    %ecx
   12a8c:	19 c0                	sbb    %eax,%eax
   12a8e:	5a                   	pop    %edx
   12a8f:	83 e0 0c             	and    $0xc,%eax
   12a92:	c9                   	leave  
   12a93:	c2 04 00             	ret    $0x4
   12a96:	90                   	nop    
   12a97:	90                   	nop    
   12a98:	90                   	nop    
   12a99:	90                   	nop    
   12a9a:	90                   	nop    
   12a9b:	90                   	nop    
   12a9c:	90                   	nop    
   12a9d:	90                   	nop    
   12a9e:	90                   	nop    
   12a9f:	90                   	nop    

00012aa0 <_DriverEntry@8>:
   12aa0:	55                   	push   %ebp
   12aa1:	31 c0                	xor    %eax,%eax
   12aa3:	89 e5                	mov    %esp,%ebp
   12aa5:	5d                   	pop    %ebp
   12aa6:	c2 08 00             	ret    $0x8
   12aa9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012ab0 <_IntVideoPortImageDirectoryEntryToData@8>:
   12ab0:	55                   	push   %ebp
   12ab1:	89 e5                	mov    %esp,%ebp
   12ab3:	56                   	push   %esi
   12ab4:	53                   	push   %ebx
   12ab5:	83 ec 0c             	sub    $0xc,%esp
   12ab8:	8b 75 08             	mov    0x8(%ebp),%esi
   12abb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   12abe:	56                   	push   %esi
   12abf:	e8 dc 1e 00 00       	call   149a0 <_RtlImageNtHeader@4>
   12ac4:	31 d2                	xor    %edx,%edx
   12ac6:	83 c4 0c             	add    $0xc,%esp
   12ac9:	85 c0                	test   %eax,%eax
   12acb:	74 10                	je     12add <_IntVideoPortImageDirectoryEntryToData@8+0x2d>
   12acd:	39 58 74             	cmp    %ebx,0x74(%eax)
   12ad0:	76 0b                	jbe    12add <_IntVideoPortImageDirectoryEntryToData@8+0x2d>
   12ad2:	8b 44 d8 78          	mov    0x78(%eax,%ebx,8),%eax
   12ad6:	85 c0                	test   %eax,%eax
   12ad8:	74 03                	je     12add <_IntVideoPortImageDirectoryEntryToData@8+0x2d>
   12ada:	8d 14 06             	lea    (%esi,%eax,1),%edx
   12add:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   12ae0:	89 d0                	mov    %edx,%eax
   12ae2:	5b                   	pop    %ebx
   12ae3:	5e                   	pop    %esi
   12ae4:	5d                   	pop    %ebp
   12ae5:	c2 08 00             	ret    $0x8
   12ae8:	90                   	nop    
   12ae9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012af0 <_IntVideoPortGetProcAddress@8>:
   12af0:	55                   	push   %ebp
   12af1:	89 e5                	mov    %esp,%ebp
   12af3:	57                   	push   %edi
   12af4:	56                   	push   %esi
   12af5:	53                   	push   %ebx
   12af6:	83 ec 44             	sub    $0x44,%esp
   12af9:	8d 5d c8             	lea    0xffffffc8(%ebp),%ebx
   12afc:	c7 45 bc 00 00 00 00 	movl   $0x0,0xffffffbc(%ebp)
   12b03:	68 a0 63 01 00       	push   $0x163a0
   12b08:	53                   	push   %ebx
   12b09:	e8 a2 1e 00 00       	call   149b0 <_RtlInitUnicodeString@8>
   12b0e:	c7 04 24 18 00 00 00 	movl   $0x18,(%esp)
   12b15:	53                   	push   %ebx
   12b16:	6a 1a                	push   $0x1a
   12b18:	e8 a3 1e 00 00       	call   149c0 <_ZwSetSystemInformation@12>
   12b1d:	31 d2                	xor    %edx,%edx
   12b1f:	5e                   	pop    %esi
   12b20:	85 c0                	test   %eax,%eax
   12b22:	78 7b                	js     12b9f <_IntVideoPortGetProcAddress@8+0xaf>
   12b24:	8b 45 d0             	mov    0xffffffd0(%ebp),%eax
   12b27:	89 45 c4             	mov    %eax,0xffffffc4(%ebp)
   12b2a:	57                   	push   %edi
   12b2b:	57                   	push   %edi
   12b2c:	6a 00                	push   $0x0
   12b2e:	50                   	push   %eax
   12b2f:	e8 7c ff ff ff       	call   12ab0 <_IntVideoPortImageDirectoryEntryToData@8>
   12b34:	8b 4d c4             	mov    0xffffffc4(%ebp),%ecx
   12b37:	89 c7                	mov    %eax,%edi
   12b39:	8b 70 1c             	mov    0x1c(%eax),%esi
   12b3c:	8b 58 24             	mov    0x24(%eax),%ebx
   12b3f:	01 f1                	add    %esi,%ecx
   12b41:	8b 75 c4             	mov    0xffffffc4(%ebp),%esi
   12b44:	89 4d c0             	mov    %ecx,0xffffffc0(%ebp)
   12b47:	01 de                	add    %ebx,%esi
   12b49:	8b 48 20             	mov    0x20(%eax),%ecx
   12b4c:	8b 5d c4             	mov    0xffffffc4(%ebp),%ebx
   12b4f:	58                   	pop    %eax
   12b50:	8b 47 18             	mov    0x18(%edi),%eax
   12b53:	01 cb                	add    %ecx,%ebx
   12b55:	5a                   	pop    %edx
   12b56:	85 c0                	test   %eax,%eax
   12b58:	74 43                	je     12b9d <_IntVideoPortGetProcAddress@8+0xad>
   12b5a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   12b60:	83 ec 0c             	sub    $0xc,%esp
   12b63:	8b 45 0c             	mov    0xc(%ebp),%eax
   12b66:	50                   	push   %eax
   12b67:	e8 f4 1f 00 00       	call   14b60 <_strlen>
   12b6c:	83 c4 0c             	add    $0xc,%esp
   12b6f:	50                   	push   %eax
   12b70:	8b 45 c4             	mov    0xffffffc4(%ebp),%eax
   12b73:	8b 0b                	mov    (%ebx),%ecx
   12b75:	01 c8                	add    %ecx,%eax
   12b77:	50                   	push   %eax
   12b78:	8b 55 0c             	mov    0xc(%ebp),%edx
   12b7b:	52                   	push   %edx
   12b7c:	e8 ef 1f 00 00       	call   14b70 <__strnicmp>
   12b81:	83 c4 10             	add    $0x10,%esp
   12b84:	85 c0                	test   %eax,%eax
   12b86:	74 23                	je     12bab <_IntVideoPortGetProcAddress@8+0xbb>
   12b88:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   12b8b:	83 c3 04             	add    $0x4,%ebx
   12b8e:	40                   	inc    %eax
   12b8f:	83 c6 02             	add    $0x2,%esi
   12b92:	89 45 bc             	mov    %eax,0xffffffbc(%ebp)
   12b95:	8b 45 bc             	mov    0xffffffbc(%ebp),%eax
   12b98:	39 47 18             	cmp    %eax,0x18(%edi)
   12b9b:	77 c3                	ja     12b60 <_IntVideoPortGetProcAddress@8+0x70>
   12b9d:	31 d2                	xor    %edx,%edx
   12b9f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12ba2:	89 d0                	mov    %edx,%eax
   12ba4:	5b                   	pop    %ebx
   12ba5:	5e                   	pop    %esi
   12ba6:	5f                   	pop    %edi
   12ba7:	5d                   	pop    %ebp
   12ba8:	c2 08 00             	ret    $0x8
   12bab:	66 8b 06             	mov    (%esi),%ax
   12bae:	8b 4d c0             	mov    0xffffffc0(%ebp),%ecx
   12bb1:	25 ff ff 00 00       	and    $0xffff,%eax
   12bb6:	8b 55 c4             	mov    0xffffffc4(%ebp),%edx
   12bb9:	8b 1c 81             	mov    (%ecx,%eax,4),%ebx
   12bbc:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12bbf:	01 da                	add    %ebx,%edx
   12bc1:	5b                   	pop    %ebx
   12bc2:	89 d0                	mov    %edx,%eax
   12bc4:	5e                   	pop    %esi
   12bc5:	5f                   	pop    %edi
   12bc6:	5d                   	pop    %ebp
   12bc7:	c2 08 00             	ret    $0x8
   12bca:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012bd0 <_IntVideoPortDeferredRoutine@16>:
   12bd0:	55                   	push   %ebp
   12bd1:	89 e5                	mov    %esp,%ebp
   12bd3:	83 ec 10             	sub    $0x10,%esp
   12bd6:	8b 45 0c             	mov    0xc(%ebp),%eax
   12bd9:	8b 55 14             	mov    0x14(%ebp),%edx
   12bdc:	05 b4 00 00 00       	add    $0xb4,%eax
   12be1:	52                   	push   %edx
   12be2:	50                   	push   %eax
   12be3:	ff 55 10             	call   *0x10(%ebp)
   12be6:	c9                   	leave  
   12be7:	c2 10 00             	ret    $0x10
   12bea:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00012bf0 <_IntVideoPortAllocateDeviceNumber@0>:
   12bf0:	55                   	push   %ebp
   12bf1:	89 e5                	mov    %esp,%ebp
   12bf3:	57                   	push   %edi
   12bf4:	56                   	push   %esi
   12bf5:	53                   	push   %ebx
   12bf6:	83 ec 6c             	sub    $0x6c,%esp
   12bf9:	31 ff                	xor    %edi,%edi
   12bfb:	8d 75 90             	lea    0xffffff90(%ebp),%esi
   12bfe:	89 f6                	mov    %esi,%esi
   12c00:	8d 5f 01             	lea    0x1(%edi),%ebx
   12c03:	50                   	push   %eax
   12c04:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   12c07:	53                   	push   %ebx
   12c08:	68 b2 63 01 00       	push   $0x163b2
   12c0d:	50                   	push   %eax
   12c0e:	e8 3d 1f 00 00       	call   14b50 <_swprintf>
   12c13:	59                   	pop    %ecx
   12c14:	58                   	pop    %eax
   12c15:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   12c18:	50                   	push   %eax
   12c19:	56                   	push   %esi
   12c1a:	e8 91 1d 00 00       	call   149b0 <_RtlInitUnicodeString@8>
   12c1f:	8d 45 98             	lea    0xffffff98(%ebp),%eax
   12c22:	8d 75 90             	lea    0xffffff90(%ebp),%esi
   12c25:	c7 45 98 18 00 00 00 	movl   $0x18,0xffffff98(%ebp)
   12c2c:	89 04 24             	mov    %eax,(%esp)
   12c2f:	8d 45 8c             	lea    0xffffff8c(%ebp),%eax
   12c32:	68 00 00 00 80       	push   $0x80000000
   12c37:	c7 45 9c 00 00 00 00 	movl   $0x0,0xffffff9c(%ebp)
   12c3e:	c7 45 a4 00 00 00 00 	movl   $0x0,0xffffffa4(%ebp)
   12c45:	89 75 a0             	mov    %esi,0xffffffa0(%ebp)
   12c48:	c7 45 a8 00 00 00 00 	movl   $0x0,0xffffffa8(%ebp)
   12c4f:	c7 45 ac 00 00 00 00 	movl   $0x0,0xffffffac(%ebp)
   12c56:	50                   	push   %eax
   12c57:	e8 74 1d 00 00       	call   149d0 <_ZwOpenSymbolicLinkObject@12>
   12c5c:	5a                   	pop    %edx
   12c5d:	85 c0                	test   %eax,%eax
   12c5f:	78 13                	js     12c74 <_IntVideoPortAllocateDeviceNumber@0+0x84>
   12c61:	83 ec 0c             	sub    $0xc,%esp
   12c64:	8b 4d 8c             	mov    0xffffff8c(%ebp),%ecx
   12c67:	89 df                	mov    %ebx,%edi
   12c69:	51                   	push   %ecx
   12c6a:	e8 71 1d 00 00       	call   149e0 <_ZwClose@4>
   12c6f:	83 c4 0c             	add    $0xc,%esp
   12c72:	eb 8c                	jmp    12c00 <_IntVideoPortAllocateDeviceNumber@0+0x10>
   12c74:	3d 25 02 00 c0       	cmp    $0xc0000225,%eax
   12c79:	0f 94 c2             	sete   %dl
   12c7c:	3d 01 00 00 c0       	cmp    $0xc0000001,%eax
   12c81:	0f 94 c0             	sete   %al
   12c84:	09 d0                	or     %edx,%eax
   12c86:	83 ca ff             	or     $0xffffffff,%edx
   12c89:	a8 01                	test   $0x1,%al
   12c8b:	74 02                	je     12c8f <_IntVideoPortAllocateDeviceNumber@0+0x9f>
   12c8d:	89 fa                	mov    %edi,%edx
   12c8f:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12c92:	89 d0                	mov    %edx,%eax
   12c94:	5b                   	pop    %ebx
   12c95:	5e                   	pop    %esi
   12c96:	5f                   	pop    %edi
   12c97:	5d                   	pop    %ebp
   12c98:	c3                   	ret    
   12c99:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00012ca0 <_IntVideoPortCreateAdapterDeviceObject@16>:
   12ca0:	55                   	push   %ebp
   12ca1:	89 e5                	mov    %esp,%ebp
   12ca3:	57                   	push   %edi
   12ca4:	56                   	push   %esi
   12ca5:	53                   	push   %ebx
   12ca6:	83 ec 5c             	sub    $0x5c,%esp
   12ca9:	8b 5d 14             	mov    0x14(%ebp),%ebx
   12cac:	85 db                	test   %ebx,%ebx
   12cae:	0f 84 9c 01 00 00    	je     12e50 <_IntVideoPortCreateAdapterDeviceObject@16+0x1b0>
   12cb4:	e8 37 ff ff ff       	call   12bf0 <_IntVideoPortAllocateDeviceNumber@0>
   12cb9:	89 c7                	mov    %eax,%edi
   12cbb:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   12cc0:	83 ff ff             	cmp    $0xffffffff,%edi
   12cc3:	0f 84 7b 01 00 00    	je     12e44 <_IntVideoPortCreateAdapterDeviceObject@16+0x1a4>
   12cc9:	8d 5d b8             	lea    0xffffffb8(%ebp),%ebx
   12ccc:	51                   	push   %ecx
   12ccd:	57                   	push   %edi
   12cce:	68 d0 63 01 00       	push   $0x163d0
   12cd3:	53                   	push   %ebx
   12cd4:	e8 77 1e 00 00       	call   14b50 <_swprintf>
   12cd9:	58                   	pop    %eax
   12cda:	5a                   	pop    %edx
   12cdb:	53                   	push   %ebx
   12cdc:	8d 5d a8             	lea    0xffffffa8(%ebp),%ebx
   12cdf:	53                   	push   %ebx
   12ce0:	e8 cb 1c 00 00       	call   149b0 <_RtlInitUnicodeString@8>
   12ce5:	8b 55 0c             	mov    0xc(%ebp),%edx
   12ce8:	58                   	pop    %eax
   12ce9:	8b 45 14             	mov    0x14(%ebp),%eax
   12cec:	8b 75 08             	mov    0x8(%ebp),%esi
   12cef:	50                   	push   %eax
   12cf0:	6a 01                	push   $0x1
   12cf2:	6a 00                	push   $0x0
   12cf4:	6a 23                	push   $0x23
   12cf6:	53                   	push   %ebx
   12cf7:	8b 42 18             	mov    0x18(%edx),%eax
   12cfa:	05 b8 00 00 00       	add    $0xb8,%eax
   12cff:	50                   	push   %eax
   12d00:	56                   	push   %esi
   12d01:	ff 15 3c a2 01 00    	call   *0x1a23c
   12d07:	5b                   	pop    %ebx
   12d08:	85 c0                	test   %eax,%eax
   12d0a:	0f 88 34 01 00 00    	js     12e44 <_IntVideoPortCreateAdapterDeviceObject@16+0x1a4>
   12d10:	8b 55 14             	mov    0x14(%ebp),%edx
   12d13:	8b 02                	mov    (%edx),%eax
   12d15:	8b 48 1c             	mov    0x1c(%eax),%ecx
   12d18:	8b 70 28             	mov    0x28(%eax),%esi
   12d1b:	83 c9 04             	or     $0x4,%ecx
   12d1e:	89 48 1c             	mov    %ecx,0x1c(%eax)
   12d21:	8b 45 10             	mov    0x10(%ebp),%eax
   12d24:	89 46 04             	mov    %eax,0x4(%esi)
   12d27:	89 3e                	mov    %edi,(%esi)
   12d29:	8b 02                	mov    (%edx),%eax
   12d2b:	8b 55 0c             	mov    0xc(%ebp),%edx
   12d2e:	89 46 08             	mov    %eax,0x8(%esi)
   12d31:	89 56 60             	mov    %edx,0x60(%esi)
   12d34:	66 8b 42 58          	mov    0x58(%edx),%ax
   12d38:	8d 50 12             	lea    0x12(%eax),%edx
   12d3b:	83 c0 10             	add    $0x10,%eax
   12d3e:	66 89 56 12          	mov    %dx,0x12(%esi)
   12d42:	66 89 46 10          	mov    %ax,0x10(%esi)
   12d46:	52                   	push   %edx
   12d47:	68 56 49 44 50       	push   $0x50444956
   12d4c:	66 8b 46 12          	mov    0x12(%esi),%ax
   12d50:	25 ff ff 00 00       	and    $0xffff,%eax
   12d55:	50                   	push   %eax
   12d56:	6a 00                	push   $0x0
   12d58:	ff 15 24 a2 01 00    	call   *0x1a224
   12d5e:	89 46 14             	mov    %eax,0x14(%esi)
   12d61:	8b 45 0c             	mov    0xc(%ebp),%eax
   12d64:	8b 40 5c             	mov    0x5c(%eax),%eax
   12d67:	50                   	push   %eax
   12d68:	68 f2 63 01 00       	push   $0x163f2
   12d6d:	8b 46 14             	mov    0x14(%esi),%eax
   12d70:	50                   	push   %eax
   12d71:	e8 da 1d 00 00       	call   14b50 <_swprintf>
   12d76:	8b 45 10             	mov    0x10(%ebp),%eax
   12d79:	83 c4 10             	add    $0x10,%esp
   12d7c:	85 c0                	test   %eax,%eax
   12d7e:	74 2b                	je     12dab <_IntVideoPortCreateAdapterDeviceObject@16+0x10b>
   12d80:	83 ec 0c             	sub    $0xc,%esp
   12d83:	8d 45 a4             	lea    0xffffffa4(%ebp),%eax
   12d86:	c7 45 a4 04 00 00 00 	movl   $0x4,0xffffffa4(%ebp)
   12d8d:	50                   	push   %eax
   12d8e:	8d 46 30             	lea    0x30(%esi),%eax
   12d91:	50                   	push   %eax
   12d92:	8b 45 10             	mov    0x10(%ebp),%eax
   12d95:	6a 04                	push   $0x4
   12d97:	6a 0e                	push   $0xe
   12d99:	50                   	push   %eax
   12d9a:	ff 15 54 a2 01 00    	call   *0x1a254
   12da0:	83 c4 0c             	add    $0xc,%esp
   12da3:	85 c0                	test   %eax,%eax
   12da5:	0f 88 b0 00 00 00    	js     12e5b <_IntVideoPortCreateAdapterDeviceObject@16+0x1bb>
   12dab:	8b 55 0c             	mov    0xc(%ebp),%edx
   12dae:	8b 42 04             	mov    0x4(%edx),%eax
   12db1:	89 46 2c             	mov    %eax,0x2c(%esi)
   12db4:	8b 45 10             	mov    0x10(%ebp),%eax
   12db7:	85 c0                	test   %eax,%eax
   12db9:	74 3d                	je     12df8 <_IntVideoPortCreateAdapterDeviceObject@16+0x158>
   12dbb:	83 ec 0c             	sub    $0xc,%esp
   12dbe:	8d 5d a4             	lea    0xffffffa4(%ebp),%ebx
   12dc1:	8d 46 2c             	lea    0x2c(%esi),%eax
   12dc4:	c7 45 a4 04 00 00 00 	movl   $0x4,0xffffffa4(%ebp)
   12dcb:	53                   	push   %ebx
   12dcc:	50                   	push   %eax
   12dcd:	8b 45 10             	mov    0x10(%ebp),%eax
   12dd0:	6a 04                	push   $0x4
   12dd2:	6a 0d                	push   $0xd
   12dd4:	50                   	push   %eax
   12dd5:	ff 15 54 a2 01 00    	call   *0x1a254
   12ddb:	8d 46 34             	lea    0x34(%esi),%eax
   12dde:	8b 7d 10             	mov    0x10(%ebp),%edi
   12de1:	c7 45 a4 04 00 00 00 	movl   $0x4,0xffffffa4(%ebp)
   12de8:	53                   	push   %ebx
   12de9:	50                   	push   %eax
   12dea:	6a 04                	push   $0x4
   12dec:	6a 10                	push   $0x10
   12dee:	57                   	push   %edi
   12def:	ff 15 54 a2 01 00    	call   *0x1a254
   12df5:	83 c4 0c             	add    $0xc,%esp

static __inline VOID
InitializeListHead(
  IN PLIST_ENTRY  ListHead)
{
   12df8:	8d 46 38             	lea    0x38(%esi),%eax
  ListHead->Flink = ListHead->Blink = ListHead;
   12dfb:	89 46 38             	mov    %eax,0x38(%esi)
   12dfe:	89 40 04             	mov    %eax,0x4(%eax)
      }
   }

   DPRINT("VideoPortGetProcAddress: Can't resolve symbol %s\n", FunctionName);

   return NULL;
}

VOID STDCALL
IntVideoPortDeferredRoutine(
   IN PKDPC Dpc,
   IN PVOID DeferredContext,
   IN PVOID SystemArgument1,
   IN PVOID SystemArgument2)
{
   PVOID HwDeviceExtension = 
      &((PVIDEO_PORT_DEVICE_EXTENSION)DeferredContext)->MiniPortDeviceExtension;
   ((PMINIPORT_DPC_ROUTINE)SystemArgument1)(HwDeviceExtension, SystemArgument2);
}

ULONG STDCALL
IntVideoPortAllocateDeviceNumber(VOID)
{
   NTSTATUS Status;
   ULONG DeviceNumber;
   WCHAR SymlinkBuffer[20];
   UNICODE_STRING SymlinkName;

   for (DeviceNumber = 0;;)
   {
      OBJECT_ATTRIBUTES Obj;
      HANDLE ObjHandle;

      swprintf(SymlinkBuffer, L"\\??\\DISPLAY%lu", DeviceNumber + 1);
      RtlInitUnicodeString(&SymlinkName, SymlinkBuffer);
      InitializeObjectAttributes(&Obj, &SymlinkName, 0, NULL, NULL);
      Status = ZwOpenSymbolicLinkObject(&ObjHandle, GENERIC_READ, &Obj);
      if (NT_SUCCESS(Status))
      {
         ZwClose(ObjHandle);
         DeviceNumber++;
         continue;
      }
      else if (Status == STATUS_NOT_FOUND || Status == STATUS_UNSUCCESSFUL)
         break;
      else
         return 0xFFFFFFFF;
   }

   return DeviceNumber;
}

NTSTATUS STDCALL
IntVideoPortCreateAdapterDeviceObject(
   IN PDRIVER_OBJECT DriverObject,
   IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension,
   IN PDEVICE_OBJECT PhysicalDeviceObject,
   OUT PDEVICE_OBJECT *DeviceObject  OPTIONAL)
{
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   ULONG DeviceNumber;
   ULONG Size;
   NTSTATUS Status;
   WCHAR DeviceBuffer[20];
   UNICODE_STRING DeviceName;
   PDEVICE_OBJECT DeviceObject_;
   
   if (DeviceObject == NULL)
      DeviceObject = &DeviceObject_;

   /*
    * Find the first free device number that can be used for video device
    * object names and symlinks.
    */

   DeviceNumber = IntVideoPortAllocateDeviceNumber();
   if (DeviceNumber == 0xFFFFFFFF)
   {
      DPRINT("Can't find free device number\n");
      return STATUS_UNSUCCESSFUL;
   }

   /*
    * Create the device object.
    */

   /* Create a unicode device name. */
   swprintf(DeviceBuffer, L"\\Device\\Video%lu", DeviceNumber);
   RtlInitUnicodeString(&DeviceName, DeviceBuffer);

   /* Create the device object. */
   Status = IoCreateDevice(
      DriverObject,
      sizeof(VIDEO_PORT_DEVICE_EXTENSION) +
      DriverExtension->InitializationData.HwDeviceExtensionSize,
      &DeviceName,
      FILE_DEVICE_VIDEO,
      0,
      TRUE,
      DeviceObject);

   if (!NT_SUCCESS(Status))
   {
      DPRINT("IoCreateDevice call failed with status 0x%08x\n", Status);
      return Status;
   }

   /*
    * Set the buffering strategy here. If you change this, remember
    * to change VidDispatchDeviceControl too.
    */

   (*DeviceObject)->Flags |= DO_BUFFERED_IO;

   /*
    * Initialize device extension.
    */

   DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)((*DeviceObject)->DeviceExtension);
   DeviceExtension->DeviceNumber = DeviceNumber;
   DeviceExtension->PhysicalDeviceObject = PhysicalDeviceObject;
   DeviceExtension->FunctionalDeviceObject = *DeviceObject;
   DeviceExtension->DriverExtension = DriverExtension;

   DeviceExtension->RegistryPath.Length =
   DeviceExtension->RegistryPath.MaximumLength =
      DriverExtension->RegistryPath.Length + (9 * sizeof(WCHAR));
   DeviceExtension->RegistryPath.Length -= sizeof(WCHAR);
   DeviceExtension->RegistryPath.Buffer = ExAllocatePoolWithTag(
      NonPagedPool,
      DeviceExtension->RegistryPath.MaximumLength,
      TAG_VIDEO_PORT);
   swprintf(DeviceExtension->RegistryPath.Buffer, L"%s\\Device0",
      DriverExtension->RegistryPath.Buffer);

   if (PhysicalDeviceObject != NULL)
   {
      /* Get bus number from the upper level bus driver. */
      Size = sizeof(ULONG);
      Status = IoGetDeviceProperty(
         PhysicalDeviceObject,
         DevicePropertyBusNumber,
         Size,
         &DeviceExtension->SystemIoBusNumber,
         &Size);
      if (!NT_SUCCESS(Status))
      {
         DPRINT("Couldn't get an information from bus driver. We will try to\n"
                "use legacy detection method, but even that doesn't mean that\n"
                "it will work.\n");
         DeviceExtension->PhysicalDeviceObject = NULL;
      }
   }

   DeviceExtension->AdapterInterfaceType =
      DriverExtension->InitializationData.AdapterInterfaceType;

   if (PhysicalDeviceObject != NULL)
   {
      /* Get bus type from the upper level bus driver. */
      Size = sizeof(ULONG);
      IoGetDeviceProperty(
         PhysicalDeviceObject,
         DevicePropertyLegacyBusType,
         Size,
         &DeviceExtension->AdapterInterfaceType,
         &Size);

      /* Get bus device address from the upper level bus driver. */
      Size = sizeof(ULONG);
      IoGetDeviceProperty(
         PhysicalDeviceObject,
         DevicePropertyAddress,
         Size,
         &DeviceExtension->SystemIoSlotNumber,
         &Size);
   }

   InitializeListHead(&DeviceExtension->AddressMappingListHead);
   KeInitializeDpc(
   12e01:	8d 46 40             	lea    0x40(%esi),%eax
   12e04:	53                   	push   %ebx
   12e05:	56                   	push   %esi
   12e06:	68 d0 2b 01 00       	push   $0x12bd0
   12e0b:	50                   	push   %eax
   12e0c:	ff 15 80 a2 01 00    	call   *0x1a280
      &DeviceExtension->DpcObject,
      IntVideoPortDeferredRoutine,
      DeviceExtension);

   KeInitializeMutex(&DeviceExtension->DeviceLock, 0);
   12e12:	8d 86 94 00 00 00    	lea    0x94(%esi),%eax
   12e18:	51                   	push   %ecx
   12e19:	6a 00                	push   $0x0
   12e1b:	50                   	push   %eax
   12e1c:	ff 15 88 a2 01 00    	call   *0x1a288

   /* Attach the device. */
   if (PhysicalDeviceObject != NULL)
   12e22:	58                   	pop    %eax
   12e23:	8b 45 10             	mov    0x10(%ebp),%eax
   12e26:	5a                   	pop    %edx
   12e27:	85 c0                	test   %eax,%eax
   12e29:	74 17                	je     12e42 <_IntVideoPortCreateAdapterDeviceObject@16+0x1a2>
      DeviceExtension->NextDeviceObject = IoAttachDeviceToDeviceStack(
   12e2b:	8b 5d 10             	mov    0x10(%ebp),%ebx
   12e2e:	8b 45 14             	mov    0x14(%ebp),%eax
   12e31:	57                   	push   %edi
   12e32:	57                   	push   %edi
   12e33:	53                   	push   %ebx
   12e34:	8b 08                	mov    (%eax),%ecx
   12e36:	51                   	push   %ecx
   12e37:	ff 15 30 a2 01 00    	call   *0x1a230
   12e3d:	89 46 0c             	mov    %eax,0xc(%esi)
   12e40:	58                   	pop    %eax
   12e41:	5a                   	pop    %edx
         *DeviceObject, PhysicalDeviceObject);

   return STATUS_SUCCESS;
   12e42:	31 c0                	xor    %eax,%eax
}
   12e44:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12e47:	5b                   	pop    %ebx
   12e48:	5e                   	pop    %esi
   12e49:	5f                   	pop    %edi
   12e4a:	5d                   	pop    %ebp
   12e4b:	c2 10 00             	ret    $0x10
   12e4e:	89 f6                	mov    %esi,%esi
   12e50:	8d 45 b4             	lea    0xffffffb4(%ebp),%eax
   12e53:	89 45 14             	mov    %eax,0x14(%ebp)
   12e56:	e9 59 fe ff ff       	jmp    12cb4 <_IntVideoPortCreateAdapterDeviceObject@16+0x14>
   12e5b:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
   12e62:	e9 44 ff ff ff       	jmp    12dab <_IntVideoPortCreateAdapterDeviceObject@16+0x10b>
   12e67:	89 f6                	mov    %esi,%esi
   12e69:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00012e70 <_VideoPortEnumerateChildren@8>:


/* FIXME: we have to detach the device object in IntVideoPortFindAdapter if it fails */
NTSTATUS STDCALL
IntVideoPortFindAdapter(
   IN PDRIVER_OBJECT DriverObject,
   IN PVIDEO_PORT_DRIVER_EXTENSION DriverExtension,
   IN PDEVICE_OBJECT DeviceObject)
{
   WCHAR DeviceVideoBuffer[20];
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   ULONG Size;
   NTSTATUS Status;
   VIDEO_PORT_CONFIG_INFO ConfigInfo;
   SYSTEM_BASIC_INFORMATION SystemBasicInfo;
   UCHAR Again = FALSE;
   WCHAR DeviceBuffer[20];
   UNICODE_STRING DeviceName;
   WCHAR SymlinkBuffer[20];
   UNICODE_STRING SymlinkName;
   BOOL LegacyDetection = FALSE;
   ULONG DeviceNumber;

   DeviceExtension = (PVIDEO_PORT_DEVICE_EXTENSION)DeviceObject->DeviceExtension;
   DeviceNumber = DeviceExtension->DeviceNumber;

   /*
    * Setup a ConfigInfo structure that we will pass to HwFindAdapter.
    */

   RtlZeroMemory(&ConfigInfo, sizeof(VIDEO_PORT_CONFIG_INFO));
   ConfigInfo.Length = sizeof(VIDEO_PORT_CONFIG_INFO);
   ConfigInfo.AdapterInterfaceType = DeviceExtension->AdapterInterfaceType;
   if (ConfigInfo.AdapterInterfaceType == PCIBus)
      ConfigInfo.InterruptMode = LevelSensitive;
   else
      ConfigInfo.InterruptMode = Latched;
   ConfigInfo.DriverRegistryPath = DriverExtension->RegistryPath.Buffer;
   ConfigInfo.VideoPortGetProcAddress = IntVideoPortGetProcAddress;
   ConfigInfo.SystemIoBusNumber = DeviceExtension->SystemIoBusNumber;
   ConfigInfo.BusInterruptLevel = DeviceExtension->InterruptLevel;
   ConfigInfo.BusInterruptVector = DeviceExtension->InterruptVector;

   Size = sizeof(SystemBasicInfo);
   Status = ZwQuerySystemInformation(
      SystemBasicInformation,
      &SystemBasicInfo,
      Size,
      &Size);

   if (NT_SUCCESS(Status))
   {
      ConfigInfo.SystemMemorySize =
         SystemBasicInfo.NumberOfPhysicalPages * 
         SystemBasicInfo.PhysicalPageSize;
   }

   /*
    * Call miniport HwVidFindAdapter entry point to detect if
    * particular device is present. There are two possible code
    * paths. The first one is for Legacy drivers (NT4) and cases
    * when we don't have information about what bus we're on. The
    * second case is the standard one for Plug & Play drivers.
    */
   if (DeviceExtension->PhysicalDeviceObject == NULL)
   {
      LegacyDetection = TRUE;
   }
   
   if (LegacyDetection)
   {
      ULONG BusNumber, MaxBuses;

      MaxBuses = DeviceExtension->AdapterInterfaceType == PCIBus ? 8 : 1;

      for (BusNumber = 0; BusNumber < MaxBuses; BusNumber++)
      {
         DeviceExtension->SystemIoBusNumber =
         ConfigInfo.SystemIoBusNumber = BusNumber;

         RtlZeroMemory(&DeviceExtension->MiniPortDeviceExtension, 
                       DriverExtension->InitializationData.HwDeviceExtensionSize);
   
         /* FIXME: Need to figure out what string to pass as param 3. */
         Status = DriverExtension->InitializationData.HwFindAdapter(
            &DeviceExtension->MiniPortDeviceExtension,
            DriverExtension->HwContext,
            NULL,
            &ConfigInfo,
            &Again);

         if (Status == ERROR_DEV_NOT_EXIST)
         {
            continue;
         }
         else if (Status == NO_ERROR)
         {
            break;
         }
         else
         {
            DPRINT("HwFindAdapter call failed with error 0x%X\n", Status);
            RtlFreeUnicodeString(&DeviceExtension->RegistryPath);
            IoDeleteDevice(DeviceObject);

            return Status;
         }
      }
   }
   else
   {
      /* FIXME: Need to figure out what string to pass as param 3. */
      Status = DriverExtension->InitializationData.HwFindAdapter(
         &DeviceExtension->MiniPortDeviceExtension,
         DriverExtension->HwContext,
         NULL,
         &ConfigInfo,
         &Again);
   }

   if (Status != NO_ERROR)
   {
      DPRINT("HwFindAdapter call failed with error 0x%X\n", Status);
      RtlFreeUnicodeString(&DeviceExtension->RegistryPath);
      IoDeleteDevice(DeviceObject);
      return Status;
   }

   /*
    * Now we know the device is present, so let's do all additional tasks
    * such as creating symlinks or setting up interrupts and timer.
    */

   /* Create a unicode device name. */
   swprintf(DeviceBuffer, L"\\Device\\Video%lu", DeviceNumber);
   RtlInitUnicodeString(&DeviceName, DeviceBuffer);

   /* Create symbolic link "\??\DISPLAYx" */
   swprintf(SymlinkBuffer, L"\\??\\DISPLAY%lu", DeviceNumber + 1);
   RtlInitUnicodeString(&SymlinkName, SymlinkBuffer);
   IoCreateSymbolicLink(&SymlinkName, &DeviceName);

   /* Add entry to DEVICEMAP\VIDEO key in registry. */
   swprintf(DeviceVideoBuffer, L"\\Device\\Video%d", DeviceNumber);
   RtlWriteRegistryValue(
      RTL_REGISTRY_DEVICEMAP,
      L"VIDEO",
      DeviceVideoBuffer,
      REG_SZ,
      DeviceExtension->RegistryPath.Buffer,
      DeviceExtension->RegistryPath.MaximumLength);

   /* FIXME: Allocate hardware resources for device. */

   /*
    * Allocate interrupt for device.
    */

   if (!IntVideoPortSetupInterrupt(DeviceObject, DriverExtension, &ConfigInfo))
   {
      RtlFreeUnicodeString(&DeviceExtension->RegistryPath);
      IoDeleteDevice(DeviceObject);
      return STATUS_INSUFFICIENT_RESOURCES;
   }

   /*
    * Allocate timer for device.
    */

   if (!IntVideoPortSetupTimer(DeviceObject, DriverExtension))
   {
      if (DeviceExtension->InterruptObject != NULL)
         IoDisconnectInterrupt(DeviceExtension->InterruptObject);
      RtlFreeUnicodeString(&DeviceExtension->RegistryPath);
      IoDeleteDevice(DeviceObject);
      DPRINT("STATUS_INSUFFICIENT_RESOURCES\n");
      return STATUS_INSUFFICIENT_RESOURCES;
   }

   /*
    * Query children of the device.
    */
   VideoPortEnumerateChildren(&DeviceExtension->MiniPortDeviceExtension, NULL);

   DPRINT("STATUS_SUCCESS\n");
   return STATUS_SUCCESS;
}

VOID FASTCALL 
IntAttachToCSRSS(PEPROCESS *CallingProcess, PEPROCESS *PrevAttachedProcess) 
{ 
   *CallingProcess = PsGetCurrentProcess(); 
   if (*CallingProcess != Csrss) 
   { 
      if (PsGetCurrentThread()->ThreadsProcess != *CallingProcess)
      { 
         *PrevAttachedProcess = *CallingProcess; 
         KeDetachProcess(); 
      } 
      else 
      { 
         *PrevAttachedProcess = NULL; 
      } 
      KeAttachProcess(Csrss); 
   } 
} 
 
VOID FASTCALL 
IntDetachFromCSRSS(PEPROCESS *CallingProcess, PEPROCESS *PrevAttachedProcess) 
{ 
   if (*CallingProcess != Csrss) 
   { 
      KeDetachProcess(); 
      if (NULL != *PrevAttachedProcess) 
      { 
         KeAttachProcess(*PrevAttachedProcess); 
      } 
   } 
} 

/* PUBLIC FUNCTIONS ***********************************************************/

/*
 * @implemented
 */

ULONG STDCALL
VideoPortInitialize(
   IN PVOID Context1,
   IN PVOID Context2,
   IN PVIDEO_HW_INITIALIZATION_DATA HwInitializationData,
   IN PVOID HwContext)
{
   PDRIVER_OBJECT DriverObject = Context1;
   PUNICODE_STRING RegistryPath = Context2;
   NTSTATUS Status;
   PVIDEO_PORT_DRIVER_EXTENSION DriverExtension;
   BOOL LegacyDetection = FALSE;

   DPRINT("VideoPortInitialize\n");

   /*
    * NOTE:
    * The driver extension can be already allocated in case that we were
    * called by legacy driver and failed detecting device. Some miniport
    * drivers in that case adjust parameters and calls VideoPortInitialize
    * again.
    */

   DriverExtension = IoGetDriverObjectExtension(DriverObject, DriverObject);
   if (DriverExtension == NULL)
   {
      Status = IoAllocateDriverObjectExtension(
         DriverObject,
         DriverObject,
         sizeof(VIDEO_PORT_DRIVER_EXTENSION),
         (PVOID *)&DriverExtension);

      if (!NT_SUCCESS(Status))
      {
         return Status;
      }
   }

   /*
    * Copy the correct miniport initializtation data to the device extension.
    */

   RtlCopyMemory(
      &DriverExtension->InitializationData,
      HwInitializationData,
      min(sizeof(VIDEO_HW_INITIALIZATION_DATA),
          HwInitializationData->HwInitDataSize));
   if (sizeof(VIDEO_HW_INITIALIZATION_DATA) > HwInitializationData->HwInitDataSize)
   {
      RtlZeroMemory((PVOID)((ULONG_PTR)&DriverExtension->InitializationData +
                                       HwInitializationData->HwInitDataSize),
                    sizeof(VIDEO_HW_INITIALIZATION_DATA) -
                    HwInitializationData->HwInitDataSize);
   }
   DriverExtension->HwContext = HwContext;

   RtlCopyMemory(&DriverExtension->RegistryPath, RegistryPath, sizeof(UNICODE_STRING));

   switch (HwInitializationData->HwInitDataSize)
   {
      /*
       * NT4 drivers are special case, because we must use legacy method
       * of detection instead of the Plug & Play one.
       */

      case SIZE_OF_NT4_VIDEO_HW_INITIALIZATION_DATA:
         DPRINT("We were loaded by a Windows NT miniport driver.\n");
         LegacyDetection = TRUE;
         break;

      case SIZE_OF_W2K_VIDEO_HW_INITIALIZATION_DATA:
         DPRINT("We were loaded by a Windows 2000 miniport driver.\n");
         break;

      case sizeof(VIDEO_HW_INITIALIZATION_DATA):
         DPRINT("We were loaded by a Windows XP or later miniport driver.\n");
         break;

      default:
         DPRINT("Invalid HwInitializationData size.\n");
         return STATUS_UNSUCCESSFUL;
   }

   DriverObject->MajorFunction[IRP_MJ_CREATE] = IntVideoPortDispatchOpen;
   DriverObject->MajorFunction[IRP_MJ_CLOSE] = IntVideoPortDispatchClose;
   DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = IntVideoPortDispatchDeviceControl;
   DriverObject->DriverUnload = IntVideoPortUnload;

   /*
    * Plug & Play drivers registers the device in AddDevice routine. For
    * legacy drivers we must do it now.
    */

   if (LegacyDetection)
   {
      PDEVICE_OBJECT DeviceObject;
      Status = IntVideoPortCreateAdapterDeviceObject(DriverObject, DriverExtension,
                                                     NULL, &DeviceObject);
      DPRINT("IntVideoPortCreateAdapterDeviceObject returned 0x%x\n", Status);
      if (!NT_SUCCESS(Status))
         return Status;
      Status = IntVideoPortFindAdapter(DriverObject, DriverExtension, DeviceObject);
      DPRINT("IntVideoPortFindAdapter returned 0x%x\n", Status);
      return Status;
   }
   else
   {
      DriverObject->DriverExtension->AddDevice = IntVideoPortAddDevice;
      DriverObject->MajorFunction[IRP_MJ_PNP] = IntVideoPortDispatchPnp;
      DriverObject->MajorFunction[IRP_MJ_POWER] = IntVideoPortDispatchPower;

      return STATUS_SUCCESS;
   }
}

/*
 * @implemented
 */

VOID
VideoPortDebugPrint(
   IN VIDEO_DEBUG_LEVEL DebugPrintLevel,
   IN PCHAR DebugMessage, ...)
{
   char Buffer[256];
   va_list ap;

   va_start(ap, DebugMessage);
   vsprintf(Buffer, DebugMessage, ap);
   va_end(ap);

   DbgPrint(Buffer);
}

/*
 * @unimplemented
 */

VOID STDCALL
VideoPortLogError(
   IN PVOID HwDeviceExtension,
   IN PVIDEO_REQUEST_PACKET Vrp OPTIONAL,
   IN VP_STATUS ErrorCode,
   IN ULONG UniqueId)
{
   DPRINT1("VideoPortLogError ErrorCode %d (0x%x) UniqueId %lu (0x%lx)\n",
           ErrorCode, ErrorCode, UniqueId, UniqueId);
   if (NULL != Vrp)
   {
      DPRINT1("Vrp->IoControlCode %lu (0x%lx)\n", Vrp->IoControlCode, Vrp->IoControlCode);
   }
}

/*
 * @implemented
 */

UCHAR STDCALL
VideoPortGetCurrentIrql(VOID)
{
   return KeGetCurrentIrql();
}

typedef struct QueryRegistryCallbackContext
{
   PVOID HwDeviceExtension;
   PVOID HwContext;
   PMINIPORT_GET_REGISTRY_ROUTINE HwGetRegistryRoutine;
} QUERY_REGISTRY_CALLBACK_CONTEXT, *PQUERY_REGISTRY_CALLBACK_CONTEXT;

static NTSTATUS STDCALL
QueryRegistryCallback(
   IN PWSTR ValueName,
   IN ULONG ValueType,
   IN PVOID ValueData,
   IN ULONG ValueLength,
   IN PVOID Context,
   IN PVOID EntryContext)
{
   PQUERY_REGISTRY_CALLBACK_CONTEXT CallbackContext = (PQUERY_REGISTRY_CALLBACK_CONTEXT) Context;

   DPRINT("Found registry value for name %S: type %d, length %d\n",
          ValueName, ValueType, ValueLength);
   return (*(CallbackContext->HwGetRegistryRoutine))(
      CallbackContext->HwDeviceExtension,
      CallbackContext->HwContext,
      ValueName,
      ValueData,
      ValueLength);
}

/*
 * @unimplemented
 */

VP_STATUS STDCALL
VideoPortGetRegistryParameters(
   IN PVOID HwDeviceExtension,
   IN PWSTR ParameterName,
   IN UCHAR IsParameterFileName,
   IN PMINIPORT_GET_REGISTRY_ROUTINE GetRegistryRoutine,
   IN PVOID HwContext)
{
   RTL_QUERY_REGISTRY_TABLE QueryTable[2];
   QUERY_REGISTRY_CALLBACK_CONTEXT Context;
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;

   DPRINT("VideoPortGetRegistryParameters ParameterName %S\n", ParameterName);

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);

   if (IsParameterFileName)
   {
      UNIMPLEMENTED;
   }

   Context.HwDeviceExtension = HwDeviceExtension;
   Context.HwContext = HwContext;
   Context.HwGetRegistryRoutine = GetRegistryRoutine;

   QueryTable[0].QueryRoutine = QueryRegistryCallback;
   QueryTable[0].Flags = RTL_QUERY_REGISTRY_REQUIRED;
   QueryTable[0].Name = ParameterName;
   QueryTable[0].EntryContext = NULL;
   QueryTable[0].DefaultType = REG_NONE;
   QueryTable[0].DefaultData = NULL;
   QueryTable[0].DefaultLength = 0;

   QueryTable[1].QueryRoutine = NULL;
   QueryTable[1].Name = NULL;

   return NT_SUCCESS(RtlQueryRegistryValues(
      RTL_REGISTRY_ABSOLUTE,
      DeviceExtension->RegistryPath.Buffer,
      QueryTable,
      &Context,
      NULL)) ? ERROR_SUCCESS : ERROR_INVALID_PARAMETER;
}

/*
 * @implemented
 */

VP_STATUS STDCALL
VideoPortSetRegistryParameters(
   IN PVOID HwDeviceExtension,
   IN PWSTR ValueName,
   IN PVOID ValueData,
   IN ULONG ValueLength)
{
   DPRINT("VideoPortSetRegistryParameters\n");
   ASSERT_IRQL(PASSIVE_LEVEL);
   return RtlWriteRegistryValue(
      RTL_REGISTRY_ABSOLUTE,
      VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension)->RegistryPath.Buffer,
      ValueName,
      REG_BINARY,
      ValueData,
      ValueLength);
}

/*
 * @implemented
 */ 

VP_STATUS STDCALL
VideoPortGetVgaStatus(
   IN PVOID HwDeviceExtension,
   OUT PULONG VgaStatus)
{
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;

   DPRINT("VideoPortGetVgaStatus\n");

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   if (KeGetCurrentIrql() == PASSIVE_LEVEL)
   {
      if (DeviceExtension->AdapterInterfaceType == PCIBus)
      {
         /* VgaStatus: 0 == VGA not enabled, 1 == VGA enabled. */
         /* Assumed for now */
         *VgaStatus = 1;
         return NO_ERROR;
      }
   }

   return ERROR_INVALID_FUNCTION;    
}

/*
 * @implemented
 */

PVOID STDCALL
VideoPortGetRomImage(
   IN PVOID HwDeviceExtension,
   IN PVOID Unused1,
   IN ULONG Unused2,
   IN ULONG Length)
{
   static PVOID RomImageBuffer = NULL;
   PEPROCESS CallingProcess; 
   PEPROCESS PrevAttachedProcess; 

   DPRINT("VideoPortGetRomImage(HwDeviceExtension 0x%X Length 0x%X)\n",
          HwDeviceExtension, Length);

   /* If the length is zero then free the existing buffer. */
   if (Length == 0)
   {
      if (RomImageBuffer != NULL)
      {
         ExFreePool(RomImageBuffer);
         RomImageBuffer = NULL;
      }
      return NULL;
   }
   else
   {
      /*
       * The DDK says we shouldn't use the legacy C0000 method but get the  
       * rom base address from the corresponding pci or acpi register but  
       * lets ignore that and use C0000 anyway. We have already mapped the
       * bios area into memory so we'll copy from there.                   
       */

      /* Copy the bios. */
      Length = min(Length, 0x10000);
      if (RomImageBuffer != NULL)
      {
         ExFreePool(RomImageBuffer);
      }

      RomImageBuffer = ExAllocatePool(PagedPool, Length);
      if (RomImageBuffer == NULL)
      {
         return NULL;
      }

      IntAttachToCSRSS(&CallingProcess, &PrevAttachedProcess);
      RtlCopyMemory(RomImageBuffer, (PUCHAR)0xC0000, Length);
      IntDetachFromCSRSS(&CallingProcess, &PrevAttachedProcess);

      return RomImageBuffer;
   }
}

/*
 * @implemented
 */

BOOLEAN STDCALL
VideoPortScanRom(
   IN PVOID HwDeviceExtension, 
   IN PUCHAR RomBase,
   IN ULONG RomLength,
   IN PUCHAR String)
{
   ULONG StringLength;
   BOOLEAN Found;
   PUCHAR SearchLocation;

   DPRINT("VideoPortScanRom RomBase %p RomLength 0x%x String %s\n", RomBase, RomLength, String);

   StringLength = strlen((PCHAR)String);
   Found = FALSE;
   SearchLocation = RomBase;
   for (SearchLocation = RomBase;
        !Found && SearchLocation < RomBase + RomLength - StringLength;
        SearchLocation++)
   {
      Found = (RtlCompareMemory(SearchLocation, String, StringLength) == StringLength);
      if (Found)
      {
         DPRINT("Match found at %p\n", SearchLocation);
      }
   }

   return Found;
}

/*
 * @implemented
 */

BOOLEAN STDCALL
VideoPortSynchronizeExecution(
   IN PVOID HwDeviceExtension,
   IN VIDEO_SYNCHRONIZE_PRIORITY Priority,
   IN PMINIPORT_SYNCHRONIZE_ROUTINE SynchronizeRoutine,
   OUT PVOID Context)
{
   BOOLEAN Ret;
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   KIRQL OldIrql;

   switch (Priority)
   {
      case VpLowPriority:
         Ret = (*SynchronizeRoutine)(Context);
         break;
   
      case VpMediumPriority:
         DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
         if (DeviceExtension->InterruptObject == NULL)
            Ret = (*SynchronizeRoutine)(Context);
         else
            Ret = KeSynchronizeExecution(
               DeviceExtension->InterruptObject,
               SynchronizeRoutine,
               Context);
         break;

      case VpHighPriority:
         OldIrql = KeGetCurrentIrql();
         if (OldIrql < SYNCH_LEVEL)
            OldIrql = KfRaiseIrql(SYNCH_LEVEL);

         Ret = (*SynchronizeRoutine)(Context);

         if (OldIrql < SYNCH_LEVEL)
            KfLowerIrql(OldIrql);
         break;

      default:
         Ret = FALSE;
   }

   return Ret;
}

/*
 * @implemented
 */

VP_STATUS STDCALL
VideoPortEnumerateChildren(
   IN PVOID HwDeviceExtension,
   IN PVOID Reserved)
{
   12e70:	55                   	push   %ebp
   12e71:	89 e5                	mov    %esp,%ebp
   12e73:	57                   	push   %edi
   12e74:	56                   	push   %esi
   12e75:	53                   	push   %ebx
   12e76:	81 ec 3c 01 00 00    	sub    $0x13c,%esp
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   ULONG Status;
   VIDEO_CHILD_ENUM_INFO ChildEnumInfo;
   VIDEO_CHILD_TYPE ChildType;
   UCHAR ChildDescriptor[256];
   ULONG ChildId;
   ULONG Unused;
   INT i;

   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   12e7c:	8b 7d 08             	mov    0x8(%ebp),%edi
   12e7f:	81 ef b4 00 00 00    	sub    $0xb4,%edi
   if (DeviceExtension->DriverExtension->InitializationData.HwGetVideoChildDescriptor == NULL)
   12e85:	8b 47 60             	mov    0x60(%edi),%eax
   12e88:	8b 40 34             	mov    0x34(%eax),%eax
   12e8b:	85 c0                	test   %eax,%eax
   12e8d:	74 76                	je     12f05 <_VideoPortEnumerateChildren@8+0x95>
   {
      DPRINT("Miniport's HwGetVideoChildDescriptor is NULL!\n");
      return NO_ERROR;
   }

   /* Setup the ChildEnumInfo */
   ChildEnumInfo.Size = sizeof (ChildEnumInfo);
   12e8f:	c7 45 c8 14 00 00 00 	movl   $0x14,0xffffffc8(%ebp)
   ChildEnumInfo.ChildDescriptorSize = sizeof (ChildDescriptor);
   12e96:	c7 45 cc 00 01 00 00 	movl   $0x100,0xffffffcc(%ebp)
   ChildEnumInfo.ACPIHwId = 0;
   12e9d:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
   ChildEnumInfo.ChildHwDeviceExtension = NULL; /* FIXME: must be set to
   12ea4:	c7 45 d8 00 00 00 00 	movl   $0x0,0xffffffd8(%ebp)
                                                   ChildHwDeviceExtension... */

   /* Enumerate the children */
   for (i = 1; ; i++)
   12eab:	bb 01 00 00 00       	mov    $0x1,%ebx
   12eb0:	8d b5 c8 fe ff ff    	lea    0xfffffec8(%ebp),%esi
   {
      ChildEnumInfo.ChildIndex = i;
   12eb6:	89 5d d0             	mov    %ebx,0xffffffd0(%ebp)
      RtlZeroMemory(ChildDescriptor, sizeof(ChildDescriptor));
   12eb9:	50                   	push   %eax
   12eba:	68 00 01 00 00       	push   $0x100
   12ebf:	6a 00                	push   $0x0
   12ec1:	56                   	push   %esi
   12ec2:	e8 f9 19 00 00       	call   148c0 <_memset>
      Status = DeviceExtension->DriverExtension->InitializationData.HwGetVideoChildDescriptor(
   12ec7:	59                   	pop    %ecx
   12ec8:	8d 95 c4 fe ff ff    	lea    0xfffffec4(%ebp),%edx
   12ece:	58                   	pop    %eax
   12ecf:	8b 47 60             	mov    0x60(%edi),%eax
   12ed2:	52                   	push   %edx
   12ed3:	8d 95 c0 fe ff ff    	lea    0xfffffec0(%ebp),%edx
   12ed9:	52                   	push   %edx
   12eda:	8d 95 bc fe ff ff    	lea    0xfffffebc(%ebp),%edx
   12ee0:	56                   	push   %esi
   12ee1:	52                   	push   %edx
   12ee2:	8d 55 c8             	lea    0xffffffc8(%ebp),%edx
   12ee5:	52                   	push   %edx
   12ee6:	8b 55 08             	mov    0x8(%ebp),%edx
   12ee9:	52                   	push   %edx
   12eea:	ff 50 34             	call   *0x34(%eax)
                  HwDeviceExtension,
                  &ChildEnumInfo,
                  &ChildType,
                  ChildDescriptor,
                  &ChildId,
                  &Unused);
      if (Status == VIDEO_ENUM_INVALID_DEVICE)
   12eed:	5a                   	pop    %edx
   12eee:	83 f8 7b             	cmp    $0x7b,%eax
   12ef1:	59                   	pop    %ecx
   12ef2:	74 0e                	je     12f02 <_VideoPortEnumerateChildren@8+0x92>
      {
         DPRINT("Child device %d is invalid!\n", ChildEnumInfo.ChildIndex);
         continue;
      }
      else if (Status == VIDEO_ENUM_NO_MORE_DEVICES)
   12ef4:	3d e0 04 00 00       	cmp    $0x4e0,%eax
   12ef9:	74 0a                	je     12f05 <_VideoPortEnumerateChildren@8+0x95>
      {
         DPRINT("End of child enumeration! (%d children enumerated)\n", i - 1);
         break;
      }
      else if (Status != VIDEO_ENUM_MORE_DEVICES)
   12efb:	3d de 04 00 00       	cmp    $0x4de,%eax
   12f00:	75 03                	jne    12f05 <_VideoPortEnumerateChildren@8+0x95>
   12f02:	43                   	inc    %ebx
   12f03:	eb b1                	jmp    12eb6 <_VideoPortEnumerateChildren@8+0x46>
      {
         DPRINT("HwGetVideoChildDescriptor returned unknown status code 0x%x!\n", Status);
         break;
      }

#ifndef NDEBUG
      if (ChildType == Monitor)
      {
         INT j;
         PUCHAR p = ChildDescriptor;
         DPRINT("Monitor device enumerated! (ChildId = 0x%x)\n", ChildId);
         for (j = 0; j < sizeof (ChildDescriptor); j += 8)
         {
            DPRINT("%02x %02x %02x %02x %02x %02x %02x %02x\n",
                   p[j+0], p[j+1], p[j+2], p[j+3],
                   p[j+4], p[j+5], p[j+6], p[j+7]);
         }
      }
      else if (ChildType == Other)
      {
         DPRINT("\"Other\" device enumerated: DeviceId = %S\n", (PWSTR)ChildDescriptor);
      }
      else
      {
         DPRINT("HwGetVideoChildDescriptor returned unsupported type: %d\n", ChildType);
      }
#endif /* NDEBUG */

   }

   return NO_ERROR;
}
   12f05:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   12f08:	31 c0                	xor    %eax,%eax
   12f0a:	5b                   	pop    %ebx
   12f0b:	5e                   	pop    %esi
   12f0c:	5f                   	pop    %edi
   12f0d:	5d                   	pop    %ebp
   12f0e:	c2 08 00             	ret    $0x8
   12f11:	eb 0d                	jmp    12f20 <_IntVideoPortFindAdapter@12>
   12f13:	90                   	nop    
   12f14:	90                   	nop    
   12f15:	90                   	nop    
   12f16:	90                   	nop    
   12f17:	90                   	nop    
   12f18:	90                   	nop    
   12f19:	90                   	nop    
   12f1a:	90                   	nop    
   12f1b:	90                   	nop    
   12f1c:	90                   	nop    
   12f1d:	90                   	nop    
   12f1e:	90                   	nop    
   12f1f:	90                   	nop    

00012f20 <_IntVideoPortFindAdapter@12>:
   12f20:	55                   	push   %ebp
   12f21:	89 e5                	mov    %esp,%ebp
   12f23:	57                   	push   %edi
   12f24:	56                   	push   %esi
   12f25:	53                   	push   %ebx
   12f26:	81 ec 70 01 00 00    	sub    $0x170,%esp
   12f2c:	c6 85 b3 fe ff ff 00 	movb   $0x0,0xfffffeb3(%ebp)
   12f33:	8b 45 10             	mov    0x10(%ebp),%eax
   12f36:	8b 40 28             	mov    0x28(%eax),%eax
   12f39:	89 85 9c fe ff ff    	mov    %eax,0xfffffe9c(%ebp)
   12f3f:	8b 10                	mov    (%eax),%edx
   12f41:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
   12f47:	89 95 98 fe ff ff    	mov    %edx,0xfffffe98(%ebp)
   12f4d:	6a 70                	push   $0x70
   12f4f:	6a 00                	push   $0x0
   12f51:	50                   	push   %eax
   12f52:	e8 69 19 00 00       	call   148c0 <_memset>
   12f57:	8b 95 9c fe ff ff    	mov    0xfffffe9c(%ebp),%edx
   12f5d:	c7 85 48 ff ff ff 70 	movl   $0x70,0xffffff48(%ebp)
   12f64:	00 00 00 
   12f67:	83 c4 10             	add    $0x10,%esp
   12f6a:	8b 42 2c             	mov    0x2c(%edx),%eax
   12f6d:	8b 55 0c             	mov    0xc(%ebp),%edx
   12f70:	89 85 50 ff ff ff    	mov    %eax,0xffffff50(%ebp)
   12f76:	83 f8 05             	cmp    $0x5,%eax
   12f79:	0f 95 c0             	setne  %al
   12f7c:	25 ff 00 00 00       	and    $0xff,%eax
   12f81:	c7 45 a8 f0 2a 01 00 	movl   $0x12af0,0xffffffa8(%ebp)
   12f88:	89 85 5c ff ff ff    	mov    %eax,0xffffff5c(%ebp)
   12f8e:	8b 42 5c             	mov    0x5c(%edx),%eax
   12f91:	8b 95 9c fe ff ff    	mov    0xfffffe9c(%ebp),%edx
   12f97:	89 45 ac             	mov    %eax,0xffffffac(%ebp)
   12f9a:	8b 42 30             	mov    0x30(%edx),%eax
   12f9d:	89 85 4c ff ff ff    	mov    %eax,0xffffff4c(%ebp)
   12fa3:	8b 42 28             	mov    0x28(%edx),%eax
   12fa6:	89 85 54 ff ff ff    	mov    %eax,0xffffff54(%ebp)
   12fac:	8b 42 24             	mov    0x24(%edx),%eax
   12faf:	c7 85 b4 fe ff ff 2c 	movl   $0x2c,0xfffffeb4(%ebp)
   12fb6:	00 00 00 
   12fb9:	89 85 58 ff ff ff    	mov    %eax,0xffffff58(%ebp)
   12fbf:	8d 85 b4 fe ff ff    	lea    0xfffffeb4(%ebp),%eax
   12fc5:	50                   	push   %eax
   12fc6:	8d 85 18 ff ff ff    	lea    0xffffff18(%ebp),%eax
   12fcc:	6a 2c                	push   $0x2c
   12fce:	50                   	push   %eax
   12fcf:	6a 00                	push   $0x0
   12fd1:	e8 6a 1a 00 00       	call   14a40 <_ZwQuerySystemInformation@16>
   12fd6:	89 c6                	mov    %eax,%esi
   12fd8:	85 c0                	test   %eax,%eax
   12fda:	78 19                	js     12ff5 <_IntVideoPortFindAdapter@12+0xd5>
   12fdc:	8b 85 20 ff ff ff    	mov    0xffffff20(%ebp),%eax
   12fe2:	8b 8d 24 ff ff ff    	mov    0xffffff24(%ebp),%ecx
   12fe8:	0f af c1             	imul   %ecx,%eax
   12feb:	c7 45 b4 00 00 00 00 	movl   $0x0,0xffffffb4(%ebp)
   12ff2:	89 45 b0             	mov    %eax,0xffffffb0(%ebp)
   12ff5:	8b 85 9c fe ff ff    	mov    0xfffffe9c(%ebp),%eax
   12ffb:	8b 50 04             	mov    0x4(%eax),%edx
   12ffe:	85 d2                	test   %edx,%edx
   13000:	0f 85 f2 01 00 00    	jne    131f8 <_IntVideoPortFindAdapter@12+0x2d8>
   13006:	83 78 2c 05          	cmpl   $0x5,0x2c(%eax)
   1300a:	0f 94 c0             	sete   %al
   1300d:	31 db                	xor    %ebx,%ebx
   1300f:	c7 85 94 fe ff ff 00 	movl   $0x0,0xfffffe94(%ebp)
   13016:	00 00 00 
   13019:	88 c3                	mov    %al,%bl
   1301b:	4b                   	dec    %ebx
   1301c:	83 e3 f9             	and    $0xfffffff9,%ebx
   1301f:	83 c3 08             	add    $0x8,%ebx
   13022:	39 9d 94 fe ff ff    	cmp    %ebx,0xfffffe94(%ebp)
   13028:	0f 83 87 00 00 00    	jae    130b5 <_IntVideoPortFindAdapter@12+0x195>
   1302e:	8b 95 9c fe ff ff    	mov    0xfffffe9c(%ebp),%edx
   13034:	81 c2 b4 00 00 00    	add    $0xb4,%edx
   1303a:	89 95 90 fe ff ff    	mov    %edx,0xfffffe90(%ebp)
   13040:	8b 95 9c fe ff ff    	mov    0xfffffe9c(%ebp),%edx
   13046:	8b 85 94 fe ff ff    	mov    0xfffffe94(%ebp),%eax
   1304c:	89 85 4c ff ff ff    	mov    %eax,0xffffff4c(%ebp)
   13052:	8b bd 90 fe ff ff    	mov    0xfffffe90(%ebp),%edi
   13058:	89 42 30             	mov    %eax,0x30(%edx)
   1305b:	8b 45 0c             	mov    0xc(%ebp),%eax
   1305e:	fc                   	cld    
   1305f:	8b 70 18             	mov    0x18(%eax),%esi
   13062:	31 c0                	xor    %eax,%eax
   13064:	89 f1                	mov    %esi,%ecx
   13066:	c1 e9 02             	shr    $0x2,%ecx
   13069:	f3 ab                	repz stos %eax,%es:(%edi)
   1306b:	f7 c6 02 00 00 00    	test   $0x2,%esi
   13071:	74 08                	je     1307b <_IntVideoPortFindAdapter@12+0x15b>
   13073:	66 c7 07 00 00       	movw   $0x0,(%edi)
   13078:	83 c7 02             	add    $0x2,%edi
   1307b:	83 e6 01             	and    $0x1,%esi
   1307e:	74 03                	je     13083 <_IntVideoPortFindAdapter@12+0x163>
   13080:	c6 07 00             	movb   $0x0,(%edi)
   13083:	83 ec 0c             	sub    $0xc,%esp
   13086:	8d 95 b3 fe ff ff    	lea    0xfffffeb3(%ebp),%edx
   1308c:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
   13092:	52                   	push   %edx
   13093:	50                   	push   %eax
   13094:	6a 00                	push   $0x0
   13096:	8b 55 0c             	mov    0xc(%ebp),%edx
   13099:	8b 42 54             	mov    0x54(%edx),%eax
   1309c:	50                   	push   %eax
   1309d:	8b 85 90 fe ff ff    	mov    0xfffffe90(%ebp),%eax
   130a3:	50                   	push   %eax
   130a4:	ff 52 08             	call   *0x8(%edx)
   130a7:	83 c4 0c             	add    $0xc,%esp
   130aa:	89 c6                	mov    %eax,%esi
   130ac:	83 f8 37             	cmp    $0x37,%eax
   130af:	0f 84 fb 00 00 00    	je     131b0 <_IntVideoPortFindAdapter@12+0x290>
   130b5:	85 f6                	test   %esi,%esi
   130b7:	0f 85 13 01 00 00    	jne    131d0 <_IntVideoPortFindAdapter@12+0x2b0>
   130bd:	50                   	push   %eax
   130be:	8b bd 98 fe ff ff    	mov    0xfffffe98(%ebp),%edi
   130c4:	8d 9d e8 fe ff ff    	lea    0xfffffee8(%ebp),%ebx
   130ca:	57                   	push   %edi
   130cb:	68 d0 63 01 00       	push   $0x163d0
   130d0:	53                   	push   %ebx
   130d1:	e8 7a 1a 00 00       	call   14b50 <_swprintf>
   130d6:	59                   	pop    %ecx
   130d7:	5e                   	pop    %esi
   130d8:	8d b5 a8 fe ff ff    	lea    0xfffffea8(%ebp),%esi
   130de:	53                   	push   %ebx
   130df:	56                   	push   %esi
   130e0:	e8 cb 18 00 00       	call   149b0 <_RtlInitUnicodeString@8>
   130e5:	8b 85 98 fe ff ff    	mov    0xfffffe98(%ebp),%eax
   130eb:	8d 9d b8 fe ff ff    	lea    0xfffffeb8(%ebp),%ebx
   130f1:	40                   	inc    %eax
   130f2:	89 04 24             	mov    %eax,(%esp)
   130f5:	68 b2 63 01 00       	push   $0x163b2
   130fa:	53                   	push   %ebx
   130fb:	e8 50 1a 00 00       	call   14b50 <_swprintf>
   13100:	58                   	pop    %eax
   13101:	5a                   	pop    %edx
   13102:	53                   	push   %ebx
   13103:	8d 9d a0 fe ff ff    	lea    0xfffffea0(%ebp),%ebx
   13109:	53                   	push   %ebx
   1310a:	e8 a1 18 00 00       	call   149b0 <_RtlInitUnicodeString@8>
   1310f:	56                   	push   %esi
   13110:	53                   	push   %ebx
   13111:	ff 15 40 a2 01 00    	call   *0x1a240
   13117:	8d 5d b8             	lea    0xffffffb8(%ebp),%ebx
   1311a:	58                   	pop    %eax
   1311b:	8b 85 98 fe ff ff    	mov    0xfffffe98(%ebp),%eax
   13121:	50                   	push   %eax
   13122:	68 08 64 01 00       	push   $0x16408
   13127:	53                   	push   %ebx
   13128:	e8 23 1a 00 00       	call   14b50 <_swprintf>
   1312d:	8b 95 9c fe ff ff    	mov    0xfffffe9c(%ebp),%edx
   13133:	5f                   	pop    %edi
   13134:	58                   	pop    %eax
   13135:	66 8b 42 12          	mov    0x12(%edx),%ax
   13139:	25 ff ff 00 00       	and    $0xffff,%eax
   1313e:	50                   	push   %eax
   1313f:	8b 72 14             	mov    0x14(%edx),%esi
   13142:	56                   	push   %esi
   13143:	6a 01                	push   $0x1
   13145:	53                   	push   %ebx
   13146:	68 28 64 01 00       	push   $0x16428
   1314b:	6a 04                	push   $0x4
   1314d:	ff 15 cc a2 01 00    	call   *0x1a2cc
   13153:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
   13159:	89 04 24             	mov    %eax,(%esp)
   1315c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   1315f:	53                   	push   %ebx
   13160:	8b 4d 10             	mov    0x10(%ebp),%ecx
   13163:	51                   	push   %ecx
   13164:	e8 17 f8 ff ff       	call   12980 <_IntVideoPortSetupInterrupt@12>
   13169:	5a                   	pop    %edx
   1316a:	84 c0                	test   %al,%al
   1316c:	0f 84 d3 00 00 00    	je     13245 <_IntVideoPortFindAdapter@12+0x325>
   13172:	57                   	push   %edi
   13173:	57                   	push   %edi
   13174:	8b 75 0c             	mov    0xc(%ebp),%esi
   13177:	56                   	push   %esi
   13178:	8b 5d 10             	mov    0x10(%ebp),%ebx
   1317b:	53                   	push   %ebx
   1317c:	e8 cf 15 00 00       	call   14750 <_IntVideoPortSetupTimer@8>
   13181:	5a                   	pop    %edx
   13182:	84 c0                	test   %al,%al
   13184:	59                   	pop    %ecx
   13185:	0f 84 a0 00 00 00    	je     1322b <_IntVideoPortFindAdapter@12+0x30b>
   1318b:	50                   	push   %eax
   1318c:	50                   	push   %eax
   1318d:	6a 00                	push   $0x0
   1318f:	8b 85 9c fe ff ff    	mov    0xfffffe9c(%ebp),%eax
   13195:	05 b4 00 00 00       	add    $0xb4,%eax
   1319a:	50                   	push   %eax
   1319b:	e8 d0 fc ff ff       	call   12e70 <_VideoPortEnumerateChildren@8>
   131a0:	31 c0                	xor    %eax,%eax
   131a2:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   131a5:	5b                   	pop    %ebx
   131a6:	5e                   	pop    %esi
   131a7:	5f                   	pop    %edi
   131a8:	5d                   	pop    %ebp
   131a9:	c2 0c 00             	ret    $0xc
   131ac:	8d 74 26 00          	lea    0x0(%esi),%esi
   131b0:	8b 85 94 fe ff ff    	mov    0xfffffe94(%ebp),%eax
   131b6:	40                   	inc    %eax
   131b7:	89 85 94 fe ff ff    	mov    %eax,0xfffffe94(%ebp)
   131bd:	39 9d 94 fe ff ff    	cmp    %ebx,0xfffffe94(%ebp)
   131c3:	0f 82 77 fe ff ff    	jb     13040 <_IntVideoPortFindAdapter@12+0x120>
   131c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   131d0:	8b 85 9c fe ff ff    	mov    0xfffffe9c(%ebp),%eax
   131d6:	83 ec 0c             	sub    $0xc,%esp
   131d9:	83 c0 10             	add    $0x10,%eax
   131dc:	50                   	push   %eax
   131dd:	e8 5e 17 00 00       	call   14940 <_RtlFreeUnicodeString@4>
   131e2:	8b 45 10             	mov    0x10(%ebp),%eax
   131e5:	50                   	push   %eax
   131e6:	ff 15 44 a2 01 00    	call   *0x1a244
   131ec:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   131ef:	89 f0                	mov    %esi,%eax
   131f1:	5b                   	pop    %ebx
   131f2:	5e                   	pop    %esi
   131f3:	5f                   	pop    %edi
   131f4:	5d                   	pop    %ebp
   131f5:	c2 0c 00             	ret    $0xc
   131f8:	83 ec 0c             	sub    $0xc,%esp
   131fb:	8d 85 b3 fe ff ff    	lea    0xfffffeb3(%ebp),%eax
   13201:	50                   	push   %eax
   13202:	8d 85 48 ff ff ff    	lea    0xffffff48(%ebp),%eax
   13208:	50                   	push   %eax
   13209:	6a 00                	push   $0x0
   1320b:	8b 55 0c             	mov    0xc(%ebp),%edx
   1320e:	8b 42 54             	mov    0x54(%edx),%eax
   13211:	50                   	push   %eax
   13212:	8b 85 9c fe ff ff    	mov    0xfffffe9c(%ebp),%eax
   13218:	05 b4 00 00 00       	add    $0xb4,%eax
   1321d:	50                   	push   %eax
   1321e:	ff 52 08             	call   *0x8(%edx)
   13221:	89 c6                	mov    %eax,%esi
   13223:	83 c4 0c             	add    $0xc,%esp
   13226:	e9 8a fe ff ff       	jmp    130b5 <_IntVideoPortFindAdapter@12+0x195>
   1322b:	8b 95 9c fe ff ff    	mov    0xfffffe9c(%ebp),%edx
   13231:	8b 42 18             	mov    0x18(%edx),%eax
   13234:	85 c0                	test   %eax,%eax
   13236:	74 0d                	je     13245 <_IntVideoPortFindAdapter@12+0x325>
   13238:	83 ec 0c             	sub    $0xc,%esp
   1323b:	50                   	push   %eax
   1323c:	ff 15 48 a2 01 00    	call   *0x1a248
   13242:	83 c4 0c             	add    $0xc,%esp
   13245:	8b 85 9c fe ff ff    	mov    0xfffffe9c(%ebp),%eax
   1324b:	83 ec 0c             	sub    $0xc,%esp
   1324e:	83 c0 10             	add    $0x10,%eax
   13251:	50                   	push   %eax
   13252:	e8 e9 16 00 00       	call   14940 <_RtlFreeUnicodeString@4>
   13257:	8b 45 10             	mov    0x10(%ebp),%eax
   1325a:	50                   	push   %eax
   1325b:	ff 15 44 a2 01 00    	call   *0x1a244
   13261:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
   13266:	e9 37 ff ff ff       	jmp    131a2 <_IntVideoPortFindAdapter@12+0x282>
   1326b:	90                   	nop    
   1326c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013270 <@IntAttachToCSRSS@8>:
   13270:	55                   	push   %ebp
   13271:	89 e5                	mov    %esp,%ebp
   13273:	56                   	push   %esi
   13274:	89 d6                	mov    %edx,%esi
   13276:	53                   	push   %ebx
   13277:	89 cb                	mov    %ecx,%ebx
   13279:	ff 15 50 a2 01 00    	call   *0x1a250
   1327f:	89 03                	mov    %eax,(%ebx)
   13281:	3b 05 10 70 01 00    	cmp    0x17010,%eax
   13287:	74 29                	je     132b2 <@IntAttachToCSRSS@8+0x42>
   13289:	ff 15 7c a2 01 00    	call   *0x1a27c
   1328f:	8b 13                	mov    (%ebx),%edx
   13291:	39 90 38 02 00 00    	cmp    %edx,0x238(%eax)
   13297:	74 27                	je     132c0 <@IntAttachToCSRSS@8+0x50>
   13299:	89 16                	mov    %edx,(%esi)
   1329b:	e8 00 18 00 00       	call   14aa0 <_KeDetachProcess@0>
   132a0:	83 ec 0c             	sub    $0xc,%esp
   132a3:	8b 1d 10 70 01 00    	mov    0x17010,%ebx
   132a9:	53                   	push   %ebx
   132aa:	e8 01 18 00 00       	call   14ab0 <_KeAttachProcess@4>
   132af:	83 c4 0c             	add    $0xc,%esp
   132b2:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   132b5:	5b                   	pop    %ebx
   132b6:	5e                   	pop    %esi
   132b7:	5d                   	pop    %ebp
   132b8:	c3                   	ret    
   132b9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   132c0:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   132c6:	eb d8                	jmp    132a0 <@IntAttachToCSRSS@8+0x30>
   132c8:	90                   	nop    
   132c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000132d0 <@IntDetachFromCSRSS@8>:
   132d0:	55                   	push   %ebp
   132d1:	89 e5                	mov    %esp,%ebp
   132d3:	53                   	push   %ebx
   132d4:	50                   	push   %eax
   132d5:	89 d3                	mov    %edx,%ebx
   132d7:	a1 10 70 01 00       	mov    0x17010,%eax
   132dc:	39 01                	cmp    %eax,(%ecx)
   132de:	74 0b                	je     132eb <@IntDetachFromCSRSS@8+0x1b>
   132e0:	e8 bb 17 00 00       	call   14aa0 <_KeDetachProcess@0>
   132e5:	8b 03                	mov    (%ebx),%eax
   132e7:	85 c0                	test   %eax,%eax
   132e9:	75 05                	jne    132f0 <@IntDetachFromCSRSS@8+0x20>
   132eb:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   132ee:	c9                   	leave  
   132ef:	c3                   	ret    
   132f0:	83 ec 0c             	sub    $0xc,%esp
   132f3:	50                   	push   %eax
   132f4:	e8 b7 17 00 00       	call   14ab0 <_KeAttachProcess@4>
   132f9:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   132fc:	83 c4 0c             	add    $0xc,%esp
   132ff:	c9                   	leave  
   13300:	c3                   	ret    
   13301:	eb 0d                	jmp    13310 <_VideoPortInitialize@16>
   13303:	90                   	nop    
   13304:	90                   	nop    
   13305:	90                   	nop    
   13306:	90                   	nop    
   13307:	90                   	nop    
   13308:	90                   	nop    
   13309:	90                   	nop    
   1330a:	90                   	nop    
   1330b:	90                   	nop    
   1330c:	90                   	nop    
   1330d:	90                   	nop    
   1330e:	90                   	nop    
   1330f:	90                   	nop    

00013310 <_VideoPortInitialize@16>:
   13310:	55                   	push   %ebp
   13311:	89 e5                	mov    %esp,%ebp
   13313:	57                   	push   %edi
   13314:	56                   	push   %esi
   13315:	53                   	push   %ebx
   13316:	83 ec 14             	sub    $0x14,%esp
   13319:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   13320:	8b 7d 08             	mov    0x8(%ebp),%edi
   13323:	8b 5d 10             	mov    0x10(%ebp),%ebx
   13326:	57                   	push   %edi
   13327:	8b 75 08             	mov    0x8(%ebp),%esi
   1332a:	56                   	push   %esi
   1332b:	ff 15 58 a2 01 00    	call   *0x1a258
   13331:	85 c0                	test   %eax,%eax
   13333:	89 45 f0             	mov    %eax,0xfffffff0(%ebp)
   13336:	5a                   	pop    %edx
   13337:	59                   	pop    %ecx
   13338:	0f 84 e2 00 00 00    	je     13420 <_VideoPortInitialize@16+0x110>
   1333e:	8b 13                	mov    (%ebx),%edx
   13340:	83 fa 54             	cmp    $0x54,%edx
   13343:	77 6b                	ja     133b0 <_VideoPortInitialize@16+0xa0>
   13345:	fc                   	cld    
   13346:	89 d1                	mov    %edx,%ecx
   13348:	89 c7                	mov    %eax,%edi
   1334a:	c1 e9 02             	shr    $0x2,%ecx
   1334d:	89 de                	mov    %ebx,%esi
   1334f:	f3 a5                	repz movsl %ds:(%esi),%es:(%edi)
   13351:	f6 c2 02             	test   $0x2,%dl
   13354:	74 0c                	je     13362 <_VideoPortInitialize@16+0x52>
   13356:	66 8b 06             	mov    (%esi),%ax
   13359:	83 c6 02             	add    $0x2,%esi
   1335c:	66 89 07             	mov    %ax,(%edi)
   1335f:	83 c7 02             	add    $0x2,%edi
   13362:	83 e2 01             	and    $0x1,%edx
   13365:	74 04                	je     1336b <_VideoPortInitialize@16+0x5b>
   13367:	8a 06                	mov    (%esi),%al
   13369:	88 07                	mov    %al,(%edi)
   1336b:	8b 13                	mov    (%ebx),%edx
   1336d:	83 fa 53             	cmp    $0x53,%edx
   13370:	0f 86 ce 00 00 00    	jbe    13444 <_VideoPortInitialize@16+0x134>
   13376:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   13379:	8b 45 14             	mov    0x14(%ebp),%eax
   1337c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   1337f:	89 42 54             	mov    %eax,0x54(%edx)
   13382:	8b 01                	mov    (%ecx),%eax
   13384:	89 42 58             	mov    %eax,0x58(%edx)
   13387:	8b 41 04             	mov    0x4(%ecx),%eax
   1338a:	89 42 5c             	mov    %eax,0x5c(%edx)
   1338d:	8b 03                	mov    (%ebx),%eax
   1338f:	83 f8 50             	cmp    $0x50,%eax
   13392:	74 2c                	je     133c0 <_VideoPortInitialize@16+0xb0>
   13394:	77 7d                	ja     13413 <_VideoPortInitialize@16+0x103>
   13396:	83 f8 28             	cmp    $0x28,%eax
   13399:	74 1c                	je     133b7 <_VideoPortInitialize@16+0xa7>
   1339b:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
   133a0:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   133a3:	5b                   	pop    %ebx
   133a4:	5e                   	pop    %esi
   133a5:	5f                   	pop    %edi
   133a6:	5d                   	pop    %ebp
   133a7:	c2 10 00             	ret    $0x10
   133aa:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   133b0:	ba 54 00 00 00       	mov    $0x54,%edx
   133b5:	eb 8e                	jmp    13345 <_VideoPortInitialize@16+0x35>
   133b7:	c7 45 e8 01 00 00 00 	movl   $0x1,0xffffffe8(%ebp)
   133be:	89 f6                	mov    %esi,%esi
   133c0:	8b 45 08             	mov    0x8(%ebp),%eax
   133c3:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   133c6:	85 c9                	test   %ecx,%ecx
   133c8:	c7 40 38 30 1f 01 00 	movl   $0x11f30,0x38(%eax)
   133cf:	c7 40 40 00 20 01 00 	movl   $0x12000,0x40(%eax)
   133d6:	c7 40 70 50 20 01 00 	movl   $0x12050,0x70(%eax)
   133dd:	c7 40 34 80 24 01 00 	movl   $0x12480,0x34(%eax)
   133e4:	75 7c                	jne    13462 <_VideoPortInitialize@16+0x152>
   133e6:	8b 55 08             	mov    0x8(%ebp),%edx
   133e9:	8b 42 18             	mov    0x18(%edx),%eax
   133ec:	c7 82 a4 00 00 00 80 	movl   $0x12380,0xa4(%edx)
   133f3:	23 01 00 
   133f6:	c7 82 90 00 00 00 70 	movl   $0x12470,0x90(%edx)
   133fd:	24 01 00 
   13400:	c7 40 04 00 1f 01 00 	movl   $0x11f00,0x4(%eax)
   13407:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1340a:	31 c0                	xor    %eax,%eax
   1340c:	5b                   	pop    %ebx
   1340d:	5e                   	pop    %esi
   1340e:	5f                   	pop    %edi
   1340f:	5d                   	pop    %ebp
   13410:	c2 10 00             	ret    $0x10
   13413:	83 f8 54             	cmp    $0x54,%eax
   13416:	75 83                	jne    1339b <_VideoPortInitialize@16+0x8b>
   13418:	eb a6                	jmp    133c0 <_VideoPortInitialize@16+0xb0>
   1341a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13420:	8d 45 f0             	lea    0xfffffff0(%ebp),%eax
   13423:	50                   	push   %eax
   13424:	6a 60                	push   $0x60
   13426:	8b 45 08             	mov    0x8(%ebp),%eax
   13429:	50                   	push   %eax
   1342a:	8b 45 08             	mov    0x8(%ebp),%eax
   1342d:	50                   	push   %eax
   1342e:	ff 15 2c a2 01 00    	call   *0x1a22c
   13434:	85 c0                	test   %eax,%eax
   13436:	0f 88 64 ff ff ff    	js     133a0 <_VideoPortInitialize@16+0x90>
   1343c:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   1343f:	e9 fa fe ff ff       	jmp    1333e <_VideoPortInitialize@16+0x2e>
   13444:	8b 7d f0             	mov    0xfffffff0(%ebp),%edi
   13447:	b8 54 00 00 00       	mov    $0x54,%eax
   1344c:	29 d0                	sub    %edx,%eax
   1344e:	01 fa                	add    %edi,%edx
   13450:	56                   	push   %esi
   13451:	50                   	push   %eax
   13452:	6a 00                	push   $0x0
   13454:	52                   	push   %edx
   13455:	e8 66 14 00 00       	call   148c0 <_memset>
   1345a:	83 c4 10             	add    $0x10,%esp
   1345d:	e9 14 ff ff ff       	jmp    13376 <_VideoPortInitialize@16+0x66>
   13462:	8d 45 ec             	lea    0xffffffec(%ebp),%eax
   13465:	50                   	push   %eax
   13466:	6a 00                	push   $0x0
   13468:	8b 55 f0             	mov    0xfffffff0(%ebp),%edx
   1346b:	52                   	push   %edx
   1346c:	8b 45 08             	mov    0x8(%ebp),%eax
   1346f:	50                   	push   %eax
   13470:	e8 2b f8 ff ff       	call   12ca0 <_IntVideoPortCreateAdapterDeviceObject@16>
   13475:	85 c0                	test   %eax,%eax
   13477:	0f 88 23 ff ff ff    	js     133a0 <_VideoPortInitialize@16+0x90>
   1347d:	50                   	push   %eax
   1347e:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   13481:	50                   	push   %eax
   13482:	8b 45 f0             	mov    0xfffffff0(%ebp),%eax
   13485:	50                   	push   %eax
   13486:	8b 45 08             	mov    0x8(%ebp),%eax
   13489:	50                   	push   %eax
   1348a:	e8 91 fa ff ff       	call   12f20 <_IntVideoPortFindAdapter@12>
   1348f:	e9 0c ff ff ff       	jmp    133a0 <_VideoPortInitialize@16+0x90>
   13494:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1349a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000134a0 <_VideoPortDebugPrint>:
   134a0:	55                   	push   %ebp
   134a1:	89 e5                	mov    %esp,%ebp
   134a3:	53                   	push   %ebx
   134a4:	81 ec 08 01 00 00    	sub    $0x108,%esp
   134aa:	8d 45 10             	lea    0x10(%ebp),%eax
   134ad:	8d 9d f8 fe ff ff    	lea    0xfffffef8(%ebp),%ebx
   134b3:	50                   	push   %eax
   134b4:	8b 45 0c             	mov    0xc(%ebp),%eax
   134b7:	50                   	push   %eax
   134b8:	53                   	push   %ebx
   134b9:	e8 82 16 00 00       	call   14b40 <_vsprintf>
   134be:	89 1c 24             	mov    %ebx,(%esp)
   134c1:	ff 15 1c a2 01 00    	call   *0x1a21c
   134c7:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   134ca:	c9                   	leave  
   134cb:	c3                   	ret    
   134cc:	8d 74 26 00          	lea    0x0(%esi),%esi

000134d0 <_VideoPortLogError@16>:
   134d0:	55                   	push   %ebp
   134d1:	89 e5                	mov    %esp,%ebp
   134d3:	57                   	push   %edi
   134d4:	56                   	push   %esi
   134d5:	53                   	push   %ebx
   134d6:	83 ec 10             	sub    $0x10,%esp
   134d9:	8b 75 10             	mov    0x10(%ebp),%esi
   134dc:	8b 5d 14             	mov    0x14(%ebp),%ebx
   134df:	68 a4 02 00 00       	push   $0x2a4
   134e4:	68 34 64 01 00       	push   $0x16434
   134e9:	68 3f 64 01 00       	push   $0x1643f
   134ee:	8b 7d 0c             	mov    0xc(%ebp),%edi
   134f1:	ff 15 1c a2 01 00    	call   *0x1a21c
   134f7:	89 1c 24             	mov    %ebx,(%esp)
   134fa:	53                   	push   %ebx
   134fb:	56                   	push   %esi
   134fc:	56                   	push   %esi
   134fd:	68 48 64 01 00       	push   $0x16448
   13502:	ff 15 1c a2 01 00    	call   *0x1a21c
   13508:	83 c4 20             	add    $0x20,%esp
   1350b:	85 ff                	test   %edi,%edi
   1350d:	74 2d                	je     1353c <_VideoPortLogError@16+0x6c>
   1350f:	50                   	push   %eax
   13510:	68 a8 02 00 00       	push   $0x2a8
   13515:	68 34 64 01 00       	push   $0x16434
   1351a:	68 3f 64 01 00       	push   $0x1643f
   1351f:	ff 15 1c a2 01 00    	call   *0x1a21c
   13525:	83 c4 0c             	add    $0xc,%esp
   13528:	8b 07                	mov    (%edi),%eax
   1352a:	50                   	push   %eax
   1352b:	8b 07                	mov    (%edi),%eax
   1352d:	50                   	push   %eax
   1352e:	68 84 64 01 00       	push   $0x16484
   13533:	ff 15 1c a2 01 00    	call   *0x1a21c
   13539:	83 c4 10             	add    $0x10,%esp
   1353c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1353f:	5b                   	pop    %ebx
   13540:	5e                   	pop    %esi
   13541:	5f                   	pop    %edi
   13542:	5d                   	pop    %ebp
   13543:	c2 10 00             	ret    $0x10
   13546:	8d 76 00             	lea    0x0(%esi),%esi
   13549:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013550 <_VideoPortGetCurrentIrql@0>:
   13550:	55                   	push   %ebp
   13551:	89 e5                	mov    %esp,%ebp
   13553:	50                   	push   %eax
   13554:	50                   	push   %eax
   13555:	ff 15 ec a1 01 00    	call   *0x1a1ec
   1355b:	25 ff 00 00 00       	and    $0xff,%eax
   13560:	c9                   	leave  
   13561:	c3                   	ret    
   13562:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13569:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013570 <_QueryRegistryCallback@24>:
   13570:	55                   	push   %ebp
   13571:	89 e5                	mov    %esp,%ebp
   13573:	83 ec 14             	sub    $0x14,%esp
   13576:	8b 55 14             	mov    0x14(%ebp),%edx
   13579:	8b 45 18             	mov    0x18(%ebp),%eax
   1357c:	52                   	push   %edx
   1357d:	8b 4d 10             	mov    0x10(%ebp),%ecx
   13580:	8b 55 08             	mov    0x8(%ebp),%edx
   13583:	51                   	push   %ecx
   13584:	52                   	push   %edx
   13585:	8b 48 04             	mov    0x4(%eax),%ecx
   13588:	51                   	push   %ecx
   13589:	8b 10                	mov    (%eax),%edx
   1358b:	52                   	push   %edx
   1358c:	ff 50 08             	call   *0x8(%eax)
   1358f:	c9                   	leave  
   13590:	c2 18 00             	ret    $0x18
   13593:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13599:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000135a0 <_VideoPortGetRegistryParameters@20>:
   135a0:	55                   	push   %ebp
   135a1:	89 e5                	mov    %esp,%ebp
   135a3:	56                   	push   %esi
   135a4:	53                   	push   %ebx
   135a5:	83 ec 50             	sub    $0x50,%esp
   135a8:	8b 5d 08             	mov    0x8(%ebp),%ebx
   135ab:	80 7d 10 00          	cmpb   $0x0,0x10(%ebp)
   135af:	8d b3 4c ff ff ff    	lea    0xffffff4c(%ebx),%esi
   135b5:	75 79                	jne    13630 <_VideoPortGetRegistryParameters@20+0x90>
   135b7:	8b 45 18             	mov    0x18(%ebp),%eax
   135ba:	83 ec 0c             	sub    $0xc,%esp
   135bd:	89 45 ac             	mov    %eax,0xffffffac(%ebp)
   135c0:	8b 45 14             	mov    0x14(%ebp),%eax
   135c3:	89 45 b0             	mov    %eax,0xffffffb0(%ebp)
   135c6:	8b 45 0c             	mov    0xc(%ebp),%eax
   135c9:	89 45 c0             	mov    %eax,0xffffffc0(%ebp)
   135cc:	8d 45 a8             	lea    0xffffffa8(%ebp),%eax
   135cf:	6a 00                	push   $0x0
   135d1:	50                   	push   %eax
   135d2:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   135d5:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   135dc:	50                   	push   %eax
   135dd:	89 5d a8             	mov    %ebx,0xffffffa8(%ebp)
   135e0:	8b 4e 14             	mov    0x14(%esi),%ecx
   135e3:	c7 45 b8 70 35 01 00 	movl   $0x13570,0xffffffb8(%ebp)
   135ea:	c7 45 bc 04 00 00 00 	movl   $0x4,0xffffffbc(%ebp)
   135f1:	c7 45 c4 00 00 00 00 	movl   $0x0,0xffffffc4(%ebp)
   135f8:	c7 45 c8 00 00 00 00 	movl   $0x0,0xffffffc8(%ebp)
   135ff:	c7 45 cc 00 00 00 00 	movl   $0x0,0xffffffcc(%ebp)
   13606:	c7 45 d0 00 00 00 00 	movl   $0x0,0xffffffd0(%ebp)
   1360d:	c7 45 d4 00 00 00 00 	movl   $0x0,0xffffffd4(%ebp)
   13614:	51                   	push   %ecx
   13615:	6a 00                	push   $0x0
   13617:	ff 15 c8 a2 01 00    	call   *0x1a2c8
   1361d:	c1 f8 1f             	sar    $0x1f,%eax
   13620:	83 c4 0c             	add    $0xc,%esp
   13623:	83 e0 57             	and    $0x57,%eax
   13626:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   13629:	5b                   	pop    %ebx
   1362a:	5e                   	pop    %esi
   1362b:	5d                   	pop    %ebp
   1362c:	c2 14 00             	ret    $0x14
   1362f:	90                   	nop    
   13630:	68 e8 02 00 00       	push   $0x2e8
   13635:	68 34 64 01 00       	push   $0x16434
   1363a:	68 a4 64 01 00       	push   $0x164a4
   1363f:	68 c4 64 01 00       	push   $0x164c4
   13644:	ff 15 1c a2 01 00    	call   *0x1a21c
   1364a:	83 c4 10             	add    $0x10,%esp
   1364d:	e9 65 ff ff ff       	jmp    135b7 <_VideoPortGetRegistryParameters@20+0x17>
   13652:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13659:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013660 <_VideoPortSetRegistryParameters@16>:
   13660:	55                   	push   %ebp
   13661:	89 e5                	mov    %esp,%ebp
   13663:	50                   	push   %eax
   13664:	50                   	push   %eax
   13665:	ff 15 ec a1 01 00    	call   *0x1a1ec
   1366b:	84 c0                	test   %al,%al
   1366d:	75 26                	jne    13695 <_VideoPortSetRegistryParameters@16+0x35>
   1366f:	50                   	push   %eax
   13670:	50                   	push   %eax
   13671:	8b 45 14             	mov    0x14(%ebp),%eax
   13674:	50                   	push   %eax
   13675:	8b 45 10             	mov    0x10(%ebp),%eax
   13678:	50                   	push   %eax
   13679:	6a 03                	push   $0x3
   1367b:	8b 45 0c             	mov    0xc(%ebp),%eax
   1367e:	50                   	push   %eax
   1367f:	8b 45 08             	mov    0x8(%ebp),%eax
   13682:	8b 80 60 ff ff ff    	mov    0xffffff60(%eax),%eax
   13688:	50                   	push   %eax
   13689:	6a 00                	push   $0x0
   1368b:	ff 15 cc a2 01 00    	call   *0x1a2cc
   13691:	c9                   	leave  
   13692:	c2 10 00             	ret    $0x10
   13695:	68 ed 64 01 00       	push   $0x164ed
   1369a:	68 0e 03 00 00       	push   $0x30e
   1369f:	68 34 64 01 00       	push   $0x16434
   136a4:	68 ee 64 01 00       	push   $0x164ee
   136a9:	e8 02 12 00 00       	call   148b0 <_RtlAssert@16>
   136ae:	50                   	push   %eax
   136af:	50                   	push   %eax
   136b0:	8b 45 14             	mov    0x14(%ebp),%eax
   136b3:	50                   	push   %eax
   136b4:	8b 45 10             	mov    0x10(%ebp),%eax
   136b7:	50                   	push   %eax
   136b8:	6a 03                	push   $0x3
   136ba:	8b 45 0c             	mov    0xc(%ebp),%eax
   136bd:	50                   	push   %eax
   136be:	8b 45 08             	mov    0x8(%ebp),%eax
   136c1:	8b 80 60 ff ff ff    	mov    0xffffff60(%eax),%eax
   136c7:	50                   	push   %eax
   136c8:	6a 00                	push   $0x0
   136ca:	ff 15 cc a2 01 00    	call   *0x1a2cc
   136d0:	c9                   	leave  
   136d1:	c2 10 00             	ret    $0x10
   136d4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   136da:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000136e0 <_VideoPortGetVgaStatus@8>:
   136e0:	55                   	push   %ebp
   136e1:	89 e5                	mov    %esp,%ebp
   136e3:	53                   	push   %ebx
   136e4:	51                   	push   %ecx
   136e5:	8b 5d 08             	mov    0x8(%ebp),%ebx
   136e8:	ff 15 ec a1 01 00    	call   *0x1a1ec
   136ee:	81 eb b4 00 00 00    	sub    $0xb4,%ebx
   136f4:	84 c0                	test   %al,%al
   136f6:	75 06                	jne    136fe <_VideoPortGetVgaStatus@8+0x1e>
   136f8:	83 7b 2c 05          	cmpl   $0x5,0x2c(%ebx)
   136fc:	74 12                	je     13710 <_VideoPortGetVgaStatus@8+0x30>
   136fe:	b8 01 00 00 00       	mov    $0x1,%eax
   13703:	5a                   	pop    %edx
   13704:	5b                   	pop    %ebx
   13705:	5d                   	pop    %ebp
   13706:	c2 08 00             	ret    $0x8
   13709:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13710:	8b 45 0c             	mov    0xc(%ebp),%eax
   13713:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
   13719:	31 c0                	xor    %eax,%eax
   1371b:	5a                   	pop    %edx
   1371c:	5b                   	pop    %ebx
   1371d:	5d                   	pop    %ebp
   1371e:	c2 08 00             	ret    $0x8
   13721:	eb 0d                	jmp    13730 <_VideoPortGetRomImage@16>
   13723:	90                   	nop    
   13724:	90                   	nop    
   13725:	90                   	nop    
   13726:	90                   	nop    
   13727:	90                   	nop    
   13728:	90                   	nop    
   13729:	90                   	nop    
   1372a:	90                   	nop    
   1372b:	90                   	nop    
   1372c:	90                   	nop    
   1372d:	90                   	nop    
   1372e:	90                   	nop    
   1372f:	90                   	nop    

00013730 <_VideoPortGetRomImage@16>:
   13730:	55                   	push   %ebp
   13731:	89 e5                	mov    %esp,%ebp
   13733:	53                   	push   %ebx
   13734:	83 ec 14             	sub    $0x14,%esp
   13737:	8b 5d 14             	mov    0x14(%ebp),%ebx
   1373a:	85 db                	test   %ebx,%ebx
   1373c:	74 7f                	je     137bd <_VideoPortGetRomImage@16+0x8d>
   1373e:	81 fb 00 00 01 00    	cmp    $0x10000,%ebx
   13744:	77 5a                	ja     137a0 <_VideoPortGetRomImage@16+0x70>
   13746:	a1 18 70 01 00       	mov    0x17018,%eax
   1374b:	85 c0                	test   %eax,%eax
   1374d:	75 5f                	jne    137ae <_VideoPortGetRomImage@16+0x7e>
   1374f:	50                   	push   %eax
   13750:	50                   	push   %eax
   13751:	53                   	push   %ebx
   13752:	6a 01                	push   $0x1
   13754:	ff 15 20 a2 01 00    	call   *0x1a220
   1375a:	a3 18 70 01 00       	mov    %eax,0x17018
   1375f:	5a                   	pop    %edx
   13760:	31 d2                	xor    %edx,%edx
   13762:	59                   	pop    %ecx
   13763:	85 c0                	test   %eax,%eax
   13765:	74 2f                	je     13796 <_VideoPortGetRomImage@16+0x66>
   13767:	8d 55 f8             	lea    0xfffffff8(%ebp),%edx
   1376a:	8d 4d f4             	lea    0xfffffff4(%ebp),%ecx
   1376d:	e8 fe fa ff ff       	call   13270 <@IntAttachToCSRSS@8>
   13772:	50                   	push   %eax
   13773:	53                   	push   %ebx
   13774:	68 00 00 0c 00       	push   $0xc0000
   13779:	8b 1d 18 70 01 00    	mov    0x17018,%ebx
   1377f:	53                   	push   %ebx
   13780:	e8 cb 11 00 00       	call   14950 <_memcpy>
   13785:	8d 55 f8             	lea    0xfffffff8(%ebp),%edx
   13788:	8d 4d f4             	lea    0xfffffff4(%ebp),%ecx
   1378b:	e8 40 fb ff ff       	call   132d0 <@IntDetachFromCSRSS@8>
   13790:	8b 15 18 70 01 00    	mov    0x17018,%edx
   13796:	89 d0                	mov    %edx,%eax
   13798:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1379b:	c9                   	leave  
   1379c:	c2 10 00             	ret    $0x10
   1379f:	90                   	nop    
   137a0:	a1 18 70 01 00       	mov    0x17018,%eax
   137a5:	bb 00 00 01 00       	mov    $0x10000,%ebx
   137aa:	85 c0                	test   %eax,%eax
   137ac:	74 a1                	je     1374f <_VideoPortGetRomImage@16+0x1f>
   137ae:	83 ec 0c             	sub    $0xc,%esp
   137b1:	50                   	push   %eax
   137b2:	ff 15 28 a2 01 00    	call   *0x1a228
   137b8:	83 c4 0c             	add    $0xc,%esp
   137bb:	eb 92                	jmp    1374f <_VideoPortGetRomImage@16+0x1f>
   137bd:	a1 18 70 01 00       	mov    0x17018,%eax
   137c2:	85 c0                	test   %eax,%eax
   137c4:	75 0b                	jne    137d1 <_VideoPortGetRomImage@16+0xa1>
   137c6:	31 d2                	xor    %edx,%edx
   137c8:	89 d0                	mov    %edx,%eax
   137ca:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   137cd:	c9                   	leave  
   137ce:	c2 10 00             	ret    $0x10
   137d1:	83 ec 0c             	sub    $0xc,%esp
   137d4:	50                   	push   %eax
   137d5:	ff 15 28 a2 01 00    	call   *0x1a228
   137db:	31 d2                	xor    %edx,%edx
   137dd:	83 c4 0c             	add    $0xc,%esp
   137e0:	c7 05 18 70 01 00 00 	movl   $0x0,0x17018
   137e7:	00 00 00 
   137ea:	eb dc                	jmp    137c8 <_VideoPortGetRomImage@16+0x98>
   137ec:	8d 74 26 00          	lea    0x0(%esi),%esi

000137f0 <_VideoPortScanRom@16>:
   137f0:	55                   	push   %ebp
   137f1:	89 e5                	mov    %esp,%ebp
   137f3:	57                   	push   %edi
   137f4:	56                   	push   %esi
   137f5:	53                   	push   %ebx
   137f6:	83 ec 18             	sub    $0x18,%esp
   137f9:	8b 5d 14             	mov    0x14(%ebp),%ebx
   137fc:	53                   	push   %ebx
   137fd:	e8 5e 13 00 00       	call   14b60 <_strlen>
   13802:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   13805:	8b 4d 10             	mov    0x10(%ebp),%ecx
   13808:	89 da                	mov    %ebx,%edx
   1380a:	89 c6                	mov    %eax,%esi
   1380c:	01 ca                	add    %ecx,%edx
   1380e:	83 c4 10             	add    $0x10,%esp
   13811:	29 f2                	sub    %esi,%edx
   13813:	31 c0                	xor    %eax,%eax
   13815:	39 da                	cmp    %ebx,%edx
   13817:	76 23                	jbe    1383c <_VideoPortScanRom@16+0x4c>
   13819:	89 d7                	mov    %edx,%edi
   1381b:	90                   	nop    
   1381c:	8d 74 26 00          	lea    0x0(%esi),%esi
   13820:	8b 4d 14             	mov    0x14(%ebp),%ecx
   13823:	50                   	push   %eax
   13824:	56                   	push   %esi
   13825:	51                   	push   %ecx
   13826:	53                   	push   %ebx
   13827:	ff 15 b4 a2 01 00    	call   *0x1a2b4
   1382d:	39 f0                	cmp    %esi,%eax
   1382f:	5a                   	pop    %edx
   13830:	0f 94 c0             	sete   %al
   13833:	43                   	inc    %ebx
   13834:	84 c0                	test   %al,%al
   13836:	75 04                	jne    1383c <_VideoPortScanRom@16+0x4c>
   13838:	39 df                	cmp    %ebx,%edi
   1383a:	77 e4                	ja     13820 <_VideoPortScanRom@16+0x30>
   1383c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1383f:	25 ff 00 00 00       	and    $0xff,%eax
   13844:	5b                   	pop    %ebx
   13845:	5e                   	pop    %esi
   13846:	5f                   	pop    %edi
   13847:	5d                   	pop    %ebp
   13848:	c2 10 00             	ret    $0x10
   1384b:	90                   	nop    
   1384c:	8d 74 26 00          	lea    0x0(%esi),%esi

00013850 <_VideoPortSynchronizeExecution@16>:
   13850:	55                   	push   %ebp
   13851:	89 e5                	mov    %esp,%ebp
   13853:	57                   	push   %edi
   13854:	56                   	push   %esi
   13855:	53                   	push   %ebx
   13856:	83 ec 0c             	sub    $0xc,%esp
   13859:	8b 45 0c             	mov    0xc(%ebp),%eax
   1385c:	8b 75 10             	mov    0x10(%ebp),%esi
   1385f:	8b 5d 14             	mov    0x14(%ebp),%ebx
   13862:	83 f8 01             	cmp    $0x1,%eax
   13865:	74 19                	je     13880 <_VideoPortSynchronizeExecution@16+0x30>
   13867:	72 24                	jb     1388d <_VideoPortSynchronizeExecution@16+0x3d>
   13869:	83 f8 02             	cmp    $0x2,%eax
   1386c:	74 53                	je     138c1 <_VideoPortSynchronizeExecution@16+0x71>
   1386e:	31 db                	xor    %ebx,%ebx
   13870:	31 c0                	xor    %eax,%eax
   13872:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13875:	88 d8                	mov    %bl,%al
   13877:	5b                   	pop    %ebx
   13878:	5e                   	pop    %esi
   13879:	5f                   	pop    %edi
   1387a:	5d                   	pop    %ebp
   1387b:	c2 10 00             	ret    $0x10
   1387e:	89 f6                	mov    %esi,%esi
   13880:	8b 45 08             	mov    0x8(%ebp),%eax
   13883:	8b 80 64 ff ff ff    	mov    0xffffff64(%eax),%eax
   13889:	85 c0                	test   %eax,%eax
   1388b:	75 19                	jne    138a6 <_VideoPortSynchronizeExecution@16+0x56>
   1388d:	83 ec 0c             	sub    $0xc,%esp
   13890:	53                   	push   %ebx
   13891:	ff d6                	call   *%esi
   13893:	88 c3                	mov    %al,%bl
   13895:	31 c0                	xor    %eax,%eax
   13897:	88 d8                	mov    %bl,%al
   13899:	83 c4 0c             	add    $0xc,%esp
   1389c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   1389f:	5b                   	pop    %ebx
   138a0:	5e                   	pop    %esi
   138a1:	5f                   	pop    %edi
   138a2:	5d                   	pop    %ebp
   138a3:	c2 10 00             	ret    $0x10
   138a6:	57                   	push   %edi
   138a7:	53                   	push   %ebx
   138a8:	56                   	push   %esi
   138a9:	50                   	push   %eax
   138aa:	ff 15 9c a2 01 00    	call   *0x1a29c
   138b0:	88 c3                	mov    %al,%bl
   138b2:	31 c0                	xor    %eax,%eax
   138b4:	5e                   	pop    %esi
   138b5:	88 d8                	mov    %bl,%al
   138b7:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   138ba:	5b                   	pop    %ebx
   138bb:	5e                   	pop    %esi
   138bc:	5f                   	pop    %edi
   138bd:	5d                   	pop    %ebp
   138be:	c2 10 00             	ret    $0x10
   138c1:	ff 15 ec a1 01 00    	call   *0x1a1ec
   138c7:	89 c7                	mov    %eax,%edi
   138c9:	3c 1b                	cmp    $0x1b,%al
   138cb:	76 21                	jbe    138ee <_VideoPortSynchronizeExecution@16+0x9e>
   138cd:	83 ec 0c             	sub    $0xc,%esp
   138d0:	53                   	push   %ebx
   138d1:	ff d6                	call   *%esi
   138d3:	88 c3                	mov    %al,%bl
   138d5:	89 f8                	mov    %edi,%eax
   138d7:	83 c4 0c             	add    $0xc,%esp
   138da:	3c 1b                	cmp    $0x1b,%al
   138dc:	77 92                	ja     13870 <_VideoPortSynchronizeExecution@16+0x20>
   138de:	89 f9                	mov    %edi,%ecx
   138e0:	81 e1 ff 00 00 00    	and    $0xff,%ecx
   138e6:	ff 15 ac a1 01 00    	call   *0x1a1ac
   138ec:	eb 82                	jmp    13870 <_VideoPortSynchronizeExecution@16+0x20>
   138ee:	b9 1c 00 00 00       	mov    $0x1c,%ecx
   138f3:	ff 15 b0 a1 01 00    	call   *0x1a1b0
   138f9:	89 c7                	mov    %eax,%edi
   138fb:	eb d0                	jmp    138cd <_VideoPortSynchronizeExecution@16+0x7d>
   138fd:	8d 76 00             	lea    0x0(%esi),%esi

00013900 <_VideoPortCreateSecondaryDisplay@12>:

/*
 * @unimplemented
 */

VP_STATUS STDCALL
VideoPortCreateSecondaryDisplay(
   IN PVOID HwDeviceExtension,
   IN OUT PVOID *SecondaryDeviceExtension,
   IN ULONG Flag)
{
   13900:	55                   	push   %ebp
   13901:	89 e5                	mov    %esp,%ebp
   13903:	83 ec 0c             	sub    $0xc,%esp
   DPRINT1("VideoPortCreateSecondaryDisplay: Unimplemented.\n");
   13906:	68 24 04 00 00       	push   $0x424
   1390b:	68 34 64 01 00       	push   $0x16434
   13910:	68 3f 64 01 00       	push   $0x1643f
   13915:	ff 15 1c a2 01 00    	call   *0x1a21c
   1391b:	c7 04 24 f4 64 01 00 	movl   $0x164f4,(%esp)
   13922:	ff 15 1c a2 01 00    	call   *0x1a21c
   return NO_ERROR;
}
   13928:	31 c0                	xor    %eax,%eax
   1392a:	c9                   	leave  
   1392b:	c2 0c 00             	ret    $0xc
   1392e:	89 f6                	mov    %esi,%esi

00013930 <_VideoPortQueueDpc@12>:

/*
 * @implemented
 */

BOOLEAN STDCALL
VideoPortQueueDpc(
   IN PVOID HwDeviceExtension,
   IN PMINIPORT_DPC_ROUTINE CallbackRoutine,
   IN PVOID Context)
{
   13930:	55                   	push   %ebp
   13931:	89 e5                	mov    %esp,%ebp
   13933:	83 ec 0c             	sub    $0xc,%esp
   return KeInsertQueueDpc(
   13936:	8b 45 10             	mov    0x10(%ebp),%eax
   13939:	50                   	push   %eax
   1393a:	8b 45 0c             	mov    0xc(%ebp),%eax
   1393d:	50                   	push   %eax
   1393e:	8b 45 08             	mov    0x8(%ebp),%eax
   13941:	83 e8 74             	sub    $0x74,%eax
   13944:	50                   	push   %eax
   13945:	ff 15 90 a2 01 00    	call   *0x1a290
   1394b:	25 ff 00 00 00       	and    $0xff,%eax
      &VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension)->DpcObject, 
      (PVOID)CallbackRoutine,
      (PVOID)Context);
}
   13950:	c9                   	leave  
   13951:	c2 0c 00             	ret    $0xc
   13954:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1395a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00013960 <_VideoPortGetAssociatedDeviceExtension@4>:

/*
 * @unimplemented
 */

PVOID STDCALL
VideoPortGetAssociatedDeviceExtension(IN PVOID DeviceObject)
{
   13960:	55                   	push   %ebp
   13961:	89 e5                	mov    %esp,%ebp
   13963:	83 ec 0c             	sub    $0xc,%esp
   DPRINT1("VideoPortGetAssociatedDeviceExtension: Unimplemented.\n");
   13966:	68 3f 04 00 00       	push   $0x43f
   1396b:	68 34 64 01 00       	push   $0x16434
   13970:	68 3f 64 01 00       	push   $0x1643f
   13975:	ff 15 1c a2 01 00    	call   *0x1a21c
   1397b:	c7 04 24 28 65 01 00 	movl   $0x16528,(%esp)
   13982:	ff 15 1c a2 01 00    	call   *0x1a21c
   return NULL;
}
   13988:	31 c0                	xor    %eax,%eax
   1398a:	c9                   	leave  
   1398b:	c2 04 00             	ret    $0x4
   1398e:	89 f6                	mov    %esi,%esi

00013990 <_VideoPortGetVersion@8>:

/*
 * @implemented
 */

VP_STATUS STDCALL
VideoPortGetVersion(
   IN PVOID HwDeviceExtension,
   IN OUT PVPOSVERSIONINFO VpOsVersionInfo)
{
   13990:	55                   	push   %ebp
   RTL_OSVERSIONINFOEXW Version;

   Version.dwOSVersionInfoSize = sizeof(RTL_OSVERSIONINFOEXW);
   if (VpOsVersionInfo->Size >= sizeof(VPOSVERSIONINFO))
   {
#if 1
      if (NT_SUCCESS(RtlGetVersion((PRTL_OSVERSIONINFOW)&Version)))
      {
         VpOsVersionInfo->MajorVersion = Version.dwMajorVersion;
         VpOsVersionInfo->MinorVersion = Version.dwMinorVersion;
         VpOsVersionInfo->BuildNumber = Version.dwBuildNumber;
         VpOsVersionInfo->ServicePackMajor = Version.wServicePackMajor;
         VpOsVersionInfo->ServicePackMinor = Version.wServicePackMinor;
         return NO_ERROR;
      }
      return ERROR_INVALID_PARAMETER;
#else
      VpOsVersionInfo->MajorVersion = 5;
      VpOsVersionInfo->MinorVersion = 0;
      VpOsVersionInfo->BuildNumber = 2195;
      VpOsVersionInfo->ServicePackMajor = 4;
      VpOsVersionInfo->ServicePackMinor = 0;
      return NO_ERROR;
#endif
   }

   return ERROR_INVALID_PARAMETER;
   13991:	ba 57 00 00 00       	mov    $0x57,%edx
   13996:	89 e5                	mov    %esp,%ebp
   13998:	53                   	push   %ebx
   13999:	81 ec 24 01 00 00    	sub    $0x124,%esp
   1399f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   139a2:	c7 85 d8 fe ff ff 1c 	movl   $0x11c,0xfffffed8(%ebp)
   139a9:	01 00 00 
   139ac:	83 3b 13             	cmpl   $0x13,(%ebx)
   139af:	76 48                	jbe    139f9 <_VideoPortGetVersion@8+0x69>
   139b1:	83 ec 0c             	sub    $0xc,%esp
   139b4:	8d 85 d8 fe ff ff    	lea    0xfffffed8(%ebp),%eax
   139ba:	50                   	push   %eax
   139bb:	ff 15 bc a2 01 00    	call   *0x1a2bc
   139c1:	ba 57 00 00 00       	mov    $0x57,%edx
   139c6:	83 c4 0c             	add    $0xc,%esp
   139c9:	85 c0                	test   %eax,%eax
   139cb:	78 2c                	js     139f9 <_VideoPortGetVersion@8+0x69>
   139cd:	8b 85 dc fe ff ff    	mov    0xfffffedc(%ebp),%eax
   139d3:	30 d2                	xor    %dl,%dl
   139d5:	89 43 04             	mov    %eax,0x4(%ebx)
   139d8:	8b 85 e0 fe ff ff    	mov    0xfffffee0(%ebp),%eax
   139de:	89 43 08             	mov    %eax,0x8(%ebx)
   139e1:	8b 85 e4 fe ff ff    	mov    0xfffffee4(%ebp),%eax
   139e7:	89 43 0c             	mov    %eax,0xc(%ebx)
   139ea:	8b 45 ec             	mov    0xffffffec(%ebp),%eax
   139ed:	66 89 43 10          	mov    %ax,0x10(%ebx)
   139f1:	66 8b 45 ee          	mov    0xffffffee(%ebp),%ax
   139f5:	66 89 43 12          	mov    %ax,0x12(%ebx)
}
   139f9:	89 d0                	mov    %edx,%eax
   139fb:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   139fe:	c9                   	leave  
   139ff:	c2 08 00             	ret    $0x8
   13a02:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   13a09:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013a10 <_VideoPortCheckForDeviceExistence@28>:

/*
 * @unimplemented
 */

BOOLEAN STDCALL
VideoPortCheckForDeviceExistence(
   IN PVOID HwDeviceExtension,
   IN USHORT VendorId,
   IN USHORT DeviceId,
   IN UCHAR RevisionId,
   IN USHORT SubVendorId,
   IN USHORT SubSystemId,
   IN ULONG Flags)
{
   13a10:	55                   	push   %ebp
   13a11:	89 e5                	mov    %esp,%ebp
   13a13:	83 ec 0c             	sub    $0xc,%esp
   DPRINT1("VideoPortCheckForDeviceExistence: Unimplemented.\n");
   13a16:	68 77 04 00 00       	push   $0x477
   13a1b:	68 34 64 01 00       	push   $0x16434
   13a20:	68 3f 64 01 00       	push   $0x1643f
   13a25:	ff 15 1c a2 01 00    	call   *0x1a21c
   13a2b:	c7 04 24 60 65 01 00 	movl   $0x16560,(%esp)
   13a32:	ff 15 1c a2 01 00    	call   *0x1a21c
   return TRUE;
}
   13a38:	b8 01 00 00 00       	mov    $0x1,%eax
   13a3d:	c9                   	leave  
   13a3e:	c2 1c 00             	ret    $0x1c
   13a41:	eb 0d                	jmp    13a50 <_VideoPortRegisterBugcheckCallback@16>
   13a43:	90                   	nop    
   13a44:	90                   	nop    
   13a45:	90                   	nop    
   13a46:	90                   	nop    
   13a47:	90                   	nop    
   13a48:	90                   	nop    
   13a49:	90                   	nop    
   13a4a:	90                   	nop    
   13a4b:	90                   	nop    
   13a4c:	90                   	nop    
   13a4d:	90                   	nop    
   13a4e:	90                   	nop    
   13a4f:	90                   	nop    

00013a50 <_VideoPortRegisterBugcheckCallback@16>:

/*
 * @unimplemented
 */

VP_STATUS STDCALL
VideoPortRegisterBugcheckCallback(
   IN PVOID HwDeviceExtension,
   IN ULONG BugcheckCode,
   IN PVOID Callback,
   IN ULONG BugcheckDataSize)
{
   13a50:	55                   	push   %ebp
   13a51:	89 e5                	mov    %esp,%ebp
   13a53:	83 ec 0c             	sub    $0xc,%esp
   DPRINT1("VideoPortRegisterBugcheckCallback(): Unimplemented.\n");
   13a56:	68 86 04 00 00       	push   $0x486
   13a5b:	68 34 64 01 00       	push   $0x16434
   13a60:	68 3f 64 01 00       	push   $0x1643f
   13a65:	ff 15 1c a2 01 00    	call   *0x1a21c
   13a6b:	c7 04 24 94 65 01 00 	movl   $0x16594,(%esp)
   13a72:	ff 15 1c a2 01 00    	call   *0x1a21c
   return NO_ERROR;
}
   13a78:	31 c0                	xor    %eax,%eax
   13a7a:	c9                   	leave  
   13a7b:	c2 10 00             	ret    $0x10
   13a7e:	89 f6                	mov    %esi,%esi

00013a80 <_VideoPortQueryPerformanceCounter@8>:

/*
 * @implemented
 */

LONGLONG STDCALL
VideoPortQueryPerformanceCounter(
   IN PVOID HwDeviceExtension,
   OUT PLONGLONG PerformanceFrequency OPTIONAL)
{
   13a80:	55                   	push   %ebp
   13a81:	89 e5                	mov    %esp,%ebp
   13a83:	83 ec 14             	sub    $0x14,%esp
   LARGE_INTEGER Result;

   DPRINT("VideoPortQueryPerformanceCounter\n");
   Result = KeQueryPerformanceCounter((PLARGE_INTEGER)PerformanceFrequency);
   13a86:	8b 45 0c             	mov    0xc(%ebp),%eax
   13a89:	50                   	push   %eax
   13a8a:	ff 15 f0 a1 01 00    	call   *0x1a1f0
   return Result.QuadPart;
}
   13a90:	c9                   	leave  
   13a91:	c2 08 00             	ret    $0x8
   13a94:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13a9a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00013aa0 <_VideoPortAcquireDeviceLock@4>:

/*
 * @implemented
 */
 
VOID STDCALL
VideoPortAcquireDeviceLock(
   IN PVOID  HwDeviceExtension)
{
   13aa0:	55                   	push   %ebp
   13aa1:	89 e5                	mov    %esp,%ebp
   13aa3:	83 ec 14             	sub    $0x14,%esp
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   NTSTATUS Status;
   (void)Status;

   DPRINT("VideoPortAcquireDeviceLock\n");
   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   Status = KeWaitForMutexObject(&DeviceExtension->DeviceLock, Executive,
   13aa6:	8b 45 08             	mov    0x8(%ebp),%eax
   13aa9:	6a 00                	push   $0x0
   13aab:	83 e8 20             	sub    $0x20,%eax
   13aae:	6a 00                	push   $0x0
   13ab0:	6a 00                	push   $0x0
   13ab2:	6a 00                	push   $0x0
   13ab4:	50                   	push   %eax
   13ab5:	ff 15 a0 a2 01 00    	call   *0x1a2a0
                                 KernelMode, FALSE, NULL);
   ASSERT(Status == STATUS_SUCCESS);
   13abb:	c9                   	leave  
   13abc:	c2 04 00             	ret    $0x4
   13abf:	90                   	nop    

00013ac0 <_VideoPortReleaseDeviceLock@4>:
}

/*
 * @implemented
 */

VOID STDCALL
VideoPortReleaseDeviceLock(
   IN PVOID  HwDeviceExtension)
{
   13ac0:	55                   	push   %ebp
   13ac1:	89 e5                	mov    %esp,%ebp
   13ac3:	83 ec 10             	sub    $0x10,%esp
   PVIDEO_PORT_DEVICE_EXTENSION DeviceExtension;
   LONG Status;
   (void)Status;

   DPRINT("VideoPortReleaseDeviceLock\n");
   DeviceExtension = VIDEO_PORT_GET_DEVICE_EXTENSION(HwDeviceExtension);
   Status = KeReleaseMutex(&DeviceExtension->DeviceLock, FALSE);
   13ac6:	8b 45 08             	mov    0x8(%ebp),%eax
   13ac9:	6a 00                	push   $0x0
   13acb:	83 e8 20             	sub    $0x20,%eax
   13ace:	50                   	push   %eax
   13acf:	ff 15 94 a2 01 00    	call   *0x1a294
   ASSERT(Status == 0);
   13ad5:	c9                   	leave  
   13ad6:	c2 04 00             	ret    $0x4
   13ad9:	90                   	nop    
   13ada:	90                   	nop    
   13adb:	90                   	nop    
   13adc:	90                   	nop    
   13add:	90                   	nop    
   13ade:	90                   	nop    
   13adf:	90                   	nop    

00013ae0 <_IntVideoPortMapPhysicalMemory@24>:
   13ae0:	55                   	push   %ebp
   13ae1:	89 e5                	mov    %esp,%ebp
   13ae3:	56                   	push   %esi
   13ae4:	53                   	push   %ebx
   13ae5:	83 ec 38             	sub    $0x38,%esp
   13ae8:	8d 5d d0             	lea    0xffffffd0(%ebp),%ebx
   13aeb:	8b 75 14             	mov    0x14(%ebp),%esi
   13aee:	68 d0 65 01 00       	push   $0x165d0
   13af3:	53                   	push   %ebx
   13af4:	ff 15 c4 a2 01 00    	call   *0x1a2c4
   13afa:	8d 45 d8             	lea    0xffffffd8(%ebp),%eax
   13afd:	89 5d e0             	mov    %ebx,0xffffffe0(%ebp)
   13b00:	c7 45 d8 18 00 00 00 	movl   $0x18,0xffffffd8(%ebp)
   13b07:	89 04 24             	mov    %eax,(%esp)
   13b0a:	c7 45 dc 00 00 00 00 	movl   $0x0,0xffffffdc(%ebp)
   13b11:	8d 45 cc             	lea    0xffffffcc(%ebp),%eax
   13b14:	c7 45 e4 40 00 00 00 	movl   $0x40,0xffffffe4(%ebp)
   13b1b:	c7 45 e8 00 00 00 00 	movl   $0x0,0xffffffe8(%ebp)
   13b22:	c7 45 ec 00 00 00 00 	movl   $0x0,0xffffffec(%ebp)
   13b29:	68 1f 00 0f 00       	push   $0xf001f
   13b2e:	50                   	push   %eax
   13b2f:	ff 15 e0 a2 01 00    	call   *0x1a2e0
   13b35:	89 c3                	mov    %eax,%ebx
   13b37:	58                   	pop    %eax
   13b38:	85 db                	test   %ebx,%ebx
   13b3a:	78 3a                	js     13b76 <_IntVideoPortMapPhysicalMemory@24+0x96>
   13b3c:	50                   	push   %eax
   13b3d:	50                   	push   %eax
   13b3e:	8b 45 18             	mov    0x18(%ebp),%eax
   13b41:	50                   	push   %eax
   13b42:	8d 45 c8             	lea    0xffffffc8(%ebp),%eax
   13b45:	6a 00                	push   $0x0
   13b47:	6a 02                	push   $0x2
   13b49:	50                   	push   %eax
   13b4a:	8d 45 0c             	lea    0xc(%ebp),%eax
   13b4d:	50                   	push   %eax
   13b4e:	8b 5d 08             	mov    0x8(%ebp),%ebx
   13b51:	56                   	push   %esi
   13b52:	8b 4d cc             	mov    0xffffffcc(%ebp),%ecx
   13b55:	89 75 c8             	mov    %esi,0xffffffc8(%ebp)
   13b58:	8b 75 1c             	mov    0x1c(%ebp),%esi
   13b5b:	6a 00                	push   $0x0
   13b5d:	56                   	push   %esi
   13b5e:	53                   	push   %ebx
   13b5f:	51                   	push   %ecx
   13b60:	ff 15 dc a2 01 00    	call   *0x1a2dc
   13b66:	89 c3                	mov    %eax,%ebx
   13b68:	8b 45 cc             	mov    0xffffffcc(%ebp),%eax
   13b6b:	52                   	push   %edx
   13b6c:	50                   	push   %eax
   13b6d:	ff 15 d4 a2 01 00    	call   *0x1a2d4
   13b73:	83 c4 0c             	add    $0xc,%esp
   13b76:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   13b79:	89 d8                	mov    %ebx,%eax
   13b7b:	5b                   	pop    %ebx
   13b7c:	5e                   	pop    %esi
   13b7d:	5d                   	pop    %ebp
   13b7e:	c2 18 00             	ret    $0x18
   13b81:	eb 0d                	jmp    13b90 <_IntVideoPortMapMemory@28>
   13b83:	90                   	nop    
   13b84:	90                   	nop    
   13b85:	90                   	nop    
   13b86:	90                   	nop    
   13b87:	90                   	nop    
   13b88:	90                   	nop    
   13b89:	90                   	nop    
   13b8a:	90                   	nop    
   13b8b:	90                   	nop    
   13b8c:	90                   	nop    
   13b8d:	90                   	nop    
   13b8e:	90                   	nop    
   13b8f:	90                   	nop    

00013b90 <_IntVideoPortMapMemory@28>:
   13b90:	55                   	push   %ebp
   13b91:	89 e5                	mov    %esp,%ebp
   13b93:	57                   	push   %edi
   13b94:	56                   	push   %esi
   13b95:	53                   	push   %ebx
   13b96:	83 ec 1c             	sub    $0x1c,%esp
   13b99:	8a 45 18             	mov    0x18(%ebp),%al
   13b9c:	83 e0 fb             	and    $0xfffffffb,%eax
   13b9f:	88 45 df             	mov    %al,0xffffffdf(%ebp)
   13ba2:	a8 08                	test   $0x8,%al
   13ba4:	74 06                	je     13bac <_IntVideoPortMapMemory@28+0x1c>
   13ba6:	83 e0 f7             	and    $0xfffffff7,%eax
   13ba9:	88 45 df             	mov    %al,0xffffffdf(%ebp)
   13bac:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
   13baf:	85 c9                	test   %ecx,%ecx
   13bb1:	0f 84 62 01 00 00    	je     13d19 <_IntVideoPortMapMemory@28+0x189>
   13bb7:	f6 45 df 02          	testb  $0x2,0xffffffdf(%ebp)
   13bbb:	0f 84 a5 00 00 00    	je     13c66 <_IntVideoPortMapMemory@28+0xd6>
   13bc1:	f6 45 df 02          	testb  $0x2,0xffffffdf(%ebp)
   13bc5:	75 41                	jne    13c08 <_IntVideoPortMapMemory@28+0x78>
   13bc7:	8b 55 08             	mov    0x8(%ebp),%edx
   13bca:	8b 75 08             	mov    0x8(%ebp),%esi
   13bcd:	83 c6 38             	add    $0x38,%esi
   13bd0:	8b 42 38             	mov    0x38(%edx),%eax
   13bd3:	39 f0                	cmp    %esi,%eax
   13bd5:	74 31                	je     13c08 <_IntVideoPortMapMemory@28+0x78>
   13bd7:	89 c7                	mov    %eax,%edi
   13bd9:	39 fe                	cmp    %edi,%esi
   13bdb:	74 2b                	je     13c08 <_IntVideoPortMapMemory@28+0x78>
   13bdd:	8d 76 00             	lea    0x0(%esi),%esi
   13be0:	8b 57 14             	mov    0x14(%edi),%edx
   13be3:	8b 4d 10             	mov    0x10(%ebp),%ecx
   13be6:	31 d1                	xor    %edx,%ecx
   13be8:	8b 47 10             	mov    0x10(%edi),%eax
   13beb:	8b 55 0c             	mov    0xc(%ebp),%edx
   13bee:	89 fb                	mov    %edi,%ebx
   13bf0:	31 d0                	xor    %edx,%eax
   13bf2:	09 c1                	or     %eax,%ecx
   13bf4:	75 0c                	jne    13c02 <_IntVideoPortMapMemory@28+0x72>
   13bf6:	8b 45 14             	mov    0x14(%ebp),%eax
   13bf9:	39 47 0c             	cmp    %eax,0xc(%edi)
   13bfc:	0f 83 fb 00 00 00    	jae    13cfd <_IntVideoPortMapMemory@28+0x16d>
   13c02:	8b 3f                	mov    (%edi),%edi
   13c04:	39 fe                	cmp    %edi,%esi
   13c06:	75 d8                	jne    13be0 <_IntVideoPortMapMemory@28+0x50>
   13c08:	31 db                	xor    %ebx,%ebx
   13c0a:	8a 5d df             	mov    0xffffffdf(%ebp),%bl
   13c0d:	89 d8                	mov    %ebx,%eax
   13c0f:	83 e0 fd             	and    $0xfffffffd,%eax
   13c12:	89 45 e4             	mov    %eax,0xffffffe4(%ebp)
   13c15:	50                   	push   %eax
   13c16:	50                   	push   %eax
   13c17:	8d 45 e8             	lea    0xffffffe8(%ebp),%eax
   13c1a:	50                   	push   %eax
   13c1b:	8d 45 e4             	lea    0xffffffe4(%ebp),%eax
   13c1e:	50                   	push   %eax
   13c1f:	8b 45 10             	mov    0x10(%ebp),%eax
   13c22:	8b 75 08             	mov    0x8(%ebp),%esi
   13c25:	50                   	push   %eax
   13c26:	8b 45 0c             	mov    0xc(%ebp),%eax
   13c29:	50                   	push   %eax
   13c2a:	8b 7e 30             	mov    0x30(%esi),%edi
   13c2d:	57                   	push   %edi
   13c2e:	8b 76 2c             	mov    0x2c(%esi),%esi
   13c31:	56                   	push   %esi
   13c32:	ff 15 e4 a1 01 00    	call   *0x1a1e4
   13c38:	5a                   	pop    %edx
   13c39:	84 c0                	test   %al,%al
   13c3b:	59                   	pop    %ecx
   13c3c:	0f 84 57 01 00 00    	je     13d99 <_IntVideoPortMapMemory@28+0x209>
   13c42:	8b 45 e4             	mov    0xffffffe4(%ebp),%eax
   13c45:	85 c0                	test   %eax,%eax
   13c47:	74 27                	je     13c70 <_IntVideoPortMapMemory@28+0xe0>
   13c49:	8b 45 20             	mov    0x20(%ebp),%eax
   13c4c:	85 c0                	test   %eax,%eax
   13c4e:	74 09                	je     13c59 <_IntVideoPortMapMemory@28+0xc9>
   13c50:	8b 55 20             	mov    0x20(%ebp),%edx
   13c53:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   13c59:	8b 45 e8             	mov    0xffffffe8(%ebp),%eax
   13c5c:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13c5f:	5b                   	pop    %ebx
   13c60:	5e                   	pop    %esi
   13c61:	5f                   	pop    %edi
   13c62:	5d                   	pop    %ebp
   13c63:	c2 1c 00             	ret    $0x1c
   13c66:	80 4d df 02          	orb    $0x2,0xffffffdf(%ebp)
   13c6a:	e9 52 ff ff ff       	jmp    13bc1 <_IntVideoPortMapMemory@28+0x31>
   13c6f:	90                   	nop    
   13c70:	83 e3 02             	and    $0x2,%ebx
   13c73:	74 46                	je     13cbb <_IntVideoPortMapMemory@28+0x12b>
   13c75:	c7 45 e0 00 00 00 00 	movl   $0x0,0xffffffe0(%ebp)
   13c7c:	50                   	push   %eax
   13c7d:	50                   	push   %eax
   13c7e:	8d 45 e0             	lea    0xffffffe0(%ebp),%eax
   13c81:	50                   	push   %eax
   13c82:	6a 04                	push   $0x4
   13c84:	8b 45 14             	mov    0x14(%ebp),%eax
   13c87:	50                   	push   %eax
   13c88:	8b 7d ec             	mov    0xffffffec(%ebp),%edi
   13c8b:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
   13c8e:	57                   	push   %edi
   13c8f:	8b 75 e8             	mov    0xffffffe8(%ebp),%esi
   13c92:	56                   	push   %esi
   13c93:	53                   	push   %ebx
   13c94:	e8 47 fe ff ff       	call   13ae0 <_IntVideoPortMapPhysicalMemory@24>
   13c99:	5a                   	pop    %edx
   13c9a:	85 c0                	test   %eax,%eax
   13c9c:	59                   	pop    %ecx
   13c9d:	79 33                	jns    13cd2 <_IntVideoPortMapMemory@28+0x142>
   13c9f:	8b 7d 20             	mov    0x20(%ebp),%edi
   13ca2:	85 ff                	test   %edi,%edi
   13ca4:	74 09                	je     13caf <_IntVideoPortMapMemory@28+0x11f>
   13ca6:	8b 75 20             	mov    0x20(%ebp),%esi
   13ca9:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
   13caf:	31 c0                	xor    %eax,%eax
   13cb1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13cb4:	5b                   	pop    %ebx
   13cb5:	5e                   	pop    %esi
   13cb6:	5f                   	pop    %edi
   13cb7:	5d                   	pop    %ebp
   13cb8:	c2 1c 00             	ret    $0x1c
   13cbb:	6a 00                	push   $0x0
   13cbd:	8b 75 14             	mov    0x14(%ebp),%esi
   13cc0:	56                   	push   %esi
   13cc1:	8b 5d ec             	mov    0xffffffec(%ebp),%ebx
   13cc4:	53                   	push   %ebx
   13cc5:	8b 4d e8             	mov    0xffffffe8(%ebp),%ecx
   13cc8:	51                   	push   %ecx
   13cc9:	ff 15 a8 a2 01 00    	call   *0x1a2a8
   13ccf:	89 45 e0             	mov    %eax,0xffffffe0(%ebp)
   13cd2:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   13cd5:	85 c0                	test   %eax,%eax
   13cd7:	0f 84 d7 00 00 00    	je     13db4 <_IntVideoPortMapMemory@28+0x224>
   13cdd:	8b 55 20             	mov    0x20(%ebp),%edx
   13ce0:	85 d2                	test   %edx,%edx
   13ce2:	74 09                	je     13ced <_IntVideoPortMapMemory@28+0x15d>
   13ce4:	8b 55 20             	mov    0x20(%ebp),%edx
   13ce7:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   13ced:	f6 45 df 02          	testb  $0x2,0xffffffdf(%ebp)
   13cf1:	74 3c                	je     13d2f <_IntVideoPortMapMemory@28+0x19f>
   13cf3:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   13cf6:	5b                   	pop    %ebx
   13cf7:	5e                   	pop    %esi
   13cf8:	5f                   	pop    %edi
   13cf9:	5d                   	pop    %ebp
   13cfa:	c2 1c 00             	ret    $0x1c
   13cfd:	8b 47 1c             	mov    0x1c(%edi),%eax
   13d00:	40                   	inc    %eax
   13d01:	89 47 1c             	mov    %eax,0x1c(%edi)
   13d04:	8b 45 20             	mov    0x20(%ebp),%eax
   13d07:	85 c0                	test   %eax,%eax
   13d09:	74 09                	je     13d14 <_IntVideoPortMapMemory@28+0x184>
   13d0b:	8b 55 20             	mov    0x20(%ebp),%edx
   13d0e:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
   13d14:	8b 43 08             	mov    0x8(%ebx),%eax
   13d17:	eb da                	jmp    13cf3 <_IntVideoPortMapMemory@28+0x163>
   13d19:	f6 45 df 02          	testb  $0x2,0xffffffdf(%ebp)
   13d1d:	0f 84 9e fe ff ff    	je     13bc1 <_IntVideoPortMapMemory@28+0x31>
   13d23:	c7 45 1c ff ff ff ff 	movl   $0xffffffff,0x1c(%ebp)
   13d2a:	e9 92 fe ff ff       	jmp    13bc1 <_IntVideoPortMapMemory@28+0x31>
   13d2f:	50                   	push   %eax
   13d30:	68 56 49 44 50       	push   $0x50444956
   13d35:	6a 20                	push   $0x20
   13d37:	6a 01                	push   $0x1
   13d39:	ff 15 24 a2 01 00    	call   *0x1a224
   13d3f:	89 c3                	mov    %eax,%ebx
   13d41:	58                   	pop    %eax
   13d42:	85 db                	test   %ebx,%ebx
   13d44:	0f 84 85 00 00 00    	je     13dcf <_IntVideoPortMapMemory@28+0x23f>
   13d4a:	fc                   	cld    
   13d4b:	31 c0                	xor    %eax,%eax
   13d4d:	b9 08 00 00 00       	mov    $0x8,%ecx
   13d52:	89 df                	mov    %ebx,%edi
   13d54:	f3 ab                	repz stos %eax,%es:(%edi)
   13d56:	8b 75 14             	mov    0x14(%ebp),%esi
   13d59:	8b 4d e0             	mov    0xffffffe0(%ebp),%ecx
   13d5c:	89 73 0c             	mov    %esi,0xc(%ebx)
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
  PLIST_ENTRY OldFlink;
  OldFlink = ListHead->Flink;
   13d5f:	8b 75 08             	mov    0x8(%ebp),%esi
   13d62:	8b 55 10             	mov    0x10(%ebp),%edx
   13d65:	8b 45 0c             	mov    0xc(%ebp),%eax
   13d68:	89 53 14             	mov    %edx,0x14(%ebx)
   13d6b:	8b 55 08             	mov    0x8(%ebp),%edx
   13d6e:	89 43 10             	mov    %eax,0x10(%ebx)
   13d71:	89 4b 08             	mov    %ecx,0x8(%ebx)
   13d74:	8b 42 30             	mov    0x30(%edx),%eax
static __inline VOID
InsertHeadList(
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
   13d77:	83 c2 38             	add    $0x38,%edx
   13d7a:	89 43 18             	mov    %eax,0x18(%ebx)
  IN PLIST_ENTRY  ListHead,
  IN PLIST_ENTRY  Entry)
{ 
  PLIST_ENTRY OldFlink;
  OldFlink = ListHead->Flink;
   13d7d:	8b 46 38             	mov    0x38(%esi),%eax
  Entry->Flink = OldFlink;
   13d80:	89 03                	mov    %eax,(%ebx)
  Entry->Blink = ListHead;
   13d82:	89 53 04             	mov    %edx,0x4(%ebx)
  OldFlink->Blink = Entry;
   13d85:	89 58 04             	mov    %ebx,0x4(%eax)
   13d88:	89 c8                	mov    %ecx,%eax
   13d8a:	c7 43 1c 01 00 00 00 	movl   $0x1,0x1c(%ebx)
  OldFlink = ListHead->Flink;
  Entry->Flink = OldFlink;
  Entry->Blink = ListHead;
  OldFlink->Blink = Entry;
  ListHead->Flink = Entry;
   13d91:	89 5e 38             	mov    %ebx,0x38(%esi)
   13d94:	e9 5a ff ff ff       	jmp    13cf3 <_IntVideoPortMapMemory@28+0x163>
   13d99:	8b 45 20             	mov    0x20(%ebp),%eax
   13d9c:	85 c0                	test   %eax,%eax
   13d9e:	0f 84 0b ff ff ff    	je     13caf <_IntVideoPortMapMemory@28+0x11f>
   13da4:	8b 45 20             	mov    0x20(%ebp),%eax
   13da7:	c7 00 08 00 00 00    	movl   $0x8,(%eax)
   13dad:	31 c0                	xor    %eax,%eax
   13daf:	e9 fd fe ff ff       	jmp    13cb1 <_IntVideoPortMapMemory@28+0x121>
   13db4:	8b 45 20             	mov    0x20(%ebp),%eax
   13db7:	85 c0                	test   %eax,%eax
   13db9:	0f 84 f0 fe ff ff    	je     13caf <_IntVideoPortMapMemory@28+0x11f>
   13dbf:	8b 45 20             	mov    0x20(%ebp),%eax
   13dc2:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
   13dc8:	31 c0                	xor    %eax,%eax
   13dca:	e9 e2 fe ff ff       	jmp    13cb1 <_IntVideoPortMapMemory@28+0x121>
   13dcf:	8b 45 e0             	mov    0xffffffe0(%ebp),%eax
   13dd2:	e9 1c ff ff ff       	jmp    13cf3 <_IntVideoPortMapMemory@28+0x163>
   13dd7:	89 f6                	mov    %esi,%esi
   13dd9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013de0 <_IntVideoPortUnmapMemory@8>:
   13de0:	55                   	push   %ebp
   13de1:	89 e5                	mov    %esp,%ebp
   13de3:	56                   	push   %esi
   13de4:	53                   	push   %ebx
   13de5:	8b 45 08             	mov    0x8(%ebp),%eax
   13de8:	8b 75 0c             	mov    0xc(%ebp),%esi
   13deb:	8b 58 38             	mov    0x38(%eax),%ebx
   13dee:	83 c0 38             	add    $0x38,%eax
   13df1:	eb 07                	jmp    13dfa <_IntVideoPortUnmapMemory@8+0x1a>
   13df3:	39 73 08             	cmp    %esi,0x8(%ebx)
   13df6:	74 20                	je     13e18 <_IntVideoPortUnmapMemory@8+0x38>
   13df8:	8b 1b                	mov    (%ebx),%ebx
   13dfa:	39 d8                	cmp    %ebx,%eax
   13dfc:	75 f5                	jne    13df3 <_IntVideoPortUnmapMemory@8+0x13>
   13dfe:	53                   	push   %ebx
   13dff:	53                   	push   %ebx
   13e00:	56                   	push   %esi
   13e01:	6a ff                	push   $0xffffffff
   13e03:	ff 15 f0 a2 01 00    	call   *0x1a2f0
   13e09:	5a                   	pop    %edx
   13e0a:	85 c0                	test   %eax,%eax
   13e0c:	59                   	pop    %ecx
   13e0d:	78 3b                	js     13e4a <_IntVideoPortUnmapMemory@8+0x6a>
   13e0f:	8d 65 f8             	lea    0xfffffff8(%ebp),%esp
   13e12:	5b                   	pop    %ebx
   13e13:	5e                   	pop    %esi
   13e14:	5d                   	pop    %ebp
   13e15:	c2 08 00             	ret    $0x8
   13e18:	8b 43 1c             	mov    0x1c(%ebx),%eax
   13e1b:	48                   	dec    %eax
   13e1c:	89 43 1c             	mov    %eax,0x1c(%ebx)
   13e1f:	85 c0                	test   %eax,%eax
   13e21:	75 ec                	jne    13e0f <_IntVideoPortUnmapMemory@8+0x2f>
   13e23:	50                   	push   %eax
   13e24:	50                   	push   %eax
   13e25:	8b 43 0c             	mov    0xc(%ebx),%eax
   13e28:	50                   	push   %eax
   13e29:	8b 43 08             	mov    0x8(%ebx),%eax
   13e2c:	50                   	push   %eax
   13e2d:	ff 15 ac a2 01 00    	call   *0x1a2ac

static __inline BOOLEAN
RemoveEntryList(
  IN PLIST_ENTRY  Entry)
{
   13e33:	56                   	push   %esi
  PLIST_ENTRY OldFlink;
  PLIST_ENTRY OldBlink;

  OldFlink = Entry->Flink;
   13e34:	8b 13                	mov    (%ebx),%edx
  OldBlink = Entry->Blink;
   13e36:	8b 43 04             	mov    0x4(%ebx),%eax
  OldFlink->Blink = OldBlink;
   13e39:	89 42 04             	mov    %eax,0x4(%edx)
  OldBlink->Flink = OldFlink;
   13e3c:	89 10                	mov    %edx,(%eax)
   13e3e:	53                   	push   %ebx
   13e3f:	ff 15 28 a2 01 00    	call   *0x1a228
   13e45:	83 c4 0c             	add    $0xc,%esp
   13e48:	eb c5                	jmp    13e0f <_IntVideoPortUnmapMemory@8+0x2f>
   13e4a:	50                   	push   %eax
   13e4b:	68 14 01 00 00       	push   $0x114
   13e50:	68 fe 65 01 00       	push   $0x165fe
   13e55:	68 09 66 01 00       	push   $0x16609
   13e5a:	ff 15 1c a2 01 00    	call   *0x1a21c
   13e60:	5b                   	pop    %ebx
   13e61:	58                   	pop    %eax
   13e62:	56                   	push   %esi
   13e63:	68 14 66 01 00       	push   $0x16614
   13e68:	ff 15 1c a2 01 00    	call   *0x1a21c
   13e6e:	83 c4 10             	add    $0x10,%esp
   13e71:	eb 9c                	jmp    13e0f <_IntVideoPortUnmapMemory@8+0x2f>
   13e73:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13e79:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00013e80 <_VideoPortGetDeviceBase@20>:
   13e80:	55                   	push   %ebp
   13e81:	31 c0                	xor    %eax,%eax
   13e83:	89 e5                	mov    %esp,%ebp
   13e85:	83 ec 0c             	sub    $0xc,%esp
   13e88:	8a 45 18             	mov    0x18(%ebp),%al
   13e8b:	6a 00                	push   $0x0
   13e8d:	6a 00                	push   $0x0
   13e8f:	50                   	push   %eax
   13e90:	8b 45 14             	mov    0x14(%ebp),%eax
   13e93:	50                   	push   %eax
   13e94:	8b 45 10             	mov    0x10(%ebp),%eax
   13e97:	50                   	push   %eax
   13e98:	8b 45 0c             	mov    0xc(%ebp),%eax
   13e9b:	50                   	push   %eax
   13e9c:	8b 45 08             	mov    0x8(%ebp),%eax
   13e9f:	2d b4 00 00 00       	sub    $0xb4,%eax
   13ea4:	50                   	push   %eax
   13ea5:	e8 e6 fc ff ff       	call   13b90 <_IntVideoPortMapMemory@28>
   13eaa:	c9                   	leave  
   13eab:	c2 14 00             	ret    $0x14
   13eae:	89 f6                	mov    %esi,%esi

00013eb0 <_VideoPortFreeDeviceBase@8>:
   13eb0:	55                   	push   %ebp
   13eb1:	89 e5                	mov    %esp,%ebp
   13eb3:	8b 45 08             	mov    0x8(%ebp),%eax
   13eb6:	2d b4 00 00 00       	sub    $0xb4,%eax
   13ebb:	89 45 08             	mov    %eax,0x8(%ebp)
   13ebe:	c9                   	leave  
   13ebf:	e9 1c ff ff ff       	jmp    13de0 <_IntVideoPortUnmapMemory@8>
   13ec4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13eca:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00013ed0 <_VideoPortMapBankedMemory@40>:
   13ed0:	55                   	push   %ebp
   13ed1:	89 e5                	mov    %esp,%ebp
   13ed3:	52                   	push   %edx
   13ed4:	52                   	push   %edx
   13ed5:	68 4f 01 00 00       	push   $0x14f
   13eda:	68 fe 65 01 00       	push   $0x165fe
   13edf:	68 42 66 01 00       	push   $0x16642
   13ee4:	68 5c 66 01 00       	push   $0x1665c
   13ee9:	ff 15 1c a2 01 00    	call   *0x1a21c
   13eef:	b8 78 00 00 00       	mov    $0x78,%eax
   13ef4:	c9                   	leave  
   13ef5:	c2 28 00             	ret    $0x28
   13ef8:	90                   	nop    
   13ef9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00013f00 <_VideoPortMapMemory@24>:
   13f00:	55                   	push   %ebp
   13f01:	89 e5                	mov    %esp,%ebp
   13f03:	53                   	push   %ebx
   13f04:	50                   	push   %eax
   13f05:	50                   	push   %eax
   13f06:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
   13f09:	8d 45 f8             	lea    0xfffffff8(%ebp),%eax
   13f0c:	50                   	push   %eax
   13f0d:	8b 55 08             	mov    0x8(%ebp),%edx
   13f10:	8b 03                	mov    (%ebx),%eax
   13f12:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   13f15:	50                   	push   %eax
   13f16:	8b 45 18             	mov    0x18(%ebp),%eax
   13f19:	81 ea b4 00 00 00    	sub    $0xb4,%edx
   13f1f:	8a 00                	mov    (%eax),%al
   13f21:	25 ff 00 00 00       	and    $0xff,%eax
   13f26:	50                   	push   %eax
   13f27:	8b 45 14             	mov    0x14(%ebp),%eax
   13f2a:	8b 00                	mov    (%eax),%eax
   13f2c:	50                   	push   %eax
   13f2d:	8b 45 10             	mov    0x10(%ebp),%eax
   13f30:	50                   	push   %eax
   13f31:	51                   	push   %ecx
   13f32:	52                   	push   %edx
   13f33:	e8 58 fc ff ff       	call   13b90 <_IntVideoPortMapMemory@28>
   13f38:	89 03                	mov    %eax,(%ebx)
   13f3a:	8b 45 f8             	mov    0xfffffff8(%ebp),%eax
   13f3d:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   13f40:	c9                   	leave  
   13f41:	c2 18 00             	ret    $0x18
   13f44:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   13f4a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00013f50 <_VideoPortUnmapMemory@12>:
   13f50:	55                   	push   %ebp
   13f51:	89 e5                	mov    %esp,%ebp
   13f53:	83 ec 10             	sub    $0x10,%esp
   13f56:	8b 45 0c             	mov    0xc(%ebp),%eax
   13f59:	50                   	push   %eax
   13f5a:	8b 45 08             	mov    0x8(%ebp),%eax
   13f5d:	2d b4 00 00 00       	sub    $0xb4,%eax
   13f62:	50                   	push   %eax
   13f63:	e8 78 fe ff ff       	call   13de0 <_IntVideoPortUnmapMemory@8>
   13f68:	31 c0                	xor    %eax,%eax
   13f6a:	c9                   	leave  
   13f6b:	c2 0c 00             	ret    $0xc
   13f6e:	89 f6                	mov    %esi,%esi

00013f70 <_VideoPortGetAccessRanges@32>:
   13f70:	55                   	push   %ebp
   13f71:	89 e5                	mov    %esp,%ebp
   13f73:	57                   	push   %edi
   13f74:	56                   	push   %esi
   13f75:	53                   	push   %ebx
   13f76:	81 ec 1c 01 00 00    	sub    $0x11c,%esp
   13f7c:	8b 55 08             	mov    0x8(%ebp),%edx
   13f7f:	8b 75 0c             	mov    0xc(%ebp),%esi
   13f82:	81 ea b4 00 00 00    	sub    $0xb4,%edx
   13f88:	8b 45 1c             	mov    0x1c(%ebp),%eax
   13f8b:	8b 4d 20             	mov    0x20(%ebp),%ecx
   13f8e:	8b 5d 24             	mov    0x24(%ebp),%ebx
   13f91:	89 95 dc fe ff ff    	mov    %edx,0xfffffedc(%ebp)
   13f97:	85 f6                	test   %esi,%esi
   13f99:	0f 85 8f 01 00 00    	jne    1412e <_VideoPortGetAccessRanges@32+0x1be>
   13f9f:	89 d6                	mov    %edx,%esi
   13fa1:	8b 52 20             	mov    0x20(%edx),%edx
   13fa4:	89 95 e4 fe ff ff    	mov    %edx,0xfffffee4(%ebp)
   13faa:	85 d2                	test   %edx,%edx
   13fac:	0f 84 10 01 00 00    	je     140c2 <_VideoPortGetAccessRanges@32+0x152>
   13fb2:	8b 02                	mov    (%edx),%eax
   13fb4:	8d 7a 04             	lea    0x4(%edx),%edi
   13fb7:	c1 e0 05             	shl    $0x5,%eax
   13fba:	c7 85 e0 fe ff ff 00 	movl   $0x0,0xfffffee0(%ebp)
   13fc1:	00 00 00 
   13fc4:	8d 44 10 04          	lea    0x4(%eax,%edx,1),%eax
   13fc8:	39 f8                	cmp    %edi,%eax
   13fca:	0f 86 e4 00 00 00    	jbe    140b4 <_VideoPortGetAccessRanges@32+0x144>
   13fd0:	8b 77 0c             	mov    0xc(%edi),%esi
   13fd3:	8d 5f 10             	lea    0x10(%edi),%ebx
   13fd6:	89 f0                	mov    %esi,%eax
   13fd8:	c1 e0 04             	shl    $0x4,%eax
   13fdb:	8d 44 38 10          	lea    0x10(%eax,%edi,1),%eax
   13fdf:	39 d8                	cmp    %ebx,%eax
   13fe1:	77 2d                	ja     14010 <_VideoPortGetAccessRanges@32+0xa0>
   13fe3:	e9 b8 00 00 00       	jmp    140a0 <_VideoPortGetAccessRanges@32+0x130>
   13fe8:	80 f9 01             	cmp    $0x1,%cl
   13feb:	0f 84 ef 00 00 00    	je     140e0 <_VideoPortGetAccessRanges@32+0x170>
   13ff1:	80 f9 02             	cmp    $0x2,%cl
   13ff4:	0f 84 1a 01 00 00    	je     14114 <_VideoPortGetAccessRanges@32+0x1a4>
   13ffa:	89 f0                	mov    %esi,%eax
   13ffc:	83 c3 10             	add    $0x10,%ebx
   13fff:	c1 e0 04             	shl    $0x4,%eax
   14002:	8d 44 38 10          	lea    0x10(%eax,%edi,1),%eax
   14006:	39 d8                	cmp    %ebx,%eax
   14008:	0f 86 8c 00 00 00    	jbe    1409a <_VideoPortGetAccessRanges@32+0x12a>
   1400e:	89 f6                	mov    %esi,%esi
   14010:	8a 0b                	mov    (%ebx),%cl
   14012:	80 f9 03             	cmp    $0x3,%cl
   14015:	0f 94 c2             	sete   %dl
   14018:	80 f9 01             	cmp    $0x1,%cl
   1401b:	0f 94 c0             	sete   %al
   1401e:	09 d0                	or     %edx,%eax
   14020:	a8 01                	test   $0x1,%al
   14022:	74 0f                	je     14033 <_VideoPortGetAccessRanges@32+0xc3>
   14024:	8b 45 14             	mov    0x14(%ebp),%eax
   14027:	39 85 e0 fe ff ff    	cmp    %eax,0xfffffee0(%ebp)
   1402d:	0f 83 2d 02 00 00    	jae    14260 <_VideoPortGetAccessRanges@32+0x2f0>
   14033:	80 f9 03             	cmp    $0x3,%cl
   14036:	75 b0                	jne    13fe8 <_VideoPortGetAccessRanges@32+0x78>
   14038:	8b 95 e0 fe ff ff    	mov    0xfffffee0(%ebp),%edx
   1403e:	39 55 14             	cmp    %edx,0x14(%ebp)
   14041:	0f 86 41 02 00 00    	jbe    14288 <_VideoPortGetAccessRanges@32+0x318>
   14047:	89 d0                	mov    %edx,%eax
   14049:	8b 75 18             	mov    0x18(%ebp),%esi
   1404c:	c1 e0 04             	shl    $0x4,%eax
   1404f:	8b 53 04             	mov    0x4(%ebx),%edx
   14052:	8b 4b 08             	mov    0x8(%ebx),%ecx
   14055:	89 4c 30 04          	mov    %ecx,0x4(%eax,%esi,1)
   14059:	89 14 30             	mov    %edx,(%eax,%esi,1)
   1405c:	8b 53 0c             	mov    0xc(%ebx),%edx
   1405f:	c6 44 30 0c 00       	movb   $0x0,0xc(%eax,%esi,1)
   14064:	89 54 30 08          	mov    %edx,0x8(%eax,%esi,1)
   14068:	c6 44 30 0d 00       	movb   $0x0,0xd(%eax,%esi,1)
   1406d:	80 7b 01 03          	cmpb   $0x3,0x1(%ebx)
   14071:	0f 94 44 30 0e       	sete   0xe(%eax,%esi,1)
   14076:	8b 8d e0 fe ff ff    	mov    0xfffffee0(%ebp),%ecx
   1407c:	8b 77 0c             	mov    0xc(%edi),%esi
   1407f:	41                   	inc    %ecx
   14080:	89 8d e0 fe ff ff    	mov    %ecx,0xfffffee0(%ebp)
   14086:	89 f0                	mov    %esi,%eax
   14088:	83 c3 10             	add    $0x10,%ebx
   1408b:	c1 e0 04             	shl    $0x4,%eax
   1408e:	8d 44 38 10          	lea    0x10(%eax,%edi,1),%eax
   14092:	39 d8                	cmp    %ebx,%eax
   14094:	0f 87 76 ff ff ff    	ja     14010 <_VideoPortGetAccessRanges@32+0xa0>
   1409a:	8b 95 e4 fe ff ff    	mov    0xfffffee4(%ebp),%edx
   140a0:	83 c7 20             	add    $0x20,%edi
   140a3:	8b 02                	mov    (%edx),%eax
   140a5:	c1 e0 05             	shl    $0x5,%eax
   140a8:	8d 44 10 04          	lea    0x4(%eax,%edx,1),%eax
   140ac:	39 f8                	cmp    %edi,%eax
   140ae:	0f 87 1c ff ff ff    	ja     13fd0 <_VideoPortGetAccessRanges@32+0x60>
   140b4:	31 d2                	xor    %edx,%edx
   140b6:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   140b9:	89 d0                	mov    %edx,%eax
   140bb:	5b                   	pop    %ebx
   140bc:	5e                   	pop    %esi
   140bd:	5f                   	pop    %edi
   140be:	5d                   	pop    %ebp
   140bf:	c2 20 00             	ret    $0x20
   140c2:	83 7e 2c 05          	cmpl   $0x5,0x2c(%esi)
   140c6:	0f 84 86 00 00 00    	je     14152 <_VideoPortGetAccessRanges@32+0x1e2>
   140cc:	ba aa 05 00 00       	mov    $0x5aa,%edx
   140d1:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   140d4:	89 d0                	mov    %edx,%eax
   140d6:	5b                   	pop    %ebx
   140d7:	5e                   	pop    %esi
   140d8:	5f                   	pop    %edi
   140d9:	5d                   	pop    %ebp
   140da:	c2 20 00             	ret    $0x20
   140dd:	8d 76 00             	lea    0x0(%esi),%esi
   140e0:	8b 85 e0 fe ff ff    	mov    0xfffffee0(%ebp),%eax
   140e6:	8b 75 18             	mov    0x18(%ebp),%esi
   140e9:	c1 e0 04             	shl    $0x4,%eax
   140ec:	8b 53 04             	mov    0x4(%ebx),%edx
   140ef:	8b 4b 08             	mov    0x8(%ebx),%ecx
   140f2:	89 4c 30 04          	mov    %ecx,0x4(%eax,%esi,1)
   140f6:	89 14 30             	mov    %edx,(%eax,%esi,1)
   140f9:	8b 53 0c             	mov    0xc(%ebx),%edx
   140fc:	c6 44 30 0c 01       	movb   $0x1,0xc(%eax,%esi,1)
   14101:	89 54 30 08          	mov    %edx,0x8(%eax,%esi,1)
   14105:	c6 44 30 0d 00       	movb   $0x0,0xd(%eax,%esi,1)
   1410a:	c6 44 30 0e 00       	movb   $0x0,0xe(%eax,%esi,1)
   1410f:	e9 62 ff ff ff       	jmp    14076 <_VideoPortGetAccessRanges@32+0x106>
   14114:	8b 95 dc fe ff ff    	mov    0xfffffedc(%ebp),%edx
   1411a:	8b 43 04             	mov    0x4(%ebx),%eax
   1411d:	89 42 28             	mov    %eax,0x28(%edx)
   14120:	8b 43 08             	mov    0x8(%ebx),%eax
   14123:	89 42 24             	mov    %eax,0x24(%edx)
   14126:	8b 77 0c             	mov    0xc(%edi),%esi
   14129:	e9 58 ff ff ff       	jmp    14086 <_VideoPortGetAccessRanges@32+0x116>
   1412e:	68 38 02 00 00       	push   $0x238
   14133:	68 fe 65 01 00       	push   $0x165fe
   14138:	68 85 66 01 00       	push   $0x16685
   1413d:	68 5c 66 01 00       	push   $0x1665c
   14142:	ff 15 1c a2 01 00    	call   *0x1a21c
   14148:	83 c4 10             	add    $0x10,%esp
   1414b:	31 d2                	xor    %edx,%edx
   1414d:	e9 64 ff ff ff       	jmp    140b6 <_VideoPortGetAccessRanges@32+0x146>
   14152:	8b 56 04             	mov    0x4(%esi),%edx
   14155:	85 d2                	test   %edx,%edx
   14157:	0f 85 33 01 00 00    	jne    14290 <_VideoPortGetAccessRanges@32+0x320>
   1415d:	66 c7 85 da fe ff ff 	movw   $0x0,0xfffffeda(%ebp)
   14164:	00 00 
   14166:	85 c0                	test   %eax,%eax
   14168:	74 0a                	je     14174 <_VideoPortGetAccessRanges@32+0x204>
   1416a:	66 8b 00             	mov    (%eax),%ax
   1416d:	66 89 85 da fe ff ff 	mov    %ax,0xfffffeda(%ebp)
   14174:	66 c7 85 d8 fe ff ff 	movw   $0x0,0xfffffed8(%ebp)
   1417b:	00 00 
   1417d:	85 c9                	test   %ecx,%ecx
   1417f:	74 0a                	je     1418b <_VideoPortGetAccessRanges@32+0x21b>
   14181:	66 8b 09             	mov    (%ecx),%cx
   14184:	66 89 8d d8 fe ff ff 	mov    %cx,0xfffffed8(%ebp)
   1418b:	31 c0                	xor    %eax,%eax
   1418d:	85 db                	test   %ebx,%ebx
   1418f:	74 02                	je     14193 <_VideoPortGetAccessRanges@32+0x223>
   14191:	8b 03                	mov    (%ebx),%eax
   14193:	89 c3                	mov    %eax,%ebx
   14195:	31 f6                	xor    %esi,%esi
   14197:	8d bd e8 fe ff ff    	lea    0xfffffee8(%ebp),%edi
   1419d:	eb 06                	jmp    141a5 <_VideoPortGetAccessRanges@32+0x235>
   1419f:	46                   	inc    %esi
   141a0:	83 fe 07             	cmp    $0x7,%esi
   141a3:	77 66                	ja     1420b <_VideoPortGetAccessRanges@32+0x29b>
   141a5:	89 f0                	mov    %esi,%eax
   141a7:	83 ec 0c             	sub    $0xc,%esp
   141aa:	83 e0 07             	and    $0x7,%eax
   141ad:	80 e3 1f             	and    $0x1f,%bl
   141b0:	c1 e0 05             	shl    $0x5,%eax
   141b3:	68 00 01 00 00       	push   $0x100
   141b8:	09 c3                	or     %eax,%ebx
   141ba:	57                   	push   %edi
   141bb:	53                   	push   %ebx
   141bc:	8b 85 dc fe ff ff    	mov    0xfffffedc(%ebp),%eax
   141c2:	8b 40 30             	mov    0x30(%eax),%eax
   141c5:	50                   	push   %eax
   141c6:	6a 04                	push   $0x4
   141c8:	ff 15 d0 a1 01 00    	call   *0x1a1d0
   141ce:	83 c4 0c             	add    $0xc,%esp
   141d1:	3d 00 01 00 00       	cmp    $0x100,%eax
   141d6:	75 c7                	jne    1419f <_VideoPortGetAccessRanges@32+0x22f>
   141d8:	66 83 bd da fe ff ff 	cmpw   $0x0,0xfffffeda(%ebp)
   141df:	00 
   141e0:	74 10                	je     141f2 <_VideoPortGetAccessRanges@32+0x282>
   141e2:	66 8b 95 da fe ff ff 	mov    0xfffffeda(%ebp),%dx
   141e9:	66 39 95 e8 fe ff ff 	cmp    %dx,0xfffffee8(%ebp)
   141f0:	75 ad                	jne    1419f <_VideoPortGetAccessRanges@32+0x22f>
   141f2:	66 83 bd d8 fe ff ff 	cmpw   $0x0,0xfffffed8(%ebp)
   141f9:	00 
   141fa:	74 0f                	je     1420b <_VideoPortGetAccessRanges@32+0x29b>
   141fc:	8b 8d d8 fe ff ff    	mov    0xfffffed8(%ebp),%ecx
   14202:	66 39 8d ea fe ff ff 	cmp    %cx,0xfffffeea(%ebp)
   14209:	75 94                	jne    1419f <_VideoPortGetAccessRanges@32+0x22f>
   1420b:	ba 37 00 00 00       	mov    $0x37,%edx
   14210:	83 fe 08             	cmp    $0x8,%esi
   14213:	0f 84 b8 fe ff ff    	je     140d1 <_VideoPortGetAccessRanges@32+0x161>
   14219:	8d 85 e4 fe ff ff    	lea    0xfffffee4(%ebp),%eax
   1421f:	50                   	push   %eax
   14220:	53                   	push   %ebx
   14221:	8b b5 dc fe ff ff    	mov    0xfffffedc(%ebp),%esi
   14227:	8b 7e 30             	mov    0x30(%esi),%edi
   1422a:	57                   	push   %edi
   1422b:	8b 5e 2c             	mov    0x2c(%esi),%ebx
   1422e:	53                   	push   %ebx
   1422f:	6a 00                	push   $0x0
   14231:	6a 00                	push   $0x0
   14233:	6a 00                	push   $0x0
   14235:	6a 00                	push   $0x0
   14237:	ff 15 bc a1 01 00    	call   *0x1a1bc
   1423d:	89 c2                	mov    %eax,%edx
   1423f:	85 c0                	test   %eax,%eax
   14241:	0f 88 8a fe ff ff    	js     140d1 <_VideoPortGetAccessRanges@32+0x161>
   14247:	8b 95 e4 fe ff ff    	mov    0xfffffee4(%ebp),%edx
   1424d:	89 56 20             	mov    %edx,0x20(%esi)
   14250:	85 d2                	test   %edx,%edx
   14252:	0f 85 5a fd ff ff    	jne    13fb2 <_VideoPortGetAccessRanges@32+0x42>
   14258:	e9 6f fe ff ff       	jmp    140cc <_VideoPortGetAccessRanges@32+0x15c>
   1425d:	8d 76 00             	lea    0x0(%esi),%esi
   14260:	52                   	push   %edx
   14261:	68 0f 02 00 00       	push   $0x20f
   14266:	68 fe 65 01 00       	push   $0x165fe
   1426b:	68 09 66 01 00       	push   $0x16609
   14270:	ff 15 1c a2 01 00    	call   *0x1a21c
   14276:	c7 04 24 9e 66 01 00 	movl   $0x1669e,(%esp)
   1427d:	ff 15 1c a2 01 00    	call   *0x1a21c
   14283:	e9 44 fe ff ff       	jmp    140cc <_VideoPortGetAccessRanges@32+0x15c>
   14288:	50                   	push   %eax
   14289:	68 16 02 00 00       	push   $0x216
   1428e:	eb d6                	jmp    14266 <_VideoPortGetAccessRanges@32+0x2f6>
   14290:	83 ec 0c             	sub    $0xc,%esp
   14293:	8b 5e 34             	mov    0x34(%esi),%ebx
   14296:	8d 85 e8 fe ff ff    	lea    0xfffffee8(%ebp),%eax
   1429c:	68 00 01 00 00       	push   $0x100
   142a1:	50                   	push   %eax
   142a2:	53                   	push   %ebx
   142a3:	8b 46 30             	mov    0x30(%esi),%eax
   142a6:	50                   	push   %eax
   142a7:	6a 04                	push   $0x4
   142a9:	ff 15 d0 a1 01 00    	call   *0x1a1d0
   142af:	ba aa 05 00 00       	mov    $0x5aa,%edx
   142b4:	83 c4 0c             	add    $0xc,%esp
   142b7:	3d 00 01 00 00       	cmp    $0x100,%eax
   142bc:	0f 84 57 ff ff ff    	je     14219 <_VideoPortGetAccessRanges@32+0x2a9>
   142c2:	e9 0a fe ff ff       	jmp    140d1 <_VideoPortGetAccessRanges@32+0x161>
   142c7:	89 f6                	mov    %esi,%esi
   142c9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000142d0 <_VideoPortVerifyAccessRanges@12>:
   142d0:	55                   	push   %ebp
   142d1:	89 e5                	mov    %esp,%ebp
   142d3:	83 ec 0c             	sub    $0xc,%esp
   142d6:	68 48 02 00 00       	push   $0x248
   142db:	68 fe 65 01 00       	push   $0x165fe
   142e0:	68 09 66 01 00       	push   $0x16609
   142e5:	ff 15 1c a2 01 00    	call   *0x1a21c
   142eb:	c7 04 24 bc 66 01 00 	movl   $0x166bc,(%esp)
   142f2:	ff 15 1c a2 01 00    	call   *0x1a21c
   142f8:	31 c0                	xor    %eax,%eax
   142fa:	c9                   	leave  
   142fb:	c2 0c 00             	ret    $0xc
   142fe:	89 f6                	mov    %esi,%esi

00014300 <_VideoPortGetDeviceData@16>:
   14300:	55                   	push   %ebp
   14301:	89 e5                	mov    %esp,%ebp
   14303:	50                   	push   %eax
   14304:	50                   	push   %eax
   14305:	68 58 02 00 00       	push   $0x258
   1430a:	68 fe 65 01 00       	push   $0x165fe
   1430f:	68 e9 66 01 00       	push   $0x166e9
   14314:	68 5c 66 01 00       	push   $0x1665c
   14319:	ff 15 1c a2 01 00    	call   *0x1a21c
   1431f:	b8 78 00 00 00       	mov    $0x78,%eax
   14324:	c9                   	leave  
   14325:	c2 10 00             	ret    $0x10
   14328:	90                   	nop    
   14329:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014330 <_VideoPortAllocatePool@16>:
   14330:	55                   	push   %ebp
   14331:	89 e5                	mov    %esp,%ebp
   14333:	83 ec 0c             	sub    $0xc,%esp
   14336:	8b 45 14             	mov    0x14(%ebp),%eax
   14339:	50                   	push   %eax
   1433a:	8b 45 10             	mov    0x10(%ebp),%eax
   1433d:	50                   	push   %eax
   1433e:	8b 45 0c             	mov    0xc(%ebp),%eax
   14341:	50                   	push   %eax
   14342:	ff 15 24 a2 01 00    	call   *0x1a224
   14348:	c9                   	leave  
   14349:	c2 10 00             	ret    $0x10
   1434c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014350 <_VideoPortFreePool@8>:
   14350:	55                   	push   %ebp
   14351:	89 e5                	mov    %esp,%ebp
   14353:	83 ec 14             	sub    $0x14,%esp
   14356:	8b 45 0c             	mov    0xc(%ebp),%eax
   14359:	50                   	push   %eax
   1435a:	ff 15 28 a2 01 00    	call   *0x1a228
   14360:	c9                   	leave  
   14361:	c2 08 00             	ret    $0x8
   14364:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   1436a:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

00014370 <_VideoPortAllocateBuffer@12>:
   14370:	55                   	push   %ebp
   14371:	89 e5                	mov    %esp,%ebp
   14373:	83 ec 10             	sub    $0x10,%esp
   14376:	8b 45 0c             	mov    0xc(%ebp),%eax
   14379:	50                   	push   %eax
   1437a:	6a 01                	push   $0x1
   1437c:	ff 15 20 a2 01 00    	call   *0x1a220
   14382:	8b 55 10             	mov    0x10(%ebp),%edx
   14385:	83 f8 01             	cmp    $0x1,%eax
   14388:	89 02                	mov    %eax,(%edx)
   1438a:	19 c0                	sbb    %eax,%eax
   1438c:	5a                   	pop    %edx
   1438d:	83 e0 08             	and    $0x8,%eax
   14390:	59                   	pop    %ecx
   14391:	c9                   	leave  
   14392:	c2 0c 00             	ret    $0xc
   14395:	8d 74 26 00          	lea    0x0(%esi),%esi
   14399:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000143a0 <_VideoPortReleaseBuffer@8>:
   143a0:	55                   	push   %ebp
   143a1:	89 e5                	mov    %esp,%ebp
   143a3:	83 ec 14             	sub    $0x14,%esp
   143a6:	8b 45 0c             	mov    0xc(%ebp),%eax
   143a9:	50                   	push   %eax
   143aa:	ff 15 28 a2 01 00    	call   *0x1a228
   143b0:	c9                   	leave  
   143b1:	c2 08 00             	ret    $0x8
   143b4:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   143ba:	8d bf 00 00 00 00    	lea    0x0(%edi),%edi

000143c0 <_VideoPortLockBuffer@16>:
   143c0:	55                   	push   %ebp
   143c1:	89 e5                	mov    %esp,%ebp
   143c3:	83 ec 0c             	sub    $0xc,%esp
   143c6:	68 9e 02 00 00       	push   $0x29e
   143cb:	68 fe 65 01 00       	push   $0x165fe
   143d0:	68 09 66 01 00       	push   $0x16609
   143d5:	ff 15 1c a2 01 00    	call   *0x1a21c
   143db:	c7 04 24 00 67 01 00 	movl   $0x16700,(%esp)
   143e2:	ff 15 1c a2 01 00    	call   *0x1a21c
   143e8:	31 c0                	xor    %eax,%eax
   143ea:	c9                   	leave  
   143eb:	c2 10 00             	ret    $0x10
   143ee:	89 f6                	mov    %esi,%esi

000143f0 <_VideoPortUnlockBuffer@8>:
   143f0:	55                   	push   %ebp
   143f1:	89 e5                	mov    %esp,%ebp
   143f3:	83 ec 0c             	sub    $0xc,%esp
   143f6:	68 ab 02 00 00       	push   $0x2ab
   143fb:	68 fe 65 01 00       	push   $0x165fe
   14400:	68 09 66 01 00       	push   $0x16609
   14405:	ff 15 1c a2 01 00    	call   *0x1a21c
   1440b:	c7 04 24 28 67 01 00 	movl   $0x16728,(%esp)
   14412:	ff 15 1c a2 01 00    	call   *0x1a21c
   14418:	c9                   	leave  
   14419:	c2 08 00             	ret    $0x8
   1441c:	8d 74 26 00          	lea    0x0(%esi),%esi

00014420 <_VideoPortSetTrappedEmulatorPorts@12>:
   14420:	55                   	push   %ebp
   14421:	31 c0                	xor    %eax,%eax
   14423:	89 e5                	mov    %esp,%ebp
   14425:	5d                   	pop    %ebp
   14426:	c2 0c 00             	ret    $0xc
   14429:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014430 <_VideoPortGetBusData@24>:
   14430:	55                   	push   %ebp
   14431:	89 e5                	mov    %esp,%ebp
   14433:	57                   	push   %edi
   14434:	56                   	push   %esi
   14435:	53                   	push   %ebx
   14436:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   14439:	8b 45 08             	mov    0x8(%ebp),%eax
   1443c:	2d b4 00 00 00       	sub    $0xb4,%eax
   14441:	8b 7d 10             	mov    0x10(%ebp),%edi
   14444:	8b 75 14             	mov    0x14(%ebp),%esi
   14447:	8b 4d 18             	mov    0x18(%ebp),%ecx
   1444a:	8b 55 1c             	mov    0x1c(%ebp),%edx
   1444d:	85 db                	test   %ebx,%ebx
   1444f:	74 0f                	je     14460 <_VideoPortGetBusData@24+0x30>
   14451:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
   14455:	74 09                	je     14460 <_VideoPortGetBusData@24+0x30>
   14457:	8b 78 34             	mov    0x34(%eax),%edi
   1445a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   14460:	8b 40 30             	mov    0x30(%eax),%eax
   14463:	89 55 1c             	mov    %edx,0x1c(%ebp)
   14466:	89 4d 18             	mov    %ecx,0x18(%ebp)
   14469:	89 75 14             	mov    %esi,0x14(%ebp)
   1446c:	89 7d 10             	mov    %edi,0x10(%ebp)
   1446f:	89 45 0c             	mov    %eax,0xc(%ebp)
   14472:	89 5d 08             	mov    %ebx,0x8(%ebp)
   14475:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   14478:	5b                   	pop    %ebx
   14479:	5e                   	pop    %esi
   1447a:	5f                   	pop    %edi
   1447b:	5d                   	pop    %ebp
   1447c:	ff 25 d4 a1 01 00    	jmp    *0x1a1d4
   14482:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   14489:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014490 <_VideoPortSetBusData@24>:
   14490:	55                   	push   %ebp
   14491:	89 e5                	mov    %esp,%ebp
   14493:	57                   	push   %edi
   14494:	56                   	push   %esi
   14495:	53                   	push   %ebx
   14496:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   14499:	8b 45 08             	mov    0x8(%ebp),%eax
   1449c:	2d b4 00 00 00       	sub    $0xb4,%eax
   144a1:	8b 7d 10             	mov    0x10(%ebp),%edi
   144a4:	8b 75 14             	mov    0x14(%ebp),%esi
   144a7:	8b 4d 18             	mov    0x18(%ebp),%ecx
   144aa:	8b 55 1c             	mov    0x1c(%ebp),%edx
   144ad:	85 db                	test   %ebx,%ebx
   144af:	74 0f                	je     144c0 <_VideoPortSetBusData@24+0x30>
   144b1:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
   144b5:	74 09                	je     144c0 <_VideoPortSetBusData@24+0x30>
   144b7:	8b 78 34             	mov    0x34(%eax),%edi
   144ba:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   144c0:	8b 40 30             	mov    0x30(%eax),%eax
   144c3:	89 55 1c             	mov    %edx,0x1c(%ebp)
   144c6:	89 4d 18             	mov    %ecx,0x18(%ebp)
   144c9:	89 75 14             	mov    %esi,0x14(%ebp)
   144cc:	89 7d 10             	mov    %edi,0x10(%ebp)
   144cf:	89 45 0c             	mov    %eax,0xc(%ebp)
   144d2:	89 5d 08             	mov    %ebx,0x8(%ebp)
   144d5:	8d 65 f4             	lea    0xfffffff4(%ebp),%esp
   144d8:	5b                   	pop    %ebx
   144d9:	5e                   	pop    %esi
   144da:	5f                   	pop    %edi
   144db:	5d                   	pop    %ebp
   144dc:	ff 25 e0 a1 01 00    	jmp    *0x1a1e0
   144e2:	90                   	nop    
   144e3:	90                   	nop    
   144e4:	90                   	nop    
   144e5:	90                   	nop    
   144e6:	90                   	nop    
   144e7:	90                   	nop    
   144e8:	90                   	nop    
   144e9:	90                   	nop    
   144ea:	90                   	nop    
   144eb:	90                   	nop    
   144ec:	90                   	nop    
   144ed:	90                   	nop    
   144ee:	90                   	nop    
   144ef:	90                   	nop    

000144f0 <_IntInterfaceReference@4>:
   144f0:	55                   	push   %ebp
   144f1:	89 e5                	mov    %esp,%ebp
   144f3:	5d                   	pop    %ebp
   144f4:	c2 04 00             	ret    $0x4
   144f7:	89 f6                	mov    %esi,%esi
   144f9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014500 <_IntInterfaceDereference@4>:
   14500:	55                   	push   %ebp
   14501:	89 e5                	mov    %esp,%ebp
   14503:	5d                   	pop    %ebp
   14504:	c2 04 00             	ret    $0x4
   14507:	89 f6                	mov    %esi,%esi
   14509:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014510 <_VideoPortQueryServices@12>:
   14510:	55                   	push   %ebp
   14511:	89 e5                	mov    %esp,%ebp
   14513:	53                   	push   %ebx
   14514:	50                   	push   %eax
   14515:	8b 5d 0c             	mov    0xc(%ebp),%ebx
   14518:	8b 45 10             	mov    0x10(%ebp),%eax
   1451b:	83 fb 03             	cmp    $0x3,%ebx
   1451e:	77 20                	ja     14540 <_VideoPortQueryServices@12+0x30>
   14520:	83 fb 02             	cmp    $0x2,%ebx
   14523:	0f 83 98 00 00 00    	jae    145c1 <_VideoPortQueryServices@12+0xb1>
   14529:	4b                   	dec    %ebx
   1452a:	74 64                	je     14590 <_VideoPortQueryServices@12+0x80>
   1452c:	ba 01 00 00 00       	mov    $0x1,%edx
   14531:	89 d0                	mov    %edx,%eax
   14533:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   14536:	c9                   	leave  
   14537:	c2 0c 00             	ret    $0xc
   1453a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi
   14540:	83 fb 04             	cmp    $0x4,%ebx
   14543:	75 e7                	jne    1452c <_VideoPortQueryServices@12+0x1c>
   14545:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
   1454a:	75 06                	jne    14552 <_VideoPortQueryServices@12+0x42>
   1454c:	66 83 38 23          	cmpw   $0x23,(%eax)
   14550:	76 da                	jbe    1452c <_VideoPortQueryServices@12+0x1c>
   14552:	c7 40 08 f0 44 01 00 	movl   $0x144f0,0x8(%eax)
   14559:	c7 40 0c 00 45 01 00 	movl   $0x14500,0xc(%eax)
   14560:	c7 40 10 50 26 01 00 	movl   $0x12650,0x10(%eax)
   14567:	c7 40 14 f0 26 01 00 	movl   $0x126f0,0x14(%eax)
   1456e:	c7 40 18 50 27 01 00 	movl   $0x12750,0x18(%eax)
   14575:	c7 40 1c a0 27 01 00 	movl   $0x127a0,0x1c(%eax)
   1457c:	c7 40 20 f0 27 01 00 	movl   $0x127f0,0x20(%eax)
   14583:	31 d2                	xor    %edx,%edx
   14585:	89 d0                	mov    %edx,%eax
   14587:	8b 5d fc             	mov    0xfffffffc(%ebp),%ebx
   1458a:	c9                   	leave  
   1458b:	c2 0c 00             	ret    $0xc
   1458e:	89 f6                	mov    %esi,%esi
   14590:	66 8b 50 02          	mov    0x2(%eax),%dx
   14594:	66 83 fa 02          	cmp    $0x2,%dx
   14598:	74 61                	je     145fb <_VideoPortQueryServices@12+0xeb>
   1459a:	66 4a                	dec    %dx
   1459c:	75 8e                	jne    1452c <_VideoPortQueryServices@12+0x1c>
   1459e:	66 83 38 37          	cmpw   $0x37,(%eax)
   145a2:	76 88                	jbe    1452c <_VideoPortQueryServices@12+0x1c>
   145a4:	53                   	push   %ebx
   145a5:	53                   	push   %ebx
   145a6:	50                   	push   %eax
   145a7:	8b 4d 08             	mov    0x8(%ebp),%ecx
   145aa:	51                   	push   %ecx
   145ab:	e8 f0 d2 ff ff       	call   118a0 <_IntAgpGetInterface@8>
   145b0:	5b                   	pop    %ebx
   145b1:	5a                   	pop    %edx
   145b2:	31 d2                	xor    %edx,%edx
   145b4:	85 c0                	test   %eax,%eax
   145b6:	0f 89 75 ff ff ff    	jns    14531 <_VideoPortQueryServices@12+0x21>
   145bc:	e9 6b ff ff ff       	jmp    1452c <_VideoPortQueryServices@12+0x1c>
   145c1:	51                   	push   %ecx
   145c2:	6a 51                	push   $0x51
   145c4:	68 50 67 01 00       	push   $0x16750
   145c9:	68 5b 67 01 00       	push   $0x1675b
   145ce:	ff 15 1c a2 01 00    	call   *0x1a21c
   145d4:	58                   	pop    %eax
   145d5:	83 fb 02             	cmp    $0x2,%ebx
   145d8:	5a                   	pop    %edx
   145d9:	b8 64 67 01 00       	mov    $0x16764,%eax
   145de:	74 05                	je     145e5 <_VideoPortQueryServices@12+0xd5>
   145e0:	b8 68 67 01 00       	mov    $0x16768,%eax
   145e5:	50                   	push   %eax
   145e6:	68 74 67 01 00       	push   $0x16774
   145eb:	ff 15 1c a2 01 00    	call   *0x1a21c
   145f1:	ba 78 00 00 00       	mov    $0x78,%edx
   145f6:	e9 36 ff ff ff       	jmp    14531 <_VideoPortQueryServices@12+0x21>
   145fb:	66 83 38 3f          	cmpw   $0x3f,(%eax)
   145ff:	eb a1                	jmp    145a2 <_VideoPortQueryServices@12+0x92>
   14601:	eb 0d                	jmp    14610 <_VideoPortGetAgpServices@8>
   14603:	90                   	nop    
   14604:	90                   	nop    
   14605:	90                   	nop    
   14606:	90                   	nop    
   14607:	90                   	nop    
   14608:	90                   	nop    
   14609:	90                   	nop    
   1460a:	90                   	nop    
   1460b:	90                   	nop    
   1460c:	90                   	nop    
   1460d:	90                   	nop    
   1460e:	90                   	nop    
   1460f:	90                   	nop    

00014610 <_VideoPortGetAgpServices@8>:
   14610:	55                   	push   %ebp
   14611:	89 e5                	mov    %esp,%ebp
   14613:	83 ec 4c             	sub    $0x4c,%esp
   14616:	8d 45 b8             	lea    0xffffffb8(%ebp),%eax
   14619:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1461c:	50                   	push   %eax
   1461d:	66 c7 45 b8 38 00    	movw   $0x38,0xffffffb8(%ebp)
   14623:	6a 01                	push   $0x1
   14625:	66 c7 45 ba 01 00    	movw   $0x1,0xffffffba(%ebp)
   1462b:	51                   	push   %ecx
   1462c:	e8 df fe ff ff       	call   14510 <_VideoPortQueryServices@12>
   14631:	5a                   	pop    %edx
   14632:	31 d2                	xor    %edx,%edx
   14634:	85 c0                	test   %eax,%eax
   14636:	75 0d                	jne    14645 <_VideoPortGetAgpServices@8+0x35>
   14638:	8b 45 0c             	mov    0xc(%ebp),%eax
   1463b:	8b 55 c8             	mov    0xffffffc8(%ebp),%edx
   1463e:	89 10                	mov    %edx,(%eax)
   14640:	ba 01 00 00 00       	mov    $0x1,%edx
   14645:	89 d0                	mov    %edx,%eax
   14647:	c9                   	leave  
   14648:	c2 08 00             	ret    $0x8
   1464b:	90                   	nop    
   1464c:	90                   	nop    
   1464d:	90                   	nop    
   1464e:	90                   	nop    
   1464f:	90                   	nop    

00014650 <_VideoPortCreateSpinLock@8>:
   14650:	55                   	push   %ebp
   14651:	89 e5                	mov    %esp,%ebp
   14653:	83 ec 10             	sub    $0x10,%esp
   14656:	6a 04                	push   $0x4
   14658:	6a 00                	push   $0x0
   1465a:	ff 15 20 a2 01 00    	call   *0x1a220
   14660:	89 c2                	mov    %eax,%edx
   14662:	8b 45 0c             	mov    0xc(%ebp),%eax
   14665:	85 d2                	test   %edx,%edx
   14667:	89 10                	mov    %edx,(%eax)
   14669:	58                   	pop    %eax
   1466a:	b8 08 00 00 00       	mov    $0x8,%eax
   1466f:	59                   	pop    %ecx
   14670:	74 0c                	je     1467e <_VideoPortCreateSpinLock@8+0x2e>
   14672:	83 ec 0c             	sub    $0xc,%esp
   14675:	52                   	push   %edx
   14676:	ff 15 8c a2 01 00    	call   *0x1a28c
   1467c:	31 c0                	xor    %eax,%eax
   1467e:	c9                   	leave  
   1467f:	c2 08 00             	ret    $0x8
   14682:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   14689:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014690 <_VideoPortDeleteSpinLock@8>:
   14690:	55                   	push   %ebp
   14691:	89 e5                	mov    %esp,%ebp
   14693:	83 ec 14             	sub    $0x14,%esp
   14696:	8b 45 0c             	mov    0xc(%ebp),%eax
   14699:	50                   	push   %eax
   1469a:	ff 15 28 a2 01 00    	call   *0x1a228
   146a0:	31 c0                	xor    %eax,%eax
   146a2:	c9                   	leave  
   146a3:	c2 08 00             	ret    $0x8
   146a6:	8d 76 00             	lea    0x0(%esi),%esi
   146a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000146b0 <_VideoPortAcquireSpinLock@12>:
   146b0:	55                   	push   %ebp
   146b1:	89 e5                	mov    %esp,%ebp
   146b3:	83 ec 10             	sub    $0x10,%esp
   146b6:	8b 45 10             	mov    0x10(%ebp),%eax
   146b9:	50                   	push   %eax
   146ba:	8b 45 0c             	mov    0xc(%ebp),%eax
   146bd:	50                   	push   %eax
   146be:	ff 15 e8 a1 01 00    	call   *0x1a1e8
   146c4:	c9                   	leave  
   146c5:	c2 0c 00             	ret    $0xc
   146c8:	90                   	nop    
   146c9:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

000146d0 <_VideoPortAcquireSpinLockAtDpcLevel@8>:
   146d0:	55                   	push   %ebp
   146d1:	89 e5                	mov    %esp,%ebp
   146d3:	50                   	push   %eax
   146d4:	50                   	push   %eax
   146d5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   146d8:	ff 15 10 a2 01 00    	call   *0x1a210
   146de:	c9                   	leave  
   146df:	c2 08 00             	ret    $0x8
   146e2:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi
   146e9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000146f0 <_VideoPortReleaseSpinLock@12>:
   146f0:	55                   	push   %ebp
   146f1:	31 c0                	xor    %eax,%eax
   146f3:	89 e5                	mov    %esp,%ebp
   146f5:	83 ec 10             	sub    $0x10,%esp
   146f8:	8a 45 10             	mov    0x10(%ebp),%al
   146fb:	50                   	push   %eax
   146fc:	8b 45 0c             	mov    0xc(%ebp),%eax
   146ff:	50                   	push   %eax
   14700:	ff 15 f4 a1 01 00    	call   *0x1a1f4
   14706:	c9                   	leave  
   14707:	c2 0c 00             	ret    $0xc
   1470a:	8d b6 00 00 00 00    	lea    0x0(%esi),%esi

00014710 <_VideoPortReleaseSpinLockFromDpcLevel@8>:
   14710:	55                   	push   %ebp
   14711:	89 e5                	mov    %esp,%ebp
   14713:	50                   	push   %eax
   14714:	50                   	push   %eax
   14715:	8b 4d 0c             	mov    0xc(%ebp),%ecx
   14718:	ff 15 14 a2 01 00    	call   *0x1a214
   1471e:	c9                   	leave  
   1471f:	c2 08 00             	ret    $0x8
   14722:	90                   	nop    
   14723:	90                   	nop    
   14724:	90                   	nop    
   14725:	90                   	nop    
   14726:	90                   	nop    
   14727:	90                   	nop    
   14728:	90                   	nop    
   14729:	90                   	nop    
   1472a:	90                   	nop    
   1472b:	90                   	nop    
   1472c:	90                   	nop    
   1472d:	90                   	nop    
   1472e:	90                   	nop    
   1472f:	90                   	nop    

00014730 <_IntVideoPortTimerRoutine@8>:
   14730:	55                   	push   %ebp
   14731:	89 e5                	mov    %esp,%ebp
   14733:	83 ec 14             	sub    $0x14,%esp
   14736:	8b 45 0c             	mov    0xc(%ebp),%eax
   14739:	8b 50 60             	mov    0x60(%eax),%edx
   1473c:	05 b4 00 00 00       	add    $0xb4,%eax
   14741:	50                   	push   %eax
   14742:	ff 52 24             	call   *0x24(%edx)
   14745:	c9                   	leave  
   14746:	c2 08 00             	ret    $0x8
   14749:	8d b4 26 00 00 00 00 	lea    0x0(%esi),%esi

00014750 <_IntVideoPortSetupTimer@8>:
   14750:	55                   	push   %ebp
   14751:	89 e5                	mov    %esp,%ebp
   14753:	50                   	push   %eax
   14754:	50                   	push   %eax
   14755:	8b 45 0c             	mov    0xc(%ebp),%eax
   14758:	8b 4d 08             	mov    0x8(%ebp),%ecx
   1475b:	8b 40 24             	mov    0x24(%eax),%eax
   1475e:	8b 51 28             	mov    0x28(%ecx),%edx
   14761:	85 c0                	test   %eax,%eax
   14763:	75 0b                	jne    14770 <_IntVideoPortSetupTimer@8+0x20>
   14765:	ba 01 00 00 00       	mov    $0x1,%edx
   1476a:	89 d0                	mov    %edx,%eax
   1476c:	c9                   	leave  
   1476d:	c2 08 00             	ret    $0x8
   14770:	50                   	push   %eax
   14771:	52                   	push   %edx
   14772:	68 30 47 01 00       	push   $0x14730
   14777:	51                   	push   %ecx
   14778:	ff 15 5c a2 01 00    	call   *0x1a25c
   1477e:	5a                   	pop    %edx
   1477f:	31 d2                	xor    %edx,%edx
   14781:	85 c0                	test   %eax,%eax
   14783:	79 e0                	jns    14765 <_IntVideoPortSetupTimer@8+0x15>
   14785:	eb e3                	jmp    1476a <_IntVideoPortSetupTimer@8+0x1a>
   14787:	89 f6                	mov    %esi,%esi
   14789:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

00014790 <_VideoPortStartTimer@4>:
   14790:	55                   	push   %ebp
   14791:	89 e5                	mov    %esp,%ebp
   14793:	8b 45 08             	mov    0x8(%ebp),%eax
   14796:	8b 80 54 ff ff ff    	mov    0xffffff54(%eax),%eax
   1479c:	89 45 08             	mov    %eax,0x8(%ebp)
   1479f:	c9                   	leave  
   147a0:	ff 25 60 a2 01 00    	jmp    *0x1a260
   147a6:	8d 76 00             	lea    0x0(%esi),%esi
   147a9:	8d bc 27 00 00 00 00 	lea    0x0(%edi),%edi

000147b0 <_VideoPortStopTimer@4>:
   147b0:	55                   	push   %ebp
   147b1:	89 e5                	mov    %esp,%ebp
   147b3:	8b 45 08             	mov    0x8(%ebp),%eax
   147b6:	8b 80 54 ff ff ff    	mov    0xffffff54(%eax),%eax
   147bc:	89 45 08             	mov    %eax,0x8(%ebp)
   147bf:	c9                   	leave  
   147c0:	ff 25 64 a2 01 00    	jmp    *0x1a264
   147c6:	90                   	nop    
   147c7:	90                   	nop    
   147c8:	90                   	nop    
   147c9:	90                   	nop    
   147ca:	90                   	nop    
   147cb:	90                   	nop    
   147cc:	90                   	nop    
   147cd:	90                   	nop    
   147ce:	90                   	nop    
   147cf:	90                   	nop    

000147d0 <_DbgPrint>:
   147d0:	ff 25 1c a2 01 00    	jmp    *0x1a21c
   147d6:	90                   	nop    
   147d7:	90                   	nop    
	...

000147e0 <_ExFreePool@4>:
   147e0:	ff 25 28 a2 01 00    	jmp    *0x1a228
   147e6:	90                   	nop    
   147e7:	90                   	nop    
	...

000147f0 <_ExAllocatePoolWithTag@12>:
   147f0:	ff 25 24 a2 01 00    	jmp    *0x1a224
   147f6:	90                   	nop    
   147f7:	90                   	nop    
	...

00014800 <_ZwFreeVirtualMemory@16>:
   14800:	ff 25 d8 a2 01 00    	jmp    *0x1a2d8
   14806:	90                   	nop    
   14807:	90                   	nop    
	...

00014810 <_ZwAllocateVirtualMemory@24>:
   14810:	ff 25 d0 a2 01 00    	jmp    *0x1a2d0
   14816:	90                   	nop    
   14817:	90                   	nop    
	...

00014820 <_ZwUnmapViewOfSection@8>:
   14820:	ff 25 f0 a2 01 00    	jmp    *0x1a2f0
   14826:	90                   	nop    
   14827:	90                   	nop    
	...

00014830 <_IoGetAttachedDeviceReference@4>:
   14830:	ff 25 4c a2 01 00    	jmp    *0x1a24c
   14836:	90                   	nop    
   14837:	90                   	nop    
	...

00014840 <_KeInitializeEvent@12>:
   14840:	ff 25 84 a2 01 00    	jmp    *0x1a284
   14846:	90                   	nop    
   14847:	90                   	nop    
	...

00014850 <_IoBuildSynchronousFsdRequest@28>:
   14850:	ff 25 34 a2 01 00    	jmp    *0x1a234
   14856:	90                   	nop    
   14857:	90                   	nop    
	...

00014860 <@IofCallDriver@8>:
   14860:	ff 25 08 a2 01 00    	jmp    *0x1a208
   14866:	90                   	nop    
   14867:	90                   	nop    
	...

00014870 <@ObfDereferenceObject@4>:
   14870:	ff 25 18 a2 01 00    	jmp    *0x1a218
   14876:	90                   	nop    
   14877:	90                   	nop    
	...

00014880 <_KeWaitForSingleObject@20>:
   14880:	ff 25 a4 a2 01 00    	jmp    *0x1a2a4
   14886:	90                   	nop    
   14887:	90                   	nop    
	...

00014890 <_memmove>:
   14890:	ff 25 fc a2 01 00    	jmp    *0x1a2fc
   14896:	90                   	nop    
   14897:	90                   	nop    
	...

000148a0 <_KeDelayExecutionThread@12>:
   148a0:	ff 25 74 a2 01 00    	jmp    *0x1a274
   148a6:	90                   	nop    
   148a7:	90                   	nop    
	...

000148b0 <_RtlAssert@16>:
   148b0:	ff 25 b0 a2 01 00    	jmp    *0x1a2b0
   148b6:	90                   	nop    
   148b7:	90                   	nop    
	...

000148c0 <_memset>:
   148c0:	ff 25 00 a3 01 00    	jmp    *0x1a300
   148c6:	90                   	nop    
   148c7:	90                   	nop    
	...

000148d0 <_IoGetDriverObjectExtension@8>:
   148d0:	ff 25 58 a2 01 00    	jmp    *0x1a258
   148d6:	90                   	nop    
   148d7:	90                   	nop    
	...

000148e0 <_IoGetCurrentProcess@0>:
   148e0:	ff 25 50 a2 01 00    	jmp    *0x1a250
   148e6:	90                   	nop    
   148e7:	90                   	nop    
	...

000148f0 <@IofCompleteRequest@8>:
   148f0:	ff 25 0c a2 01 00    	jmp    *0x1a20c
   148f6:	90                   	nop    
   148f7:	90                   	nop    
	...

00014900 <@InterlockedIncrement@4>:
   14900:	ff 25 04 a2 01 00    	jmp    *0x1a204
   14906:	90                   	nop    
   14907:	90                   	nop    
	...

00014910 <@InterlockedDecrement@4>:
   14910:	ff 25 00 a2 01 00    	jmp    *0x1a200
   14916:	90                   	nop    
   14917:	90                   	nop    
	...

00014920 <_ExAllocatePool@8>:
   14920:	ff 25 20 a2 01 00    	jmp    *0x1a220
   14926:	90                   	nop    
   14927:	90                   	nop    
	...

00014930 <_KeSetEvent@12>:
   14930:	ff 25 98 a2 01 00    	jmp    *0x1a298
   14936:	90                   	nop    
   14937:	90                   	nop    
	...

00014940 <_RtlFreeUnicodeString@4>:
   14940:	ff 25 b8 a2 01 00    	jmp    *0x1a2b8
   14946:	90                   	nop    
   14947:	90                   	nop    
	...

00014950 <_memcpy>:
   14950:	ff 25 f8 a2 01 00    	jmp    *0x1a2f8
   14956:	90                   	nop    
   14957:	90                   	nop    
	...

00014960 <_KeClearEvent@4>:
   14960:	ff 25 70 a2 01 00    	jmp    *0x1a270
   14966:	90                   	nop    
   14967:	90                   	nop    
	...

00014970 <_Ke386CallBios@8>:
   14970:	ff 25 68 a2 01 00    	jmp    *0x1a268
   14976:	90                   	nop    
   14977:	90                   	nop    
	...

00014980 <_KeInitializeSpinLock@4>:
   14980:	ff 25 8c a2 01 00    	jmp    *0x1a28c
   14986:	90                   	nop    
   14987:	90                   	nop    
	...

00014990 <_IoConnectInterrupt@44>:
   14990:	ff 25 38 a2 01 00    	jmp    *0x1a238
   14996:	90                   	nop    
   14997:	90                   	nop    
	...

000149a0 <_RtlImageNtHeader@4>:
   149a0:	ff 25 c0 a2 01 00    	jmp    *0x1a2c0
   149a6:	90                   	nop    
   149a7:	90                   	nop    
	...

000149b0 <_RtlInitUnicodeString@8>:
   149b0:	ff 25 c4 a2 01 00    	jmp    *0x1a2c4
   149b6:	90                   	nop    
   149b7:	90                   	nop    
	...

000149c0 <_ZwSetSystemInformation@12>:
   149c0:	ff 25 ec a2 01 00    	jmp    *0x1a2ec
   149c6:	90                   	nop    
   149c7:	90                   	nop    
	...

000149d0 <_ZwOpenSymbolicLinkObject@12>:
   149d0:	ff 25 e4 a2 01 00    	jmp    *0x1a2e4
   149d6:	90                   	nop    
   149d7:	90                   	nop    
	...

000149e0 <_ZwClose@4>:
   149e0:	ff 25 d4 a2 01 00    	jmp    *0x1a2d4
   149e6:	90                   	nop    
   149e7:	90                   	nop    
	...

000149f0 <_IoCreateDevice@28>:
   149f0:	ff 25 3c a2 01 00    	jmp    *0x1a23c
   149f6:	90                   	nop    
   149f7:	90                   	nop    
	...

00014a00 <_IoGetDeviceProperty@20>:
   14a00:	ff 25 54 a2 01 00    	jmp    *0x1a254
   14a06:	90                   	nop    
   14a07:	90                   	nop    
	...

00014a10 <_KeInitializeDpc@12>:
   14a10:	ff 25 80 a2 01 00    	jmp    *0x1a280
   14a16:	90                   	nop    
   14a17:	90                   	nop    
	...

00014a20 <_KeInitializeMutex@8>:
   14a20:	ff 25 88 a2 01 00    	jmp    *0x1a288
   14a26:	90                   	nop    
   14a27:	90                   	nop    
	...

00014a30 <_IoAttachDeviceToDeviceStack@8>:
   14a30:	ff 25 30 a2 01 00    	jmp    *0x1a230
   14a36:	90                   	nop    
   14a37:	90                   	nop    
	...

00014a40 <_ZwQuerySystemInformation@16>:
   14a40:	ff 25 e8 a2 01 00    	jmp    *0x1a2e8
   14a46:	90                   	nop    
   14a47:	90                   	nop    
	...

00014a50 <_IoCreateSymbolicLink@8>:
   14a50:	ff 25 40 a2 01 00    	jmp    *0x1a240
   14a56:	90                   	nop    
   14a57:	90                   	nop    
	...

00014a60 <_RtlWriteRegistryValue@24>:
   14a60:	ff 25 cc a2 01 00    	jmp    *0x1a2cc
   14a66:	90                   	nop    
   14a67:	90                   	nop    
	...

00014a70 <_IoDeleteDevice@4>:
   14a70:	ff 25 44 a2 01 00    	jmp    *0x1a244
   14a76:	90                   	nop    
   14a77:	90                   	nop    
	...

00014a80 <_IoDisconnectInterrupt@4>:
   14a80:	ff 25 48 a2 01 00    	jmp    *0x1a248
   14a86:	90                   	nop    
   14a87:	90                   	nop    
	...

00014a90 <_KeGetCurrentThread@0>:
   14a90:	ff 25 7c a2 01 00    	jmp    *0x1a27c
   14a96:	90                   	nop    
   14a97:	90                   	nop    
	...

00014aa0 <_KeDetachProcess@0>:
   14aa0:	ff 25 78 a2 01 00    	jmp    *0x1a278
   14aa6:	90                   	nop    
   14aa7:	90                   	nop    
	...

00014ab0 <_KeAttachProcess@4>:
   14ab0:	ff 25 6c a2 01 00    	jmp    *0x1a26c
   14ab6:	90                   	nop    
   14ab7:	90                   	nop    
	...

00014ac0 <_IoAllocateDriverObjectExtension@16>:
   14ac0:	ff 25 2c a2 01 00    	jmp    *0x1a22c
   14ac6:	90                   	nop    
   14ac7:	90                   	nop    
	...

00014ad0 <_RtlQueryRegistryValues@20>:
   14ad0:	ff 25 c8 a2 01 00    	jmp    *0x1a2c8
   14ad6:	90                   	nop    
   14ad7:	90                   	nop    
	...

00014ae0 <_RtlCompareMemory@12>:
   14ae0:	ff 25 b4 a2 01 00    	jmp    *0x1a2b4
   14ae6:	90                   	nop    
   14ae7:	90                   	nop    
	...

00014af0 <_KeSynchronizeExecution@12>:
   14af0:	ff 25 9c a2 01 00    	jmp    *0x1a29c
   14af6:	90                   	nop    
   14af7:	90                   	nop    
	...

00014b00 <_KeInsertQueueDpc@12>:
   14b00:	ff 25 90 a2 01 00    	jmp    *0x1a290
   14b06:	90                   	nop    
   14b07:	90                   	nop    
	...

00014b10 <_RtlGetVersion@4>:
   14b10:	ff 25 bc a2 01 00    	jmp    *0x1a2bc
   14b16:	90                   	nop    
   14b17:	90                   	nop    
	...

00014b20 <_KeWaitForMutexObject@20>:
   14b20:	ff 25 a0 a2 01 00    	jmp    *0x1a2a0
   14b26:	90                   	nop    
   14b27:	90                   	nop    
	...

00014b30 <_KeReleaseMutex@8>:
   14b30:	ff 25 94 a2 01 00    	jmp    *0x1a294
   14b36:	90                   	nop    
   14b37:	90                   	nop    
	...

00014b40 <_vsprintf>:
   14b40:	ff 25 0c a3 01 00    	jmp    *0x1a30c
   14b46:	90                   	nop    
   14b47:	90                   	nop    
	...

00014b50 <_swprintf>:
   14b50:	ff 25 08 a3 01 00    	jmp    *0x1a308
   14b56:	90                   	nop    
   14b57:	90                   	nop    
	...

00014b60 <_strlen>:
   14b60:	ff 25 04 a3 01 00    	jmp    *0x1a304
   14b66:	90                   	nop    
   14b67:	90                   	nop    
	...

00014b70 <__strnicmp>:
   14b70:	ff 25 f4 a2 01 00    	jmp    *0x1a2f4
   14b76:	90                   	nop    
   14b77:	90                   	nop    
	...

00014b80 <_ZwOpenSection@12>:
   14b80:	ff 25 e0 a2 01 00    	jmp    *0x1a2e0
   14b86:	90                   	nop    
   14b87:	90                   	nop    
	...

00014b90 <_ZwMapViewOfSection@40>:
   14b90:	ff 25 dc a2 01 00    	jmp    *0x1a2dc
   14b96:	90                   	nop    
   14b97:	90                   	nop    
	...

00014ba0 <_MmMapIoSpace@16>:
   14ba0:	ff 25 a8 a2 01 00    	jmp    *0x1a2a8
   14ba6:	90                   	nop    
   14ba7:	90                   	nop    
	...

00014bb0 <_MmUnmapIoSpace@8>:
   14bb0:	ff 25 ac a2 01 00    	jmp    *0x1a2ac
   14bb6:	90                   	nop    
   14bb7:	90                   	nop    
	...

00014bc0 <@KefAcquireSpinLockAtDpcLevel@4>:
   14bc0:	ff 25 10 a2 01 00    	jmp    *0x1a210
   14bc6:	90                   	nop    
   14bc7:	90                   	nop    
	...

00014bd0 <@KefReleaseSpinLockFromDpcLevel@4>:
   14bd0:	ff 25 14 a2 01 00    	jmp    *0x1a214
   14bd6:	90                   	nop    
   14bd7:	90                   	nop    
	...

00014be0 <_IoInitializeTimer@12>:
   14be0:	ff 25 5c a2 01 00    	jmp    *0x1a25c
   14be6:	90                   	nop    
   14be7:	90                   	nop    
	...

00014bf0 <_IoStartTimer@4>:
   14bf0:	ff 25 60 a2 01 00    	jmp    *0x1a260
   14bf6:	90                   	nop    
   14bf7:	90                   	nop    
	...

00014c00 <_IoStopTimer@4>:
   14c00:	ff 25 64 a2 01 00    	jmp    *0x1a264
   14c06:	90                   	nop    
   14c07:	90                   	nop    
	...

00014c10 <_KeGetCurrentIrql@0>:
   14c10:	ff 25 ec a1 01 00    	jmp    *0x1a1ec
   14c16:	90                   	nop    
   14c17:	90                   	nop    
	...

00014c20 <_HalAcquireDisplayOwnership@4>:
   14c20:	ff 25 b4 a1 01 00    	jmp    *0x1a1b4
   14c26:	90                   	nop    
   14c27:	90                   	nop    
	...

00014c30 <_HalReleaseDisplayOwnership@0>:
   14c30:	ff 25 dc a1 01 00    	jmp    *0x1a1dc
   14c36:	90                   	nop    
   14c37:	90                   	nop    
	...

00014c40 <_HalAllocateCommonBuffer@16>:
   14c40:	ff 25 b8 a1 01 00    	jmp    *0x1a1b8
   14c46:	90                   	nop    
   14c47:	90                   	nop    
	...

00014c50 <_HalFreeCommonBuffer@24>:
   14c50:	ff 25 c8 a1 01 00    	jmp    *0x1a1c8
   14c56:	90                   	nop    
   14c57:	90                   	nop    
	...

00014c60 <_HalGetAdapter@8>:
   14c60:	ff 25 cc a1 01 00    	jmp    *0x1a1cc
   14c66:	90                   	nop    
   14c67:	90                   	nop    
	...

00014c70 <_HalGetInterruptVector@24>:
   14c70:	ff 25 d8 a1 01 00    	jmp    *0x1a1d8
   14c76:	90                   	nop    
   14c77:	90                   	nop    
	...

00014c80 <_HalEnableSystemInterrupt@12>:
   14c80:	ff 25 c4 a1 01 00    	jmp    *0x1a1c4
   14c86:	90                   	nop    
   14c87:	90                   	nop    
	...

00014c90 <_HalDisableSystemInterrupt@8>:
   14c90:	ff 25 c0 a1 01 00    	jmp    *0x1a1c0
   14c96:	90                   	nop    
   14c97:	90                   	nop    
	...

00014ca0 <@KfLowerIrql@4>:
   14ca0:	ff 25 ac a1 01 00    	jmp    *0x1a1ac
   14ca6:	90                   	nop    
   14ca7:	90                   	nop    
	...

00014cb0 <@KfRaiseIrql@4>:
   14cb0:	ff 25 b0 a1 01 00    	jmp    *0x1a1b0
   14cb6:	90                   	nop    
   14cb7:	90                   	nop    
	...

00014cc0 <_KeQueryPerformanceCounter@4>:
   14cc0:	ff 25 f0 a1 01 00    	jmp    *0x1a1f0
   14cc6:	90                   	nop    
   14cc7:	90                   	nop    
	...

00014cd0 <_HalTranslateBusAddress@24>:
   14cd0:	ff 25 e4 a1 01 00    	jmp    *0x1a1e4
   14cd6:	90                   	nop    
   14cd7:	90                   	nop    
	...

00014ce0 <_HalGetBusData@20>:
   14ce0:	ff 25 d0 a1 01 00    	jmp    *0x1a1d0
   14ce6:	90                   	nop    
   14ce7:	90                   	nop    
	...

00014cf0 <_HalAssignSlotResources@32>:
   14cf0:	ff 25 bc a1 01 00    	jmp    *0x1a1bc
   14cf6:	90                   	nop    
   14cf7:	90                   	nop    
	...

00014d00 <_HalGetBusDataByOffset@24>:
   14d00:	ff 25 d4 a1 01 00    	jmp    *0x1a1d4
   14d06:	90                   	nop    
   14d07:	90                   	nop    
	...

00014d10 <_HalSetBusDataByOffset@24>:
   14d10:	ff 25 e0 a1 01 00    	jmp    *0x1a1e0
   14d16:	90                   	nop    
   14d17:	90                   	nop    
	...

00014d20 <_KeAcquireSpinLock@8>:
   14d20:	ff 25 e8 a1 01 00    	jmp    *0x1a1e8
   14d26:	90                   	nop    
   14d27:	90                   	nop    
	...

00014d30 <_KeReleaseSpinLock@8>:
   14d30:	ff 25 f4 a1 01 00    	jmp    *0x1a1f4
   14d36:	90                   	nop    
   14d37:	90                   	nop    
	...

00014d40 <__CTOR_LIST__>:
   14d40:	ff                   	(bad)  
   14d41:	ff                   	(bad)  
   14d42:	ff                   	(bad)  
   14d43:	ff 00                	incl   (%eax)
   14d45:	00 00                	add    %al,(%eax)
	...

00014d48 <__DTOR_LIST__>:
   14d48:	ff                   	(bad)  
   14d49:	ff                   	(bad)  
   14d4a:	ff                   	(bad)  
   14d4b:	ff 00                	incl   (%eax)
   14d4d:	00 00                	add    %al,(%eax)
	...
