41176f:	5b                   	pop    %ebx
411770:	c9                   	leave
411771:	c2 0c 00             	ret    $0xc
411774:	53                   	push   %ebx
411775:	56                   	push   %esi
411776:	8b 74 24 10          	mov    0x10(%esp),%esi
41177a:	57                   	push   %edi
41177b:	8b 7c 24 18          	mov    0x18(%esp),%edi
41177f:	57                   	push   %edi
411780:	56                   	push   %esi
411781:	6a ff                	push   $0xffffffff
411783:	ff 74 24 1c          	push   0x1c(%esp)
411787:	33 c0                	xor    %eax,%eax
411789:	50                   	push   %eax
41178a:	50                   	push   %eax
41178b:	b3 01                	mov    $0x1,%bl
41178d:	66 89 06             	mov    %ax,(%esi)
411790:	ff 15 2c a2 42 00    	call   *0x42a22c
411796:	85 c0                	test   %eax,%eax
411798:	75 02                	jne    0x41179c
41179a:	32 db                	xor    %bl,%bl
41179c:	85 ff                	test   %edi,%edi
41179e:	76 07                	jbe    0x4117a7
4117a0:	33 c0                	xor    %eax,%eax
4117a2:	66 89 44 7e fe       	mov    %ax,-0x2(%esi,%edi,2)
4117a7:	5f                   	pop    %edi
4117a8:	5e                   	pop    %esi
4117a9:	8a c3                	mov    %bl,%al
4117ab:	5b                   	pop    %ebx
4117ac:	c2 0c 00             	ret    $0xc
4117af:	8b 44 24 08          	mov    0x8(%esp),%eax
4117b3:	56                   	push   %esi
4117b4:	33 f6                	xor    %esi,%esi
4117b6:	39 74 24 10          	cmp    %esi,0x10(%esp)
4117ba:	76 1f                	jbe    0x4117db
4117bc:	8b 4c 24 08          	mov    0x8(%esp),%ecx
4117c0:	8a 11                	mov    (%ecx),%dl
4117c2:	88 14 70             	mov    %dl,(%eax,%esi,2)
4117c5:	8a 51 01             	mov    0x1(%ecx),%dl
4117c8:	88 54 70 01          	mov    %dl,0x1(%eax,%esi,2)
4117cc:	66 83 39 00          	cmpw   $0x0,(%ecx)
4117d0:	74 09                	je     0x4117db
4117d2:	46                   	inc    %esi
4117d3:	41                   	inc    %ecx
4117d4:	41                   	inc    %ecx
4117d5:	3b 74 24 10          	cmp    0x10(%esp),%esi
4117d9:	72 e5                	jb     0x4117c0
4117db:	5e                   	pop    %esi
4117dc:	c2 0c 00             	ret    $0xc
4117df:	55                   	push   %ebp
4117e0:	8b ec                	mov    %esp,%ebp
4117e2:	56                   	push   %esi
4117e3:	33 f6                	xor    %esi,%esi
4117e5:	39 75 10             	cmp    %esi,0x10(%ebp)
4117e8:	76 2d                	jbe    0x411817
4117ea:	8b 4d 08             	mov    0x8(%ebp),%ecx
4117ed:	8b 55 0c             	mov    0xc(%ebp),%edx
4117f0:	2b d1                	sub    %ecx,%edx
4117f2:	57                   	push   %edi
4117f3:	66 0f b6 41 01       	movzbw 0x1(%ecx),%ax
4117f8:	bf 00 01 00 00       	mov    $0x100,%edi
4117fd:	66 0f af c7          	imul   %di,%ax
411801:	66 0f b6 39          	movzbw (%ecx),%di
411805:	66 03 c7             	add    %di,%ax
411808:	66 89 04 0a          	mov    %ax,(%edx,%ecx,1)
41180c:	74 08                	je     0x411816
41180e:	46                   	inc    %esi
41180f:	41                   	inc    %ecx
411810:	41                   	inc    %ecx
411811:	3b 75 10             	cmp    0x10(%ebp),%esi
411814:	72 dd                	jb     0x4117f3
411816:	5f                   	pop    %edi
411817:	8b 45 0c             	mov    0xc(%ebp),%eax
41181a:	5e                   	pop    %esi
41181b:	5d                   	pop    %ebp
41181c:	c2 0c 00             	ret    $0xc
41181f:	55                   	push   %ebp
411820:	8b ec                	mov    %esp,%ebp
411822:	8b 45 10             	mov    0x10(%ebp),%eax
411825:	8b 4d 0c             	mov    0xc(%ebp),%ecx
411828:	53                   	push   %ebx
411829:	48                   	dec    %eax
41182a:	56                   	push   %esi
41182b:	8b 75 08             	mov    0x8(%ebp),%esi
41182e:	89 45 10             	mov    %eax,0x10(%ebp)
411831:	0f b7 06             	movzwl (%esi),%eax
411834:	57                   	push   %edi
411835:	66 85 c0             	test   %ax,%ax
411838:	0f 84 c1 00 00 00    	je     0x4118ff
41183e:	b3 80                	mov    $0x80,%bl
411840:	ff 4d 10             	decl   0x10(%ebp)
411843:	0f 88 b6 00 00 00    	js     0x4118ff
411849:	0f b7 c0             	movzwl %ax,%eax
41184c:	46                   	inc    %esi
41184d:	46                   	inc    %esi
41184e:	3d 80 00 00 00       	cmp    $0x80,%eax
411853:	0f 82 97 00 00 00    	jb     0x4118f0
411859:	3d 00 08 00 00       	cmp    $0x800,%eax
41185e:	73 0f                	jae    0x41186f
411860:	ff 4d 10             	decl   0x10(%ebp)
411863:	78 0a                	js     0x41186f
411865:	8b d0                	mov    %eax,%edx
411867:	c1 ea 06             	shr    $0x6,%edx
41186a:	80 ca c0             	or     $0xc0,%dl
41186d:	eb 7a                	jmp    0x4118e9
41186f:	8d 90 00 28 ff ff    	lea    -0xd800(%eax),%edx
411875:	81 fa ff 03 00 00    	cmp    $0x3ff,%edx
41187b:	77 26                	ja     0x4118a3
41187d:	0f b7 16             	movzwl (%esi),%edx
411880:	bf 00 dc 00 00       	mov    $0xdc00,%edi
411885:	66 3b d7             	cmp    %di,%dx
411888:	72 19                	jb     0x4118a3
41188a:	bf ff df 00 00       	mov    $0xdfff,%edi
41188f:	66 3b d7             	cmp    %di,%dx
411892:	77 0f                	ja     0x4118a3
411894:	05 09 28 ff ff       	add    $0xffff2809,%eax
411899:	c1 e0 0a             	shl    $0xa,%eax
41189c:	0f b7 d2             	movzwl %dx,%edx
41189f:	03 c2                	add    %edx,%eax
4118a1:	46                   	inc    %esi
4118a2:	46                   	inc    %esi
4118a3:	3d 00 00 01 00       	cmp    $0x10000,%eax
4118a8:	73 10                	jae    0x4118ba
4118aa:	83 6d 10 02          	subl   $0x2,0x10(%ebp)
4118ae:	78 0a                	js     0x4118ba
4118b0:	8b d0                	mov    %eax,%edx
4118b2:	c1 ea 0c             	shr    $0xc,%edx
4118b5:	80 ca e0             	or     $0xe0,%dl
4118b8:	eb 22                	jmp    0x4118dc
4118ba:	3d 00 00 20 00       	cmp    $0x200000,%eax
4118bf:	73 32                	jae    0x4118f3
4118c1:	83 6d 10 03          	subl   $0x3,0x10(%ebp)
4118c5:	78 2c                	js     0x4118f3
4118c7:	8b d0                	mov    %eax,%edx
4118c9:	c1 ea 12             	shr    $0x12,%edx
4118cc:	80 ca f0             	or     $0xf0,%dl
4118cf:	88 11                	mov    %dl,(%ecx)
4118d1:	8b d0                	mov    %eax,%edx
4118d3:	c1 ea 0c             	shr    $0xc,%edx
4118d6:	80 e2 3f             	and    $0x3f,%dl
4118d9:	41                   	inc    %ecx
4118da:	0a d3                	or     %bl,%dl
4118dc:	88 11                	mov    %dl,(%ecx)
4118de:	8b d0                	mov    %eax,%edx
4118e0:	c1 ea 06             	shr    $0x6,%edx
4118e3:	80 e2 3f             	and    $0x3f,%dl
4118e6:	41                   	inc    %ecx
4118e7:	0a d3                	or     %bl,%dl
4118e9:	88 11                	mov    %dl,(%ecx)
4118eb:	24 3f                	and    $0x3f,%al
4118ed:	41                   	inc    %ecx
4118ee:	0a c3                	or     %bl,%al
4118f0:	88 01                	mov    %al,(%ecx)
4118f2:	41                   	inc    %ecx
4118f3:	0f b7 06             	movzwl (%esi),%eax
4118f6:	66 85 c0             	test   %ax,%ax
4118f9:	0f 85 41 ff ff ff    	jne    0x411840
4118ff:	5f                   	pop    %edi
411900:	5e                   	pop    %esi
411901:	c6 01 00             	movb   $0x0,(%ecx)
411904:	5b                   	pop    %ebx
411905:	5d                   	pop    %ebp
411906:	c2 0c 00             	ret    $0xc
411909:	55                   	push   %ebp
41190a:	8b ec                	mov    %esp,%ebp
41190c:	51                   	push   %ecx
41190d:	8b 45 10             	mov    0x10(%ebp),%eax
411910:	56                   	push   %esi
411911:	8b 75 08             	mov    0x8(%ebp),%esi
411914:	8a 0e                	mov    (%esi),%cl
411916:	48                   	dec    %eax
411917:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
41191b:	89 45 10             	mov    %eax,0x10(%ebp)
41191e:	84 c9                	test   %cl,%cl
411920:	0f 84 5e 01 00 00    	je     0x411a84
411926:	57                   	push   %edi
411927:	6a 3f                	push   $0x3f
411929:	5f                   	pop    %edi
41192a:	53                   	push   %ebx
41192b:	0f b6 d1             	movzbl %cl,%edx
41192e:	46                   	inc    %esi
41192f:	81 fa 80 00 00 00    	cmp    $0x80,%edx
411935:	73 07                	jae    0x41193e
411937:	8b ca                	mov    %edx,%ecx
411939:	e9 d7 00 00 00       	jmp    0x411a15
41193e:	8b c2                	mov    %edx,%eax
411940:	83 e0 e0             	and    $0xffffffe0,%eax
411943:	3d c0 00 00 00       	cmp    $0xc0,%eax
411948:	75 21                	jne    0x41196b
41194a:	8a 0e                	mov    (%esi),%cl
41194c:	8a c1                	mov    %cl,%al
41194e:	24 c0                	and    $0xc0,%al
411950:	3c 80                	cmp    $0x80,%al
411952:	0f 85 26 01 00 00    	jne    0x411a7e
411958:	0f be c9             	movsbl %cl,%ecx
41195b:	83 e2 1f             	and    $0x1f,%edx
41195e:	23 cf                	and    %edi,%ecx
411960:	c1 e2 06             	shl    $0x6,%edx
411963:	0b ca                	or     %edx,%ecx
411965:	46                   	inc    %esi
411966:	e9 aa 00 00 00       	jmp    0x411a15
41196b:	8b c2                	mov    %edx,%eax
41196d:	83 e0 f0             	and    $0xfffffff0,%eax
411970:	3d e0 00 00 00       	cmp    $0xe0,%eax
411975:	75 3c                	jne    0x4119b3
411977:	8a 06                	mov    (%esi),%al
411979:	8a c8                	mov    %al,%cl
41197b:	80 e1 c0             	and    $0xc0,%cl
41197e:	80 f9 80             	cmp    $0x80,%cl
411981:	0f 85 f7 00 00 00    	jne    0x411a7e
411987:	8a 5e 01             	mov    0x1(%esi),%bl
41198a:	8a cb                	mov    %bl,%cl
41198c:	80 e1 c0             	and    $0xc0,%cl
41198f:	80 f9 80             	cmp    $0x80,%cl
411992:	0f 85 e6 00 00 00    	jne    0x411a7e
411998:	0f be c8             	movsbl %al,%ecx
41199b:	23 cf                	and    %edi,%ecx
41199d:	83 e2 0f             	and    $0xf,%edx
4119a0:	c1 e2 06             	shl    $0x6,%edx
4119a3:	0b ca                	or     %edx,%ecx
4119a5:	0f be c3             	movsbl %bl,%eax
4119a8:	c1 e1 06             	shl    $0x6,%ecx
4119ab:	23 c7                	and    %edi,%eax
4119ad:	0b c8                	or     %eax,%ecx
4119af:	46                   	inc    %esi
4119b0:	46                   	inc    %esi
4119b1:	eb 62                	jmp    0x411a15
4119b3:	8b c2                	mov    %edx,%eax
4119b5:	83 e0 f8             	and    $0xfffffff8,%eax
4119b8:	3d f0 00 00 00       	cmp    $0xf0,%eax
4119bd:	0f 85 bb 00 00 00    	jne    0x411a7e
4119c3:	8a 06                	mov    (%esi),%al
4119c5:	24 c0                	and    $0xc0,%al
4119c7:	3c 80                	cmp    $0x80,%al
4119c9:	0f 85 af 00 00 00    	jne    0x411a7e
4119cf:	8a 46 01             	mov    0x1(%esi),%al
4119d2:	8a c8                	mov    %al,%cl
4119d4:	80 e1 c0             	and    $0xc0,%cl
4119d7:	80 f9 80             	cmp    $0x80,%cl
4119da:	0f 85 9e 00 00 00    	jne    0x411a7e
4119e0:	8a 5e 02             	mov    0x2(%esi),%bl
4119e3:	8a cb                	mov    %bl,%cl
4119e5:	80 e1 c0             	and    $0xc0,%cl
4119e8:	80 f9 80             	cmp    $0x80,%cl
4119eb:	0f 85 8d 00 00 00    	jne    0x411a7e
4119f1:	0f be 0e             	movsbl (%esi),%ecx
4119f4:	23 cf                	and    %edi,%ecx
4119f6:	83 e2 07             	and    $0x7,%edx
4119f9:	0f be c0             	movsbl %al,%eax
4119fc:	c1 e2 06             	shl    $0x6,%edx
4119ff:	0b ca                	or     %edx,%ecx
411a01:	c1 e1 06             	shl    $0x6,%ecx
411a04:	23 c7                	and    %edi,%eax
411a06:	0b c8                	or     %eax,%ecx
411a08:	0f be c3             	movsbl %bl,%eax
411a0b:	c1 e1 06             	shl    $0x6,%ecx
411a0e:	23 c7                	and    %edi,%eax
411a10:	0b c8                	or     %eax,%ecx
411a12:	83 c6 03             	add    $0x3,%esi
411a15:	8b 45 0c             	mov    0xc(%ebp),%eax
411a18:	85 c0                	test   %eax,%eax
411a1a:	74 05                	je     0x411a21
411a1c:	ff 4d 10             	decl   0x10(%ebp)
411a1f:	78 61                	js     0x411a82
411a21:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
411a27:	76 3d                	jbe    0x411a66
411a29:	85 c0                	test   %eax,%eax
411a2b:	74 05                	je     0x411a32
411a2d:	ff 4d 10             	decl   0x10(%ebp)
411a30:	78 50                	js     0x411a82
411a32:	81 f9 ff ff 10 00    	cmp    $0x10ffff,%ecx
411a38:	76 06                	jbe    0x411a40
411a3a:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
411a3e:	eb 32                	jmp    0x411a72
411a40:	85 c0                	test   %eax,%eax
411a42:	74 2e                	je     0x411a72
411a44:	8d 91 00 00 ff ff    	lea    -0x10000(%ecx),%edx
411a4a:	c1 ea 0a             	shr    $0xa,%edx
411a4d:	81 ea 00 28 00 00    	sub    $0x2800,%edx
411a53:	66 89 10             	mov    %dx,(%eax)
411a56:	40                   	inc    %eax
411a57:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
411a5d:	40                   	inc    %eax
411a5e:	81 e9 00 24 00 00    	sub    $0x2400,%ecx
411a64:	eb 04                	jmp    0x411a6a
411a66:	85 c0                	test   %eax,%eax
411a68:	74 08                	je     0x411a72
411a6a:	66 89 08             	mov    %cx,(%eax)
411a6d:	40                   	inc    %eax
411a6e:	40                   	inc    %eax
411a6f:	89 45 0c             	mov    %eax,0xc(%ebp)
411a72:	8a 0e                	mov    (%esi),%cl
411a74:	84 c9                	test   %cl,%cl
411a76:	0f 85 af fe ff ff    	jne    0x41192b
411a7c:	eb 04                	jmp    0x411a82
411a7e:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
411a82:	5b                   	pop    %ebx
411a83:	5f                   	pop    %edi
411a84:	8b 45 0c             	mov    0xc(%ebp),%eax
411a87:	5e                   	pop    %esi
411a88:	85 c0                	test   %eax,%eax
411a8a:	74 05                	je     0x411a91
411a8c:	33 c9                	xor    %ecx,%ecx
411a8e:	66 89 08             	mov    %cx,(%eax)
411a91:	8a 45 ff             	mov    -0x1(%ebp),%al
411a94:	c9                   	leave
411a95:	c2 0c 00             	ret    $0xc
411a98:	6a ff                	push   $0xffffffff
411a9a:	ff 74 24 0c          	push   0xc(%esp)
411a9e:	6a ff                	push   $0xffffffff
411aa0:	ff 74 24 10          	push   0x10(%esp)
411aa4:	68 01 10 00 00       	push   $0x1001
411aa9:	68 00 04 00 00       	push   $0x400
411aae:	ff 15 f8 a1 42 00    	call   *0x42a1f8
411ab4:	48                   	dec    %eax
411ab5:	48                   	dec    %eax
411ab6:	c2 08 00             	ret    $0x8
411ab9:	55                   	push   %ebp
411aba:	8b ec                	mov    %esp,%ebp
411abc:	56                   	push   %esi
411abd:	57                   	push   %edi
411abe:	ff 75 08             	push   0x8(%ebp)
411ac1:	e8 c5 86 00 00       	call   0x41a18b
411ac6:	8b 7d 10             	mov    0x10(%ebp),%edi
411ac9:	40                   	inc    %eax
411aca:	59                   	pop    %ecx
411acb:	3b c7                	cmp    %edi,%eax
411acd:	73 0e                	jae    0x411add
411acf:	ff 75 08             	push   0x8(%ebp)
411ad2:	e8 b4 86 00 00       	call   0x41a18b
411ad7:	8b f0                	mov    %eax,%esi
411ad9:	59                   	pop    %ecx
411ada:	46                   	inc    %esi
411adb:	eb 02                	jmp    0x411adf
411add:	8b f7                	mov    %edi,%esi
411adf:	ff 75 0c             	push   0xc(%ebp)
411ae2:	e8 a4 86 00 00       	call   0x41a18b
411ae7:	40                   	inc    %eax
411ae8:	59                   	pop    %ecx
411ae9:	3b c7                	cmp    %edi,%eax
411aeb:	73 0c                	jae    0x411af9
411aed:	ff 75 0c             	push   0xc(%ebp)
411af0:	e8 96 86 00 00       	call   0x41a18b
411af5:	59                   	pop    %ecx
411af6:	40                   	inc    %eax
411af7:	eb 02                	jmp    0x411afb
411af9:	8b c7                	mov    %edi,%eax
411afb:	50                   	push   %eax
411afc:	ff 75 0c             	push   0xc(%ebp)
411aff:	56                   	push   %esi