43c36f:	8b 44 24 04          	mov    0x4(%esp),%eax
43c373:	0f b7 4c 24 08       	movzwl 0x8(%esp),%ecx
43c378:	0f ba f1 0f          	btr    $0xf,%ecx
43c37c:	1b d2                	sbb    %edx,%edx
43c37e:	66 81 f9 ff 3f       	cmp    $0x3fff,%cx
43c383:	72 1f                	jb     0x43c3a4
43c385:	85 c0                	test   %eax,%eax
43c387:	79 36                	jns    0x43c3bf
43c389:	66 81 f9 1e 40       	cmp    $0x401e,%cx
43c38e:	73 1c                	jae    0x43c3ac
43c390:	66 f7 d9             	neg    %cx
43c393:	66 81 c1 3e 40       	add    $0x403e,%cx
43c398:	d9 fc                	frndint
43c39a:	dd d8                	fstp   %st(0)
43c39c:	d3 e8                	shr    %cl,%eax
43c39e:	33 c2                	xor    %edx,%eax
43c3a0:	2b c2                	sub    %edx,%eax
43c3a2:	c9                   	leave
43c3a3:	c3                   	ret
43c3a4:	d9 fc                	frndint
43c3a6:	dd d8                	fstp   %st(0)
43c3a8:	33 c0                	xor    %eax,%eax
43c3aa:	c9                   	leave
43c3ab:	c3                   	ret
43c3ac:	77 11                	ja     0x43c3bf
43c3ae:	85 d2                	test   %edx,%edx
43c3b0:	79 0d                	jns    0x43c3bf
43c3b2:	3d 00 00 00 80       	cmp    $0x80000000,%eax
43c3b7:	75 06                	jne    0x43c3bf
43c3b9:	d9 fc                	frndint
43c3bb:	dd d8                	fstp   %st(0)
43c3bd:	c9                   	leave
43c3be:	c3                   	ret
43c3bf:	d8 1d cc ae 44 00    	fcomps 0x44aecc
43c3c5:	c9                   	leave
43c3c6:	b8 00 00 00 80       	mov    $0x80000000,%eax
43c3cb:	c3                   	ret
43c3cc:	cc                   	int3
43c3cd:	cc                   	int3
43c3ce:	cc                   	int3
43c3cf:	cc                   	int3
43c3d0:	55                   	push   %ebp
43c3d1:	8b ec                	mov    %esp,%ebp
43c3d3:	57                   	push   %edi
43c3d4:	83 3d 44 58 45 00 01 	cmpl   $0x1,0x455844
43c3db:	0f 82 fd 00 00 00    	jb     0x43c4de
43c3e1:	8b 7d 08             	mov    0x8(%ebp),%edi
43c3e4:	77 77                	ja     0x43c45d
43c3e6:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
43c3ea:	8b c2                	mov    %edx,%eax
43c3ec:	c1 e2 08             	shl    $0x8,%edx
43c3ef:	0b d0                	or     %eax,%edx
43c3f1:	66 0f 6e da          	movd   %edx,%xmm3
43c3f5:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
43c3fa:	0f 16 db             	movlhps %xmm3,%xmm3
43c3fd:	b9 0f 00 00 00       	mov    $0xf,%ecx
43c402:	23 cf                	and    %edi,%ecx
43c404:	83 c8 ff             	or     $0xffffffff,%eax
43c407:	d3 e0                	shl    %cl,%eax
43c409:	2b f9                	sub    %ecx,%edi
43c40b:	33 d2                	xor    %edx,%edx
43c40d:	f3 0f 6f 0f          	movdqu (%edi),%xmm1
43c411:	66 0f ef d2          	pxor   %xmm2,%xmm2
43c415:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
43c419:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
43c41d:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
43c421:	23 c8                	and    %eax,%ecx
43c423:	75 18                	jne    0x43c43d
43c425:	66 0f d7 c9          	pmovmskb %xmm1,%ecx
43c429:	23 c8                	and    %eax,%ecx
43c42b:	0f bd c1             	bsr    %ecx,%eax
43c42e:	03 c7                	add    %edi,%eax
43c430:	85 c9                	test   %ecx,%ecx
43c432:	0f 45 d0             	cmovne %eax,%edx
43c435:	83 c8 ff             	or     $0xffffffff,%eax
43c438:	83 c7 10             	add    $0x10,%edi
43c43b:	eb d0                	jmp    0x43c40d
43c43d:	53                   	push   %ebx
43c43e:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
43c442:	23 d8                	and    %eax,%ebx
43c444:	d1 e1                	shl    $1,%ecx
43c446:	33 c0                	xor    %eax,%eax
43c448:	2b c1                	sub    %ecx,%eax
43c44a:	23 c8                	and    %eax,%ecx
43c44c:	49                   	dec    %ecx
43c44d:	23 cb                	and    %ebx,%ecx
43c44f:	5b                   	pop    %ebx
43c450:	0f bd c1             	bsr    %ecx,%eax
43c453:	03 c7                	add    %edi,%eax
43c455:	85 c9                	test   %ecx,%ecx
43c457:	0f 44 c2             	cmove  %edx,%eax
43c45a:	5f                   	pop    %edi
43c45b:	c9                   	leave
43c45c:	c3                   	ret
43c45d:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
43c461:	85 d2                	test   %edx,%edx
43c463:	74 39                	je     0x43c49e
43c465:	33 c0                	xor    %eax,%eax
43c467:	f7 c7 0f 00 00 00    	test   $0xf,%edi
43c46d:	74 15                	je     0x43c484
43c46f:	0f b6 0f             	movzbl (%edi),%ecx
43c472:	3b ca                	cmp    %edx,%ecx
43c474:	0f 44 c7             	cmove  %edi,%eax
43c477:	85 c9                	test   %ecx,%ecx
43c479:	74 20                	je     0x43c49b
43c47b:	47                   	inc    %edi
43c47c:	f7 c7 0f 00 00 00    	test   $0xf,%edi
43c482:	75 eb                	jne    0x43c46f
43c484:	66 0f 6e c2          	movd   %edx,%xmm0
43c488:	83 c7 10             	add    $0x10,%edi
43c48b:	66 0f 3a 63 47 f0 40 	pcmpistri $0x40,-0x10(%edi),%xmm0
43c492:	8d 4c 39 f0          	lea    -0x10(%ecx,%edi,1),%ecx
43c496:	0f 42 c1             	cmovb  %ecx,%eax
43c499:	75 ed                	jne    0x43c488
43c49b:	5f                   	pop    %edi
43c49c:	c9                   	leave
43c49d:	c3                   	ret
43c49e:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
43c4a3:	23 c7                	and    %edi,%eax
43c4a5:	66 0f ef c0          	pxor   %xmm0,%xmm0
43c4a9:	66 0f 74 00          	pcmpeqb (%eax),%xmm0
43c4ad:	b9 0f 00 00 00       	mov    $0xf,%ecx
43c4b2:	23 cf                	and    %edi,%ecx
43c4b4:	ba ff ff ff ff       	mov    $0xffffffff,%edx
43c4b9:	d3 e2                	shl    %cl,%edx
43c4bb:	66 0f d7 f8          	pmovmskb %xmm0,%edi
43c4bf:	23 fa                	and    %edx,%edi
43c4c1:	75 14                	jne    0x43c4d7
43c4c3:	66 0f ef c0          	pxor   %xmm0,%xmm0
43c4c7:	66 0f 74 40 10       	pcmpeqb 0x10(%eax),%xmm0
43c4cc:	83 c0 10             	add    $0x10,%eax
43c4cf:	66 0f d7 f8          	pmovmskb %xmm0,%edi
43c4d3:	85 ff                	test   %edi,%edi
43c4d5:	74 ec                	je     0x43c4c3
43c4d7:	0f bc d7             	bsf    %edi,%edx
43c4da:	03 c2                	add    %edx,%eax
43c4dc:	eb bd                	jmp    0x43c49b
43c4de:	8b 7d 08             	mov    0x8(%ebp),%edi
43c4e1:	33 c0                	xor    %eax,%eax
43c4e3:	83 c9 ff             	or     $0xffffffff,%ecx
43c4e6:	f2 ae                	repnz scas %es:(%edi),%al
43c4e8:	83 c1 01             	add    $0x1,%ecx
43c4eb:	f7 d9                	neg    %ecx
43c4ed:	83 ef 01             	sub    $0x1,%edi
43c4f0:	8a 45 0c             	mov    0xc(%ebp),%al
43c4f3:	fd                   	std
43c4f4:	f2 ae                	repnz scas %es:(%edi),%al
43c4f6:	83 c7 01             	add    $0x1,%edi
43c4f9:	38 07                	cmp    %al,(%edi)
43c4fb:	74 04                	je     0x43c501
43c4fd:	33 c0                	xor    %eax,%eax
43c4ff:	eb 02                	jmp    0x43c503
43c501:	8b c7                	mov    %edi,%eax
43c503:	fc                   	cld
43c504:	5f                   	pop    %edi
43c505:	c9                   	leave
43c506:	c3                   	ret
43c507:	cc                   	int3
43c508:	cc                   	int3
43c509:	cc                   	int3
43c50a:	cc                   	int3
43c50b:	cc                   	int3
43c50c:	cc                   	int3
43c50d:	cc                   	int3
43c50e:	cc                   	int3
43c50f:	cc                   	int3
43c510:	55                   	push   %ebp
43c511:	8b ec                	mov    %esp,%ebp
43c513:	83 3d 44 58 45 00 01 	cmpl   $0x1,0x455844
43c51a:	8b 4d 08             	mov    0x8(%ebp),%ecx
43c51d:	7d 34                	jge    0x43c553
43c51f:	0f b7 01             	movzwl (%ecx),%eax
43c522:	8b d0                	mov    %eax,%edx
43c524:	66 85 c0             	test   %ax,%ax
43c527:	74 1c                	je     0x43c545
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