46e015:	66 89 7d d8          	mov    %di,-0x28(%ebp)
46e019:	74 10                	je     0x46e02b
46e01b:	f6 43 08 08          	testb  $0x8,0x8(%ebx)
46e01f:	6a 00                	push   $0x0
46e021:	58                   	pop    %eax
46e022:	0f 95 c0             	setne  %al
46e025:	40                   	inc    %eax
46e026:	89 45 e0             	mov    %eax,-0x20(%ebp)
46e029:	eb 04                	jmp    0x46e02f
46e02b:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
46e02f:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46e032:	8d 4d d8             	lea    -0x28(%ebp),%ecx
46e035:	51                   	push   %ecx
46e036:	68 f4 f7 40 00       	push   $0x40f7f4
46e03b:	50                   	push   %eax
46e03c:	8b 30                	mov    (%eax),%esi
46e03e:	8b 4e 18             	mov    0x18(%esi),%ecx
46e041:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e047:	ff 56 18             	call   *0x18(%esi)
46e04a:	8d 45 d8             	lea    -0x28(%ebp),%eax
46e04d:	50                   	push   %eax
46e04e:	ff 15 64 7e 4a 00    	call   *0x4a7e64
46e054:	b8 00 00 01 00       	mov    $0x10000,%eax
46e059:	85 43 04             	test   %eax,0x4(%ebx)
46e05c:	74 20                	je     0x46e07e
46e05e:	f7 43 04 00 00 03 00 	testl  $0x30000,0x4(%ebx)
46e065:	74 05                	je     0x46e06c
46e067:	85 43 08             	test   %eax,0x8(%ebx)
46e06a:	75 28                	jne    0x46e094
46e06c:	f7 43 08 00 00 02 00 	testl  $0x20000,0x8(%ebx)
46e073:	74 2a                	je     0x46e09f
46e075:	c7 45 e0 02 00 00 00 	movl   $0x2,-0x20(%ebp)
46e07c:	eb 1d                	jmp    0x46e09b
46e07e:	f7 43 04 00 00 00 10 	testl  $0x10000000,0x4(%ebx)
46e085:	74 18                	je     0x46e09f
46e087:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
46e08b:	c7 45 e0 02 00 00 00 	movl   $0x2,-0x20(%ebp)
46e092:	7f 07                	jg     0x46e09b
46e094:	c7 45 e0 03 00 00 00 	movl   $0x3,-0x20(%ebp)
46e09b:	66 89 7d d8          	mov    %di,-0x28(%ebp)
46e09f:	8b 7d d4             	mov    -0x2c(%ebp),%edi
46e0a2:	8d 45 d8             	lea    -0x28(%ebp),%eax
46e0a5:	50                   	push   %eax
46e0a6:	68 6c f6 40 00       	push   $0x40f66c
46e0ab:	57                   	push   %edi
46e0ac:	8b 37                	mov    (%edi),%esi
46e0ae:	8b 4e 18             	mov    0x18(%esi),%ecx
46e0b1:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e0b7:	ff 56 18             	call   *0x18(%esi)
46e0ba:	8d 45 d8             	lea    -0x28(%ebp),%eax
46e0bd:	50                   	push   %eax
46e0be:	ff 15 64 7e 4a 00    	call   *0x4a7e64
46e0c4:	f7 43 04 00 00 00 20 	testl  $0x20000000,0x4(%ebx)
46e0cb:	8d 4b 1a             	lea    0x1a(%ebx),%ecx
46e0ce:	75 05                	jne    0x46e0d5
46e0d0:	b9 80 fa 40 00       	mov    $0x40fa80,%ecx
46e0d5:	8d 55 d8             	lea    -0x28(%ebp),%edx
46e0d8:	e8 74 7f fb ff       	call   0x426051
46e0dd:	8b 37                	mov    (%edi),%esi
46e0df:	8d 45 d8             	lea    -0x28(%ebp),%eax
46e0e2:	50                   	push   %eax
46e0e3:	68 a8 f5 40 00       	push   $0x40f5a8
46e0e8:	57                   	push   %edi
46e0e9:	8b 4e 18             	mov    0x18(%esi),%ecx
46e0ec:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e0f2:	ff 56 18             	call   *0x18(%esi)
46e0f5:	8d 45 d8             	lea    -0x28(%ebp),%eax
46e0f8:	50                   	push   %eax
46e0f9:	ff 15 64 7e 4a 00    	call   *0x4a7e64
46e0ff:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
46e103:	8d 45 e8             	lea    -0x18(%ebp),%eax
46e106:	50                   	push   %eax
46e107:	7d 1c                	jge    0x46e125
46e109:	db 43 0c             	fildl  0xc(%ebx)
46e10c:	51                   	push   %ecx
46e10d:	51                   	push   %ecx
46e10e:	dd 5d c8             	fstpl  -0x38(%ebp)
46e111:	dd 45 c8             	fldl   -0x38(%ebp)
46e114:	dc 35 48 42 41 00    	fdivl  0x414248
46e11a:	dd 1c 24             	fstpl  (%esp)
46e11d:	ff 15 40 7c 4a 00    	call   *0x4a7c40
46e123:	eb 08                	jmp    0x46e12d
46e125:	6a 00                	push   $0x0
46e127:	ff 15 38 7c 4a 00    	call   *0x4a7c38
46e12d:	8d 75 e8             	lea    -0x18(%ebp),%esi
46e130:	8d 7d d8             	lea    -0x28(%ebp),%edi
46e133:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46e134:	8d 4d d8             	lea    -0x28(%ebp),%ecx
46e137:	6a 0e                	push   $0xe
46e139:	58                   	pop    %eax
46e13a:	51                   	push   %ecx
46e13b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46e13c:	68 60 f4 40 00       	push   $0x40f460
46e141:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46e142:	a5                   	movsl  %ds:(%esi),%es:(%edi)
46e143:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
46e147:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46e14a:	50                   	push   %eax
46e14b:	8b 30                	mov    (%eax),%esi
46e14d:	8b 4e 18             	mov    0x18(%esi),%ecx
46e150:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e156:	ff 56 18             	call   *0x18(%esi)
46e159:	8d 45 d8             	lea    -0x28(%ebp),%eax
46e15c:	50                   	push   %eax
46e15d:	ff 15 64 7e 4a 00    	call   *0x4a7e64
46e163:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46e166:	5f                   	pop    %edi
46e167:	5e                   	pop    %esi
46e168:	33 cd                	xor    %ebp,%ecx
46e16a:	5b                   	pop    %ebx
46e16b:	e8 90 1d 02 00       	call   0x48ff00
46e170:	c9                   	leave
46e171:	c3                   	ret
46e172:	8b ff                	mov    %edi,%edi
46e174:	55                   	push   %ebp
46e175:	8b ec                	mov    %esp,%ebp
46e177:	51                   	push   %ecx
46e178:	53                   	push   %ebx
46e179:	56                   	push   %esi
46e17a:	57                   	push   %edi
46e17b:	6a 00                	push   $0x0
46e17d:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46e180:	83 cf ff             	or     $0xffffffff,%edi
46e183:	ff 15 54 7d 4a 00    	call   *0x4a7d54
46e189:	8b f0                	mov    %eax,%esi
46e18b:	6a 58                	push   $0x58
46e18d:	56                   	push   %esi
46e18e:	ff 15 64 71 4a 00    	call   *0x4a7164
46e194:	56                   	push   %esi
46e195:	33 f6                	xor    %esi,%esi
46e197:	8b d8                	mov    %eax,%ebx
46e199:	56                   	push   %esi
46e19a:	ff 15 94 7d 4a 00    	call   *0x4a7d94
46e1a0:	8b 55 fc             	mov    -0x4(%ebp),%edx
46e1a3:	8b ce                	mov    %esi,%ecx
46e1a5:	3b fb                	cmp    %ebx,%edi
46e1a7:	76 09                	jbe    0x46e1b2
46e1a9:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
46e1ac:	3b c7                	cmp    %edi,%eax
46e1ae:	72 0f                	jb     0x46e1bf
46e1b0:	3b fb                	cmp    %ebx,%edi
46e1b2:	73 0f                	jae    0x46e1c3
46e1b4:	8b 04 8a             	mov    (%edx,%ecx,4),%eax
46e1b7:	3b c7                	cmp    %edi,%eax
46e1b9:	76 08                	jbe    0x46e1c3
46e1bb:	3b c3                	cmp    %ebx,%eax
46e1bd:	77 04                	ja     0x46e1c3
46e1bf:	8b f8                	mov    %eax,%edi
46e1c1:	8b f1                	mov    %ecx,%esi
46e1c3:	3b fb                	cmp    %ebx,%edi
46e1c5:	74 06                	je     0x46e1cd
46e1c7:	41                   	inc    %ecx
46e1c8:	83 f9 02             	cmp    $0x2,%ecx
46e1cb:	72 d8                	jb     0x46e1a5
46e1cd:	5f                   	pop    %edi
46e1ce:	8b c6                	mov    %esi,%eax
46e1d0:	5e                   	pop    %esi
46e1d1:	5b                   	pop    %ebx
46e1d2:	c9                   	leave
46e1d3:	c3                   	ret
46e1d4:	8b ff                	mov    %edi,%edi
46e1d6:	56                   	push   %esi
46e1d7:	57                   	push   %edi
46e1d8:	6a 0b                	push   $0xb
46e1da:	8b fa                	mov    %edx,%edi
46e1dc:	33 f6                	xor    %esi,%esi
46e1de:	ff 15 dc 7d 4a 00    	call   *0x4a7ddc
46e1e4:	6a 03                	push   $0x3
46e1e6:	8b c8                	mov    %eax,%ecx
46e1e8:	58                   	pop    %eax
46e1e9:	3b 0c 85 60 01 41 00 	cmp    0x410160(,%eax,4),%ecx
46e1f0:	73 07                	jae    0x46e1f9
46e1f2:	83 e8 01             	sub    $0x1,%eax
46e1f5:	79 f2                	jns    0x46e1e9
46e1f7:	eb 02                	jmp    0x46e1fb
46e1f9:	8b f0                	mov    %eax,%esi
46e1fb:	66 8b 04 77          	mov    (%edi,%esi,2),%ax
46e1ff:	5f                   	pop    %edi
46e200:	5e                   	pop    %esi
46e201:	c2 04 00             	ret    $0x4
46e204:	6a 10                	push   $0x10
46e206:	b8 d1 57 49 00       	mov    $0x4957d1,%eax
46e20b:	e8 c3 22 02 00       	call   0x4904d3
46e210:	8b f2                	mov    %edx,%esi
46e212:	89 4d e8             	mov    %ecx,-0x18(%ebp)
46e215:	8b 5d 08             	mov    0x8(%ebp),%ebx
46e218:	33 c9                	xor    %ecx,%ecx
46e21a:	89 4d f0             	mov    %ecx,-0x10(%ebp)
46e21d:	89 0b                	mov    %ecx,(%ebx)
46e21f:	8d 45 f0             	lea    -0x10(%ebp),%eax
46e222:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46e225:	50                   	push   %eax
46e226:	68 b0 0b 41 00       	push   $0x410bb0
46e22b:	6a 01                	push   $0x1
46e22d:	51                   	push   %ecx
46e22e:	68 dc fb 40 00       	push   $0x40fbdc
46e233:	ff 15 98 7e 4a 00    	call   *0x4a7e98
46e239:	8b f8                	mov    %eax,%edi
46e23b:	0f b7 c6             	movzwl %si,%eax
46e23e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
46e241:	85 ff                	test   %edi,%edi
46e243:	0f 88 9e 00 00 00    	js     0x46e2e7
46e249:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
46e24d:	8b 75 e8             	mov    -0x18(%ebp),%esi
46e250:	8d 4d ec             	lea    -0x14(%ebp),%ecx
46e253:	51                   	push   %ecx
46e254:	51                   	push   %ecx
46e255:	0f b7 c0             	movzwl %ax,%eax
46e258:	8b d6                	mov    %esi,%edx
46e25a:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
46e25e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46e261:	50                   	push   %eax
46e262:	e8 11 b8 01 00       	call   0x489a78
46e267:	8b f8                	mov    %eax,%edi
46e269:	85 ff                	test   %edi,%edi
46e26b:	78 0e                	js     0x46e27b
46e26d:	8b 55 ec             	mov    -0x14(%ebp),%edx
46e270:	8b 4d f0             	mov    -0x10(%ebp),%ecx
46e273:	53                   	push   %ebx
46e274:	e8 6f f0 ff ff       	call   0x46d2e8
46e279:	8b f8                	mov    %eax,%edi
46e27b:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
46e27f:	8b 45 ec             	mov    -0x14(%ebp),%eax
46e282:	85 c0                	test   %eax,%eax
46e284:	74 13                	je     0x46e299
46e286:	8b 08                	mov    (%eax),%ecx
46e288:	50                   	push   %eax
46e289:	8b 71 08             	mov    0x8(%ecx),%esi
46e28c:	8b ce                	mov    %esi,%ecx
46e28e:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e294:	ff d6                	call   *%esi
46e296:	8b 75 e8             	mov    -0x18(%ebp),%esi
46e299:	8b 45 e4             	mov    -0x1c(%ebp),%eax
46e29c:	85 ff                	test   %edi,%edi
46e29e:	79 1f                	jns    0x46e2bf
46e2a0:	68 00 20 00 00       	push   $0x2000
46e2a5:	33 c9                	xor    %ecx,%ecx
46e2a7:	0f b7 c0             	movzwl %ax,%eax
46e2aa:	51                   	push   %ecx
46e2ab:	51                   	push   %ecx
46e2ac:	51                   	push   %ecx
46e2ad:	50                   	push   %eax
46e2ae:	56                   	push   %esi
46e2af:	ff 15 3c 7d 4a 00    	call   *0x4a7d3c
46e2b5:	89 03                	mov    %eax,(%ebx)
46e2b7:	f7 d8                	neg    %eax
46e2b9:	1b c0                	sbb    %eax,%eax
46e2bb:	f7 d0                	not    %eax
46e2bd:	23 f8                	and    %eax,%edi
46e2bf:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
46e2c6:	8b 45 f0             	mov    -0x10(%ebp),%eax
46e2c9:	85 c0                	test   %eax,%eax
46e2cb:	74 10                	je     0x46e2dd
46e2cd:	8b 08                	mov    (%eax),%ecx
46e2cf:	50                   	push   %eax
46e2d0:	8b 71 08             	mov    0x8(%ecx),%esi
46e2d3:	8b ce                	mov    %esi,%ecx
46e2d5:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e2db:	ff d6                	call   *%esi
46e2dd:	8b c7                	mov    %edi,%eax
46e2df:	e8 bd 21 02 00       	call   0x4904a1
46e2e4:	c2 04 00             	ret    $0x4
46e2e7:	8b 75 e8             	mov    -0x18(%ebp),%esi
46e2ea:	eb b0                	jmp    0x46e29c
46e2ec:	8b ff                	mov    %edi,%edi
46e2ee:	57                   	push   %edi
46e2ef:	8b f9                	mov    %ecx,%edi
46e2f1:	8b 0f                	mov    (%edi),%ecx
46e2f3:	85 c9                	test   %ecx,%ecx
46e2f5:	74 15                	je     0x46e30c
46e2f7:	83 27 00             	andl   $0x0,(%edi)
46e2fa:	8b 01                	mov    (%ecx),%eax
46e2fc:	56                   	push   %esi
46e2fd:	51                   	push   %ecx
46e2fe:	8b 70 08             	mov    0x8(%eax),%esi
46e301:	8b ce                	mov    %esi,%ecx
46e303:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e309:	ff d6                	call   *%esi
46e30b:	5e                   	pop    %esi
46e30c:	8b c7                	mov    %edi,%eax
46e30e:	5f                   	pop    %edi
46e30f:	c3                   	ret
46e310:	8b ff                	mov    %edi,%edi
46e312:	55                   	push   %ebp
46e313:	8b ec                	mov    %esp,%ebp
46e315:	8b 55 08             	mov    0x8(%ebp),%edx
46e318:	57                   	push   %edi
46e319:	8b f9                	mov    %ecx,%edi
46e31b:	89 17                	mov    %edx,(%edi)
46e31d:	85 d2                	test   %edx,%edx
46e31f:	74 12                	je     0x46e333
46e321:	8b 02                	mov    (%edx),%eax
46e323:	56                   	push   %esi
46e324:	52                   	push   %edx
46e325:	8b 70 04             	mov    0x4(%eax),%esi
46e328:	8b ce                	mov    %esi,%ecx
46e32a:	ff 15 2c 81 4a 00    	call   *0x4a812c
46e330:	ff d6                	call   *%esi
46e332:	5e                   	pop    %esi
46e333:	8b c7                	mov    %edi,%eax
46e335:	5f                   	pop    %edi
46e336:	5d                   	pop    %ebp
46e337:	c2 04 00             	ret    $0x4
46e33a:	8b ff                	mov    %edi,%edi
46e33c:	55                   	push   %ebp
46e33d:	8b ec                	mov    %esp,%ebp
46e33f:	51                   	push   %ecx
46e340:	51                   	push   %ecx
46e341:	53                   	push   %ebx
46e342:	56                   	push   %esi
46e343:	8b 75 0c             	mov    0xc(%ebp),%esi
46e346:	33 db                	xor    %ebx,%ebx
46e348:	57                   	push   %edi
46e349:	8b 7d 10             	mov    0x10(%ebp),%edi
46e34c:	8b 07                	mov    (%edi),%eax
46e34e:	03 c0                	add    %eax,%eax
46e350:	89 1f                	mov    %ebx,(%edi)
46e352:	89 45 f8             	mov    %eax,-0x8(%ebp)
46e355:	8d 45 f8             	lea    -0x8(%ebp),%eax
46e358:	50                   	push   %eax
46e359:	56                   	push   %esi
46e35a:	8d 45 fc             	lea    -0x4(%ebp),%eax
46e35d:	50                   	push   %eax
46e35e:	53                   	push   %ebx
46e35f:	68 38 33 41 00       	push   $0x413338
46e364:	ff 31                	push   (%ecx)
46e366:	ff 15 04 70 4a 00    	call   *0x4a7004
46e36c:	85 c0                	test   %eax,%eax
46e36e:	75 37                	jne    0x46e3a7
46e370:	83 7d fc 01          	cmpl   $0x1,-0x4(%ebp)
46e374:	74 06                	je     0x46e37c
46e376:	83 7d fc 02          	cmpl   $0x2,-0x4(%ebp)
46e37a:	75 1b                	jne    0x46e397
46e37c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46e37f:	85 f6                	test   %esi,%esi
46e381:	74 1e                	je     0x46e3a1
46e383:	85 c9                	test   %ecx,%ecx
46e385:	74 15                	je     0x46e39c
46e387:	f6 c1 01             	test   $0x1,%cl
46e38a:	75 0b                	jne    0x46e397
46e38c:	8b c1                	mov    %ecx,%eax
46e38e:	d1 e8                	shr    $1,%eax
46e390:	66 39 5c 46 fe       	cmp    %bx,-0x2(%esi,%eax,2)
46e395:	74 0a                	je     0x46e3a1
46e397:	6a 0d                	push   $0xd
46e399:	58                   	pop    %eax
46e39a:	eb 0b                	jmp    0x46e3a7
46e39c:	33 c0                	xor    %eax,%eax
46e39e:	66 89 06             	mov    %ax,(%esi)
46e3a1:	d1 e9                	shr    $1,%ecx