41a40a:	64 89 22             	mov    %esp,%fs:(%edx)
41a40d:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a410:	8b 10                	mov    (%eax),%edx
41a412:	ff 52 44             	call   *0x44(%edx)
41a415:	85 db                	test   %ebx,%ebx
41a417:	74 40                	je     0x41a459
41a419:	eb 39                	jmp    0x41a454
41a41b:	8b c3                	mov    %ebx,%eax
41a41d:	eb 01                	jmp    0x41a420
41a41f:	43                   	inc    %ebx
41a420:	8a 13                	mov    (%ebx),%dl
41a422:	84 d2                	test   %dl,%dl
41a424:	74 0a                	je     0x41a430
41a426:	80 ea 0a             	sub    $0xa,%dl
41a429:	74 05                	je     0x41a430
41a42b:	80 ea 03             	sub    $0x3,%dl
41a42e:	75 ef                	jne    0x41a41f
41a430:	8b cb                	mov    %ebx,%ecx
41a432:	2b c8                	sub    %eax,%ecx
41a434:	8d 55 f8             	lea    -0x8(%ebp),%edx
41a437:	92                   	xchg   %eax,%edx
41a438:	e8 03 9d fe ff       	call   0x404140
41a43d:	8b 55 f8             	mov    -0x8(%ebp),%edx
41a440:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a443:	8b 08                	mov    (%eax),%ecx
41a445:	ff 51 38             	call   *0x38(%ecx)
41a448:	80 3b 0d             	cmpb   $0xd,(%ebx)
41a44b:	75 01                	jne    0x41a44e
41a44d:	43                   	inc    %ebx
41a44e:	80 3b 0a             	cmpb   $0xa,(%ebx)
41a451:	75 01                	jne    0x41a454
41a453:	43                   	inc    %ebx
41a454:	80 3b 00             	cmpb   $0x0,(%ebx)
41a457:	75 c2                	jne    0x41a41b
41a459:	33 c0                	xor    %eax,%eax
41a45b:	5a                   	pop    %edx
41a45c:	59                   	pop    %ecx
41a45d:	59                   	pop    %ecx
41a45e:	64 89 10             	mov    %edx,%fs:(%eax)
41a461:	68 76 a4 41 00       	push   $0x41a476
41a466:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a469:	e8 12 f6 ff ff       	call   0x419a80
41a46e:	c3                   	ret
41a46f:	e9 e0 95 fe ff       	jmp    0x403a54
41a474:	eb f0                	jmp    0x41a466
41a476:	33 c0                	xor    %eax,%eax
41a478:	5a                   	pop    %edx
41a479:	59                   	pop    %ecx
41a47a:	59                   	pop    %ecx
41a47b:	64 89 10             	mov    %edx,%fs:(%eax)
41a47e:	68 93 a4 41 00       	push   $0x41a493
41a483:	8d 45 f8             	lea    -0x8(%ebp),%eax
41a486:	e8 c5 9b fe ff       	call   0x404050
41a48b:	c3                   	ret
41a48c:	e9 c3 95 fe ff       	jmp    0x403a54
41a491:	eb f0                	jmp    0x41a483
41a493:	5b                   	pop    %ebx
41a494:	59                   	pop    %ecx
41a495:	59                   	pop    %ecx
41a496:	5d                   	pop    %ebp
41a497:	c3                   	ret
41a498:	c3                   	ret
41a499:	8d 40 00             	lea    0x0(%eax),%eax
41a49c:	55                   	push   %ebp
41a49d:	8b ec                	mov    %esp,%ebp
41a49f:	83 c4 f4             	add    $0xfffffff4,%esp
41a4a2:	53                   	push   %ebx
41a4a3:	56                   	push   %esi
41a4a4:	57                   	push   %edi
41a4a5:	33 c9                	xor    %ecx,%ecx
41a4a7:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41a4aa:	89 55 f8             	mov    %edx,-0x8(%ebp)
41a4ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a4b0:	33 c0                	xor    %eax,%eax
41a4b2:	55                   	push   %ebp
41a4b3:	68 12 a5 41 00       	push   $0x41a512
41a4b8:	64 ff 30             	push   %fs:(%eax)
41a4bb:	64 89 20             	mov    %esp,%fs:(%eax)
41a4be:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a4c1:	e8 ea 4a 00 00       	call   0x41efb0
41a4c6:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a4c9:	8b 10                	mov    (%eax),%edx
41a4cb:	ff 52 14             	call   *0x14(%edx)
41a4ce:	8b d8                	mov    %eax,%ebx
41a4d0:	4b                   	dec    %ebx
41a4d1:	85 db                	test   %ebx,%ebx
41a4d3:	7c 1f                	jl     0x41a4f4
41a4d5:	43                   	inc    %ebx
41a4d6:	33 f6                	xor    %esi,%esi
41a4d8:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41a4db:	8b d6                	mov    %esi,%edx
41a4dd:	8b 45 fc             	mov    -0x4(%ebp),%eax
41a4e0:	8b 38                	mov    (%eax),%edi
41a4e2:	ff 57 0c             	call   *0xc(%edi)
41a4e5:	8b 55 f4             	mov    -0xc(%ebp),%edx
41a4e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a4eb:	e8 24 62 00 00       	call   0x420714
41a4f0:	46                   	inc    %esi
41a4f1:	4b                   	dec    %ebx
41a4f2:	75 e4                	jne    0x41a4d8
41a4f4:	8b 45 f8             	mov    -0x8(%ebp),%eax
41a4f7:	e8 bc 4a 00 00       	call   0x41efb8
41a4fc:	33 c0                	xor    %eax,%eax
41a4fe:	5a                   	pop    %edx
41a4ff:	59                   	pop    %ecx
41a500:	59                   	pop    %ecx
41a501:	64 89 10             	mov    %edx,%fs:(%eax)
41a504:	68 19 a5 41 00       	push   $0x41a519
41a509:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a50c:	e8 3f 9b fe ff       	call   0x404050
41a511:	c3                   	ret
41a512:	e9 3d 95 fe ff       	jmp    0x403a54
41a517:	eb f0                	jmp    0x41a509
41a519:	5f                   	pop    %edi
41a51a:	5e                   	pop    %esi
41a51b:	5b                   	pop    %ebx
41a51c:	8b e5                	mov    %ebp,%esp
41a51e:	5d                   	pop    %ebp
41a51f:	c3                   	ret
41a520:	8b c2                	mov    %edx,%eax
41a522:	8b d1                	mov    %ecx,%edx
41a524:	e8 db da fe ff       	call   0x408004
41a529:	c3                   	ret
41a52a:	8b c0                	mov    %eax,%eax
41a52c:	53                   	push   %ebx
41a52d:	8b d8                	mov    %eax,%ebx
41a52f:	f6 43 04 04          	testb  $0x4,0x4(%ebx)
41a533:	75 09                	jne    0x41a53e
41a535:	b2 3d                	mov    $0x3d,%dl
41a537:	8b c3                	mov    %ebx,%eax
41a539:	e8 06 00 00 00       	call   0x41a544
41a53e:	8a 43 07             	mov    0x7(%ebx),%al
41a541:	5b                   	pop    %ebx
41a542:	c3                   	ret
41a543:	90                   	nop
41a544:	53                   	push   %ebx
41a545:	56                   	push   %esi
41a546:	8b da                	mov    %edx,%ebx
41a548:	8b f0                	mov    %eax,%esi
41a54a:	3a 5e 07             	cmp    0x7(%esi),%bl
41a54d:	75 06                	jne    0x41a555
41a54f:	f6 46 04 04          	testb  $0x4,0x4(%esi)
41a553:	75 07                	jne    0x41a55c
41a555:	80 4e 04 04          	orb    $0x4,0x4(%esi)
41a559:	88 5e 07             	mov    %bl,0x7(%esi)
41a55c:	5e                   	pop    %esi
41a55d:	5b                   	pop    %ebx
41a55e:	c3                   	ret
41a55f:	90                   	nop
41a560:	53                   	push   %ebx
41a561:	56                   	push   %esi
41a562:	e8 25 91 fe ff       	call   0x40368c
41a567:	8b da                	mov    %edx,%ebx
41a569:	8b f0                	mov    %eax,%esi
41a56b:	33 c0                	xor    %eax,%eax
41a56d:	89 46 20             	mov    %eax,0x20(%esi)
41a570:	89 46 24             	mov    %eax,0x24(%esi)
41a573:	33 c0                	xor    %eax,%eax
41a575:	89 46 28             	mov    %eax,0x28(%esi)
41a578:	89 46 2c             	mov    %eax,0x2c(%esi)
41a57b:	8b d3                	mov    %ebx,%edx
41a57d:	80 e2 fc             	and    $0xfc,%dl
41a580:	8b c6                	mov    %esi,%eax
41a582:	e8 75 f2 ff ff       	call   0x4197fc
41a587:	8b 46 14             	mov    0x14(%esi),%eax
41a58a:	85 c0                	test   %eax,%eax
41a58c:	74 10                	je     0x41a59e
41a58e:	8b c8                	mov    %eax,%ecx
41a590:	8b 46 10             	mov    0x10(%esi),%eax
41a593:	8b 15 5c 65 41 00    	mov    0x41655c,%edx
41a599:	e8 3a a5 fe ff       	call   0x404ad8
41a59e:	33 c0                	xor    %eax,%eax
41a5a0:	89 46 14             	mov    %eax,0x14(%esi)
41a5a3:	33 d2                	xor    %edx,%edx
41a5a5:	8b c6                	mov    %esi,%eax
41a5a7:	8b 08                	mov    (%eax),%ecx
41a5a9:	ff 51 28             	call   *0x28(%ecx)
41a5ac:	84 db                	test   %bl,%bl
41a5ae:	7e 07                	jle    0x41a5b7
41a5b0:	8b c6                	mov    %esi,%eax
41a5b2:	e8 bd 90 fe ff       	call   0x403674
41a5b7:	5e                   	pop    %esi
41a5b8:	5b                   	pop    %ebx
41a5b9:	c3                   	ret
41a5ba:	8b c0                	mov    %eax,%eax
41a5bc:	53                   	push   %ebx
41a5bd:	33 c9                	xor    %ecx,%ecx
41a5bf:	8b 18                	mov    (%eax),%ebx
41a5c1:	ff 53 3c             	call   *0x3c(%ebx)
41a5c4:	5b                   	pop    %ebx
41a5c5:	c3                   	ret
41a5c6:	8b c0                	mov    %eax,%eax
41a5c8:	53                   	push   %ebx
41a5c9:	56                   	push   %esi
41a5ca:	57                   	push   %edi
41a5cb:	55                   	push   %ebp
41a5cc:	51                   	push   %ecx
41a5cd:	8b f9                	mov    %ecx,%edi
41a5cf:	8b f2                	mov    %edx,%esi
41a5d1:	8b d8                	mov    %eax,%ebx
41a5d3:	80 7b 1c 00          	cmpb   $0x0,0x1c(%ebx)
41a5d7:	75 08                	jne    0x41a5e1
41a5d9:	8b 43 14             	mov    0x14(%ebx),%eax
41a5dc:	89 04 24             	mov    %eax,(%esp)
41a5df:	eb 2e                	jmp    0x41a60f
41a5e1:	8b cc                	mov    %esp,%ecx
41a5e3:	8b d6                	mov    %esi,%edx
41a5e5:	8b c3                	mov    %ebx,%eax
41a5e7:	8b 28                	mov    (%eax),%ebp
41a5e9:	ff 95 8c 00 00 00    	call   *0x8c(%ebp)
41a5ef:	84 c0                	test   %al,%al
41a5f1:	74 1c                	je     0x41a60f
41a5f3:	8a 43 1d             	mov    0x1d(%ebx),%al
41a5f6:	2c 01                	sub    $0x1,%al
41a5f8:	72 26                	jb     0x41a620
41a5fa:	fe c8                	dec    %al
41a5fc:	74 02                	je     0x41a600
41a5fe:	eb 0f                	jmp    0x41a60f
41a600:	8b 15 b4 45 47 00    	mov    0x4745b4,%edx
41a606:	33 c9                	xor    %ecx,%ecx
41a608:	8b c3                	mov    %ebx,%eax
41a60a:	e8 69 f5 ff ff       	call   0x419b78
41a60f:	57                   	push   %edi
41a610:	8b ce                	mov    %esi,%ecx
41a612:	8b 54 24 04          	mov    0x4(%esp),%edx
41a616:	8b c3                	mov    %ebx,%eax
41a618:	8b 18                	mov    (%eax),%ebx
41a61a:	ff 93 88 00 00 00    	call   *0x88(%ebx)
41a620:	8b 04 24             	mov    (%esp),%eax
41a623:	5a                   	pop    %edx
41a624:	5d                   	pop    %ebp
41a625:	5f                   	pop    %edi
41a626:	5e                   	pop    %esi
41a627:	5b                   	pop    %ebx
41a628:	c3                   	ret
41a629:	8d 40 00             	lea    0x0(%eax),%eax
41a62c:	53                   	push   %ebx
41a62d:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
41a631:	75 11                	jne    0x41a644
41a633:	66 83 78 22 00       	cmpw   $0x0,0x22(%eax)
41a638:	74 0a                	je     0x41a644
41a63a:	8b d8                	mov    %eax,%ebx
41a63c:	8b d0                	mov    %eax,%edx
41a63e:	8b 43 24             	mov    0x24(%ebx),%eax
41a641:	ff 53 20             	call   *0x20(%ebx)
41a644:	5b                   	pop    %ebx
41a645:	c3                   	ret
41a646:	8b c0                	mov    %eax,%eax
41a648:	53                   	push   %ebx
41a649:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
41a64d:	75 11                	jne    0x41a660
41a64f:	66 83 78 2a 00       	cmpw   $0x0,0x2a(%eax)
41a654:	74 0a                	je     0x41a660
41a656:	8b d8                	mov    %eax,%ebx
41a658:	8b d0                	mov    %eax,%edx
41a65a:	8b 43 2c             	mov    0x2c(%ebx),%eax
41a65d:	ff 53 28             	call   *0x28(%ebx)
41a660:	5b                   	pop    %ebx
41a661:	c3                   	ret
41a662:	8b c0                	mov    %eax,%eax
41a664:	53                   	push   %ebx
41a665:	8b d8                	mov    %eax,%ebx
41a667:	83 7b 14 00          	cmpl   $0x0,0x14(%ebx)
41a66b:	74 33                	je     0x41a6a0
41a66d:	8b c3                	mov    %ebx,%eax
41a66f:	8b 10                	mov    (%eax),%edx
41a671:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a677:	8b 43 10             	mov    0x10(%ebx),%eax
41a67a:	8b 4b 14             	mov    0x14(%ebx),%ecx
41a67d:	8b 15 5c 65 41 00    	mov    0x41655c,%edx
41a683:	e8 50 a4 fe ff       	call   0x404ad8
41a688:	33 c0                	xor    %eax,%eax
41a68a:	89 43 14             	mov    %eax,0x14(%ebx)
41a68d:	33 d2                	xor    %edx,%edx
41a68f:	8b c3                	mov    %ebx,%eax
41a691:	8b 08                	mov    (%eax),%ecx
41a693:	ff 51 28             	call   *0x28(%ecx)
41a696:	8b c3                	mov    %ebx,%eax
41a698:	8b 10                	mov    (%eax),%edx
41a69a:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a6a0:	5b                   	pop    %ebx
41a6a1:	c3                   	ret
41a6a2:	8b c0                	mov    %eax,%eax
41a6a4:	53                   	push   %ebx
41a6a5:	56                   	push   %esi
41a6a6:	8b f2                	mov    %edx,%esi
41a6a8:	8b d8                	mov    %eax,%ebx
41a6aa:	85 f6                	test   %esi,%esi
41a6ac:	7c 05                	jl     0x41a6b3
41a6ae:	3b 73 14             	cmp    0x14(%ebx),%esi
41a6b1:	7c 0f                	jl     0x41a6c2
41a6b3:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a6b9:	8b ce                	mov    %esi,%ecx
41a6bb:	8b c3                	mov    %ebx,%eax
41a6bd:	e8 b6 f4 ff ff       	call   0x419b78
41a6c2:	8b c3                	mov    %ebx,%eax
41a6c4:	8b 10                	mov    (%eax),%edx
41a6c6:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a6cc:	8b 43 10             	mov    0x10(%ebx),%eax
41a6cf:	8d 04 f0             	lea    (%eax,%esi,8),%eax
41a6d2:	8b 15 5c 65 41 00    	mov    0x41655c,%edx
41a6d8:	e8 e7 a4 fe ff       	call   0x404bc4
41a6dd:	ff 4b 14             	decl   0x14(%ebx)
41a6e0:	8b 43 14             	mov    0x14(%ebx),%eax
41a6e3:	3b f0                	cmp    %eax,%esi
41a6e5:	7d 19                	jge    0x41a700
41a6e7:	2b c6                	sub    %esi,%eax
41a6e9:	8b c8                	mov    %eax,%ecx
41a6eb:	c1 e1 03             	shl    $0x3,%ecx
41a6ee:	8b 43 10             	mov    0x10(%ebx),%eax
41a6f1:	8d 14 f0             	lea    (%eax,%esi,8),%edx
41a6f4:	8b 43 10             	mov    0x10(%ebx),%eax
41a6f7:	8d 44 f0 08          	lea    0x8(%eax,%esi,8),%eax
41a6fb:	e8 f0 81 fe ff       	call   0x4028f0
41a700:	8b c3                	mov    %ebx,%eax
41a702:	8b 10                	mov    (%eax),%edx
41a704:	ff 92 80 00 00 00    	call   *0x80(%edx)
41a70a:	5e                   	pop    %esi
41a70b:	5b                   	pop    %ebx
41a70c:	c3                   	ret
41a70d:	8d 40 00             	lea    0x0(%eax),%eax
41a710:	53                   	push   %ebx
41a711:	56                   	push   %esi
41a712:	57                   	push   %edi
41a713:	8b f9                	mov    %ecx,%edi
41a715:	8b f2                	mov    %edx,%esi
41a717:	8b d8                	mov    %eax,%ebx
41a719:	85 f6                	test   %esi,%esi
41a71b:	7c 05                	jl     0x41a722
41a71d:	3b 73 14             	cmp    0x14(%ebx),%esi
41a720:	7c 0f                	jl     0x41a731
41a722:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a728:	8b ce                	mov    %esi,%ecx
41a72a:	8b c3                	mov    %ebx,%eax
41a72c:	e8 47 f4 ff ff       	call   0x419b78
41a731:	85 ff                	test   %edi,%edi
41a733:	7c 05                	jl     0x41a73a
41a735:	3b 7b 14             	cmp    0x14(%ebx),%edi
41a738:	7c 0f                	jl     0x41a749
41a73a:	8b 15 ec 47 47 00    	mov    0x4747ec,%edx
41a740:	8b cf                	mov    %edi,%ecx
41a742:	8b c3                	mov    %ebx,%eax
41a744:	e8 2f f4 ff ff       	call   0x419b78
41a749:	8b c3                	mov    %ebx,%eax
41a74b:	8b 10                	mov    (%eax),%edx
41a74d:	ff 92 84 00 00 00    	call   *0x84(%edx)
41a753:	8b cf                	mov    %edi,%ecx
41a755:	8b d6                	mov    %esi,%edx
41a757:	8b c3                	mov    %ebx,%eax
41a759:	e8 0e 00 00 00       	call   0x41a76c