40b492:	6a 01                	push   $0x1
40b494:	6a 00                	push   $0x0
40b496:	6a 00                	push   $0x0
40b498:	50                   	push   %eax
40b499:	e8 12 f1 00 00       	call   0x41a5b0
40b49e:	33 c9                	xor    %ecx,%ecx
40b4a0:	03 c6                	add    %esi,%eax
40b4a2:	13 d1                	adc    %ecx,%edx
40b4a4:	5e                   	pop    %esi
40b4a5:	c3                   	ret
40b4a6:	51                   	push   %ecx
40b4a7:	51                   	push   %ecx
40b4a8:	53                   	push   %ebx
40b4a9:	55                   	push   %ebp
40b4aa:	56                   	push   %esi
40b4ab:	8b f1                	mov    %ecx,%esi
40b4ad:	8b 46 18             	mov    0x18(%esi),%eax
40b4b0:	33 ed                	xor    %ebp,%ebp
40b4b2:	57                   	push   %edi
40b4b3:	89 6c 24 10          	mov    %ebp,0x10(%esp)
40b4b7:	89 6c 24 14          	mov    %ebp,0x14(%esp)
40b4bb:	3b 46 14             	cmp    0x14(%esi),%eax
40b4be:	73 34                	jae    0x40b4f4
40b4c0:	8b 3e                	mov    (%esi),%edi
40b4c2:	8b 46 18             	mov    0x18(%esi),%eax
40b4c5:	8d 48 01             	lea    0x1(%eax),%ecx
40b4c8:	89 4e 18             	mov    %ecx,0x18(%esi)
40b4cb:	8a 1c 07             	mov    (%edi,%eax,1),%bl
40b4ce:	8a c3                	mov    %bl,%al
40b4d0:	24 7f                	and    $0x7f,%al
40b4d2:	0f b6 c0             	movzbl %al,%eax
40b4d5:	99                   	cltd
40b4d6:	8b cd                	mov    %ebp,%ecx
40b4d8:	e8 13 14 01 00       	call   0x41c8f0
40b4dd:	01 44 24 10          	add    %eax,0x10(%esp)
40b4e1:	11 54 24 14          	adc    %edx,0x14(%esp)
40b4e5:	84 db                	test   %bl,%bl
40b4e7:	79 16                	jns    0x40b4ff
40b4e9:	8b 46 18             	mov    0x18(%esi),%eax
40b4ec:	83 c5 07             	add    $0x7,%ebp
40b4ef:	3b 46 14             	cmp    0x14(%esi),%eax
40b4f2:	72 ce                	jb     0x40b4c2
40b4f4:	33 c0                	xor    %eax,%eax
40b4f6:	33 d2                	xor    %edx,%edx
40b4f8:	5f                   	pop    %edi
40b4f9:	5e                   	pop    %esi
40b4fa:	5d                   	pop    %ebp
40b4fb:	5b                   	pop    %ebx
40b4fc:	59                   	pop    %ecx
40b4fd:	59                   	pop    %ecx
40b4fe:	c3                   	ret
40b4ff:	8b 44 24 10          	mov    0x10(%esp),%eax
40b503:	8b 54 24 14          	mov    0x14(%esp),%edx
40b507:	eb ef                	jmp    0x40b4f8
40b509:	8b 51 14             	mov    0x14(%ecx),%edx
40b50c:	56                   	push   %esi
40b50d:	8b 74 24 08          	mov    0x8(%esp),%esi
40b511:	8b c6                	mov    %esi,%eax
40b513:	3b f2                	cmp    %edx,%esi
40b515:	73 0d                	jae    0x40b524
40b517:	8b 09                	mov    (%ecx),%ecx
40b519:	f6 04 01 80          	testb  $0x80,(%ecx,%eax,1)
40b51d:	74 0b                	je     0x40b52a
40b51f:	40                   	inc    %eax
40b520:	3b c2                	cmp    %edx,%eax
40b522:	72 f5                	jb     0x40b519
40b524:	33 c0                	xor    %eax,%eax
40b526:	5e                   	pop    %esi
40b527:	c2 04 00             	ret    $0x4
40b52a:	2b c6                	sub    %esi,%eax
40b52c:	40                   	inc    %eax
40b52d:	eb f7                	jmp    0x40b526
40b52f:	53                   	push   %ebx
40b530:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40b534:	56                   	push   %esi
40b535:	8b f1                	mov    %ecx,%esi
40b537:	8b 46 18             	mov    0x18(%esi),%eax
40b53a:	57                   	push   %edi
40b53b:	8b 7e 14             	mov    0x14(%esi),%edi
40b53e:	2b f8                	sub    %eax,%edi
40b540:	3b fb                	cmp    %ebx,%edi
40b542:	72 02                	jb     0x40b546
40b544:	8b fb                	mov    %ebx,%edi
40b546:	85 ff                	test   %edi,%edi
40b548:	76 12                	jbe    0x40b55c
40b54a:	8b 0e                	mov    (%esi),%ecx
40b54c:	57                   	push   %edi
40b54d:	03 c8                	add    %eax,%ecx
40b54f:	51                   	push   %ecx
40b550:	ff 74 24 18          	push   0x18(%esp)
40b554:	e8 17 07 01 00       	call   0x41bc70
40b559:	83 c4 0c             	add    $0xc,%esp
40b55c:	3b df                	cmp    %edi,%ebx
40b55e:	76 14                	jbe    0x40b574
40b560:	8b 44 24 10          	mov    0x10(%esp),%eax
40b564:	2b df                	sub    %edi,%ebx
40b566:	53                   	push   %ebx
40b567:	03 c7                	add    %edi,%eax
40b569:	6a 00                	push   $0x0
40b56b:	50                   	push   %eax
40b56c:	e8 8f ec 00 00       	call   0x41a200
40b571:	83 c4 0c             	add    $0xc,%esp
40b574:	01 7e 18             	add    %edi,0x18(%esi)
40b577:	8b c7                	mov    %edi,%eax
40b579:	5f                   	pop    %edi
40b57a:	5e                   	pop    %esi
40b57b:	5b                   	pop    %ebx
40b57c:	c2 08 00             	ret    $0x8
40b57f:	8b 51 14             	mov    0x14(%ecx),%edx
40b582:	83 fa 02             	cmp    $0x2,%edx
40b585:	77 04                	ja     0x40b58b
40b587:	33 c0                	xor    %eax,%eax
40b589:	eb 21                	jmp    0x40b5ac
40b58b:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
40b590:	74 03                	je     0x40b595
40b592:	8b 51 18             	mov    0x18(%ecx),%edx
40b595:	8b 01                	mov    (%ecx),%eax
40b597:	40                   	inc    %eax
40b598:	83 c2 fe             	add    $0xfffffffe,%edx
40b59b:	52                   	push   %edx
40b59c:	40                   	inc    %eax
40b59d:	50                   	push   %eax
40b59e:	6a ff                	push   $0xffffffff
40b5a0:	e8 d8 a1 ff ff       	call   0x40577d
40b5a5:	f7 d0                	not    %eax
40b5a7:	25 ff ff 00 00       	and    $0xffff,%eax
40b5ac:	c2 04 00             	ret    $0x4
40b5af:	8b 51 14             	mov    0x14(%ecx),%edx
40b5b2:	83 fa 04             	cmp    $0x4,%edx
40b5b5:	77 04                	ja     0x40b5bb
40b5b7:	83 c8 ff             	or     $0xffffffff,%eax
40b5ba:	c3                   	ret
40b5bb:	8b 01                	mov    (%ecx),%eax
40b5bd:	83 c2 fc             	add    $0xfffffffc,%edx
40b5c0:	52                   	push   %edx
40b5c1:	83 c0 04             	add    $0x4,%eax
40b5c4:	50                   	push   %eax
40b5c5:	6a ff                	push   $0xffffffff
40b5c7:	e8 b1 a1 ff ff       	call   0x40577d
40b5cc:	f7 d0                	not    %eax
40b5ce:	c3                   	ret
40b5cf:	8b 54 24 04          	mov    0x4(%esp),%edx
40b5d3:	8b c1                	mov    %ecx,%eax
40b5d5:	33 c9                	xor    %ecx,%ecx
40b5d7:	89 08                	mov    %ecx,(%eax)
40b5d9:	89 48 08             	mov    %ecx,0x8(%eax)
40b5dc:	89 48 0c             	mov    %ecx,0xc(%eax)
40b5df:	89 50 10             	mov    %edx,0x10(%eax)
40b5e2:	89 48 04             	mov    %ecx,0x4(%eax)
40b5e5:	89 48 18             	mov    %ecx,0x18(%eax)
40b5e8:	89 48 14             	mov    %ecx,0x14(%eax)
40b5eb:	89 48 1c             	mov    %ecx,0x1c(%eax)
40b5ee:	c2 04 00             	ret    $0x4
40b5f1:	83 89 58 18 00 00 ff 	orl    $0xffffffff,0x1858(%ecx)
40b5f8:	33 c0                	xor    %eax,%eax
40b5fa:	33 d2                	xor    %edx,%edx
40b5fc:	88 01                	mov    %al,(%ecx)
40b5fe:	88 41 0c             	mov    %al,0xc(%ecx)
40b601:	89 41 20             	mov    %eax,0x20(%ecx)
40b604:	89 41 24             	mov    %eax,0x24(%ecx)
40b607:	c6 41 28 01          	movb   $0x1,0x28(%ecx)
40b60b:	88 41 29             	mov    %al,0x29(%ecx)
40b60e:	88 41 2a             	mov    %al,0x2a(%ecx)
40b611:	88 81 5e 18 00 00    	mov    %al,0x185e(%ecx)
40b617:	88 81 5f 18 00 00    	mov    %al,0x185f(%ecx)
40b61d:	88 81 60 18 00 00    	mov    %al,0x1860(%ecx)
40b623:	89 41 2c             	mov    %eax,0x2c(%ecx)
40b626:	89 41 30             	mov    %eax,0x30(%ecx)
40b629:	89 41 18             	mov    %eax,0x18(%ecx)
40b62c:	89 41 34             	mov    %eax,0x34(%ecx)
40b62f:	88 81 cc 3a 00 00    	mov    %al,0x3acc(%ecx)
40b635:	88 81 cd 3a 00 00    	mov    %al,0x3acd(%ecx)
40b63b:	89 81 88 18 00 00    	mov    %eax,0x1888(%ecx)
40b641:	89 81 8c 18 00 00    	mov    %eax,0x188c(%ecx)
40b647:	89 81 80 18 00 00    	mov    %eax,0x1880(%ecx)
40b64d:	89 81 84 18 00 00    	mov    %eax,0x1884(%ecx)
40b653:	89 81 78 18 00 00    	mov    %eax,0x1878(%ecx)
40b659:	89 81 7c 18 00 00    	mov    %eax,0x187c(%ecx)
40b65f:	89 81 70 18 00 00    	mov    %eax,0x1870(%ecx)
40b665:	89 81 74 18 00 00    	mov    %eax,0x1874(%ecx)
40b66b:	89 41 38             	mov    %eax,0x38(%ecx)
40b66e:	89 41 3c             	mov    %eax,0x3c(%ecx)
40b671:	66 89 91 5c 18 00 00 	mov    %dx,0x185c(%ecx)
40b678:	89 81 98 18 00 00    	mov    %eax,0x1898(%ecx)
40b67e:	89 81 9c 18 00 00    	mov    %eax,0x189c(%ecx)
40b684:	89 81 90 18 00 00    	mov    %eax,0x1890(%ecx)
40b68a:	89 81 94 18 00 00    	mov    %eax,0x1894(%ecx)
40b690:	c3                   	ret
40b691:	55                   	push   %ebp
40b692:	8b ec                	mov    %esp,%ebp
40b694:	80 79 28 00          	cmpb   $0x0,0x28(%ecx)
40b698:	74 5e                	je     0x40b6f8
40b69a:	8b 41 2c             	mov    0x2c(%ecx),%eax
40b69d:	85 c0                	test   %eax,%eax
40b69f:	74 57                	je     0x40b6f8
40b6a1:	8b 91 98 18 00 00    	mov    0x1898(%ecx),%edx
40b6a7:	56                   	push   %esi
40b6a8:	8b b1 9c 18 00 00    	mov    0x189c(%ecx),%esi
40b6ae:	57                   	push   %edi
40b6af:	8b fa                	mov    %edx,%edi
40b6b1:	0b fe                	or     %esi,%edi
40b6b3:	74 18                	je     0x40b6cd
40b6b5:	89 55 10             	mov    %edx,0x10(%ebp)
40b6b8:	8b 91 90 18 00 00    	mov    0x1890(%ecx),%edx
40b6be:	01 55 08             	add    %edx,0x8(%ebp)
40b6c1:	8b 91 94 18 00 00    	mov    0x1894(%ecx),%edx
40b6c7:	89 75 14             	mov    %esi,0x14(%ebp)
40b6ca:	11 55 0c             	adc    %edx,0xc(%ebp)
40b6cd:	ff 75 14             	push   0x14(%ebp)
40b6d0:	ff 75 10             	push   0x10(%ebp)
40b6d3:	ff 75 0c             	push   0xc(%ebp)
40b6d6:	ff 75 08             	push   0x8(%ebp)
40b6d9:	ff b0 1c 68 00 00    	push   0x681c(%eax)
40b6df:	ff b0 18 68 00 00    	push   0x6818(%eax)
40b6e5:	ff b1 8c 18 00 00    	push   0x188c(%ecx)
40b6eb:	ff b1 88 18 00 00    	push   0x1888(%ecx)
40b6f1:	e8 58 5c 00 00       	call   0x41134e
40b6f6:	5f                   	pop    %edi
40b6f7:	5e                   	pop    %esi
40b6f8:	5d                   	pop    %ebp
40b6f9:	c2 10 00             	ret    $0x10
40b6fc:	8b 44 24 04          	mov    0x4(%esp),%eax
40b700:	85 c0                	test   %eax,%eax
40b702:	74 03                	je     0x40b707
40b704:	89 41 2c             	mov    %eax,0x2c(%ecx)
40b707:	8b 44 24 08          	mov    0x8(%esp),%eax
40b70b:	85 c0                	test   %eax,%eax
40b70d:	74 03                	je     0x40b712
40b70f:	89 41 30             	mov    %eax,0x30(%ecx)
40b712:	83 89 58 18 00 00 ff 	orl    $0xffffffff,0x1858(%ecx)
40b719:	c2 08 00             	ret    $0x8
40b71c:	55                   	push   %ebp
40b71d:	8b ec                	mov    %esp,%ebp
40b71f:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40b723:	56                   	push   %esi
40b724:	ff 75 20             	push   0x20(%ebp)
40b727:	8b f1                	mov    %ecx,%esi
40b729:	ff 75 24             	push   0x24(%ebp)
40b72c:	ff 75 1c             	push   0x1c(%ebp)
40b72f:	ff 75 18             	push   0x18(%ebp)
40b732:	ff 75 14             	push   0x14(%ebp)
40b735:	ff 75 10             	push   0x10(%ebp)
40b738:	ff 75 0c             	push   0xc(%ebp)
40b73b:	74 12                	je     0x40b74f
40b73d:	6a 01                	push   $0x1
40b73f:	8d 4e 40             	lea    0x40(%esi),%ecx
40b742:	e8 f0 a9 ff ff       	call   0x406137
40b747:	88 86 cc 3a 00 00    	mov    %al,0x3acc(%esi)
40b74d:	eb 13                	jmp    0x40b762
40b74f:	6a 00                	push   $0x0
40b751:	8d 8e 4c 0c 00 00    	lea    0xc4c(%esi),%ecx
40b757:	e8 db a9 ff ff       	call   0x406137
40b75c:	88 86 cd 3a 00 00    	mov    %al,0x3acd(%esi)
40b762:	5e                   	pop    %esi
40b763:	5d                   	pop    %ebp
40b764:	c2 20 00             	ret    $0x20
40b767:	8b 44 24 04          	mov    0x4(%esp),%eax
40b76b:	89 41 14             	mov    %eax,0x14(%ecx)
40b76e:	8b 44 24 08          	mov    0x8(%esp),%eax
40b772:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
40b776:	89 41 10             	mov    %eax,0x10(%ecx)
40b779:	c2 08 00             	ret    $0x8
40b77c:	b8 bd 90 42 00       	mov    $0x4290bd,%eax
40b781:	e8 32 e7 00 00       	call   0x419eb8
40b786:	51                   	push   %ecx
40b787:	56                   	push   %esi
40b788:	8b f1                	mov    %ecx,%esi
40b78a:	8d 4e 40             	lea    0x40(%esi),%ecx
40b78d:	89 75 f0             	mov    %esi,-0x10(%ebp)
40b790:	e8 2c a9 ff ff       	call   0x4060c1
40b795:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40b799:	8d 8e 4c 0c 00 00    	lea    0xc4c(%esi),%ecx
40b79f:	e8 1d a9 ff ff       	call   0x4060c1
40b7a4:	8d 8e a0 18 00 00    	lea    0x18a0(%esi),%ecx
40b7aa:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40b7ae:	e8 43 e2 ff ff       	call   0x4099f6
40b7b3:	8d 8e 04 24 00 00    	lea    0x2404(%esi),%ecx
40b7b9:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
40b7bd:	e8 34 e2 ff ff       	call   0x4099f6
40b7c2:	8d 8e 68 2f 00 00    	lea    0x2f68(%esi),%ecx
40b7c8:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40b7cc:	e8 25 e2 ff ff       	call   0x4099f6
40b7d1:	8b ce                	mov    %esi,%ecx
40b7d3:	e8 19 fe ff ff       	call   0x40b5f1
40b7d8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b7db:	8b c6                	mov    %esi,%eax
40b7dd:	5e                   	pop    %esi
40b7de:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b7e5:	c9                   	leave
40b7e6:	c3                   	ret
40b7e7:	55                   	push   %ebp
40b7e8:	8b ec                	mov    %esp,%ebp
40b7ea:	51                   	push   %ecx
40b7eb:	51                   	push   %ecx
40b7ec:	53                   	push   %ebx
40b7ed:	56                   	push   %esi
40b7ee:	8b f1                	mov    %ecx,%esi
40b7f0:	80 be cd 3a 00 00 00 	cmpb   $0x0,0x3acd(%esi)
40b7f7:	57                   	push   %edi
40b7f8:	74 04                	je     0x40b7fe
40b7fa:	83 65 0c f0          	andl   $0xfffffff0,0xc(%ebp)
40b7fe:	8b 45 08             	mov    0x8(%ebp),%eax
40b801:	33 ff                	xor    %edi,%edi
40b803:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b806:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b809:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40b80c:	0f 86 cb 00 00 00    	jbe    0x40b8dd
40b812:	80 3e 00             	cmpb   $0x0,(%esi)
40b815:	8b 5e 2c             	mov    0x2c(%esi),%ebx
40b818:	74 1a                	je     0x40b834
40b81a:	ff 76 04             	push   0x4(%esi)
40b81d:	ff 76 08             	push   0x8(%esi)
40b820:	ff 75 08             	push   0x8(%ebp)
40b823:	e8 48 04 01 00       	call   0x41bc70
40b828:	8b 7e 04             	mov    0x4(%esi),%edi
40b82b:	83 c4 0c             	add    $0xc,%esp
40b82e:	83 66 04 00          	andl   $0x0,0x4(%esi)
40b832:	eb 5d                	jmp    0x40b891
40b834:	33 c0                	xor    %eax,%eax
40b836:	3b 46 24             	cmp    0x24(%esi),%eax
40b839:	7c 0f                	jl     0x40b84a
40b83b:	7f 08                	jg     0x40b845
40b83d:	8b 45 0c             	mov    0xc(%ebp),%eax
40b840:	3b 46 20             	cmp    0x20(%esi),%eax
40b843:	76 05                	jbe    0x40b84a
40b845:	8b 46 20             	mov    0x20(%esi),%eax
40b848:	eb 03                	jmp    0x40b84d
40b84a:	8b 45 0c             	mov    0xc(%ebp),%eax
40b84d:	85 c0                	test   %eax,%eax
40b84f:	0f 84 ea 00 00 00    	je     0x40b93f
40b855:	83 7b 04 ff          	cmpl   $0xffffffff,0x4(%ebx)
40b859:	0f 84 eb 00 00 00    	je     0x40b94a
40b85f:	8b 13                	mov    (%ebx),%edx
40b861:	50                   	push   %eax
40b862:	ff 75 fc             	push   -0x4(%ebp)
40b865:	8b cb                	mov    %ebx,%ecx
40b867:	ff 52 08             	call   *0x8(%edx)
40b86a:	8b f8                	mov    %eax,%edi
40b86c:	8b 46 38             	mov    0x38(%esi),%eax
40b86f:	85 c0                	test   %eax,%eax
40b871:	75 06                	jne    0x40b879
40b873:	8d 83 c8 57 00 00    	lea    0x57c8(%ebx),%eax
40b879:	80 b8 89 10 00 00 00 	cmpb   $0x0,0x1089(%eax)
40b880:	74 0f                	je     0x40b891
40b882:	57                   	push   %edi
40b883:	ff 75 fc             	push   -0x4(%ebp)
40b886:	8d 8e a0 18 00 00    	lea    0x18a0(%esi),%ecx
40b88c:	e8 b1 df ff ff       	call   0x409842
40b891:	8b c7                	mov    %edi,%eax
40b893:	99                   	cltd