43c529:	56                   	push   %esi
43c52a:	8b f0                	mov    %eax,%esi
43c52c:	0f b7 d6             	movzwl %si,%edx
43c52f:	66 3b 75 0c          	cmp    0xc(%ebp),%si
43c533:	74 0f                	je     0x43c544
43c535:	83 c1 02             	add    $0x2,%ecx
43c538:	0f b7 01             	movzwl (%ecx),%eax
43c53b:	8b f0                	mov    %eax,%esi
43c53d:	8b d0                	mov    %eax,%edx
43c53f:	66 85 c0             	test   %ax,%ax
43c542:	75 e8                	jne    0x43c52c
43c544:	5e                   	pop    %esi
43c545:	33 c0                	xor    %eax,%eax
43c547:	66 3b 55 0c          	cmp    0xc(%ebp),%dx
43c54b:	0f 95 c0             	setne  %al
43c54e:	48                   	dec    %eax
43c54f:	23 c1                	and    %ecx,%eax
43c551:	5d                   	pop    %ebp
43c552:	c3                   	ret
43c553:	66 8b 55 0c          	mov    0xc(%ebp),%dx
43c557:	0f b7 c2             	movzwl %dx,%eax
43c55a:	66 0f 6e c0          	movd   %eax,%xmm0
43c55e:	f2 0f 70 c0 00       	pshuflw $0x0,%xmm0,%xmm0
43c563:	66 0f 70 d0 00       	pshufd $0x0,%xmm0,%xmm2
43c568:	8b c1                	mov    %ecx,%eax
43c56a:	25 ff 0f 00 00       	and    $0xfff,%eax
43c56f:	3d f0 0f 00 00       	cmp    $0xff0,%eax
43c574:	77 22                	ja     0x43c598
43c576:	0f 10 09             	movups (%ecx),%xmm1
43c579:	0f 28 05 b0 07 44 00 	movaps 0x4407b0,%xmm0
43c580:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
43c584:	66 0f 75 ca          	pcmpeqw %xmm2,%xmm1
43c588:	66 0f eb c1          	por    %xmm1,%xmm0
43c58c:	66 0f d7 c0          	pmovmskb %xmm0,%eax
43c590:	85 c0                	test   %eax,%eax
43c592:	75 18                	jne    0x43c5ac
43c594:	6a 10                	push   $0x10
43c596:	eb 0f                	jmp    0x43c5a7
43c598:	0f b7 01             	movzwl (%ecx),%eax
43c59b:	66 3b c2             	cmp    %dx,%ax
43c59e:	74 1c                	je     0x43c5bc
43c5a0:	66 85 c0             	test   %ax,%ax
43c5a3:	74 13                	je     0x43c5b8
43c5a5:	6a 02                	push   $0x2
43c5a7:	58                   	pop    %eax
43c5a8:	03 c8                	add    %eax,%ecx
43c5aa:	eb bc                	jmp    0x43c568
43c5ac:	0f bc c0             	bsf    %eax,%eax
43c5af:	03 c8                	add    %eax,%ecx
43c5b1:	33 c0                	xor    %eax,%eax
43c5b3:	66 39 11             	cmp    %dx,(%ecx)
43c5b6:	eb 93                	jmp    0x43c54b
43c5b8:	33 c0                	xor    %eax,%eax
43c5ba:	5d                   	pop    %ebp
43c5bb:	c3                   	ret
43c5bc:	8b c1                	mov    %ecx,%eax
43c5be:	5d                   	pop    %ebp
43c5bf:	c3                   	ret
43c5c0:	55                   	push   %ebp
43c5c1:	8b ec                	mov    %esp,%ebp
43c5c3:	51                   	push   %ecx
43c5c4:	83 3d 44 58 45 00 01 	cmpl   $0x1,0x455844
43c5cb:	7c 66                	jl     0x43c633
43c5cd:	81 7d 08 b4 02 00 c0 	cmpl   $0xc00002b4,0x8(%ebp)
43c5d4:	74 09                	je     0x43c5df
43c5d6:	81 7d 08 b5 02 00 c0 	cmpl   $0xc00002b5,0x8(%ebp)
43c5dd:	75 54                	jne    0x43c633
43c5df:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
43c5e3:	8b 45 fc             	mov    -0x4(%ebp),%eax
43c5e6:	83 f0 3f             	xor    $0x3f,%eax
43c5e9:	a8 81                	test   $0x81,%al
43c5eb:	74 3f                	je     0x43c62c
43c5ed:	a9 04 02 00 00       	test   $0x204,%eax
43c5f2:	75 07                	jne    0x43c5fb
43c5f4:	b8 8e 00 00 c0       	mov    $0xc000008e,%eax
43c5f9:	c9                   	leave
43c5fa:	c3                   	ret
43c5fb:	a9 02 01 00 00       	test   $0x102,%eax
43c600:	74 2a                	je     0x43c62c
43c602:	a9 08 04 00 00       	test   $0x408,%eax
43c607:	75 07                	jne    0x43c610
43c609:	b8 91 00 00 c0       	mov    $0xc0000091,%eax
43c60e:	c9                   	leave
43c60f:	c3                   	ret
43c610:	a9 10 08 00 00       	test   $0x810,%eax
43c615:	75 07                	jne    0x43c61e
43c617:	b8 93 00 00 c0       	mov    $0xc0000093,%eax
43c61c:	c9                   	leave
43c61d:	c3                   	ret
43c61e:	a9 20 10 00 00       	test   $0x1020,%eax
43c623:	75 0e                	jne    0x43c633
43c625:	b8 8f 00 00 c0       	mov    $0xc000008f,%eax
43c62a:	c9                   	leave
43c62b:	c3                   	ret
43c62c:	b8 90 00 00 c0       	mov    $0xc0000090,%eax
43c631:	c9                   	leave
43c632:	c3                   	ret
43c633:	8b 45 08             	mov    0x8(%ebp),%eax
43c636:	c9                   	leave
43c637:	c3                   	ret
43c638:	cc                   	int3
43c639:	cc                   	int3
43c63a:	cc                   	int3
43c63b:	cc                   	int3
43c63c:	cc                   	int3
43c63d:	cc                   	int3
43c63e:	cc                   	int3
43c63f:	cc                   	int3
43c640:	83 3d 44 58 45 00 06 	cmpl   $0x6,0x455844
43c647:	7c 15                	jl     0x43c65e
43c649:	c5 fa 7e c0          	vmovq  %xmm0,%xmm0
43c64d:	62 f1 fd 08 7a c0    	vcvttpd2qq %xmm0,%xmm0
43c653:	c5 f9 7e c0          	vmovd  %xmm0,%eax
43c657:	c4 e3 79 16 c2 01    	vpextrd $0x1,%xmm0,%edx
43c65d:	c3                   	ret
43c65e:	8b cc                	mov    %esp,%ecx
43c660:	83 c4 f8             	add    $0xfffffff8,%esp
43c663:	83 e4 f8             	and    $0xfffffff8,%esp
43c666:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
43c66b:	8b 04 24             	mov    (%esp),%eax
43c66e:	8b 54 24 04          	mov    0x4(%esp),%edx
43c672:	8b e1                	mov    %ecx,%esp
43c674:	0f ba f2 1f          	btr    $0x1f,%edx
43c678:	1b c9                	sbb    %ecx,%ecx
43c67a:	81 fa 00 00 e0 41    	cmp    $0x41e00000,%edx
43c680:	73 3c                	jae    0x43c6be
43c682:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
43c686:	99                   	cltd
43c687:	c3                   	ret
43c688:	8b ca                	mov    %edx,%ecx
43c68a:	0f ba ea 14          	bts    $0x14,%edx
43c68e:	c1 e9 14             	shr    $0x14,%ecx
43c691:	81 e2 ff ff 1f 00    	and    $0x1fffff,%edx
43c697:	81 e9 33 04 00 00    	sub    $0x433,%ecx
43c69d:	7d 19                	jge    0x43c6b8
43c69f:	f7 d9                	neg    %ecx
43c6a1:	53                   	push   %ebx
43c6a2:	33 db                	xor    %ebx,%ebx
43c6a4:	0f ad c3             	shrd   %cl,%eax,%ebx
43c6a7:	74 08                	je     0x43c6b1
43c6a9:	f3 0f 2c 1d 44 f7 44 	cvttss2si 0x44f744,%ebx
43c6b0:	00
43c6b1:	5b                   	pop    %ebx
43c6b2:	0f ad d0             	shrd   %cl,%edx,%eax
43c6b5:	d3 ea                	shr    %cl,%edx
43c6b7:	c3                   	ret
43c6b8:	0f a5 c2             	shld   %cl,%eax,%edx
43c6bb:	d3 e0                	shl    %cl,%eax
43c6bd:	c3                   	ret
43c6be:	81 fa 00 00 e0 43    	cmp    $0x43e00000,%edx
43c6c4:	73 11                	jae    0x43c6d7
43c6c6:	85 c9                	test   %ecx,%ecx
43c6c8:	74 be                	je     0x43c688
43c6ca:	e8 b9 ff ff ff       	call   0x43c688
43c6cf:	f7 d8                	neg    %eax
43c6d1:	83 d2 00             	adc    $0x0,%edx
43c6d4:	f7 da                	neg    %edx
43c6d6:	c3                   	ret
43c6d7:	e3 06                	jecxz  0x43c6df
43c6d9:	77 04                	ja     0x43c6df
43c6db:	85 c0                	test   %eax,%eax
43c6dd:	74 08                	je     0x43c6e7
43c6df:	f3 0f 2c 0d 40 f7 44 	cvttss2si 0x44f740,%ecx
43c6e6:	00
43c6e7:	ba 00 00 00 80       	mov    $0x80000000,%edx
43c6ec:	33 c0                	xor    %eax,%eax
43c6ee:	c3                   	ret
43c6ef:	cc                   	int3
43c6f0:	83 3d 44 58 45 00 06 	cmpl   $0x6,0x455844
43c6f7:	7c 11                	jl     0x43c70a
43c6f9:	c5 f9 6e c1          	vmovd  %ecx,%xmm0
43c6fd:	c4 e3 79 22 c2 01    	vpinsrd $0x1,%edx,%xmm0,%xmm0
43c703:	62 f1 fe 08 7a c0    	vcvtuqq2pd %xmm0,%xmm0
43c709:	c3                   	ret
43c70a:	0f 57 c0             	xorps  %xmm0,%xmm0
43c70d:	f2 0f 2a c1          	cvtsi2sd %ecx,%xmm0
43c711:	c1 e9 1f             	shr    $0x1f,%ecx
43c714:	f2 0f 58 04 cd 48 f7 	addsd  0x44f748(,%ecx,8),%xmm0
43c71b:	44 00
43c71d:	85 d2                	test   %edx,%edx
43c71f:	74 1f                	je     0x43c740
43c721:	0f 57 c9             	xorps  %xmm1,%xmm1
43c724:	f2 0f 2a ca          	cvtsi2sd %edx,%xmm1
43c728:	c1 ea 1f             	shr    $0x1f,%edx
43c72b:	f2 0f 58 0c d5 48 f7 	addsd  0x44f748(,%edx,8),%xmm1
43c732:	44 00
43c734:	f2 0f 59 0d 50 f7 44 	mulsd  0x44f750,%xmm1
43c73b:	00
43c73c:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
43c740:	c3                   	ret
43c741:	cc                   	int3
43c742:	cc                   	int3
43c743:	cc                   	int3
43c744:	cc                   	int3
43c745:	cc                   	int3
43c746:	cc                   	int3
43c747:	cc                   	int3
43c748:	cc                   	int3
43c749:	cc                   	int3
43c74a:	cc                   	int3
43c74b:	cc                   	int3
43c74c:	cc                   	int3
43c74d:	cc                   	int3
43c74e:	cc                   	int3
43c74f:	cc                   	int3
43c750:	83 ec 10             	sub    $0x10,%esp
43c753:	0f ae 5c 24 04       	stmxcsr 0x4(%esp)
43c758:	8b 44 24 04          	mov    0x4(%esp),%eax
43c75c:	25 80 7f 00 00       	and    $0x7f80,%eax
43c761:	3d 80 1f 00 00       	cmp    $0x1f80,%eax
43c766:	0f 85 0f 0b 00 00    	jne    0x43d27b
43c76c:	d9 3c 24             	fnstcw (%esp)
43c76f:	66 8b 04 24          	mov    (%esp),%ax
43c773:	66 83 e0 7f          	and    $0x7f,%ax
43c777:	66 83 f8 7f          	cmp    $0x7f,%ax
43c77b:	0f 85 fa 0a 00 00    	jne    0x43d27b
43c781:	66 0f 13 04 24       	movlpd %xmm0,(%esp)
43c786:	66 0f 13 4c 24 08    	movlpd %xmm1,0x8(%esp)
43c78c:	66 0f 12 3d 70 f7 44 	movlpd 0x44f770,%xmm7
43c793:	00
43c794:	66 0f 12 15 80 f7 44 	movlpd 0x44f780,%xmm2
43c79b:	00
43c79c:	66 0f 54 f8          	andpd  %xmm0,%xmm7
43c7a0:	f2 0f 10 e0          	movsd  %xmm0,%xmm4
43c7a4:	66 0f 73 d0 2c       	psrlq  $0x2c,%xmm0
43c7a9:	66 0f c5 c0 00       	pextrw $0x0,%xmm0,%eax
43c7ae:	66 0f 56 fa          	orpd   %xmm2,%xmm7
43c7b2:	66 0f c5 cc 03       	pextrw $0x3,%xmm4,%ecx
43c7b7:	25 ff 00 00 00       	and    $0xff,%eax
43c7bc:	83 c0 01             	add    $0x1,%eax
43c7bf:	25 fe 01 00 00       	and    $0x1fe,%eax
43c7c4:	f2 0f 59 3c 85 a8 68 	mulsd  0x4468a8(,%eax,4),%xmm7
43c7cb:	44 00
43c7cd:	66 0f 12 2c 85 a8 68 	movlpd 0x4468a8(,%eax,4),%xmm5
43c7d4:	44 00
43c7d6:	03 c0                	add    %eax,%eax
43c7d8:	66 0f 28 34 85 c0 6c 	movapd 0x446cc0(,%eax,4),%xmm6
43c7df:	44 00
43c7e1:	ba ef 7f 00 00       	mov    $0x7fef,%edx
43c7e6:	2b d1                	sub    %ecx,%edx
43c7e8:	83 e9 10             	sub    $0x10,%ecx
43c7eb:	0b ca                	or     %edx,%ecx
43c7ed:	81 f9 00 00 00 80    	cmp    $0x80000000,%ecx
43c7f3:	0f 83 ce 02 00 00    	jae    0x43cac7
43c7f9:	b9 00 00 00 00       	mov    $0x0,%ecx
43c7fe:	ba 7f fe 03 00       	mov    $0x3fe7f,%edx
43c803:	66 0f 6e ca          	movd   %edx,%xmm1
43c807:	66 0f fb c1          	psubq  %xmm1,%xmm0
43c80b:	66 0f 73 d0 08       	psrlq  $0x8,%xmm0
43c810:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
43c814:	66 0f 12 0d c8 f7 44 	movlpd 0x44f7c8,%xmm1
43c81b:	00
43c81c:	f2 0f 10 df          	movsd  %xmm7,%xmm3
43c820:	66 0f 73 d7 26       	psrlq  $0x26,%xmm7
43c825:	66 0f c5 c7 00       	pextrw $0x0,%xmm7,%eax
43c82a:	66 0f 54 25 70 f7 44 	andpd  0x44f770,%xmm4
43c831:	00
43c832:	25 ff 00 00 00       	and    $0xff,%eax
43c837:	83 c0 01             	add    $0x1,%eax
43c83a:	25 fe 01 00 00       	and    $0x1fe,%eax
43c83f:	f2 0f 59 1c 85 d0 74 	mulsd  0x4474d0(,%eax,4),%xmm3
43c846:	44 00
43c848:	f2 0f 59 2c 85 d0 74 	mulsd  0x4474d0(,%eax,4),%xmm5
43c84f:	44 00
43c851:	03 c0                	add    %eax,%eax
43c853:	66 0f 58 34 85 e0 78 	addpd  0x4478e0(,%eax,4),%xmm6
43c85a:	44 00
43c85c:	66 0f 56 25 80 f7 44 	orpd   0x44f780,%xmm4
43c863:	00
43c864:	f2 0f 58 f0          	addsd  %xmm0,%xmm6
43c868:	66 0f 54 cc          	andpd  %xmm4,%xmm1
43c86c:	f2 0f 10 d3          	movsd  %xmm3,%xmm2
43c870:	66 0f 73 d3 1f       	psrlq  $0x1f,%xmm3
43c875:	66 0f c5 c3 00       	pextrw $0x0,%xmm3,%eax
43c87a:	66 0f 12 05 c8 f7 44 	movlpd 0x44f7c8,%xmm0
43c881:	00
43c882:	f2 0f 5c e1          	subsd  %xmm1,%xmm4
43c886:	66 0f 12 3d d0 f7 44 	movlpd 0x44f7d0,%xmm7
43c88d:	00
43c88e:	25 ff 01 00 00       	and    $0x1ff,%eax
43c893:	83 c0 01             	add    $0x1,%eax
43c896:	25 fe 03 00 00       	and    $0x3fe,%eax
43c89b:	f2 0f 59 2c 85 f0 80 	mulsd  0x4480f0(,%eax,4),%xmm5
43c8a2:	44 00
43c8a4:	f2 0f 59 14 85 f0 80 	mulsd  0x4480f0(,%eax,4),%xmm2
43c8ab:	44 00
43c8ad:	66 0f 58 34 c5 00 89 	addpd  0x448900(,%eax,8),%xmm6
43c8b4:	44 00
43c8b6:	66 0f 54 c5          	andpd  %xmm5,%xmm0
43c8ba:	f2 0f 5c e8          	subsd  %xmm0,%xmm5
43c8be:	f2 0f 58 fa          	addsd  %xmm2,%xmm7
43c8c2:	f2 0f 10 d8          	movsd  %xmm0,%xmm3
43c8c6:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
43c8ca:	f2 0f 59 cd          	mulsd  %xmm5,%xmm1
43c8ce:	f2 0f 59 dc          	mulsd  %xmm4,%xmm3
43c8d2:	f2 0f 5c d0          	subsd  %xmm0,%xmm2
43c8d6:	f2 0f 59 e5          	mulsd  %xmm5,%xmm4
43c8da:	f2 0f 10 c6          	movsd  %xmm6,%xmm0
43c8de:	f2 0f 5c d1          	subsd  %xmm1,%xmm2
43c8e2:	f2 0f 58 f7          	addsd  %xmm7,%xmm6
43c8e6:	66 0f 12 4c 24 08    	movlpd 0x8(%esp),%xmm1
43c8ec:	66 0f c5 c1 03       	pextrw $0x3,%xmm1,%eax
43c8f1:	f2 0f 5c d3          	subsd  %xmm3,%xmm2
43c8f5:	f2 0f 5c c6          	subsd  %xmm6,%xmm0
43c8f9:	66 0f 12 1d c8 f7 44 	movlpd 0x44f7c8,%xmm3
43c900:	00
43c901:	66 0f c5 d6 03       	pextrw $0x3,%xmm6,%edx
43c906:	f2 0f 5c d4          	subsd  %xmm4,%xmm2
43c90a:	f2 0f 10 e6          	movsd  %xmm6,%xmm4
43c90e:	f2 0f 58 c7          	addsd  %xmm7,%xmm0
43c912:	f2 0f 5c fa          	subsd  %xmm2,%xmm7
43c916:	f2 0f 5c f2          	subsd  %xmm2,%xmm6
43c91a:	66 0f 14 ff          	unpcklpd %xmm7,%xmm7
43c91e:	25 f0 7f 00 00       	and    $0x7ff0,%eax
43c923:	3d f0 7f 00 00       	cmp    $0x7ff0,%eax
43c928:	0f 83 1a 05 00 00    	jae    0x43ce48
43c92e:	81 e2 f0 7f 00 00    	and    $0x7ff0,%edx
43c934:	2d f0 3f 00 00       	sub    $0x3ff0,%eax
43c939:	03 c2                	add    %edx,%eax
43c93b:	ba a0 40 00 00       	mov    $0x40a0,%edx
43c940:	2b d0                	sub    %eax,%edx
43c942:	2d 70 3c 00 00       	sub    $0x3c70,%eax
43c947:	0b d0                	or     %eax,%edx
43c949:	81 fa 00 00 00 80    	cmp    $0x80000000,%edx
43c94f:	0f 83 af 08 00 00    	jae    0x43d204
43c955:	f2 0f 5c e6          	subsd  %xmm6,%xmm4
43c959:	f2 0f 5c d4          	subsd  %xmm4,%xmm2
43c95d:	66 0f 12 25 c8 f7 44 	movlpd 0x44f7c8,%xmm4
43c964:	00
43c965:	66 0f 54 d9          	andpd  %xmm1,%xmm3
43c969:	66 0f 54 e6          	andpd  %xmm6,%xmm4
43c96d:	f2 0f 5c c2          	subsd  %xmm2,%xmm0
43c971:	66 0f 57 d2          	xorpd  %xmm2,%xmm2
43c975:	ba 60 40 00 00       	mov    $0x4060,%edx
43c97a:	66 0f c4 d2 03       	pinsrw $0x3,%edx,%xmm2
43c97f:	f2 0f 10 eb          	movsd  %xmm3,%xmm5
43c983:	f2 0f 59 dc          	mulsd  %xmm4,%xmm3
43c987:	f2 0f 5c f4          	subsd  %xmm4,%xmm6
43c98b:	f2 0f 5c cd          	subsd  %xmm5,%xmm1
43c98f:	f2 0f 59 da          	mulsd  %xmm2,%xmm3
43c993:	f2 0f 59 ee          	mulsd  %xmm6,%xmm5
43c997:	66 0f 28 15 10 99 44 	movapd 0x449910,%xmm2
43c99e:	00
43c99f:	f2 0f 59 e1          	mulsd  %xmm1,%xmm4
43c9a3:	f2 0f 2d c3          	cvtsd2si %xmm3,%eax
43c9a7:	f2 0f 59 f1          	mulsd  %xmm1,%xmm6
43c9ab:	66 0f 28 0d 20 99 44 	movapd 0x449920,%xmm1
43c9b2:	00
43c9b3:	f2 0f 58 ec          	addsd  %xmm4,%xmm5
43c9b7:	66 0f 70 e6 ee       	pshufd $0xee,%xmm6,%xmm4