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
474d3b:	79 03                	jns    0x474d40
474d3d:	83 c8 ff             	or     $0xffffffff,%eax
474d40:	5d                   	pop    %ebp
474d41:	c3                   	ret
474d42:	56                   	push   %esi
474d43:	57                   	push   %edi
474d44:	bf c0 83 4c 00       	mov    $0x4c83c0,%edi
474d49:	33 f6                	xor    %esi,%esi
474d4b:	6a 00                	push   $0x0
474d4d:	68 a0 0f 00 00       	push   $0xfa0
474d52:	57                   	push   %edi
474d53:	e8 59 02 00 00       	call   0x474fb1
474d58:	83 c4 0c             	add    $0xc,%esp
474d5b:	85 c0                	test   %eax,%eax
474d5d:	74 15                	je     0x474d74
474d5f:	ff 05 d8 83 4c 00    	incl   0x4c83d8
474d65:	83 c6 18             	add    $0x18,%esi
474d68:	83 c7 18             	add    $0x18,%edi
474d6b:	83 fe 18             	cmp    $0x18,%esi
474d6e:	72 db                	jb     0x474d4b
474d70:	b0 01                	mov    $0x1,%al
474d72:	eb 07                	jmp    0x474d7b
474d74:	e8 1a 00 00 00       	call   0x474d93
474d79:	32 c0                	xor    %al,%al
474d7b:	5f                   	pop    %edi
474d7c:	5e                   	pop    %esi
474d7d:	c3                   	ret
474d7e:	55                   	push   %ebp
474d7f:	8b ec                	mov    %esp,%ebp
474d81:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
474d85:	05 c0 83 4c 00       	add    $0x4c83c0,%eax
474d8a:	50                   	push   %eax
474d8b:	ff 15 98 e1 49 00    	call   *0x49e198
474d91:	5d                   	pop    %ebp
474d92:	c3                   	ret
474d93:	56                   	push   %esi
474d94:	8b 35 d8 83 4c 00    	mov    0x4c83d8,%esi
474d9a:	85 f6                	test   %esi,%esi
474d9c:	74 20                	je     0x474dbe
474d9e:	6b c6 18             	imul   $0x18,%esi,%eax
474da1:	57                   	push   %edi
474da2:	8d b8 a8 83 4c 00    	lea    0x4c83a8(%eax),%edi
474da8:	57                   	push   %edi
474da9:	ff 15 94 e0 49 00    	call   *0x49e094
474daf:	ff 0d d8 83 4c 00    	decl   0x4c83d8
474db5:	83 ef 18             	sub    $0x18,%edi
474db8:	83 ee 01             	sub    $0x1,%esi
474dbb:	75 eb                	jne    0x474da8
474dbd:	5f                   	pop    %edi
474dbe:	b0 01                	mov    $0x1,%al
474dc0:	5e                   	pop    %esi
474dc1:	c3                   	ret
474dc2:	55                   	push   %ebp
474dc3:	8b ec                	mov    %esp,%ebp
474dc5:	6b 45 08 18          	imul   $0x18,0x8(%ebp),%eax
474dc9:	05 c0 83 4c 00       	add    $0x4c83c0,%eax
474dce:	50                   	push   %eax
474dcf:	ff 15 a4 e1 49 00    	call   *0x49e1a4
474dd5:	5d                   	pop    %ebp
474dd6:	c3                   	ret
474dd7:	55                   	push   %ebp
474dd8:	8b ec                	mov    %esp,%ebp
474dda:	51                   	push   %ecx
474ddb:	51                   	push   %ecx
474ddc:	8b 45 08             	mov    0x8(%ebp),%eax
474ddf:	57                   	push   %edi
474de0:	8d 04 85 e8 83 4c 00 	lea    0x4c83e8(,%eax,4),%eax
474de7:	89 45 f8             	mov    %eax,-0x8(%ebp)
474dea:	8b 00                	mov    (%eax),%eax
474dec:	90                   	nop
474ded:	83 cf ff             	or     $0xffffffff,%edi
474df0:	3b c7                	cmp    %edi,%eax
474df2:	75 04                	jne    0x474df8
474df4:	33 c0                	xor    %eax,%eax
474df6:	eb 56                	jmp    0x474e4e
474df8:	85 c0                	test   %eax,%eax
474dfa:	75 52                	jne    0x474e4e
474dfc:	53                   	push   %ebx
474dfd:	8b 5d 10             	mov    0x10(%ebp),%ebx
474e00:	56                   	push   %esi
474e01:	eb 3d                	jmp    0x474e40
474e03:	8b 0b                	mov    (%ebx),%ecx
474e05:	89 4d fc             	mov    %ecx,-0x4(%ebp)
474e08:	8d 04 8d dc 83 4c 00 	lea    0x4c83dc(,%ecx,4),%eax
474e0f:	8b 30                	mov    (%eax),%esi
474e11:	90                   	nop
474e12:	85 f6                	test   %esi,%esi
474e14:	74 06                	je     0x474e1c
474e16:	3b f7                	cmp    %edi,%esi
474e18:	75 46                	jne    0x474e60
474e1a:	eb 21                	jmp    0x474e3d
474e1c:	ff 34 8d f0 17 4a 00 	push   0x4a17f0(,%ecx,4)
474e23:	e8 4f 00 00 00       	call   0x474e77
474e28:	8b 55 fc             	mov    -0x4(%ebp),%edx
474e2b:	8b f0                	mov    %eax,%esi
474e2d:	59                   	pop    %ecx
474e2e:	8d 0c 95 dc 83 4c 00 	lea    0x4c83dc(,%edx,4),%ecx
474e35:	85 f6                	test   %esi,%esi
474e37:	75 18                	jne    0x474e51
474e39:	8b c7                	mov    %edi,%eax
474e3b:	87 01                	xchg   %eax,(%ecx)
474e3d:	83 c3 04             	add    $0x4,%ebx
474e40:	3b 5d 14             	cmp    0x14(%ebp),%ebx
474e43:	75 be                	jne    0x474e03
474e45:	8b 55 f8             	mov    -0x8(%ebp),%edx
474e48:	87 3a                	xchg   %edi,(%edx)
474e4a:	33 c0                	xor    %eax,%eax
474e4c:	5e                   	pop    %esi
474e4d:	5b                   	pop    %ebx
474e4e:	5f                   	pop    %edi
474e4f:	c9                   	leave
474e50:	c3                   	ret
474e51:	8b c6                	mov    %esi,%eax
474e53:	87 01                	xchg   %eax,(%ecx)
474e55:	85 c0                	test   %eax,%eax
474e57:	74 07                	je     0x474e60
474e59:	56                   	push   %esi
474e5a:	ff 15 54 e0 49 00    	call   *0x49e054
474e60:	ff 75 0c             	push   0xc(%ebp)
474e63:	56                   	push   %esi
474e64:	ff 15 60 e0 49 00    	call   *0x49e060
474e6a:	85 c0                	test   %eax,%eax
474e6c:	74 d7                	je     0x474e45
474e6e:	8b 55 f8             	mov    -0x8(%ebp),%edx
474e71:	8b c8                	mov    %eax,%ecx
474e73:	87 0a                	xchg   %ecx,(%edx)
474e75:	eb d5                	jmp    0x474e4c
474e77:	55                   	push   %ebp
474e78:	8b ec                	mov    %esp,%ebp
474e7a:	68 00 08 00 00       	push   $0x800
474e7f:	6a 00                	push   $0x0
474e81:	ff 75 08             	push   0x8(%ebp)
474e84:	ff 15 28 e1 49 00    	call   *0x49e128
474e8a:	85 c0                	test   %eax,%eax
474e8c:	75 32                	jne    0x474ec0
474e8e:	ff 15 30 e1 49 00    	call   *0x49e130
474e94:	83 f8 57             	cmp    $0x57,%eax
474e97:	75 25                	jne    0x474ebe
474e99:	6a 07                	push   $0x7
474e9b:	68 74 18 4a 00       	push   $0x4a1874
474ea0:	ff 75 08             	push   0x8(%ebp)
474ea3:	e8 9f 56 00 00       	call   0x47a547
474ea8:	83 c4 0c             	add    $0xc,%esp
474eab:	85 c0                	test   %eax,%eax
474ead:	74 0f                	je     0x474ebe
474eaf:	6a 00                	push   $0x0
474eb1:	6a 00                	push   $0x0
474eb3:	ff 75 08             	push   0x8(%ebp)
474eb6:	ff 15 28 e1 49 00    	call   *0x49e128
474ebc:	5d                   	pop    %ebp
474ebd:	c3                   	ret
474ebe:	33 c0                	xor    %eax,%eax
474ec0:	5d                   	pop    %ebp
474ec1:	c3                   	ret
474ec2:	55                   	push   %ebp
474ec3:	8b ec                	mov    %esp,%ebp
474ec5:	56                   	push   %esi
474ec6:	68 8c 18 4a 00       	push   $0x4a188c
474ecb:	68 84 18 4a 00       	push   $0x4a1884
474ed0:	68 8c 18 4a 00       	push   $0x4a188c
474ed5:	6a 00                	push   $0x0
474ed7:	e8 fb fe ff ff       	call   0x474dd7
474edc:	8b f0                	mov    %eax,%esi
474ede:	83 c4 10             	add    $0x10,%esp
474ee1:	85 f6                	test   %esi,%esi
474ee3:	74 10                	je     0x474ef5
474ee5:	ff 75 08             	push   0x8(%ebp)
474ee8:	8b ce                	mov    %esi,%ecx
474eea:	ff 15 d4 e2 49 00    	call   *0x49e2d4
474ef0:	ff d6                	call   *%esi
474ef2:	5e                   	pop    %esi
474ef3:	5d                   	pop    %ebp
474ef4:	c3                   	ret
474ef5:	5e                   	pop    %esi
474ef6:	5d                   	pop    %ebp