475cab:	8b ec                	mov    %esp,%ebp
475cad:	83 ec 18             	sub    $0x18,%esp
475cb0:	a1 00 b4 4b 00       	mov    0x4bb400,%eax
475cb5:	53                   	push   %ebx
475cb6:	56                   	push   %esi
475cb7:	8b 35 04 b4 4b 00    	mov    0x4bb404,%esi
475cbd:	8b d9                	mov    %ecx,%ebx
475cbf:	57                   	push   %edi
475cc0:	33 ff                	xor    %edi,%edi
475cc2:	8d 14 86             	lea    (%esi,%eax,4),%edx
475cc5:	8b c2                	mov    %edx,%eax
475cc7:	2b c6                	sub    %esi,%eax
475cc9:	83 c0 03             	add    $0x3,%eax
475ccc:	c1 e8 02             	shr    $0x2,%eax
475ccf:	3b d6                	cmp    %esi,%edx
475cd1:	1b c9                	sbb    %ecx,%ecx
475cd3:	f7 d1                	not    %ecx
475cd5:	23 c8                	and    %eax,%ecx
475cd7:	89 4d f8             	mov    %ecx,-0x8(%ebp)
475cda:	74 41                	je     0x475d1d
475cdc:	ff 33                	push   (%ebx)
475cde:	8b 06                	mov    (%esi),%eax
475ce0:	50                   	push   %eax
475ce1:	89 45 fc             	mov    %eax,-0x4(%ebp)
475ce4:	e8 83 00 00 00       	call   0x475d6c
475ce9:	59                   	pop    %ecx
475cea:	59                   	pop    %ecx
475ceb:	84 c0                	test   %al,%al
475ced:	74 25                	je     0x475d14
475cef:	8d 45 fc             	lea    -0x4(%ebp),%eax
475cf2:	89 45 e8             	mov    %eax,-0x18(%ebp)
475cf5:	8b 03                	mov    (%ebx),%eax
475cf7:	89 45 ec             	mov    %eax,-0x14(%ebp)
475cfa:	8b 43 04             	mov    0x4(%ebx),%eax
475cfd:	89 45 f0             	mov    %eax,-0x10(%ebp)
475d00:	8b 43 08             	mov    0x8(%ebx),%eax
475d03:	89 45 f4             	mov    %eax,-0xc(%ebp)
475d06:	8d 45 e8             	lea    -0x18(%ebp),%eax
475d09:	50                   	push   %eax
475d0a:	ff 75 fc             	push   -0x4(%ebp)
475d0d:	e8 0a fe ff ff       	call   0x475b1c
475d12:	59                   	pop    %ecx
475d13:	59                   	pop    %ecx
475d14:	83 c6 04             	add    $0x4,%esi
475d17:	47                   	inc    %edi
475d18:	3b 7d f8             	cmp    -0x8(%ebp),%edi
475d1b:	75 bf                	jne    0x475cdc
475d1d:	5f                   	pop    %edi
475d1e:	5e                   	pop    %esi
475d1f:	5b                   	pop    %ebx
475d20:	8b e5                	mov    %ebp,%esp
475d22:	5d                   	pop    %ebp
475d23:	c3                   	ret
475d24:	ff 31                	push   (%ecx)
475d26:	e8 29 22 ff ff       	call   0x467f54
475d2b:	59                   	pop    %ecx
475d2c:	c3                   	ret
475d2d:	8b ff                	mov    %edi,%edi
475d2f:	55                   	push   %ebp
475d30:	8b ec                	mov    %esp,%ebp
475d32:	83 ec 14             	sub    $0x14,%esp
475d35:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
475d39:	8d 45 fc             	lea    -0x4(%ebp),%eax
475d3c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
475d40:	89 45 ec             	mov    %eax,-0x14(%ebp)
475d43:	8d 45 08             	lea    0x8(%ebp),%eax
475d46:	89 45 f0             	mov    %eax,-0x10(%ebp)
475d49:	8d 45 f8             	lea    -0x8(%ebp),%eax
475d4c:	89 45 f4             	mov    %eax,-0xc(%ebp)
475d4f:	8d 45 ec             	lea    -0x14(%ebp),%eax
475d52:	50                   	push   %eax
475d53:	6a 08                	push   $0x8
475d55:	e8 9a fd ff ff       	call   0x475af4
475d5a:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
475d5e:	8b 45 fc             	mov    -0x4(%ebp),%eax
475d61:	59                   	pop    %ecx
475d62:	59                   	pop    %ecx
475d63:	75 03                	jne    0x475d68
475d65:	8b 45 f8             	mov    -0x8(%ebp),%eax
475d68:	8b e5                	mov    %ebp,%esp
475d6a:	5d                   	pop    %ebp
475d6b:	c3                   	ret
475d6c:	8b ff                	mov    %edi,%edi
475d6e:	55                   	push   %ebp
475d6f:	8b ec                	mov    %esp,%ebp
475d71:	8b 45 08             	mov    0x8(%ebp),%eax
475d74:	85 c0                	test   %eax,%eax
475d76:	75 04                	jne    0x475d7c
475d78:	32 c0                	xor    %al,%al
475d7a:	5d                   	pop    %ebp
475d7b:	c3                   	ret
475d7c:	8b 48 0c             	mov    0xc(%eax),%ecx
475d7f:	8b c1                	mov    %ecx,%eax
475d81:	c1 e8 0d             	shr    $0xd,%eax
475d84:	a8 01                	test   $0x1,%al
475d86:	74 f0                	je     0x475d78
475d88:	51                   	push   %ecx
475d89:	e8 3b 00 00 00       	call   0x475dc9
475d8e:	59                   	pop    %ecx
475d8f:	84 c0                	test   %al,%al
475d91:	75 07                	jne    0x475d9a
475d93:	8b 45 0c             	mov    0xc(%ebp),%eax
475d96:	ff 00                	incl   (%eax)
475d98:	eb de                	jmp    0x475d78
475d9a:	b0 01                	mov    $0x1,%al
475d9c:	5d                   	pop    %ebp
475d9d:	c3                   	ret
475d9e:	8b ff                	mov    %edi,%edi
475da0:	55                   	push   %ebp
475da1:	8b ec                	mov    %esp,%ebp
475da3:	8b 45 08             	mov    0x8(%ebp),%eax
475da6:	c1 e8 0d             	shr    $0xd,%eax
475da9:	83 e0 01             	and    $0x1,%eax
475dac:	5d                   	pop    %ebp
475dad:	c3                   	ret
475dae:	8b ff                	mov    %edi,%edi
475db0:	55                   	push   %ebp
475db1:	8b ec                	mov    %esp,%ebp
475db3:	8b 45 08             	mov    0x8(%ebp),%eax
475db6:	24 03                	and    $0x3,%al
475db8:	3c 02                	cmp    $0x2,%al
475dba:	74 04                	je     0x475dc0
475dbc:	32 c0                	xor    %al,%al
475dbe:	5d                   	pop    %ebp
475dbf:	c3                   	ret
475dc0:	f6 45 08 c0          	testb  $0xc0,0x8(%ebp)
475dc4:	0f 95 c0             	setne  %al
475dc7:	5d                   	pop    %ebp
475dc8:	c3                   	ret
475dc9:	8b ff                	mov    %edi,%edi
475dcb:	55                   	push   %ebp
475dcc:	8b ec                	mov    %esp,%ebp
475dce:	8b 4d 08             	mov    0x8(%ebp),%ecx
475dd1:	8b c1                	mov    %ecx,%eax
475dd3:	24 03                	and    $0x3,%al
475dd5:	3c 02                	cmp    $0x2,%al
475dd7:	75 09                	jne    0x475de2
475dd9:	f6 c1 c0             	test   $0xc0,%cl
475ddc:	74 04                	je     0x475de2
475dde:	fe c8                	dec    %al
475de0:	5d                   	pop    %ebp
475de1:	c3                   	ret
475de2:	c1 e9 0b             	shr    $0xb,%ecx
475de5:	80 e1 01             	and    $0x1,%cl
475de8:	8a c1                	mov    %cl,%al
475dea:	5d                   	pop    %ebp
475deb:	c3                   	ret
475dec:	8b ff                	mov    %edi,%edi
475dee:	55                   	push   %ebp
475def:	8b ec                	mov    %esp,%ebp
475df1:	8b 4d 08             	mov    0x8(%ebp),%ecx
475df4:	56                   	push   %esi
475df5:	57                   	push   %edi
475df6:	8d 71 0c             	lea    0xc(%ecx),%esi
475df9:	8b 16                	mov    (%esi),%edx
475dfb:	8b c2                	mov    %edx,%eax
475dfd:	24 03                	and    $0x3,%al
475dff:	3c 02                	cmp    $0x2,%al
475e01:	75 46                	jne    0x475e49
475e03:	f6 c2 c0             	test   $0xc0,%dl
475e06:	74 41                	je     0x475e49
475e08:	8b 39                	mov    (%ecx),%edi
475e0a:	8b 41 04             	mov    0x4(%ecx),%eax
475e0d:	2b f8                	sub    %eax,%edi
475e0f:	89 01                	mov    %eax,(%ecx)
475e11:	83 61 08 00          	andl   $0x0,0x8(%ecx)
475e15:	85 ff                	test   %edi,%edi
475e17:	7e 30                	jle    0x475e49
475e19:	57                   	push   %edi
475e1a:	50                   	push   %eax
475e1b:	51                   	push   %ecx
475e1c:	e8 55 23 00 00       	call   0x478176
475e21:	59                   	pop    %ecx
475e22:	50                   	push   %eax
475e23:	e8 17 43 00 00       	call   0x47a13f
475e28:	83 c4 0c             	add    $0xc,%esp
475e2b:	3b f8                	cmp    %eax,%edi
475e2d:	74 0b                	je     0x475e3a
475e2f:	6a 10                	push   $0x10
475e31:	58                   	pop    %eax
475e32:	f0 09 06             	lock or %eax,(%esi)
475e35:	83 c8 ff             	or     $0xffffffff,%eax
475e38:	eb 11                	jmp    0x475e4b
475e3a:	8b 06                	mov    (%esi),%eax
475e3c:	c1 e8 02             	shr    $0x2,%eax
475e3f:	a8 01                	test   $0x1,%al
475e41:	74 06                	je     0x475e49
475e43:	6a fd                	push   $0xfffffffd
475e45:	58                   	pop    %eax
475e46:	f0 21 06             	lock and %eax,(%esi)
475e49:	33 c0                	xor    %eax,%eax
475e4b:	5f                   	pop    %edi
475e4c:	5e                   	pop    %esi
475e4d:	5d                   	pop    %ebp
475e4e:	c3                   	ret
475e4f:	8b ff                	mov    %edi,%edi
475e51:	55                   	push   %ebp
475e52:	8b ec                	mov    %esp,%ebp
475e54:	56                   	push   %esi
475e55:	8b 75 08             	mov    0x8(%ebp),%esi
475e58:	85 f6                	test   %esi,%esi
475e5a:	75 09                	jne    0x475e65
475e5c:	56                   	push   %esi
475e5d:	e8 cb fe ff ff       	call   0x475d2d
475e62:	59                   	pop    %ecx
475e63:	eb 2e                	jmp    0x475e93
475e65:	56                   	push   %esi
475e66:	e8 81 ff ff ff       	call   0x475dec
475e6b:	59                   	pop    %ecx
475e6c:	85 c0                	test   %eax,%eax
475e6e:	74 05                	je     0x475e75
475e70:	83 c8 ff             	or     $0xffffffff,%eax
475e73:	eb 1e                	jmp    0x475e93
475e75:	8b 46 0c             	mov    0xc(%esi),%eax
475e78:	c1 e8 0b             	shr    $0xb,%eax
475e7b:	a8 01                	test   $0x1,%al
475e7d:	74 12                	je     0x475e91
475e7f:	56                   	push   %esi
475e80:	e8 f1 22 00 00       	call   0x478176
475e85:	50                   	push   %eax
475e86:	e8 52 d2 00 00       	call   0x4830dd
475e8b:	59                   	pop    %ecx
475e8c:	59                   	pop    %ecx
475e8d:	85 c0                	test   %eax,%eax
475e8f:	75 df                	jne    0x475e70
475e91:	33 c0                	xor    %eax,%eax
475e93:	5e                   	pop    %esi
475e94:	5d                   	pop    %ebp
475e95:	c3                   	ret
475e96:	6a 01                	push   $0x1
475e98:	e8 90 fe ff ff       	call   0x475d2d
475e9d:	59                   	pop    %ecx
475e9e:	c3                   	ret
475e9f:	8b ff                	mov    %edi,%edi
475ea1:	55                   	push   %ebp
475ea2:	8b ec                	mov    %esp,%ebp
475ea4:	51                   	push   %ecx
475ea5:	51                   	push   %ecx
475ea6:	8b 45 08             	mov    0x8(%ebp),%eax
475ea9:	89 45 fc             	mov    %eax,-0x4(%ebp)
475eac:	85 c0                	test   %eax,%eax
475eae:	75 08                	jne    0x475eb8
475eb0:	50                   	push   %eax
475eb1:	e8 77 fe ff ff       	call   0x475d2d
475eb6:	eb 25                	jmp    0x475edd
475eb8:	8b 40 0c             	mov    0xc(%eax),%eax
475ebb:	50                   	push   %eax
475ebc:	e8 08 ff ff ff       	call   0x475dc9
475ec1:	59                   	pop    %ecx
475ec2:	84 c0                	test   %al,%al
475ec4:	75 04                	jne    0x475eca
475ec6:	33 c0                	xor    %eax,%eax
475ec8:	eb 14                	jmp    0x475ede
475eca:	8d 45 fc             	lea    -0x4(%ebp),%eax
475ecd:	89 45 f8             	mov    %eax,-0x8(%ebp)
475ed0:	8d 45 f8             	lea    -0x8(%ebp),%eax
475ed3:	50                   	push   %eax
475ed4:	ff 75 fc             	push   -0x4(%ebp)
475ed7:	e8 68 fc ff ff       	call   0x475b44
475edc:	59                   	pop    %ecx
475edd:	59                   	pop    %ecx
475ede:	8b e5                	mov    %ebp,%esp
475ee0:	5d                   	pop    %ebp
475ee1:	c3                   	ret
475ee2:	8b ff                	mov    %edi,%edi
475ee4:	55                   	push   %ebp
475ee5:	8b ec                	mov    %esp,%ebp
475ee7:	56                   	push   %esi
475ee8:	8b 75 08             	mov    0x8(%ebp),%esi
475eeb:	57                   	push   %edi
475eec:	8d 7e 0c             	lea    0xc(%esi),%edi
475eef:	8b 07                	mov    (%edi),%eax
475ef1:	c1 e8 0d             	shr    $0xd,%eax
475ef4:	a8 01                	test   $0x1,%al
475ef6:	74 24                	je     0x475f1c
475ef8:	8b 07                	mov    (%edi),%eax
475efa:	c1 e8 06             	shr    $0x6,%eax
475efd:	a8 01                	test   $0x1,%al
475eff:	74 1b                	je     0x475f1c
475f01:	ff 76 04             	push   0x4(%esi)
475f04:	e8 30 c4 ff ff       	call   0x472339
475f09:	59                   	pop    %ecx
475f0a:	b8 bf fe ff ff       	mov    $0xfffffebf,%eax
475f0f:	f0 21 07             	lock and %eax,(%edi)
475f12:	33 c0                	xor    %eax,%eax
475f14:	89 46 04             	mov    %eax,0x4(%esi)
475f17:	89 06                	mov    %eax,(%esi)
475f19:	89 46 08             	mov    %eax,0x8(%esi)
475f1c:	5f                   	pop    %edi
475f1d:	5e                   	pop    %esi
475f1e:	5d                   	pop    %ebp
475f1f:	c3                   	ret
475f20:	8b ff                	mov    %edi,%edi
475f22:	55                   	push   %ebp
475f23:	8b ec                	mov    %esp,%ebp
475f25:	8b 45 08             	mov    0x8(%ebp),%eax
475f28:	83 e8 00             	sub    $0x0,%eax
475f2b:	74 10                	je     0x475f3d
475f2d:	83 e8 01             	sub    $0x1,%eax
475f30:	74 07                	je     0x475f39
475f32:	83 e8 01             	sub    $0x1,%eax
475f35:	6a f4                	push   $0xfffffff4
475f37:	eb 06                	jmp    0x475f3f
475f39:	6a f5                	push   $0xfffffff5
475f3b:	eb 02                	jmp    0x475f3f
475f3d:	6a f6                	push   $0xfffffff6
475f3f:	58                   	pop    %eax
475f40:	5d                   	pop    %ebp
475f41:	c3                   	ret
475f42:	8b ff                	mov    %edi,%edi
475f44:	55                   	push   %ebp
475f45:	8b ec                	mov    %esp,%ebp
475f47:	83 ec 48             	sub    $0x48,%esp
475f4a:	8d 45 b8             	lea    -0x48(%ebp),%eax
475f4d:	50                   	push   %eax
475f4e:	ff 15 c0 40 49 00    	call   *0x4940c0
475f54:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
475f59:	0f 84 95 00 00 00    	je     0x475ff4
475f5f:	8b 45 ec             	mov    -0x14(%ebp),%eax
475f62:	85 c0                	test   %eax,%eax
475f64:	0f 84 8a 00 00 00    	je     0x475ff4
475f6a:	53                   	push   %ebx
475f6b:	56                   	push   %esi
475f6c:	8b 30                	mov    (%eax),%esi
475f6e:	8d 58 04             	lea    0x4(%eax),%ebx
475f71:	8d 04 33             	lea    (%ebx,%esi,1),%eax
475f74:	89 45 fc             	mov    %eax,-0x4(%ebp)
475f77:	b8 00 20 00 00       	mov    $0x2000,%eax
475f7c:	3b f0                	cmp    %eax,%esi
475f7e:	7c 02                	jl     0x475f82
475f80:	8b f0                	mov    %eax,%esi
475f82:	56                   	push   %esi
475f83:	e8 25 93 00 00       	call   0x47f2ad
475f88:	a1 00 c2 4b 00       	mov    0x4bc200,%eax
475f8d:	59                   	pop    %ecx
475f8e:	3b f0                	cmp    %eax,%esi
475f90:	7e 02                	jle    0x475f94
475f92:	8b f0                	mov    %eax,%esi
475f94:	57                   	push   %edi
475f95:	33 ff                	xor    %edi,%edi
475f97:	85 f6                	test   %esi,%esi
475f99:	74 56                	je     0x475ff1
475f9b:	8b 45 fc             	mov    -0x4(%ebp),%eax
475f9e:	8b 08                	mov    (%eax),%ecx
475fa0:	83 f9 ff             	cmp    $0xffffffff,%ecx
475fa3:	74 40                	je     0x475fe5
475fa5:	83 f9 fe             	cmp    $0xfffffffe,%ecx
475fa8:	74 3b                	je     0x475fe5
475faa:	8a 13                	mov    (%ebx),%dl
475fac:	f6 c2 01             	test   $0x1,%dl