401dd4:	e8 8f fd ff ff       	call   0x401b68
401dd9:	89 f8                	mov    %edi,%eax
401ddb:	5f                   	pop    %edi
401ddc:	5e                   	pop    %esi
401ddd:	5b                   	pop    %ebx
401dde:	c3                   	ret
401ddf:	90                   	nop
401de0:	f6 c1 05             	test   $0x5,%cl
401de3:	0f 85 4b 02 00 00    	jne    0x402034
401de9:	89 cb                	mov    %ecx,%ebx
401deb:	83 e1 f0             	and    $0xfffffff0,%ecx
401dee:	57                   	push   %edi
401def:	8d 3c 01             	lea    (%ecx,%eax,1),%edi
401df2:	83 e9 04             	sub    $0x4,%ecx
401df5:	83 e3 0f             	and    $0xf,%ebx
401df8:	39 ca                	cmp    %ecx,%edx
401dfa:	55                   	push   %ebp
401dfb:	0f 87 ff 00 00 00    	ja     0x401f00
401e01:	8d 2c 12             	lea    (%edx,%edx,1),%ebp
401e04:	39 cd                	cmp    %ecx,%ebp
401e06:	72 08                	jb     0x401e10
401e08:	5d                   	pop    %ebp
401e09:	5f                   	pop    %edi
401e0a:	5e                   	pop    %esi
401e0b:	5b                   	pop    %ebx
401e0c:	c3                   	ret
401e0d:	90                   	nop
401e0e:	90                   	nop
401e0f:	90                   	nop
401e10:	81 fa 2c 0b 00 00    	cmp    $0xb2c,%edx
401e16:	73 11                	jae    0x401e29
401e18:	81 fd 2c 0b 00 00    	cmp    $0xb2c,%ebp
401e1e:	0f 82 b4 00 00 00    	jb     0x401ed8
401e24:	ba 2c 0b 00 00       	mov    $0xb2c,%edx
401e29:	8d aa d3 00 00 00    	lea    0xd3(%edx),%ebp
401e2f:	81 e5 00 ff ff ff    	and    $0xffffff00,%ebp
401e35:	83 c5 30             	add    $0x30,%ebp
401e38:	83 c1 04             	add    $0x4,%ecx
401e3b:	29 e9                	sub    %ebp,%ecx
401e3d:	80 3d 4d e0 46 00 00 	cmpb   $0x0,0x46e04d
401e44:	74 3a                	je     0x401e80
401e46:	b8 00 01 00 00       	mov    $0x100,%eax
401e4b:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401e52:	00
401e53:	74 23                	je     0x401e78
401e55:	51                   	push   %ecx
401e56:	6a 00                	push   $0x0
401e58:	e8 43 f5 ff ff       	call   0x4013a0
401e5d:	59                   	pop    %ecx
401e5e:	b8 00 01 00 00       	mov    $0x100,%eax
401e63:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401e6a:	00
401e6b:	74 0b                	je     0x401e78
401e6d:	51                   	push   %ecx
401e6e:	6a 0a                	push   $0xa
401e70:	e8 2b f5 ff ff       	call   0x4013a0
401e75:	59                   	pop    %ecx
401e76:	eb ce                	jmp    0x401e46
401e78:	bb 0f 00 00 00       	mov    $0xf,%ebx
401e7d:	23 5e fc             	and    -0x4(%esi),%ebx
401e80:	09 eb                	or     %ebp,%ebx
401e82:	89 5e fc             	mov    %ebx,-0x4(%esi)
401e85:	89 cb                	mov    %ecx,%ebx
401e87:	8b 57 fc             	mov    -0x4(%edi),%edx
401e8a:	f6 c2 01             	test   $0x1,%dl
401e8d:	75 09                	jne    0x401e98
401e8f:	83 ca 08             	or     $0x8,%edx
401e92:	89 57 fc             	mov    %edx,-0x4(%edi)
401e95:	eb 17                	jmp    0x401eae
401e97:	90                   	nop
401e98:	89 f8                	mov    %edi,%eax
401e9a:	83 e2 f0             	and    $0xfffffff0,%edx
401e9d:	01 d3                	add    %edx,%ebx
401e9f:	01 d7                	add    %edx,%edi
401ea1:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401ea7:	72 05                	jb     0x401eae
401ea9:	e8 ee f6 ff ff       	call   0x40159c
401eae:	89 5f f8             	mov    %ebx,-0x8(%edi)
401eb1:	8d 43 03             	lea    0x3(%ebx),%eax
401eb4:	89 44 2e fc          	mov    %eax,-0x4(%esi,%ebp,1)
401eb8:	81 fb 30 0b 00 00    	cmp    $0xb30,%ebx
401ebe:	72 0a                	jb     0x401eca
401ec0:	8d 04 2e             	lea    (%esi,%ebp,1),%eax
401ec3:	89 da                	mov    %ebx,%edx
401ec5:	e8 12 f7 ff ff       	call   0x4015dc
401eca:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401ed1:	89 f0                	mov    %esi,%eax
401ed3:	5d                   	pop    %ebp
401ed4:	5f                   	pop    %edi
401ed5:	5e                   	pop    %esi
401ed6:	5b                   	pop    %ebx
401ed7:	c3                   	ret
401ed8:	89 d7                	mov    %edx,%edi
401eda:	89 d0                	mov    %edx,%eax
401edc:	e8 1f f9 ff ff       	call   0x401800
401ee1:	85 c0                	test   %eax,%eax
401ee3:	74 16                	je     0x401efb
401ee5:	89 c5                	mov    %eax,%ebp
401ee7:	89 c2                	mov    %eax,%edx
401ee9:	89 f0                	mov    %esi,%eax
401eeb:	89 f9                	mov    %edi,%ecx
401eed:	e8 8e f6 ff ff       	call   0x401580
401ef2:	89 f0                	mov    %esi,%eax
401ef4:	e8 6f fc ff ff       	call   0x401b68
401ef9:	89 e8                	mov    %ebp,%eax
401efb:	5d                   	pop    %ebp
401efc:	5f                   	pop    %edi
401efd:	5e                   	pop    %esi
401efe:	5b                   	pop    %ebx
401eff:	c3                   	ret
401f00:	8b 47 fc             	mov    -0x4(%edi),%eax
401f03:	a8 01                	test   $0x1,%al
401f05:	0f 84 e1 00 00 00    	je     0x401fec
401f0b:	83 e0 f0             	and    $0xfffffff0,%eax
401f0e:	8d 2c 01             	lea    (%ecx,%eax,1),%ebp
401f11:	39 ea                	cmp    %ebp,%edx
401f13:	0f 87 d3 00 00 00    	ja     0x401fec
401f19:	80 3d 4d e0 46 00 00 	cmpb   $0x0,0x46e04d
401f20:	74 4f                	je     0x401f71
401f22:	b8 00 01 00 00       	mov    $0x100,%eax
401f27:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401f2e:	00
401f2f:	74 27                	je     0x401f58
401f31:	51                   	push   %ecx
401f32:	52                   	push   %edx
401f33:	6a 00                	push   $0x0
401f35:	e8 66 f4 ff ff       	call   0x4013a0
401f3a:	5a                   	pop    %edx
401f3b:	59                   	pop    %ecx
401f3c:	b8 00 01 00 00       	mov    $0x100,%eax
401f41:	f0 0f b0 25 18 e7 46 	lock cmpxchg %ah,0x46e718
401f48:	00
401f49:	74 0d                	je     0x401f58
401f4b:	51                   	push   %ecx
401f4c:	52                   	push   %edx
401f4d:	6a 0a                	push   $0xa
401f4f:	e8 4c f4 ff ff       	call   0x4013a0
401f54:	5a                   	pop    %edx
401f55:	59                   	pop    %ecx
401f56:	eb ca                	jmp    0x401f22
401f58:	bb 0f 00 00 00       	mov    $0xf,%ebx
401f5d:	23 5e fc             	and    -0x4(%esi),%ebx
401f60:	8b 47 fc             	mov    -0x4(%edi),%eax
401f63:	a8 01                	test   $0x1,%al
401f65:	74 7e                	je     0x401fe5
401f67:	83 e0 f0             	and    $0xfffffff0,%eax
401f6a:	8d 2c 01             	lea    (%ecx,%eax,1),%ebp
401f6d:	39 ea                	cmp    %ebp,%edx
401f6f:	77 74                	ja     0x401fe5
401f71:	3d 30 0b 00 00       	cmp    $0xb30,%eax
401f76:	72 0b                	jb     0x401f83
401f78:	89 f8                	mov    %edi,%eax
401f7a:	51                   	push   %ecx
401f7b:	52                   	push   %edx
401f7c:	e8 1b f6 ff ff       	call   0x40159c
401f81:	5a                   	pop    %edx
401f82:	59                   	pop    %ecx
401f83:	89 c8                	mov    %ecx,%eax
401f85:	c1 e8 02             	shr    $0x2,%eax
401f88:	01 c8                	add    %ecx,%eax
401f8a:	31 ff                	xor    %edi,%edi
401f8c:	29 d0                	sub    %edx,%eax
401f8e:	83 d7 ff             	adc    $0xffffffff,%edi
401f91:	21 f8                	and    %edi,%eax
401f93:	8d 84 02 d3 00 00 00 	lea    0xd3(%edx,%eax,1),%eax
401f9a:	25 00 ff ff ff       	and    $0xffffff00,%eax
401f9f:	83 c0 30             	add    $0x30,%eax
401fa2:	8d 55 04             	lea    0x4(%ebp),%edx
401fa5:	29 c2                	sub    %eax,%edx
401fa7:	77 0b                	ja     0x401fb4
401fa9:	83 24 2e f7          	andl   $0xfffffff7,(%esi,%ebp,1)
401fad:	83 c5 04             	add    $0x4,%ebp
401fb0:	eb 1e                	jmp    0x401fd0
401fb2:	90                   	nop
401fb3:	90                   	nop
401fb4:	89 54 2e fc          	mov    %edx,-0x4(%esi,%ebp,1)
401fb8:	8d 7a 03             	lea    0x3(%edx),%edi
401fbb:	89 7c 30 fc          	mov    %edi,-0x4(%eax,%esi,1)
401fbf:	89 c5                	mov    %eax,%ebp
401fc1:	81 fa 30 0b 00 00    	cmp    $0xb30,%edx
401fc7:	72 07                	jb     0x401fd0
401fc9:	01 f0                	add    %esi,%eax
401fcb:	e8 0c f6 ff ff       	call   0x4015dc
401fd0:	09 dd                	or     %ebx,%ebp
401fd2:	89 6e fc             	mov    %ebp,-0x4(%esi)
401fd5:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401fdc:	89 f0                	mov    %esi,%eax
401fde:	5d                   	pop    %ebp
401fdf:	5f                   	pop    %edi
401fe0:	5e                   	pop    %esi
401fe1:	5b                   	pop    %ebx
401fe2:	c3                   	ret
401fe3:	90                   	nop
401fe4:	90                   	nop
401fe5:	c6 05 18 e7 46 00 00 	movb   $0x0,0x46e718
401fec:	89 c8                	mov    %ecx,%eax
401fee:	c1 e8 02             	shr    $0x2,%eax
401ff1:	01 c8                	add    %ecx,%eax
401ff3:	31 ff                	xor    %edi,%edi
401ff5:	29 d0                	sub    %edx,%eax
401ff7:	83 d7 ff             	adc    $0xffffffff,%edi
401ffa:	21 f8                	and    %edi,%eax
401ffc:	01 d0                	add    %edx,%eax
401ffe:	89 c5                	mov    %eax,%ebp
402000:	89 cf                	mov    %ecx,%edi
402002:	52                   	push   %edx
402003:	e8 f8 f7 ff ff       	call   0x401800
402008:	5a                   	pop    %edx
402009:	85 c0                	test   %eax,%eax
40200b:	74 d1                	je     0x401fde
40200d:	81 fd 2c 0a 04 00    	cmp    $0x40a2c,%ebp
402013:	76 03                	jbe    0x402018
402015:	89 50 f8             	mov    %edx,-0x8(%eax)
402018:	89 c5                	mov    %eax,%ebp
40201a:	89 c2                	mov    %eax,%edx
40201c:	89 f0                	mov    %esi,%eax
40201e:	89 f9                	mov    %edi,%ecx
402020:	e8 2b f5 ff ff       	call   0x401550
402025:	89 f0                	mov    %esi,%eax
402027:	e8 3c fb ff ff       	call   0x401b68
40202c:	89 e8                	mov    %ebp,%eax
40202e:	5d                   	pop    %ebp
40202f:	5f                   	pop    %edi
402030:	5e                   	pop    %esi
402031:	5b                   	pop    %ebx
402032:	c3                   	ret
402033:	90                   	nop
402034:	f6 c1 03             	test   $0x3,%cl
402037:	0f 85 8b 00 00 00    	jne    0x4020c8
40203d:	83 e9 18             	sub    $0x18,%ecx
402040:	39 ca                	cmp    %ecx,%edx
402042:	76 44                	jbe    0x402088
402044:	89 c8                	mov    %ecx,%eax
402046:	c1 e9 02             	shr    $0x2,%ecx
402049:	01 c1                	add    %eax,%ecx
40204b:	31 c0                	xor    %eax,%eax
40204d:	29 d1                	sub    %edx,%ecx
40204f:	83 d0 ff             	adc    $0xffffffff,%eax
402052:	21 c8                	and    %ecx,%eax
402054:	01 d0                	add    %edx,%eax
402056:	89 c3                	mov    %eax,%ebx
402058:	52                   	push   %edx
402059:	e8 a2 f7 ff ff       	call   0x401800
40205e:	5a                   	pop    %edx
40205f:	85 c0                	test   %eax,%eax
402061:	74 22                	je     0x402085
402063:	81 fb 2c 0a 04 00    	cmp    $0x40a2c,%ebx
402069:	76 03                	jbe    0x40206e
40206b:	89 50 f8             	mov    %edx,-0x8(%eax)
40206e:	8b 4e f8             	mov    -0x8(%esi),%ecx
402071:	89 c3                	mov    %eax,%ebx
402073:	89 c2                	mov    %eax,%edx
402075:	89 f0                	mov    %esi,%eax
402077:	e8 d4 f4 ff ff       	call   0x401550
40207c:	89 f0                	mov    %esi,%eax
40207e:	e8 e5 fa ff ff       	call   0x401b68
402083:	89 d8                	mov    %ebx,%eax
402085:	5e                   	pop    %esi
402086:	5b                   	pop    %ebx
402087:	c3                   	ret
402088:	d1 e9                	shr    $1,%ecx
40208a:	39 ca                	cmp    %ecx,%edx
40208c:	72 06                	jb     0x402094
40208e:	89 50 f8             	mov    %edx,-0x8(%eax)
402091:	5e                   	pop    %esi
402092:	5b                   	pop    %ebx
402093:	c3                   	ret
402094:	89 d3                	mov    %edx,%ebx
402096:	89 d0                	mov    %edx,%eax
402098:	e8 63 f7 ff ff       	call   0x401800
40209d:	85 c0                	test   %eax,%eax
40209f:	74 e4                	je     0x402085
4020a1:	81 fb 2c 0a 04 00    	cmp    $0x40a2c,%ebx
4020a7:	76 03                	jbe    0x4020ac
4020a9:	89 58 f8             	mov    %ebx,-0x8(%eax)
4020ac:	89 d9                	mov    %ebx,%ecx
4020ae:	89 c3                	mov    %eax,%ebx
4020b0:	89 c2                	mov    %eax,%edx
4020b2:	89 f0                	mov    %esi,%eax
4020b4:	e8 c7 f4 ff ff       	call   0x401580
4020b9:	89 f0                	mov    %esi,%eax
4020bb:	e8 a8 fa ff ff       	call   0x401b68
4020c0:	89 d8                	mov    %ebx,%eax
4020c2:	5e                   	pop    %esi
4020c3:	5b                   	pop    %ebx
4020c4:	c3                   	ret
4020c5:	90                   	nop
4020c6:	90                   	nop
4020c7:	90                   	nop
4020c8:	31 c0                	xor    %eax,%eax
4020ca:	5e                   	pop    %esi
4020cb:	5b                   	pop    %ebx
4020cc:	c3                   	ret
4020cd:	8d 40 00             	lea    0x0(%eax),%eax
4020d0:	53                   	push   %ebx
4020d1:	8d 58 ff             	lea    -0x1(%eax),%ebx
4020d4:	83 e3 fc             	and    $0xfffffffc,%ebx
4020d7:	e8 24 f7 ff ff       	call   0x401800
4020dc:	83 f8 01             	cmp    $0x1,%eax
4020df:	19 c9                	sbb    %ecx,%ecx
4020e1:	8d 14 03             	lea    (%ebx,%eax,1),%edx
4020e4:	09 cb                	or     %ecx,%ebx
4020e6:	81 fb 2c 0a 04 00    	cmp    $0x40a2c,%ebx
4020ec:	73 10                	jae    0x4020fe
4020ee:	f7 db                	neg    %ebx
4020f0:	d9 ee                	fldz
4020f2:	dd 14 13             	fstl   (%ebx,%edx,1)
4020f5:	83 c3 08             	add    $0x8,%ebx
4020f8:	78 f8                	js     0x4020f2
4020fa:	89 0a                	mov    %ecx,(%edx)
4020fc:	dd c0                	ffree  %st(0)
4020fe:	5b                   	pop    %ebx
4020ff:	c3                   	ret
402100:	8b c8                	mov    %eax,%ecx
402102:	8b d1                	mov    %ecx,%edx
402104:	83 ea 04             	sub    $0x4,%edx
402107:	8b 12                	mov    (%edx),%edx
402109:	83 e2 f0             	and    $0xfffffff0,%edx
40210c:	03 d1                	add    %ecx,%edx
40210e:	8b c2                	mov    %edx,%eax
402110:	8b d0                	mov    %eax,%edx
402112:	83 ea 04             	sub    $0x4,%edx
402115:	8b 12                	mov    (%edx),%edx
402117:	83 e2 f0             	and    $0xfffffff0,%edx
40211a:	85 d2                	test   %edx,%edx
40211c:	75 02                	jne    0x402120
40211e:	33 c0                	xor    %eax,%eax
402120:	c3                   	ret
402121:	8d 40 00             	lea    0x0(%eax),%eax
402124:	83 3d 20 e7 46 00 00 	cmpl   $0x0,0x46e720
40212b:	74 1a                	je     0x402147
40212d:	8b 15 1c e7 46 00    	mov    0x46e71c,%edx
402133:	3b d0                	cmp    %eax,%edx
402135:	72 10                	jb     0x402147
402137:	8b d0                	mov    %eax,%edx
402139:	81 c2 00 00 14 00    	add    $0x140000,%edx
40213f:	3b 15 1c e7 46 00    	cmp    0x46e71c,%edx
402145:	73 04                	jae    0x40214b
402147:	83 c0 10             	add    $0x10,%eax
40214a:	c3                   	ret
40214b:	81 3d 20 e7 46 00 f0 	cmpl   $0x13fff0,0x46e720
402152:	ff 13 00
402155:	74 07                	je     0x40215e
402157:	a1 1c e7 46 00       	mov    0x46e71c,%eax
40215c:	eb 02                	jmp    0x402160
40215e:	33 c0                	xor    %eax,%eax
402160:	c3                   	ret
402161:	8d 40 00             	lea    0x0(%eax),%eax
402164:	53                   	push   %ebx
402165:	56                   	push   %esi