40d577:	8d 8d fc fd ff ff    	lea    -0x204(%ebp),%ecx
40d57d:	51                   	push   %ecx
40d57e:	ff b5 ec f9 ff ff    	push   -0x614(%ebp)
40d584:	8b c8                	mov    %eax,%ecx
40d586:	e8 5b fb ff ff       	call   0x40d0e6
40d58b:	89 85 e8 f9 ff ff    	mov    %eax,-0x618(%ebp)
40d591:	83 f8 ff             	cmp    $0xffffffff,%eax
40d594:	0f 84 8d 00 00 00    	je     0x40d627
40d59a:	85 f6                	test   %esi,%esi
40d59c:	74 6e                	je     0x40d60c
40d59e:	8b 0e                	mov    (%esi),%ecx
40d5a0:	6a 04                	push   $0x4
40d5a2:	5a                   	pop    %edx
40d5a3:	e8 e3 b6 ff ff       	call   0x408c8b
40d5a8:	89 85 f8 f9 ff ff    	mov    %eax,-0x608(%ebp)
40d5ae:	83 f8 ff             	cmp    $0xffffffff,%eax
40d5b1:	0f 84 04 ff ff ff    	je     0x40d4bb
40d5b7:	ff b5 e8 f9 ff ff    	push   -0x618(%ebp)
40d5bd:	8b 0e                	mov    (%esi),%ecx
40d5bf:	8b d0                	mov    %eax,%edx
40d5c1:	6a 00                	push   $0x0
40d5c3:	e8 52 bd ff ff       	call   0x40931a
40d5c8:	8b 95 f8 f9 ff ff    	mov    -0x608(%ebp),%edx
40d5ce:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40d5d4:	51                   	push   %ecx
40d5d5:	8b 0e                	mov    (%esi),%ecx
40d5d7:	50                   	push   %eax
40d5d8:	57                   	push   %edi
40d5d9:	e8 0c bd ff ff       	call   0x4092ea
40d5de:	8b 95 f8 f9 ff ff    	mov    -0x608(%ebp),%edx
40d5e4:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40d5ea:	51                   	push   %ecx
40d5eb:	8b 0e                	mov    (%esi),%ecx
40d5ed:	50                   	push   %eax
40d5ee:	6a 02                	push   $0x2
40d5f0:	e8 f5 bc ff ff       	call   0x4092ea
40d5f5:	8b 95 f8 f9 ff ff    	mov    -0x608(%ebp),%edx
40d5fb:	8d 85 fc f9 ff ff    	lea    -0x604(%ebp),%eax
40d601:	51                   	push   %ecx
40d602:	8b 0e                	mov    (%esi),%ecx
40d604:	50                   	push   %eax
40d605:	6a 03                	push   $0x3
40d607:	e8 de bc ff ff       	call   0x4092ea
40d60c:	8b 85 f4 f9 ff ff    	mov    -0x60c(%ebp),%eax
40d612:	40                   	inc    %eax
40d613:	89 85 f4 f9 ff ff    	mov    %eax,-0x60c(%ebp)
40d619:	3b 85 e4 f9 ff ff    	cmp    -0x61c(%ebp),%eax
40d61f:	0f 82 ea fe ff ff    	jb     0x40d50f
40d625:	eb 02                	jmp    0x40d629
40d627:	33 ff                	xor    %edi,%edi
40d629:	8d 8d e0 f9 ff ff    	lea    -0x620(%ebp),%ecx
40d62f:	e8 ac b4 ff ff       	call   0x408ae0
40d634:	8b c7                	mov    %edi,%eax
40d636:	eb 19                	jmp    0x40d651
40d638:	ff 15 48 20 41 00    	call   *0x412048
40d63e:	85 c0                	test   %eax,%eax
40d640:	75 08                	jne    0x40d64a
40d642:	6a 57                	push   $0x57
40d644:	ff 15 74 20 41 00    	call   *0x412074
40d64a:	e8 a5 c1 ff ff       	call   0x4097f4
40d64f:	33 c0                	xor    %eax,%eax
40d651:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d654:	5f                   	pop    %edi
40d655:	5e                   	pop    %esi
40d656:	33 cd                	xor    %ebp,%ecx
40d658:	5b                   	pop    %ebx
40d659:	e8 72 16 00 00       	call   0x40ecd0
40d65e:	c9                   	leave
40d65f:	c2 08 00             	ret    $0x8
40d662:	8b ff                	mov    %edi,%edi
40d664:	55                   	push   %ebp
40d665:	8b ec                	mov    %esp,%ebp
40d667:	81 ec fc 04 00 00    	sub    $0x4fc,%esp
40d66d:	a1 44 10 41 00       	mov    0x411044,%eax
40d672:	33 c5                	xor    %ebp,%eax
40d674:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d677:	8b 45 08             	mov    0x8(%ebp),%eax
40d67a:	53                   	push   %ebx
40d67b:	56                   	push   %esi
40d67c:	57                   	push   %edi
40d67d:	c7 85 18 fb ff ff 02 	movl   $0x2,-0x4e8(%ebp)
40d684:	00 00 00
40d687:	8d bd 1c fb ff ff    	lea    -0x4e4(%ebp),%edi
40d68d:	be a8 19 40 00       	mov    $0x4019a8,%esi
40d692:	89 85 10 fb ff ff    	mov    %eax,-0x4f0(%ebp)
40d698:	8b 45 0c             	mov    0xc(%ebp),%eax
40d69b:	33 db                	xor    %ebx,%ebx
40d69d:	68 bc 00 00 00       	push   $0xbc
40d6a2:	89 85 0c fb ff ff    	mov    %eax,-0x4f4(%ebp)
40d6a8:	8d 85 2a fb ff ff    	lea    -0x4d6(%ebp),%eax
40d6ae:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6af:	53                   	push   %ebx
40d6b0:	50                   	push   %eax
40d6b1:	89 95 14 fb ff ff    	mov    %edx,-0x4ec(%ebp)
40d6b7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6b8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6b9:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d6bb:	e8 04 1d 00 00       	call   0x40f3c4
40d6c0:	c7 85 e8 fb ff ff fc 	movl   $0xfc,-0x418(%ebp)
40d6c7:	00 00 00
40d6ca:	8d bd ec fb ff ff    	lea    -0x414(%ebp),%edi
40d6d0:	be b8 19 40 00       	mov    $0x4019b8,%esi
40d6d5:	8d 85 fc fb ff ff    	lea    -0x404(%ebp),%eax
40d6db:	83 c4 0c             	add    $0xc,%esp
40d6de:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6df:	68 ba 00 00 00       	push   $0xba
40d6e4:	53                   	push   %ebx
40d6e5:	50                   	push   %eax
40d6e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6e8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d6e9:	e8 d6 1c 00 00       	call   0x40f3c4
40d6ee:	c7 85 b8 fc ff ff 08 	movl   $0x8,-0x348(%ebp)
40d6f5:	00 00 00
40d6f8:	8d bd bc fc ff ff    	lea    -0x344(%ebp),%edi
40d6fe:	be c8 19 40 00       	mov    $0x4019c8,%esi
40d703:	8d 85 ca fc ff ff    	lea    -0x336(%ebp),%eax
40d709:	83 c4 0c             	add    $0xc,%esp
40d70c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d70d:	68 bc 00 00 00       	push   $0xbc
40d712:	53                   	push   %ebx
40d713:	50                   	push   %eax
40d714:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d715:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d716:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d718:	e8 a7 1c 00 00       	call   0x40f3c4
40d71d:	c7 85 88 fd ff ff 04 	movl   $0x4,-0x278(%ebp)
40d724:	00 00 00
40d727:	8d bd 8c fd ff ff    	lea    -0x274(%ebp),%edi
40d72d:	be d8 19 40 00       	mov    $0x4019d8,%esi
40d732:	8d 85 9a fd ff ff    	lea    -0x266(%ebp),%eax
40d738:	83 c4 0c             	add    $0xc,%esp
40d73b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d73c:	68 bc 00 00 00       	push   $0xbc
40d741:	53                   	push   %ebx
40d742:	50                   	push   %eax
40d743:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d744:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d745:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d747:	e8 78 1c 00 00       	call   0x40f3c4
40d74c:	c7 85 58 fe ff ff 0a 	movl   $0xa,-0x1a8(%ebp)
40d753:	00 00 00
40d756:	8d bd 5c fe ff ff    	lea    -0x1a4(%ebp),%edi
40d75c:	be e8 19 40 00       	mov    $0x4019e8,%esi
40d761:	8d 85 6c fe ff ff    	lea    -0x194(%ebp),%eax
40d767:	83 c4 0c             	add    $0xc,%esp
40d76a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d76b:	68 ba 00 00 00       	push   $0xba
40d770:	53                   	push   %ebx
40d771:	50                   	push   %eax
40d772:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d773:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d774:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d775:	e8 4a 1c 00 00       	call   0x40f3c4
40d77a:	be f8 19 40 00       	mov    $0x4019f8,%esi
40d77f:	c7 85 28 ff ff ff 06 	movl   $0x6,-0xd8(%ebp)
40d786:	00 00 00
40d789:	8d bd 2c ff ff ff    	lea    -0xd4(%ebp),%edi
40d78f:	83 c4 0c             	add    $0xc,%esp
40d792:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d793:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d794:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d795:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d796:	68 ba 00 00 00       	push   $0xba
40d79b:	8d 85 3c ff ff ff    	lea    -0xc4(%ebp),%eax
40d7a1:	53                   	push   %ebx
40d7a2:	50                   	push   %eax
40d7a3:	e8 1c 1c 00 00       	call   0x40f3c4
40d7a8:	83 c4 0c             	add    $0xc,%esp
40d7ab:	39 9d 14 fb ff ff    	cmp    %ebx,-0x4ec(%ebp)
40d7b1:	0f 84 f4 00 00 00    	je     0x40d8ab
40d7b7:	39 9d 10 fb ff ff    	cmp    %ebx,-0x4f0(%ebp)
40d7bd:	0f 84 e8 00 00 00    	je     0x40d8ab
40d7c3:	8b b5 0c fb ff ff    	mov    -0x4f4(%ebp),%esi
40d7c9:	85 f6                	test   %esi,%esi
40d7cb:	0f 84 da 00 00 00    	je     0x40d8ab
40d7d1:	8b ce                	mov    %esi,%ecx
40d7d3:	e8 e0 b5 ff ff       	call   0x408db8
40d7d8:	89 85 08 fb ff ff    	mov    %eax,-0x4f8(%ebp)
40d7de:	85 c0                	test   %eax,%eax
40d7e0:	0f 84 b8 00 00 00    	je     0x40d89e
40d7e6:	51                   	push   %ecx
40d7e7:	8b d3                	mov    %ebx,%edx
40d7e9:	8b ce                	mov    %esi,%ecx
40d7eb:	e8 ab b8 ff ff       	call   0x40909b
40d7f0:	6a 02                	push   $0x2
40d7f2:	8b d3                	mov    %ebx,%edx
40d7f4:	8b ce                	mov    %esi,%ecx
40d7f6:	8b f8                	mov    %eax,%edi
40d7f8:	e8 72 b8 ff ff       	call   0x40906f
40d7fd:	85 c0                	test   %eax,%eax
40d7ff:	0f 84 8c 00 00 00    	je     0x40d891
40d805:	50                   	push   %eax
40d806:	8d 95 18 fb ff ff    	lea    -0x4e8(%ebp),%edx
40d80c:	e8 b4 f0 ff ff       	call   0x40c8c5
40d811:	89 85 04 fb ff ff    	mov    %eax,-0x4fc(%ebp)
40d817:	85 c0                	test   %eax,%eax
40d819:	75 1e                	jne    0x40d839
40d81b:	8b 85 14 fb ff ff    	mov    -0x4ec(%ebp),%eax
40d821:	69 cf dc 04 00 00    	imul   $0x4dc,%edi,%ecx
40d827:	8b 8c 01 d0 02 00 00 	mov    0x2d0(%ecx,%eax,1),%ecx
40d82e:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
40d834:	83 f9 09             	cmp    $0x9,%ecx
40d837:	75 7f                	jne    0x40d8b8
40d839:	8b d3                	mov    %ebx,%edx
40d83b:	8b ce                	mov    %esi,%ecx
40d83d:	e8 a9 b5 ff ff       	call   0x408deb
40d842:	85 c0                	test   %eax,%eax
40d844:	74 72                	je     0x40d8b8
40d846:	69 f7 dc 04 00 00    	imul   $0x4dc,%edi,%esi
40d84c:	81 ec dc 04 00 00    	sub    $0x4dc,%esp
40d852:	b9 37 01 00 00       	mov    $0x137,%ecx
40d857:	8b fc                	mov    %esp,%edi
40d859:	8b d0                	mov    %eax,%edx
40d85b:	03 b5 14 fb ff ff    	add    -0x4ec(%ebp),%esi
40d861:	f7 86 d0 02 00 00 00 	testl  $0x4000,0x2d0(%esi)
40d868:	40 00 00
40d86b:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40d86d:	8b 8d 10 fb ff ff    	mov    -0x4f0(%ebp),%ecx
40d873:	74 07                	je     0x40d87c
40d875:	e8 09 f4 ff ff       	call   0x40cc83
40d87a:	eb 05                	jmp    0x40d881
40d87c:	e8 ea f0 ff ff       	call   0x40c96b
40d881:	8b c8                	mov    %eax,%ecx
40d883:	85 8d 04 fb ff ff    	test   %ecx,-0x4fc(%ebp)
40d889:	74 13                	je     0x40d89e
40d88b:	8b b5 0c fb ff ff    	mov    -0x4f4(%ebp),%esi
40d891:	43                   	inc    %ebx
40d892:	3b 9d 08 fb ff ff    	cmp    -0x4f8(%ebp),%ebx
40d898:	0f 82 48 ff ff ff    	jb     0x40d7e6
40d89e:	33 c0                	xor    %eax,%eax
40d8a0:	3b 9d 08 fb ff ff    	cmp    -0x4f8(%ebp),%ebx
40d8a6:	0f 95 c0             	setne  %al
40d8a9:	eb 0f                	jmp    0x40d8ba
40d8ab:	6a 57                	push   $0x57
40d8ad:	ff 15 74 20 41 00    	call   *0x412074
40d8b3:	e8 3c bf ff ff       	call   0x4097f4
40d8b8:	33 c0                	xor    %eax,%eax
40d8ba:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40d8bd:	5f                   	pop    %edi
40d8be:	5e                   	pop    %esi
40d8bf:	33 cd                	xor    %ebp,%ecx
40d8c1:	5b                   	pop    %ebx
40d8c2:	e8 09 14 00 00       	call   0x40ecd0
40d8c7:	c9                   	leave
40d8c8:	c2 08 00             	ret    $0x8
40d8cb:	8b ff                	mov    %edi,%edi
40d8cd:	55                   	push   %ebp
40d8ce:	8b ec                	mov    %esp,%ebp
40d8d0:	83 e4 f8             	and    $0xfffffff8,%esp
40d8d3:	83 ec 0c             	sub    $0xc,%esp
40d8d6:	53                   	push   %ebx
40d8d7:	56                   	push   %esi
40d8d8:	8b c2                	mov    %edx,%eax
40d8da:	57                   	push   %edi
40d8db:	33 ff                	xor    %edi,%edi
40d8dd:	89 44 24 14          	mov    %eax,0x14(%esp)
40d8e1:	85 c0                	test   %eax,%eax
40d8e3:	74 5e                	je     0x40d943
40d8e5:	8b 5d 08             	mov    0x8(%ebp),%ebx
40d8e8:	85 db                	test   %ebx,%ebx
40d8ea:	74 57                	je     0x40d943
40d8ec:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40d8ef:	74 52                	je     0x40d943
40d8f1:	8b cb                	mov    %ebx,%ecx
40d8f3:	e8 c0 b4 ff ff       	call   0x408db8
40d8f8:	89 44 24 10          	mov    %eax,0x10(%esp)
40d8fc:	8b f7                	mov    %edi,%esi
40d8fe:	85 c0                	test   %eax,%eax
40d900:	74 3d                	je     0x40d93f
40d902:	8b d6                	mov    %esi,%edx
40d904:	8b cb                	mov    %ebx,%ecx
40d906:	e8 e0 b4 ff ff       	call   0x408deb
40d90b:	85 c0                	test   %eax,%eax
40d90d:	74 34                	je     0x40d943
40d90f:	ff 75 0c             	push   0xc(%ebp)
40d912:	8b 54 24 18          	mov    0x18(%esp),%edx
40d916:	50                   	push   %eax
40d917:	e8 46 fd ff ff       	call   0x40d662
40d91c:	85 c0                	test   %eax,%eax
40d91e:	74 16                	je     0x40d936
40d920:	8b d6                	mov    %esi,%edx
40d922:	8b cb                	mov    %ebx,%ecx
40d924:	e8 3f b4 ff ff       	call   0x408d68
40d929:	8b 44 24 10          	mov    0x10(%esp),%eax
40d92d:	4e                   	dec    %esi
40d92e:	48                   	dec    %eax
40d92f:	47                   	inc    %edi
40d930:	89 44 24 10          	mov    %eax,0x10(%esp)
40d934:	eb 04                	jmp    0x40d93a
40d936:	8b 44 24 10          	mov    0x10(%esp),%eax
40d93a:	46                   	inc    %esi
40d93b:	3b f0                	cmp    %eax,%esi
40d93d:	72 c3                	jb     0x40d902
40d93f:	8b c7                	mov    %edi,%eax
40d941:	eb 0f                	jmp    0x40d952
40d943:	6a 57                	push   $0x57
40d945:	ff 15 74 20 41 00    	call   *0x412074
40d94b:	e8 a4 be ff ff       	call   0x4097f4
40d950:	33 c0                	xor    %eax,%eax
40d952:	5f                   	pop    %edi
40d953:	5e                   	pop    %esi
40d954:	5b                   	pop    %ebx
40d955:	8b e5                	mov    %ebp,%esp
40d957:	5d                   	pop    %ebp
40d958:	c2 08 00             	ret    $0x8
40d95b:	8b ff                	mov    %edi,%edi
40d95d:	55                   	push   %ebp
40d95e:	8b ec                	mov    %esp,%ebp
40d960:	81 ec e4 04 00 00    	sub    $0x4e4,%esp
40d966:	a1 44 10 41 00       	mov    0x411044,%eax
40d96b:	33 c5                	xor    %ebp,%eax
40d96d:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d970:	53                   	push   %ebx
40d971:	56                   	push   %esi
40d972:	57                   	push   %edi
40d973:	c7 85 1c fb ff ff 02 	movl   $0x2,-0x4e4(%ebp)
40d97a:	00 00 00
40d97d:	8d bd 20 fb ff ff    	lea    -0x4e0(%ebp),%edi
40d983:	be a8 19 40 00       	mov    $0x4019a8,%esi
40d988:	8d 85 2e fb ff ff    	lea    -0x4d2(%ebp),%eax
40d98e:	68 bc 00 00 00       	push   $0xbc
40d993:	6a 00                	push   $0x0
40d995:	50                   	push   %eax
40d996:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d997:	8b d9                	mov    %ecx,%ebx
40d999:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d99a:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d99b:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
40d99d:	e8 22 1a 00 00       	call   0x40f3c4
40d9a2:	c7 85 ec fb ff ff fc 	movl   $0xfc,-0x414(%ebp)
40d9a9:	00 00 00
40d9ac:	8d bd f0 fb ff ff    	lea    -0x410(%ebp),%edi
40d9b2:	be b8 19 40 00       	mov    $0x4019b8,%esi
40d9b7:	8d 85 00 fc ff ff    	lea    -0x400(%ebp),%eax
40d9bd:	68 ba 00 00 00       	push   $0xba
40d9c2:	6a 00                	push   $0x0
40d9c4:	50                   	push   %eax
40d9c5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40d9c9:	e8 f6 19 00 00       	call   0x40f3c4
40d9ce:	c7 85 bc fc ff ff 08 	movl   $0x8,-0x344(%ebp)
40d9d5:	00 00 00
40d9d8:	8d bd c0 fc ff ff    	lea    -0x340(%ebp),%edi
40d9de:	be c8 19 40 00       	mov    $0x4019c8,%esi
40d9e3:	8d 85 ce fc ff ff    	lea    -0x332(%ebp),%eax
40d9e9:	68 bc 00 00 00       	push   $0xbc
40d9ee:	6a 00                	push   $0x0