40b637:	5f                   	pop    %edi
40b638:	c3                   	ret
40b639:	33 c0                	xor    %eax,%eax
40b63b:	5e                   	pop    %esi
40b63c:	5b                   	pop    %ebx
40b63d:	5f                   	pop    %edi
40b63e:	c3                   	ret
40b63f:	80 39 00             	cmpb   $0x0,(%ecx)
40b642:	74 f7                	je     0x40b63b
40b644:	8b f9                	mov    %ecx,%edi
40b646:	bb ff 0f 00 00       	mov    $0xfff,%ebx
40b64b:	23 d9                	and    %ecx,%ebx
40b64d:	81 fb f0 0f 00 00    	cmp    $0xff0,%ebx
40b653:	77 06                	ja     0x40b65b
40b655:	f3 0f 6f 01          	movdqu (%ecx),%xmm0
40b659:	eb 22                	jmp    0x40b67d
40b65b:	bb 0f 00 00 00       	mov    $0xf,%ebx
40b660:	0f b6 31             	movzbl (%ecx),%esi
40b663:	83 c1 01             	add    $0x1,%ecx
40b666:	66 0f 3a 20 c6 0f    	pinsrb $0xf,%esi,%xmm0
40b66c:	66 0f 73 d8 01       	psrldq $0x1,%xmm0
40b671:	4b                   	dec    %ebx
40b672:	74 09                	je     0x40b67d
40b674:	85 f6                	test   %esi,%esi
40b676:	74 ee                	je     0x40b666
40b678:	eb e6                	jmp    0x40b660
40b67a:	83 c0 01             	add    $0x1,%eax
40b67d:	66 0f 7e c2          	movd   %xmm0,%edx
40b681:	bb ff 0f 00 00       	mov    $0xfff,%ebx
40b686:	23 d8                	and    %eax,%ebx
40b688:	81 fb f0 0f 00 00    	cmp    $0xff0,%ebx
40b68e:	76 10                	jbe    0x40b6a0
40b690:	0f b6 18             	movzbl (%eax),%ebx
40b693:	85 db                	test   %ebx,%ebx
40b695:	74 a2                	je     0x40b639
40b697:	3a d3                	cmp    %bl,%dl
40b699:	74 18                	je     0x40b6b3
40b69b:	83 c0 01             	add    $0x1,%eax
40b69e:	eb e1                	jmp    0x40b681
40b6a0:	83 c0 10             	add    $0x10,%eax
40b6a3:	66 0f 3a 63 40 f0 0c 	pcmpistri $0xc,-0x10(%eax),%xmm0
40b6aa:	77 d5                	ja     0x40b681
40b6ac:	73 8b                	jae    0x40b639
40b6ae:	83 e8 10             	sub    $0x10,%eax
40b6b1:	03 c1                	add    %ecx,%eax
40b6b3:	8b d7                	mov    %edi,%edx
40b6b5:	8b f0                	mov    %eax,%esi
40b6b7:	bb ff 0f 00 00       	mov    $0xfff,%ebx
40b6bc:	23 de                	and    %esi,%ebx
40b6be:	81 fb f0 0f 00 00    	cmp    $0xff0,%ebx
40b6c4:	77 29                	ja     0x40b6ef
40b6c6:	bb ff 0f 00 00       	mov    $0xfff,%ebx
40b6cb:	23 da                	and    %edx,%ebx
40b6cd:	81 fb f0 0f 00 00    	cmp    $0xff0,%ebx
40b6d3:	77 1a                	ja     0x40b6ef
40b6d5:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
40b6d9:	83 c6 10             	add    $0x10,%esi
40b6dc:	83 c2 10             	add    $0x10,%edx
40b6df:	66 0f 3a 63 4e f0 0c 	pcmpistri $0xc,-0x10(%esi),%xmm1
40b6e6:	71 92                	jno    0x40b67a
40b6e8:	79 cd                	jns    0x40b6b7
40b6ea:	e9 4c ff ff ff       	jmp    0x40b63b
40b6ef:	0f b6 1a             	movzbl (%edx),%ebx
40b6f2:	85 db                	test   %ebx,%ebx
40b6f4:	0f 84 41 ff ff ff    	je     0x40b63b
40b6fa:	3a 1e                	cmp    (%esi),%bl
40b6fc:	0f 85 78 ff ff ff    	jne    0x40b67a
40b702:	83 c6 01             	add    $0x1,%esi
40b705:	83 c2 01             	add    $0x1,%edx
40b708:	eb ad                	jmp    0x40b6b7
40b70a:	8a 11                	mov    (%ecx),%dl
40b70c:	8b f8                	mov    %eax,%edi
40b70e:	84 d2                	test   %dl,%dl
40b710:	0f 84 6f 00 00 00    	je     0x40b785
40b716:	8a 71 01             	mov    0x1(%ecx),%dh
40b719:	84 f6                	test   %dh,%dh
40b71b:	74 55                	je     0x40b772
40b71d:	8b f7                	mov    %edi,%esi
40b71f:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40b723:	8a 07                	mov    (%edi),%al
40b725:	83 c6 01             	add    $0x1,%esi
40b728:	3a c2                	cmp    %dl,%al
40b72a:	74 17                	je     0x40b743
40b72c:	84 c0                	test   %al,%al
40b72e:	74 0d                	je     0x40b73d
40b730:	8a 06                	mov    (%esi),%al
40b732:	83 c6 01             	add    $0x1,%esi
40b735:	3a c2                	cmp    %dl,%al
40b737:	74 0a                	je     0x40b743
40b739:	84 c0                	test   %al,%al
40b73b:	75 f3                	jne    0x40b730
40b73d:	5e                   	pop    %esi
40b73e:	5b                   	pop    %ebx
40b73f:	5f                   	pop    %edi
40b740:	33 c0                	xor    %eax,%eax
40b742:	c3                   	ret
40b743:	8a 06                	mov    (%esi),%al
40b745:	83 c6 01             	add    $0x1,%esi
40b748:	3a c6                	cmp    %dh,%al
40b74a:	75 e9                	jne    0x40b735
40b74c:	8d 7e ff             	lea    -0x1(%esi),%edi
40b74f:	8a 61 02             	mov    0x2(%ecx),%ah
40b752:	84 e4                	test   %ah,%ah
40b754:	74 28                	je     0x40b77e
40b756:	8a 06                	mov    (%esi),%al
40b758:	83 c6 02             	add    $0x2,%esi
40b75b:	3a c4                	cmp    %ah,%al
40b75d:	75 be                	jne    0x40b71d
40b75f:	8a 41 03             	mov    0x3(%ecx),%al
40b762:	84 c0                	test   %al,%al
40b764:	74 18                	je     0x40b77e
40b766:	8a 66 ff             	mov    -0x1(%esi),%ah
40b769:	83 c1 02             	add    $0x2,%ecx
40b76c:	3a c4                	cmp    %ah,%al
40b76e:	74 df                	je     0x40b74f
40b770:	eb ab                	jmp    0x40b71d
40b772:	33 c0                	xor    %eax,%eax
40b774:	5e                   	pop    %esi
40b775:	5b                   	pop    %ebx
40b776:	5f                   	pop    %edi
40b777:	8a c2                	mov    %dl,%al
40b779:	e9 70 01 00 00       	jmp    0x40b8ee
40b77e:	8d 47 ff             	lea    -0x1(%edi),%eax
40b781:	5e                   	pop    %esi
40b782:	5b                   	pop    %ebx
40b783:	5f                   	pop    %edi
40b784:	c3                   	ret
40b785:	8b c7                	mov    %edi,%eax
40b787:	5e                   	pop    %esi
40b788:	5b                   	pop    %ebx
40b789:	5f                   	pop    %edi
40b78a:	c3                   	ret
40b78b:	55                   	push   %ebp
40b78c:	8b ec                	mov    %esp,%ebp
40b78e:	57                   	push   %edi
40b78f:	8b 7d 08             	mov    0x8(%ebp),%edi
40b792:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
40b796:	74 48                	je     0x40b7e0
40b798:	8b 0f                	mov    (%edi),%ecx
40b79a:	85 c9                	test   %ecx,%ecx
40b79c:	74 42                	je     0x40b7e0
40b79e:	8d 51 01             	lea    0x1(%ecx),%edx
40b7a1:	8a 01                	mov    (%ecx),%al
40b7a3:	41                   	inc    %ecx
40b7a4:	84 c0                	test   %al,%al
40b7a6:	75 f9                	jne    0x40b7a1
40b7a8:	2b ca                	sub    %edx,%ecx
40b7aa:	53                   	push   %ebx
40b7ab:	56                   	push   %esi
40b7ac:	8d 59 01             	lea    0x1(%ecx),%ebx
40b7af:	53                   	push   %ebx
40b7b0:	e8 7b b4 ff ff       	call   0x406c30
40b7b5:	8b f0                	mov    %eax,%esi
40b7b7:	59                   	pop    %ecx
40b7b8:	85 f6                	test   %esi,%esi
40b7ba:	74 19                	je     0x40b7d5
40b7bc:	ff 37                	push   (%edi)
40b7be:	53                   	push   %ebx
40b7bf:	56                   	push   %esi
40b7c0:	e8 10 07 01 00       	call   0x41bed5
40b7c5:	8b 45 0c             	mov    0xc(%ebp),%eax
40b7c8:	8b ce                	mov    %esi,%ecx
40b7ca:	83 c4 0c             	add    $0xc,%esp
40b7cd:	33 f6                	xor    %esi,%esi
40b7cf:	89 08                	mov    %ecx,(%eax)
40b7d1:	c6 40 04 01          	movb   $0x1,0x4(%eax)
40b7d5:	56                   	push   %esi
40b7d6:	e8 35 b4 ff ff       	call   0x406c10
40b7db:	59                   	pop    %ecx
40b7dc:	5e                   	pop    %esi
40b7dd:	5b                   	pop    %ebx
40b7de:	eb 0b                	jmp    0x40b7eb
40b7e0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b7e3:	8b 07                	mov    (%edi),%eax
40b7e5:	89 01                	mov    %eax,(%ecx)
40b7e7:	c6 41 04 00          	movb   $0x0,0x4(%ecx)
40b7eb:	5f                   	pop    %edi
40b7ec:	5d                   	pop    %ebp
40b7ed:	c3                   	ret
40b7ee:	55                   	push   %ebp
40b7ef:	8b ec                	mov    %esp,%ebp
40b7f1:	56                   	push   %esi
40b7f2:	8b 75 08             	mov    0x8(%ebp),%esi
40b7f5:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
40b7f9:	74 08                	je     0x40b803
40b7fb:	ff 36                	push   (%esi)
40b7fd:	e8 0e b4 ff ff       	call   0x406c10
40b802:	59                   	pop    %ecx
40b803:	83 26 00             	andl   $0x0,(%esi)
40b806:	c6 46 04 00          	movb   $0x0,0x4(%esi)
40b80a:	5e                   	pop    %esi
40b80b:	5d                   	pop    %ebp
40b80c:	c3                   	ret
40b80d:	55                   	push   %ebp
40b80e:	8b ec                	mov    %esp,%ebp
40b810:	83 ec 14             	sub    $0x14,%esp
40b813:	8b 45 08             	mov    0x8(%ebp),%eax
40b816:	53                   	push   %ebx
40b817:	57                   	push   %edi
40b818:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b81b:	bb 20 05 93 19       	mov    $0x19930520,%ebx
40b820:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b823:	85 ff                	test   %edi,%edi
40b825:	74 2e                	je     0x40b855
40b827:	f6 07 10             	testb  $0x10,(%edi)
40b82a:	74 1e                	je     0x40b84a
40b82c:	8b 08                	mov    (%eax),%ecx
40b82e:	83 e9 04             	sub    $0x4,%ecx
40b831:	56                   	push   %esi
40b832:	51                   	push   %ecx
40b833:	8b 01                	mov    (%ecx),%eax
40b835:	8b 70 20             	mov    0x20(%eax),%esi
40b838:	8b ce                	mov    %esi,%ecx
40b83a:	8b 78 18             	mov    0x18(%eax),%edi
40b83d:	ff 15 68 12 43 00    	call   *0x431268
40b843:	ff d6                	call   *%esi
40b845:	5e                   	pop    %esi
40b846:	85 ff                	test   %edi,%edi
40b848:	74 0b                	je     0x40b855
40b84a:	f6 07 08             	testb  $0x8,(%edi)
40b84d:	b8 00 40 99 01       	mov    $0x1994000,%eax
40b852:	0f 45 d8             	cmovne %eax,%ebx
40b855:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b858:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b85b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40b85e:	50                   	push   %eax
40b85f:	6a 03                	push   $0x3
40b861:	6a 01                	push   $0x1
40b863:	68 63 73 6d e0       	push   $0xe06d7363
40b868:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40b86b:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b86e:	ff 15 d0 10 43 00    	call   *0x4310d0
40b874:	5f                   	pop    %edi
40b875:	5b                   	pop    %ebx
40b876:	c9                   	leave
40b877:	c2 08 00             	ret    $0x8
40b87a:	cc                   	int3
40b87b:	cc                   	int3
40b87c:	cc                   	int3
40b87d:	cc                   	int3
40b87e:	cc                   	int3
40b87f:	cc                   	int3
40b880:	83 3d d0 f5 43 00 01 	cmpl   $0x1,0x43f5d0
40b887:	72 5f                	jb     0x40b8e8
40b889:	0f b6 44 24 08       	movzbl 0x8(%esp),%eax
40b88e:	8b d0                	mov    %eax,%edx
40b890:	c1 e0 08             	shl    $0x8,%eax
40b893:	0b d0                	or     %eax,%edx
40b895:	66 0f 6e da          	movd   %edx,%xmm3
40b899:	f2 0f 70 db 00       	pshuflw $0x0,%xmm3,%xmm3
40b89e:	0f 16 db             	movlhps %xmm3,%xmm3
40b8a1:	8b 54 24 04          	mov    0x4(%esp),%edx
40b8a5:	b9 0f 00 00 00       	mov    $0xf,%ecx
40b8aa:	83 c8 ff             	or     $0xffffffff,%eax
40b8ad:	23 ca                	and    %edx,%ecx
40b8af:	d3 e0                	shl    %cl,%eax
40b8b1:	2b d1                	sub    %ecx,%edx
40b8b3:	f3 0f 6f 0a          	movdqu (%edx),%xmm1
40b8b7:	66 0f ef d2          	pxor   %xmm2,%xmm2
40b8bb:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
40b8bf:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
40b8c3:	66 0f eb d1          	por    %xmm1,%xmm2
40b8c7:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
40b8cb:	23 c8                	and    %eax,%ecx
40b8cd:	75 08                	jne    0x40b8d7
40b8cf:	83 c8 ff             	or     $0xffffffff,%eax
40b8d2:	83 c2 10             	add    $0x10,%edx
40b8d5:	eb dc                	jmp    0x40b8b3
40b8d7:	0f bc c1             	bsf    %ecx,%eax
40b8da:	03 c2                	add    %edx,%eax
40b8dc:	66 0f 7e da          	movd   %xmm3,%edx
40b8e0:	33 c9                	xor    %ecx,%ecx
40b8e2:	3a 10                	cmp    (%eax),%dl
40b8e4:	0f 45 c1             	cmovne %ecx,%eax
40b8e7:	c3                   	ret
40b8e8:	33 c0                	xor    %eax,%eax
40b8ea:	8a 44 24 08          	mov    0x8(%esp),%al
40b8ee:	53                   	push   %ebx
40b8ef:	8b d8                	mov    %eax,%ebx
40b8f1:	c1 e0 08             	shl    $0x8,%eax
40b8f4:	8b 54 24 08          	mov    0x8(%esp),%edx
40b8f8:	f7 c2 03 00 00 00    	test   $0x3,%edx
40b8fe:	74 15                	je     0x40b915
40b900:	8a 0a                	mov    (%edx),%cl
40b902:	83 c2 01             	add    $0x1,%edx
40b905:	3a cb                	cmp    %bl,%cl
40b907:	74 59                	je     0x40b962
40b909:	84 c9                	test   %cl,%cl
40b90b:	74 51                	je     0x40b95e
40b90d:	f7 c2 03 00 00 00    	test   $0x3,%edx
40b913:	75 eb                	jne    0x40b900
40b915:	0b d8                	or     %eax,%ebx
40b917:	57                   	push   %edi
40b918:	8b c3                	mov    %ebx,%eax
40b91a:	c1 e3 10             	shl    $0x10,%ebx
40b91d:	56                   	push   %esi
40b91e:	0b d8                	or     %eax,%ebx
40b920:	8b 0a                	mov    (%edx),%ecx
40b922:	bf ff fe fe 7e       	mov    $0x7efefeff,%edi
40b927:	8b c1                	mov    %ecx,%eax
40b929:	8b f7                	mov    %edi,%esi
40b92b:	33 cb                	xor    %ebx,%ecx
40b92d:	03 f0                	add    %eax,%esi
40b92f:	03 f9                	add    %ecx,%edi
40b931:	83 f1 ff             	xor    $0xffffffff,%ecx
40b934:	83 f0 ff             	xor    $0xffffffff,%eax
40b937:	33 cf                	xor    %edi,%ecx
40b939:	33 c6                	xor    %esi,%eax
40b93b:	83 c2 04             	add    $0x4,%edx
40b93e:	81 e1 00 01 01 81    	and    $0x81010100,%ecx
40b944:	75 21                	jne    0x40b967
40b946:	25 00 01 01 81       	and    $0x81010100,%eax
40b94b:	74 d3                	je     0x40b920
40b94d:	25 00 01 01 01       	and    $0x1010100,%eax
40b952:	75 08                	jne    0x40b95c
40b954:	81 e6 00 00 00 80    	and    $0x80000000,%esi
40b95a:	75 c4                	jne    0x40b920
40b95c:	5e                   	pop    %esi
40b95d:	5f                   	pop    %edi
40b95e:	5b                   	pop    %ebx
40b95f:	33 c0                	xor    %eax,%eax
40b961:	c3                   	ret
40b962:	8d 42 ff             	lea    -0x1(%edx),%eax
40b965:	5b                   	pop    %ebx
40b966:	c3                   	ret
40b967:	8b 42 fc             	mov    -0x4(%edx),%eax
40b96a:	3a c3                	cmp    %bl,%al
40b96c:	74 36                	je     0x40b9a4
40b96e:	84 c0                	test   %al,%al
40b970:	74 ea                	je     0x40b95c
40b972:	3a e3                	cmp    %bl,%ah
40b974:	74 27                	je     0x40b99d
40b976:	84 e4                	test   %ah,%ah
40b978:	74 e2                	je     0x40b95c
40b97a:	c1 e8 10             	shr    $0x10,%eax
40b97d:	3a c3                	cmp    %bl,%al
40b97f:	74 15                	je     0x40b996
40b981:	84 c0                	test   %al,%al
40b983:	74 d7                	je     0x40b95c
40b985:	3a e3                	cmp    %bl,%ah
40b987:	74 06                	je     0x40b98f
40b989:	84 e4                	test   %ah,%ah
40b98b:	74 cf                	je     0x40b95c
40b98d:	eb 91                	jmp    0x40b920
40b98f:	5e                   	pop    %esi
40b990:	5f                   	pop    %edi
40b991:	8d 42 ff             	lea    -0x1(%edx),%eax
40b994:	5b                   	pop    %ebx
40b995:	c3                   	ret
40b996:	8d 42 fe             	lea    -0x2(%edx),%eax