46e09b:	25 ff f7 ff ff       	and    $0xfffff7ff,%eax
46e0a0:	0d 00 04 00 00       	or     $0x400,%eax
46e0a5:	eb ee                	jmp    0x46e095
46e0a7:	21 16                	and    %edx,(%esi)
46e0a9:	8b 01                	mov    (%ecx),%eax
46e0ab:	c1 e8 02             	shr    $0x2,%eax
46e0ae:	83 e0 07             	and    $0x7,%eax
46e0b1:	83 e8 00             	sub    $0x0,%eax
46e0b4:	74 19                	je     0x46e0cf
46e0b6:	83 e8 01             	sub    $0x1,%eax
46e0b9:	74 09                	je     0x46e0c4
46e0bb:	83 e8 01             	sub    $0x1,%eax
46e0be:	75 1a                	jne    0x46e0da
46e0c0:	21 16                	and    %edx,(%esi)
46e0c2:	eb 16                	jmp    0x46e0da
46e0c4:	8b 06                	mov    (%esi),%eax
46e0c6:	23 c2                	and    %edx,%eax
46e0c8:	0d 00 02 00 00       	or     $0x200,%eax
46e0cd:	eb 09                	jmp    0x46e0d8
46e0cf:	8b 06                	mov    (%esi),%eax
46e0d1:	23 c2                	and    %edx,%eax
46e0d3:	0d 00 03 00 00       	or     $0x300,%eax
46e0d8:	89 06                	mov    %eax,(%esi)
46e0da:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
46e0de:	5e                   	pop    %esi
46e0df:	74 07                	je     0x46e0e8
46e0e1:	d9 41 50             	flds   0x50(%ecx)
46e0e4:	d9 1b                	fstps  (%ebx)
46e0e6:	eb 05                	jmp    0x46e0ed
46e0e8:	dd 41 50             	fldl   0x50(%ecx)
46e0eb:	dd 1b                	fstpl  (%ebx)
46e0ed:	5f                   	pop    %edi
46e0ee:	5b                   	pop    %ebx
46e0ef:	5d                   	pop    %ebp
46e0f0:	c3                   	ret
46e0f1:	8b ff                	mov    %edi,%edi
46e0f3:	55                   	push   %ebp
46e0f4:	8b ec                	mov    %esp,%ebp
46e0f6:	6a 01                	push   $0x1
46e0f8:	ff 75 1c             	push   0x1c(%ebp)
46e0fb:	ff 75 18             	push   0x18(%ebp)
46e0fe:	ff 75 14             	push   0x14(%ebp)
46e101:	ff 75 10             	push   0x10(%ebp)
46e104:	ff 75 0c             	push   0xc(%ebp)
46e107:	ff 75 08             	push   0x8(%ebp)
46e10a:	e8 f1 fc ff ff       	call   0x46de00
46e10f:	83 c4 1c             	add    $0x1c,%esp
46e112:	5d                   	pop    %ebp
46e113:	c3                   	ret
46e114:	8b ff                	mov    %edi,%edi
46e116:	55                   	push   %ebp
46e117:	8b ec                	mov    %esp,%ebp
46e119:	8b 45 08             	mov    0x8(%ebp),%eax
46e11c:	83 f8 01             	cmp    $0x1,%eax
46e11f:	74 15                	je     0x46e136
46e121:	83 c0 fe             	add    $0xfffffffe,%eax
46e124:	83 f8 01             	cmp    $0x1,%eax
46e127:	77 18                	ja     0x46e141
46e129:	e8 01 ed fd ff       	call   0x44ce2f
46e12e:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
46e134:	5d                   	pop    %ebp
46e135:	c3                   	ret
46e136:	e8 f4 ec fd ff       	call   0x44ce2f
46e13b:	c7 00 21 00 00 00    	movl   $0x21,(%eax)
46e141:	5d                   	pop    %ebp
46e142:	c3                   	ret
46e143:	8b ff                	mov    %edi,%edi
46e145:	55                   	push   %ebp
46e146:	8b ec                	mov    %esp,%ebp
46e148:	8b 55 0c             	mov    0xc(%ebp),%edx
46e14b:	83 ec 20             	sub    $0x20,%esp
46e14e:	33 c9                	xor    %ecx,%ecx
46e150:	8b c1                	mov    %ecx,%eax
46e152:	39 14 c5 a0 d5 49 00 	cmp    %edx,0x49d5a0(,%eax,8)
46e159:	74 08                	je     0x46e163
46e15b:	40                   	inc    %eax
46e15c:	83 f8 1d             	cmp    $0x1d,%eax
46e15f:	7c f1                	jl     0x46e152
46e161:	eb 07                	jmp    0x46e16a
46e163:	8b 0c c5 a4 d5 49 00 	mov    0x49d5a4(,%eax,8),%ecx
46e16a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
46e16d:	85 c9                	test   %ecx,%ecx
46e16f:	74 55                	je     0x46e1c6
46e171:	8b 45 10             	mov    0x10(%ebp),%eax
46e174:	89 45 e8             	mov    %eax,-0x18(%ebp)
46e177:	8b 45 14             	mov    0x14(%ebp),%eax
46e17a:	89 45 ec             	mov    %eax,-0x14(%ebp)
46e17d:	8b 45 18             	mov    0x18(%ebp),%eax
46e180:	89 45 f0             	mov    %eax,-0x10(%ebp)
46e183:	8b 45 1c             	mov    0x1c(%ebp),%eax
46e186:	56                   	push   %esi
46e187:	8b 75 08             	mov    0x8(%ebp),%esi
46e18a:	89 45 f4             	mov    %eax,-0xc(%ebp)
46e18d:	8b 45 20             	mov    0x20(%ebp),%eax
46e190:	68 ff ff 00 00       	push   $0xffff
46e195:	ff 75 28             	push   0x28(%ebp)
46e198:	89 45 f8             	mov    %eax,-0x8(%ebp)
46e19b:	8b 45 24             	mov    0x24(%ebp),%eax
46e19e:	89 75 e0             	mov    %esi,-0x20(%ebp)
46e1a1:	89 45 fc             	mov    %eax,-0x4(%ebp)
46e1a4:	e8 e4 62 00 00       	call   0x47448d
46e1a9:	8d 45 e0             	lea    -0x20(%ebp),%eax
46e1ac:	50                   	push   %eax
46e1ad:	e8 9d 02 00 00       	call   0x46e44f
46e1b2:	83 c4 0c             	add    $0xc,%esp
46e1b5:	85 c0                	test   %eax,%eax
46e1b7:	75 07                	jne    0x46e1c0
46e1b9:	56                   	push   %esi
46e1ba:	e8 55 ff ff ff       	call   0x46e114
46e1bf:	59                   	pop    %ecx
46e1c0:	dd 45 f8             	fldl   -0x8(%ebp)
46e1c3:	5e                   	pop    %esi
46e1c4:	eb 1b                	jmp    0x46e1e1
46e1c6:	68 ff ff 00 00       	push   $0xffff
46e1cb:	ff 75 28             	push   0x28(%ebp)
46e1ce:	e8 ba 62 00 00       	call   0x47448d
46e1d3:	ff 75 08             	push   0x8(%ebp)
46e1d6:	e8 39 ff ff ff       	call   0x46e114
46e1db:	dd 45 20             	fldl   0x20(%ebp)
46e1de:	83 c4 0c             	add    $0xc,%esp
46e1e1:	8b e5                	mov    %ebp,%esp
46e1e3:	5d                   	pop    %ebp
46e1e4:	c3                   	ret
46e1e5:	32 c0                	xor    %al,%al
46e1e7:	c3                   	ret
46e1e8:	6a 03                	push   $0x3
46e1ea:	e8 f0 0b 01 00       	call   0x47eddf
46e1ef:	59                   	pop    %ecx
46e1f0:	83 f8 01             	cmp    $0x1,%eax
46e1f3:	75 03                	jne    0x46e1f8
46e1f5:	b0 01                	mov    $0x1,%al
46e1f7:	c3                   	ret
46e1f8:	85 c0                	test   %eax,%eax
46e1fa:	75 09                	jne    0x46e205
46e1fc:	83 3d bc b8 4b 00 01 	cmpl   $0x1,0x4bb8bc
46e203:	74 f0                	je     0x46e1f5
46e205:	32 c0                	xor    %al,%al
46e207:	c3                   	ret
46e208:	8b ff                	mov    %edi,%edi
46e20a:	55                   	push   %ebp
46e20b:	8b ec                	mov    %esp,%ebp
46e20d:	81 ec fc 01 00 00    	sub    $0x1fc,%esp
46e213:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46e218:	33 c5                	xor    %ebp,%eax
46e21a:	89 45 fc             	mov    %eax,-0x4(%ebp)
46e21d:	56                   	push   %esi
46e21e:	6a f4                	push   $0xfffffff4
46e220:	ff 15 90 40 49 00    	call   *0x494090
46e226:	8b f0                	mov    %eax,%esi
46e228:	85 f6                	test   %esi,%esi
46e22a:	74 4a                	je     0x46e276
46e22c:	83 fe ff             	cmp    $0xffffffff,%esi
46e22f:	74 45                	je     0x46e276
46e231:	8b 55 08             	mov    0x8(%ebp),%edx
46e234:	8d 8d 08 fe ff ff    	lea    -0x1f8(%ebp),%ecx
46e23a:	8a 02                	mov    (%edx),%al
46e23c:	88 01                	mov    %al,(%ecx)
46e23e:	41                   	inc    %ecx
46e23f:	8d 45 fc             	lea    -0x4(%ebp),%eax
46e242:	3b c8                	cmp    %eax,%ecx
46e244:	74 0b                	je     0x46e251
46e246:	66 8b 02             	mov    (%edx),%ax
46e249:	83 c2 02             	add    $0x2,%edx
46e24c:	66 85 c0             	test   %ax,%ax
46e24f:	75 e9                	jne    0x46e23a
46e251:	33 c0                	xor    %eax,%eax
46e253:	50                   	push   %eax
46e254:	88 45 fb             	mov    %al,-0x5(%ebp)
46e257:	89 85 04 fe ff ff    	mov    %eax,-0x1fc(%ebp)
46e25d:	8d 85 04 fe ff ff    	lea    -0x1fc(%ebp),%eax
46e263:	50                   	push   %eax
46e264:	8d 85 08 fe ff ff    	lea    -0x1f8(%ebp),%eax
46e26a:	2b c8                	sub    %eax,%ecx
46e26c:	49                   	dec    %ecx
46e26d:	51                   	push   %ecx
46e26e:	50                   	push   %eax
46e26f:	56                   	push   %esi
46e270:	ff 15 8c 40 49 00    	call   *0x49408c
46e276:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46e279:	33 cd                	xor    %ebp,%ecx
46e27b:	5e                   	pop    %esi
46e27c:	e8 81 17 fd ff       	call   0x43fa02
46e281:	8b e5                	mov    %ebp,%esp
46e283:	5d                   	pop    %ebp
46e284:	c3                   	ret
46e285:	8b ff                	mov    %edi,%edi
46e287:	55                   	push   %ebp
46e288:	8b ec                	mov    %esp,%ebp
46e28a:	6a 03                	push   $0x3
46e28c:	e8 4e 0b 01 00       	call   0x47eddf
46e291:	59                   	pop    %ecx
46e292:	83 f8 01             	cmp    $0x1,%eax
46e295:	0f 84 f8 00 00 00    	je     0x46e393
46e29b:	85 c0                	test   %eax,%eax
46e29d:	75 0d                	jne    0x46e2ac
46e29f:	83 3d bc b8 4b 00 01 	cmpl   $0x1,0x4bb8bc
46e2a6:	0f 84 e7 00 00 00    	je     0x46e393
46e2ac:	53                   	push   %ebx
46e2ad:	56                   	push   %esi
46e2ae:	68 50 d7 49 00       	push   $0x49d750
46e2b3:	68 14 03 00 00       	push   $0x314
46e2b8:	bb c0 b8 4b 00       	mov    $0x4bb8c0,%ebx
46e2bd:	53                   	push   %ebx
46e2be:	e8 a4 9b ff ff       	call   0x467e67
46e2c3:	83 c4 0c             	add    $0xc,%esp
46e2c6:	33 f6                	xor    %esi,%esi
46e2c8:	85 c0                	test   %eax,%eax
46e2ca:	0f 85 c9 00 00 00    	jne    0x46e399
46e2d0:	57                   	push   %edi
46e2d1:	68 04 01 00 00       	push   $0x104
46e2d6:	68 f2 b8 4b 00       	push   $0x4bb8f2
46e2db:	56                   	push   %esi
46e2dc:	66 a3 fa ba 4b 00    	mov    %ax,0x4bbafa
46e2e2:	ff 15 50 41 49 00    	call   *0x494150
46e2e8:	bf fb 02 00 00       	mov    $0x2fb,%edi
46e2ed:	85 c0                	test   %eax,%eax
46e2ef:	75 1b                	jne    0x46e30c
46e2f1:	68 84 d7 49 00       	push   $0x49d784
46e2f6:	57                   	push   %edi
46e2f7:	68 f2 b8 4b 00       	push   $0x4bb8f2
46e2fc:	e8 66 9b ff ff       	call   0x467e67
46e301:	83 c4 0c             	add    $0xc,%esp
46e304:	85 c0                	test   %eax,%eax
46e306:	0f 85 8d 00 00 00    	jne    0x46e399
46e30c:	b9 f2 b8 4b 00       	mov    $0x4bb8f2,%ecx
46e311:	8d 51 02             	lea    0x2(%ecx),%edx
46e314:	66 8b 01             	mov    (%ecx),%ax
46e317:	83 c1 02             	add    $0x2,%ecx
46e31a:	66 3b c6             	cmp    %si,%ax
46e31d:	75 f5                	jne    0x46e314
46e31f:	2b ca                	sub    %edx,%ecx
46e321:	d1 f9                	sar    $1,%ecx
46e323:	8d 41 01             	lea    0x1(%ecx),%eax
46e326:	83 f8 3c             	cmp    $0x3c,%eax
46e329:	76 27                	jbe    0x46e352
46e32b:	8d 0c 4d 7c b8 4b 00 	lea    0x4bb87c(,%ecx,2),%ecx
46e332:	8b c1                	mov    %ecx,%eax
46e334:	2d f2 b8 4b 00       	sub    $0x4bb8f2,%eax
46e339:	6a 03                	push   $0x3
46e33b:	d1 f8                	sar    $1,%eax
46e33d:	68 b4 d7 49 00       	push   $0x49d7b4
46e342:	2b f8                	sub    %eax,%edi
46e344:	57                   	push   %edi
46e345:	51                   	push   %ecx
46e346:	e8 87 0c 01 00       	call   0x47efd2
46e34b:	83 c4 10             	add    $0x10,%esp
46e34e:	85 c0                	test   %eax,%eax
46e350:	75 47                	jne    0x46e399
46e352:	68 bc d7 49 00       	push   $0x49d7bc
46e357:	bf 14 03 00 00       	mov    $0x314,%edi
46e35c:	57                   	push   %edi
46e35d:	53                   	push   %ebx
46e35e:	e8 2d 0b 01 00       	call   0x47ee90
46e363:	83 c4 0c             	add    $0xc,%esp
46e366:	85 c0                	test   %eax,%eax
46e368:	75 2f                	jne    0x46e399
46e36a:	ff 75 08             	push   0x8(%ebp)
46e36d:	57                   	push   %edi
46e36e:	53                   	push   %ebx
46e36f:	e8 1c 0b 01 00       	call   0x47ee90
46e374:	83 c4 0c             	add    $0xc,%esp
46e377:	5f                   	pop    %edi
46e378:	85 c0                	test   %eax,%eax
46e37a:	75 1d                	jne    0x46e399
46e37c:	68 10 20 01 00       	push   $0x12010
46e381:	68 c8 d7 49 00       	push   $0x49d7c8
46e386:	53                   	push   %ebx
46e387:	e8 08 0e 01 00       	call   0x47f194
46e38c:	83 c4 0c             	add    $0xc,%esp
46e38f:	5e                   	pop    %esi
46e390:	5b                   	pop    %ebx
46e391:	5d                   	pop    %ebp
46e392:	c3                   	ret
46e393:	5d                   	pop    %ebp
46e394:	e9 6f fe ff ff       	jmp    0x46e208
46e399:	56                   	push   %esi
46e39a:	56                   	push   %esi
46e39b:	56                   	push   %esi
46e39c:	56                   	push   %esi
46e39d:	56                   	push   %esi
46e39e:	e8 60 e9 fd ff       	call   0x44cd03
46e3a3:	cc                   	int3
46e3a4:	a1 bc b8 4b 00       	mov    0x4bb8bc,%eax
46e3a9:	c3                   	ret
46e3aa:	8b ff                	mov    %edi,%edi
46e3ac:	55                   	push   %ebp
46e3ad:	8b ec                	mov    %esp,%ebp
46e3af:	8b 45 08             	mov    0x8(%ebp),%eax
46e3b2:	a3 bc b8 4b 00       	mov    %eax,0x4bb8bc
46e3b7:	5d                   	pop    %ebp
46e3b8:	c3                   	ret
46e3b9:	8b ff                	mov    %edi,%edi
46e3bb:	55                   	push   %ebp
46e3bc:	8b ec                	mov    %esp,%ebp
46e3be:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46e3c3:	8b c8                	mov    %eax,%ecx
46e3c5:	33 45 08             	xor    0x8(%ebp),%eax
46e3c8:	83 e1 1f             	and    $0x1f,%ecx
46e3cb:	d3 c8                	ror    %cl,%eax
46e3cd:	5d                   	pop    %ebp
46e3ce:	c3                   	ret
46e3cf:	8b ff                	mov    %edi,%edi
46e3d1:	55                   	push   %ebp
46e3d2:	8b ec                	mov    %esp,%ebp
46e3d4:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46e3d9:	83 e0 1f             	and    $0x1f,%eax
46e3dc:	6a 20                	push   $0x20
46e3de:	59                   	pop    %ecx
46e3df:	2b c8                	sub    %eax,%ecx
46e3e1:	8b 45 08             	mov    0x8(%ebp),%eax
46e3e4:	d3 c8                	ror    %cl,%eax
46e3e6:	33 05 94 80 4b 00    	xor    0x4b8094,%eax
46e3ec:	5d                   	pop    %ebp
46e3ed:	c3                   	ret
46e3ee:	8b ff                	mov    %edi,%edi
46e3f0:	55                   	push   %ebp
46e3f1:	8b ec                	mov    %esp,%ebp
46e3f3:	8d 41 04             	lea    0x4(%ecx),%eax
46e3f6:	8b d0                	mov    %eax,%edx
46e3f8:	2b d1                	sub    %ecx,%edx
46e3fa:	83 c2 03             	add    $0x3,%edx
46e3fd:	56                   	push   %esi
46e3fe:	33 f6                	xor    %esi,%esi
46e400:	c1 ea 02             	shr    $0x2,%edx
46e403:	3b c1                	cmp    %ecx,%eax
46e405:	1b c0                	sbb    %eax,%eax
46e407:	f7 d0                	not    %eax
46e409:	23 c2                	and    %edx,%eax
46e40b:	74 0d                	je     0x46e41a
46e40d:	8b 55 08             	mov    0x8(%ebp),%edx
46e410:	46                   	inc    %esi
46e411:	89 11                	mov    %edx,(%ecx)
46e413:	8d 49 04             	lea    0x4(%ecx),%ecx
46e416:	3b f0                	cmp    %eax,%esi
46e418:	75 f6                	jne    0x46e410
46e41a:	5e                   	pop    %esi
46e41b:	5d                   	pop    %ebp
46e41c:	c2 04 00             	ret    $0x4
46e41f:	8b c1                	mov    %ecx,%eax
46e421:	c3                   	ret
46e422:	a1 94 80 4b 00       	mov    0x4b8094,%eax
46e427:	8b c8                	mov    %eax,%ecx
46e429:	33 05 e8 be 4b 00    	xor    0x4bbee8,%eax
46e42f:	83 e1 1f             	and    $0x1f,%ecx
46e432:	d3 c8                	ror    %cl,%eax
46e434:	f7 d8                	neg    %eax
46e436:	1b c0                	sbb    %eax,%eax
46e438:	f7 d8                	neg    %eax
46e43a:	c3                   	ret
46e43b:	8b ff                	mov    %edi,%edi