43650f:	66 89 01             	mov    %ax,(%ecx)
436512:	33 ff                	xor    %edi,%edi
436514:	47                   	inc    %edi
436515:	e9 84 00 00 00       	jmp    0x43659e
43651a:	8d 45 f4             	lea    -0xc(%ebp),%eax
43651d:	50                   	push   %eax
43651e:	0f b6 06             	movzbl (%esi),%eax
436521:	50                   	push   %eax
436522:	e8 f9 3a 00 00       	call   0x43a020
436527:	59                   	pop    %ecx
436528:	59                   	pop    %ecx
436529:	85 c0                	test   %eax,%eax
43652b:	74 40                	je     0x43656d
43652d:	8b 7d f4             	mov    -0xc(%ebp),%edi
436530:	83 7f 04 01          	cmpl   $0x1,0x4(%edi)
436534:	7e 27                	jle    0x43655d
436536:	3b 5f 04             	cmp    0x4(%edi),%ebx
436539:	7c 25                	jl     0x436560
43653b:	33 c0                	xor    %eax,%eax
43653d:	39 45 08             	cmp    %eax,0x8(%ebp)
436540:	0f 95 c0             	setne  %al
436543:	50                   	push   %eax
436544:	ff 75 08             	push   0x8(%ebp)
436547:	ff 77 04             	push   0x4(%edi)
43654a:	56                   	push   %esi
43654b:	6a 09                	push   $0x9
43654d:	ff 77 08             	push   0x8(%edi)
436550:	ff 15 fc b0 44 00    	call   *0x44b0fc
436556:	8b 7d f4             	mov    -0xc(%ebp),%edi
436559:	85 c0                	test   %eax,%eax
43655b:	75 0b                	jne    0x436568
43655d:	3b 5f 04             	cmp    0x4(%edi),%ebx
436560:	72 2e                	jb     0x436590
436562:	80 7e 01 00          	cmpb   $0x0,0x1(%esi)
436566:	74 28                	je     0x436590
436568:	8b 7f 04             	mov    0x4(%edi),%edi
43656b:	eb 31                	jmp    0x43659e
43656d:	33 c0                	xor    %eax,%eax
43656f:	39 45 08             	cmp    %eax,0x8(%ebp)
436572:	0f 95 c0             	setne  %al
436575:	33 ff                	xor    %edi,%edi
436577:	50                   	push   %eax
436578:	ff 75 08             	push   0x8(%ebp)
43657b:	8b 45 f4             	mov    -0xc(%ebp),%eax
43657e:	47                   	inc    %edi
43657f:	57                   	push   %edi
436580:	56                   	push   %esi
436581:	6a 09                	push   $0x9
436583:	ff 70 08             	push   0x8(%eax)
436586:	ff 15 fc b0 44 00    	call   *0x44b0fc
43658c:	85 c0                	test   %eax,%eax
43658e:	75 0e                	jne    0x43659e
436590:	e8 a1 d8 ff ff       	call   0x433e36
436595:	83 cf ff             	or     $0xffffffff,%edi
436598:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
43659e:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
4365a2:	74 0a                	je     0x4365ae
4365a4:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4365a7:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
4365ae:	8b c7                	mov    %edi,%eax
4365b0:	5f                   	pop    %edi
4365b1:	e9 31 ff ff ff       	jmp    0x4364e7
4365b6:	8b ff                	mov    %edi,%edi
4365b8:	55                   	push   %ebp
4365b9:	8b ec                	mov    %esp,%ebp
4365bb:	6a 00                	push   $0x0
4365bd:	ff 75 10             	push   0x10(%ebp)
4365c0:	ff 75 0c             	push   0xc(%ebp)
4365c3:	ff 75 08             	push   0x8(%ebp)
4365c6:	e8 f1 fe ff ff       	call   0x4364bc
4365cb:	83 c4 10             	add    $0x10,%esp
4365ce:	5d                   	pop    %ebp
4365cf:	c3                   	ret
4365d0:	8b ff                	mov    %edi,%edi
4365d2:	55                   	push   %ebp
4365d3:	8b ec                	mov    %esp,%ebp
4365d5:	83 ec 14             	sub    $0x14,%esp
4365d8:	53                   	push   %ebx
4365d9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4365dc:	57                   	push   %edi
4365dd:	8b 7d 10             	mov    0x10(%ebp),%edi
4365e0:	85 db                	test   %ebx,%ebx
4365e2:	75 12                	jne    0x4365f6
4365e4:	85 ff                	test   %edi,%edi
4365e6:	74 0e                	je     0x4365f6
4365e8:	8b 45 08             	mov    0x8(%ebp),%eax
4365eb:	85 c0                	test   %eax,%eax
4365ed:	74 03                	je     0x4365f2
4365ef:	83 20 00             	andl   $0x0,(%eax)
4365f2:	33 c0                	xor    %eax,%eax
4365f4:	eb 7a                	jmp    0x436670
4365f6:	8b 45 08             	mov    0x8(%ebp),%eax
4365f9:	85 c0                	test   %eax,%eax
4365fb:	74 03                	je     0x436600
4365fd:	83 08 ff             	orl    $0xffffffff,(%eax)
436600:	56                   	push   %esi
436601:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
436607:	76 11                	jbe    0x43661a
436609:	e8 28 d8 ff ff       	call   0x433e36
43660e:	6a 16                	push   $0x16
436610:	5e                   	pop    %esi
436611:	89 30                	mov    %esi,(%eax)
436613:	e8 62 d7 ff ff       	call   0x433d7a
436618:	eb 53                	jmp    0x43666d
43661a:	ff 75 18             	push   0x18(%ebp)
43661d:	8d 4d ec             	lea    -0x14(%ebp),%ecx
436620:	e8 92 b3 ff ff       	call   0x4319b7
436625:	8b 45 f0             	mov    -0x10(%ebp),%eax
436628:	33 f6                	xor    %esi,%esi
43662a:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
436630:	75 5d                	jne    0x43668f
436632:	66 8b 45 14          	mov    0x14(%ebp),%ax
436636:	b9 ff 00 00 00       	mov    $0xff,%ecx
43663b:	66 3b c1             	cmp    %cx,%ax
43663e:	76 36                	jbe    0x436676
436640:	85 db                	test   %ebx,%ebx
436642:	74 0f                	je     0x436653
436644:	85 ff                	test   %edi,%edi
436646:	74 0b                	je     0x436653
436648:	57                   	push   %edi
436649:	56                   	push   %esi
43664a:	53                   	push   %ebx
43664b:	e8 20 90 ff ff       	call   0x42f670
436650:	83 c4 0c             	add    $0xc,%esp
436653:	e8 de d7 ff ff       	call   0x433e36
436658:	6a 2a                	push   $0x2a
43665a:	5e                   	pop    %esi
43665b:	89 30                	mov    %esi,(%eax)
43665d:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
436661:	74 0a                	je     0x43666d
436663:	8b 4d ec             	mov    -0x14(%ebp),%ecx
436666:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
43666d:	8b c6                	mov    %esi,%eax
43666f:	5e                   	pop    %esi
436670:	5f                   	pop    %edi
436671:	5b                   	pop    %ebx
436672:	8b e5                	mov    %ebp,%esp
436674:	5d                   	pop    %ebp
436675:	c3                   	ret
436676:	85 db                	test   %ebx,%ebx
436678:	74 06                	je     0x436680
43667a:	85 ff                	test   %edi,%edi
43667c:	74 5f                	je     0x4366dd
43667e:	88 03                	mov    %al,(%ebx)
436680:	8b 45 08             	mov    0x8(%ebp),%eax
436683:	85 c0                	test   %eax,%eax
436685:	74 d6                	je     0x43665d
436687:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
43668d:	eb ce                	jmp    0x43665d
43668f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
436692:	89 75 fc             	mov    %esi,-0x4(%ebp)
436695:	51                   	push   %ecx
436696:	56                   	push   %esi
436697:	57                   	push   %edi
436698:	53                   	push   %ebx
436699:	6a 01                	push   $0x1
43669b:	8d 4d 14             	lea    0x14(%ebp),%ecx
43669e:	51                   	push   %ecx
43669f:	56                   	push   %esi
4366a0:	ff 70 08             	push   0x8(%eax)
4366a3:	ff 15 00 b1 44 00    	call   *0x44b100
4366a9:	8b c8                	mov    %eax,%ecx
4366ab:	85 c9                	test   %ecx,%ecx
4366ad:	74 10                	je     0x4366bf
4366af:	39 75 fc             	cmp    %esi,-0x4(%ebp)
4366b2:	75 9f                	jne    0x436653
4366b4:	8b 45 08             	mov    0x8(%ebp),%eax
4366b7:	85 c0                	test   %eax,%eax
4366b9:	74 a2                	je     0x43665d
4366bb:	89 08                	mov    %ecx,(%eax)
4366bd:	eb 9e                	jmp    0x43665d
4366bf:	ff 15 e8 b0 44 00    	call   *0x44b0e8
4366c5:	83 f8 7a             	cmp    $0x7a,%eax
4366c8:	75 89                	jne    0x436653
4366ca:	85 db                	test   %ebx,%ebx
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