40c451:	c7 05 5c 1f 43 00 01 	movl   $0x1,0x431f5c
40c458:	00 00 00
40c45b:	59                   	pop    %ecx
40c45c:	e9 88 00 00 00       	jmp    0x40c4e9
40c461:	33 d2                	xor    %edx,%edx
40c463:	42                   	inc    %edx
40c464:	eb ca                	jmp    0x40c430
40c466:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c46c:	eb 12                	jmp    0x40c480
40c46e:	8b 15 b0 10 41 00    	mov    0x4110b0,%edx
40c474:	f7 da                	neg    %edx
40c476:	83 ff 02             	cmp    $0x2,%edi
40c479:	74 b5                	je     0x40c430
40c47b:	83 ff 03             	cmp    $0x3,%edi
40c47e:	74 b0                	je     0x40c430
40c480:	85 d2                	test   %edx,%edx
40c482:	0f 84 81 00 00 00    	je     0x40c509
40c488:	51                   	push   %ecx
40c489:	8b cb                	mov    %ebx,%ecx
40c48b:	e8 ef 00 00 00       	call   0x40c57f
40c490:	85 c0                	test   %eax,%eax
40c492:	74 75                	je     0x40c509
40c494:	66 a1 3c 13 41 00    	mov    0x41133c,%ax
40c49a:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40c4a0:	66 3b f0             	cmp    %ax,%si
40c4a3:	76 0a                	jbe    0x40c4af
40c4a5:	0f b7 d1             	movzwl %cx,%edx
40c4a8:	2b f2                	sub    %edx,%esi
40c4aa:	66 3b f0             	cmp    %ax,%si
40c4ad:	77 f9                	ja     0x40c4a8
40c4af:	66 a1 80 26 43 00    	mov    0x432680,%ax
40c4b5:	66 3b f0             	cmp    %ax,%si
40c4b8:	73 0a                	jae    0x40c4c4
40c4ba:	0f b7 c9             	movzwl %cx,%ecx
40c4bd:	03 f1                	add    %ecx,%esi
40c4bf:	66 3b f0             	cmp    %ax,%si
40c4c2:	72 f9                	jb     0x40c4bd
40c4c4:	8b 15 48 26 43 00    	mov    0x432648,%edx
40c4ca:	6a 20                	push   $0x20
40c4cc:	59                   	pop    %ecx
40c4cd:	eb 06                	jmp    0x40c4d5
40c4cf:	81 c6 ff ff 00 00    	add    $0xffff,%esi
40c4d5:	0f b7 c6             	movzwl %si,%eax
40c4d8:	66 39 0c 42          	cmp    %cx,(%edx,%eax,2)
40c4dc:	74 f1                	je     0x40c4cf
40c4de:	eb 0f                	jmp    0x40c4ef
40c4e0:	81 c6 ff ff 00 00    	add    $0xffff,%esi
40c4e6:	0f b7 c6             	movzwl %si,%eax
40c4e9:	66 39 0c 42          	cmp    %cx,(%edx,%eax,2)
40c4ed:	74 f1                	je     0x40c4e0
40c4ef:	83 3d 90 1f 43 00 00 	cmpl   $0x0,0x431f90
40c4f6:	66 89 35 c4 1f 43 00 	mov    %si,0x431fc4
40c4fd:	74 0a                	je     0x40c509
40c4ff:	b9 70 1f 43 00       	mov    $0x431f70,%ecx
40c504:	e8 cd 0d 00 00       	call   0x40d2d6
40c509:	5f                   	pop    %edi
40c50a:	5e                   	pop    %esi
40c50b:	5b                   	pop    %ebx
40c50c:	5d                   	pop    %ebp
40c50d:	c2 04 00             	ret    $0x4
40c510:	f7 da                	neg    %edx
40c512:	53                   	push   %ebx
40c513:	1b d2                	sbb    %edx,%edx
40c515:	8b d9                	mov    %ecx,%ebx
40c517:	56                   	push   %esi
40c518:	0f b7 35 7c 26 43 00 	movzwl 0x43267c,%esi
40c51f:	81 e2 70 fe ff ff    	and    $0xfffffe70,%edx
40c525:	57                   	push   %edi
40c526:	0f b7 3d 80 26 43 00 	movzwl 0x432680,%edi
40c52d:	81 c2 c8 00 00 00    	add    $0xc8,%edx
40c533:	8d 04 17             	lea    (%edi,%edx,1),%eax
40c536:	3b c6                	cmp    %esi,%eax
40c538:	7d 04                	jge    0x40c53e
40c53a:	2b f7                	sub    %edi,%esi
40c53c:	eb 2b                	jmp    0x40c569
40c53e:	0f b7 3d 3c 13 41 00 	movzwl 0x41133c,%edi
40c545:	8b f2                	mov    %edx,%esi
40c547:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40c54e:	8d 04 17             	lea    (%edi,%edx,1),%eax
40c551:	3b c1                	cmp    %ecx,%eax
40c553:	7e 14                	jle    0x40c569
40c555:	2b cf                	sub    %edi,%ecx
40c557:	8d 41 ff             	lea    -0x1(%ecx),%eax
40c55a:	8b 0d b0 10 41 00    	mov    0x4110b0,%ecx
40c560:	99                   	cltd
40c561:	f7 f9                	idiv   %ecx
40c563:	8d 70 01             	lea    0x1(%eax),%esi
40c566:	0f af f1             	imul   %ecx,%esi
40c569:	51                   	push   %ecx
40c56a:	8b d6                	mov    %esi,%edx
40c56c:	8b cb                	mov    %ebx,%ecx
40c56e:	e8 0c 00 00 00       	call   0x40c57f
40c573:	f7 d8                	neg    %eax
40c575:	5f                   	pop    %edi
40c576:	1b c0                	sbb    %eax,%eax
40c578:	23 c6                	and    %esi,%eax
40c57a:	5e                   	pop    %esi
40c57b:	5b                   	pop    %ebx
40c57c:	c2 04 00             	ret    $0x4
40c57f:	8b ff                	mov    %edi,%edi
40c581:	55                   	push   %ebp
40c582:	8b ec                	mov    %esp,%ebp
40c584:	51                   	push   %ecx
40c585:	51                   	push   %ecx
40c586:	0f b7 05 7c 26 43 00 	movzwl 0x43267c,%eax
40c58d:	53                   	push   %ebx
40c58e:	56                   	push   %esi
40c58f:	0f b7 35 80 26 43 00 	movzwl 0x432680,%esi
40c596:	8b d9                	mov    %ecx,%ebx
40c598:	57                   	push   %edi
40c599:	0f b7 3d 3c 13 41 00 	movzwl 0x41133c,%edi
40c5a0:	03 f2                	add    %edx,%esi
40c5a2:	03 fa                	add    %edx,%edi
40c5a4:	3b f0                	cmp    %eax,%esi
40c5a6:	0f 8c f7 00 00 00    	jl     0x40c6a3
40c5ac:	a1 b0 10 41 00       	mov    0x4110b0,%eax
40c5b1:	0f b7 0d 38 13 41 00 	movzwl 0x411338,%ecx
40c5b8:	48                   	dec    %eax
40c5b9:	03 c1                	add    %ecx,%eax
40c5bb:	3b f8                	cmp    %eax,%edi
40c5bd:	0f 8f e0 00 00 00    	jg     0x40c6a3
40c5c3:	6a 6c                	push   $0x6c
40c5c5:	53                   	push   %ebx
40c5c6:	ff 15 14 33 43 00    	call   *0x433314
40c5cc:	68 cc 00 00 00       	push   $0xcc
40c5d1:	53                   	push   %ebx
40c5d2:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c5d5:	ff 15 14 33 43 00    	call   *0x433314
40c5db:	0f b7 0d 7c 26 43 00 	movzwl 0x43267c,%ecx
40c5e2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c5e5:	8b c6                	mov    %esi,%eax
40c5e7:	2b c1                	sub    %ecx,%eax
40c5e9:	99                   	cltd
40c5ea:	f7 3d b0 10 41 00    	idivl  0x4110b0
40c5f0:	6a 01                	push   $0x1
40c5f2:	50                   	push   %eax
40c5f3:	6a 02                	push   $0x2
40c5f5:	ff 75 fc             	push   -0x4(%ebp)
40c5f8:	ff 15 d0 32 43 00    	call   *0x4332d0
40c5fe:	57                   	push   %edi
40c5ff:	8b d6                	mov    %esi,%edx
40c601:	8b cb                	mov    %ebx,%ecx
40c603:	e8 f8 13 00 00       	call   0x40da00
40c608:	85 db                	test   %ebx,%ebx
40c60a:	74 78                	je     0x40c684
40c60c:	53                   	push   %ebx
40c60d:	ff 15 f0 32 43 00    	call   *0x4332f0
40c613:	8b f8                	mov    %eax,%edi
40c615:	85 ff                	test   %edi,%edi
40c617:	74 6b                	je     0x40c684
40c619:	ff 35 cc 1f 43 00    	push   0x431fcc
40c61f:	57                   	push   %edi
40c620:	ff 15 ac 30 43 00    	call   *0x4330ac
40c626:	0f b7 15 80 26 43 00 	movzwl 0x432680,%edx
40c62d:	8b f0                	mov    %eax,%esi
40c62f:	51                   	push   %ecx
40c630:	0f b7 0d 3c 13 41 00 	movzwl 0x41133c,%ecx
40c637:	68 d8 1f 43 00       	push   $0x431fd8
40c63c:	51                   	push   %ecx
40c63d:	8b cf                	mov    %edi,%ecx
40c63f:	e8 a7 85 ff ff       	call   0x404beb
40c644:	56                   	push   %esi
40c645:	57                   	push   %edi
40c646:	ff 15 ac 30 43 00    	call   *0x4330ac
40c64c:	0f b7 0d 3c 13 41 00 	movzwl 0x41133c,%ecx
40c653:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40c65a:	3b c1                	cmp    %ecx,%eax
40c65c:	77 1e                	ja     0x40c67c
40c65e:	2b c8                	sub    %eax,%ecx
40c660:	be d8 1f 43 00       	mov    $0x431fd8,%esi
40c665:	41                   	inc    %ecx
40c666:	a1 70 1f 43 00       	mov    0x431f70,%eax
40c66b:	2b 06                	sub    (%esi),%eax
40c66d:	99                   	cltd
40c66e:	2b c2                	sub    %edx,%eax
40c670:	d1 f8                	sar    $1,%eax
40c672:	89 06                	mov    %eax,(%esi)
40c674:	8d 76 04             	lea    0x4(%esi),%esi
40c677:	83 e9 01             	sub    $0x1,%ecx
40c67a:	75 ea                	jne    0x40c666
40c67c:	57                   	push   %edi
40c67d:	53                   	push   %ebx
40c67e:	ff 15 08 33 43 00    	call   *0x433308
40c684:	6a 01                	push   $0x1
40c686:	6a 00                	push   $0x0
40c688:	ff 75 fc             	push   -0x4(%ebp)
40c68b:	ff 15 fc 31 43 00    	call   *0x4331fc
40c691:	6a 01                	push   $0x1
40c693:	6a 00                	push   $0x0
40c695:	ff 75 f8             	push   -0x8(%ebp)
40c698:	ff 15 fc 31 43 00    	call   *0x4331fc
40c69e:	33 c0                	xor    %eax,%eax
40c6a0:	40                   	inc    %eax
40c6a1:	eb 02                	jmp    0x40c6a5
40c6a3:	33 c0                	xor    %eax,%eax
40c6a5:	5f                   	pop    %edi
40c6a6:	5e                   	pop    %esi
40c6a7:	5b                   	pop    %ebx
40c6a8:	c9                   	leave
40c6a9:	c2 04 00             	ret    $0x4
40c6ac:	8b ff                	mov    %edi,%edi
40c6ae:	55                   	push   %ebp
40c6af:	8b ec                	mov    %esp,%ebp
40c6b1:	51                   	push   %ecx
40c6b2:	53                   	push   %ebx
40c6b3:	56                   	push   %esi
40c6b4:	57                   	push   %edi
40c6b5:	8b fa                	mov    %edx,%edi
40c6b7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c6ba:	0f b7 c7             	movzwl %di,%eax
40c6bd:	48                   	dec    %eax
40c6be:	99                   	cltd
40c6bf:	f7 39                	idivl  (%ecx)
40c6c1:	85 c0                	test   %eax,%eax
40c6c3:	79 04                	jns    0x40c6c9
40c6c5:	33 c9                	xor    %ecx,%ecx
40c6c7:	eb 02                	jmp    0x40c6cb
40c6c9:	8b c8                	mov    %eax,%ecx
40c6cb:	8b 1d b0 10 41 00    	mov    0x4110b0,%ebx
40c6d1:	8d 73 ff             	lea    -0x1(%ebx),%esi
40c6d4:	3b f1                	cmp    %ecx,%esi
40c6d6:	7c 0a                	jl     0x40c6e2
40c6d8:	85 c0                	test   %eax,%eax
40c6da:	79 04                	jns    0x40c6e0
40c6dc:	33 f6                	xor    %esi,%esi
40c6de:	eb 02                	jmp    0x40c6e2
40c6e0:	8b f0                	mov    %eax,%esi
40c6e2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40c6e5:	c1 ef 10             	shr    $0x10,%edi
40c6e8:	8d 47 ff             	lea    -0x1(%edi),%eax
40c6eb:	99                   	cltd
40c6ec:	f7 79 04             	idivl  0x4(%ecx)
40c6ef:	85 c0                	test   %eax,%eax
40c6f1:	78 0b                	js     0x40c6fe
40c6f3:	6a 09                	push   $0x9
40c6f5:	59                   	pop    %ecx
40c6f6:	3b c1                	cmp    %ecx,%eax
40c6f8:	7f 0a                	jg     0x40c704
40c6fa:	85 c0                	test   %eax,%eax
40c6fc:	79 04                	jns    0x40c702
40c6fe:	33 c9                	xor    %ecx,%ecx
40c700:	eb 02                	jmp    0x40c704
40c702:	8b c8                	mov    %eax,%ecx
40c704:	0f b7 05 80 26 43 00 	movzwl 0x432680,%eax
40c70b:	0f af cb             	imul   %ebx,%ecx
40c70e:	5f                   	pop    %edi
40c70f:	03 ce                	add    %esi,%ecx
40c711:	5e                   	pop    %esi
40c712:	03 c1                	add    %ecx,%eax
40c714:	5b                   	pop    %ebx
40c715:	c9                   	leave
40c716:	c3                   	ret
40c717:	8b ff                	mov    %edi,%edi
40c719:	55                   	push   %ebp
40c71a:	8b ec                	mov    %esp,%ebp
40c71c:	53                   	push   %ebx
40c71d:	56                   	push   %esi
40c71e:	57                   	push   %edi
40c71f:	8b da                	mov    %edx,%ebx
40c721:	8b f9                	mov    %ecx,%edi
40c723:	53                   	push   %ebx
40c724:	ff 15 f0 32 43 00    	call   *0x4332f0
40c72a:	ff 75 10             	push   0x10(%ebp)
40c72d:	8b f0                	mov    %eax,%esi
40c72f:	8b cf                	mov    %edi,%ecx
40c731:	ff 75 0c             	push   0xc(%ebp)
40c734:	8b d6                	mov    %esi,%edx
40c736:	ff 75 08             	push   0x8(%ebp)
40c739:	e8 fb 05 00 00       	call   0x40cd39
40c73e:	56                   	push   %esi
40c73f:	53                   	push   %ebx
40c740:	ff 15 08 33 43 00    	call   *0x433308
40c746:	5f                   	pop    %edi
40c747:	5e                   	pop    %esi
40c748:	5b                   	pop    %ebx
40c749:	5d                   	pop    %ebp
40c74a:	c2 0c 00             	ret    $0xc
40c74d:	8b ff                	mov    %edi,%edi
40c74f:	55                   	push   %ebp
40c750:	8b ec                	mov    %esp,%ebp
40c752:	83 ec 14             	sub    $0x14,%esp
40c755:	56                   	push   %esi
40c756:	8b 75 14             	mov    0x14(%ebp),%esi
40c759:	89 55 f8             	mov    %edx,-0x8(%ebp)
40c75c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40c75f:	85 f6                	test   %esi,%esi
40c761:	75 07                	jne    0x40c76a
40c763:	33 c0                	xor    %eax,%eax
40c765:	e9 ad 00 00 00       	jmp    0x40c817
40c76a:	53                   	push   %ebx
40c76b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40c76e:	57                   	push   %edi
40c76f:	53                   	push   %ebx
40c770:	8b 03                	mov    (%ebx),%eax
40c772:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c775:	c1 f8 1f             	sar    $0x1f,%eax
40c778:	83 e0 fe             	and    $0xfffffffe,%eax
40c77b:	40                   	inc    %eax
40c77c:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c77f:	ff 15 b0 30 43 00    	call   *0x4330b0
40c785:	8b f8                	mov    %eax,%edi
40c787:	57                   	push   %edi
40c788:	ff 75 fc             	push   -0x4(%ebp)
40c78b:	ff 15 ac 30 43 00    	call   *0x4330ac
40c791:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c794:	eb 27                	jmp    0x40c7bd
40c796:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c799:	39 46 28             	cmp    %eax,0x28(%esi)
40c79c:	74 2e                	je     0x40c7cc
40c79e:	8b 45 f4             	mov    -0xc(%ebp),%eax
40c7a1:	29 03                	sub    %eax,(%ebx)
40c7a3:	57                   	push   %edi
40c7a4:	ff 15 b4 30 43 00    	call   *0x4330b4
40c7aa:	53                   	push   %ebx
40c7ab:	ff 15 b0 30 43 00    	call   *0x4330b0
40c7b1:	8b f8                	mov    %eax,%edi
40c7b3:	57                   	push   %edi
40c7b4:	ff 75 fc             	push   -0x4(%ebp)
40c7b7:	ff 15 ac 30 43 00    	call   *0x4330ac
40c7bd:	56                   	push   %esi
40c7be:	ff 75 fc             	push   -0x4(%ebp)
40c7c1:	ff 15 98 30 43 00    	call   *0x433098
40c7c7:	83 3b 00             	cmpl   $0x0,(%ebx)
40c7ca:	75 ca                	jne    0x40c796
40c7cc:	8b 45 f8             	mov    -0x8(%ebp),%eax
40c7cf:	39 46 28             	cmp    %eax,0x28(%esi)
40c7d2:	75 05                	jne    0x40c7d9
40c7d4:	83 3e 00             	cmpl   $0x0,(%esi)
40c7d7:	75 28                	jne    0x40c801
40c7d9:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c7dc:	57                   	push   %edi
40c7dd:	89 03                	mov    %eax,(%ebx)
40c7df:	ff 15 b4 30 43 00    	call   *0x4330b4
40c7e5:	53                   	push   %ebx
40c7e6:	ff 15 b0 30 43 00    	call   *0x4330b0
40c7ec:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40c7ef:	8b f8                	mov    %eax,%edi
40c7f1:	57                   	push   %edi
40c7f2:	53                   	push   %ebx
40c7f3:	ff 15 ac 30 43 00    	call   *0x4330ac
40c7f9:	56                   	push   %esi
40c7fa:	53                   	push   %ebx
40c7fb:	ff 15 98 30 43 00    	call   *0x433098
40c801:	8b 45 10             	mov    0x10(%ebp),%eax
40c804:	89 38                	mov    %edi,(%eax)
40c806:	8b 45 0c             	mov    0xc(%ebp),%eax
40c809:	5f                   	pop    %edi
40c80a:	5b                   	pop    %ebx
40c80b:	85 c0                	test   %eax,%eax
40c80d:	74 05                	je     0x40c814