40f051:	8b e5                	mov    %ebp,%esp
40f053:	5d                   	pop    %ebp
40f054:	c2 08 00             	ret    $0x8
40f057:	8b 41 04             	mov    0x4(%ecx),%eax
40f05a:	8b 50 30             	mov    0x30(%eax),%edx
40f05d:	e9 6f ff ff ff       	jmp    0x40efd1
40f062:	8b ff                	mov    %edi,%edi
40f064:	1d ef 40 00 ed       	sbb    $0xed0040ef,%eax
40f069:	86 47 00             	xchg   %al,0x0(%edi)
40f06c:	bb ef 40 00 bb       	mov    $0xbb0040ef,%ebx
40f071:	ef                   	out    %eax,(%dx)
40f072:	40                   	inc    %eax
40f073:	00 95 ef 40 00 45    	add    %dl,0x450040ef(%ebp)
40f079:	f0 40                	lock inc %eax
40f07b:	00 fa                	add    %bh,%dl
40f07d:	ef                   	out    %eax,(%dx)
40f07e:	40                   	inc    %eax
40f07f:	00 0b                	add    %cl,(%ebx)
40f081:	f0 40                	lock inc %eax
40f083:	00 e8                	add    %ch,%al
40f085:	ef                   	out    %eax,(%dx)
40f086:	40                   	inc    %eax
40f087:	00 54 ef 40          	add    %dl,0x40(%edi,%ebp,8)
40f08b:	00 42 ef             	add    %al,-0x11(%edx)
40f08e:	40                   	inc    %eax
40f08f:	00 ed                	add    %ch,%ch
40f091:	86 47 00             	xchg   %al,0x0(%edi)
40f094:	ed                   	in     (%dx),%eax
40f095:	86 47 00             	xchg   %al,0x0(%edi)
40f098:	ed                   	in     (%dx),%eax
40f099:	86 47 00             	xchg   %al,0x0(%edi)
40f09c:	e5 85                	in     $0x85,%eax
40f09e:	47                   	inc    %edi
40f09f:	00 a9 ef 40 00 f3    	add    %ch,-0xcffbf11(%ecx)
40f0a5:	85 47 00             	test   %eax,0x0(%edi)
40f0a8:	01 86 47 00 95 ef    	add    %eax,-0x106affb9(%esi)
40f0ae:	40                   	inc    %eax
40f0af:	00 19                	add    %bl,(%ecx)
40f0b1:	86 47 00             	xchg   %al,0x0(%edi)
40f0b4:	95                   	xchg   %eax,%ebp
40f0b5:	ef                   	out    %eax,(%dx)
40f0b6:	40                   	inc    %eax
40f0b7:	00 27                	add    %ah,(%edi)
40f0b9:	86 47 00             	xchg   %al,0x0(%edi)
40f0bc:	5b                   	pop    %ebx
40f0bd:	86 47 00             	xchg   %al,0x0(%edi)
40f0c0:	6c                   	insb   (%dx),%es:(%edi)
40f0c1:	86 47 00             	xchg   %al,0x0(%edi)
40f0c4:	80 ef 40             	sub    $0x40,%bh
40f0c7:	00 30                	add    %dh,(%eax)
40f0c9:	f0 40                	lock inc %eax
40f0cb:	00 4a 86             	add    %cl,-0x7a(%edx)
40f0ce:	47                   	inc    %edi
40f0cf:	00 7d 86             	add    %bh,-0x7a(%ebp)
40f0d2:	47                   	inc    %edi
40f0d3:	00 a7 86 47 00 70    	add    %ah,0x70004786(%edi)
40f0d9:	ef                   	out    %eax,(%dx)
40f0da:	40                   	inc    %eax
40f0db:	00 66 ef             	add    %ah,-0x11(%esi)
40f0de:	40                   	inc    %eax
40f0df:	00 1d f0 40 00 ed    	add    %bl,0xed0040f0
40f0e5:	86 47 00             	xchg   %al,0x0(%edi)
40f0e8:	ce                   	into
40f0e9:	86 47 00             	xchg   %al,0x0(%edi)
40f0ec:	dd 86 47 00 ed 86    	fldl   -0x7912ffb9(%esi)
40f0f2:	47                   	inc    %edi
40f0f3:	00 ed                	add    %ch,%ch
40f0f5:	86 47 00             	xchg   %al,0x0(%edi)
40f0f8:	ed                   	in     (%dx),%eax
40f0f9:	86 47 00             	xchg   %al,0x0(%edi)
40f0fc:	ed                   	in     (%dx),%eax
40f0fd:	86 47 00             	xchg   %al,0x0(%edi)
40f100:	8e 86 47 00 39 86    	mov    -0x79c6ffb9(%esi),%es
40f106:	47                   	inc    %edi
40f107:	00 cc                	add    %cl,%ah
40f109:	cc                   	int3
40f10a:	cc                   	int3
40f10b:	cc                   	int3
40f10c:	cc                   	int3
40f10d:	cc                   	int3
40f10e:	cc                   	int3
40f10f:	cc                   	int3
40f110:	55                   	push   %ebp
40f111:	8b ec                	mov    %esp,%ebp
40f113:	81 ec b8 01 00 00    	sub    $0x1b8,%esp
40f119:	53                   	push   %ebx
40f11a:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f11d:	56                   	push   %esi
40f11e:	57                   	push   %edi
40f11f:	8b 7b 04             	mov    0x4(%ebx),%edi
40f122:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40f125:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40f12c:	33 f6                	xor    %esi,%esi
40f12e:	8b d7                	mov    %edi,%edx
40f130:	8b 0a                	mov    (%edx),%ecx
40f132:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
40f136:	66 83 f8 4e          	cmp    $0x4e,%ax
40f13a:	0f 84 40 02 00 00    	je     0x40f380
40f140:	66 83 f8 4f          	cmp    $0x4f,%ax
40f144:	0f 84 2d 02 00 00    	je     0x40f377
40f14a:	66 83 f8 47          	cmp    $0x47,%ax
40f14e:	0f 84 2c 02 00 00    	je     0x40f380
40f154:	66 83 f8 48          	cmp    $0x48,%ax
40f158:	0f 84 19 02 00 00    	je     0x40f377
40f15e:	0f b7 49 08          	movzwl 0x8(%ecx),%ecx
40f162:	66 83 f9 41          	cmp    $0x41,%cx
40f166:	74 2d                	je     0x40f195
40f168:	66 83 f9 52          	cmp    $0x52,%cx
40f16c:	74 27                	je     0x40f195
40f16e:	66 83 f9 53          	cmp    $0x53,%cx
40f172:	74 21                	je     0x40f195
40f174:	66 83 f9 54          	cmp    $0x54,%cx
40f178:	74 1b                	je     0x40f195
40f17a:	66 83 f9 55          	cmp    $0x55,%cx
40f17e:	74 15                	je     0x40f195
40f180:	66 83 f9 56          	cmp    $0x56,%cx
40f184:	74 0f                	je     0x40f195
40f186:	66 83 f8 7f          	cmp    $0x7f,%ax
40f18a:	0f 84 6e 95 06 00    	je     0x4786fe
40f190:	83 c2 04             	add    $0x4,%edx
40f193:	eb 9b                	jmp    0x40f130
40f195:	85 f6                	test   %esi,%esi
40f197:	75 ed                	jne    0x40f186
40f199:	8b 07                	mov    (%edi),%eax
40f19b:	ba 01 00 00 00       	mov    $0x1,%edx
40f1a0:	8b 08                	mov    (%eax),%ecx
40f1a2:	89 55 f8             	mov    %edx,-0x8(%ebp)
40f1a5:	8b 41 08             	mov    0x8(%ecx),%eax
40f1a8:	8b 39                	mov    (%ecx),%edi
40f1aa:	8b 59 04             	mov    0x4(%ecx),%ebx
40f1ad:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
40f1b3:	8b 41 0c             	mov    0xc(%ecx),%eax
40f1b6:	89 85 60 ff ff ff    	mov    %eax,-0xa0(%ebp)
40f1bc:	ff 00                	incl   (%eax)
40f1be:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
40f1c4:	33 c0                	xor    %eax,%eax
40f1c6:	89 7d c0             	mov    %edi,-0x40(%ebp)
40f1c9:	89 bd 50 ff ff ff    	mov    %edi,-0xb0(%ebp)
40f1cf:	89 5d b8             	mov    %ebx,-0x48(%ebp)
40f1d2:	89 9d 54 ff ff ff    	mov    %ebx,-0xac(%ebp)
40f1d8:	c6 45 eb 00          	movb   $0x0,-0x15(%ebp)
40f1dc:	89 75 90             	mov    %esi,-0x70(%ebp)
40f1df:	89 45 b0             	mov    %eax,-0x50(%ebp)
40f1e2:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f1e5:	38 05 fc 20 4c 00    	cmp    %al,0x4c20fc
40f1eb:	0f 85 ef 01 00 00    	jne    0x40f3e0
40f1f1:	39 05 f0 20 4c 00    	cmp    %eax,0x4c20f0
40f1f7:	0f 84 98 03 00 00    	je     0x40f595
40f1fd:	38 05 f9 20 4c 00    	cmp    %al,0x4c20f9
40f203:	0f 85 4a 95 06 00    	jne    0x478753
40f209:	8b 35 f4 20 4c 00    	mov    0x4c20f4,%esi
40f20f:	83 3e 00             	cmpl   $0x0,(%esi)
40f212:	0f 84 7d 03 00 00    	je     0x40f595
40f218:	a1 f0 21 4c 00       	mov    0x4c21f0,%eax
40f21d:	c6 45 f7 00          	movb   $0x0,-0x9(%ebp)
40f221:	a8 01                	test   $0x1,%al
40f223:	0f 84 37 95 06 00    	je     0x478760
40f229:	c7 05 10 22 4c 00 00 	movl   $0x0,0x4c2210
40f230:	00 00 00
40f233:	c7 05 0c 22 4c 00 00 	movl   $0x0,0x4c220c
40f23a:	00 00 00
40f23d:	c7 45 ec f4 21 4c 00 	movl   $0x4c21f4,-0x14(%ebp)
40f244:	c7 45 88 f4 21 4c 00 	movl   $0x4c21f4,-0x78(%ebp)
40f24b:	eb 03                	jmp    0x40f250
40f24d:	8d 49 00             	lea    0x0(%ecx),%ecx
40f250:	8b 06                	mov    (%esi),%eax
40f252:	89 45 98             	mov    %eax,-0x68(%ebp)
40f255:	8b 48 04             	mov    0x4(%eax),%ecx
40f258:	85 db                	test   %ebx,%ebx
40f25a:	0f 84 24 95 06 00    	je     0x478784
40f260:	85 c9                	test   %ecx,%ecx
40f262:	74 48                	je     0x40f2ac
40f264:	3b d9                	cmp    %ecx,%ebx
40f266:	0f 82 31 08 00 00    	jb     0x40fa9d
40f26c:	8b 08                	mov    (%eax),%ecx
40f26e:	8b 55 c0             	mov    -0x40(%ebp),%edx
40f271:	8b fb                	mov    %ebx,%edi
40f273:	85 db                	test   %ebx,%ebx
40f275:	74 11                	je     0x40f288
40f277:	66 8b 02             	mov    (%edx),%ax
40f27a:	66 3b 01             	cmp    (%ecx),%ax
40f27d:	75 0d                	jne    0x40f28c
40f27f:	83 c2 02             	add    $0x2,%edx
40f282:	83 c1 02             	add    $0x2,%ecx
40f285:	4f                   	dec    %edi
40f286:	75 ef                	jne    0x40f277
40f288:	33 c0                	xor    %eax,%eax
40f28a:	eb 0c                	jmp    0x40f298
40f28c:	0f b7 02             	movzwl (%edx),%eax
40f28f:	66 3b 01             	cmp    (%ecx),%ax
40f292:	1b c0                	sbb    %eax,%eax
40f294:	83 e0 fe             	and    $0xfffffffe,%eax
40f297:	40                   	inc    %eax
40f298:	85 c0                	test   %eax,%eax
40f29a:	0f 88 88 00 00 00    	js     0x40f328
40f2a0:	0f 8e e3 00 00 00    	jle    0x40f389
40f2a6:	8b 45 98             	mov    -0x68(%ebp),%eax
40f2a9:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f2ac:	8b 48 1c             	mov    0x1c(%eax),%ecx
40f2af:	85 c9                	test   %ecx,%ecx
40f2b1:	0f 84 e0 03 00 00    	je     0x40f697
40f2b7:	8b 51 04             	mov    0x4(%ecx),%edx
40f2ba:	3b d3                	cmp    %ebx,%edx
40f2bc:	0f 87 40 07 00 00    	ja     0x40fa02
40f2c2:	8b 19                	mov    (%ecx),%ebx
40f2c4:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40f2c7:	85 d2                	test   %edx,%edx
40f2c9:	74 18                	je     0x40f2e3
40f2cb:	eb 03                	jmp    0x40f2d0
40f2cd:	8d 49 00             	lea    0x0(%ecx),%ecx
40f2d0:	66 8b 03             	mov    (%ebx),%ax
40f2d3:	66 3b 07             	cmp    (%edi),%ax
40f2d6:	75 14                	jne    0x40f2ec
40f2d8:	83 c3 02             	add    $0x2,%ebx
40f2db:	83 c7 02             	add    $0x2,%edi
40f2de:	ff 4d e4             	decl   -0x1c(%ebp)
40f2e1:	75 ed                	jne    0x40f2d0
40f2e3:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f2e6:	3b d3                	cmp    %ebx,%edx
40f2e8:	72 07                	jb     0x40f2f1
40f2ea:	eb 1f                	jmp    0x40f30b
40f2ec:	73 1d                	jae    0x40f30b
40f2ee:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f2f1:	8b 41 18             	mov    0x18(%ecx),%eax
40f2f4:	8b 55 98             	mov    -0x68(%ebp),%edx
40f2f7:	89 42 1c             	mov    %eax,0x1c(%edx)
40f2fa:	8b 06                	mov    (%esi),%eax
40f2fc:	89 41 18             	mov    %eax,0x18(%ecx)
40f2ff:	89 0e                	mov    %ecx,(%esi)
40f301:	83 79 1c 00          	cmpl   $0x0,0x1c(%ecx)
40f305:	0f 84 8c 03 00 00    	je     0x40f697
40f30b:	8b 06                	mov    (%esi),%eax
40f30d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f310:	8b 5d b8             	mov    -0x48(%ebp),%ebx
40f313:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f316:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f319:	8b 16                	mov    (%esi),%edx
40f31b:	89 55 88             	mov    %edx,-0x78(%ebp)
40f31e:	8b 42 1c             	mov    0x1c(%edx),%eax
40f321:	89 06                	mov    %eax,(%esi)
40f323:	e9 28 ff ff ff       	jmp    0x40f250
40f328:	8b 45 98             	mov    -0x68(%ebp),%eax
40f32b:	8b 7d c0             	mov    -0x40(%ebp),%edi
40f32e:	8b 48 18             	mov    0x18(%eax),%ecx
40f331:	85 c9                	test   %ecx,%ecx
40f333:	0f 84 5e 03 00 00    	je     0x40f697
40f339:	8b 41 04             	mov    0x4(%ecx),%eax
40f33c:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40f33f:	0f 87 c4 06 00 00    	ja     0x40fa09
40f345:	8b 11                	mov    (%ecx),%edx
40f347:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40f34a:	85 db                	test   %ebx,%ebx
40f34c:	74 1c                	je     0x40f36a
40f34e:	8b ff                	mov    %edi,%edi
40f350:	66 8b 07             	mov    (%edi),%ax
40f353:	66 3b 02             	cmp    (%edx),%ax
40f356:	0f 85 00 02 00 00    	jne    0x40f55c
40f35c:	83 c7 02             	add    $0x2,%edi
40f35f:	83 c2 02             	add    $0x2,%edx
40f362:	ff 4d e4             	decl   -0x1c(%ebp)
40f365:	75 e9                	jne    0x40f350
40f367:	8b 41 04             	mov    0x4(%ecx),%eax
40f36a:	3b d8                	cmp    %eax,%ebx
40f36c:	0f 82 ec 01 00 00    	jb     0x40f55e
40f372:	e9 01 02 00 00       	jmp    0x40f578
40f377:	4e                   	dec    %esi
40f378:	83 c2 04             	add    $0x4,%edx
40f37b:	e9 b0 fd ff ff       	jmp    0x40f130
40f380:	46                   	inc    %esi
40f381:	83 c2 04             	add    $0x4,%edx
40f384:	e9 a7 fd ff ff       	jmp    0x40f130
40f389:	b2 01                	mov    $0x1,%dl
40f38b:	8b 06                	mov    (%esi),%eax
40f38d:	8b 4d 88             	mov    -0x78(%ebp),%ecx
40f390:	8b 40 18             	mov    0x18(%eax),%eax
40f393:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f396:	8b 06                	mov    (%esi),%eax
40f398:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40f39b:	8b 40 1c             	mov    0x1c(%eax),%eax
40f39e:	89 41 18             	mov    %eax,0x18(%ecx)
40f3a1:	8b 0e                	mov    (%esi),%ecx
40f3a3:	a1 10 22 4c 00       	mov    0x4c2210,%eax
40f3a8:	89 41 18             	mov    %eax,0x18(%ecx)
40f3ab:	8b 0e                	mov    (%esi),%ecx
40f3ad:	a1 0c 22 4c 00       	mov    0x4c220c,%eax
40f3b2:	89 41 1c             	mov    %eax,0x1c(%ecx)
40f3b5:	84 d2                	test   %dl,%dl
40f3b7:	0f 84 d8 01 00 00    	je     0x40f595
40f3bd:	8b 36                	mov    (%esi),%esi
40f3bf:	85 f6                	test   %esi,%esi
40f3c1:	0f 84 ce 01 00 00    	je     0x40f595
40f3c7:	8b 46 10             	mov    0x10(%esi),%eax
40f3ca:	8b 76 14             	mov    0x14(%esi),%esi
40f3cd:	25 00 ff 00 00       	and    $0xff00,%eax
40f3d2:	89 45 ac             	mov    %eax,-0x54(%ebp)
40f3d5:	85 f6                	test   %esi,%esi
40f3d7:	0f 84 b8 01 00 00    	je     0x40f595
40f3dd:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f3e0:	89 75 b8             	mov    %esi,-0x48(%ebp)
40f3e3:	85 f6                	test   %esi,%esi
40f3e5:	74 7c                	je     0x40f463
40f3e7:	a9 00 01 00 00       	test   $0x100,%eax
40f3ec:	0f 85 d6 93 06 00    	jne    0x4787c8
40f3f2:	8b 46 0c             	mov    0xc(%esi),%eax
40f3f5:	8b 7d 08             	mov    0x8(%ebp),%edi
40f3f8:	83 f8 08             	cmp    $0x8,%eax
40f3fb:	74 1b                	je     0x40f418
40f3fd:	83 f8 0c             	cmp    $0xc,%eax
40f400:	74 16                	je     0x40f418
40f402:	83 f8 0f             	cmp    $0xf,%eax
40f405:	74 11                	je     0x40f418
40f407:	8b 4f 04             	mov    0x4(%edi),%ecx
40f40a:	8b 41 04             	mov    0x4(%ecx),%eax
40f40d:	66 83 78 08 47       	cmpw   $0x47,0x8(%eax)
40f412:	0f 84 cf 93 06 00    	je     0x4787e7
40f418:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40f41b:	eb 03                	jmp    0x40f420
40f41d:	8d 49 00             	lea    0x0(%ecx),%ecx
40f420:	8b 4f 04             	mov    0x4(%edi),%ecx
40f423:	8b 04 91             	mov    (%ecx,%edx,4),%eax
40f426:	66 83 78 08 4e       	cmpw   $0x4e,0x8(%eax)
40f42b:	0f 84 6f 02 00 00    	je     0x40f6a0
40f431:	8b 47 04             	mov    0x4(%edi),%eax
40f434:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f437:	0f b7 78 08          	movzwl 0x8(%eax),%edi
40f43b:	66 83 ff 35          	cmp    $0x35,%di
40f43f:	0f 84 12 97 06 00    	je     0x478b57
40f445:	8b 46 0c             	mov    0xc(%esi),%eax
40f448:	83 f8 08             	cmp    $0x8,%eax
40f44b:	0f 84 1d 97 06 00    	je     0x478b6e
40f451:	83 f8 0c             	cmp    $0xc,%eax
40f454:	0f 84 14 97 06 00    	je     0x478b6e
40f45a:	83 f8 0f             	cmp    $0xf,%eax
40f45d:	0f 84 0b 97 06 00    	je     0x478b6e
40f463:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f466:	8b 43 04             	mov    0x4(%ebx),%eax
40f469:	8b 04 90             	mov    (%eax,%edx,4),%eax
40f46c:	0f b7 48 08          	movzwl 0x8(%eax),%ecx
40f470:	0f bf 78 08          	movswl 0x8(%eax),%edi
40f474:	89 7d 88             	mov    %edi,-0x78(%ebp)
40f477:	66 83 f9 41          	cmp    $0x41,%cx
40f47b:	0f 85 6c 06 00 00    	jne    0x40faed
40f481:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f484:	6a ff                	push   $0xffffffff
40f486:	8d 45 9c             	lea    -0x64(%ebp),%eax
40f489:	50                   	push   %eax
40f48a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f48d:	50                   	push   %eax
40f48e:	42                   	inc    %edx
40f48f:	53                   	push   %ebx