41fa1e:	55                   	push   %ebp
41fa1f:	8b ec                	mov    %esp,%ebp
41fa21:	5d                   	pop    %ebp
41fa22:	e9 5e fe ff ff       	jmp    0x41f885
41fa27:	6a 0c                	push   $0xc
41fa29:	68 e0 ae 43 00       	push   $0x43aee0
41fa2e:	e8 9d aa fe ff       	call   0x40a4d0
41fa33:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
41fa37:	8b 45 08             	mov    0x8(%ebp),%eax
41fa3a:	ff 30                	push   (%eax)
41fa3c:	e8 df 0e 00 00       	call   0x420920
41fa41:	59                   	pop    %ecx
41fa42:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41fa46:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41fa49:	8b 01                	mov    (%ecx),%eax
41fa4b:	8b 38                	mov    (%eax),%edi
41fa4d:	8b 71 04             	mov    0x4(%ecx),%esi
41fa50:	8b d7                	mov    %edi,%edx
41fa52:	c1 fa 06             	sar    $0x6,%edx
41fa55:	8b c7                	mov    %edi,%eax
41fa57:	83 e0 3f             	and    $0x3f,%eax
41fa5a:	6b c8 38             	imul   $0x38,%eax,%ecx
41fa5d:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
41fa64:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
41fa69:	74 0d                	je     0x41fa78
41fa6b:	56                   	push   %esi
41fa6c:	57                   	push   %edi
41fa6d:	e8 19 01 00 00       	call   0x41fb8b
41fa72:	59                   	pop    %ecx
41fa73:	59                   	pop    %ecx
41fa74:	8b f0                	mov    %eax,%esi
41fa76:	eb 0e                	jmp    0x41fa86
41fa78:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
41fa7c:	c7 46 18 09 00 00 00 	movl   $0x9,0x18(%esi)
41fa83:	83 ce ff             	or     $0xffffffff,%esi
41fa86:	89 75 e4             	mov    %esi,-0x1c(%ebp)
41fa89:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
41fa90:	e8 17 00 00 00       	call   0x41faac
41fa95:	8b c6                	mov    %esi,%eax
41fa97:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41fa9a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
41faa1:	59                   	pop    %ecx
41faa2:	5f                   	pop    %edi
41faa3:	5e                   	pop    %esi
41faa4:	5b                   	pop    %ebx
41faa5:	c9                   	leave
41faa6:	c2 0c 00             	ret    $0xc
41faa9:	8b 75 e4             	mov    -0x1c(%ebp),%esi
41faac:	8b 45 10             	mov    0x10(%ebp),%eax
41faaf:	ff 30                	push   (%eax)
41fab1:	e8 1f 0f 00 00       	call   0x4209d5
41fab6:	59                   	pop    %ecx
41fab7:	c3                   	ret
41fab8:	8b ff                	mov    %edi,%edi
41faba:	55                   	push   %ebp
41fabb:	8b ec                	mov    %esp,%ebp
41fabd:	83 ec 14             	sub    $0x14,%esp
41fac0:	56                   	push   %esi
41fac1:	8b 75 08             	mov    0x8(%ebp),%esi
41fac4:	83 fe fe             	cmp    $0xfffffffe,%esi
41fac7:	75 18                	jne    0x41fae1
41fac9:	8b 45 0c             	mov    0xc(%ebp),%eax
41facc:	83 60 20 00          	andl   $0x0,0x20(%eax)
41fad0:	c6 40 24 01          	movb   $0x1,0x24(%eax)
41fad4:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41fad8:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
41fadf:	eb 74                	jmp    0x41fb55
41fae1:	85 f6                	test   %esi,%esi
41fae3:	78 4b                	js     0x41fb30
41fae5:	3b 35 00 fa 43 00    	cmp    0x43fa00,%esi
41faeb:	73 43                	jae    0x41fb30
41faed:	8b c6                	mov    %esi,%eax
41faef:	8b d6                	mov    %esi,%edx
41faf1:	83 e0 3f             	and    $0x3f,%eax
41faf4:	c1 fa 06             	sar    $0x6,%edx
41faf7:	6b c8 38             	imul   $0x38,%eax,%ecx
41fafa:	8b 04 95 00 f8 43 00 	mov    0x43f800(,%edx,4),%eax
41fb01:	f6 44 08 28 01       	testb  $0x1,0x28(%eax,%ecx,1)
41fb06:	74 28                	je     0x41fb30
41fb08:	8d 45 08             	lea    0x8(%ebp),%eax
41fb0b:	89 75 f8             	mov    %esi,-0x8(%ebp)
41fb0e:	89 45 ec             	mov    %eax,-0x14(%ebp)
41fb11:	8d 4d ff             	lea    -0x1(%ebp),%ecx
41fb14:	8b 45 0c             	mov    0xc(%ebp),%eax
41fb17:	89 45 f0             	mov    %eax,-0x10(%ebp)
41fb1a:	8d 45 f8             	lea    -0x8(%ebp),%eax
41fb1d:	50                   	push   %eax
41fb1e:	8d 45 ec             	lea    -0x14(%ebp),%eax
41fb21:	89 75 f4             	mov    %esi,-0xc(%ebp)
41fb24:	50                   	push   %eax
41fb25:	8d 45 f4             	lea    -0xc(%ebp),%eax
41fb28:	50                   	push   %eax
41fb29:	e8 f9 fe ff ff       	call   0x41fa27
41fb2e:	eb 28                	jmp    0x41fb58
41fb30:	8b 45 0c             	mov    0xc(%ebp),%eax
41fb33:	33 c9                	xor    %ecx,%ecx
41fb35:	50                   	push   %eax
41fb36:	51                   	push   %ecx
41fb37:	51                   	push   %ecx
41fb38:	51                   	push   %ecx
41fb39:	c6 40 24 01          	movb   $0x1,0x24(%eax)
41fb3d:	51                   	push   %ecx
41fb3e:	89 48 20             	mov    %ecx,0x20(%eax)
41fb41:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
41fb45:	51                   	push   %ecx
41fb46:	c7 40 18 09 00 00 00 	movl   $0x9,0x18(%eax)
41fb4d:	e8 1f d8 fe ff       	call   0x40d371
41fb52:	83 c4 18             	add    $0x18,%esp
41fb55:	83 c8 ff             	or     $0xffffffff,%eax
41fb58:	5e                   	pop    %esi
41fb59:	c9                   	leave
41fb5a:	c3                   	ret
41fb5b:	8b ff                	mov    %edi,%edi
41fb5d:	55                   	push   %ebp
41fb5e:	8b ec                	mov    %esp,%ebp
41fb60:	83 ec 28             	sub    $0x28,%esp
41fb63:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41fb66:	56                   	push   %esi
41fb67:	6a 00                	push   $0x0
41fb69:	e8 74 d5 fe ff       	call   0x40d0e2
41fb6e:	8d 45 d8             	lea    -0x28(%ebp),%eax
41fb71:	50                   	push   %eax
41fb72:	ff 75 08             	push   0x8(%ebp)
41fb75:	e8 11 00 00 00       	call   0x41fb8b
41fb7a:	59                   	pop    %ecx
41fb7b:	59                   	pop    %ecx
41fb7c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
41fb7f:	8b f0                	mov    %eax,%esi
41fb81:	e8 a4 d5 fe ff       	call   0x40d12a
41fb86:	8b c6                	mov    %esi,%eax
41fb88:	5e                   	pop    %esi
41fb89:	c9                   	leave
41fb8a:	c3                   	ret
41fb8b:	8b ff                	mov    %edi,%edi
41fb8d:	55                   	push   %ebp
41fb8e:	8b ec                	mov    %esp,%ebp
41fb90:	56                   	push   %esi
41fb91:	57                   	push   %edi
41fb92:	8b 7d 08             	mov    0x8(%ebp),%edi
41fb95:	57                   	push   %edi
41fb96:	e8 01 10 00 00       	call   0x420b9c
41fb9b:	59                   	pop    %ecx
41fb9c:	83 f8 ff             	cmp    $0xffffffff,%eax
41fb9f:	75 04                	jne    0x41fba5
41fba1:	33 f6                	xor    %esi,%esi
41fba3:	eb 4e                	jmp    0x41fbf3
41fba5:	a1 00 f8 43 00       	mov    0x43f800,%eax
41fbaa:	83 ff 01             	cmp    $0x1,%edi
41fbad:	75 09                	jne    0x41fbb8
41fbaf:	f6 80 98 00 00 00 01 	testb  $0x1,0x98(%eax)
41fbb6:	75 0b                	jne    0x41fbc3
41fbb8:	83 ff 02             	cmp    $0x2,%edi
41fbbb:	75 1c                	jne    0x41fbd9
41fbbd:	f6 40 60 01          	testb  $0x1,0x60(%eax)
41fbc1:	74 16                	je     0x41fbd9
41fbc3:	6a 02                	push   $0x2
41fbc5:	e8 d2 0f 00 00       	call   0x420b9c
41fbca:	6a 01                	push   $0x1
41fbcc:	8b f0                	mov    %eax,%esi
41fbce:	e8 c9 0f 00 00       	call   0x420b9c
41fbd3:	59                   	pop    %ecx
41fbd4:	59                   	pop    %ecx
41fbd5:	3b c6                	cmp    %esi,%eax
41fbd7:	74 c8                	je     0x41fba1
41fbd9:	57                   	push   %edi
41fbda:	e8 bd 0f 00 00       	call   0x420b9c
41fbdf:	59                   	pop    %ecx
41fbe0:	50                   	push   %eax
41fbe1:	ff 15 20 10 43 00    	call   *0x431020
41fbe7:	85 c0                	test   %eax,%eax
41fbe9:	75 b6                	jne    0x41fba1
41fbeb:	ff 15 08 11 43 00    	call   *0x431108
41fbf1:	8b f0                	mov    %eax,%esi
41fbf3:	57                   	push   %edi
41fbf4:	e8 12 0f 00 00       	call   0x420b0b
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