4011d6:	40                   	inc    %eax
4011d7:	00 fc                	add    %bh,%ah
4011d9:	31 40 00             	xor    %eax,0x0(%eax)
4011dc:	38 32                	cmp    %dh,(%edx)
4011de:	40                   	inc    %eax
4011df:	00 11                	add    %dl,(%ecx)
4011e1:	54                   	push   %esp
4011e2:	49                   	dec    %ecx
4011e3:	6e                   	outsb  %ds:(%esi),(%dx)
4011e4:	74 65                	je     0x40124b
4011e6:	72 66                	jb     0x40124e
4011e8:	61                   	popa
4011e9:	63 65 64             	arpl   %esp,0x64(%ebp)
4011ec:	4f                   	dec    %edi
4011ed:	62 6a 65             	bound  %ebp,0x65(%edx)
4011f0:	63 74 8b c0          	arpl   %esi,-0x40(%ebx,%ecx,4)
4011f4:	ff 25 b0 f1 46 00    	jmp    *0x46f1b0
4011fa:	8b c0                	mov    %eax,%eax
4011fc:	ff 25 ac f1 46 00    	jmp    *0x46f1ac
401202:	8b c0                	mov    %eax,%eax
401204:	ff 25 a8 f1 46 00    	jmp    *0x46f1a8
40120a:	8b c0                	mov    %eax,%eax
40120c:	ff 25 a4 f1 46 00    	jmp    *0x46f1a4
401212:	8b c0                	mov    %eax,%eax
401214:	ff 25 a0 f1 46 00    	jmp    *0x46f1a0
40121a:	8b c0                	mov    %eax,%eax
40121c:	ff 25 c4 f1 46 00    	jmp    *0x46f1c4
401222:	8b c0                	mov    %eax,%eax
401224:	ff 25 9c f1 46 00    	jmp    *0x46f19c
40122a:	8b c0                	mov    %eax,%eax
40122c:	ff 25 c0 f1 46 00    	jmp    *0x46f1c0
401232:	8b c0                	mov    %eax,%eax
401234:	ff 25 98 f1 46 00    	jmp    *0x46f198
40123a:	8b c0                	mov    %eax,%eax
40123c:	ff 25 94 f1 46 00    	jmp    *0x46f194
401242:	8b c0                	mov    %eax,%eax
401244:	ff 25 90 f1 46 00    	jmp    *0x46f190
40124a:	8b c0                	mov    %eax,%eax
40124c:	ff 25 8c f1 46 00    	jmp    *0x46f18c
401252:	8b c0                	mov    %eax,%eax
401254:	ff 25 88 f1 46 00    	jmp    *0x46f188
40125a:	8b c0                	mov    %eax,%eax
40125c:	ff 25 84 f1 46 00    	jmp    *0x46f184
401262:	8b c0                	mov    %eax,%eax
401264:	ff 25 80 f1 46 00    	jmp    *0x46f180
40126a:	8b c0                	mov    %eax,%eax
40126c:	ff 25 7c f1 46 00    	jmp    *0x46f17c
401272:	8b c0                	mov    %eax,%eax
401274:	ff 25 78 f1 46 00    	jmp    *0x46f178
40127a:	8b c0                	mov    %eax,%eax
40127c:	ff 25 74 f1 46 00    	jmp    *0x46f174
401282:	8b c0                	mov    %eax,%eax
401284:	ff 25 70 f1 46 00    	jmp    *0x46f170
40128a:	8b c0                	mov    %eax,%eax
40128c:	ff 25 bc f1 46 00    	jmp    *0x46f1bc
401292:	8b c0                	mov    %eax,%eax
401294:	ff 25 6c f1 46 00    	jmp    *0x46f16c
40129a:	8b c0                	mov    %eax,%eax
40129c:	ff 25 68 f1 46 00    	jmp    *0x46f168
4012a2:	8b c0                	mov    %eax,%eax
4012a4:	ff 25 64 f1 46 00    	jmp    *0x46f164
4012aa:	8b c0                	mov    %eax,%eax
4012ac:	ff 25 d4 f1 46 00    	jmp    *0x46f1d4
4012b2:	8b c0                	mov    %eax,%eax
4012b4:	ff 25 d0 f1 46 00    	jmp    *0x46f1d0
4012ba:	8b c0                	mov    %eax,%eax
4012bc:	ff 25 cc f1 46 00    	jmp    *0x46f1cc
4012c2:	8b c0                	mov    %eax,%eax
4012c4:	ff 25 60 f1 46 00    	jmp    *0x46f160
4012ca:	8b c0                	mov    %eax,%eax
4012cc:	ff 25 5c f1 46 00    	jmp    *0x46f15c
4012d2:	8b c0                	mov    %eax,%eax
4012d4:	ff 25 e4 f1 46 00    	jmp    *0x46f1e4
4012da:	8b c0                	mov    %eax,%eax
4012dc:	ff 25 e0 f1 46 00    	jmp    *0x46f1e0
4012e2:	8b c0                	mov    %eax,%eax
4012e4:	ff 25 dc f1 46 00    	jmp    *0x46f1dc
4012ea:	8b c0                	mov    %eax,%eax
4012ec:	ff 25 58 f1 46 00    	jmp    *0x46f158
4012f2:	8b c0                	mov    %eax,%eax
4012f4:	ff 25 54 f1 46 00    	jmp    *0x46f154
4012fa:	8b c0                	mov    %eax,%eax
4012fc:	ff 25 50 f1 46 00    	jmp    *0x46f150
401302:	8b c0                	mov    %eax,%eax
401304:	ff 25 4c f1 46 00    	jmp    *0x46f14c
40130a:	8b c0                	mov    %eax,%eax
40130c:	53                   	push   %ebx
40130d:	83 c4 bc             	add    $0xffffffbc,%esp
401310:	bb 0a 00 00 00       	mov    $0xa,%ebx
401315:	54                   	push   %esp
401316:	e8 59 ff ff ff       	call   0x401274
40131b:	f6 44 24 2c 01       	testb  $0x1,0x2c(%esp)
401320:	74 05                	je     0x401327
401322:	0f b7 5c 24 30       	movzwl 0x30(%esp),%ebx
401327:	8b c3                	mov    %ebx,%eax
401329:	83 c4 44             	add    $0x44,%esp
40132c:	5b                   	pop    %ebx
40132d:	c3                   	ret
40132e:	8b c0                	mov    %eax,%eax
401330:	ff 25 48 f1 46 00    	jmp    *0x46f148
401336:	8b c0                	mov    %eax,%eax
401338:	ff 25 44 f1 46 00    	jmp    *0x46f144
40133e:	8b c0                	mov    %eax,%eax
401340:	ff 25 40 f1 46 00    	jmp    *0x46f140
401346:	8b c0                	mov    %eax,%eax
401348:	ff 25 3c f1 46 00    	jmp    *0x46f13c
40134e:	8b c0                	mov    %eax,%eax
401350:	ff 25 38 f1 46 00    	jmp    *0x46f138
401356:	8b c0                	mov    %eax,%eax
401358:	ff 25 34 f1 46 00    	jmp    *0x46f134
40135e:	8b c0                	mov    %eax,%eax
401360:	ff 25 30 f1 46 00    	jmp    *0x46f130
401366:	8b c0                	mov    %eax,%eax
401368:	ff 25 2c f1 46 00    	jmp    *0x46f12c
40136e:	8b c0                	mov    %eax,%eax
401370:	53                   	push   %ebx
401371:	56                   	push   %esi
401372:	be e4 e5 46 00       	mov    $0x46e5e4,%esi
401377:	83 3e 00             	cmpl   $0x0,(%esi)
40137a:	75 3a                	jne    0x4013b6
40137c:	68 44 06 00 00       	push   $0x644
401381:	6a 00                	push   $0x0
401383:	e8 a8 ff ff ff       	call   0x401330
401388:	8b c8                	mov    %eax,%ecx
40138a:	85 c9                	test   %ecx,%ecx
40138c:	75 05                	jne    0x401393
40138e:	33 c0                	xor    %eax,%eax
401390:	5e                   	pop    %esi
401391:	5b                   	pop    %ebx
401392:	c3                   	ret
401393:	a1 e0 e5 46 00       	mov    0x46e5e0,%eax
401398:	89 01                	mov    %eax,(%ecx)
40139a:	89 0d e0 e5 46 00    	mov    %ecx,0x46e5e0
4013a0:	33 d2                	xor    %edx,%edx
4013a2:	8b c2                	mov    %edx,%eax
4013a4:	03 c0                	add    %eax,%eax
4013a6:	8d 44 c1 04          	lea    0x4(%ecx,%eax,8),%eax
4013aa:	8b 1e                	mov    (%esi),%ebx
4013ac:	89 18                	mov    %ebx,(%eax)
4013ae:	89 06                	mov    %eax,(%esi)
4013b0:	42                   	inc    %edx
4013b1:	83 fa 64             	cmp    $0x64,%edx
4013b4:	75 ec                	jne    0x4013a2
4013b6:	8b 06                	mov    (%esi),%eax
4013b8:	8b 10                	mov    (%eax),%edx
4013ba:	89 16                	mov    %edx,(%esi)
4013bc:	5e                   	pop    %esi
4013bd:	5b                   	pop    %ebx
4013be:	c3                   	ret
4013bf:	90                   	nop
4013c0:	89 00                	mov    %eax,(%eax)
4013c2:	89 40 04             	mov    %eax,0x4(%eax)
4013c5:	c3                   	ret
4013c6:	8b c0                	mov    %eax,%eax
4013c8:	53                   	push   %ebx
4013c9:	56                   	push   %esi
4013ca:	8b f2                	mov    %edx,%esi
4013cc:	8b d8                	mov    %eax,%ebx
4013ce:	e8 9d ff ff ff       	call   0x401370
4013d3:	85 c0                	test   %eax,%eax
4013d5:	75 05                	jne    0x4013dc
4013d7:	33 c0                	xor    %eax,%eax
4013d9:	5e                   	pop    %esi
4013da:	5b                   	pop    %ebx
4013db:	c3                   	ret
4013dc:	8b 16                	mov    (%esi),%edx
4013de:	89 50 08             	mov    %edx,0x8(%eax)
4013e1:	8b 56 04             	mov    0x4(%esi),%edx
4013e4:	89 50 0c             	mov    %edx,0xc(%eax)
4013e7:	8b 13                	mov    (%ebx),%edx
4013e9:	89 10                	mov    %edx,(%eax)
4013eb:	89 58 04             	mov    %ebx,0x4(%eax)
4013ee:	89 42 04             	mov    %eax,0x4(%edx)
4013f1:	89 03                	mov    %eax,(%ebx)
4013f3:	b0 01                	mov    $0x1,%al
4013f5:	5e                   	pop    %esi
4013f6:	5b                   	pop    %ebx
4013f7:	c3                   	ret
4013f8:	8b 50 04             	mov    0x4(%eax),%edx
4013fb:	8b 08                	mov    (%eax),%ecx
4013fd:	89 0a                	mov    %ecx,(%edx)
4013ff:	89 51 04             	mov    %edx,0x4(%ecx)
401402:	8b 15 e4 e5 46 00    	mov    0x46e5e4,%edx
401408:	89 10                	mov    %edx,(%eax)
40140a:	a3 e4 e5 46 00       	mov    %eax,0x46e5e4
40140f:	c3                   	ret
401410:	53                   	push   %ebx
401411:	56                   	push   %esi
401412:	57                   	push   %edi
401413:	55                   	push   %ebp
401414:	51                   	push   %ecx
401415:	8b f1                	mov    %ecx,%esi
401417:	89 14 24             	mov    %edx,(%esp)
40141a:	8b e8                	mov    %eax,%ebp
40141c:	8b 5d 00             	mov    0x0(%ebp),%ebx
40141f:	8b 04 24             	mov    (%esp),%eax
401422:	8b 10                	mov    (%eax),%edx
401424:	89 16                	mov    %edx,(%esi)
401426:	8b 50 04             	mov    0x4(%eax),%edx
401429:	89 56 04             	mov    %edx,0x4(%esi)
40142c:	8b 3b                	mov    (%ebx),%edi
40142e:	8b 06                	mov    (%esi),%eax
401430:	8b 53 08             	mov    0x8(%ebx),%edx
401433:	03 53 0c             	add    0xc(%ebx),%edx
401436:	3b c2                	cmp    %edx,%eax
401438:	75 14                	jne    0x40144e
40143a:	8b c3                	mov    %ebx,%eax
40143c:	e8 b7 ff ff ff       	call   0x4013f8
401441:	8b 43 08             	mov    0x8(%ebx),%eax
401444:	89 06                	mov    %eax,(%esi)
401446:	8b 43 0c             	mov    0xc(%ebx),%eax
401449:	01 46 04             	add    %eax,0x4(%esi)
40144c:	eb 15                	jmp    0x401463
40144e:	03 46 04             	add    0x4(%esi),%eax
401451:	3b 43 08             	cmp    0x8(%ebx),%eax
401454:	75 0d                	jne    0x401463
401456:	8b c3                	mov    %ebx,%eax
401458:	e8 9b ff ff ff       	call   0x4013f8
40145d:	8b 43 0c             	mov    0xc(%ebx),%eax
401460:	01 46 04             	add    %eax,0x4(%esi)
401463:	8b df                	mov    %edi,%ebx
401465:	3b eb                	cmp    %ebx,%ebp
401467:	75 c3                	jne    0x40142c
401469:	8b d6                	mov    %esi,%edx
40146b:	8b c5                	mov    %ebp,%eax
40146d:	e8 56 ff ff ff       	call   0x4013c8
401472:	84 c0                	test   %al,%al
401474:	75 04                	jne    0x40147a
401476:	33 c0                	xor    %eax,%eax
401478:	89 06                	mov    %eax,(%esi)
40147a:	5a                   	pop    %edx
40147b:	5d                   	pop    %ebp
40147c:	5f                   	pop    %edi
40147d:	5e                   	pop    %esi
40147e:	5b                   	pop    %ebx
40147f:	c3                   	ret
401480:	53                   	push   %ebx
401481:	56                   	push   %esi
401482:	57                   	push   %edi
401483:	55                   	push   %ebp
401484:	83 c4 f8             	add    $0xfffffff8,%esp
401487:	8b d8                	mov    %eax,%ebx
401489:	8b fb                	mov    %ebx,%edi
40148b:	8b 32                	mov    (%edx),%esi
40148d:	8b 43 08             	mov    0x8(%ebx),%eax
401490:	3b f0                	cmp    %eax,%esi
401492:	72 70                	jb     0x401504
401494:	8b ce                	mov    %esi,%ecx
401496:	03 4a 04             	add    0x4(%edx),%ecx
401499:	8b e8                	mov    %eax,%ebp
40149b:	03 6b 0c             	add    0xc(%ebx),%ebp
40149e:	3b cd                	cmp    %ebp,%ecx
4014a0:	77 62                	ja     0x401504
4014a2:	3b f0                	cmp    %eax,%esi
4014a4:	75 1b                	jne    0x4014c1
4014a6:	8b 42 04             	mov    0x4(%edx),%eax
4014a9:	01 43 08             	add    %eax,0x8(%ebx)
4014ac:	8b 42 04             	mov    0x4(%edx),%eax
4014af:	29 43 0c             	sub    %eax,0xc(%ebx)
4014b2:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
4014b6:	75 48                	jne    0x401500
4014b8:	8b c3                	mov    %ebx,%eax
4014ba:	e8 39 ff ff ff       	call   0x4013f8
4014bf:	eb 3f                	jmp    0x401500
4014c1:	8b ce                	mov    %esi,%ecx
4014c3:	8b 7a 04             	mov    0x4(%edx),%edi
4014c6:	03 cf                	add    %edi,%ecx
4014c8:	8b e8                	mov    %eax,%ebp
4014ca:	03 6b 0c             	add    0xc(%ebx),%ebp
4014cd:	3b cd                	cmp    %ebp,%ecx
4014cf:	75 05                	jne    0x4014d6
4014d1:	29 7b 0c             	sub    %edi,0xc(%ebx)
4014d4:	eb 2a                	jmp    0x401500
4014d6:	8b 0a                	mov    (%edx),%ecx
4014d8:	03 4a 04             	add    0x4(%edx),%ecx
4014db:	89 0c 24             	mov    %ecx,(%esp)
4014de:	8b 7b 08             	mov    0x8(%ebx),%edi
4014e1:	03 7b 0c             	add    0xc(%ebx),%edi
4014e4:	2b f9                	sub    %ecx,%edi
4014e6:	89 7c 24 04          	mov    %edi,0x4(%esp)
4014ea:	2b f0                	sub    %eax,%esi
4014ec:	89 73 0c             	mov    %esi,0xc(%ebx)
4014ef:	8b d4                	mov    %esp,%edx
4014f1:	8b c3                	mov    %ebx,%eax
4014f3:	e8 d0 fe ff ff       	call   0x4013c8
4014f8:	84 c0                	test   %al,%al
4014fa:	75 04                	jne    0x401500
4014fc:	33 c0                	xor    %eax,%eax
4014fe:	eb 0c                	jmp    0x40150c
401500:	b0 01                	mov    $0x1,%al
401502:	eb 08                	jmp    0x40150c
401504:	8b 1b                	mov    (%ebx),%ebx
401506:	3b fb                	cmp    %ebx,%edi
401508:	75 81                	jne    0x40148b
40150a:	33 c0                	xor    %eax,%eax
40150c:	59                   	pop    %ecx
40150d:	5a                   	pop    %edx
40150e:	5d                   	pop    %ebp
40150f:	5f                   	pop    %edi
401510:	5e                   	pop    %esi
401511:	5b                   	pop    %ebx
401512:	c3                   	ret
401513:	90                   	nop
401514:	53                   	push   %ebx
401515:	56                   	push   %esi
401516:	57                   	push   %edi
401517:	8b da                	mov    %edx,%ebx
401519:	8b f0                	mov    %eax,%esi
40151b:	81 fe 00 00 10 00    	cmp    $0x100000,%esi
401521:	7d 07                	jge    0x40152a
401523:	be 00 00 10 00       	mov    $0x100000,%esi
401528:	eb 0c                	jmp    0x401536
40152a:	81 c6 ff ff 00 00    	add    $0xffff,%esi
401530:	81 e6 00 00 ff ff    	and    $0xffff0000,%esi
401536:	89 73 04             	mov    %esi,0x4(%ebx)
401539:	6a 01                	push   $0x1
40153b:	68 00 20 00 00       	push   $0x2000
401540:	56                   	push   %esi
401541:	6a 00                	push   $0x0
401543:	e8 f8 fd ff ff       	call   0x401340
401548:	8b f8                	mov    %eax,%edi
40154a:	89 3b                	mov    %edi,(%ebx)
40154c:	85 ff                	test   %edi,%edi
40154e:	74 23                	je     0x401573
401550:	8b d3                	mov    %ebx,%edx
401552:	b8 e8 e5 46 00       	mov    $0x46e5e8,%eax
401557:	e8 6c fe ff ff       	call   0x4013c8
40155c:	84 c0                	test   %al,%al
40155e:	75 13                	jne    0x401573
401560:	68 00 80 00 00       	push   $0x8000
401565:	6a 00                	push   $0x0
401567:	8b 03                	mov    (%ebx),%eax
401569:	50                   	push   %eax
40156a:	e8 d9 fd ff ff       	call   0x401348
40156f:	33 c0                	xor    %eax,%eax
401571:	89 03                	mov    %eax,(%ebx)
401573:	5f                   	pop    %edi
401574:	5e                   	pop    %esi
401575:	5b                   	pop    %ebx
401576:	c3                   	ret
401577:	90                   	nop
401578:	53                   	push   %ebx
401579:	56                   	push   %esi
40157a:	57                   	push   %edi
40157b:	55                   	push   %ebp
40157c:	8b d9                	mov    %ecx,%ebx
40157e:	8b f2                	mov    %edx,%esi
401580:	8b e8                	mov    %eax,%ebp
401582:	c7 43 04 00 00 10 00 	movl   $0x100000,0x4(%ebx)
401589:	6a 04                	push   $0x4