4089a1:	50                   	push   %eax
4089a2:	ff 15 8c 70 41 00    	call   *0x41708c
4089a8:	c3                   	ret
4089a9:	8b 44 24 04          	mov    0x4(%esp),%eax
4089ad:	85 c0                	test   %eax,%eax
4089af:	74 12                	je     0x4089c3
4089b1:	83 e8 08             	sub    $0x8,%eax
4089b4:	81 38 dd dd 00 00    	cmpl   $0xdddd,(%eax)
4089ba:	75 07                	jne    0x4089c3
4089bc:	50                   	push   %eax
4089bd:	e8 91 da ff ff       	call   0x406453
4089c2:	59                   	pop    %ecx
4089c3:	c3                   	ret
4089c4:	8b 44 24 04          	mov    0x4(%esp),%eax
4089c8:	85 c0                	test   %eax,%eax
4089ca:	56                   	push   %esi
4089cb:	8b f1                	mov    %ecx,%esi
4089cd:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
4089d1:	75 63                	jne    0x408a36
4089d3:	e8 74 3b 00 00       	call   0x40c54c
4089d8:	89 46 08             	mov    %eax,0x8(%esi)
4089db:	8b 48 6c             	mov    0x6c(%eax),%ecx
4089de:	89 0e                	mov    %ecx,(%esi)
4089e0:	8b 48 68             	mov    0x68(%eax),%ecx
4089e3:	89 4e 04             	mov    %ecx,0x4(%esi)
4089e6:	8b 0e                	mov    (%esi),%ecx
4089e8:	3b 0d 20 d2 41 00    	cmp    0x41d220,%ecx
4089ee:	74 12                	je     0x408a02
4089f0:	8b 0d 38 d1 41 00    	mov    0x41d138,%ecx
4089f6:	85 48 70             	test   %ecx,0x70(%eax)
4089f9:	75 07                	jne    0x408a02
4089fb:	e8 f2 0c 00 00       	call   0x4096f2
408a00:	89 06                	mov    %eax,(%esi)
408a02:	8b 46 04             	mov    0x4(%esi),%eax
408a05:	3b 05 40 d0 41 00    	cmp    0x41d040,%eax
408a0b:	74 16                	je     0x408a23
408a0d:	8b 46 08             	mov    0x8(%esi),%eax
408a10:	8b 0d 38 d1 41 00    	mov    0x41d138,%ecx
408a16:	85 48 70             	test   %ecx,0x70(%eax)
408a19:	75 08                	jne    0x408a23
408a1b:	e8 ad 75 00 00       	call   0x40ffcd
408a20:	89 46 04             	mov    %eax,0x4(%esi)
408a23:	8b 46 08             	mov    0x8(%esi),%eax
408a26:	f6 40 70 02          	testb  $0x2,0x70(%eax)
408a2a:	75 14                	jne    0x408a40
408a2c:	83 48 70 02          	orl    $0x2,0x70(%eax)
408a30:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
408a34:	eb 0a                	jmp    0x408a40
408a36:	8b 08                	mov    (%eax),%ecx
408a38:	89 0e                	mov    %ecx,(%esi)
408a3a:	8b 40 04             	mov    0x4(%eax),%eax
408a3d:	89 46 04             	mov    %eax,0x4(%esi)
408a40:	8b c6                	mov    %esi,%eax
408a42:	5e                   	pop    %esi
408a43:	c2 04 00             	ret    $0x4
408a46:	55                   	push   %ebp
408a47:	8b ec                	mov    %esp,%ebp
408a49:	83 ec 14             	sub    $0x14,%esp
408a4c:	a1 20 c5 41 00       	mov    0x41c520,%eax
408a51:	33 c5                	xor    %ebp,%eax
408a53:	89 45 fc             	mov    %eax,-0x4(%ebp)
408a56:	53                   	push   %ebx
408a57:	56                   	push   %esi
408a58:	33 db                	xor    %ebx,%ebx
408a5a:	39 1d fc d9 41 00    	cmp    %ebx,0x41d9fc
408a60:	57                   	push   %edi
408a61:	8b f1                	mov    %ecx,%esi
408a63:	75 38                	jne    0x408a9d
408a65:	53                   	push   %ebx
408a66:	53                   	push   %ebx
408a67:	33 ff                	xor    %edi,%edi
408a69:	47                   	inc    %edi
408a6a:	57                   	push   %edi
408a6b:	68 88 76 41 00       	push   $0x417688
408a70:	68 00 01 00 00       	push   $0x100
408a75:	53                   	push   %ebx
408a76:	ff 15 dc 70 41 00    	call   *0x4170dc
408a7c:	85 c0                	test   %eax,%eax
408a7e:	74 08                	je     0x408a88
408a80:	89 3d fc d9 41 00    	mov    %edi,0x41d9fc
408a86:	eb 15                	jmp    0x408a9d
408a88:	ff 15 b0 70 41 00    	call   *0x4170b0
408a8e:	83 f8 78             	cmp    $0x78,%eax
408a91:	75 0a                	jne    0x408a9d
408a93:	c7 05 fc d9 41 00 02 	movl   $0x2,0x41d9fc
408a9a:	00 00 00
408a9d:	39 5d 14             	cmp    %ebx,0x14(%ebp)
408aa0:	7e 22                	jle    0x408ac4
408aa2:	8b 4d 14             	mov    0x14(%ebp),%ecx
408aa5:	8b 45 10             	mov    0x10(%ebp),%eax
408aa8:	49                   	dec    %ecx
408aa9:	38 18                	cmp    %bl,(%eax)
408aab:	74 08                	je     0x408ab5
408aad:	40                   	inc    %eax
408aae:	3b cb                	cmp    %ebx,%ecx
408ab0:	75 f6                	jne    0x408aa8
408ab2:	83 c9 ff             	or     $0xffffffff,%ecx
408ab5:	8b 45 14             	mov    0x14(%ebp),%eax
408ab8:	2b c1                	sub    %ecx,%eax
408aba:	48                   	dec    %eax
408abb:	3b 45 14             	cmp    0x14(%ebp),%eax
408abe:	7d 01                	jge    0x408ac1
408ac0:	40                   	inc    %eax
408ac1:	89 45 14             	mov    %eax,0x14(%ebp)
408ac4:	a1 fc d9 41 00       	mov    0x41d9fc,%eax
408ac9:	83 f8 02             	cmp    $0x2,%eax
408acc:	0f 84 ab 01 00 00    	je     0x408c7d
408ad2:	3b c3                	cmp    %ebx,%eax
408ad4:	0f 84 a3 01 00 00    	je     0x408c7d
408ada:	83 f8 01             	cmp    $0x1,%eax
408add:	0f 85 cb 01 00 00    	jne    0x408cae
408ae3:	39 5d 20             	cmp    %ebx,0x20(%ebp)
408ae6:	89 5d f8             	mov    %ebx,-0x8(%ebp)
408ae9:	75 08                	jne    0x408af3
408aeb:	8b 06                	mov    (%esi),%eax
408aed:	8b 40 04             	mov    0x4(%eax),%eax
408af0:	89 45 20             	mov    %eax,0x20(%ebp)
408af3:	8b 35 a0 70 41 00    	mov    0x4170a0,%esi
408af9:	33 c0                	xor    %eax,%eax
408afb:	39 5d 24             	cmp    %ebx,0x24(%ebp)
408afe:	53                   	push   %ebx
408aff:	53                   	push   %ebx
408b00:	ff 75 14             	push   0x14(%ebp)
408b03:	0f 95 c0             	setne  %al
408b06:	ff 75 10             	push   0x10(%ebp)
408b09:	8d 04 c5 01 00 00 00 	lea    0x1(,%eax,8),%eax
408b10:	50                   	push   %eax
408b11:	ff 75 20             	push   0x20(%ebp)
408b14:	ff d6                	call   *%esi
408b16:	8b f8                	mov    %eax,%edi
408b18:	3b fb                	cmp    %ebx,%edi
408b1a:	0f 84 8e 01 00 00    	je     0x408cae
408b20:	7e 43                	jle    0x408b65
408b22:	6a e0                	push   $0xffffffe0
408b24:	33 d2                	xor    %edx,%edx
408b26:	58                   	pop    %eax
408b27:	f7 f7                	div    %edi
408b29:	83 f8 02             	cmp    $0x2,%eax
408b2c:	72 37                	jb     0x408b65
408b2e:	8d 44 3f 08          	lea    0x8(%edi,%edi,1),%eax
408b32:	3d 00 04 00 00       	cmp    $0x400,%eax
408b37:	77 13                	ja     0x408b4c
408b39:	e8 12 7b 00 00       	call   0x410650
408b3e:	8b c4                	mov    %esp,%eax
408b40:	3b c3                	cmp    %ebx,%eax
408b42:	74 1c                	je     0x408b60
408b44:	c7 00 cc cc 00 00    	movl   $0xcccc,(%eax)
408b4a:	eb 11                	jmp    0x408b5d
408b4c:	50                   	push   %eax
408b4d:	e8 fd 21 00 00       	call   0x40ad4f
408b52:	3b c3                	cmp    %ebx,%eax
408b54:	59                   	pop    %ecx
408b55:	74 09                	je     0x408b60
408b57:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
408b5d:	83 c0 08             	add    $0x8,%eax
408b60:	89 45 f4             	mov    %eax,-0xc(%ebp)
408b63:	eb 03                	jmp    0x408b68
408b65:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408b68:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
408b6b:	0f 84 3d 01 00 00    	je     0x408cae
408b71:	57                   	push   %edi
408b72:	ff 75 f4             	push   -0xc(%ebp)
408b75:	ff 75 14             	push   0x14(%ebp)
408b78:	ff 75 10             	push   0x10(%ebp)
408b7b:	6a 01                	push   $0x1
408b7d:	ff 75 20             	push   0x20(%ebp)
408b80:	ff d6                	call   *%esi
408b82:	85 c0                	test   %eax,%eax
408b84:	0f 84 e2 00 00 00    	je     0x408c6c
408b8a:	8b 35 dc 70 41 00    	mov    0x4170dc,%esi
408b90:	53                   	push   %ebx
408b91:	53                   	push   %ebx
408b92:	57                   	push   %edi
408b93:	ff 75 f4             	push   -0xc(%ebp)
408b96:	ff 75 0c             	push   0xc(%ebp)
408b99:	ff 75 08             	push   0x8(%ebp)
408b9c:	ff d6                	call   *%esi
408b9e:	8b c8                	mov    %eax,%ecx
408ba0:	3b cb                	cmp    %ebx,%ecx
408ba2:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408ba5:	0f 84 c1 00 00 00    	je     0x408c6c
408bab:	66 f7 45 0c 00 04    	testw  $0x400,0xc(%ebp)
408bb1:	74 29                	je     0x408bdc
408bb3:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
408bb6:	0f 84 b0 00 00 00    	je     0x408c6c
408bbc:	3b 4d 1c             	cmp    0x1c(%ebp),%ecx
408bbf:	0f 8f a7 00 00 00    	jg     0x408c6c
408bc5:	ff 75 1c             	push   0x1c(%ebp)
408bc8:	ff 75 18             	push   0x18(%ebp)
408bcb:	57                   	push   %edi
408bcc:	ff 75 f4             	push   -0xc(%ebp)
408bcf:	ff 75 0c             	push   0xc(%ebp)
408bd2:	ff 75 08             	push   0x8(%ebp)
408bd5:	ff d6                	call   *%esi
408bd7:	e9 90 00 00 00       	jmp    0x408c6c
408bdc:	3b cb                	cmp    %ebx,%ecx
408bde:	7e 45                	jle    0x408c25
408be0:	6a e0                	push   $0xffffffe0
408be2:	33 d2                	xor    %edx,%edx
408be4:	58                   	pop    %eax
408be5:	f7 f1                	div    %ecx
408be7:	83 f8 02             	cmp    $0x2,%eax
408bea:	72 39                	jb     0x408c25
408bec:	8d 44 09 08          	lea    0x8(%ecx,%ecx,1),%eax
408bf0:	3d 00 04 00 00       	cmp    $0x400,%eax
408bf5:	77 16                	ja     0x408c0d
408bf7:	e8 54 7a 00 00       	call   0x410650
408bfc:	8b f4                	mov    %esp,%esi
408bfe:	3b f3                	cmp    %ebx,%esi
408c00:	74 6a                	je     0x408c6c
408c02:	c7 06 cc cc 00 00    	movl   $0xcccc,(%esi)
408c08:	83 c6 08             	add    $0x8,%esi
408c0b:	eb 1a                	jmp    0x408c27
408c0d:	50                   	push   %eax
408c0e:	e8 3c 21 00 00       	call   0x40ad4f
408c13:	3b c3                	cmp    %ebx,%eax
408c15:	59                   	pop    %ecx
408c16:	74 09                	je     0x408c21
408c18:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
408c1e:	83 c0 08             	add    $0x8,%eax
408c21:	8b f0                	mov    %eax,%esi
408c23:	eb 02                	jmp    0x408c27
408c25:	33 f6                	xor    %esi,%esi
408c27:	3b f3                	cmp    %ebx,%esi
408c29:	74 41                	je     0x408c6c
408c2b:	ff 75 f8             	push   -0x8(%ebp)
408c2e:	56                   	push   %esi
408c2f:	57                   	push   %edi
408c30:	ff 75 f4             	push   -0xc(%ebp)
408c33:	ff 75 0c             	push   0xc(%ebp)
408c36:	ff 75 08             	push   0x8(%ebp)
408c39:	ff 15 dc 70 41 00    	call   *0x4170dc
408c3f:	85 c0                	test   %eax,%eax
408c41:	74 22                	je     0x408c65
408c43:	39 5d 1c             	cmp    %ebx,0x1c(%ebp)
408c46:	53                   	push   %ebx
408c47:	53                   	push   %ebx
408c48:	75 04                	jne    0x408c4e
408c4a:	53                   	push   %ebx
408c4b:	53                   	push   %ebx
408c4c:	eb 06                	jmp    0x408c54
408c4e:	ff 75 1c             	push   0x1c(%ebp)
408c51:	ff 75 18             	push   0x18(%ebp)
408c54:	ff 75 f8             	push   -0x8(%ebp)
408c57:	56                   	push   %esi
408c58:	53                   	push   %ebx
408c59:	ff 75 20             	push   0x20(%ebp)
408c5c:	ff 15 90 70 41 00    	call   *0x417090
408c62:	89 45 f8             	mov    %eax,-0x8(%ebp)
408c65:	56                   	push   %esi
408c66:	e8 3e fd ff ff       	call   0x4089a9
408c6b:	59                   	pop    %ecx
408c6c:	ff 75 f4             	push   -0xc(%ebp)
408c6f:	e8 35 fd ff ff       	call   0x4089a9
408c74:	8b 45 f8             	mov    -0x8(%ebp),%eax
408c77:	59                   	pop    %ecx
408c78:	e9 59 01 00 00       	jmp    0x408dd6
408c7d:	39 5d 08             	cmp    %ebx,0x8(%ebp)
408c80:	89 5d f4             	mov    %ebx,-0xc(%ebp)
408c83:	89 5d f0             	mov    %ebx,-0x10(%ebp)
408c86:	75 08                	jne    0x408c90
408c88:	8b 06                	mov    (%esi),%eax
408c8a:	8b 40 14             	mov    0x14(%eax),%eax
408c8d:	89 45 08             	mov    %eax,0x8(%ebp)
408c90:	39 5d 20             	cmp    %ebx,0x20(%ebp)
408c93:	75 08                	jne    0x408c9d
408c95:	8b 06                	mov    (%esi),%eax
408c97:	8b 40 04             	mov    0x4(%eax),%eax
408c9a:	89 45 20             	mov    %eax,0x20(%ebp)
408c9d:	ff 75 08             	push   0x8(%ebp)
408ca0:	e8 a9 77 00 00       	call   0x41044e
408ca5:	83 f8 ff             	cmp    $0xffffffff,%eax
408ca8:	59                   	pop    %ecx
408ca9:	89 45 ec             	mov    %eax,-0x14(%ebp)
408cac:	75 07                	jne    0x408cb5
408cae:	33 c0                	xor    %eax,%eax
408cb0:	e9 21 01 00 00       	jmp    0x408dd6
408cb5:	3b 45 20             	cmp    0x20(%ebp),%eax
408cb8:	0f 84 db 00 00 00    	je     0x408d99
408cbe:	53                   	push   %ebx
408cbf:	53                   	push   %ebx
408cc0:	8d 4d 14             	lea    0x14(%ebp),%ecx
408cc3:	51                   	push   %ecx
408cc4:	ff 75 10             	push   0x10(%ebp)
408cc7:	50                   	push   %eax
408cc8:	ff 75 20             	push   0x20(%ebp)
408ccb:	e8 c5 77 00 00       	call   0x410495
408cd0:	83 c4 18             	add    $0x18,%esp
408cd3:	3b c3                	cmp    %ebx,%eax
408cd5:	89 45 f4             	mov    %eax,-0xc(%ebp)
408cd8:	74 d4                	je     0x408cae
408cda:	8b 35 d8 70 41 00    	mov    0x4170d8,%esi
408ce0:	53                   	push   %ebx
408ce1:	53                   	push   %ebx
408ce2:	ff 75 14             	push   0x14(%ebp)
408ce5:	50                   	push   %eax
408ce6:	ff 75 0c             	push   0xc(%ebp)
408ce9:	ff 75 08             	push   0x8(%ebp)
408cec:	ff d6                	call   *%esi
408cee:	3b c3                	cmp    %ebx,%eax
408cf0:	89 45 f8             	mov    %eax,-0x8(%ebp)
408cf3:	75 07                	jne    0x408cfc
408cf5:	33 f6                	xor    %esi,%esi
408cf7:	e9 b7 00 00 00       	jmp    0x408db3
408cfc:	7e 3d                	jle    0x408d3b
408cfe:	83 f8 e0             	cmp    $0xffffffe0,%eax
408d01:	77 38                	ja     0x408d3b
408d03:	83 c0 08             	add    $0x8,%eax
408d06:	3d 00 04 00 00       	cmp    $0x400,%eax
408d0b:	77 16                	ja     0x408d23
408d0d:	e8 3e 79 00 00       	call   0x410650
408d12:	8b fc                	mov    %esp,%edi
408d14:	3b fb                	cmp    %ebx,%edi
408d16:	74 dd                	je     0x408cf5
408d18:	c7 07 cc cc 00 00    	movl   $0xcccc,(%edi)
408d1e:	83 c7 08             	add    $0x8,%edi
408d21:	eb 1a                	jmp    0x408d3d
408d23:	50                   	push   %eax
408d24:	e8 26 20 00 00       	call   0x40ad4f
408d29:	3b c3                	cmp    %ebx,%eax
408d2b:	59                   	pop    %ecx
408d2c:	74 09                	je     0x408d37
408d2e:	c7 00 dd dd 00 00    	movl   $0xdddd,(%eax)
408d34:	83 c0 08             	add    $0x8,%eax
408d37:	8b f8                	mov    %eax,%edi
408d39:	eb 02                	jmp    0x408d3d
408d3b:	33 ff                	xor    %edi,%edi
408d3d:	3b fb                	cmp    %ebx,%edi
408d3f:	74 b4                	je     0x408cf5
408d41:	ff 75 f8             	push   -0x8(%ebp)
408d44:	53                   	push   %ebx
408d45:	57                   	push   %edi
408d46:	e8 05 ce ff ff       	call   0x405b50
408d4b:	83 c4 0c             	add    $0xc,%esp
408d4e:	ff 75 f8             	push   -0x8(%ebp)
408d51:	57                   	push   %edi
408d52:	ff 75 14             	push   0x14(%ebp)
408d55:	ff 75 f4             	push   -0xc(%ebp)
408d58:	ff 75 0c             	push   0xc(%ebp)
408d5b:	ff 75 08             	push   0x8(%ebp)
408d5e:	ff d6                	call   *%esi
408d60:	3b c3                	cmp    %ebx,%eax
408d62:	89 45 f8             	mov    %eax,-0x8(%ebp)
408d65:	75 04                	jne    0x408d6b
408d67:	33 f6                	xor    %esi,%esi
408d69:	eb 25                	jmp    0x408d90
408d6b:	ff 75 1c             	push   0x1c(%ebp)
408d6e:	8d 45 f8             	lea    -0x8(%ebp),%eax
408d71:	ff 75 18             	push   0x18(%ebp)
408d74:	50                   	push   %eax