40a6ca:	8b 45 c0             	mov    -0x40(%ebp),%eax
40a6cd:	89 45 d8             	mov    %eax,-0x28(%ebp)
40a6d0:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a6d3:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40a6d6:	0f 83 e5 00 00 00    	jae    0x40a7c1
40a6dc:	6b ca 14             	imul   $0x14,%edx,%ecx
40a6df:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40a6e2:	8b 00                	mov    (%eax),%eax
40a6e4:	8d 7d 9c             	lea    -0x64(%ebp),%edi
40a6e7:	6a 05                	push   $0x5
40a6e9:	8b 70 10             	mov    0x10(%eax),%esi
40a6ec:	8b 45 f8             	mov    -0x8(%ebp),%eax
40a6ef:	03 f1                	add    %ecx,%esi
40a6f1:	59                   	pop    %ecx
40a6f2:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40a6f4:	39 45 9c             	cmp    %eax,-0x64(%ebp)
40a6f7:	0f 8f a5 00 00 00    	jg     0x40a7a2
40a6fd:	3b 45 a0             	cmp    -0x60(%ebp),%eax
40a700:	0f 8f 9c 00 00 00    	jg     0x40a7a2
40a706:	33 c9                	xor    %ecx,%ecx
40a708:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a70b:	39 4d a8             	cmp    %ecx,-0x58(%ebp)
40a70e:	0f 84 8e 00 00 00    	je     0x40a7a2
40a714:	8b 43 1c             	mov    0x1c(%ebx),%eax
40a717:	8b 40 0c             	mov    0xc(%eax),%eax
40a71a:	8b 10                	mov    (%eax),%edx
40a71c:	83 c0 04             	add    $0x4,%eax
40a71f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a722:	8b 45 ac             	mov    -0x54(%ebp),%eax
40a725:	89 55 dc             	mov    %edx,-0x24(%ebp)
40a728:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a72b:	8b f0                	mov    %eax,%esi
40a72d:	8d 7d b0             	lea    -0x50(%ebp),%edi
40a730:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a731:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a732:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a733:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40a734:	8b 7d e0             	mov    -0x20(%ebp),%edi
40a737:	8b f2                	mov    %edx,%esi
40a739:	85 f6                	test   %esi,%esi
40a73b:	7e 26                	jle    0x40a763
40a73d:	ff 73 1c             	push   0x1c(%ebx)
40a740:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a743:	ff 37                	push   (%edi)
40a745:	50                   	push   %eax
40a746:	e8 ad 02 00 00       	call   0x40a9f8
40a74b:	83 c4 0c             	add    $0xc,%esp
40a74e:	85 c0                	test   %eax,%eax
40a750:	75 22                	jne    0x40a774
40a752:	4e                   	dec    %esi
40a753:	83 c7 04             	add    $0x4,%edi
40a756:	85 f6                	test   %esi,%esi
40a758:	7f e3                	jg     0x40a73d
40a75a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a75d:	8b 45 ec             	mov    -0x14(%ebp),%eax
40a760:	8b 55 dc             	mov    -0x24(%ebp),%edx
40a763:	41                   	inc    %ecx
40a764:	83 c0 10             	add    $0x10,%eax
40a767:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40a76a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a76d:	3b 4d a8             	cmp    -0x58(%ebp),%ecx
40a770:	75 b9                	jne    0x40a72b
40a772:	eb 2b                	jmp    0x40a79f
40a774:	ff 75 1c             	push   0x1c(%ebp)
40a777:	8d 45 9c             	lea    -0x64(%ebp),%eax
40a77a:	ff 75 e8             	push   -0x18(%ebp)
40a77d:	ff 75 24             	push   0x24(%ebp)
40a780:	ff 75 20             	push   0x20(%ebp)
40a783:	50                   	push   %eax
40a784:	ff 37                	push   (%edi)
40a786:	8d 45 b0             	lea    -0x50(%ebp),%eax
40a789:	50                   	push   %eax
40a78a:	ff 75 18             	push   0x18(%ebp)
40a78d:	ff 75 14             	push   0x14(%ebp)
40a790:	ff 75 fc             	push   -0x4(%ebp)
40a793:	ff 75 0c             	push   0xc(%ebp)
40a796:	53                   	push   %ebx
40a797:	e8 fc fc ff ff       	call   0x40a498
40a79c:	83 c4 30             	add    $0x30,%esp
40a79f:	8b 55 f4             	mov    -0xc(%ebp),%edx
40a7a2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40a7a5:	42                   	inc    %edx
40a7a6:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a7a9:	83 c1 14             	add    $0x14,%ecx
40a7ac:	89 55 f4             	mov    %edx,-0xc(%ebp)
40a7af:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40a7b2:	3b 55 cc             	cmp    -0x34(%ebp),%edx
40a7b5:	0f 82 27 ff ff ff    	jb     0x40a6e2
40a7bb:	8b 7d 18             	mov    0x18(%ebp),%edi
40a7be:	8b 75 24             	mov    0x24(%ebp),%esi
40a7c1:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40a7c5:	74 0a                	je     0x40a7d1
40a7c7:	6a 01                	push   $0x1
40a7c9:	53                   	push   %ebx
40a7ca:	e8 6d df ff ff       	call   0x40873c
40a7cf:	59                   	pop    %ecx
40a7d0:	59                   	pop    %ecx
40a7d1:	8b 07                	mov    (%edi),%eax
40a7d3:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40a7d8:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40a7dd:	72 6c                	jb     0x40a84b
40a7df:	83 7f 1c 00          	cmpl   $0x0,0x1c(%edi)
40a7e3:	75 10                	jne    0x40a7f5
40a7e5:	8b 47 20             	mov    0x20(%edi),%eax
40a7e8:	c1 e8 02             	shr    $0x2,%eax
40a7eb:	a8 01                	test   $0x1,%al
40a7ed:	74 5c                	je     0x40a84b
40a7ef:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
40a7f3:	75 56                	jne    0x40a84b
40a7f5:	8b 47 20             	mov    0x20(%edi),%eax
40a7f8:	c1 e8 02             	shr    $0x2,%eax
40a7fb:	a8 01                	test   $0x1,%al
40a7fd:	74 15                	je     0x40a814
40a7ff:	e8 98 f9 ff ff       	call   0x40a19c
40a804:	89 58 10             	mov    %ebx,0x10(%eax)
40a807:	e8 90 f9 ff ff       	call   0x40a19c
40a80c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a80f:	89 48 14             	mov    %ecx,0x14(%eax)
40a812:	eb 47                	jmp    0x40a85b
40a814:	ff 77 1c             	push   0x1c(%edi)
40a817:	53                   	push   %ebx
40a818:	e8 0a 07 00 00       	call   0x40af27
40a81d:	59                   	pop    %ecx
40a81e:	59                   	pop    %ecx
40a81f:	84 c0                	test   %al,%al
40a821:	74 5d                	je     0x40a880
40a823:	eb 26                	jmp    0x40a84b
40a825:	39 47 0c             	cmp    %eax,0xc(%edi)
40a828:	76 21                	jbe    0x40a84b
40a82a:	38 45 1c             	cmp    %al,0x1c(%ebp)
40a82d:	0f 85 89 00 00 00    	jne    0x40a8bc
40a833:	ff 75 24             	push   0x24(%ebp)
40a836:	ff 75 20             	push   0x20(%ebp)
40a839:	51                   	push   %ecx
40a83a:	57                   	push   %edi
40a83b:	ff 75 14             	push   0x14(%ebp)
40a83e:	52                   	push   %edx
40a83f:	ff 75 0c             	push   0xc(%ebp)
40a842:	53                   	push   %ebx
40a843:	e8 7a 00 00 00       	call   0x40a8c2
40a848:	83 c4 20             	add    $0x20,%esp
40a84b:	e8 4c f9 ff ff       	call   0x40a19c
40a850:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40a854:	75 66                	jne    0x40a8bc
40a856:	5f                   	pop    %edi
40a857:	5e                   	pop    %esi
40a858:	5b                   	pop    %ebx
40a859:	c9                   	leave
40a85a:	c3                   	ret
40a85b:	e8 b2 7a 00 00       	call   0x412312
40a860:	6a 01                	push   $0x1
40a862:	53                   	push   %ebx
40a863:	e8 d4 de ff ff       	call   0x40873c
40a868:	59                   	pop    %ecx
40a869:	59                   	pop    %ecx
40a86a:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
40a86d:	e8 31 03 00 00       	call   0x40aba3
40a872:	68 5c 14 43 00       	push   $0x43145c
40a877:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40a87a:	50                   	push   %eax
40a87b:	e8 7a e0 ff ff       	call   0x4088fa
40a880:	e8 17 f9 ff ff       	call   0x40a19c
40a885:	89 58 10             	mov    %ebx,0x10(%eax)
40a888:	e8 0f f9 ff ff       	call   0x40a19c
40a88d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a890:	89 48 14             	mov    %ecx,0x14(%eax)
40a893:	85 f6                	test   %esi,%esi
40a895:	75 03                	jne    0x40a89a
40a897:	8b 75 0c             	mov    0xc(%ebp),%esi
40a89a:	53                   	push   %ebx
40a89b:	56                   	push   %esi
40a89c:	e8 6d db ff ff       	call   0x40840e
40a8a1:	57                   	push   %edi
40a8a2:	ff 75 14             	push   0x14(%ebp)
40a8a5:	ff 75 0c             	push   0xc(%ebp)
40a8a8:	e8 7a 05 00 00       	call   0x40ae27
40a8ad:	57                   	push   %edi
40a8ae:	e8 31 07 00 00       	call   0x40afe4
40a8b3:	83 c4 10             	add    $0x10,%esp
40a8b6:	50                   	push   %eax
40a8b7:	e8 e2 04 00 00       	call   0x40ad9e
40a8bc:	e8 4d 45 00 00       	call   0x40ee0e
40a8c1:	cc                   	int3
40a8c2:	55                   	push   %ebp
40a8c3:	8b ec                	mov    %esp,%ebp
40a8c5:	83 ec 38             	sub    $0x38,%esp
40a8c8:	53                   	push   %ebx
40a8c9:	8b 5d 08             	mov    0x8(%ebp),%ebx
40a8cc:	81 3b 03 00 00 80    	cmpl   $0x80000003,(%ebx)
40a8d2:	0f 84 17 01 00 00    	je     0x40a9ef
40a8d8:	56                   	push   %esi
40a8d9:	57                   	push   %edi
40a8da:	e8 bd f8 ff ff       	call   0x40a19c
40a8df:	33 ff                	xor    %edi,%edi
40a8e1:	39 78 08             	cmp    %edi,0x8(%eax)
40a8e4:	74 46                	je     0x40a92c
40a8e6:	57                   	push   %edi
40a8e7:	ff 15 48 40 42 00    	call   *0x424048
40a8ed:	8b f0                	mov    %eax,%esi
40a8ef:	e8 a8 f8 ff ff       	call   0x40a19c
40a8f4:	39 70 08             	cmp    %esi,0x8(%eax)
40a8f7:	74 33                	je     0x40a92c
40a8f9:	81 3b 4d 4f 43 e0    	cmpl   $0xe0434f4d,(%ebx)
40a8ff:	74 2b                	je     0x40a92c
40a901:	81 3b 52 43 43 e0    	cmpl   $0xe0434352,(%ebx)
40a907:	74 23                	je     0x40a92c
40a909:	ff 75 24             	push   0x24(%ebp)
40a90c:	ff 75 20             	push   0x20(%ebp)
40a90f:	ff 75 18             	push   0x18(%ebp)
40a912:	ff 75 14             	push   0x14(%ebp)
40a915:	ff 75 10             	push   0x10(%ebp)
40a918:	ff 75 0c             	push   0xc(%ebp)
40a91b:	53                   	push   %ebx
40a91c:	e8 c7 d9 ff ff       	call   0x4082e8
40a921:	83 c4 1c             	add    $0x1c,%esp
40a924:	85 c0                	test   %eax,%eax
40a926:	0f 85 c1 00 00 00    	jne    0x40a9ed
40a92c:	8b 45 18             	mov    0x18(%ebp),%eax
40a92f:	89 45 ec             	mov    %eax,-0x14(%ebp)
40a932:	89 7d f0             	mov    %edi,-0x10(%ebp)
40a935:	39 78 0c             	cmp    %edi,0xc(%eax)
40a938:	0f 86 b4 00 00 00    	jbe    0x40a9f2
40a93e:	ff 75 20             	push   0x20(%ebp)
40a941:	50                   	push   %eax
40a942:	ff 75 14             	push   0x14(%ebp)
40a945:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a948:	ff 75 1c             	push   0x1c(%ebp)
40a94b:	50                   	push   %eax
40a94c:	8d 45 dc             	lea    -0x24(%ebp),%eax
40a94f:	50                   	push   %eax
40a950:	e8 c6 d8 ff ff       	call   0x40821b
40a955:	8b 55 e0             	mov    -0x20(%ebp),%edx
40a958:	83 c4 18             	add    $0x18,%esp
40a95b:	8b 45 dc             	mov    -0x24(%ebp),%eax
40a95e:	89 45 f4             	mov    %eax,-0xc(%ebp)
40a961:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a964:	3b 55 e8             	cmp    -0x18(%ebp),%edx
40a967:	0f 83 80 00 00 00    	jae    0x40a9ed
40a96d:	6b ca 14             	imul   $0x14,%edx,%ecx
40a970:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a973:	8b 00                	mov    (%eax),%eax
40a975:	8d 7d c8             	lea    -0x38(%ebp),%edi
40a978:	6a 05                	push   $0x5
40a97a:	8b 70 10             	mov    0x10(%eax),%esi
40a97d:	8b 45 1c             	mov    0x1c(%ebp),%eax
40a980:	03 f1                	add    %ecx,%esi
40a982:	59                   	pop    %ecx
40a983:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40a985:	39 45 c8             	cmp    %eax,-0x38(%ebp)
40a988:	7f 4e                	jg     0x40a9d8
40a98a:	3b 45 cc             	cmp    -0x34(%ebp),%eax
40a98d:	7f 49                	jg     0x40a9d8
40a98f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40a992:	8b 45 d8             	mov    -0x28(%ebp),%eax
40a995:	c1 e1 04             	shl    $0x4,%ecx
40a998:	83 c0 f0             	add    $0xfffffff0,%eax
40a99b:	03 c1                	add    %ecx,%eax
40a99d:	8b 48 04             	mov    0x4(%eax),%ecx
40a9a0:	85 c9                	test   %ecx,%ecx
40a9a2:	74 06                	je     0x40a9aa
40a9a4:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
40a9a8:	75 2e                	jne    0x40a9d8
40a9aa:	f6 00 40             	testb  $0x40,(%eax)
40a9ad:	75 29                	jne    0x40a9d8
40a9af:	6a 00                	push   $0x0
40a9b1:	6a 01                	push   $0x1
40a9b3:	ff 75 24             	push   0x24(%ebp)
40a9b6:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40a9b9:	ff 75 20             	push   0x20(%ebp)
40a9bc:	51                   	push   %ecx
40a9bd:	6a 00                	push   $0x0
40a9bf:	50                   	push   %eax
40a9c0:	ff 75 18             	push   0x18(%ebp)
40a9c3:	ff 75 14             	push   0x14(%ebp)
40a9c6:	ff 75 10             	push   0x10(%ebp)
40a9c9:	ff 75 0c             	push   0xc(%ebp)
40a9cc:	53                   	push   %ebx
40a9cd:	e8 c6 fa ff ff       	call   0x40a498
40a9d2:	8b 55 fc             	mov    -0x4(%ebp),%edx
40a9d5:	83 c4 30             	add    $0x30,%esp
40a9d8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40a9db:	42                   	inc    %edx
40a9dc:	8b 45 f4             	mov    -0xc(%ebp),%eax
40a9df:	83 c1 14             	add    $0x14,%ecx
40a9e2:	89 55 fc             	mov    %edx,-0x4(%ebp)
40a9e5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40a9e8:	3b 55 e8             	cmp    -0x18(%ebp),%edx
40a9eb:	72 86                	jb     0x40a973
40a9ed:	5f                   	pop    %edi
40a9ee:	5e                   	pop    %esi
40a9ef:	5b                   	pop    %ebx
40a9f0:	c9                   	leave
40a9f1:	c3                   	ret
40a9f2:	e8 17 44 00 00       	call   0x40ee0e
40a9f7:	cc                   	int3
40a9f8:	55                   	push   %ebp
40a9f9:	8b ec                	mov    %esp,%ebp
40a9fb:	8b 55 08             	mov    0x8(%ebp),%edx
40a9fe:	53                   	push   %ebx
40a9ff:	56                   	push   %esi
40aa00:	57                   	push   %edi
40aa01:	8b 42 04             	mov    0x4(%edx),%eax
40aa04:	85 c0                	test   %eax,%eax
40aa06:	74 76                	je     0x40aa7e
40aa08:	8d 48 08             	lea    0x8(%eax),%ecx
40aa0b:	80 39 00             	cmpb   $0x0,(%ecx)
40aa0e:	74 6e                	je     0x40aa7e
40aa10:	f6 02 80             	testb  $0x80,(%edx)
40aa13:	8b 7d 0c             	mov    0xc(%ebp),%edi
40aa16:	74 05                	je     0x40aa1d
40aa18:	f6 07 10             	testb  $0x10,(%edi)
40aa1b:	75 61                	jne    0x40aa7e
40aa1d:	8b 5f 04             	mov    0x4(%edi),%ebx
40aa20:	33 f6                	xor    %esi,%esi
40aa22:	3b c3                	cmp    %ebx,%eax
40aa24:	74 30                	je     0x40aa56
40aa26:	8d 43 08             	lea    0x8(%ebx),%eax
40aa29:	8a 19                	mov    (%ecx),%bl
40aa2b:	3a 18                	cmp    (%eax),%bl
40aa2d:	75 1a                	jne    0x40aa49
40aa2f:	84 db                	test   %bl,%bl
40aa31:	74 12                	je     0x40aa45
40aa33:	8a 59 01             	mov    0x1(%ecx),%bl
40aa36:	3a 58 01             	cmp    0x1(%eax),%bl
40aa39:	75 0e                	jne    0x40aa49
40aa3b:	83 c1 02             	add    $0x2,%ecx
40aa3e:	83 c0 02             	add    $0x2,%eax
40aa41:	84 db                	test   %bl,%bl
40aa43:	75 e4                	jne    0x40aa29
40aa45:	8b c6                	mov    %esi,%eax
40aa47:	eb 05                	jmp    0x40aa4e
40aa49:	1b c0                	sbb    %eax,%eax
40aa4b:	83 c8 01             	or     $0x1,%eax
40aa4e:	85 c0                	test   %eax,%eax
40aa50:	74 04                	je     0x40aa56
40aa52:	33 c0                	xor    %eax,%eax
40aa54:	eb 2b                	jmp    0x40aa81
40aa56:	f6 07 02             	testb  $0x2,(%edi)
40aa59:	74 05                	je     0x40aa60
40aa5b:	f6 02 08             	testb  $0x8,(%edx)
40aa5e:	74 1a                	je     0x40aa7a
40aa60:	8b 45 10             	mov    0x10(%ebp),%eax
40aa63:	f6 00 01             	testb  $0x1,(%eax)
40aa66:	74 05                	je     0x40aa6d
40aa68:	f6 02 01             	testb  $0x1,(%edx)
40aa6b:	74 0d                	je     0x40aa7a
40aa6d:	f6 00 02             	testb  $0x2,(%eax)
40aa70:	74 05                	je     0x40aa77
40aa72:	f6 02 02             	testb  $0x2,(%edx)
40aa75:	74 03                	je     0x40aa7a