49517e:	77 02                	ja     0x495182
495180:	02 c6                	add    %dh,%al
495182:	3a e0                	cmp    %al,%ah
495184:	75 0b                	jne    0x495191
495186:	83 e9 01             	sub    $0x1,%ecx
495189:	75 d1                	jne    0x49515c
49518b:	33 c9                	xor    %ecx,%ecx
49518d:	3a e0                	cmp    %al,%ah
49518f:	74 09                	je     0x49519a
495191:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
495196:	72 02                	jb     0x49519a
495198:	f7 d9                	neg    %ecx
49519a:	8b c1                	mov    %ecx,%eax
49519c:	5b                   	pop    %ebx
49519d:	5e                   	pop    %esi
49519e:	5f                   	pop    %edi
49519f:	c9                   	leave
4951a0:	c3                   	ret
4951a1:	8b ff                	mov    %edi,%edi
4951a3:	55                   	push   %ebp
4951a4:	8b ec                	mov    %esp,%ebp
4951a6:	53                   	push   %ebx
4951a7:	56                   	push   %esi
4951a8:	8b 75 08             	mov    0x8(%ebp),%esi
4951ab:	33 db                	xor    %ebx,%ebx
4951ad:	57                   	push   %edi
4951ae:	6a 01                	push   $0x1
4951b0:	53                   	push   %ebx
4951b1:	53                   	push   %ebx
4951b2:	56                   	push   %esi
4951b3:	8b f9                	mov    %ecx,%edi
4951b5:	e8 76 45 ff ff       	call   0x489730
4951ba:	6a 02                	push   $0x2
4951bc:	53                   	push   %ebx
4951bd:	53                   	push   %ebx
4951be:	56                   	push   %esi
4951bf:	89 07                	mov    %eax,(%edi)
4951c1:	89 57 04             	mov    %edx,0x4(%edi)
4951c4:	e8 67 45 ff ff       	call   0x489730
4951c9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4951cc:	83 c4 20             	add    $0x20,%esp
4951cf:	89 47 08             	mov    %eax,0x8(%edi)
4951d2:	2b c8                	sub    %eax,%ecx
4951d4:	8b 45 10             	mov    0x10(%ebp),%eax
4951d7:	1b c2                	sbb    %edx,%eax
4951d9:	89 77 18             	mov    %esi,0x18(%edi)
4951dc:	89 47 14             	mov    %eax,0x14(%edi)
4951df:	8b c7                	mov    %edi,%eax
4951e1:	89 57 0c             	mov    %edx,0xc(%edi)
4951e4:	89 4f 10             	mov    %ecx,0x10(%edi)
4951e7:	5f                   	pop    %edi
4951e8:	5e                   	pop    %esi
4951e9:	5b                   	pop    %ebx
4951ea:	5d                   	pop    %ebp
4951eb:	c2 0c 00             	ret    $0xc
4951ee:	8b ff                	mov    %edi,%edi
4951f0:	55                   	push   %ebp
4951f1:	8b ec                	mov    %esp,%ebp
4951f3:	83 ec 28             	sub    $0x28,%esp
4951f6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4951f9:	56                   	push   %esi
4951fa:	6a 00                	push   $0x0
4951fc:	e8 df 20 fe ff       	call   0x4772e0
495201:	8d 45 d8             	lea    -0x28(%ebp),%eax
495204:	50                   	push   %eax
495205:	ff 75 10             	push   0x10(%ebp)
495208:	ff 75 0c             	push   0xc(%ebp)
49520b:	ff 75 08             	push   0x8(%ebp)
49520e:	e8 12 00 00 00       	call   0x495225
495213:	83 c4 10             	add    $0x10,%esp
495216:	8d 4d d8             	lea    -0x28(%ebp),%ecx
495219:	8b f0                	mov    %eax,%esi
49521b:	e8 20 21 fe ff       	call   0x477340
495220:	8b c6                	mov    %esi,%eax
495222:	5e                   	pop    %esi
495223:	c9                   	leave
495224:	c3                   	ret
495225:	8b ff                	mov    %edi,%edi
495227:	55                   	push   %ebp
495228:	8b ec                	mov    %esp,%ebp
49522a:	83 ec 2c             	sub    $0x2c,%esp
49522d:	53                   	push   %ebx
49522e:	8b 5d 08             	mov    0x8(%ebp),%ebx
495231:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
495234:	56                   	push   %esi
495235:	57                   	push   %edi
495236:	ff 75 10             	push   0x10(%ebp)
495239:	8b 7d 14             	mov    0x14(%ebp),%edi
49523c:	ff 75 0c             	push   0xc(%ebp)
49523f:	53                   	push   %ebx
495240:	e8 5c ff ff ff       	call   0x4951a1
495245:	8b 45 d4             	mov    -0x2c(%ebp),%eax
495248:	23 45 d8             	and    -0x28(%ebp),%eax
49524b:	83 f8 ff             	cmp    $0xffffffff,%eax
49524e:	0f 84 40 01 00 00    	je     0x495394
495254:	8b 45 dc             	mov    -0x24(%ebp),%eax
495257:	23 45 e0             	and    -0x20(%ebp),%eax
49525a:	83 f8 ff             	cmp    $0xffffffff,%eax
49525d:	0f 84 31 01 00 00    	je     0x495394
495263:	8b 4d e8             	mov    -0x18(%ebp),%ecx
495266:	8b 45 e4             	mov    -0x1c(%ebp),%eax
495269:	89 4d f8             	mov    %ecx,-0x8(%ebp)
49526c:	89 45 fc             	mov    %eax,-0x4(%ebp)
49526f:	85 c9                	test   %ecx,%ecx
495271:	0f 8c d2 00 00 00    	jl     0x495349
495277:	7f 08                	jg     0x495281
495279:	85 c0                	test   %eax,%eax
49527b:	0f 84 be 00 00 00    	je     0x49533f
495281:	6a 01                	push   $0x1
495283:	68 00 10 00 00       	push   $0x1000
495288:	e8 b0 30 ff ff       	call   0x48833d
49528d:	8b f0                	mov    %eax,%esi
49528f:	59                   	pop    %ecx
495290:	59                   	pop    %ecx
495291:	85 f6                	test   %esi,%esi
495293:	75 0f                	jne    0x4952a4
495295:	6a 0c                	push   $0xc
495297:	5b                   	pop    %ebx
495298:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
49529c:	89 5f 18             	mov    %ebx,0x18(%edi)
49529f:	e9 92 00 00 00       	jmp    0x495336
4952a4:	68 00 80 00 00       	push   $0x8000
4952a9:	53                   	push   %ebx
4952aa:	e8 36 e6 fe ff       	call   0x4838e5
4952af:	59                   	pop    %ecx
4952b0:	59                   	pop    %ecx
4952b1:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4952b4:	89 45 f4             	mov    %eax,-0xc(%ebp)
4952b7:	8b 45 e8             	mov    -0x18(%ebp),%eax
4952ba:	85 c0                	test   %eax,%eax
4952bc:	7c 0f                	jl     0x4952cd
4952be:	7f 08                	jg     0x4952c8
4952c0:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
4952c6:	72 05                	jb     0x4952cd
4952c8:	b9 00 10 00 00       	mov    $0x1000,%ecx
4952cd:	57                   	push   %edi
4952ce:	51                   	push   %ecx
4952cf:	56                   	push   %esi
4952d0:	53                   	push   %ebx
4952d1:	e8 cf 26 ff ff       	call   0x4879a5
4952d6:	83 c4 10             	add    $0x10,%esp
4952d9:	83 f8 ff             	cmp    $0xffffffff,%eax
4952dc:	74 34                	je     0x495312
4952de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4952e1:	99                   	cltd
4952e2:	2b c8                	sub    %eax,%ecx
4952e4:	8b 45 f8             	mov    -0x8(%ebp),%eax
4952e7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4952ea:	1b c2                	sbb    %edx,%eax
4952ec:	89 45 f8             	mov    %eax,-0x8(%ebp)
4952ef:	85 c0                	test   %eax,%eax
4952f1:	7f d5                	jg     0x4952c8
4952f3:	7c 04                	jl     0x4952f9
4952f5:	85 c9                	test   %ecx,%ecx
4952f7:	75 c1                	jne    0x4952ba
4952f9:	ff 75 f4             	push   -0xc(%ebp)
4952fc:	53                   	push   %ebx
4952fd:	e8 e3 e5 fe ff       	call   0x4838e5
495302:	56                   	push   %esi
495303:	e8 f0 04 ff ff       	call   0x4857f8
495308:	83 c4 0c             	add    $0xc,%esp
49530b:	33 db                	xor    %ebx,%ebx
49530d:	e9 90 00 00 00       	jmp    0x4953a2
495312:	80 7f 24 00          	cmpb   $0x0,0x24(%edi)
495316:	74 11                	je     0x495329
495318:	83 7f 20 05          	cmpl   $0x5,0x20(%edi)
49531c:	75 0b                	jne    0x495329
49531e:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
495322:	c7 47 18 0d 00 00 00 	movl   $0xd,0x18(%edi)
495329:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
49532d:	74 05                	je     0x495334
49532f:	8b 5f 18             	mov    0x18(%edi),%ebx
495332:	eb 02                	jmp    0x495336
495334:	33 db                	xor    %ebx,%ebx
495336:	56                   	push   %esi
495337:	e8 bc 04 ff ff       	call   0x4857f8
49533c:	59                   	pop    %ecx
49533d:	eb 63                	jmp    0x4953a2
49533f:	85 c9                	test   %ecx,%ecx
495341:	7f c8                	jg     0x49530b
495343:	7c 04                	jl     0x495349
495345:	85 c0                	test   %eax,%eax
495347:	73 c2                	jae    0x49530b
495349:	6a 00                	push   $0x0
49534b:	ff 75 10             	push   0x10(%ebp)
49534e:	ff 75 0c             	push   0xc(%ebp)
495351:	53                   	push   %ebx
495352:	e8 d9 43 ff ff       	call   0x489730
495357:	23 c2                	and    %edx,%eax
495359:	83 c4 10             	add    $0x10,%esp
49535c:	83 f8 ff             	cmp    $0xffffffff,%eax
49535f:	75 08                	jne    0x495369
495361:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
495365:	74 a4                	je     0x49530b
495367:	eb 31                	jmp    0x49539a
495369:	53                   	push   %ebx
49536a:	e8 32 af ff ff       	call   0x4902a1
49536f:	59                   	pop    %ecx
495370:	50                   	push   %eax
495371:	ff 15 bc e0 49 00    	call   *0x49e0bc
495377:	85 c0                	test   %eax,%eax
495379:	75 90                	jne    0x49530b
49537b:	ff 15 30 e1 49 00    	call   *0x49e130
495381:	6a 0d                	push   $0xd
495383:	c6 47 24 01          	movb   $0x1,0x24(%edi)
495387:	89 47 20             	mov    %eax,0x20(%edi)
49538a:	5b                   	pop    %ebx
49538b:	c6 47 1c 01          	movb   $0x1,0x1c(%edi)
49538f:	89 5f 18             	mov    %ebx,0x18(%edi)
495392:	eb 0e                	jmp    0x4953a2
495394:	80 7f 1c 00          	cmpb   $0x0,0x1c(%edi)
495398:	74 05                	je     0x49539f
49539a:	8b 5f 18             	mov    0x18(%edi),%ebx
49539d:	eb 03                	jmp    0x4953a2
49539f:	6a 16                	push   $0x16
4953a1:	5b                   	pop    %ebx
4953a2:	6a 00                	push   $0x0
4953a4:	ff 75 d8             	push   -0x28(%ebp)
4953a7:	ff 75 d4             	push   -0x2c(%ebp)
4953aa:	ff 75 ec             	push   -0x14(%ebp)
4953ad:	e8 7e 43 ff ff       	call   0x489730
4953b2:	83 c4 10             	add    $0x10,%esp
4953b5:	8b c3                	mov    %ebx,%eax
4953b7:	5f                   	pop    %edi
4953b8:	5e                   	pop    %esi
4953b9:	5b                   	pop    %ebx
4953ba:	c9                   	leave
4953bb:	c3                   	ret
4953bc:	cc                   	int3
4953bd:	cc                   	int3
4953be:	cc                   	int3
4953bf:	cc                   	int3
4953c0:	55                   	push   %ebp
4953c1:	8b ec                	mov    %esp,%ebp
4953c3:	83 ec 08             	sub    $0x8,%esp
4953c6:	83 e4 f0             	and    $0xfffffff0,%esp
4953c9:	dd 1c 24             	fstpl  (%esp)
4953cc:	f3 0f 7e 04 24       	movq   (%esp),%xmm0
4953d1:	e8 08 00 00 00       	call   0x4953de
4953d6:	c9                   	leave
4953d7:	c3                   	ret
4953d8:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
4953de:	ba 00 00 00 00       	mov    $0x0,%edx
4953e3:	66 0f 28 e8          	movapd %xmm0,%xmm5
4953e7:	66 0f 14 c0          	unpcklpd %xmm0,%xmm0
4953eb:	66 0f 73 d5 34       	psrlq  $0x34,%xmm5
4953f0:	66 0f c5 cd 00       	pextrw $0x0,%xmm5,%ecx
4953f5:	66 0f 28 0d d0 aa 4a 	movapd 0x4aaad0,%xmm1
4953fc:	00
4953fd:	66 0f 28 15 e0 aa 4a 	movapd 0x4aaae0,%xmm2
495404:	00
495405:	66 0f 28 1d 40 ab 4a 	movapd 0x4aab40,%xmm3
49540c:	00
49540d:	66 0f 28 25 f0 aa 4a 	movapd 0x4aaaf0,%xmm4
495414:	00
495415:	66 0f 28 35 00 ab 4a 	movapd 0x4aab00,%xmm6
49541c:	00
49541d:	66 0f 54 c1          	andpd  %xmm1,%xmm0
495421:	66 0f 56 c3          	orpd   %xmm3,%xmm0
495425:	66 0f 58 e0          	addpd  %xmm0,%xmm4
495429:	66 0f c5 c4 00       	pextrw $0x0,%xmm4,%eax
49542e:	25 f0 07 00 00       	and    $0x7f0,%eax
495433:	66 0f 28 a0 e0 af 4a 	movapd 0x4aafe0(%eax),%xmm4
49543a:	00
49543b:	66 0f 28 b8 d0 ab 4a 	movapd 0x4aabd0(%eax),%xmm7
495442:	00
495443:	66 0f 54 f0          	andpd  %xmm0,%xmm6
495447:	66 0f 5c c6          	subpd  %xmm6,%xmm0
49544b:	66 0f 59 f4          	mulpd  %xmm4,%xmm6
49544f:	66 0f 5c f2          	subpd  %xmm2,%xmm6
495453:	f2 0f 58 fe          	addsd  %xmm6,%xmm7
495457:	66 0f 59 c4          	mulpd  %xmm4,%xmm0
49545b:	66 0f 28 e0          	movapd %xmm0,%xmm4
49545f:	66 0f 58 c6          	addpd  %xmm6,%xmm0
495463:	81 e1 ff 0f 00 00    	and    $0xfff,%ecx
495469:	83 e9 01             	sub    $0x1,%ecx
49546c:	81 f9 fd 07 00 00    	cmp    $0x7fd,%ecx
495472:	0f 87 be 00 00 00    	ja     0x495536
495478:	81 e9 fe 03 00 00    	sub    $0x3fe,%ecx
49547e:	03 ca                	add    %edx,%ecx
495480:	f2 0f 2a f1          	cvtsi2sd %ecx,%xmm6
495484:	66 0f 14 f6          	unpcklpd %xmm6,%xmm6
495488:	c1 e1 0a             	shl    $0xa,%ecx
49548b:	03 c1                	add    %ecx,%eax
49548d:	b9 10 00 00 00       	mov    $0x10,%ecx
495492:	ba 00 00 00 00       	mov    $0x0,%edx
495497:	83 f8 00             	cmp    $0x0,%eax
49549a:	0f 44 d1             	cmove  %ecx,%edx
49549d:	66 0f 28 0d 90 ab 4a 	movapd 0x4aab90,%xmm1
4954a4:	00
4954a5:	66 0f 28 d8          	movapd %xmm0,%xmm3
4954a9:	66 0f 28 15 a0 ab 4a 	movapd 0x4aaba0,%xmm2
4954b0:	00
4954b1:	66 0f 59 c8          	mulpd  %xmm0,%xmm1
4954b5:	66 0f 59 db          	mulpd  %xmm3,%xmm3
4954b9:	66 0f 58 ca          	addpd  %xmm2,%xmm1
4954bd:	66 0f 28 15 b0 ab 4a 	movapd 0x4aabb0,%xmm2
4954c4:	00
4954c5:	f2 0f 59 db          	mulsd  %xmm3,%xmm3
4954c9:	66 0f 28 2d 10 ab 4a 	movapd 0x4aab10,%xmm5
4954d0:	00
4954d1:	66 0f 59 f5          	mulpd  %xmm5,%xmm6
4954d5:	66 0f 28 aa 20 ab 4a 	movapd 0x4aab20(%edx),%xmm5
4954dc:	00
4954dd:	66 0f 54 e5          	andpd  %xmm5,%xmm4
4954e1:	66 0f 58 fe          	addpd  %xmm6,%xmm7
4954e5:	66 0f 58 fc          	addpd  %xmm4,%xmm7
4954e9:	66 0f 59 c8          	mulpd  %xmm0,%xmm1
4954ed:	f2 0f 59 d8          	mulsd  %xmm0,%xmm3
4954f1:	66 0f 58 ca          	addpd  %xmm2,%xmm1
4954f5:	66 0f 28 15 c0 ab 4a 	movapd 0x4aabc0,%xmm2
4954fc:	00
4954fd:	66 0f 59 d0          	mulpd  %xmm0,%xmm2
495501:	66 0f 28 f7          	movapd %xmm7,%xmm6
495505:	66 0f 15 f6          	unpckhpd %xmm6,%xmm6
495509:	66 0f 59 cb          	mulpd  %xmm3,%xmm1
49550d:	83 ec 10             	sub    $0x10,%esp
495510:	66 0f 28 c1          	movapd %xmm1,%xmm0
495514:	66 0f 58 ca          	addpd  %xmm2,%xmm1
495518:	66 0f 15 c0          	unpckhpd %xmm0,%xmm0
49551c:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
495520:	f2 0f 58 c6          	addsd  %xmm6,%xmm0
495524:	f2 0f 58 c7          	addsd  %xmm7,%xmm0
495528:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
49552e:	dd 44 24 04          	fldl   0x4(%esp)
495532:	83 c4 10             	add    $0x10,%esp
495535:	c3                   	ret
495536:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
49553c:	66 0f 28 0d 50 ab 4a 	movapd 0x4aab50,%xmm1
495543:	00
495544:	f2 0f c2 c8 00       	cmpeqsd %xmm0,%xmm1
495549:	66 0f c5 c1 00       	pextrw $0x0,%xmm1,%eax
49554e:	83 f8 00             	cmp    $0x0,%eax
495551:	77 48                	ja     0x49559b
495553:	83 f9 ff             	cmp    $0xffffffff,%ecx
495556:	74 5e                	je     0x4955b6
495558:	81 f9 fe 07 00 00    	cmp    $0x7fe,%ecx
49555e:	77 6c                	ja     0x4955cc
495560:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
495566:	66 0f 28 0d d0 aa 4a 	movapd 0x4aaad0,%xmm1
49556d:	00
49556e:	66 0f 28 15 40 ab 4a 	movapd 0x4aab40,%xmm2
495575:	00
495576:	66 0f 54 c1          	andpd  %xmm1,%xmm0
49557a:	66 0f 56 c2          	orpd   %xmm2,%xmm0
49557e:	f2 0f c2 d0 00       	cmpeqsd %xmm0,%xmm2
495583:	66 0f c5 c2 00       	pextrw $0x0,%xmm2,%eax
495588:	83 f8 00             	cmp    $0x0,%eax
49558b:	74 07                	je     0x495594
49558d:	dd 05 78 ab 4a 00    	fldl   0x4aab78