4749e2:	8b 38                	mov    (%eax),%edi
4749e4:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
4749e8:	74 2c                	je     0x474a16
4749ea:	8b 35 84 83 4c 00    	mov    0x4c8384,%esi
4749f0:	83 3e 09             	cmpl   $0x9,(%esi)
4749f3:	74 21                	je     0x474a16
4749f5:	85 ff                	test   %edi,%edi
4749f7:	74 1d                	je     0x474a16
4749f9:	6a 08                	push   $0x8
4749fb:	b9 a8 83 4c 00       	mov    $0x4c83a8,%ecx
474a00:	e8 2e d4 ff ff       	call   0x471e33
474a05:	85 c0                	test   %eax,%eax
474a07:	74 0d                	je     0x474a16
474a09:	89 38                	mov    %edi,(%eax)
474a0b:	89 58 04             	mov    %ebx,0x4(%eax)
474a0e:	ff 06                	incl   (%esi)
474a10:	8b 0e                	mov    (%esi),%ecx
474a12:	89 44 8e 04          	mov    %eax,0x4(%esi,%ecx,4)
474a16:	8b 45 d4             	mov    -0x2c(%ebp),%eax
474a19:	89 38                	mov    %edi,(%eax)
474a1b:	89 58 04             	mov    %ebx,0x4(%eax)
474a1e:	5f                   	pop    %edi
474a1f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
474a22:	5e                   	pop    %esi
474a23:	33 cd                	xor    %ebp,%ecx
474a25:	5b                   	pop    %ebx
474a26:	e8 9f 4f ff ff       	call   0x4699ca
474a2b:	c9                   	leave
474a2c:	c3                   	ret
474a2d:	33 c0                	xor    %eax,%eax
474a2f:	39 01                	cmp    %eax,(%ecx)
474a31:	0f 94 c0             	sete   %al
474a34:	c3                   	ret
474a35:	33 c0                	xor    %eax,%eax
474a37:	80 79 04 01          	cmpb   $0x1,0x4(%ecx)
474a3b:	0f 9e c0             	setle  %al
474a3e:	c3                   	ret
474a3f:	57                   	push   %edi
474a40:	8b 39                	mov    (%ecx),%edi
474a42:	85 ff                	test   %edi,%edi
474a44:	75 04                	jne    0x474a4a
474a46:	33 c0                	xor    %eax,%eax
474a48:	5f                   	pop    %edi
474a49:	c3                   	ret
474a4a:	8b 07                	mov    (%edi),%eax
474a4c:	56                   	push   %esi
474a4d:	8b 30                	mov    (%eax),%esi
474a4f:	8b ce                	mov    %esi,%ecx
474a51:	ff 15 d4 e2 49 00    	call   *0x49e2d4
474a57:	8b cf                	mov    %edi,%ecx
474a59:	ff d6                	call   *%esi
474a5b:	5e                   	pop    %esi
474a5c:	5f                   	pop    %edi
474a5d:	c3                   	ret
474a5e:	cc                   	int3
474a5f:	cc                   	int3
474a60:	8b 41 08             	mov    0x8(%ecx),%eax
474a63:	c3                   	ret
474a64:	cc                   	int3
474a65:	cc                   	int3
474a66:	cc                   	int3
474a67:	cc                   	int3
474a68:	cc                   	int3
474a69:	cc                   	int3
474a6a:	cc                   	int3
474a6b:	cc                   	int3
474a6c:	cc                   	int3
474a6d:	cc                   	int3
474a6e:	cc                   	int3
474a6f:	cc                   	int3
474a70:	8b 49 04             	mov    0x4(%ecx),%ecx
474a73:	85 c9                	test   %ecx,%ecx
474a75:	0f 85 c4 ff ff ff    	jne    0x474a3f
474a7b:	33 c0                	xor    %eax,%eax
474a7d:	c3                   	ret
474a7e:	cc                   	int3
474a7f:	cc                   	int3
474a80:	55                   	push   %ebp
474a81:	8b ec                	mov    %esp,%ebp
474a83:	51                   	push   %ecx
474a84:	8b 41 0c             	mov    0xc(%ecx),%eax
474a87:	89 4d fc             	mov    %ecx,-0x4(%ebp)
474a8a:	85 c0                	test   %eax,%eax
474a8c:	79 39                	jns    0x474ac7
474a8e:	53                   	push   %ebx
474a8f:	56                   	push   %esi
474a90:	57                   	push   %edi
474a91:	8b 79 08             	mov    0x8(%ecx),%edi
474a94:	8b 07                	mov    (%edi),%eax
474a96:	8b 30                	mov    (%eax),%esi
474a98:	8b ce                	mov    %esi,%ecx
474a9a:	ff 15 d4 e2 49 00    	call   *0x49e2d4
474aa0:	8b cf                	mov    %edi,%ecx
474aa2:	ff d6                	call   *%esi
474aa4:	8b d8                	mov    %eax,%ebx
474aa6:	8b 45 fc             	mov    -0x4(%ebp),%eax
474aa9:	8b 78 04             	mov    0x4(%eax),%edi
474aac:	8b 07                	mov    (%edi),%eax
474aae:	8b 30                	mov    (%eax),%esi
474ab0:	8b ce                	mov    %esi,%ecx
474ab2:	ff 15 d4 e2 49 00    	call   *0x49e2d4
474ab8:	8b cf                	mov    %edi,%ecx
474aba:	ff d6                	call   *%esi
474abc:	8b 4d fc             	mov    -0x4(%ebp),%ecx
474abf:	03 c3                	add    %ebx,%eax
474ac1:	5f                   	pop    %edi
474ac2:	5e                   	pop    %esi
474ac3:	5b                   	pop    %ebx
474ac4:	89 41 0c             	mov    %eax,0xc(%ecx)
474ac7:	c9                   	leave
474ac8:	c3                   	ret
474ac9:	55                   	push   %ebp
474aca:	8b ec                	mov    %esp,%ebp
474acc:	8b 45 08             	mov    0x8(%ebp),%eax
474acf:	83 f8 03             	cmp    $0x3,%eax
474ad2:	77 0a                	ja     0x474ade
474ad4:	6b c0 0c             	imul   $0xc,%eax,%eax
474ad7:	05 c0 17 4a 00       	add    $0x4a17c0,%eax
474adc:	5d                   	pop    %ebp
474add:	c3                   	ret
474ade:	b8 e4 17 4a 00       	mov    $0x4a17e4,%eax
474ae3:	5d                   	pop    %ebp
474ae4:	c3                   	ret
474ae5:	55                   	push   %ebp
474ae6:	8b ec                	mov    %esp,%ebp
474ae8:	a1 90 83 4c 00       	mov    0x4c8390,%eax
474aed:	83 ec 18             	sub    $0x18,%esp
474af0:	33 d2                	xor    %edx,%edx
474af2:	57                   	push   %edi
474af3:	8b 7d 08             	mov    0x8(%ebp),%edi
474af6:	89 17                	mov    %edx,(%edi)
474af8:	89 57 04             	mov    %edx,0x4(%edi)
474afb:	85 c0                	test   %eax,%eax
474afd:	0f 84 d7 00 00 00    	je     0x474bda
474b03:	80 38 3f             	cmpb   $0x3f,(%eax)
474b06:	0f 85 ba 00 00 00    	jne    0x474bc6
474b0c:	8a 48 01             	mov    0x1(%eax),%cl
474b0f:	80 f9 40             	cmp    $0x40,%cl
474b12:	75 48                	jne    0x474b5c
474b14:	83 05 8c 83 4c 00 02 	addl   $0x2,0x4c838c
474b1b:	8d 45 f0             	lea    -0x10(%ebp),%eax
474b1e:	56                   	push   %esi
474b1f:	50                   	push   %eax
474b20:	c7 45 f8 10 12 4a 00 	movl   $0x4a1210,-0x8(%ebp)
474b27:	c7 45 fc 04 00 00 00 	movl   $0x4,-0x4(%ebp)
474b2e:	e8 e7 c4 ff ff       	call   0x47101a
474b33:	59                   	pop    %ecx
474b34:	8b f0                	mov    %eax,%esi
474b36:	8d 4d e8             	lea    -0x18(%ebp),%ecx
474b39:	8d 45 f8             	lea    -0x8(%ebp),%eax
474b3c:	50                   	push   %eax
474b3d:	e8 a4 9c ff ff       	call   0x46e7e6
474b42:	56                   	push   %esi
474b43:	8d 4d f8             	lea    -0x8(%ebp),%ecx
474b46:	51                   	push   %ecx
474b47:	8b c8                	mov    %eax,%ecx
474b49:	e8 2f a0 ff ff       	call   0x46eb7d
474b4e:	8b 45 f8             	mov    -0x8(%ebp),%eax
474b51:	89 07                	mov    %eax,(%edi)
474b53:	8b 45 fc             	mov    -0x4(%ebp),%eax
474b56:	89 47 04             	mov    %eax,0x4(%edi)
474b59:	5e                   	pop    %esi
474b5a:	eb 7e                	jmp    0x474bda
474b5c:	80 f9 24             	cmp    $0x24,%cl
474b5f:	75 54                	jne    0x474bb5
474b61:	52                   	push   %edx
474b62:	8d 45 e8             	lea    -0x18(%ebp),%eax
474b65:	50                   	push   %eax
474b66:	e8 8a ed ff ff       	call   0x4738f5
474b6b:	59                   	pop    %ecx
474b6c:	59                   	pop    %ecx
474b6d:	8b c8                	mov    %eax,%ecx
474b6f:	8b 01                	mov    (%ecx),%eax
474b71:	89 07                	mov    %eax,(%edi)
474b73:	8b 41 04             	mov    0x4(%ecx),%eax
474b76:	89 47 04             	mov    %eax,0x4(%edi)
474b79:	3c 02                	cmp    $0x2,%al
474b7b:	74 16                	je     0x474b93
474b7d:	f7 05 94 83 4c 00 00 	testl  $0x1000,0x4c8394
474b84:	10 00 00
474b87:	75 51                	jne    0x474bda
474b89:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
474b8e:	80 38 00             	cmpb   $0x0,(%eax)
474b91:	74 47                	je     0x474bda
474b93:	a1 90 83 4c 00       	mov    0x4c8390,%eax
474b98:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
474b9d:	8d 45 e8             	lea    -0x18(%ebp),%eax
474ba0:	50                   	push   %eax
474ba1:	e8 74 c4 ff ff       	call   0x47101a
474ba6:	59                   	pop    %ecx
474ba7:	8b c8                	mov    %eax,%ecx
474ba9:	8b 01                	mov    (%ecx),%eax
474bab:	89 07                	mov    %eax,(%edi)
474bad:	8b 41 04             	mov    0x4(%ecx),%eax
474bb0:	89 47 04             	mov    %eax,0x4(%edi)
474bb3:	eb 25                	jmp    0x474bda
474bb5:	80 f9 3f             	cmp    $0x3f,%cl
474bb8:	75 0c                	jne    0x474bc6
474bba:	80 78 02 40          	cmpb   $0x40,0x2(%eax)
474bbe:	75 06                	jne    0x474bc6
474bc0:	c6 47 04 02          	movb   $0x2,0x4(%edi)
474bc4:	eb 14                	jmp    0x474bda
474bc6:	8d 45 e8             	lea    -0x18(%ebp),%eax
474bc9:	50                   	push   %eax
474bca:	e8 4b c4 ff ff       	call   0x47101a
474bcf:	59                   	pop    %ecx
474bd0:	8b 08                	mov    (%eax),%ecx
474bd2:	89 0f                	mov    %ecx,(%edi)
474bd4:	8b 48 04             	mov    0x4(%eax),%ecx
474bd7:	89 4f 04             	mov    %ecx,0x4(%edi)
474bda:	8b c7                	mov    %edi,%eax
474bdc:	5f                   	pop    %edi
474bdd:	c9                   	leave
474bde:	c3                   	ret
474bdf:	cc                   	int3
474be0:	83 c8 ff             	or     $0xffffffff,%eax
474be3:	c3                   	ret
474be4:	55                   	push   %ebp
474be5:	8b ec                	mov    %esp,%ebp
474be7:	8b 55 10             	mov    0x10(%ebp),%edx
474bea:	85 d2                	test   %edx,%edx
474bec:	74 15                	je     0x474c03
474bee:	8b 4d 08             	mov    0x8(%ebp),%ecx
474bf1:	56                   	push   %esi
474bf2:	8b 75 0c             	mov    0xc(%ebp),%esi
474bf5:	2b f1                	sub    %ecx,%esi
474bf7:	8a 04 0e             	mov    (%esi,%ecx,1),%al
474bfa:	88 01                	mov    %al,(%ecx)
474bfc:	41                   	inc    %ecx
474bfd:	83 ea 01             	sub    $0x1,%edx
474c00:	75 f5                	jne    0x474bf7
474c02:	5e                   	pop    %esi
474c03:	5d                   	pop    %ebp
474c04:	c3                   	ret
474c05:	55                   	push   %ebp
474c06:	8b ec                	mov    %esp,%ebp
474c08:	8b 45 10             	mov    0x10(%ebp),%eax
474c0b:	85 c0                	test   %eax,%eax
474c0d:	75 02                	jne    0x474c11
474c0f:	5d                   	pop    %ebp
474c10:	c3                   	ret
474c11:	8b 4d 0c             	mov    0xc(%ebp),%ecx
474c14:	8b 55 08             	mov    0x8(%ebp),%edx
474c17:	53                   	push   %ebx
474c18:	83 e8 01             	sub    $0x1,%eax
474c1b:	74 0e                	je     0x474c2b
474c1d:	8a 1a                	mov    (%edx),%bl
474c1f:	84 db                	test   %bl,%bl
474c21:	74 08                	je     0x474c2b
474c23:	3a 19                	cmp    (%ecx),%bl
474c25:	75 04                	jne    0x474c2b
474c27:	42                   	inc    %edx
474c28:	41                   	inc    %ecx
474c29:	eb ed                	jmp    0x474c18
474c2b:	0f b6 02             	movzbl (%edx),%eax
474c2e:	0f b6 09             	movzbl (%ecx),%ecx
474c31:	2b c1                	sub    %ecx,%eax
474c33:	5b                   	pop    %ebx
474c34:	5d                   	pop    %ebp
474c35:	c3                   	ret
474c36:	55                   	push   %ebp
474c37:	8b ec                	mov    %esp,%ebp
474c39:	0f b7 45 1c          	movzwl 0x1c(%ebp),%eax
474c3d:	50                   	push   %eax
474c3e:	6a 00                	push   $0x0
474c40:	ff 75 18             	push   0x18(%ebp)
474c43:	ff 75 14             	push   0x14(%ebp)
474c46:	ff 75 10             	push   0x10(%ebp)
474c49:	ff 75 0c             	push   0xc(%ebp)
474c4c:	ff 75 08             	push   0x8(%ebp)
474c4f:	e8 05 00 00 00       	call   0x474c59
474c54:	83 c4 1c             	add    $0x1c,%esp
474c57:	5d                   	pop    %ebp
474c58:	c3                   	ret
474c59:	6a 64                	push   $0x64
474c5b:	68 40 16 4c 00       	push   $0x4c1640
474c60:	e8 db 5a ff ff       	call   0x46a740
474c65:	8b 7d 14             	mov    0x14(%ebp),%edi
474c68:	85 ff                	test   %edi,%edi
474c6a:	75 04                	jne    0x474c70
474c6c:	33 c0                	xor    %eax,%eax
474c6e:	eb 6b                	jmp    0x474cdb
474c70:	33 f6                	xor    %esi,%esi
474c72:	89 75 e4             	mov    %esi,-0x1c(%ebp)
474c75:	56                   	push   %esi
474c76:	e8 03 01 00 00       	call   0x474d7e
474c7b:	59                   	pop    %ecx
474c7c:	89 75 fc             	mov    %esi,-0x4(%ebp)
474c7f:	89 3d a8 83 4c 00    	mov    %edi,0x4c83a8
474c85:	8b 45 18             	mov    0x18(%ebp),%eax
474c88:	a3 ac 83 4c 00       	mov    %eax,0x4c83ac
474c8d:	89 35 b8 83 4c 00    	mov    %esi,0x4c83b8
474c93:	89 35 b0 83 4c 00    	mov    %esi,0x4c83b0
474c99:	89 35 b4 83 4c 00    	mov    %esi,0x4c83b4
474c9f:	ff 75 20             	push   0x20(%ebp)
474ca2:	ff 75 1c             	push   0x1c(%ebp)
474ca5:	ff 75 0c             	push   0xc(%ebp)
474ca8:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
474cab:	e8 f4 9c ff ff       	call   0x46e9a4
474cb0:	ff 75 10             	push   0x10(%ebp)
474cb3:	ff 75 08             	push   0x8(%ebp)
474cb6:	8d 4d 8c             	lea    -0x74(%ebp),%ecx
474cb9:	e8 0a f6 ff ff       	call   0x4742c8
474cbe:	8b f8                	mov    %eax,%edi
474cc0:	89 7d e4             	mov    %edi,-0x1c(%ebp)
474cc3:	b9 a8 83 4c 00       	mov    $0x4c83a8,%ecx
474cc8:	e8 b6 a0 ff ff       	call   0x46ed83
474ccd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
474cd4:	e8 17 00 00 00       	call   0x474cf0
474cd9:	8b c7                	mov    %edi,%eax
474cdb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
474cde:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
474ce5:	59                   	pop    %ecx
474ce6:	5f                   	pop    %edi
474ce7:	5e                   	pop    %esi
474ce8:	5b                   	pop    %ebx
474ce9:	c9                   	leave
474cea:	c3                   	ret
474ceb:	33 f6                	xor    %esi,%esi
474ced:	8b 7d e4             	mov    -0x1c(%ebp),%edi
474cf0:	56                   	push   %esi
474cf1:	e8 cc 00 00 00       	call   0x474dc2
474cf6:	59                   	pop    %ecx
474cf7:	c3                   	ret
474cf8:	55                   	push   %ebp
474cf9:	8b ec                	mov    %esp,%ebp
474cfb:	8d 45 14             	lea    0x14(%ebp),%eax
474cfe:	50                   	push   %eax
474cff:	ff 75 10             	push   0x10(%ebp)
474d02:	ff 75 0c             	push   0xc(%ebp)
474d05:	ff 75 08             	push   0x8(%ebp)
474d08:	e8 05 00 00 00       	call   0x474d12
474d0d:	83 c4 10             	add    $0x10,%esp
474d10:	5d                   	pop    %ebp
474d11:	c3                   	ret
474d12:	55                   	push   %ebp
474d13:	8b ec                	mov    %esp,%ebp
474d15:	ff 75 14             	push   0x14(%ebp)
474d18:	6a 00                	push   $0x0
474d1a:	ff 75 10             	push   0x10(%ebp)
474d1d:	ff 75 0c             	push   0xc(%ebp)
474d20:	ff 75 08             	push   0x8(%ebp)
474d23:	e8 18 c5 f8 ff       	call   0x401240
474d28:	8b 08                	mov    (%eax),%ecx
474d2a:	ff 70 04             	push   0x4(%eax)
474d2d:	83 c9 02             	or     $0x2,%ecx
474d30:	51                   	push   %ecx
474d31:	e8 03 46 00 00       	call   0x479339
474d36:	83 c4 1c             	add    $0x1c,%esp
474d39:	85 c0                	test   %eax,%eax