407627:	59                   	pop    %ecx
407628:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40762c:	75 79                	jne    0x4076a7
40762e:	8b 07                	mov    (%edi),%eax
407630:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
407635:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40763a:	72 6b                	jb     0x4076a7
40763c:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
407640:	74 65                	je     0x4076a7
407642:	ff 77 1c             	push   0x1c(%edi)
407645:	56                   	push   %esi
407646:	e8 e6 01 00 00       	call   0x407831
40764b:	59                   	pop    %ecx
40764c:	59                   	pop    %ecx
40764d:	84 c0                	test   %al,%al
40764f:	75 56                	jne    0x4076a7
407651:	e8 80 4d 00 00       	call   0x40c3d6
407656:	e8 7b 4d 00 00       	call   0x40c3d6
40765b:	e8 76 4d 00 00       	call   0x40c3d6
407660:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
407666:	e8 6b 4d 00 00       	call   0x40c3d6
40766b:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
40766f:	8b 4d 08             	mov    0x8(%ebp),%ecx
407672:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
407678:	56                   	push   %esi
407679:	75 7a                	jne    0x4076f5
40767b:	ff 75 0c             	push   0xc(%ebp)
40767e:	eb 78                	jmp    0x4076f8
407680:	8b 45 10             	mov    0x10(%ebp),%eax
407683:	39 5f 0c             	cmp    %ebx,0xc(%edi)
407686:	76 1f                	jbe    0x4076a7
407688:	38 5d 1c             	cmp    %bl,0x1c(%ebp)
40768b:	75 31                	jne    0x4076be
40768d:	ff 75 24             	push   0x24(%ebp)
407690:	ff 75 20             	push   0x20(%ebp)
407693:	ff 75 f8             	push   -0x8(%ebp)
407696:	57                   	push   %edi
407697:	ff 75 14             	push   0x14(%ebp)
40769a:	50                   	push   %eax
40769b:	ff 75 0c             	push   0xc(%ebp)
40769e:	56                   	push   %esi
40769f:	e8 73 00 00 00       	call   0x407717
4076a4:	83 c4 20             	add    $0x20,%esp
4076a7:	e8 2a 4d 00 00       	call   0x40c3d6
4076ac:	39 98 94 00 00 00    	cmp    %ebx,0x94(%eax)
4076b2:	74 05                	je     0x4076b9
4076b4:	e8 53 67 00 00       	call   0x40de0c
4076b9:	5f                   	pop    %edi
4076ba:	5e                   	pop    %esi
4076bb:	5b                   	pop    %ebx
4076bc:	c9                   	leave
4076bd:	c3                   	ret
4076be:	e8 81 67 00 00       	call   0x40de44
4076c3:	6a 01                	push   $0x1
4076c5:	56                   	push   %esi
4076c6:	e8 05 f9 ff ff       	call   0x406fd0
4076cb:	59                   	pop    %ecx
4076cc:	59                   	pop    %ecx
4076cd:	8d 45 18             	lea    0x18(%ebp),%eax
4076d0:	50                   	push   %eax
4076d1:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4076d4:	c7 45 18 2c a3 41 00 	movl   $0x41a32c,0x18(%ebp)
4076db:	e8 ee d8 ff ff       	call   0x404fce
4076e0:	68 34 e4 41 00       	push   $0x41e434
4076e5:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4076e8:	50                   	push   %eax
4076e9:	c7 45 c4 24 a3 41 00 	movl   $0x41a324,-0x3c(%ebp)
4076f0:	e8 86 e6 ff ff       	call   0x405d7b
4076f5:	ff 75 24             	push   0x24(%ebp)
4076f8:	e8 52 ea ff ff       	call   0x40614f
4076fd:	6a ff                	push   $0xffffffff
4076ff:	57                   	push   %edi
407700:	ff 75 14             	push   0x14(%ebp)
407703:	ff 75 0c             	push   0xc(%ebp)
407706:	e8 43 04 00 00       	call   0x407b4e
40770b:	83 c4 10             	add    $0x10,%esp
40770e:	ff 77 1c             	push   0x1c(%edi)
407711:	e8 5e fb ff ff       	call   0x407274
407716:	cc                   	int3
407717:	55                   	push   %ebp
407718:	8b ec                	mov    %esp,%ebp
40771a:	51                   	push   %ecx
40771b:	51                   	push   %ecx
40771c:	57                   	push   %edi
40771d:	8b 7d 08             	mov    0x8(%ebp),%edi
407720:	81 3f 03 00 00 80    	cmpl   $0x80000003,(%edi)
407726:	0f 84 02 01 00 00    	je     0x40782e
40772c:	53                   	push   %ebx
40772d:	56                   	push   %esi
40772e:	e8 a3 4c 00 00       	call   0x40c3d6
407733:	83 b8 80 00 00 00 00 	cmpl   $0x0,0x80(%eax)
40773a:	8b 5d 18             	mov    0x18(%ebp),%ebx
40773d:	74 48                	je     0x407787
40773f:	6a 00                	push   $0x0
407741:	ff 15 58 90 41 00    	call   *0x419058
407747:	8b f0                	mov    %eax,%esi
407749:	e8 88 4c 00 00       	call   0x40c3d6
40774e:	39 b0 80 00 00 00    	cmp    %esi,0x80(%eax)
407754:	74 31                	je     0x407787
407756:	81 3f 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%edi)
40775c:	74 29                	je     0x407787
40775e:	81 3f 52 43 43 e0    	cmpl   $0xe0434352,(%edi)
407764:	74 21                	je     0x407787
407766:	ff 75 24             	push   0x24(%ebp)
407769:	ff 75 20             	push   0x20(%ebp)
40776c:	53                   	push   %ebx
40776d:	ff 75 14             	push   0x14(%ebp)
407770:	ff 75 10             	push   0x10(%ebp)
407773:	ff 75 0c             	push   0xc(%ebp)
407776:	57                   	push   %edi
407777:	e8 4f e8 ff ff       	call   0x405fcb
40777c:	83 c4 1c             	add    $0x1c,%esp
40777f:	85 c0                	test   %eax,%eax
407781:	0f 85 a5 00 00 00    	jne    0x40782c
407787:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
40778b:	75 05                	jne    0x407792
40778d:	e8 7a 66 00 00       	call   0x40de0c
407792:	8d 45 fc             	lea    -0x4(%ebp),%eax
407795:	50                   	push   %eax
407796:	8d 45 f8             	lea    -0x8(%ebp),%eax
407799:	50                   	push   %eax
40779a:	ff 75 1c             	push   0x1c(%ebp)
40779d:	ff 75 20             	push   0x20(%ebp)
4077a0:	53                   	push   %ebx
4077a1:	e8 fa e8 ff ff       	call   0x4060a0
4077a6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4077a9:	8b 55 fc             	mov    -0x4(%ebp),%edx
4077ac:	83 c4 14             	add    $0x14,%esp
4077af:	3b ca                	cmp    %edx,%ecx
4077b1:	73 79                	jae    0x40782c
4077b3:	8d 70 0c             	lea    0xc(%eax),%esi
4077b6:	8b 45 1c             	mov    0x1c(%ebp),%eax
4077b9:	3b 46 f4             	cmp    -0xc(%esi),%eax
4077bc:	7c 63                	jl     0x407821
4077be:	3b 46 f8             	cmp    -0x8(%esi),%eax
4077c1:	7f 5e                	jg     0x407821
4077c3:	8b 06                	mov    (%esi),%eax
4077c5:	8b 7e 04             	mov    0x4(%esi),%edi
4077c8:	c1 e0 04             	shl    $0x4,%eax
4077cb:	8b 7c 07 f4          	mov    -0xc(%edi,%eax,1),%edi
4077cf:	85 ff                	test   %edi,%edi
4077d1:	74 13                	je     0x4077e6
4077d3:	8b 56 04             	mov    0x4(%esi),%edx
4077d6:	8b 5c 02 f4          	mov    -0xc(%edx,%eax,1),%ebx
4077da:	8b 55 fc             	mov    -0x4(%ebp),%edx
4077dd:	80 7b 08 00          	cmpb   $0x0,0x8(%ebx)
4077e1:	8b 5d 18             	mov    0x18(%ebp),%ebx
4077e4:	75 38                	jne    0x40781e
4077e6:	8b 7e 04             	mov    0x4(%esi),%edi
4077e9:	83 c7 f0             	add    $0xfffffff0,%edi
4077ec:	03 c7                	add    %edi,%eax
4077ee:	8b 7d 08             	mov    0x8(%ebp),%edi
4077f1:	f6 00 40             	testb  $0x40,(%eax)
4077f4:	75 28                	jne    0x40781e
4077f6:	6a 01                	push   $0x1
4077f8:	ff 75 24             	push   0x24(%ebp)
4077fb:	8d 4e f4             	lea    -0xc(%esi),%ecx
4077fe:	ff 75 20             	push   0x20(%ebp)
407801:	51                   	push   %ecx
407802:	6a 00                	push   $0x0
407804:	50                   	push   %eax
407805:	53                   	push   %ebx
407806:	ff 75 14             	push   0x14(%ebp)
407809:	ff 75 10             	push   0x10(%ebp)
40780c:	ff 75 0c             	push   0xc(%ebp)
40780f:	57                   	push   %edi
407810:	e8 9f fa ff ff       	call   0x4072b4
407815:	8b 55 fc             	mov    -0x4(%ebp),%edx
407818:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40781b:	83 c4 2c             	add    $0x2c,%esp
40781e:	8b 45 1c             	mov    0x1c(%ebp),%eax
407821:	41                   	inc    %ecx
407822:	83 c6 14             	add    $0x14,%esi
407825:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407828:	3b ca                	cmp    %edx,%ecx
40782a:	72 8d                	jb     0x4077b9
40782c:	5e                   	pop    %esi
40782d:	5b                   	pop    %ebx
40782e:	5f                   	pop    %edi
40782f:	c9                   	leave
407830:	c3                   	ret
407831:	55                   	push   %ebp
407832:	8b ec                	mov    %esp,%ebp
407834:	51                   	push   %ecx
407835:	51                   	push   %ecx
407836:	53                   	push   %ebx
407837:	56                   	push   %esi
407838:	8b 75 0c             	mov    0xc(%ebp),%esi
40783b:	57                   	push   %edi
40783c:	85 f6                	test   %esi,%esi
40783e:	74 6c                	je     0x4078ac
407840:	33 db                	xor    %ebx,%ebx
407842:	8b fb                	mov    %ebx,%edi
407844:	39 1e                	cmp    %ebx,(%esi)
407846:	7e 5d                	jle    0x4078a5
407848:	8b cb                	mov    %ebx,%ecx
40784a:	89 5d 0c             	mov    %ebx,0xc(%ebp)
40784d:	8b 45 08             	mov    0x8(%ebp),%eax
407850:	8b 40 1c             	mov    0x1c(%eax),%eax
407853:	8b 40 0c             	mov    0xc(%eax),%eax
407856:	8d 50 04             	lea    0x4(%eax),%edx
407859:	8b 00                	mov    (%eax),%eax
40785b:	89 55 f8             	mov    %edx,-0x8(%ebp)
40785e:	89 45 fc             	mov    %eax,-0x4(%ebp)
407861:	85 c0                	test   %eax,%eax
407863:	7e 35                	jle    0x40789a
407865:	8b 45 08             	mov    0x8(%ebp),%eax
407868:	ff 70 1c             	push   0x1c(%eax)
40786b:	8b 46 04             	mov    0x4(%esi),%eax
40786e:	ff 32                	push   (%edx)
407870:	03 c1                	add    %ecx,%eax
407872:	50                   	push   %eax
407873:	e8 8e 04 00 00       	call   0x407d06
407878:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40787b:	83 c4 0c             	add    $0xc,%esp
40787e:	85 c0                	test   %eax,%eax
407880:	75 16                	jne    0x407898
407882:	8b 45 fc             	mov    -0x4(%ebp),%eax
407885:	8b 55 f8             	mov    -0x8(%ebp),%edx
407888:	48                   	dec    %eax
407889:	83 c2 04             	add    $0x4,%edx
40788c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40788f:	89 55 f8             	mov    %edx,-0x8(%ebp)
407892:	85 c0                	test   %eax,%eax
407894:	7f cf                	jg     0x407865
407896:	eb 02                	jmp    0x40789a
407898:	b3 01                	mov    $0x1,%bl
40789a:	47                   	inc    %edi
40789b:	83 c1 10             	add    $0x10,%ecx
40789e:	89 4d 0c             	mov    %ecx,0xc(%ebp)
4078a1:	3b 3e                	cmp    (%esi),%edi
4078a3:	7c a8                	jl     0x40784d
4078a5:	5f                   	pop    %edi
4078a6:	5e                   	pop    %esi
4078a7:	8a c3                	mov    %bl,%al
4078a9:	5b                   	pop    %ebx
4078aa:	c9                   	leave
4078ab:	c3                   	ret
4078ac:	e8 5b 65 00 00       	call   0x40de0c
4078b1:	e8 8e 65 00 00       	call   0x40de44
4078b6:	cc                   	int3
4078b7:	e8 1a 4b 00 00       	call   0x40c3d6
4078bc:	33 c9                	xor    %ecx,%ecx
4078be:	39 88 90 00 00 00    	cmp    %ecx,0x90(%eax)
4078c4:	0f 95 c0             	setne  %al
4078c7:	c3                   	ret
4078c8:	55                   	push   %ebp
4078c9:	8b ec                	mov    %esp,%ebp
4078cb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4078ce:	8b 55 08             	mov    0x8(%ebp),%edx
4078d1:	8b 01                	mov    (%ecx),%eax
4078d3:	56                   	push   %esi
4078d4:	8b 71 04             	mov    0x4(%ecx),%esi
4078d7:	03 c2                	add    %edx,%eax
4078d9:	85 f6                	test   %esi,%esi
4078db:	78 0d                	js     0x4078ea
4078dd:	8b 49 08             	mov    0x8(%ecx),%ecx
4078e0:	8b 14 16             	mov    (%esi,%edx,1),%edx
4078e3:	8b 0c 0a             	mov    (%edx,%ecx,1),%ecx
4078e6:	03 ce                	add    %esi,%ecx
4078e8:	03 c1                	add    %ecx,%eax
4078ea:	5e                   	pop    %esi
4078eb:	5d                   	pop    %ebp
4078ec:	c3                   	ret
4078ed:	6a 08                	push   $0x8
4078ef:	68 80 e3 41 00       	push   $0x41e380
4078f4:	e8 b7 34 00 00       	call   0x40adb0
4078f9:	8b 55 10             	mov    0x10(%ebp),%edx
4078fc:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4078ff:	f7 02 00 00 00 80    	testl  $0x80000000,(%edx)
407905:	74 04                	je     0x40790b
407907:	8b f9                	mov    %ecx,%edi
407909:	eb 06                	jmp    0x407911
40790b:	8d 79 0c             	lea    0xc(%ecx),%edi
40790e:	03 7a 08             	add    0x8(%edx),%edi
407911:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407915:	8b 75 14             	mov    0x14(%ebp),%esi
407918:	56                   	push   %esi
407919:	52                   	push   %edx
40791a:	51                   	push   %ecx
40791b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40791e:	53                   	push   %ebx
40791f:	e8 57 00 00 00       	call   0x40797b
407924:	83 c4 10             	add    $0x10,%esp
407927:	48                   	dec    %eax
407928:	74 1f                	je     0x407949
40792a:	48                   	dec    %eax
40792b:	75 34                	jne    0x407961
40792d:	6a 01                	push   $0x1
40792f:	8d 46 08             	lea    0x8(%esi),%eax
407932:	50                   	push   %eax
407933:	ff 73 18             	push   0x18(%ebx)
407936:	e8 8d ff ff ff       	call   0x4078c8
40793b:	59                   	pop    %ecx
40793c:	59                   	pop    %ecx
40793d:	50                   	push   %eax
40793e:	ff 76 18             	push   0x18(%esi)
407941:	57                   	push   %edi
407942:	e8 7d e6 ff ff       	call   0x405fc4
407947:	eb 18                	jmp    0x407961
407949:	8d 46 08             	lea    0x8(%esi),%eax
40794c:	50                   	push   %eax
40794d:	ff 73 18             	push   0x18(%ebx)
407950:	e8 73 ff ff ff       	call   0x4078c8
407955:	59                   	pop    %ecx
407956:	59                   	pop    %ecx
407957:	50                   	push   %eax
407958:	ff 76 18             	push   0x18(%esi)
40795b:	57                   	push   %edi
40795c:	e8 63 e6 ff ff       	call   0x405fc4
407961:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
407968:	e8 88 34 00 00       	call   0x40adf5
40796d:	c3                   	ret
40796e:	33 c0                	xor    %eax,%eax
407970:	40                   	inc    %eax
407971:	c3                   	ret
407972:	8b 65 e8             	mov    -0x18(%ebp),%esp
407975:	e8 ca 64 00 00       	call   0x40de44
40797a:	cc                   	int3
40797b:	6a 0c                	push   $0xc
40797d:	68 18 e4 41 00       	push   $0x41e418
407982:	e8 29 34 00 00       	call   0x40adb0
407987:	33 db                	xor    %ebx,%ebx
407989:	8b 45 10             	mov    0x10(%ebp),%eax
40798c:	8b 48 04             	mov    0x4(%eax),%ecx
40798f:	85 c9                	test   %ecx,%ecx
407991:	0f 84 61 01 00 00    	je     0x407af8
407997:	38 59 08             	cmp    %bl,0x8(%ecx)
40799a:	0f 84 58 01 00 00    	je     0x407af8
4079a0:	8b 48 08             	mov    0x8(%eax),%ecx
4079a3:	85 c9                	test   %ecx,%ecx
4079a5:	75 0c                	jne    0x4079b3
4079a7:	f7 00 00 00 00 80    	testl  $0x80000000,(%eax)
4079ad:	0f 84 45 01 00 00    	je     0x407af8
4079b3:	8b 10                	mov    (%eax),%edx
4079b5:	8b 7d 0c             	mov    0xc(%ebp),%edi
4079b8:	85 d2                	test   %edx,%edx
4079ba:	78 05                	js     0x4079c1
4079bc:	83 c7 0c             	add    $0xc,%edi
4079bf:	03 f9                	add    %ecx,%edi
4079c1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4079c4:	6a 01                	push   $0x1
4079c6:	f6 c2 08             	test   $0x8,%dl
4079c9:	74 42                	je     0x407a0d
4079cb:	8b 75 08             	mov    0x8(%ebp),%esi
4079ce:	ff 76 18             	push   0x18(%esi)
4079d1:	e8 44 79 00 00       	call   0x40f31a
4079d6:	59                   	pop    %ecx
4079d7:	59                   	pop    %ecx
4079d8:	85 c0                	test   %eax,%eax