40d51d:	74 5f                	je     0x40d57e
40d51f:	33 f6                	xor    %esi,%esi
40d521:	46                   	inc    %esi
40d522:	56                   	push   %esi
40d523:	50                   	push   %eax
40d524:	e8 7c a6 ff ff       	call   0x407ba5
40d529:	8b f8                	mov    %eax,%edi
40d52b:	59                   	pop    %ecx
40d52c:	59                   	pop    %ecx
40d52d:	3b fb                	cmp    %ebx,%edi
40d52f:	74 4d                	je     0x40d57e
40d531:	53                   	push   %ebx
40d532:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
40d538:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
40d53e:	57                   	push   %edi
40d53f:	ff 75 14             	push   0x14(%ebp)
40d542:	ff 75 10             	push   0x10(%ebp)
40d545:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
40d54b:	e8 cb 83 00 00       	call   0x41591b
40d550:	8b f0                	mov    %eax,%esi
40d552:	83 c4 18             	add    $0x18,%esp
40d555:	3b f3                	cmp    %ebx,%esi
40d557:	74 1e                	je     0x40d577
40d559:	6a 01                	push   $0x1
40d55b:	56                   	push   %esi
40d55c:	e8 44 a6 ff ff       	call   0x407ba5
40d561:	59                   	pop    %ecx
40d562:	59                   	pop    %ecx
40d563:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
40d569:	89 01                	mov    %eax,(%ecx)
40d56b:	3b c3                	cmp    %ebx,%eax
40d56d:	75 21                	jne    0x40d590
40d56f:	39 9d 78 ff ff ff    	cmp    %ebx,-0x88(%ebp)
40d575:	74 07                	je     0x40d57e
40d577:	57                   	push   %edi
40d578:	e8 a3 7a ff ff       	call   0x405020
40d57d:	59                   	pop    %ecx
40d57e:	83 c8 ff             	or     $0xffffffff,%eax
40d581:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d584:	5f                   	pop    %edi
40d585:	5e                   	pop    %esi
40d586:	33 cd                	xor    %ebp,%ecx
40d588:	5b                   	pop    %ebx
40d589:	e8 98 90 ff ff       	call   0x406626
40d58e:	c9                   	leave
40d58f:	c3                   	ret
40d590:	8d 4e ff             	lea    -0x1(%esi),%ecx
40d593:	51                   	push   %ecx
40d594:	57                   	push   %edi
40d595:	56                   	push   %esi
40d596:	50                   	push   %eax
40d597:	e8 0a 25 00 00       	call   0x40faa6
40d59c:	83 c4 10             	add    $0x10,%esp
40d59f:	85 c0                	test   %eax,%eax
40d5a1:	74 0d                	je     0x40d5b0
40d5a3:	53                   	push   %ebx
40d5a4:	53                   	push   %ebx
40d5a5:	53                   	push   %ebx
40d5a6:	53                   	push   %ebx
40d5a7:	53                   	push   %ebx
40d5a8:	e8 50 7b ff ff       	call   0x4050fd
40d5ad:	83 c4 14             	add    $0x14,%esp
40d5b0:	39 9d 78 ff ff ff    	cmp    %ebx,-0x88(%ebp)
40d5b6:	74 07                	je     0x40d5bf
40d5b8:	57                   	push   %edi
40d5b9:	e8 62 7a ff ff       	call   0x405020
40d5be:	59                   	pop    %ecx
40d5bf:	33 c0                	xor    %eax,%eax
40d5c1:	eb be                	jmp    0x40d581
40d5c3:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40d5c6:	75 b6                	jne    0x40d57e
40d5c8:	53                   	push   %ebx
40d5c9:	6a 04                	push   $0x4
40d5cb:	bf e8 0d 43 00       	mov    $0x430de8,%edi
40d5d0:	57                   	push   %edi
40d5d1:	ff 75 14             	push   0x14(%ebp)
40d5d4:	ff 75 10             	push   0x10(%ebp)
40d5d7:	50                   	push   %eax
40d5d8:	e8 cb 81 00 00       	call   0x4157a8
40d5dd:	83 c4 18             	add    $0x18,%esp
40d5e0:	85 c0                	test   %eax,%eax
40d5e2:	74 9a                	je     0x40d57e
40d5e4:	88 1e                	mov    %bl,(%esi)
40d5e6:	8a 1f                	mov    (%edi),%bl
40d5e8:	0f b6 c3             	movzbl %bl,%eax
40d5eb:	50                   	push   %eax
40d5ec:	e8 d2 aa ff ff       	call   0x4080c3
40d5f1:	59                   	pop    %ecx
40d5f2:	85 c0                	test   %eax,%eax
40d5f4:	74 c9                	je     0x40d5bf
40d5f6:	8a 06                	mov    (%esi),%al
40d5f8:	b1 0a                	mov    $0xa,%cl
40d5fa:	f6 e9                	imul   %cl
40d5fc:	02 c3                	add    %bl,%al
40d5fe:	2c 30                	sub    $0x30,%al
40d600:	47                   	inc    %edi
40d601:	47                   	inc    %edi
40d602:	81 ff f0 0d 43 00    	cmp    $0x430df0,%edi
40d608:	88 06                	mov    %al,(%esi)
40d60a:	7c da                	jl     0x40d5e6
40d60c:	eb b1                	jmp    0x40d5bf
40d60e:	8b ff                	mov    %edi,%edi
40d610:	55                   	push   %ebp
40d611:	8b ec                	mov    %esp,%ebp
40d613:	8b 45 08             	mov    0x8(%ebp),%eax
40d616:	a3 f0 0d 43 00       	mov    %eax,0x430df0
40d61b:	5d                   	pop    %ebp
40d61c:	c3                   	ret
40d61d:	8b ff                	mov    %edi,%edi
40d61f:	55                   	push   %ebp
40d620:	8b ec                	mov    %esp,%ebp
40d622:	8b 45 08             	mov    0x8(%ebp),%eax
40d625:	a3 14 0e 43 00       	mov    %eax,0x430e14
40d62a:	a3 18 0e 43 00       	mov    %eax,0x430e18
40d62f:	a3 1c 0e 43 00       	mov    %eax,0x430e1c
40d634:	a3 20 0e 43 00       	mov    %eax,0x430e20
40d639:	5d                   	pop    %ebp
40d63a:	c3                   	ret
40d63b:	8b ff                	mov    %edi,%edi
40d63d:	55                   	push   %ebp
40d63e:	8b ec                	mov    %esp,%ebp
40d640:	8b 45 08             	mov    0x8(%ebp),%eax
40d643:	8b 0d 9c b7 42 00    	mov    0x42b79c,%ecx
40d649:	56                   	push   %esi
40d64a:	39 50 04             	cmp    %edx,0x4(%eax)
40d64d:	74 0f                	je     0x40d65e
40d64f:	8b f1                	mov    %ecx,%esi
40d651:	6b f6 0c             	imul   $0xc,%esi,%esi
40d654:	03 75 08             	add    0x8(%ebp),%esi
40d657:	83 c0 0c             	add    $0xc,%eax
40d65a:	3b c6                	cmp    %esi,%eax
40d65c:	72 ec                	jb     0x40d64a
40d65e:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40d661:	03 4d 08             	add    0x8(%ebp),%ecx
40d664:	5e                   	pop    %esi
40d665:	3b c1                	cmp    %ecx,%eax
40d667:	73 05                	jae    0x40d66e
40d669:	39 50 04             	cmp    %edx,0x4(%eax)
40d66c:	74 02                	je     0x40d670
40d66e:	33 c0                	xor    %eax,%eax
40d670:	5d                   	pop    %ebp
40d671:	c3                   	ret
40d672:	ff 35 1c 0e 43 00    	push   0x430e1c
40d678:	e8 78 d1 ff ff       	call   0x40a7f5
40d67d:	59                   	pop    %ecx
40d67e:	c3                   	ret
40d67f:	6a 20                	push   $0x20
40d681:	68 d0 97 42 00       	push   $0x4297d0
40d686:	e8 51 cd ff ff       	call   0x40a3dc
40d68b:	33 ff                	xor    %edi,%edi
40d68d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40d690:	89 7d d8             	mov    %edi,-0x28(%ebp)
40d693:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d696:	83 fb 0b             	cmp    $0xb,%ebx
40d699:	7f 4c                	jg     0x40d6e7
40d69b:	74 15                	je     0x40d6b2
40d69d:	8b c3                	mov    %ebx,%eax
40d69f:	6a 02                	push   $0x2
40d6a1:	59                   	pop    %ecx
40d6a2:	2b c1                	sub    %ecx,%eax
40d6a4:	74 22                	je     0x40d6c8
40d6a6:	2b c1                	sub    %ecx,%eax
40d6a8:	74 08                	je     0x40d6b2
40d6aa:	2b c1                	sub    %ecx,%eax
40d6ac:	74 64                	je     0x40d712
40d6ae:	2b c1                	sub    %ecx,%eax
40d6b0:	75 44                	jne    0x40d6f6
40d6b2:	e8 11 d3 ff ff       	call   0x40a9c8
40d6b7:	8b f8                	mov    %eax,%edi
40d6b9:	89 7d d8             	mov    %edi,-0x28(%ebp)
40d6bc:	85 ff                	test   %edi,%edi
40d6be:	75 14                	jne    0x40d6d4
40d6c0:	83 c8 ff             	or     $0xffffffff,%eax
40d6c3:	e9 61 01 00 00       	jmp    0x40d829
40d6c8:	be 14 0e 43 00       	mov    $0x430e14,%esi
40d6cd:	a1 14 0e 43 00       	mov    0x430e14,%eax
40d6d2:	eb 60                	jmp    0x40d734
40d6d4:	ff 77 5c             	push   0x5c(%edi)
40d6d7:	8b d3                	mov    %ebx,%edx
40d6d9:	e8 5d ff ff ff       	call   0x40d63b
40d6de:	8b f0                	mov    %eax,%esi
40d6e0:	83 c6 08             	add    $0x8,%esi
40d6e3:	8b 06                	mov    (%esi),%eax
40d6e5:	eb 5a                	jmp    0x40d741
40d6e7:	8b c3                	mov    %ebx,%eax
40d6e9:	83 e8 0f             	sub    $0xf,%eax
40d6ec:	74 3c                	je     0x40d72a
40d6ee:	83 e8 06             	sub    $0x6,%eax
40d6f1:	74 2b                	je     0x40d71e
40d6f3:	48                   	dec    %eax
40d6f4:	74 1c                	je     0x40d712
40d6f6:	e8 da 83 ff ff       	call   0x405ad5
40d6fb:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d701:	33 c0                	xor    %eax,%eax
40d703:	50                   	push   %eax
40d704:	50                   	push   %eax
40d705:	50                   	push   %eax
40d706:	50                   	push   %eax
40d707:	50                   	push   %eax
40d708:	e8 18 7b ff ff       	call   0x405225
40d70d:	83 c4 14             	add    $0x14,%esp
40d710:	eb ae                	jmp    0x40d6c0
40d712:	be 1c 0e 43 00       	mov    $0x430e1c,%esi
40d717:	a1 1c 0e 43 00       	mov    0x430e1c,%eax
40d71c:	eb 16                	jmp    0x40d734
40d71e:	be 18 0e 43 00       	mov    $0x430e18,%esi
40d723:	a1 18 0e 43 00       	mov    0x430e18,%eax
40d728:	eb 0a                	jmp    0x40d734
40d72a:	be 20 0e 43 00       	mov    $0x430e20,%esi
40d72f:	a1 20 0e 43 00       	mov    0x430e20,%eax
40d734:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
40d73b:	50                   	push   %eax
40d73c:	e8 b4 d0 ff ff       	call   0x40a7f5
40d741:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d744:	59                   	pop    %ecx
40d745:	33 c0                	xor    %eax,%eax
40d747:	83 7d e0 01          	cmpl   $0x1,-0x20(%ebp)
40d74b:	0f 84 d8 00 00 00    	je     0x40d829
40d751:	39 45 e0             	cmp    %eax,-0x20(%ebp)
40d754:	75 07                	jne    0x40d75d
40d756:	6a 03                	push   $0x3
40d758:	e8 c5 f1 ff ff       	call   0x40c922
40d75d:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
40d760:	74 07                	je     0x40d769
40d762:	50                   	push   %eax
40d763:	e8 7c c1 ff ff       	call   0x4098e4
40d768:	59                   	pop    %ecx
40d769:	33 c0                	xor    %eax,%eax
40d76b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d76e:	83 fb 08             	cmp    $0x8,%ebx
40d771:	74 0a                	je     0x40d77d
40d773:	83 fb 0b             	cmp    $0xb,%ebx
40d776:	74 05                	je     0x40d77d
40d778:	83 fb 04             	cmp    $0x4,%ebx
40d77b:	75 1b                	jne    0x40d798
40d77d:	8b 4f 60             	mov    0x60(%edi),%ecx
40d780:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40d783:	89 47 60             	mov    %eax,0x60(%edi)
40d786:	83 fb 08             	cmp    $0x8,%ebx
40d789:	75 40                	jne    0x40d7cb
40d78b:	8b 4f 64             	mov    0x64(%edi),%ecx
40d78e:	89 4d d0             	mov    %ecx,-0x30(%ebp)
40d791:	c7 47 64 8c 00 00 00 	movl   $0x8c,0x64(%edi)
40d798:	83 fb 08             	cmp    $0x8,%ebx
40d79b:	75 2e                	jne    0x40d7cb
40d79d:	8b 0d 90 b7 42 00    	mov    0x42b790,%ecx
40d7a3:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40d7a6:	8b 0d 94 b7 42 00    	mov    0x42b794,%ecx
40d7ac:	8b 15 90 b7 42 00    	mov    0x42b790,%edx
40d7b2:	03 ca                	add    %edx,%ecx
40d7b4:	39 4d dc             	cmp    %ecx,-0x24(%ebp)
40d7b7:	7d 19                	jge    0x40d7d2
40d7b9:	8b 4d dc             	mov    -0x24(%ebp),%ecx
40d7bc:	6b c9 0c             	imul   $0xc,%ecx,%ecx
40d7bf:	8b 57 5c             	mov    0x5c(%edi),%edx
40d7c2:	89 44 11 08          	mov    %eax,0x8(%ecx,%edx,1)
40d7c6:	ff 45 dc             	incl   -0x24(%ebp)
40d7c9:	eb db                	jmp    0x40d7a6
40d7cb:	e8 1c d0 ff ff       	call   0x40a7ec
40d7d0:	89 06                	mov    %eax,(%esi)
40d7d2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d7d9:	e8 15 00 00 00       	call   0x40d7f3
40d7de:	83 fb 08             	cmp    $0x8,%ebx
40d7e1:	75 1f                	jne    0x40d802
40d7e3:	ff 77 64             	push   0x64(%edi)
40d7e6:	53                   	push   %ebx
40d7e7:	ff 55 e0             	call   *-0x20(%ebp)
40d7ea:	59                   	pop    %ecx
40d7eb:	eb 19                	jmp    0x40d806
40d7ed:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d7f0:	8b 7d d8             	mov    -0x28(%ebp),%edi
40d7f3:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
40d7f7:	74 08                	je     0x40d801
40d7f9:	6a 00                	push   $0x0
40d7fb:	e8 0a c0 ff ff       	call   0x40980a
40d800:	59                   	pop    %ecx
40d801:	c3                   	ret
40d802:	53                   	push   %ebx
40d803:	ff 55 e0             	call   *-0x20(%ebp)
40d806:	59                   	pop    %ecx
40d807:	83 fb 08             	cmp    $0x8,%ebx
40d80a:	74 0a                	je     0x40d816
40d80c:	83 fb 0b             	cmp    $0xb,%ebx
40d80f:	74 05                	je     0x40d816
40d811:	83 fb 04             	cmp    $0x4,%ebx
40d814:	75 11                	jne    0x40d827
40d816:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40d819:	89 47 60             	mov    %eax,0x60(%edi)
40d81c:	83 fb 08             	cmp    $0x8,%ebx
40d81f:	75 06                	jne    0x40d827
40d821:	8b 45 d0             	mov    -0x30(%ebp),%eax
40d824:	89 47 64             	mov    %eax,0x64(%edi)
40d827:	33 c0                	xor    %eax,%eax
40d829:	e8 f3 cb ff ff       	call   0x40a421
40d82e:	c3                   	ret
40d82f:	6a 10                	push   $0x10
40d831:	68 f0 97 42 00       	push   $0x4297f0
40d836:	e8 a1 cb ff ff       	call   0x40a3dc
40d83b:	33 c0                	xor    %eax,%eax
40d83d:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d840:	33 ff                	xor    %edi,%edi
40d842:	3b df                	cmp    %edi,%ebx
40d844:	0f 95 c0             	setne  %al
40d847:	3b c7                	cmp    %edi,%eax
40d849:	75 1d                	jne    0x40d868
40d84b:	e8 85 82 ff ff       	call   0x405ad5
40d850:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40d856:	57                   	push   %edi
40d857:	57                   	push   %edi
40d858:	57                   	push   %edi
40d859:	57                   	push   %edi
40d85a:	57                   	push   %edi
40d85b:	e8 c5 79 ff ff       	call   0x405225
40d860:	83 c4 14             	add    $0x14,%esp
40d863:	83 c8 ff             	or     $0xffffffff,%eax
40d866:	eb 53                	jmp    0x40d8bb
40d868:	83 3d a0 23 c7 00 03 	cmpl   $0x3,0xc723a0
40d86f:	75 38                	jne    0x40d8a9
40d871:	6a 04                	push   $0x4
40d873:	e8 6c c0 ff ff       	call   0x4098e4
40d878:	59                   	pop    %ecx
40d879:	89 7d fc             	mov    %edi,-0x4(%ebp)
40d87c:	53                   	push   %ebx
40d87d:	e8 95 c0 ff ff       	call   0x409917
40d882:	59                   	pop    %ecx
40d883:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d886:	3b c7                	cmp    %edi,%eax
40d888:	74 0b                	je     0x40d895
40d88a:	8b 73 fc             	mov    -0x4(%ebx),%esi
40d88d:	83 ee 09             	sub    $0x9,%esi
40d890:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40d893:	eb 03                	jmp    0x40d898
40d895:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40d898:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40d89f:	e8 25 00 00 00       	call   0x40d8c9
40d8a4:	39 7d e0             	cmp    %edi,-0x20(%ebp)
40d8a7:	75 10                	jne    0x40d8b9
40d8a9:	53                   	push   %ebx
40d8aa:	57                   	push   %edi
40d8ab:	ff 35 08 08 43 00    	push   0x430808
40d8b1:	ff 15 40 a1 41 00    	call   *0x41a140
40d8b7:	8b f0                	mov    %eax,%esi
40d8b9:	8b c6                	mov    %esi,%eax
40d8bb:	e8 61 cb ff ff       	call   0x40a421
40d8c0:	c3                   	ret
40d8c1:	33 ff                	xor    %edi,%edi
40d8c3:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d8c6:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40d8c9:	6a 04                	push   $0x4
40d8cb:	e8 3a bf ff ff       	call   0x40980a