4055ab:	ff 75 18             	push   0x18(%ebp)
4055ae:	57                   	push   %edi
4055af:	e8 c9 0f 00 00       	call   0x40657d
4055b4:	68 00 01 00 00       	push   $0x100
4055b9:	ff 75 28             	push   0x28(%ebp)
4055bc:	ff 73 0c             	push   0xc(%ebx)
4055bf:	ff 75 18             	push   0x18(%ebp)
4055c2:	ff 75 10             	push   0x10(%ebp)
4055c5:	57                   	push   %edi
4055c6:	ff 75 08             	push   0x8(%ebp)
4055c9:	e8 d9 06 00 00       	call   0x405ca7
4055ce:	83 c4 38             	add    $0x38,%esp
4055d1:	85 c0                	test   %eax,%eax
4055d3:	74 07                	je     0x4055dc
4055d5:	57                   	push   %edi
4055d6:	50                   	push   %eax
4055d7:	e8 98 f8 ff ff       	call   0x404e74
4055dc:	5f                   	pop    %edi
4055dd:	5e                   	pop    %esi
4055de:	5b                   	pop    %ebx
4055df:	5d                   	pop    %ebp
4055e0:	c3                   	ret
4055e1:	55                   	push   %ebp
4055e2:	8b ec                	mov    %esp,%ebp
4055e4:	83 ec 64             	sub    $0x64,%esp
4055e7:	53                   	push   %ebx
4055e8:	56                   	push   %esi
4055e9:	57                   	push   %edi
4055ea:	8b 7d 18             	mov    0x18(%ebp),%edi
4055ed:	33 c0                	xor    %eax,%eax
4055ef:	57                   	push   %edi
4055f0:	ff 75 14             	push   0x14(%ebp)
4055f3:	89 45 f0             	mov    %eax,-0x10(%ebp)
4055f6:	ff 75 0c             	push   0xc(%ebp)
4055f9:	88 45 e8             	mov    %al,-0x18(%ebp)
4055fc:	e8 5f 0f 00 00       	call   0x406560
405601:	8b c8                	mov    %eax,%ecx
405603:	83 c4 0c             	add    $0xc,%esp
405606:	89 4d f8             	mov    %ecx,-0x8(%ebp)
405609:	83 f9 ff             	cmp    $0xffffffff,%ecx
40560c:	0f 8c 6e 03 00 00    	jl     0x405980
405612:	3b 4f 04             	cmp    0x4(%edi),%ecx
405615:	0f 8d 65 03 00 00    	jge    0x405980
40561b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40561e:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
405624:	0f 85 f7 00 00 00    	jne    0x405721
40562a:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
40562e:	0f 85 ed 00 00 00    	jne    0x405721
405634:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
40563b:	74 16                	je     0x405653
40563d:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
405644:	74 0d                	je     0x405653
405646:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
40564d:	0f 85 ce 00 00 00    	jne    0x405721
405653:	33 f6                	xor    %esi,%esi
405655:	39 73 1c             	cmp    %esi,0x1c(%ebx)
405658:	0f 85 c3 00 00 00    	jne    0x405721
40565e:	e8 39 fc ff ff       	call   0x40529c
405663:	39 70 10             	cmp    %esi,0x10(%eax)
405666:	0f 84 ae 02 00 00    	je     0x40591a
40566c:	e8 2b fc ff ff       	call   0x40529c
405671:	8b 58 10             	mov    0x10(%eax),%ebx
405674:	e8 23 fc ff ff       	call   0x40529c
405679:	c6 45 e8 01          	movb   $0x1,-0x18(%ebp)
40567d:	8b 40 14             	mov    0x14(%eax),%eax
405680:	89 45 fc             	mov    %eax,-0x4(%ebp)
405683:	85 db                	test   %ebx,%ebx
405685:	0f 84 f5 02 00 00    	je     0x405980
40568b:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
405691:	75 2a                	jne    0x4056bd
405693:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
405697:	75 24                	jne    0x4056bd
405699:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
4056a0:	74 12                	je     0x4056b4
4056a2:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
4056a9:	74 09                	je     0x4056b4
4056ab:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
4056b2:	75 09                	jne    0x4056bd
4056b4:	39 73 1c             	cmp    %esi,0x1c(%ebx)
4056b7:	0f 84 c3 02 00 00    	je     0x405980
4056bd:	e8 da fb ff ff       	call   0x40529c
4056c2:	39 70 1c             	cmp    %esi,0x1c(%eax)
4056c5:	74 62                	je     0x405729
4056c7:	e8 d0 fb ff ff       	call   0x40529c
4056cc:	8b 40 1c             	mov    0x1c(%eax),%eax
4056cf:	89 45 f4             	mov    %eax,-0xc(%ebp)
4056d2:	e8 c5 fb ff ff       	call   0x40529c
4056d7:	ff 75 f4             	push   -0xc(%ebp)
4056da:	53                   	push   %ebx
4056db:	89 70 1c             	mov    %esi,0x1c(%eax)
4056de:	e8 1c 09 00 00       	call   0x405fff
4056e3:	59                   	pop    %ecx
4056e4:	59                   	pop    %ecx
4056e5:	84 c0                	test   %al,%al
4056e7:	75 40                	jne    0x405729
4056e9:	8b 7d f4             	mov    -0xc(%ebp),%edi
4056ec:	39 37                	cmp    %esi,(%edi)
4056ee:	0f 8e 2b 02 00 00    	jle    0x40591f
4056f4:	8b 47 04             	mov    0x4(%edi),%eax
4056f7:	68 f0 19 42 00       	push   $0x4219f0
4056fc:	8b 4c 06 04          	mov    0x4(%esi,%eax,1),%ecx
405700:	e8 83 05 00 00       	call   0x405c88
405705:	84 c0                	test   %al,%al
405707:	0f 85 17 02 00 00    	jne    0x405924
40570d:	8b 45 f0             	mov    -0x10(%ebp),%eax
405710:	83 c6 10             	add    $0x10,%esi
405713:	40                   	inc    %eax
405714:	89 45 f0             	mov    %eax,-0x10(%ebp)
405717:	3b 07                	cmp    (%edi),%eax
405719:	0f 8d 00 02 00 00    	jge    0x40591f
40571f:	eb d3                	jmp    0x4056f4
405721:	8b 55 10             	mov    0x10(%ebp),%edx
405724:	89 55 fc             	mov    %edx,-0x4(%ebp)
405727:	eb 06                	jmp    0x40572f
405729:	8b 55 fc             	mov    -0x4(%ebp),%edx
40572c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40572f:	33 c0                	xor    %eax,%eax
405731:	89 7d d0             	mov    %edi,-0x30(%ebp)
405734:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405737:	81 3b 63 73 6d e0    	cmpl   $0xe06d7363,(%ebx)
40573d:	0f 85 a6 01 00 00    	jne    0x4058e9
405743:	83 7b 10 03          	cmpl   $0x3,0x10(%ebx)
405747:	0f 85 9c 01 00 00    	jne    0x4058e9
40574d:	81 7b 14 20 05 93 19 	cmpl   $0x19930520,0x14(%ebx)
405754:	74 16                	je     0x40576c
405756:	81 7b 14 21 05 93 19 	cmpl   $0x19930521,0x14(%ebx)
40575d:	74 0d                	je     0x40576c
40575f:	81 7b 14 22 05 93 19 	cmpl   $0x19930522,0x14(%ebx)
405766:	0f 85 7d 01 00 00    	jne    0x4058e9
40576c:	8b 75 24             	mov    0x24(%ebp),%esi
40576f:	39 47 0c             	cmp    %eax,0xc(%edi)
405772:	0f 86 11 01 00 00    	jbe    0x405889
405778:	ff 75 20             	push   0x20(%ebp)
40577b:	8d 45 d0             	lea    -0x30(%ebp),%eax
40577e:	57                   	push   %edi
40577f:	ff 75 14             	push   0x14(%ebp)
405782:	51                   	push   %ecx
405783:	50                   	push   %eax
405784:	8d 45 c0             	lea    -0x40(%ebp),%eax
405787:	50                   	push   %eax
405788:	e8 2b f5 ff ff       	call   0x404cb8
40578d:	8b 55 c4             	mov    -0x3c(%ebp),%edx
405790:	83 c4 18             	add    $0x18,%esp
405793:	8b 45 c0             	mov    -0x40(%ebp),%eax
405796:	89 45 d8             	mov    %eax,-0x28(%ebp)
405799:	89 55 f4             	mov    %edx,-0xc(%ebp)
40579c:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40579f:	0f 83 e4 00 00 00    	jae    0x405889
4057a5:	6b ca 14             	imul   $0x14,%edx,%ecx
4057a8:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4057ab:	8b 00                	mov    (%eax),%eax
4057ad:	8d 7d 9c             	lea    -0x64(%ebp),%edi
4057b0:	6a 05                	push   $0x5
4057b2:	8b 70 10             	mov    0x10(%eax),%esi
4057b5:	8b 45 f8             	mov    -0x8(%ebp),%eax
4057b8:	03 f1                	add    %ecx,%esi
4057ba:	59                   	pop    %ecx
4057bb:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
4057bd:	39 45 9c             	cmp    %eax,-0x64(%ebp)
4057c0:	0f 8f a4 00 00 00    	jg     0x40586a
4057c6:	3b 45 a0             	cmp    -0x60(%ebp),%eax
4057c9:	0f 8f 9b 00 00 00    	jg     0x40586a
4057cf:	33 c9                	xor    %ecx,%ecx
4057d1:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4057d4:	39 4d a8             	cmp    %ecx,-0x58(%ebp)
4057d7:	0f 84 8d 00 00 00    	je     0x40586a
4057dd:	8b 53 1c             	mov    0x1c(%ebx),%edx
4057e0:	8b 42 0c             	mov    0xc(%edx),%eax
4057e3:	8b 30                	mov    (%eax),%esi
4057e5:	83 c0 04             	add    $0x4,%eax
4057e8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4057eb:	8b 45 ac             	mov    -0x54(%ebp),%eax
4057ee:	89 75 dc             	mov    %esi,-0x24(%ebp)
4057f1:	89 45 ec             	mov    %eax,-0x14(%ebp)
4057f4:	8b f0                	mov    %eax,%esi
4057f6:	8d 7d b0             	lea    -0x50(%ebp),%edi
4057f9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057fa:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057fb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057fc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4057fd:	8b 75 dc             	mov    -0x24(%ebp),%esi
405800:	8b 7d e0             	mov    -0x20(%ebp),%edi
405803:	85 f6                	test   %esi,%esi
405805:	7e 24                	jle    0x40582b
405807:	52                   	push   %edx
405808:	ff 37                	push   (%edi)
40580a:	8d 45 b0             	lea    -0x50(%ebp),%eax
40580d:	50                   	push   %eax
40580e:	e8 a9 02 00 00       	call   0x405abc
405813:	83 c4 0c             	add    $0xc,%esp
405816:	85 c0                	test   %eax,%eax
405818:	75 22                	jne    0x40583c
40581a:	8b 53 1c             	mov    0x1c(%ebx),%edx
40581d:	4e                   	dec    %esi
40581e:	83 c7 04             	add    $0x4,%edi
405821:	85 f6                	test   %esi,%esi
405823:	7f e2                	jg     0x405807
405825:	8b 4d f0             	mov    -0x10(%ebp),%ecx
405828:	8b 45 ec             	mov    -0x14(%ebp),%eax
40582b:	41                   	inc    %ecx
40582c:	83 c0 10             	add    $0x10,%eax
40582f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
405832:	89 45 ec             	mov    %eax,-0x14(%ebp)
405835:	3b 4d a8             	cmp    -0x58(%ebp),%ecx
405838:	75 ba                	jne    0x4057f4
40583a:	eb 2b                	jmp    0x405867
40583c:	ff 75 1c             	push   0x1c(%ebp)
40583f:	8d 45 9c             	lea    -0x64(%ebp),%eax
405842:	ff 75 e8             	push   -0x18(%ebp)
405845:	ff 75 24             	push   0x24(%ebp)
405848:	ff 75 20             	push   0x20(%ebp)
40584b:	50                   	push   %eax
40584c:	ff 37                	push   (%edi)
40584e:	8d 45 b0             	lea    -0x50(%ebp),%eax
405851:	50                   	push   %eax
405852:	ff 75 18             	push   0x18(%ebp)
405855:	ff 75 14             	push   0x14(%ebp)
405858:	ff 75 fc             	push   -0x4(%ebp)
40585b:	ff 75 0c             	push   0xc(%ebp)
40585e:	53                   	push   %ebx
40585f:	e8 fd fc ff ff       	call   0x405561
405864:	83 c4 30             	add    $0x30,%esp
405867:	8b 55 f4             	mov    -0xc(%ebp),%edx
40586a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40586d:	42                   	inc    %edx
40586e:	8b 45 d8             	mov    -0x28(%ebp),%eax
405871:	83 c1 14             	add    $0x14,%ecx
405874:	89 55 f4             	mov    %edx,-0xc(%ebp)
405877:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40587a:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40587d:	0f 82 28 ff ff ff    	jb     0x4057ab
405883:	8b 7d 18             	mov    0x18(%ebp),%edi
405886:	8b 75 24             	mov    0x24(%ebp),%esi
405889:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40588d:	74 0a                	je     0x405899
40588f:	6a 01                	push   $0x1
405891:	53                   	push   %ebx
405892:	e8 19 f0 ff ff       	call   0x4048b0
405897:	59                   	pop    %ecx
405898:	59                   	pop    %ecx
405899:	8b 07                	mov    (%edi),%eax
40589b:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
4058a0:	3d 21 05 93 19       	cmp    $0x19930521,%eax
4058a5:	72 68                	jb     0x40590f
4058a7:	8b 47 20             	mov    0x20(%edi),%eax
4058aa:	c1 e8 02             	shr    $0x2,%eax
4058ad:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
4058b1:	75 0c                	jne    0x4058bf
4058b3:	a8 01                	test   $0x1,%al
4058b5:	74 58                	je     0x40590f
4058b7:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
4058bb:	75 52                	jne    0x40590f
4058bd:	eb 04                	jmp    0x4058c3
4058bf:	a8 01                	test   $0x1,%al
4058c1:	74 15                	je     0x4058d8
4058c3:	e8 d4 f9 ff ff       	call   0x40529c
4058c8:	89 58 10             	mov    %ebx,0x10(%eax)
4058cb:	e8 cc f9 ff ff       	call   0x40529c
4058d0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4058d3:	89 48 14             	mov    %ecx,0x14(%eax)
4058d6:	eb 47                	jmp    0x40591f
4058d8:	ff 77 1c             	push   0x1c(%edi)
4058db:	53                   	push   %ebx
4058dc:	e8 1e 07 00 00       	call   0x405fff
4058e1:	59                   	pop    %ecx
4058e2:	59                   	pop    %ecx
4058e3:	84 c0                	test   %al,%al
4058e5:	74 5d                	je     0x405944
4058e7:	eb 26                	jmp    0x40590f
4058e9:	39 47 0c             	cmp    %eax,0xc(%edi)
4058ec:	76 21                	jbe    0x40590f
4058ee:	38 45 1c             	cmp    %al,0x1c(%ebp)
4058f1:	0f 85 89 00 00 00    	jne    0x405980
4058f7:	ff 75 24             	push   0x24(%ebp)
4058fa:	ff 75 20             	push   0x20(%ebp)
4058fd:	51                   	push   %ecx
4058fe:	57                   	push   %edi
4058ff:	ff 75 14             	push   0x14(%ebp)
405902:	52                   	push   %edx
405903:	ff 75 0c             	push   0xc(%ebp)
405906:	53                   	push   %ebx
405907:	e8 7a 00 00 00       	call   0x405986
40590c:	83 c4 20             	add    $0x20,%esp
40590f:	e8 88 f9 ff ff       	call   0x40529c
405914:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
405918:	75 66                	jne    0x405980
40591a:	5f                   	pop    %edi
40591b:	5e                   	pop    %esi
40591c:	5b                   	pop    %ebx
40591d:	c9                   	leave
40591e:	c3                   	ret
40591f:	e8 ca 4b 00 00       	call   0x40a4ee
405924:	6a 01                	push   $0x1
405926:	53                   	push   %ebx
405927:	e8 84 ef ff ff       	call   0x4048b0
40592c:	59                   	pop    %ecx
40592d:	59                   	pop    %ecx
40592e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
405931:	e8 3a 03 00 00       	call   0x405c70
405936:	68 e4 fd 41 00       	push   $0x41fde4
40593b:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40593e:	50                   	push   %eax
40593f:	e8 86 f2 ff ff       	call   0x404bca
405944:	e8 53 f9 ff ff       	call   0x40529c
405949:	89 58 10             	mov    %ebx,0x10(%eax)
40594c:	e8 4b f9 ff ff       	call   0x40529c
405951:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405954:	89 48 14             	mov    %ecx,0x14(%eax)
405957:	85 f6                	test   %esi,%esi
405959:	75 03                	jne    0x40595e
40595b:	8b 75 0c             	mov    0xc(%ebp),%esi
40595e:	53                   	push   %ebx
40595f:	56                   	push   %esi
405960:	e8 3f f5 ff ff       	call   0x404ea4
405965:	57                   	push   %edi
405966:	ff 75 14             	push   0x14(%ebp)
405969:	ff 75 0c             	push   0xc(%ebp)
40596c:	e8 8e 05 00 00       	call   0x405eff
405971:	57                   	push   %edi
405972:	e8 45 07 00 00       	call   0x4060bc
405977:	83 c4 10             	add    $0x10,%esp
40597a:	50                   	push   %eax
40597b:	e8 f6 04 00 00       	call   0x405e76
405980:	e8 a5 4b 00 00       	call   0x40a52a
405985:	cc                   	int3
405986:	55                   	push   %ebp
405987:	8b ec                	mov    %esp,%ebp
405989:	83 ec 38             	sub    $0x38,%esp
40598c:	53                   	push   %ebx
40598d:	8b 5d 08             	mov    0x8(%ebp),%ebx
405990:	81 3b 03 00 00 80    	cmpl   $0x80000003,(%ebx)
405996:	0f 84 17 01 00 00    	je     0x405ab3
40599c:	56                   	push   %esi
40599d:	57                   	push   %edi
40599e:	e8 f9 f8 ff ff       	call   0x40529c
4059a3:	33 ff                	xor    %edi,%edi
4059a5:	39 78 08             	cmp    %edi,0x8(%eax)
4059a8:	74 46                	je     0x4059f0
4059aa:	57                   	push   %edi
4059ab:	ff 15 8c 90 41 00    	call   *0x41908c
4059b1:	8b f0                	mov    %eax,%esi
4059b3:	e8 e4 f8 ff ff       	call   0x40529c
4059b8:	39 70 08             	cmp    %esi,0x8(%eax)
4059bb:	74 33                	je     0x4059f0
4059bd:	81 3b 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%ebx)
4059c3:	74 2b                	je     0x4059f0
4059c5:	81 3b 52 43 43 e0    	cmpl   $0xe0434352,(%ebx)
4059cb:	74 23                	je     0x4059f0
4059cd:	ff 75 24             	push   0x24(%ebp)
4059d0:	ff 75 20             	push   0x20(%ebp)