41fbf9:	59                   	pop    %ecx
41fbfa:	8b cf                	mov    %edi,%ecx
41fbfc:	83 e7 3f             	and    $0x3f,%edi
41fbff:	c1 f9 06             	sar    $0x6,%ecx
41fc02:	6b d7 38             	imul   $0x38,%edi,%edx
41fc05:	8b 0c 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%ecx
41fc0c:	c6 44 11 28 00       	movb   $0x0,0x28(%ecx,%edx,1)
41fc11:	85 f6                	test   %esi,%esi
41fc13:	74 10                	je     0x41fc25
41fc15:	ff 75 0c             	push   0xc(%ebp)
41fc18:	56                   	push   %esi
41fc19:	e8 1c ca ff ff       	call   0x41c63a
41fc1e:	59                   	pop    %ecx
41fc1f:	59                   	pop    %ecx
41fc20:	83 c8 ff             	or     $0xffffffff,%eax
41fc23:	eb 02                	jmp    0x41fc27
41fc25:	33 c0                	xor    %eax,%eax
41fc27:	5f                   	pop    %edi
41fc28:	5e                   	pop    %esi
41fc29:	5d                   	pop    %ebp
41fc2a:	c3                   	ret
41fc2b:	8b ff                	mov    %edi,%edi
41fc2d:	55                   	push   %ebp
41fc2e:	8b ec                	mov    %esp,%ebp
41fc30:	56                   	push   %esi
41fc31:	8b 75 08             	mov    0x8(%ebp),%esi
41fc34:	57                   	push   %edi
41fc35:	8d 7e 0c             	lea    0xc(%esi),%edi
41fc38:	8b 07                	mov    (%edi),%eax
41fc3a:	90                   	nop
41fc3b:	c1 e8 0d             	shr    $0xd,%eax
41fc3e:	a8 01                	test   $0x1,%al
41fc40:	74 25                	je     0x41fc67
41fc42:	8b 07                	mov    (%edi),%eax
41fc44:	90                   	nop
41fc45:	c1 e8 06             	shr    $0x6,%eax
41fc48:	a8 01                	test   $0x1,%al
41fc4a:	74 1b                	je     0x41fc67
41fc4c:	ff 76 04             	push   0x4(%esi)
41fc4f:	e8 bc 6f fe ff       	call   0x406c10
41fc54:	59                   	pop    %ecx
41fc55:	b8 bf fe ff ff       	mov    $0xfffffebf,%eax
41fc5a:	f0 21 07             	lock and %eax,(%edi)
41fc5d:	33 c0                	xor    %eax,%eax
41fc5f:	89 46 04             	mov    %eax,0x4(%esi)
41fc62:	89 06                	mov    %eax,(%esi)
41fc64:	89 46 08             	mov    %eax,0x8(%esi)
41fc67:	5f                   	pop    %edi
41fc68:	5e                   	pop    %esi
41fc69:	5d                   	pop    %ebp
41fc6a:	c3                   	ret
41fc6b:	6a 08                	push   $0x8
41fc6d:	68 00 af 43 00       	push   $0x43af00
41fc72:	e8 59 a8 fe ff       	call   0x40a4d0
41fc77:	8b 45 08             	mov    0x8(%ebp),%eax
41fc7a:	ff 30                	push   (%eax)
41fc7c:	e8 50 dd ff ff       	call   0x41d9d1
41fc81:	59                   	pop    %ecx
41fc82:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fc86:	8b 75 0c             	mov    0xc(%ebp),%esi
41fc89:	ff 76 04             	push   0x4(%esi)
41fc8c:	8b 06                	mov    (%esi),%eax
41fc8e:	ff 30                	push   (%eax)
41fc90:	e8 bb 01 00 00       	call   0x41fe50
41fc95:	59                   	pop    %ecx
41fc96:	59                   	pop    %ecx
41fc97:	84 c0                	test   %al,%al
41fc99:	74 32                	je     0x41fccd
41fc9b:	8b 46 08             	mov    0x8(%esi),%eax
41fc9e:	80 38 00             	cmpb   $0x0,(%eax)
41fca1:	75 0e                	jne    0x41fcb1
41fca3:	8b 06                	mov    (%esi),%eax
41fca5:	8b 00                	mov    (%eax),%eax
41fca7:	8b 40 0c             	mov    0xc(%eax),%eax
41fcaa:	90                   	nop
41fcab:	d1 e8                	shr    $1,%eax
41fcad:	a8 01                	test   $0x1,%al
41fcaf:	74 1c                	je     0x41fccd
41fcb1:	8b 06                	mov    (%esi),%eax
41fcb3:	ff 30                	push   (%eax)
41fcb5:	e8 53 02 00 00       	call   0x41ff0d
41fcba:	59                   	pop    %ecx
41fcbb:	83 f8 ff             	cmp    $0xffffffff,%eax
41fcbe:	74 07                	je     0x41fcc7
41fcc0:	8b 46 04             	mov    0x4(%esi),%eax
41fcc3:	ff 00                	incl   (%eax)
41fcc5:	eb 06                	jmp    0x41fccd
41fcc7:	8b 46 0c             	mov    0xc(%esi),%eax
41fcca:	83 08 ff             	orl    $0xffffffff,(%eax)
41fccd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fcd4:	e8 12 00 00 00       	call   0x41fceb
41fcd9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41fcdc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41fce3:	59                   	pop    %ecx
41fce4:	5f                   	pop    %edi
41fce5:	5e                   	pop    %esi
41fce6:	5b                   	pop    %ebx
41fce7:	c9                   	leave
41fce8:	c2 0c 00             	ret    $0xc
41fceb:	8b 45 10             	mov    0x10(%ebp),%eax
41fcee:	ff 30                	push   (%eax)
41fcf0:	e8 f0 dc ff ff       	call   0x41d9e5
41fcf5:	59                   	pop    %ecx
41fcf6:	c3                   	ret
41fcf7:	6a 2c                	push   $0x2c
41fcf9:	68 20 af 43 00       	push   $0x43af20
41fcfe:	e8 cd a7 fe ff       	call   0x40a4d0
41fd03:	8b 45 08             	mov    0x8(%ebp),%eax
41fd06:	ff 30                	push   (%eax)
41fd08:	e8 75 36 00 00       	call   0x423382
41fd0d:	59                   	pop    %ecx
41fd0e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fd12:	8b 35 ec f7 43 00    	mov    0x43f7ec,%esi
41fd18:	a1 e8 f7 43 00       	mov    0x43f7e8,%eax
41fd1d:	8d 1c 86             	lea    (%esi,%eax,4),%ebx
41fd20:	8b 7d 0c             	mov    0xc(%ebp),%edi
41fd23:	89 75 d4             	mov    %esi,-0x2c(%ebp)
41fd26:	3b f3                	cmp    %ebx,%esi
41fd28:	74 4f                	je     0x41fd79
41fd2a:	8b 06                	mov    (%esi),%eax
41fd2c:	89 45 e0             	mov    %eax,-0x20(%ebp)
41fd2f:	ff 37                	push   (%edi)
41fd31:	50                   	push   %eax
41fd32:	e8 19 01 00 00       	call   0x41fe50
41fd37:	59                   	pop    %ecx
41fd38:	59                   	pop    %ecx
41fd39:	84 c0                	test   %al,%al
41fd3b:	74 37                	je     0x41fd74
41fd3d:	8b 57 08             	mov    0x8(%edi),%edx
41fd40:	8b 4f 04             	mov    0x4(%edi),%ecx
41fd43:	8b 07                	mov    (%edi),%eax
41fd45:	8d 7d e0             	lea    -0x20(%ebp),%edi
41fd48:	89 7d c4             	mov    %edi,-0x3c(%ebp)
41fd4b:	89 45 c8             	mov    %eax,-0x38(%ebp)
41fd4e:	89 4d cc             	mov    %ecx,-0x34(%ebp)
41fd51:	89 55 d0             	mov    %edx,-0x30(%ebp)
41fd54:	8b 45 e0             	mov    -0x20(%ebp),%eax
41fd57:	89 45 dc             	mov    %eax,-0x24(%ebp)
41fd5a:	89 45 d8             	mov    %eax,-0x28(%ebp)
41fd5d:	8d 45 dc             	lea    -0x24(%ebp),%eax
41fd60:	50                   	push   %eax
41fd61:	8d 45 c4             	lea    -0x3c(%ebp),%eax
41fd64:	50                   	push   %eax
41fd65:	8d 45 d8             	lea    -0x28(%ebp),%eax
41fd68:	50                   	push   %eax
41fd69:	8d 4d e7             	lea    -0x19(%ebp),%ecx
41fd6c:	e8 fa fe ff ff       	call   0x41fc6b
41fd71:	8b 7d 0c             	mov    0xc(%ebp),%edi
41fd74:	83 c6 04             	add    $0x4,%esi
41fd77:	eb aa                	jmp    0x41fd23
41fd79:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fd80:	e8 12 00 00 00       	call   0x41fd97
41fd85:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41fd88:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41fd8f:	59                   	pop    %ecx
41fd90:	5f                   	pop    %edi
41fd91:	5e                   	pop    %esi
41fd92:	5b                   	pop    %ebx
41fd93:	c9                   	leave
41fd94:	c2 0c 00             	ret    $0xc
41fd97:	8b 45 10             	mov    0x10(%ebp),%eax
41fd9a:	ff 30                	push   (%eax)
41fd9c:	e8 29 36 00 00       	call   0x4233ca
41fda1:	59                   	pop    %ecx
41fda2:	c3                   	ret
41fda3:	6a 0c                	push   $0xc
41fda5:	68 40 af 43 00       	push   $0x43af40
41fdaa:	e8 21 a7 fe ff       	call   0x40a4d0
41fdaf:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41fdb3:	8b 45 08             	mov    0x8(%ebp),%eax
41fdb6:	ff 30                	push   (%eax)
41fdb8:	e8 14 dc ff ff       	call   0x41d9d1
41fdbd:	59                   	pop    %ecx
41fdbe:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fdc2:	8b 45 0c             	mov    0xc(%ebp),%eax
41fdc5:	8b 00                	mov    (%eax),%eax
41fdc7:	ff 30                	push   (%eax)
41fdc9:	e8 3f 01 00 00       	call   0x41ff0d
41fdce:	59                   	pop    %ecx
41fdcf:	8b f0                	mov    %eax,%esi
41fdd1:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fdd4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fddb:	e8 17 00 00 00       	call   0x41fdf7
41fde0:	8b c6                	mov    %esi,%eax
41fde2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41fde5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41fdec:	59                   	pop    %ecx
41fded:	5f                   	pop    %edi
41fdee:	5e                   	pop    %esi
41fdef:	5b                   	pop    %ebx
41fdf0:	c9                   	leave
41fdf1:	c2 0c 00             	ret    $0xc
41fdf4:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41fdf7:	8b 45 10             	mov    0x10(%ebp),%eax
41fdfa:	ff 30                	push   (%eax)
41fdfc:	e8 e4 db ff ff       	call   0x41d9e5
41fe01:	59                   	pop    %ecx
41fe02:	c3                   	ret
41fe03:	8b ff                	mov    %edi,%edi
41fe05:	55                   	push   %ebp
41fe06:	8b ec                	mov    %esp,%ebp
41fe08:	83 ec 20             	sub    $0x20,%esp
41fe0b:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
41fe0f:	8d 45 f8             	lea    -0x8(%ebp),%eax
41fe12:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
41fe16:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41fe19:	89 45 e0             	mov    %eax,-0x20(%ebp)
41fe1c:	8d 45 08             	lea    0x8(%ebp),%eax
41fe1f:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41fe22:	8d 45 f4             	lea    -0xc(%ebp),%eax
41fe25:	6a 08                	push   $0x8
41fe27:	89 45 e8             	mov    %eax,-0x18(%ebp)
41fe2a:	58                   	pop    %eax
41fe2b:	89 45 f0             	mov    %eax,-0x10(%ebp)
41fe2e:	89 45 ec             	mov    %eax,-0x14(%ebp)
41fe31:	8d 45 f0             	lea    -0x10(%ebp),%eax
41fe34:	50                   	push   %eax
41fe35:	8d 45 e0             	lea    -0x20(%ebp),%eax
41fe38:	50                   	push   %eax
41fe39:	8d 45 ec             	lea    -0x14(%ebp),%eax
41fe3c:	50                   	push   %eax
41fe3d:	e8 b5 fe ff ff       	call   0x41fcf7
41fe42:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
41fe46:	8b 45 f8             	mov    -0x8(%ebp),%eax
41fe49:	75 03                	jne    0x41fe4e
41fe4b:	8b 45 f4             	mov    -0xc(%ebp),%eax
41fe4e:	c9                   	leave
41fe4f:	c3                   	ret
41fe50:	8b ff                	mov    %edi,%edi
41fe52:	55                   	push   %ebp
41fe53:	8b ec                	mov    %esp,%ebp
41fe55:	8b 45 08             	mov    0x8(%ebp),%eax
41fe58:	85 c0                	test   %eax,%eax
41fe5a:	74 1d                	je     0x41fe79
41fe5c:	8b 48 0c             	mov    0xc(%eax),%ecx
41fe5f:	90                   	nop
41fe60:	8b c1                	mov    %ecx,%eax
41fe62:	c1 e8 0d             	shr    $0xd,%eax
41fe65:	a8 01                	test   $0x1,%al
41fe67:	74 10                	je     0x41fe79
41fe69:	51                   	push   %ecx
41fe6a:	e8 12 00 00 00       	call   0x41fe81
41fe6f:	59                   	pop    %ecx
41fe70:	84 c0                	test   %al,%al
41fe72:	75 09                	jne    0x41fe7d
41fe74:	8b 45 0c             	mov    0xc(%ebp),%eax
41fe77:	ff 00                	incl   (%eax)
41fe79:	32 c0                	xor    %al,%al
41fe7b:	5d                   	pop    %ebp
41fe7c:	c3                   	ret
41fe7d:	b0 01                	mov    $0x1,%al
41fe7f:	5d                   	pop    %ebp
41fe80:	c3                   	ret
41fe81:	8b ff                	mov    %edi,%edi
41fe83:	55                   	push   %ebp
41fe84:	8b ec                	mov    %esp,%ebp
41fe86:	8b 4d 08             	mov    0x8(%ebp),%ecx
41fe89:	8b c1                	mov    %ecx,%eax
41fe8b:	24 03                	and    $0x3,%al
41fe8d:	3c 02                	cmp    $0x2,%al
41fe8f:	75 09                	jne    0x41fe9a
41fe91:	f6 c1 c0             	test   $0xc0,%cl
41fe94:	74 04                	je     0x41fe9a
41fe96:	fe c8                	dec    %al
41fe98:	5d                   	pop    %ebp
41fe99:	c3                   	ret
41fe9a:	c1 e9 0b             	shr    $0xb,%ecx
41fe9d:	80 e1 01             	and    $0x1,%cl
41fea0:	8a c1                	mov    %cl,%al
41fea2:	5d                   	pop    %ebp
41fea3:	c3                   	ret
41fea4:	8b ff                	mov    %edi,%edi
41fea6:	55                   	push   %ebp
41fea7:	8b ec                	mov    %esp,%ebp
41fea9:	8b 4d 08             	mov    0x8(%ebp),%ecx
41feac:	53                   	push   %ebx
41fead:	56                   	push   %esi
41feae:	57                   	push   %edi
41feaf:	8d 71 0c             	lea    0xc(%ecx),%esi
41feb2:	8b 16                	mov    (%esi),%edx
41feb4:	90                   	nop
41feb5:	8b c2                	mov    %edx,%eax
41feb7:	24 03                	and    $0x3,%al
41feb9:	3c 02                	cmp    $0x2,%al
41febb:	75 49                	jne    0x41ff06
41febd:	f6 c2 c0             	test   $0xc0,%dl
41fec0:	74 44                	je     0x41ff06
41fec2:	8b 39                	mov    (%ecx),%edi
41fec4:	8b 59 04             	mov    0x4(%ecx),%ebx
41fec7:	2b fb                	sub    %ebx,%edi
41fec9:	89 19                	mov    %ebx,(%ecx)
41fecb:	83 61 08 00          	andl   $0x0,0x8(%ecx)
41fecf:	85 ff                	test   %edi,%edi
41fed1:	7e 33                	jle    0x41ff06
41fed3:	51                   	push   %ecx
41fed4:	e8 67 d9 ff ff       	call   0x41d840
41fed9:	ff 75 0c             	push   0xc(%ebp)
41fedc:	57                   	push   %edi
41fedd:	53                   	push   %ebx
41fede:	50                   	push   %eax
41fedf:	e8 b8 99 00 00       	call   0x42989c
41fee4:	83 c4 14             	add    $0x14,%esp
41fee7:	3b f8                	cmp    %eax,%edi
41fee9:	74 0b                	je     0x41fef6
41feeb:	6a 10                	push   $0x10
41feed:	58                   	pop    %eax
41feee:	f0 09 06             	lock or %eax,(%esi)
41fef1:	83 c8 ff             	or     $0xffffffff,%eax
41fef4:	eb 12                	jmp    0x41ff08
41fef6:	8b 06                	mov    (%esi),%eax
41fef8:	90                   	nop
41fef9:	c1 e8 02             	shr    $0x2,%eax
41fefc:	a8 01                	test   $0x1,%al
41fefe:	74 06                	je     0x41ff06
41ff00:	6a fd                	push   $0xfffffffd
41ff02:	58                   	pop    %eax
41ff03:	f0 21 06             	lock and %eax,(%esi)
41ff06:	33 c0                	xor    %eax,%eax
41ff08:	5f                   	pop    %edi
41ff09:	5e                   	pop    %esi
41ff0a:	5b                   	pop    %ebx
41ff0b:	5d                   	pop    %ebp
41ff0c:	c3                   	ret
41ff0d:	8b ff                	mov    %edi,%edi
41ff0f:	55                   	push   %ebp
41ff10:	8b ec                	mov    %esp,%ebp
41ff12:	83 ec 28             	sub    $0x28,%esp
41ff15:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41ff18:	56                   	push   %esi
41ff19:	57                   	push   %edi
41ff1a:	33 f6                	xor    %esi,%esi
41ff1c:	56                   	push   %esi
41ff1d:	e8 c0 d1 fe ff       	call   0x40d0e2
41ff22:	8b 7d 08             	mov    0x8(%ebp),%edi
41ff25:	85 ff                	test   %edi,%edi
41ff27:	75 0b                	jne    0x41ff34
41ff29:	56                   	push   %esi
41ff2a:	e8 d4 fe ff ff       	call   0x41fe03
41ff2f:	59                   	pop    %ecx
41ff30:	8b f0                	mov    %eax,%esi
41ff32:	eb 30                	jmp    0x41ff64
41ff34:	8d 45 d8             	lea    -0x28(%ebp),%eax
41ff37:	50                   	push   %eax
41ff38:	57                   	push   %edi
41ff39:	e8 66 ff ff ff       	call   0x41fea4
41ff3e:	59                   	pop    %ecx
41ff3f:	59                   	pop    %ecx
41ff40:	85 c0                	test   %eax,%eax
41ff42:	75 1d                	jne    0x41ff61
41ff44:	8b 47 0c             	mov    0xc(%edi),%eax