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
475faf:	74 34                	je     0x475fe5
475fb1:	f6 c2 08             	test   $0x8,%dl
475fb4:	75 0b                	jne    0x475fc1
475fb6:	51                   	push   %ecx
475fb7:	ff 15 60 40 49 00    	call   *0x494060
475fbd:	85 c0                	test   %eax,%eax
475fbf:	74 21                	je     0x475fe2
475fc1:	8b c7                	mov    %edi,%eax
475fc3:	8b cf                	mov    %edi,%ecx
475fc5:	83 e0 3f             	and    $0x3f,%eax
475fc8:	c1 f9 06             	sar    $0x6,%ecx
475fcb:	6b d0 30             	imul   $0x30,%eax,%edx
475fce:	8b 45 fc             	mov    -0x4(%ebp),%eax
475fd1:	03 14 8d 00 c0 4b 00 	add    0x4bc000(,%ecx,4),%edx
475fd8:	8b 00                	mov    (%eax),%eax
475fda:	89 42 18             	mov    %eax,0x18(%edx)
475fdd:	8a 03                	mov    (%ebx),%al
475fdf:	88 42 28             	mov    %al,0x28(%edx)
475fe2:	8b 45 fc             	mov    -0x4(%ebp),%eax
475fe5:	47                   	inc    %edi
475fe6:	83 c0 04             	add    $0x4,%eax
475fe9:	43                   	inc    %ebx
475fea:	89 45 fc             	mov    %eax,-0x4(%ebp)
475fed:	3b fe                	cmp    %esi,%edi
475fef:	75 ad                	jne    0x475f9e
475ff1:	5f                   	pop    %edi
475ff2:	5e                   	pop    %esi
475ff3:	5b                   	pop    %ebx
475ff4:	8b e5                	mov    %ebp,%esp
475ff6:	5d                   	pop    %ebp
475ff7:	c3                   	ret
475ff8:	8b ff                	mov    %edi,%edi
475ffa:	53                   	push   %ebx
475ffb:	56                   	push   %esi
475ffc:	57                   	push   %edi
475ffd:	33 ff                	xor    %edi,%edi
475fff:	8b c7                	mov    %edi,%eax
476001:	8b cf                	mov    %edi,%ecx
476003:	83 e0 3f             	and    $0x3f,%eax
476006:	c1 f9 06             	sar    $0x6,%ecx
476009:	6b f0 30             	imul   $0x30,%eax,%esi
47600c:	03 34 8d 00 c0 4b 00 	add    0x4bc000(,%ecx,4),%esi
476013:	83 7e 18 ff          	cmpl   $0xffffffff,0x18(%esi)
476017:	74 0c                	je     0x476025
476019:	83 7e 18 fe          	cmpl   $0xfffffffe,0x18(%esi)
47601d:	74 06                	je     0x476025
47601f:	80 4e 28 80          	orb    $0x80,0x28(%esi)
476023:	eb 79                	jmp    0x47609e
476025:	8b c7                	mov    %edi,%eax
476027:	c6 46 28 81          	movb   $0x81,0x28(%esi)
47602b:	83 e8 00             	sub    $0x0,%eax
47602e:	74 10                	je     0x476040
476030:	83 e8 01             	sub    $0x1,%eax
476033:	74 07                	je     0x47603c
476035:	83 e8 01             	sub    $0x1,%eax
476038:	6a f4                	push   $0xfffffff4
47603a:	eb 06                	jmp    0x476042
47603c:	6a f5                	push   $0xfffffff5
47603e:	eb 02                	jmp    0x476042
476040:	6a f6                	push   $0xfffffff6
476042:	58                   	pop    %eax
476043:	50                   	push   %eax
476044:	ff 15 90 40 49 00    	call   *0x494090
47604a:	8b d8                	mov    %eax,%ebx
47604c:	83 fb ff             	cmp    $0xffffffff,%ebx
47604f:	74 0d                	je     0x47605e
476051:	85 db                	test   %ebx,%ebx
476053:	74 09                	je     0x47605e
476055:	53                   	push   %ebx
476056:	ff 15 60 40 49 00    	call   *0x494060
47605c:	eb 02                	jmp    0x476060
47605e:	33 c0                	xor    %eax,%eax
476060:	85 c0                	test   %eax,%eax
476062:	74 1c                	je     0x476080
476064:	0f b6 c0             	movzbl %al,%eax
476067:	89 5e 18             	mov    %ebx,0x18(%esi)
47606a:	83 f8 02             	cmp    $0x2,%eax
47606d:	75 06                	jne    0x476075
47606f:	80 4e 28 40          	orb    $0x40,0x28(%esi)
476073:	eb 29                	jmp    0x47609e
476075:	83 f8 03             	cmp    $0x3,%eax
476078:	75 24                	jne    0x47609e
47607a:	80 4e 28 08          	orb    $0x8,0x28(%esi)
47607e:	eb 1e                	jmp    0x47609e
476080:	80 4e 28 40          	orb    $0x40,0x28(%esi)
476084:	c7 46 18 fe ff ff ff 	movl   $0xfffffffe,0x18(%esi)
47608b:	a1 04 b4 4b 00       	mov    0x4bb404,%eax
476090:	85 c0                	test   %eax,%eax
476092:	74 0a                	je     0x47609e
476094:	8b 04 b8             	mov    (%eax,%edi,4),%eax
476097:	c7 40 10 fe ff ff ff 	movl   $0xfffffffe,0x10(%eax)
47609e:	47                   	inc    %edi
47609f:	83 ff 03             	cmp    $0x3,%edi
4760a2:	0f 85 57 ff ff ff    	jne    0x475fff
4760a8:	5f                   	pop    %edi
4760a9:	5e                   	pop    %esi
4760aa:	5b                   	pop    %ebx
4760ab:	c3                   	ret
4760ac:	6a 0c                	push   $0xc
4760ae:	68 40 4e 4b 00       	push   $0x4b4e40
4760b3:	e8 a8 a8 fc ff       	call   0x440960
4760b8:	6a 07                	push   $0x7
4760ba:	e8 4d 1e ff ff       	call   0x467f0c
4760bf:	59                   	pop    %ecx
4760c0:	33 db                	xor    %ebx,%ebx
4760c2:	88 5d e7             	mov    %bl,-0x19(%ebp)
4760c5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4760c8:	53                   	push   %ebx
4760c9:	e8 df 91 00 00       	call   0x47f2ad
4760ce:	59                   	pop    %ecx
4760cf:	85 c0                	test   %eax,%eax
4760d1:	75 0f                	jne    0x4760e2
4760d3:	e8 6a fe ff ff       	call   0x475f42
4760d8:	e8 1b ff ff ff       	call   0x475ff8
4760dd:	b3 01                	mov    $0x1,%bl
4760df:	88 5d e7             	mov    %bl,-0x19(%ebp)
4760e2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4760e9:	e8 0b 00 00 00       	call   0x4760f9
4760ee:	8a c3                	mov    %bl,%al
4760f0:	e8 b1 a8 fc ff       	call   0x4409a6
4760f5:	c3                   	ret
4760f6:	8a 5d e7             	mov    -0x19(%ebp),%bl
4760f9:	6a 07                	push   $0x7
4760fb:	e8 54 1e ff ff       	call   0x467f54
476100:	59                   	pop    %ecx
476101:	c3                   	ret
476102:	8b ff                	mov    %edi,%edi
476104:	56                   	push   %esi
476105:	33 f6                	xor    %esi,%esi
476107:	8b 86 00 c0 4b 00    	mov    0x4bc000(%esi),%eax
47610d:	85 c0                	test   %eax,%eax
47610f:	74 0e                	je     0x47611f
476111:	50                   	push   %eax
476112:	e8 61 91 00 00       	call   0x47f278
476117:	83 a6 00 c0 4b 00 00 	andl   $0x0,0x4bc000(%esi)
47611e:	59                   	pop    %ecx
47611f:	83 c6 04             	add    $0x4,%esi
476122:	81 fe 00 02 00 00    	cmp    $0x200,%esi
476128:	72 dd                	jb     0x476107
47612a:	b0 01                	mov    $0x1,%al
47612c:	5e                   	pop    %esi
47612d:	c3                   	ret
47612e:	8b ff                	mov    %edi,%edi
476130:	55                   	push   %ebp
476131:	8b ec                	mov    %esp,%ebp
476133:	8b 45 0c             	mov    0xc(%ebp),%eax
476136:	83 40 08 fe          	addl   $0xfffffffe,0x8(%eax)
47613a:	8b 55 0c             	mov    0xc(%ebp),%edx
47613d:	83 7a 08 00          	cmpl   $0x0,0x8(%edx)
476141:	7d 0f                	jge    0x476152
476143:	0f b7 45 08          	movzwl 0x8(%ebp),%eax
476147:	52                   	push   %edx
476148:	50                   	push   %eax
476149:	e8 06 28 00 00       	call   0x478954
47614e:	59                   	pop    %ecx
47614f:	59                   	pop    %ecx
476150:	5d                   	pop    %ebp
476151:	c3                   	ret
476152:	8b 0a                	mov    (%edx),%ecx
476154:	66 8b 45 08          	mov    0x8(%ebp),%ax
476158:	66 89 01             	mov    %ax,(%ecx)
47615b:	83 02 02             	addl   $0x2,(%edx)
47615e:	5d                   	pop    %ebp
47615f:	c3                   	ret
476160:	8b ff                	mov    %edi,%edi
476162:	55                   	push   %ebp
476163:	8b ec                	mov    %esp,%ebp
476165:	83 ec 10             	sub    $0x10,%esp
476168:	a1 94 80 4b 00       	mov    0x4b8094,%eax
47616d:	33 c5                	xor    %ebp,%eax
47616f:	89 45 fc             	mov    %eax,-0x4(%ebp)
476172:	57                   	push   %edi
476173:	8b 7d 0c             	mov    0xc(%ebp),%edi
476176:	8b 47 0c             	mov    0xc(%edi),%eax
476179:	c1 e8 0c             	shr    $0xc,%eax