43a4b9:	2b f9                	sub    %ecx,%edi
43a4bb:	33 d2                	xor    %edx,%edx
43a4bd:	f3 0f 6f 0f          	movdqu (%edi),%xmm1
43a4c1:	66 0f ef d2          	pxor   %xmm2,%xmm2
43a4c5:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
43a4c9:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
43a4cd:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
43a4d1:	23 c8                	and    %eax,%ecx
43a4d3:	75 18                	jne    0x43a4ed
43a4d5:	66 0f d7 c9          	pmovmskb %xmm1,%ecx
43a4d9:	23 c8                	and    %eax,%ecx
43a4db:	0f bd c1             	bsr    %ecx,%eax
43a4de:	03 c7                	add    %edi,%eax
43a4e0:	85 c9                	test   %ecx,%ecx
43a4e2:	0f 45 d0             	cmovne %eax,%edx
43a4e5:	83 c8 ff             	or     $0xffffffff,%eax
43a4e8:	83 c7 10             	add    $0x10,%edi
43a4eb:	eb d0                	jmp    0x43a4bd
43a4ed:	53                   	push   %ebx
43a4ee:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
43a4f2:	23 d8                	and    %eax,%ebx
43a4f4:	d1 e1                	shl    $1,%ecx
43a4f6:	33 c0                	xor    %eax,%eax
43a4f8:	2b c1                	sub    %ecx,%eax
43a4fa:	23 c8                	and    %eax,%ecx
43a4fc:	49                   	dec    %ecx
43a4fd:	23 cb                	and    %ebx,%ecx
43a4ff:	5b                   	pop    %ebx
43a500:	0f bd c1             	bsr    %ecx,%eax
43a503:	03 c7                	add    %edi,%eax
43a505:	85 c9                	test   %ecx,%ecx
43a507:	0f 44 c2             	cmove  %edx,%eax
43a50a:	5f                   	pop    %edi
43a50b:	c9                   	leave
43a50c:	c3                   	ret
43a50d:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
43a511:	85 d2                	test   %edx,%edx
43a513:	74 39                	je     0x43a54e
43a515:	33 c0                	xor    %eax,%eax
43a517:	f7 c7 0f 00 00 00    	test   $0xf,%edi
43a51d:	74 15                	je     0x43a534
43a51f:	0f b6 0f             	movzbl (%edi),%ecx
43a522:	3b ca                	cmp    %edx,%ecx
43a524:	0f 44 c7             	cmove  %edi,%eax
43a527:	85 c9                	test   %ecx,%ecx
43a529:	74 20                	je     0x43a54b
43a52b:	47                   	inc    %edi
43a52c:	f7 c7 0f 00 00 00    	test   $0xf,%edi
43a532:	75 eb                	jne    0x43a51f
43a534:	66 0f 6e c2          	movd   %edx,%xmm0
43a538:	83 c7 10             	add    $0x10,%edi
43a53b:	66 0f 3a 63 47 f0 40 	pcmpistri $0x40,-0x10(%edi),%xmm0
43a542:	8d 4c 39 f0          	lea    -0x10(%ecx,%edi,1),%ecx
43a546:	0f 42 c1             	cmovb  %ecx,%eax
43a549:	75 ed                	jne    0x43a538
43a54b:	5f                   	pop    %edi
43a54c:	c9                   	leave
43a54d:	c3                   	ret
43a54e:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
43a553:	23 c7                	and    %edi,%eax
43a555:	66 0f ef c0          	pxor   %xmm0,%xmm0
43a559:	66 0f 74 00          	pcmpeqb (%eax),%xmm0
43a55d:	b9 0f 00 00 00       	mov    $0xf,%ecx
43a562:	23 cf                	and    %edi,%ecx
43a564:	ba ff ff ff ff       	mov    $0xffffffff,%edx
43a569:	d3 e2                	shl    %cl,%edx
43a56b:	66 0f d7 f8          	pmovmskb %xmm0,%edi
43a56f:	23 fa                	and    %edx,%edi
43a571:	75 14                	jne    0x43a587
43a573:	66 0f ef c0          	pxor   %xmm0,%xmm0
43a577:	66 0f 74 40 10       	pcmpeqb 0x10(%eax),%xmm0
43a57c:	83 c0 10             	add    $0x10,%eax
43a57f:	66 0f d7 f8          	pmovmskb %xmm0,%edi
43a583:	85 ff                	test   %edi,%edi
43a585:	74 ec                	je     0x43a573
43a587:	0f bc d7             	bsf    %edi,%edx
43a58a:	03 c2                	add    %edx,%eax
43a58c:	eb bd                	jmp    0x43a54b
43a58e:	8b 7d 08             	mov    0x8(%ebp),%edi
43a591:	33 c0                	xor    %eax,%eax
43a593:	83 c9 ff             	or     $0xffffffff,%ecx
43a596:	f2 ae                	repnz scas %es:(%edi),%al
43a598:	83 c1 01             	add    $0x1,%ecx
43a59b:	f7 d9                	neg    %ecx
43a59d:	83 ef 01             	sub    $0x1,%edi
43a5a0:	8a 45 0c             	mov    0xc(%ebp),%al
43a5a3:	fd                   	std
43a5a4:	f2 ae                	repnz scas %es:(%edi),%al
43a5a6:	83 c7 01             	add    $0x1,%edi
43a5a9:	38 07                	cmp    %al,(%edi)
43a5ab:	74 04                	je     0x43a5b1
43a5ad:	33 c0                	xor    %eax,%eax
43a5af:	eb 02                	jmp    0x43a5b3
43a5b1:	8b c7                	mov    %edi,%eax
43a5b3:	fc                   	cld
43a5b4:	5f                   	pop    %edi
43a5b5:	c9                   	leave
43a5b6:	c3                   	ret
43a5b7:	cc                   	int3
43a5b8:	cc                   	int3
43a5b9:	cc                   	int3
43a5ba:	cc                   	int3
43a5bb:	cc                   	int3
43a5bc:	cc                   	int3
43a5bd:	cc                   	int3
43a5be:	cc                   	int3
43a5bf:	cc                   	int3
43a5c0:	55                   	push   %ebp
43a5c1:	8b ec                	mov    %esp,%ebp
43a5c3:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
43a5ca:	8b 4d 08             	mov    0x8(%ebp),%ecx
43a5cd:	7d 34                	jge    0x43a603
43a5cf:	0f b7 01             	movzwl (%ecx),%eax
43a5d2:	8b d0                	mov    %eax,%edx
43a5d4:	66 85 c0             	test   %ax,%ax
43a5d7:	74 1c                	je     0x43a5f5
43a5d9:	56                   	push   %esi
43a5da:	8b f0                	mov    %eax,%esi
43a5dc:	0f b7 d6             	movzwl %si,%edx
43a5df:	66 3b 75 0c          	cmp    0xc(%ebp),%si
43a5e3:	74 0f                	je     0x43a5f4
43a5e5:	83 c1 02             	add    $0x2,%ecx
43a5e8:	0f b7 01             	movzwl (%ecx),%eax
43a5eb:	8b f0                	mov    %eax,%esi
43a5ed:	8b d0                	mov    %eax,%edx
43a5ef:	66 85 c0             	test   %ax,%ax
43a5f2:	75 e8                	jne    0x43a5dc
43a5f4:	5e                   	pop    %esi
43a5f5:	33 c0                	xor    %eax,%eax
43a5f7:	66 3b 55 0c          	cmp    0xc(%ebp),%dx
43a5fb:	0f 95 c0             	setne  %al
43a5fe:	48                   	dec    %eax
43a5ff:	23 c1                	and    %ecx,%eax
43a601:	5d                   	pop    %ebp
43a602:	c3                   	ret
43a603:	66 8b 55 0c          	mov    0xc(%ebp),%dx
43a607:	0f b7 c2             	movzwl %dx,%eax
43a60a:	66 0f 6e c0          	movd   %eax,%xmm0
43a60e:	f2 0f 70 c0 00       	pshuflw $0x0,%xmm0,%xmm0
43a613:	66 0f 70 d0 00       	pshufd $0x0,%xmm0,%xmm2
43a618:	8b c1                	mov    %ecx,%eax
43a61a:	25 ff 0f 00 00       	and    $0xfff,%eax
43a61f:	3d f0 0f 00 00       	cmp    $0xff0,%eax
43a624:	77 22                	ja     0x43a648
43a626:	0f 10 09             	movups (%ecx),%xmm1
43a629:	0f 28 05 50 f8 43 00 	movaps 0x43f850,%xmm0
43a630:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
43a634:	66 0f 75 ca          	pcmpeqw %xmm2,%xmm1
43a638:	66 0f eb c1          	por    %xmm1,%xmm0
43a63c:	66 0f d7 c0          	pmovmskb %xmm0,%eax
43a640:	85 c0                	test   %eax,%eax
43a642:	75 18                	jne    0x43a65c
43a644:	6a 10                	push   $0x10
43a646:	eb 0f                	jmp    0x43a657
43a648:	0f b7 01             	movzwl (%ecx),%eax
43a64b:	66 3b c2             	cmp    %dx,%ax
43a64e:	74 1c                	je     0x43a66c
43a650:	66 85 c0             	test   %ax,%ax
43a653:	74 13                	je     0x43a668
43a655:	6a 02                	push   $0x2
43a657:	58                   	pop    %eax
43a658:	03 c8                	add    %eax,%ecx
43a65a:	eb bc                	jmp    0x43a618
43a65c:	0f bc c0             	bsf    %eax,%eax
43a65f:	03 c8                	add    %eax,%ecx
43a661:	33 c0                	xor    %eax,%eax
43a663:	66 39 11             	cmp    %dx,(%ecx)
43a666:	eb 93                	jmp    0x43a5fb
43a668:	33 c0                	xor    %eax,%eax
43a66a:	5d                   	pop    %ebp
43a66b:	c3                   	ret
43a66c:	8b c1                	mov    %ecx,%eax
43a66e:	5d                   	pop    %ebp
43a66f:	c3                   	ret
43a670:	8b ff                	mov    %edi,%edi
43a672:	55                   	push   %ebp
43a673:	8b ec                	mov    %esp,%ebp
43a675:	83 ec 10             	sub    $0x10,%esp
43a678:	8d 45 f8             	lea    -0x8(%ebp),%eax
43a67b:	50                   	push   %eax
43a67c:	ff 15 40 e0 43 00    	call   *0x43e040
43a682:	85 c0                	test   %eax,%eax
43a684:	74 34                	je     0x43a6ba
43a686:	8d 45 f0             	lea    -0x10(%ebp),%eax
43a689:	50                   	push   %eax
43a68a:	ff 15 80 e1 43 00    	call   *0x43e180
43a690:	85 c0                	test   %eax,%eax
43a692:	74 26                	je     0x43a6ba
43a694:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43a697:	8b c1                	mov    %ecx,%eax
43a699:	8b 55 fc             	mov    -0x4(%ebp),%edx
43a69c:	0b c2                	or     %edx,%eax
43a69e:	74 1a                	je     0x43a6ba
43a6a0:	8b 45 f0             	mov    -0x10(%ebp),%eax
43a6a3:	89 0d 08 72 45 00    	mov    %ecx,0x457208
43a6a9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
43a6ac:	89 15 0c 72 45 00    	mov    %edx,0x45720c
43a6b2:	89 0d 14 72 45 00    	mov    %ecx,0x457214
43a6b8:	eb 12                	jmp    0x43a6cc
43a6ba:	83 c8 ff             	or     $0xffffffff,%eax
43a6bd:	a3 08 72 45 00       	mov    %eax,0x457208
43a6c2:	a3 0c 72 45 00       	mov    %eax,0x45720c
43a6c7:	a3 14 72 45 00       	mov    %eax,0x457214
43a6cc:	a3 10 72 45 00       	mov    %eax,0x457210
43a6d1:	33 c0                	xor    %eax,%eax
43a6d3:	c9                   	leave
43a6d4:	c3                   	ret
43a6d5:	55                   	push   %ebp
43a6d6:	8b ec                	mov    %esp,%ebp
43a6d8:	51                   	push   %ecx
43a6d9:	83 3d bc 68 45 00 01 	cmpl   $0x1,0x4568bc
43a6e0:	7c 66                	jl     0x43a748
43a6e2:	81 7d 08 b4 02 00 c0 	cmpl   $0xc00002b4,0x8(%ebp)
43a6e9:	74 09                	je     0x43a6f4
43a6eb:	81 7d 08 b5 02 00 c0 	cmpl   $0xc00002b5,0x8(%ebp)
43a6f2:	75 54                	jne    0x43a748
43a6f4:	0f ae 5d fc          	stmxcsr -0x4(%ebp)
43a6f8:	8b 45 fc             	mov    -0x4(%ebp),%eax
43a6fb:	83 f0 3f             	xor    $0x3f,%eax
43a6fe:	a8 81                	test   $0x81,%al
43a700:	74 3f                	je     0x43a741
43a702:	a9 04 02 00 00       	test   $0x204,%eax
43a707:	75 07                	jne    0x43a710
43a709:	b8 8e 00 00 c0       	mov    $0xc000008e,%eax
43a70e:	c9                   	leave
43a70f:	c3                   	ret
43a710:	a9 02 01 00 00       	test   $0x102,%eax
43a715:	74 2a                	je     0x43a741
43a717:	a9 08 04 00 00       	test   $0x408,%eax
43a71c:	75 07                	jne    0x43a725
43a71e:	b8 91 00 00 c0       	mov    $0xc0000091,%eax
43a723:	c9                   	leave
43a724:	c3                   	ret
43a725:	a9 10 08 00 00       	test   $0x810,%eax
43a72a:	75 07                	jne    0x43a733
43a72c:	b8 93 00 00 c0       	mov    $0xc0000093,%eax
43a731:	c9                   	leave
43a732:	c3                   	ret
43a733:	a9 20 10 00 00       	test   $0x1020,%eax
43a738:	75 0e                	jne    0x43a748
43a73a:	b8 8f 00 00 c0       	mov    $0xc000008f,%eax
43a73f:	c9                   	leave
43a740:	c3                   	ret
43a741:	b8 90 00 00 c0       	mov    $0xc0000090,%eax
43a746:	c9                   	leave
43a747:	c3                   	ret
43a748:	8b 45 08             	mov    0x8(%ebp),%eax
43a74b:	c9                   	leave
43a74c:	c3                   	ret
43a74d:	cc                   	int3
43a74e:	cc                   	int3
43a74f:	cc                   	int3
43a750:	83 3d bc 68 45 00 06 	cmpl   $0x6,0x4568bc
43a757:	7c 15                	jl     0x43a76e
43a759:	c5 fa 7e c0          	vmovq  %xmm0,%xmm0
43a75d:	62 f1 fd 08 7a c0    	vcvttpd2qq %xmm0,%xmm0
43a763:	c5 f9 7e c0          	vmovd  %xmm0,%eax
43a767:	c4 e3 79 16 c2 01    	vpextrd $0x1,%xmm0,%edx
43a76d:	c3                   	ret
43a76e:	8b cc                	mov    %esp,%ecx
43a770:	83 c4 f8             	add    $0xfffffff8,%esp
43a773:	83 e4 f8             	and    $0xfffffff8,%esp
43a776:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
43a77b:	8b 04 24             	mov    (%esp),%eax
43a77e:	8b 54 24 04          	mov    0x4(%esp),%edx
43a782:	8b e1                	mov    %ecx,%esp
43a784:	0f ba f2 1f          	btr    $0x1f,%edx
43a788:	1b c9                	sbb    %ecx,%ecx
43a78a:	81 fa 00 00 e0 41    	cmp    $0x41e00000,%edx
43a790:	73 3c                	jae    0x43a7ce
43a792:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
43a796:	99                   	cltd
43a797:	c3                   	ret
43a798:	8b ca                	mov    %edx,%ecx
43a79a:	0f ba ea 14          	bts    $0x14,%edx
43a79e:	c1 e9 14             	shr    $0x14,%ecx
43a7a1:	81 e2 ff ff 1f 00    	and    $0x1fffff,%edx
43a7a7:	81 e9 33 04 00 00    	sub    $0x433,%ecx
43a7ad:	7d 19                	jge    0x43a7c8
43a7af:	f7 d9                	neg    %ecx
43a7b1:	53                   	push   %ebx
43a7b2:	33 db                	xor    %ebx,%ebx
43a7b4:	0f ad c3             	shrd   %cl,%eax,%ebx
43a7b7:	74 08                	je     0x43a7c1
43a7b9:	f3 0f 2c 1d 74 00 45 	cvttss2si 0x450074,%ebx
43a7c0:	00
43a7c1:	5b                   	pop    %ebx
43a7c2:	0f ad d0             	shrd   %cl,%edx,%eax
43a7c5:	d3 ea                	shr    %cl,%edx
43a7c7:	c3                   	ret
43a7c8:	0f a5 c2             	shld   %cl,%eax,%edx
43a7cb:	d3 e0                	shl    %cl,%eax
43a7cd:	c3                   	ret
43a7ce:	81 fa 00 00 e0 43    	cmp    $0x43e00000,%edx
43a7d4:	73 11                	jae    0x43a7e7
43a7d6:	85 c9                	test   %ecx,%ecx
43a7d8:	74 be                	je     0x43a798
43a7da:	e8 b9 ff ff ff       	call   0x43a798
43a7df:	f7 d8                	neg    %eax
43a7e1:	83 d2 00             	adc    $0x0,%edx
43a7e4:	f7 da                	neg    %edx
43a7e6:	c3                   	ret
43a7e7:	e3 06                	jecxz  0x43a7ef
43a7e9:	77 04                	ja     0x43a7ef
43a7eb:	85 c0                	test   %eax,%eax
43a7ed:	74 08                	je     0x43a7f7
43a7ef:	f3 0f 2c 0d 70 00 45 	cvttss2si 0x450070,%ecx
43a7f6:	00
43a7f7:	ba 00 00 00 80       	mov    $0x80000000,%edx
43a7fc:	33 c0                	xor    %eax,%eax
43a7fe:	c3                   	ret
43a7ff:	cc                   	int3
43a800:	83 3d bc 68 45 00 06 	cmpl   $0x6,0x4568bc
43a807:	7c 11                	jl     0x43a81a
43a809:	c5 f9 6e c1          	vmovd  %ecx,%xmm0
43a80d:	c4 e3 79 22 c2 01    	vpinsrd $0x1,%edx,%xmm0,%xmm0
43a813:	62 f1 fe 08 7a c0    	vcvtuqq2pd %xmm0,%xmm0
43a819:	c3                   	ret
43a81a:	0f 57 c0             	xorps  %xmm0,%xmm0
43a81d:	f2 0f 2a c1          	cvtsi2sd %ecx,%xmm0
43a821:	c1 e9 1f             	shr    $0x1f,%ecx
43a824:	f2 0f 58 04 cd 78 00 	addsd  0x450078(,%ecx,8),%xmm0
43a82b:	45 00
43a82d:	85 d2                	test   %edx,%edx
43a82f:	74 1f                	je     0x43a850
43a831:	0f 57 c9             	xorps  %xmm1,%xmm1
43a834:	f2 0f 2a ca          	cvtsi2sd %edx,%xmm1
43a838:	c1 ea 1f             	shr    $0x1f,%edx
43a83b:	f2 0f 58 0c d5 78 00 	addsd  0x450078(,%edx,8),%xmm1
43a842:	45 00
43a844:	f2 0f 59 0d 80 00 45 	mulsd  0x450080,%xmm1
43a84b:	00
43a84c:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
43a850:	c3                   	ret
43a851:	cc                   	int3
43a852:	cc                   	int3
43a853:	cc                   	int3
43a854:	cc                   	int3
43a855:	cc                   	int3
43a856:	cc                   	int3
43a857:	cc                   	int3
43a858:	cc                   	int3
43a859:	cc                   	int3
43a85a:	cc                   	int3
43a85b:	cc                   	int3
43a85c:	cc                   	int3
43a85d:	cc                   	int3
43a85e:	cc                   	int3
43a85f:	cc                   	int3
43a860:	83 ec 10             	sub    $0x10,%esp