406719:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40671c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40671f:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
406723:	75 06                	jne    0x40672b
406725:	50                   	push   %eax
406726:	e8 a8 73 00 00       	call   0x40dad3
40672b:	e8 c3 73 00 00       	call   0x40daf3
406730:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
406737:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40673a:	eb 13                	jmp    0x40674f
40673c:	33 c0                	xor    %eax,%eax
40673e:	40                   	inc    %eax
40673f:	c3                   	ret
406740:	8b 65 e8             	mov    -0x18(%ebp),%esp
406743:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40674a:	b8 ff 00 00 00       	mov    $0xff,%eax
40674f:	e8 39 6f 00 00       	call   0x40d68d
406754:	c3                   	ret
406755:	e8 83 7e 00 00       	call   0x40e5dd
40675a:	e9 16 fe ff ff       	jmp    0x406575
40675f:	cc                   	int3
406760:	8b 4c 24 04          	mov    0x4(%esp),%ecx
406764:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40676a:	74 24                	je     0x406790
40676c:	8a 01                	mov    (%ecx),%al
40676e:	83 c1 01             	add    $0x1,%ecx
406771:	84 c0                	test   %al,%al
406773:	74 4e                	je     0x4067c3
406775:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40677b:	75 ef                	jne    0x40676c
40677d:	05 00 00 00 00       	add    $0x0,%eax
406782:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
406789:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
406790:	8b 01                	mov    (%ecx),%eax
406792:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
406797:	03 d0                	add    %eax,%edx
406799:	83 f0 ff             	xor    $0xffffffff,%eax
40679c:	33 c2                	xor    %edx,%eax
40679e:	83 c1 04             	add    $0x4,%ecx
4067a1:	a9 00 01 01 81       	test   $0x81010100,%eax
4067a6:	74 e8                	je     0x406790
4067a8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4067ab:	84 c0                	test   %al,%al
4067ad:	74 32                	je     0x4067e1
4067af:	84 e4                	test   %ah,%ah
4067b1:	74 24                	je     0x4067d7
4067b3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4067b8:	74 13                	je     0x4067cd
4067ba:	a9 00 00 00 ff       	test   $0xff000000,%eax
4067bf:	74 02                	je     0x4067c3
4067c1:	eb cd                	jmp    0x406790
4067c3:	8d 41 ff             	lea    -0x1(%ecx),%eax
4067c6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067ca:	2b c1                	sub    %ecx,%eax
4067cc:	c3                   	ret
4067cd:	8d 41 fe             	lea    -0x2(%ecx),%eax
4067d0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067d4:	2b c1                	sub    %ecx,%eax
4067d6:	c3                   	ret
4067d7:	8d 41 fd             	lea    -0x3(%ecx),%eax
4067da:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067de:	2b c1                	sub    %ecx,%eax
4067e0:	c3                   	ret
4067e1:	8d 41 fc             	lea    -0x4(%ecx),%eax
4067e4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4067e8:	2b c1                	sub    %ecx,%eax
4067ea:	c3                   	ret
4067eb:	50                   	push   %eax
4067ec:	64 ff 35 00 00 00 00 	push   %fs:0x0
4067f3:	8d 44 24 0c          	lea    0xc(%esp),%eax
4067f7:	2b 64 24 0c          	sub    0xc(%esp),%esp
4067fb:	53                   	push   %ebx
4067fc:	56                   	push   %esi
4067fd:	57                   	push   %edi
4067fe:	89 28                	mov    %ebp,(%eax)
406800:	8b e8                	mov    %eax,%ebp
406802:	a1 20 c5 41 00       	mov    0x41c520,%eax
406807:	33 c5                	xor    %ebp,%eax
406809:	50                   	push   %eax
40680a:	ff 75 fc             	push   -0x4(%ebp)
40680d:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
406814:	8d 45 f4             	lea    -0xc(%ebp),%eax
406817:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40681d:	c3                   	ret
40681e:	50                   	push   %eax
40681f:	64 ff 35 00 00 00 00 	push   %fs:0x0
406826:	8d 44 24 0c          	lea    0xc(%esp),%eax
40682a:	2b 64 24 0c          	sub    0xc(%esp),%esp
40682e:	53                   	push   %ebx
40682f:	56                   	push   %esi
406830:	57                   	push   %edi
406831:	89 28                	mov    %ebp,(%eax)
406833:	8b e8                	mov    %eax,%ebp
406835:	a1 20 c5 41 00       	mov    0x41c520,%eax
40683a:	33 c5                	xor    %ebp,%eax
40683c:	50                   	push   %eax
40683d:	89 65 f0             	mov    %esp,-0x10(%ebp)
406840:	ff 75 fc             	push   -0x4(%ebp)
406843:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
40684a:	8d 45 f4             	lea    -0xc(%ebp),%eax
40684d:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406853:	c3                   	ret
406854:	50                   	push   %eax
406855:	64 ff 35 00 00 00 00 	push   %fs:0x0
40685c:	8d 44 24 0c          	lea    0xc(%esp),%eax
406860:	2b 64 24 0c          	sub    0xc(%esp),%esp
406864:	53                   	push   %ebx
406865:	56                   	push   %esi
406866:	57                   	push   %edi
406867:	89 28                	mov    %ebp,(%eax)
406869:	8b e8                	mov    %eax,%ebp
40686b:	a1 20 c5 41 00       	mov    0x41c520,%eax
406870:	33 c5                	xor    %ebp,%eax
406872:	50                   	push   %eax
406873:	89 45 f0             	mov    %eax,-0x10(%ebp)
406876:	ff 75 fc             	push   -0x4(%ebp)
406879:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
406880:	8d 45 f4             	lea    -0xc(%ebp),%eax
406883:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
406889:	c3                   	ret
40688a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40688d:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
406894:	59                   	pop    %ecx
406895:	5f                   	pop    %edi
406896:	5f                   	pop    %edi
406897:	5e                   	pop    %esi
406898:	5b                   	pop    %ebx
406899:	8b e5                	mov    %ebp,%esp
40689b:	5d                   	pop    %ebp
40689c:	51                   	push   %ecx
40689d:	c3                   	ret
40689e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4068a1:	33 cd                	xor    %ebp,%ecx
4068a3:	e8 8d f6 ff ff       	call   0x405f35
4068a8:	e9 dd ff ff ff       	jmp    0x40688a
4068ad:	c7 01 70 76 41 00    	movl   $0x417670,(%ecx)
4068b3:	e9 95 f0 ff ff       	jmp    0x40594d
4068b8:	56                   	push   %esi
4068b9:	8b f1                	mov    %ecx,%esi
4068bb:	c7 06 70 76 41 00    	movl   $0x417670,(%esi)
4068c1:	e8 87 f0 ff ff       	call   0x40594d
4068c6:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4068cb:	74 07                	je     0x4068d4
4068cd:	56                   	push   %esi
4068ce:	e8 5c f1 ff ff       	call   0x405a2f
4068d3:	59                   	pop    %ecx
4068d4:	8b c6                	mov    %esi,%eax
4068d6:	5e                   	pop    %esi
4068d7:	c2 04 00             	ret    $0x4
4068da:	56                   	push   %esi
4068db:	57                   	push   %edi
4068dc:	8b 7c 24 0c          	mov    0xc(%esp),%edi
4068e0:	8b 47 04             	mov    0x4(%edi),%eax
4068e3:	85 c0                	test   %eax,%eax
4068e5:	74 49                	je     0x406930
4068e7:	8d 50 08             	lea    0x8(%eax),%edx
4068ea:	80 3a 00             	cmpb   $0x0,(%edx)
4068ed:	74 41                	je     0x406930
4068ef:	8b 74 24 10          	mov    0x10(%esp),%esi
4068f3:	8b 4e 04             	mov    0x4(%esi),%ecx
4068f6:	3b c1                	cmp    %ecx,%eax
4068f8:	74 14                	je     0x40690e
4068fa:	83 c1 08             	add    $0x8,%ecx
4068fd:	51                   	push   %ecx
4068fe:	52                   	push   %edx
4068ff:	e8 8c 45 00 00       	call   0x40ae90
406904:	85 c0                	test   %eax,%eax
406906:	59                   	pop    %ecx
406907:	59                   	pop    %ecx
406908:	74 04                	je     0x40690e
40690a:	33 c0                	xor    %eax,%eax
40690c:	eb 25                	jmp    0x406933
40690e:	f6 06 02             	testb  $0x2,(%esi)
406911:	74 05                	je     0x406918
406913:	f6 07 08             	testb  $0x8,(%edi)
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