4147a4:	83 c8 ff             	or     $0xffffffff,%eax
4147a7:	d3 e0                	shl    %cl,%eax
4147a9:	2b f9                	sub    %ecx,%edi
4147ab:	33 d2                	xor    %edx,%edx
4147ad:	f3 0f 6f 0f          	movdqu (%edi),%xmm1
4147b1:	66 0f ef d2          	pxor   %xmm2,%xmm2
4147b5:	66 0f 74 d1          	pcmpeqb %xmm1,%xmm2
4147b9:	66 0f 74 cb          	pcmpeqb %xmm3,%xmm1
4147bd:	66 0f d7 ca          	pmovmskb %xmm2,%ecx
4147c1:	23 c8                	and    %eax,%ecx
4147c3:	75 18                	jne    0x4147dd
4147c5:	66 0f d7 c9          	pmovmskb %xmm1,%ecx
4147c9:	23 c8                	and    %eax,%ecx
4147cb:	0f bd c1             	bsr    %ecx,%eax
4147ce:	03 c7                	add    %edi,%eax
4147d0:	85 c9                	test   %ecx,%ecx
4147d2:	0f 45 d0             	cmovne %eax,%edx
4147d5:	83 c8 ff             	or     $0xffffffff,%eax
4147d8:	83 c7 10             	add    $0x10,%edi
4147db:	eb d0                	jmp    0x4147ad
4147dd:	53                   	push   %ebx
4147de:	66 0f d7 d9          	pmovmskb %xmm1,%ebx
4147e2:	23 d8                	and    %eax,%ebx
4147e4:	d1 e1                	shl    $1,%ecx
4147e6:	33 c0                	xor    %eax,%eax
4147e8:	2b c1                	sub    %ecx,%eax
4147ea:	23 c8                	and    %eax,%ecx
4147ec:	49                   	dec    %ecx
4147ed:	23 cb                	and    %ebx,%ecx
4147ef:	5b                   	pop    %ebx
4147f0:	0f bd c1             	bsr    %ecx,%eax
4147f3:	03 c7                	add    %edi,%eax
4147f5:	85 c9                	test   %ecx,%ecx
4147f7:	0f 44 c2             	cmove  %edx,%eax
4147fa:	5f                   	pop    %edi
4147fb:	c9                   	leave
4147fc:	c3                   	ret
4147fd:	0f b6 55 0c          	movzbl 0xc(%ebp),%edx
414801:	85 d2                	test   %edx,%edx
414803:	74 39                	je     0x41483e
414805:	33 c0                	xor    %eax,%eax
414807:	f7 c7 0f 00 00 00    	test   $0xf,%edi
41480d:	74 15                	je     0x414824
41480f:	0f b6 0f             	movzbl (%edi),%ecx
414812:	3b ca                	cmp    %edx,%ecx
414814:	0f 44 c7             	cmove  %edi,%eax
414817:	85 c9                	test   %ecx,%ecx
414819:	74 20                	je     0x41483b
41481b:	47                   	inc    %edi
41481c:	f7 c7 0f 00 00 00    	test   $0xf,%edi
414822:	75 eb                	jne    0x41480f
414824:	66 0f 6e c2          	movd   %edx,%xmm0
414828:	83 c7 10             	add    $0x10,%edi
41482b:	66 0f 3a 63 47 f0 40 	pcmpistri $0x40,-0x10(%edi),%xmm0
414832:	8d 4c 0f f0          	lea    -0x10(%edi,%ecx,1),%ecx
414836:	0f 42 c1             	cmovb  %ecx,%eax
414839:	75 ed                	jne    0x414828
41483b:	5f                   	pop    %edi
41483c:	c9                   	leave
41483d:	c3                   	ret
41483e:	b8 f0 ff ff ff       	mov    $0xfffffff0,%eax
414843:	23 c7                	and    %edi,%eax
414845:	66 0f ef c0          	pxor   %xmm0,%xmm0
414849:	66 0f 74 00          	pcmpeqb (%eax),%xmm0
41484d:	b9 0f 00 00 00       	mov    $0xf,%ecx
414852:	23 cf                	and    %edi,%ecx
414854:	ba ff ff ff ff       	mov    $0xffffffff,%edx
414859:	d3 e2                	shl    %cl,%edx
41485b:	66 0f d7 f8          	pmovmskb %xmm0,%edi
41485f:	23 fa                	and    %edx,%edi
414861:	75 14                	jne    0x414877
414863:	66 0f ef c0          	pxor   %xmm0,%xmm0
414867:	66 0f 74 40 10       	pcmpeqb 0x10(%eax),%xmm0
41486c:	83 c0 10             	add    $0x10,%eax
41486f:	66 0f d7 f8          	pmovmskb %xmm0,%edi
414873:	85 ff                	test   %edi,%edi
414875:	74 ec                	je     0x414863
414877:	0f bc d7             	bsf    %edi,%edx
41487a:	03 c2                	add    %edx,%eax
41487c:	eb bd                	jmp    0x41483b
41487e:	8b 7d 08             	mov    0x8(%ebp),%edi
414881:	33 c0                	xor    %eax,%eax
414883:	83 c9 ff             	or     $0xffffffff,%ecx
414886:	f2 ae                	repnz scas %es:(%edi),%al
414888:	83 c1 01             	add    $0x1,%ecx
41488b:	f7 d9                	neg    %ecx
41488d:	83 ef 01             	sub    $0x1,%edi
414890:	8a 45 0c             	mov    0xc(%ebp),%al
414893:	fd                   	std
414894:	f2 ae                	repnz scas %es:(%edi),%al
414896:	83 c7 01             	add    $0x1,%edi
414899:	38 07                	cmp    %al,(%edi)
41489b:	74 04                	je     0x4148a1
41489d:	33 c0                	xor    %eax,%eax
41489f:	eb 02                	jmp    0x4148a3
4148a1:	8b c7                	mov    %edi,%eax
4148a3:	fc                   	cld
4148a4:	5f                   	pop    %edi
4148a5:	c9                   	leave
4148a6:	c3                   	ret
4148a7:	55                   	push   %ebp
4148a8:	8b ec                	mov    %esp,%ebp
4148aa:	8b 55 14             	mov    0x14(%ebp),%edx
4148ad:	56                   	push   %esi
4148ae:	8b 75 08             	mov    0x8(%ebp),%esi
4148b1:	57                   	push   %edi
4148b2:	8b 7a 0c             	mov    0xc(%edx),%edi
4148b5:	85 f6                	test   %esi,%esi
4148b7:	75 16                	jne    0x4148cf
4148b9:	e8 bf 38 ff ff       	call   0x40817d
4148be:	6a 16                	push   $0x16
4148c0:	5e                   	pop    %esi
4148c1:	89 30                	mov    %esi,(%eax)
4148c3:	e8 2d 6d ff ff       	call   0x40b5f5
4148c8:	8b c6                	mov    %esi,%eax
4148ca:	e9 84 00 00 00       	jmp    0x414953
4148cf:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4148d3:	76 e4                	jbe    0x4148b9
4148d5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4148d8:	c6 06 00             	movb   $0x0,(%esi)
4148db:	85 c9                	test   %ecx,%ecx
4148dd:	7e 04                	jle    0x4148e3
4148df:	8b c1                	mov    %ecx,%eax
4148e1:	eb 02                	jmp    0x4148e5
4148e3:	33 c0                	xor    %eax,%eax
4148e5:	40                   	inc    %eax
4148e6:	39 45 0c             	cmp    %eax,0xc(%ebp)
4148e9:	77 09                	ja     0x4148f4
4148eb:	e8 8d 38 ff ff       	call   0x40817d
4148f0:	6a 22                	push   $0x22
4148f2:	eb cc                	jmp    0x4148c0
4148f4:	53                   	push   %ebx
4148f5:	8d 5e 01             	lea    0x1(%esi),%ebx
4148f8:	c6 06 30             	movb   $0x30,(%esi)
4148fb:	8b c3                	mov    %ebx,%eax
4148fd:	85 c9                	test   %ecx,%ecx
4148ff:	7e 1a                	jle    0x41491b
414901:	8a 17                	mov    (%edi),%dl
414903:	84 d2                	test   %dl,%dl
414905:	74 06                	je     0x41490d
414907:	0f be d2             	movsbl %dl,%edx
41490a:	47                   	inc    %edi
41490b:	eb 03                	jmp    0x414910
41490d:	6a 30                	push   $0x30
41490f:	5a                   	pop    %edx
414910:	88 10                	mov    %dl,(%eax)
414912:	40                   	inc    %eax
414913:	49                   	dec    %ecx
414914:	85 c9                	test   %ecx,%ecx
414916:	7f e9                	jg     0x414901
414918:	8b 55 14             	mov    0x14(%ebp),%edx
41491b:	c6 00 00             	movb   $0x0,(%eax)
41491e:	85 c9                	test   %ecx,%ecx
414920:	78 12                	js     0x414934
414922:	80 3f 35             	cmpb   $0x35,(%edi)
414925:	7c 0d                	jl     0x414934
414927:	eb 03                	jmp    0x41492c
414929:	c6 00 30             	movb   $0x30,(%eax)
41492c:	48                   	dec    %eax
41492d:	80 38 39             	cmpb   $0x39,(%eax)
414930:	74 f7                	je     0x414929
414932:	fe 00                	incb   (%eax)
414934:	80 3e 31             	cmpb   $0x31,(%esi)
414937:	75 05                	jne    0x41493e
414939:	ff 42 04             	incl   0x4(%edx)
41493c:	eb 12                	jmp    0x414950
41493e:	53                   	push   %ebx
41493f:	e8 ac 13 ff ff       	call   0x405cf0
414944:	40                   	inc    %eax
414945:	50                   	push   %eax
414946:	53                   	push   %ebx
414947:	56                   	push   %esi
414948:	e8 03 fe fe ff       	call   0x404750
41494d:	83 c4 10             	add    $0x10,%esp
414950:	33 c0                	xor    %eax,%eax
414952:	5b                   	pop    %ebx
414953:	5f                   	pop    %edi
414954:	5e                   	pop    %esi
414955:	5d                   	pop    %ebp
414956:	c3                   	ret
414957:	55                   	push   %ebp
414958:	8b ec                	mov    %esp,%ebp
41495a:	83 ec 28             	sub    $0x28,%esp
41495d:	a1 90 08 42 00       	mov    0x420890,%eax
414962:	33 c5                	xor    %ebp,%eax
414964:	89 45 fc             	mov    %eax,-0x4(%ebp)
414967:	53                   	push   %ebx
414968:	56                   	push   %esi
414969:	8b 75 0c             	mov    0xc(%ebp),%esi
41496c:	57                   	push   %edi
41496d:	ff 75 10             	push   0x10(%ebp)
414970:	8b 7d 08             	mov    0x8(%ebp),%edi
414973:	8d 4d d8             	lea    -0x28(%ebp),%ecx
414976:	e8 82 08 ff ff       	call   0x4051fd
41497b:	8d 45 d8             	lea    -0x28(%ebp),%eax
41497e:	50                   	push   %eax
41497f:	33 db                	xor    %ebx,%ebx
414981:	53                   	push   %ebx
414982:	53                   	push   %ebx
414983:	53                   	push   %ebx
414984:	53                   	push   %ebx
414985:	56                   	push   %esi
414986:	8d 45 e8             	lea    -0x18(%ebp),%eax
414989:	50                   	push   %eax
41498a:	8d 45 f0             	lea    -0x10(%ebp),%eax
41498d:	50                   	push   %eax
41498e:	e8 4e 14 00 00       	call   0x415de1
414993:	89 45 ec             	mov    %eax,-0x14(%ebp)
414996:	8d 45 f0             	lea    -0x10(%ebp),%eax
414999:	57                   	push   %edi
41499a:	50                   	push   %eax
41499b:	e8 61 09 00 00       	call   0x415301
4149a0:	8b c8                	mov    %eax,%ecx
4149a2:	8b 45 ec             	mov    -0x14(%ebp),%eax
4149a5:	83 c4 28             	add    $0x28,%esp
4149a8:	a8 03                	test   $0x3,%al
4149aa:	75 0e                	jne    0x4149ba
4149ac:	83 f9 01             	cmp    $0x1,%ecx
4149af:	74 11                	je     0x4149c2
4149b1:	83 f9 02             	cmp    $0x2,%ecx
4149b4:	75 0f                	jne    0x4149c5
4149b6:	6a 04                	push   $0x4
4149b8:	eb 0a                	jmp    0x4149c4
4149ba:	a8 01                	test   $0x1,%al
4149bc:	75 f8                	jne    0x4149b6
4149be:	a8 02                	test   $0x2,%al
4149c0:	74 03                	je     0x4149c5
4149c2:	6a 03                	push   $0x3
4149c4:	5b                   	pop    %ebx
4149c5:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
4149c9:	74 07                	je     0x4149d2
4149cb:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4149ce:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4149d2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4149d5:	5f                   	pop    %edi
4149d6:	5e                   	pop    %esi
4149d7:	8b c3                	mov    %ebx,%eax
4149d9:	33 cd                	xor    %ebp,%ecx
4149db:	5b                   	pop    %ebx
4149dc:	e8 58 fd fe ff       	call   0x404739
4149e1:	c9                   	leave
4149e2:	c3                   	ret
4149e3:	55                   	push   %ebp
4149e4:	8b ec                	mov    %esp,%ebp
4149e6:	83 ec 28             	sub    $0x28,%esp
4149e9:	a1 90 08 42 00       	mov    0x420890,%eax
4149ee:	33 c5                	xor    %ebp,%eax
4149f0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4149f3:	53                   	push   %ebx
4149f4:	56                   	push   %esi
4149f5:	8b 75 0c             	mov    0xc(%ebp),%esi
4149f8:	57                   	push   %edi
4149f9:	ff 75 10             	push   0x10(%ebp)
4149fc:	8b 7d 08             	mov    0x8(%ebp),%edi
4149ff:	8d 4d d8             	lea    -0x28(%ebp),%ecx
414a02:	e8 f6 07 ff ff       	call   0x4051fd
414a07:	8d 45 d8             	lea    -0x28(%ebp),%eax
414a0a:	50                   	push   %eax
414a0b:	33 db                	xor    %ebx,%ebx
414a0d:	53                   	push   %ebx
414a0e:	53                   	push   %ebx
414a0f:	53                   	push   %ebx
414a10:	53                   	push   %ebx
414a11:	56                   	push   %esi
414a12:	8d 45 e8             	lea    -0x18(%ebp),%eax
414a15:	50                   	push   %eax
414a16:	8d 45 f0             	lea    -0x10(%ebp),%eax
414a19:	50                   	push   %eax
414a1a:	e8 c2 13 00 00       	call   0x415de1
414a1f:	89 45 ec             	mov    %eax,-0x14(%ebp)
414a22:	8d 45 f0             	lea    -0x10(%ebp),%eax
414a25:	57                   	push   %edi
414a26:	50                   	push   %eax
414a27:	e8 45 0e 00 00       	call   0x415871
414a2c:	8b c8                	mov    %eax,%ecx
414a2e:	8b 45 ec             	mov    -0x14(%ebp),%eax
414a31:	83 c4 28             	add    $0x28,%esp
414a34:	a8 03                	test   $0x3,%al
414a36:	75 0e                	jne    0x414a46
414a38:	83 f9 01             	cmp    $0x1,%ecx
414a3b:	74 11                	je     0x414a4e
414a3d:	83 f9 02             	cmp    $0x2,%ecx
414a40:	75 0f                	jne    0x414a51
414a42:	6a 04                	push   $0x4
414a44:	eb 0a                	jmp    0x414a50
414a46:	a8 01                	test   $0x1,%al
414a48:	75 f8                	jne    0x414a42
414a4a:	a8 02                	test   $0x2,%al
414a4c:	74 03                	je     0x414a51
414a4e:	6a 03                	push   $0x3
414a50:	5b                   	pop    %ebx
414a51:	80 7d e4 00          	cmpb   $0x0,-0x1c(%ebp)
414a55:	74 07                	je     0x414a5e
414a57:	8b 4d e0             	mov    -0x20(%ebp),%ecx
414a5a:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
414a5e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414a61:	5f                   	pop    %edi
414a62:	5e                   	pop    %esi
414a63:	8b c3                	mov    %ebx,%eax
414a65:	33 cd                	xor    %ebp,%ecx
414a67:	5b                   	pop    %ebx
414a68:	e8 cc fc fe ff       	call   0x404739
414a6d:	c9                   	leave
414a6e:	c3                   	ret
414a6f:	55                   	push   %ebp
414a70:	8b ec                	mov    %esp,%ebp
414a72:	51                   	push   %ecx
414a73:	51                   	push   %ecx
414a74:	8b 45 0c             	mov    0xc(%ebp),%eax
414a77:	53                   	push   %ebx
414a78:	8b 50 04             	mov    0x4(%eax),%edx
414a7b:	56                   	push   %esi
414a7c:	57                   	push   %edi
414a7d:	0f b7 78 06          	movzwl 0x6(%eax),%edi
414a81:	8b 00                	mov    (%eax),%eax
414a83:	8b cf                	mov    %edi,%ecx
414a85:	c1 e9 04             	shr    $0x4,%ecx
414a88:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
414a8e:	81 e7 00 80 00 00    	and    $0x8000,%edi
414a94:	8b f1                	mov    %ecx,%esi
414a96:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
414a9c:	bb 00 00 00 80       	mov    $0x80000000,%ebx
414aa1:	89 7d f8             	mov    %edi,-0x8(%ebp)
414aa4:	89 45 fc             	mov    %eax,-0x4(%ebp)
414aa7:	85 f6                	test   %esi,%esi
414aa9:	74 17                	je     0x414ac2
414aab:	81 fe ff 07 00 00    	cmp    $0x7ff,%esi
414ab1:	74 08                	je     0x414abb
414ab3:	8d 81 00 3c 00 00    	lea    0x3c00(%ecx),%eax
414ab9:	eb 25                	jmp    0x414ae0
414abb:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
414ac0:	eb 21                	jmp    0x414ae3
414ac2:	85 d2                	test   %edx,%edx
414ac4:	75 12                	jne    0x414ad8
414ac6:	85 c0                	test   %eax,%eax
414ac8:	75 0e                	jne    0x414ad8
414aca:	8b 45 08             	mov    0x8(%ebp),%eax
414acd:	21 50 04             	and    %edx,0x4(%eax)
414ad0:	21 10                	and    %edx,(%eax)
414ad2:	66 89 78 08          	mov    %di,0x8(%eax)
414ad6:	eb 58                	jmp    0x414b30
414ad8:	8d 81 01 3c 00 00    	lea    0x3c01(%ecx),%eax
414ade:	33 db                	xor    %ebx,%ebx
414ae0:	0f b7 c0             	movzwl %ax,%eax
414ae3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414ae6:	8b f1                	mov    %ecx,%esi
414ae8:	c1 ee 15             	shr    $0x15,%esi
414aeb:	c1 e2 0b             	shl    $0xb,%edx
414aee:	0b f2                	or     %edx,%esi
414af0:	0b f3                	or     %ebx,%esi