40c682:	8b 01                	mov    (%ecx),%eax
40c684:	23 c3                	and    %ebx,%eax
40c686:	3b c7                	cmp    %edi,%eax
40c688:	72 0a                	jb     0x40c694
40c68a:	f6 41 20 01          	testb  $0x1,0x20(%ecx)
40c68e:	0f 85 ad 00 00 00    	jne    0x40c741
40c694:	f6 42 04 66          	testb  $0x66,0x4(%edx)
40c698:	74 26                	je     0x40c6c0
40c69a:	39 71 04             	cmp    %esi,0x4(%ecx)
40c69d:	0f 84 9e 00 00 00    	je     0x40c741
40c6a3:	39 75 1c             	cmp    %esi,0x1c(%ebp)
40c6a6:	0f 85 95 00 00 00    	jne    0x40c741
40c6ac:	51                   	push   %ecx
40c6ad:	ff 75 14             	push   0x14(%ebp)
40c6b0:	ff 75 0c             	push   0xc(%ebp)
40c6b3:	e8 44 03 00 00       	call   0x40c9fc
40c6b8:	83 c4 0c             	add    $0xc,%esp
40c6bb:	e9 81 00 00 00       	jmp    0x40c741
40c6c0:	39 71 0c             	cmp    %esi,0xc(%ecx)
40c6c3:	75 1e                	jne    0x40c6e3
40c6c5:	8b 01                	mov    (%ecx),%eax
40c6c7:	23 c3                	and    %ebx,%eax
40c6c9:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40c6ce:	72 05                	jb     0x40c6d5
40c6d0:	39 71 1c             	cmp    %esi,0x1c(%ecx)
40c6d3:	75 0e                	jne    0x40c6e3
40c6d5:	3b c7                	cmp    %edi,%eax
40c6d7:	72 68                	jb     0x40c741
40c6d9:	8b 41 20             	mov    0x20(%ecx),%eax
40c6dc:	c1 e8 02             	shr    $0x2,%eax
40c6df:	a8 01                	test   $0x1,%al
40c6e1:	74 5e                	je     0x40c741
40c6e3:	81 3a 63 73 6d e0    	cmpl   $0xe06d7363,(%edx)
40c6e9:	75 3a                	jne    0x40c725
40c6eb:	83 7a 10 03          	cmpl   $0x3,0x10(%edx)
40c6ef:	72 34                	jb     0x40c725
40c6f1:	39 7a 14             	cmp    %edi,0x14(%edx)
40c6f4:	76 2f                	jbe    0x40c725
40c6f6:	8b 42 1c             	mov    0x1c(%edx),%eax
40c6f9:	8b 70 08             	mov    0x8(%eax),%esi
40c6fc:	85 f6                	test   %esi,%esi
40c6fe:	74 25                	je     0x40c725
40c700:	0f b6 45 24          	movzbl 0x24(%ebp),%eax
40c704:	50                   	push   %eax
40c705:	ff 75 20             	push   0x20(%ebp)
40c708:	ff 75 1c             	push   0x1c(%ebp)
40c70b:	51                   	push   %ecx
40c70c:	ff 75 14             	push   0x14(%ebp)
40c70f:	8b ce                	mov    %esi,%ecx
40c711:	ff 75 10             	push   0x10(%ebp)
40c714:	ff 75 0c             	push   0xc(%ebp)
40c717:	52                   	push   %edx
40c718:	ff 15 68 12 43 00    	call   *0x431268
40c71e:	ff d6                	call   *%esi
40c720:	83 c4 20             	add    $0x20,%esp
40c723:	eb 1f                	jmp    0x40c744
40c725:	ff 75 20             	push   0x20(%ebp)
40c728:	ff 75 1c             	push   0x1c(%ebp)
40c72b:	ff 75 24             	push   0x24(%ebp)
40c72e:	51                   	push   %ecx
40c72f:	ff 75 14             	push   0x14(%ebp)
40c732:	ff 75 10             	push   0x10(%ebp)
40c735:	ff 75 0c             	push   0xc(%ebp)
40c738:	52                   	push   %edx
40c739:	e8 a2 f9 ff ff       	call   0x40c0e0
40c73e:	83 c4 20             	add    $0x20,%esp
40c741:	33 c0                	xor    %eax,%eax
40c743:	40                   	inc    %eax
40c744:	5f                   	pop    %edi
40c745:	5e                   	pop    %esi
40c746:	5b                   	pop    %ebx
40c747:	5d                   	pop    %ebp
40c748:	c3                   	ret
40c749:	55                   	push   %ebp
40c74a:	8b ec                	mov    %esp,%ebp
40c74c:	5d                   	pop    %ebp
40c74d:	e9 f5 fe ff ff       	jmp    0x40c647
40c752:	55                   	push   %ebp
40c753:	8b ec                	mov    %esp,%ebp
40c755:	56                   	push   %esi
40c756:	ff 75 08             	push   0x8(%ebp)
40c759:	8b f1                	mov    %ecx,%esi
40c75b:	e8 60 b3 ff ff       	call   0x407ac0
40c760:	c7 06 1c 18 43 00    	movl   $0x43181c,(%esi)
40c766:	8b c6                	mov    %esi,%eax
40c768:	5e                   	pop    %esi
40c769:	5d                   	pop    %ebp
40c76a:	c2 04 00             	ret    $0x4
40c76d:	83 61 04 00          	andl   $0x0,0x4(%ecx)
40c771:	8b c1                	mov    %ecx,%eax
40c773:	83 61 08 00          	andl   $0x0,0x8(%ecx)
40c777:	c7 41 04 24 18 43 00 	movl   $0x431824,0x4(%ecx)
40c77e:	c7 01 1c 18 43 00    	movl   $0x43181c,(%ecx)
40c784:	c3                   	ret
40c785:	55                   	push   %ebp
40c786:	8b ec                	mov    %esp,%ebp
40c788:	8b 45 08             	mov    0x8(%ebp),%eax
40c78b:	83 c0 04             	add    $0x4,%eax
40c78e:	50                   	push   %eax
40c78f:	8d 41 04             	lea    0x4(%ecx),%eax
40c792:	50                   	push   %eax
40c793:	e8 ec f3 ff ff       	call   0x40bb84
40c798:	f7 d8                	neg    %eax
40c79a:	59                   	pop    %ecx
40c79b:	1a c0                	sbb    %al,%al
40c79d:	59                   	pop    %ecx
40c79e:	fe c0                	inc    %al
40c7a0:	5d                   	pop    %ebp
40c7a1:	c2 04 00             	ret    $0x4
40c7a4:	6a 3c                	push   $0x3c
40c7a6:	68 20 aa 43 00       	push   $0x43aa20
40c7ab:	e8 20 dd ff ff       	call   0x40a4d0
40c7b0:	8b 45 18             	mov    0x18(%ebp),%eax
40c7b3:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c7b6:	33 ff                	xor    %edi,%edi
40c7b8:	89 7d c0             	mov    %edi,-0x40(%ebp)
40c7bb:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c7be:	8b 43 fc             	mov    -0x4(%ebx),%eax
40c7c1:	89 45 d0             	mov    %eax,-0x30(%ebp)
40c7c4:	8b 75 08             	mov    0x8(%ebp),%esi
40c7c7:	ff 76 18             	push   0x18(%esi)
40c7ca:	8d 45 b4             	lea    -0x4c(%ebp),%eax
40c7cd:	50                   	push   %eax
40c7ce:	e8 1e e5 ff ff       	call   0x40acf1
40c7d3:	59                   	pop    %ecx
40c7d4:	59                   	pop    %ecx
40c7d5:	89 45 cc             	mov    %eax,-0x34(%ebp)
40c7d8:	e8 bd f5 ff ff       	call   0x40bd9a
40c7dd:	8b 40 10             	mov    0x10(%eax),%eax
40c7e0:	89 45 c8             	mov    %eax,-0x38(%ebp)
40c7e3:	e8 b2 f5 ff ff       	call   0x40bd9a
40c7e8:	8b 40 14             	mov    0x14(%eax),%eax
40c7eb:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40c7ee:	e8 a7 f5 ff ff       	call   0x40bd9a
40c7f3:	89 70 10             	mov    %esi,0x10(%eax)
40c7f6:	e8 9f f5 ff ff       	call   0x40bd9a
40c7fb:	8b 4d 10             	mov    0x10(%ebp),%ecx
40c7fe:	89 48 14             	mov    %ecx,0x14(%eax)
40c801:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c804:	33 c0                	xor    %eax,%eax
40c806:	40                   	inc    %eax
40c807:	89 45 bc             	mov    %eax,-0x44(%ebp)
40c80a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c80d:	ff 75 20             	push   0x20(%ebp)
40c810:	ff 75 1c             	push   0x1c(%ebp)
40c813:	ff 75 18             	push   0x18(%ebp)
40c816:	ff 75 14             	push   0x14(%ebp)
40c819:	53                   	push   %ebx
40c81a:	e8 d0 e2 ff ff       	call   0x40aaef
40c81f:	83 c4 14             	add    $0x14,%esp
40c822:	8b d8                	mov    %eax,%ebx
40c824:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40c827:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c82a:	e9 9c 00 00 00       	jmp    0x40c8cb
40c82f:	ff 75 ec             	push   -0x14(%ebp)
40c832:	e8 7b 01 00 00       	call   0x40c9b2
40c837:	59                   	pop    %ecx
40c838:	c3                   	ret
40c839:	8b 65 e8             	mov    -0x18(%ebp),%esp
40c83c:	e8 59 f5 ff ff       	call   0x40bd9a
40c841:	33 ff                	xor    %edi,%edi
40c843:	89 78 20             	mov    %edi,0x20(%eax)
40c846:	8b 75 14             	mov    0x14(%ebp),%esi
40c849:	8b 46 08             	mov    0x8(%esi),%eax
40c84c:	89 45 d8             	mov    %eax,-0x28(%ebp)
40c84f:	56                   	push   %esi
40c850:	ff 75 18             	push   0x18(%ebp)
40c853:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c856:	53                   	push   %ebx
40c857:	e8 04 08 00 00       	call   0x40d060
40c85c:	83 c4 0c             	add    $0xc,%esp
40c85f:	8b d0                	mov    %eax,%edx
40c861:	89 55 e0             	mov    %edx,-0x20(%ebp)
40c864:	8b 46 10             	mov    0x10(%esi),%eax
40c867:	89 45 dc             	mov    %eax,-0x24(%ebp)
40c86a:	8b cf                	mov    %edi,%ecx
40c86c:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40c86f:	39 7e 0c             	cmp    %edi,0xc(%esi)
40c872:	76 40                	jbe    0x40c8b4
40c874:	6b c1 14             	imul   $0x14,%ecx,%eax
40c877:	8b 5e 10             	mov    0x10(%esi),%ebx
40c87a:	3b 54 18 04          	cmp    0x4(%eax,%ebx,1),%edx
40c87e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c881:	7e 28                	jle    0x40c8ab
40c883:	6b c1 14             	imul   $0x14,%ecx,%eax
40c886:	8b 75 dc             	mov    -0x24(%ebp),%esi
40c889:	3b 54 30 08          	cmp    0x8(%eax,%esi,1),%edx
40c88d:	8b 75 14             	mov    0x14(%ebp),%esi
40c890:	7f 19                	jg     0x40c8ab
40c892:	6b c1 14             	imul   $0x14,%ecx,%eax
40c895:	8b 4e 10             	mov    0x10(%esi),%ecx
40c898:	8b 44 08 04          	mov    0x4(%eax,%ecx,1),%eax
40c89c:	40                   	inc    %eax
40c89d:	89 45 e0             	mov    %eax,-0x20(%ebp)
40c8a0:	8b 55 d8             	mov    -0x28(%ebp),%edx
40c8a3:	8b 14 c2             	mov    (%edx,%eax,8),%edx
40c8a6:	89 55 e0             	mov    %edx,-0x20(%ebp)
40c8a9:	eb 09                	jmp    0x40c8b4
40c8ab:	41                   	inc    %ecx
40c8ac:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40c8af:	3b 4e 0c             	cmp    0xc(%esi),%ecx
40c8b2:	72 c0                	jb     0x40c874
40c8b4:	52                   	push   %edx
40c8b5:	56                   	push   %esi
40c8b6:	57                   	push   %edi
40c8b7:	53                   	push   %ebx
40c8b8:	e8 57 01 00 00       	call   0x40ca14
40c8bd:	83 c4 10             	add    $0x10,%esp
40c8c0:	8b df                	mov    %edi,%ebx
40c8c2:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40c8c5:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c8c8:	8b 75 08             	mov    0x8(%ebp),%esi
40c8cb:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c8d2:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
40c8d9:	e8 1a 00 00 00       	call   0x40c8f8
40c8de:	8b c3                	mov    %ebx,%eax
40c8e0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c8e3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c8ea:	59                   	pop    %ecx
40c8eb:	5f                   	pop    %edi
40c8ec:	5e                   	pop    %esi
40c8ed:	5b                   	pop    %ebx
40c8ee:	c9                   	leave
40c8ef:	c3                   	ret
40c8f0:	33 ff                	xor    %edi,%edi
40c8f2:	8b 75 08             	mov    0x8(%ebp),%esi
40c8f5:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40c8f8:	8b 45 d0             	mov    -0x30(%ebp),%eax
40c8fb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c8fe:	89 41 fc             	mov    %eax,-0x4(%ecx)
40c901:	ff 75 cc             	push   -0x34(%ebp)
40c904:	e8 0c e4 ff ff       	call   0x40ad15
40c909:	59                   	pop    %ecx
40c90a:	e8 8b f4 ff ff       	call   0x40bd9a
40c90f:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40c912:	89 48 10             	mov    %ecx,0x10(%eax)
40c915:	e8 80 f4 ff ff       	call   0x40bd9a
40c91a:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40c91d:	89 48 14             	mov    %ecx,0x14(%eax)
40c920:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
40c926:	75 4a                	jne    0x40c972
40c928:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40c92c:	75 44                	jne    0x40c972
40c92e:	81 7e 14 20 05 93 19 	cmpl   $0x19930520,0x14(%esi)
40c935:	74 12                	je     0x40c949
40c937:	81 7e 14 21 05 93 19 	cmpl   $0x19930521,0x14(%esi)
40c93e:	74 09                	je     0x40c949
40c940:	81 7e 14 22 05 93 19 	cmpl   $0x19930522,0x14(%esi)
40c947:	75 29                	jne    0x40c972
40c949:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
40c94d:	75 23                	jne    0x40c972
40c94f:	85 db                	test   %ebx,%ebx
40c951:	74 1f                	je     0x40c972
40c953:	ff 76 18             	push   0x18(%esi)
40c956:	e8 6b f3 ff ff       	call   0x40bcc6
40c95b:	59                   	pop    %ecx
40c95c:	85 c0                	test   %eax,%eax
40c95e:	74 12                	je     0x40c972
40c960:	39 7d bc             	cmp    %edi,-0x44(%ebp)
40c963:	0f 95 c0             	setne  %al
40c966:	0f b6 c0             	movzbl %al,%eax
40c969:	50                   	push   %eax
40c96a:	56                   	push   %esi
40c96b:	e8 50 f2 ff ff       	call   0x40bbc0
40c970:	59                   	pop    %ecx
40c971:	59                   	pop    %ecx
40c972:	c3                   	ret
40c973:	6a 04                	push   $0x4
40c975:	b8 09 02 43 00       	mov    $0x430209,%eax
40c97a:	e8 69 13 02 00       	call   0x42dce8
40c97f:	e8 16 f4 ff ff       	call   0x40bd9a
40c984:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40c988:	75 1d                	jne    0x40c9a7
40c98a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c98e:	e8 b0 06 00 00       	call   0x40d043
40c993:	e8 02 f4 ff ff       	call   0x40bd9a
40c998:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c99b:	6a 00                	push   $0x0
40c99d:	6a 00                	push   $0x0
40c99f:	89 48 1c             	mov    %ecx,0x1c(%eax)
40c9a2:	e8 66 ee ff ff       	call   0x40b80d
40c9a7:	e8 e5 f4 00 00       	call   0x41be91
40c9ac:	cc                   	int3
40c9ad:	cc                   	int3
40c9ae:	cc                   	int3
40c9af:	cc                   	int3
40c9b0:	cc                   	int3
40c9b1:	cc                   	int3
40c9b2:	55                   	push   %ebp
40c9b3:	8b ec                	mov    %esp,%ebp
40c9b5:	8b 45 08             	mov    0x8(%ebp),%eax
40c9b8:	8b 00                	mov    (%eax),%eax
40c9ba:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40c9c0:	75 36                	jne    0x40c9f8
40c9c2:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40c9c6:	75 30                	jne    0x40c9f8
40c9c8:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40c9cf:	74 12                	je     0x40c9e3
40c9d1:	81 78 14 21 05 93 19 	cmpl   $0x19930521,0x14(%eax)
40c9d8:	74 09                	je     0x40c9e3
40c9da:	81 78 14 22 05 93 19 	cmpl   $0x19930522,0x14(%eax)
40c9e1:	75 15                	jne    0x40c9f8
40c9e3:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40c9e7:	75 0f                	jne    0x40c9f8
40c9e9:	e8 ac f3 ff ff       	call   0x40bd9a
40c9ee:	33 c9                	xor    %ecx,%ecx
40c9f0:	41                   	inc    %ecx
40c9f1:	89 48 20             	mov    %ecx,0x20(%eax)
40c9f4:	8b c1                	mov    %ecx,%eax
40c9f6:	5d                   	pop    %ebp
40c9f7:	c3                   	ret
40c9f8:	33 c0                	xor    %eax,%eax
40c9fa:	5d                   	pop    %ebp
40c9fb:	c3                   	ret
40c9fc:	55                   	push   %ebp
40c9fd:	8b ec                	mov    %esp,%ebp
40c9ff:	6a ff                	push   $0xffffffff
40ca01:	ff 75 10             	push   0x10(%ebp)
40ca04:	ff 75 0c             	push   0xc(%ebp)
40ca07:	ff 75 08             	push   0x8(%ebp)
40ca0a:	e8 05 00 00 00       	call   0x40ca14
40ca0f:	83 c4 10             	add    $0x10,%esp
40ca12:	5d                   	pop    %ebp
40ca13:	c3                   	ret
40ca14:	6a 10                	push   $0x10
40ca16:	68 f8 a9 43 00       	push   $0x43a9f8
40ca1b:	e8 b0 da ff ff       	call   0x40a4d0
40ca20:	ff 75 10             	push   0x10(%ebp)
40ca23:	ff 75 0c             	push   0xc(%ebp)
40ca26:	ff 75 08             	push   0x8(%ebp)
40ca29:	e8 32 06 00 00       	call   0x40d060
40ca2e:	83 c4 0c             	add    $0xc,%esp
40ca31:	8b f0                	mov    %eax,%esi
40ca33:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40ca36:	e8 5f f3 ff ff       	call   0x40bd9a
40ca3b:	ff 40 18             	incl   0x18(%eax)
40ca3e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ca42:	3b 75 14             	cmp    0x14(%ebp),%esi
40ca45:	74 68                	je     0x40caaf
40ca47:	83 fe ff             	cmp    $0xffffffff,%esi
40ca4a:	0f 8e a6 00 00 00    	jle    0x40caf6
40ca50:	8b 7d 10             	mov    0x10(%ebp),%edi
40ca53:	3b 77 04             	cmp    0x4(%edi),%esi
40ca56:	0f 8d 9a 00 00 00    	jge    0x40caf6
40ca5c:	8b 47 08             	mov    0x8(%edi),%eax
40ca5f:	8b 0c f0             	mov    (%eax,%esi,8),%ecx
40ca62:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40ca65:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40ca6c:	83 7c f0 04 00       	cmpl   $0x0,0x4(%eax,%esi,8)
40ca71:	74 30                	je     0x40caa3