4366cc:	74 0f                	je     0x4366dd
4366ce:	85 ff                	test   %edi,%edi
4366d0:	74 0b                	je     0x4366dd
4366d2:	57                   	push   %edi
4366d3:	56                   	push   %esi
4366d4:	53                   	push   %ebx
4366d5:	e8 96 8f ff ff       	call   0x42f670
4366da:	83 c4 0c             	add    $0xc,%esp
4366dd:	e8 54 d7 ff ff       	call   0x433e36
4366e2:	6a 22                	push   $0x22
4366e4:	5e                   	pop    %esi
4366e5:	89 30                	mov    %esi,(%eax)
4366e7:	e8 8e d6 ff ff       	call   0x433d7a
4366ec:	e9 6c ff ff ff       	jmp    0x43665d
4366f1:	8b ff                	mov    %edi,%edi
4366f3:	55                   	push   %ebp
4366f4:	8b ec                	mov    %esp,%ebp
4366f6:	6a 00                	push   $0x0
4366f8:	ff 75 14             	push   0x14(%ebp)
4366fb:	ff 75 10             	push   0x10(%ebp)
4366fe:	ff 75 0c             	push   0xc(%ebp)
436701:	ff 75 08             	push   0x8(%ebp)
436704:	e8 c7 fe ff ff       	call   0x4365d0
436709:	83 c4 14             	add    $0x14,%esp
43670c:	5d                   	pop    %ebp
43670d:	c3                   	ret
43670e:	8b ff                	mov    %edi,%edi
436710:	55                   	push   %ebp
436711:	8b ec                	mov    %esp,%ebp
436713:	a1 1c ae 46 00       	mov    0x46ae1c,%eax
436718:	56                   	push   %esi
436719:	57                   	push   %edi
43671a:	83 f8 05             	cmp    $0x5,%eax
43671d:	7c 7c                	jl     0x43679b
43671f:	8b 75 08             	mov    0x8(%ebp),%esi
436722:	8b d6                	mov    %esi,%edx
436724:	83 e2 1f             	and    $0x1f,%edx
436727:	6a 20                	push   $0x20
436729:	58                   	pop    %eax
43672a:	2b c2                	sub    %edx,%eax
43672c:	f7 da                	neg    %edx
43672e:	1b d2                	sbb    %edx,%edx
436730:	23 d0                	and    %eax,%edx
436732:	8b 45 0c             	mov    0xc(%ebp),%eax
436735:	3b c2                	cmp    %edx,%eax
436737:	73 02                	jae    0x43673b
436739:	8b d0                	mov    %eax,%edx
43673b:	8d 3c 32             	lea    (%edx,%esi,1),%edi
43673e:	8b ce                	mov    %esi,%ecx
436740:	3b f7                	cmp    %edi,%esi
436742:	74 0a                	je     0x43674e
436744:	80 39 00             	cmpb   $0x0,(%ecx)
436747:	74 05                	je     0x43674e
436749:	41                   	inc    %ecx
43674a:	3b cf                	cmp    %edi,%ecx
43674c:	75 f6                	jne    0x436744
43674e:	2b ce                	sub    %esi,%ecx
436750:	3b ca                	cmp    %edx,%ecx
436752:	0f 85 d7 00 00 00    	jne    0x43682f
436758:	8b f8                	mov    %eax,%edi
43675a:	03 ce                	add    %esi,%ecx
43675c:	2b fa                	sub    %edx,%edi
43675e:	8b c7                	mov    %edi,%eax
436760:	83 e0 1f             	and    $0x1f,%eax
436763:	2b f8                	sub    %eax,%edi
436765:	c5 f4 57 c9          	vxorps %ymm1,%ymm1,%ymm1
436769:	03 f9                	add    %ecx,%edi
43676b:	eb 0f                	jmp    0x43677c
43676d:	c5 f5 74 01          	vpcmpeqb (%ecx),%ymm1,%ymm0
436771:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
436775:	85 c0                	test   %eax,%eax
436777:	75 07                	jne    0x436780
436779:	83 c1 20             	add    $0x20,%ecx
43677c:	3b cf                	cmp    %edi,%ecx
43677e:	75 ed                	jne    0x43676d
436780:	8b 45 0c             	mov    0xc(%ebp),%eax
436783:	03 c6                	add    %esi,%eax
436785:	eb 06                	jmp    0x43678d
436787:	80 39 00             	cmpb   $0x0,(%ecx)
43678a:	74 05                	je     0x436791
43678c:	41                   	inc    %ecx
43678d:	3b c8                	cmp    %eax,%ecx
43678f:	75 f6                	jne    0x436787
436791:	2b ce                	sub    %esi,%ecx
436793:	c5 f8 77             	vzeroupper
436796:	e9 94 00 00 00       	jmp    0x43682f
43679b:	83 f8 01             	cmp    $0x1,%eax
43679e:	7c 75                	jl     0x436815
4367a0:	8b 75 08             	mov    0x8(%ebp),%esi
4367a3:	8b d6                	mov    %esi,%edx
4367a5:	83 e2 0f             	and    $0xf,%edx
4367a8:	6a 10                	push   $0x10
4367aa:	58                   	pop    %eax
4367ab:	2b c2                	sub    %edx,%eax
4367ad:	f7 da                	neg    %edx
4367af:	1b d2                	sbb    %edx,%edx
4367b1:	23 d0                	and    %eax,%edx
4367b3:	8b 45 0c             	mov    0xc(%ebp),%eax
4367b6:	3b c2                	cmp    %edx,%eax
4367b8:	73 02                	jae    0x4367bc
4367ba:	8b d0                	mov    %eax,%edx
4367bc:	8d 3c 32             	lea    (%edx,%esi,1),%edi
4367bf:	8b ce                	mov    %esi,%ecx
4367c1:	3b f7                	cmp    %edi,%esi
4367c3:	74 0a                	je     0x4367cf
4367c5:	80 39 00             	cmpb   $0x0,(%ecx)
4367c8:	74 05                	je     0x4367cf
4367ca:	41                   	inc    %ecx
4367cb:	3b cf                	cmp    %edi,%ecx
4367cd:	75 f6                	jne    0x4367c5
4367cf:	2b ce                	sub    %esi,%ecx
4367d1:	3b ca                	cmp    %edx,%ecx
4367d3:	75 5a                	jne    0x43682f
4367d5:	8b f8                	mov    %eax,%edi
4367d7:	03 ce                	add    %esi,%ecx
4367d9:	2b fa                	sub    %edx,%edi
4367db:	66 0f ef c9          	pxor   %xmm1,%xmm1
4367df:	8b c7                	mov    %edi,%eax
4367e1:	83 e0 0f             	and    $0xf,%eax
4367e4:	2b f8                	sub    %eax,%edi
4367e6:	03 f9                	add    %ecx,%edi
4367e8:	eb 12                	jmp    0x4367fc
4367ea:	0f 28 01             	movaps (%ecx),%xmm0
4367ed:	66 0f 74 c1          	pcmpeqb %xmm1,%xmm0
4367f1:	66 0f d7 c0          	pmovmskb %xmm0,%eax
4367f5:	85 c0                	test   %eax,%eax
4367f7:	75 07                	jne    0x436800
4367f9:	83 c1 10             	add    $0x10,%ecx
4367fc:	3b cf                	cmp    %edi,%ecx
4367fe:	75 ea                	jne    0x4367ea
436800:	8b 45 0c             	mov    0xc(%ebp),%eax
436803:	03 c6                	add    %esi,%eax
436805:	eb 06                	jmp    0x43680d
436807:	80 39 00             	cmpb   $0x0,(%ecx)
43680a:	74 05                	je     0x436811
43680c:	41                   	inc    %ecx
43680d:	3b c8                	cmp    %eax,%ecx
43680f:	75 f6                	jne    0x436807
436811:	2b ce                	sub    %esi,%ecx
436813:	eb 1a                	jmp    0x43682f
436815:	8b 55 08             	mov    0x8(%ebp),%edx
436818:	8b ca                	mov    %edx,%ecx
43681a:	8b 45 0c             	mov    0xc(%ebp),%eax
43681d:	03 c2                	add    %edx,%eax
43681f:	3b d0                	cmp    %eax,%edx
436821:	74 0a                	je     0x43682d
436823:	80 39 00             	cmpb   $0x0,(%ecx)
436826:	74 05                	je     0x43682d
436828:	41                   	inc    %ecx
436829:	3b c8                	cmp    %eax,%ecx
43682b:	75 f6                	jne    0x436823
43682d:	2b ca                	sub    %edx,%ecx
43682f:	5f                   	pop    %edi
436830:	8b c1                	mov    %ecx,%eax
436832:	5e                   	pop    %esi
436833:	5d                   	pop    %ebp
436834:	c3                   	ret
436835:	8b ff                	mov    %edi,%edi
436837:	55                   	push   %ebp
436838:	8b ec                	mov    %esp,%ebp
43683a:	51                   	push   %ecx
43683b:	a1 1c ae 46 00       	mov    0x46ae1c,%eax
436840:	8b 4d 08             	mov    0x8(%ebp),%ecx
436843:	56                   	push   %esi
436844:	57                   	push   %edi
436845:	83 f8 05             	cmp    $0x5,%eax
436848:	0f 8c bc 00 00 00    	jl     0x43690a
43684e:	f6 c1 01             	test   $0x1,%cl
436851:	74 27                	je     0x43687a
436853:	8b 45 0c             	mov    0xc(%ebp),%eax
436856:	8b d1                	mov    %ecx,%edx
436858:	8d 04 41             	lea    (%ecx,%eax,2),%eax
43685b:	3b c8                	cmp    %eax,%ecx
43685d:	0f 84 7d 01 00 00    	je     0x4369e0
436863:	33 ff                	xor    %edi,%edi
436865:	66 39 3a             	cmp    %di,(%edx)
436868:	0f 84 72 01 00 00    	je     0x4369e0
43686e:	83 c2 02             	add    $0x2,%edx
436871:	3b d0                	cmp    %eax,%edx
436873:	75 f0                	jne    0x436865
436875:	e9 66 01 00 00       	jmp    0x4369e0
43687a:	8b f1                	mov    %ecx,%esi
43687c:	83 e6 1f             	and    $0x1f,%esi
43687f:	6a 20                	push   $0x20
436881:	58                   	pop    %eax
436882:	2b c6                	sub    %esi,%eax
436884:	f7 de                	neg    %esi
436886:	1b f6                	sbb    %esi,%esi
436888:	23 f0                	and    %eax,%esi
43688a:	8b 45 0c             	mov    0xc(%ebp),%eax
43688d:	d1 ee                	shr    $1,%esi
43688f:	3b c6                	cmp    %esi,%eax
436891:	73 02                	jae    0x436895
436893:	8b f0                	mov    %eax,%esi
436895:	8d 14 71             	lea    (%ecx,%esi,2),%edx
436898:	33 ff                	xor    %edi,%edi
43689a:	89 55 fc             	mov    %edx,-0x4(%ebp)
43689d:	8b d1                	mov    %ecx,%edx
43689f:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
4368a2:	74 0d                	je     0x4368b1
4368a4:	66 39 3a             	cmp    %di,(%edx)
4368a7:	74 08                	je     0x4368b1
4368a9:	83 c2 02             	add    $0x2,%edx
4368ac:	3b 55 fc             	cmp    -0x4(%ebp),%edx
4368af:	75 f3                	jne    0x4368a4
4368b1:	2b d1                	sub    %ecx,%edx
4368b3:	d1 fa                	sar    $1,%edx
4368b5:	3b d6                	cmp    %esi,%edx
4368b7:	0f 85 27 01 00 00    	jne    0x4369e4
4368bd:	8d 14 51             	lea    (%ecx,%edx,2),%edx
4368c0:	8b c8                	mov    %eax,%ecx
4368c2:	2b ce                	sub    %esi,%ecx
4368c4:	8b c1                	mov    %ecx,%eax
4368c6:	83 e0 1f             	and    $0x1f,%eax
4368c9:	2b c8                	sub    %eax,%ecx
4368cb:	c5 f4 57 c9          	vxorps %ymm1,%ymm1,%ymm1
4368cf:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
4368d2:	eb 0f                	jmp    0x4368e3
4368d4:	c5 f5 75 02          	vpcmpeqw (%edx),%ymm1,%ymm0
4368d8:	c5 fd d7 c0          	vpmovmskb %ymm0,%eax
4368dc:	85 c0                	test   %eax,%eax
4368de:	75 07                	jne    0x4368e7
4368e0:	83 c2 20             	add    $0x20,%edx
4368e3:	3b d1                	cmp    %ecx,%edx
4368e5:	75 ed                	jne    0x4368d4
4368e7:	8b 45 08             	mov    0x8(%ebp),%eax
4368ea:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4368ed:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4368f0:	eb 08                	jmp    0x4368fa
4368f2:	66 39 3a             	cmp    %di,(%edx)
4368f5:	74 07                	je     0x4368fe
4368f7:	83 c2 02             	add    $0x2,%edx
4368fa:	3b d1                	cmp    %ecx,%edx
4368fc:	75 f4                	jne    0x4368f2
4368fe:	2b d0                	sub    %eax,%edx
436900:	d1 fa                	sar    $1,%edx
436902:	c5 f8 77             	vzeroupper
436905:	e9 da 00 00 00       	jmp    0x4369e4
43690a:	83 f8 01             	cmp    $0x1,%eax
43690d:	0f 8c b3 00 00 00    	jl     0x4369c6
436913:	f6 c1 01             	test   $0x1,%cl
436916:	74 27                	je     0x43693f
436918:	8b 45 0c             	mov    0xc(%ebp),%eax
43691b:	8b d1                	mov    %ecx,%edx
43691d:	8d 04 41             	lea    (%ecx,%eax,2),%eax
436920:	3b c8                	cmp    %eax,%ecx
436922:	0f 84 b8 00 00 00    	je     0x4369e0
436928:	33 ff                	xor    %edi,%edi
43692a:	66 39 3a             	cmp    %di,(%edx)
43692d:	0f 84 ad 00 00 00    	je     0x4369e0
436933:	83 c2 02             	add    $0x2,%edx
436936:	3b d0                	cmp    %eax,%edx
436938:	75 f0                	jne    0x43692a
43693a:	e9 a1 00 00 00       	jmp    0x4369e0
43693f:	8b f1                	mov    %ecx,%esi
436941:	83 e6 0f             	and    $0xf,%esi
436944:	6a 10                	push   $0x10
436946:	58                   	pop    %eax
436947:	2b c6                	sub    %esi,%eax
436949:	f7 de                	neg    %esi
43694b:	1b f6                	sbb    %esi,%esi
43694d:	23 f0                	and    %eax,%esi
43694f:	8b 45 0c             	mov    0xc(%ebp),%eax
436952:	d1 ee                	shr    $1,%esi
436954:	3b c6                	cmp    %esi,%eax
436956:	73 02                	jae    0x43695a
436958:	8b f0                	mov    %eax,%esi
43695a:	8d 14 71             	lea    (%ecx,%esi,2),%edx
43695d:	33 ff                	xor    %edi,%edi
43695f:	89 55 fc             	mov    %edx,-0x4(%ebp)
436962:	8b d1                	mov    %ecx,%edx
436964:	3b 4d fc             	cmp    -0x4(%ebp),%ecx
436967:	74 0d                	je     0x436976
436969:	66 39 3a             	cmp    %di,(%edx)
43696c:	74 08                	je     0x436976
43696e:	83 c2 02             	add    $0x2,%edx
436971:	3b 55 fc             	cmp    -0x4(%ebp),%edx
436974:	75 f3                	jne    0x436969
436976:	2b d1                	sub    %ecx,%edx
436978:	d1 fa                	sar    $1,%edx
43697a:	3b d6                	cmp    %esi,%edx
43697c:	75 66                	jne    0x4369e4
43697e:	8d 14 51             	lea    (%ecx,%edx,2),%edx
436981:	66 0f ef c9          	pxor   %xmm1,%xmm1
436985:	8b c8                	mov    %eax,%ecx
436987:	2b ce                	sub    %esi,%ecx
436989:	8b c1                	mov    %ecx,%eax
43698b:	83 e0 0f             	and    $0xf,%eax
43698e:	2b c8                	sub    %eax,%ecx
436990:	8d 0c 4a             	lea    (%edx,%ecx,2),%ecx
436993:	eb 12                	jmp    0x4369a7
436995:	0f 28 02             	movaps (%edx),%xmm0
436998:	66 0f 75 c1          	pcmpeqw %xmm1,%xmm0
43699c:	66 0f d7 c0          	pmovmskb %xmm0,%eax
4369a0:	85 c0                	test   %eax,%eax
4369a2:	75 07                	jne    0x4369ab
4369a4:	83 c2 10             	add    $0x10,%edx
4369a7:	3b d1                	cmp    %ecx,%edx
4369a9:	75 ea                	jne    0x436995
4369ab:	8b 45 08             	mov    0x8(%ebp),%eax
4369ae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4369b1:	8d 0c 48             	lea    (%eax,%ecx,2),%ecx
4369b4:	eb 08                	jmp    0x4369be
4369b6:	66 39 3a             	cmp    %di,(%edx)
4369b9:	74 07                	je     0x4369c2
4369bb:	83 c2 02             	add    $0x2,%edx
4369be:	3b d1                	cmp    %ecx,%edx
4369c0:	75 f4                	jne    0x4369b6
4369c2:	2b d0                	sub    %eax,%edx
4369c4:	eb 1c                	jmp    0x4369e2
4369c6:	8b 45 0c             	mov    0xc(%ebp),%eax
4369c9:	8b d1                	mov    %ecx,%edx
4369cb:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4369ce:	3b c8                	cmp    %eax,%ecx
4369d0:	74 0e                	je     0x4369e0
4369d2:	33 ff                	xor    %edi,%edi
4369d4:	66 39 3a             	cmp    %di,(%edx)
4369d7:	74 07                	je     0x4369e0
4369d9:	83 c2 02             	add    $0x2,%edx
4369dc:	3b d0                	cmp    %eax,%edx
4369de:	75 f4                	jne    0x4369d4
4369e0:	2b d1                	sub    %ecx,%edx
4369e2:	d1 fa                	sar    $1,%edx
4369e4:	5f                   	pop    %edi
4369e5:	8b c2                	mov    %edx,%eax
4369e7:	5e                   	pop    %esi
4369e8:	8b e5                	mov    %ebp,%esp
4369ea:	5d                   	pop    %ebp
4369eb:	c3                   	ret
4369ec:	8b ff                	mov    %edi,%edi
4369ee:	55                   	push   %ebp
4369ef:	8b ec                	mov    %esp,%ebp
4369f1:	8b 45 08             	mov    0x8(%ebp),%eax
4369f4:	b9 ff 07 00 00       	mov    $0x7ff,%ecx
4369f9:	53                   	push   %ebx
4369fa:	56                   	push   %esi
4369fb:	33 d2                	xor    %edx,%edx
4369fd:	8b 18                	mov    (%eax),%ebx
4369ff:	8b 70 04             	mov    0x4(%eax),%esi
436a02:	8b c6                	mov    %esi,%eax
436a04:	c1 e8 14             	shr    $0x14,%eax
436a07:	23 c1                	and    %ecx,%eax
436a09:	57                   	push   %edi
436a0a:	3b c1                	cmp    %ecx,%eax
436a0c:	75 43                	jne    0x436a51
436a0e:	3b d2                	cmp    %edx,%edx
436a10:	75 3f                	jne    0x436a51
436a12:	8b fe                	mov    %esi,%edi
436a14:	8b c3                	mov    %ebx,%eax
436a16:	81 e7 ff ff 0f 00    	and    $0xfffff,%edi