406916:	74 f2                	je     0x40690a
406918:	8b 44 24 14          	mov    0x14(%esp),%eax
40691c:	8b 00                	mov    (%eax),%eax
40691e:	a8 01                	test   $0x1,%al
406920:	74 05                	je     0x406927
406922:	f6 07 01             	testb  $0x1,(%edi)
406925:	74 e3                	je     0x40690a
406927:	a8 02                	test   $0x2,%al
406929:	74 05                	je     0x406930
40692b:	f6 07 02             	testb  $0x2,(%edi)
40692e:	74 da                	je     0x40690a
406930:	33 c0                	xor    %eax,%eax
406932:	40                   	inc    %eax
406933:	5f                   	pop    %edi
406934:	5e                   	pop    %esi
406935:	c3                   	ret
406936:	8b 44 24 04          	mov    0x4(%esp),%eax
40693a:	8b 00                	mov    (%eax),%eax
40693c:	8b 00                	mov    (%eax),%eax
40693e:	3d 4d 4f 43 e0       	cmp    $0xe0434f4d,%eax
406943:	74 18                	je     0x40695d
406945:	3d 63 73 6d e0       	cmp    $0xe06d7363,%eax
40694a:	75 2b                	jne    0x406977
40694c:	e8 fb 5b 00 00       	call   0x40c54c
406951:	83 a0 90 00 00 00 00 	andl   $0x0,0x90(%eax)
406958:	e9 ac 5e 00 00       	jmp    0x40c809
40695d:	e8 ea 5b 00 00       	call   0x40c54c
406962:	83 b8 90 00 00 00 00 	cmpl   $0x0,0x90(%eax)
406969:	7e 0c                	jle    0x406977
40696b:	e8 dc 5b 00 00       	call   0x40c54c
406970:	05 90 00 00 00       	add    $0x90,%eax
406975:	ff 08                	decl   (%eax)
406977:	33 c0                	xor    %eax,%eax
406979:	c3                   	ret
40697a:	6a 10                	push   $0x10
40697c:	68 90 a8 41 00       	push   $0x41a890
406981:	e8 c2 6c 00 00       	call   0x40d648
406986:	8b 7d 10             	mov    0x10(%ebp),%edi
406989:	8b 5d 08             	mov    0x8(%ebp),%ebx
40698c:	81 7f 04 80 00 00 00 	cmpl   $0x80,0x4(%edi)
406993:	7f 06                	jg     0x40699b
406995:	0f be 73 08          	movsbl 0x8(%ebx),%esi
406999:	eb 03                	jmp    0x40699e
40699b:	8b 73 08             	mov    0x8(%ebx),%esi
40699e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4069a1:	e8 a6 5b 00 00       	call   0x40c54c
4069a6:	05 90 00 00 00       	add    $0x90,%eax
4069ab:	ff 00                	incl   (%eax)
4069ad:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4069b1:	3b 75 14             	cmp    0x14(%ebp),%esi
4069b4:	74 65                	je     0x406a1b
4069b6:	83 fe ff             	cmp    $0xffffffff,%esi
4069b9:	7e 05                	jle    0x4069c0
4069bb:	3b 77 04             	cmp    0x4(%edi),%esi
4069be:	7c 05                	jl     0x4069c5
4069c0:	e8 90 5e 00 00       	call   0x40c855
4069c5:	8b c6                	mov    %esi,%eax
4069c7:	c1 e0 03             	shl    $0x3,%eax
4069ca:	8b 4f 08             	mov    0x8(%edi),%ecx
4069cd:	03 c8                	add    %eax,%ecx
4069cf:	8b 31                	mov    (%ecx),%esi
4069d1:	89 75 e0             	mov    %esi,-0x20(%ebp)
4069d4:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4069db:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
4069df:	74 15                	je     0x4069f6
4069e1:	89 73 08             	mov    %esi,0x8(%ebx)
4069e4:	68 03 01 00 00       	push   $0x103
4069e9:	53                   	push   %ebx
4069ea:	8b 4f 08             	mov    0x8(%edi),%ecx
4069ed:	ff 74 01 04          	push   0x4(%ecx,%eax,1)
4069f1:	e8 aa 5e 00 00       	call   0x40c8a0
4069f6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4069fa:	eb 1a                	jmp    0x406a16
4069fc:	ff 75 ec             	push   -0x14(%ebp)
4069ff:	e8 32 ff ff ff       	call   0x406936
406a04:	59                   	pop    %ecx
406a05:	c3                   	ret
406a06:	8b 65 e8             	mov    -0x18(%ebp),%esp
406a09:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406a0d:	8b 7d 10             	mov    0x10(%ebp),%edi
406a10:	8b 5d 08             	mov    0x8(%ebp),%ebx
406a13:	8b 75 e0             	mov    -0x20(%ebp),%esi
406a16:	89 75 e4             	mov    %esi,-0x1c(%ebp)
406a19:	eb 96                	jmp    0x4069b1
406a1b:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406a22:	e8 19 00 00 00       	call   0x406a40
406a27:	3b 75 14             	cmp    0x14(%ebp),%esi
406a2a:	74 05                	je     0x406a31
406a2c:	e8 24 5e 00 00       	call   0x40c855
406a31:	89 73 08             	mov    %esi,0x8(%ebx)
406a34:	e8 54 6c 00 00       	call   0x40d68d
406a39:	c3                   	ret
406a3a:	8b 5d 08             	mov    0x8(%ebp),%ebx
406a3d:	8b 75 e4             	mov    -0x1c(%ebp),%esi
406a40:	e8 07 5b 00 00       	call   0x40c54c
406a45:	83 b8 90 00 00 00 00 	cmpl   $0x0,0x90(%eax)
406a4c:	7e 0c                	jle    0x406a5a
406a4e:	e8 f9 5a 00 00       	call   0x40c54c
406a53:	05 90 00 00 00       	add    $0x90,%eax
406a58:	ff 08                	decl   (%eax)
406a5a:	c3                   	ret
406a5b:	8b 00                	mov    (%eax),%eax
406a5d:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
406a63:	75 38                	jne    0x406a9d
406a65:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
406a69:	75 32                	jne    0x406a9d
406a6b:	8b 48 14             	mov    0x14(%eax),%ecx
406a6e:	81 f9 20 05 93 19    	cmp    $0x19930520,%ecx
406a74:	74 10                	je     0x406a86
406a76:	81 f9 21 05 93 19    	cmp    $0x19930521,%ecx
406a7c:	74 08                	je     0x406a86
406a7e:	81 f9 22 05 93 19    	cmp    $0x19930522,%ecx
406a84:	75 17                	jne    0x406a9d
406a86:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
406a8a:	75 11                	jne    0x406a9d
406a8c:	e8 bb 5a 00 00       	call   0x40c54c
406a91:	33 c9                	xor    %ecx,%ecx
406a93:	41                   	inc    %ecx
406a94:	89 88 0c 02 00 00    	mov    %ecx,0x20c(%eax)
406a9a:	8b c1                	mov    %ecx,%eax
406a9c:	c3                   	ret
406a9d:	33 c0                	xor    %eax,%eax
406a9f:	c3                   	ret
406aa0:	6a 08                	push   $0x8
406aa2:	68 b8 a8 41 00       	push   $0x41a8b8
406aa7:	e8 9c 6b 00 00       	call   0x40d648
406aac:	8b 4d 08             	mov    0x8(%ebp),%ecx
406aaf:	85 c9                	test   %ecx,%ecx
406ab1:	74 2a                	je     0x406add
406ab3:	81 39 63 73 6d e0    	cmpl   $0xe06d7363,(%ecx)
406ab9:	75 22                	jne    0x406add
406abb:	8b 41 1c             	mov    0x1c(%ecx),%eax
406abe:	85 c0                	test   %eax,%eax
406ac0:	74 1b                	je     0x406add
406ac2:	8b 40 04             	mov    0x4(%eax),%eax
406ac5:	85 c0                	test   %eax,%eax
406ac7:	74 14                	je     0x406add
406ac9:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406acd:	50                   	push   %eax
406ace:	ff 71 18             	push   0x18(%ecx)
406ad1:	e8 e6 f5 ff ff       	call   0x4060bc
406ad6:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406add:	e8 ab 6b 00 00       	call   0x40d68d
406ae2:	c3                   	ret
406ae3:	33 c0                	xor    %eax,%eax
406ae5:	38 45 0c             	cmp    %al,0xc(%ebp)
406ae8:	0f 95 c0             	setne  %al
406aeb:	c3                   	ret
406aec:	8b 65 e8             	mov    -0x18(%ebp),%esp
406aef:	e9 15 5d 00 00       	jmp    0x40c809
406af4:	8b 4c 24 08          	mov    0x8(%esp),%ecx
406af8:	8b 01                	mov    (%ecx),%eax
406afa:	56                   	push   %esi
406afb:	8b 74 24 08          	mov    0x8(%esp),%esi
406aff:	03 c6                	add    %esi,%eax
406b01:	83 79 04 00          	cmpl   $0x0,0x4(%ecx)
406b05:	7c 10                	jl     0x406b17
406b07:	8b 51 04             	mov    0x4(%ecx),%edx
406b0a:	8b 49 08             	mov    0x8(%ecx),%ecx
406b0d:	8b 34 32             	mov    (%edx,%esi,1),%esi
406b10:	8b 0c 0e             	mov    (%esi,%ecx,1),%ecx
406b13:	03 ca                	add    %edx,%ecx
406b15:	03 c1                	add    %ecx,%eax
406b17:	5e                   	pop    %esi
406b18:	c3                   	ret
406b19:	e8 2e 5a 00 00       	call   0x40c54c
406b1e:	33 c9                	xor    %ecx,%ecx
406b20:	39 88 90 00 00 00    	cmp    %ecx,0x90(%eax)
406b26:	0f 95 c1             	setne  %cl
406b29:	8a c1                	mov    %cl,%al
406b2b:	c3                   	ret
406b2c:	55                   	push   %ebp
406b2d:	8b ec                	mov    %esp,%ebp
406b2f:	83 ec 0c             	sub    $0xc,%esp
406b32:	85 ff                	test   %edi,%edi
406b34:	75 0a                	jne    0x406b40
406b36:	e8 1a 5d 00 00       	call   0x40c855
406b3b:	e9 c9 5c 00 00       	jmp    0x40c809
406b40:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
406b44:	83 3f 00             	cmpl   $0x0,(%edi)
406b47:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
406b4b:	7e 53                	jle    0x406ba0
406b4d:	53                   	push   %ebx
406b4e:	56                   	push   %esi
406b4f:	8b 45 08             	mov    0x8(%ebp),%eax
406b52:	8b 40 1c             	mov    0x1c(%eax),%eax
406b55:	8b 40 0c             	mov    0xc(%eax),%eax
406b58:	8b 18                	mov    (%eax),%ebx
406b5a:	85 db                	test   %ebx,%ebx
406b5c:	8d 70 04             	lea    0x4(%eax),%esi
406b5f:	7e 33                	jle    0x406b94
406b61:	8b 45 f8             	mov    -0x8(%ebp),%eax
406b64:	c1 e0 04             	shl    $0x4,%eax
406b67:	89 45 f4             	mov    %eax,-0xc(%ebp)
406b6a:	8b 4d 08             	mov    0x8(%ebp),%ecx
406b6d:	ff 71 1c             	push   0x1c(%ecx)
406b70:	8b 06                	mov    (%esi),%eax
406b72:	50                   	push   %eax
406b73:	8b 47 04             	mov    0x4(%edi),%eax
406b76:	03 45 f4             	add    -0xc(%ebp),%eax
406b79:	50                   	push   %eax
406b7a:	e8 5b fd ff ff       	call   0x4068da
406b7f:	83 c4 0c             	add    $0xc,%esp
406b82:	85 c0                	test   %eax,%eax
406b84:	75 0a                	jne    0x406b90
406b86:	4b                   	dec    %ebx
406b87:	83 c6 04             	add    $0x4,%esi
406b8a:	85 db                	test   %ebx,%ebx
406b8c:	7f dc                	jg     0x406b6a
406b8e:	eb 04                	jmp    0x406b94
406b90:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
406b94:	ff 45 f8             	incl   -0x8(%ebp)
406b97:	8b 45 f8             	mov    -0x8(%ebp),%eax
406b9a:	3b 07                	cmp    (%edi),%eax
406b9c:	7c b1                	jl     0x406b4f
406b9e:	5e                   	pop    %esi
406b9f:	5b                   	pop    %ebx
406ba0:	8a 45 ff             	mov    -0x1(%ebp),%al
406ba3:	c9                   	leave
406ba4:	c3                   	ret
406ba5:	6a 04                	push   $0x4
406ba7:	b8 76 5f 41 00       	mov    $0x415f76,%eax
406bac:	e8 6d fc ff ff       	call   0x40681e
406bb1:	e8 96 59 00 00       	call   0x40c54c
406bb6:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
406bbd:	74 05                	je     0x406bc4
406bbf:	e8 91 5c 00 00       	call   0x40c855
406bc4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406bc8:	e8 75 5c 00 00       	call   0x40c842
406bcd:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406bd1:	e9 33 5c 00 00       	jmp    0x40c809
406bd6:	e8 71 59 00 00       	call   0x40c54c
406bdb:	8b 4d 08             	mov    0x8(%ebp),%ecx
406bde:	6a 00                	push   $0x0
406be0:	6a 00                	push   $0x0
406be2:	89 88 94 00 00 00    	mov    %ecx,0x94(%eax)
406be8:	e8 55 f4 ff ff       	call   0x406042
406bed:	cc                   	int3
406bee:	6a 2c                	push   $0x2c
406bf0:	68 30 a9 41 00       	push   $0x41a930
406bf5:	e8 4e 6a 00 00       	call   0x40d648
406bfa:	8b d9                	mov    %ecx,%ebx
406bfc:	8b 7d 0c             	mov    0xc(%ebp),%edi
406bff:	8b 75 08             	mov    0x8(%ebp),%esi
406c02:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
406c05:	83 65 cc 00          	andl   $0x0,-0x34(%ebp)
406c09:	8b 47 fc             	mov    -0x4(%edi),%eax
406c0c:	89 45 dc             	mov    %eax,-0x24(%ebp)
406c0f:	ff 76 18             	push   0x18(%esi)
406c12:	8d 45 c4             	lea    -0x3c(%ebp),%eax
406c15:	50                   	push   %eax
406c16:	e8 45 f7 ff ff       	call   0x406360
406c1b:	59                   	pop    %ecx
406c1c:	59                   	pop    %ecx
406c1d:	89 45 d8             	mov    %eax,-0x28(%ebp)
406c20:	e8 27 59 00 00       	call   0x40c54c
406c25:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
406c2b:	89 45 d4             	mov    %eax,-0x2c(%ebp)
406c2e:	e8 19 59 00 00       	call   0x40c54c
406c33:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
406c39:	89 45 d0             	mov    %eax,-0x30(%ebp)
406c3c:	e8 0b 59 00 00       	call   0x40c54c
406c41:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
406c47:	e8 00 59 00 00       	call   0x40c54c
406c4c:	8b 4d 10             	mov    0x10(%ebp),%ecx
406c4f:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
406c55:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406c59:	33 c0                	xor    %eax,%eax
406c5b:	40                   	inc    %eax
406c5c:	89 45 10             	mov    %eax,0x10(%ebp)
406c5f:	89 45 fc             	mov    %eax,-0x4(%ebp)
406c62:	ff 75 1c             	push   0x1c(%ebp)
406c65:	ff 75 18             	push   0x18(%ebp)
406c68:	53                   	push   %ebx
406c69:	ff 75 14             	push   0x14(%ebp)
406c6c:	57                   	push   %edi
406c6d:	e8 83 f7 ff ff       	call   0x4063f5
406c72:	83 c4 14             	add    $0x14,%esp
406c75:	89 45 e4             	mov    %eax,-0x1c(%ebp)
406c78:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406c7c:	eb 6f                	jmp    0x406ced
406c7e:	8b 45 ec             	mov    -0x14(%ebp),%eax
406c81:	e8 d5 fd ff ff       	call   0x406a5b
406c86:	c3                   	ret
406c87:	8b 65 e8             	mov    -0x18(%ebp),%esp
406c8a:	e8 bd 58 00 00       	call   0x40c54c
406c8f:	83 a0 0c 02 00 00 00 	andl   $0x0,0x20c(%eax)
406c96:	8b 75 14             	mov    0x14(%ebp),%esi
406c99:	8b 7d 0c             	mov    0xc(%ebp),%edi
406c9c:	81 7e 04 80 00 00 00 	cmpl   $0x80,0x4(%esi)
406ca3:	7f 06                	jg     0x406cab
406ca5:	0f be 4f 08          	movsbl 0x8(%edi),%ecx
406ca9:	eb 03                	jmp    0x406cae
406cab:	8b 4f 08             	mov    0x8(%edi),%ecx
406cae:	8b 5e 10             	mov    0x10(%esi),%ebx
406cb1:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
406cb5:	8b 45 e0             	mov    -0x20(%ebp),%eax
406cb8:	3b 46 0c             	cmp    0xc(%esi),%eax
406cbb:	73 18                	jae    0x406cd5
406cbd:	6b c0 14             	imul   $0x14,%eax,%eax
406cc0:	03 c3                	add    %ebx,%eax
406cc2:	8b 50 04             	mov    0x4(%eax),%edx
406cc5:	3b ca                	cmp    %edx,%ecx
406cc7:	7e 40                	jle    0x406d09
406cc9:	3b 48 08             	cmp    0x8(%eax),%ecx
406ccc:	7f 3b                	jg     0x406d09
406cce:	8b 46 08             	mov    0x8(%esi),%eax
406cd1:	8b 4c d0 08          	mov    0x8(%eax,%edx,8),%ecx
406cd5:	51                   	push   %ecx
406cd6:	56                   	push   %esi
406cd7:	6a 00                	push   $0x0
406cd9:	57                   	push   %edi
406cda:	e8 9b fc ff ff       	call   0x40697a
406cdf:	83 c4 10             	add    $0x10,%esp
406ce2:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
406ce6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
406cea:	8b 75 08             	mov    0x8(%ebp),%esi
406ced:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406cf4:	c7 45 10 00 00 00 00 	movl   $0x0,0x10(%ebp)
406cfb:	e8 14 00 00 00       	call   0x406d14
406d00:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406d03:	e8 85 69 00 00       	call   0x40d68d
406d08:	c3                   	ret
406d09:	ff 45 e0             	incl   -0x20(%ebp)
406d0c:	eb a7                	jmp    0x406cb5
406d0e:	8b 7d 0c             	mov    0xc(%ebp),%edi
406d11:	8b 75 08             	mov    0x8(%ebp),%esi
406d14:	8b 45 dc             	mov    -0x24(%ebp),%eax
406d17:	89 47 fc             	mov    %eax,-0x4(%edi)
406d1a:	ff 75 d8             	push   -0x28(%ebp)
406d1d:	e8 87 f6 ff ff       	call   0x4063a9
406d22:	59                   	pop    %ecx
406d23:	e8 24 58 00 00       	call   0x40c54c
406d28:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406d2b:	89 88 88 00 00 00    	mov    %ecx,0x88(%eax)
406d31:	e8 16 58 00 00       	call   0x40c54c
406d36:	8b 4d d0             	mov    -0x30(%ebp),%ecx
406d39:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
406d3f:	81 3e 63 73 6d e0    	cmpl   $0xe06d7363,(%esi)
406d45:	75 42                	jne    0x406d89
406d47:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
406d4b:	75 3c                	jne    0x406d89
406d4d:	8b 46 14             	mov    0x14(%esi),%eax
406d50:	3d 20 05 93 19       	cmp    $0x19930520,%eax
406d55:	74 0e                	je     0x406d65
406d57:	3d 21 05 93 19       	cmp    $0x19930521,%eax
406d5c:	74 07                	je     0x406d65
406d5e:	3d 22 05 93 19       	cmp    $0x19930522,%eax
406d63:	75 24                	jne    0x406d89
406d65:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)