42377c:	66 89 0f             	mov    %cx,(%edi)
42377f:	03 fb                	add    %ebx,%edi
423781:	3b fe                	cmp    %esi,%edi
423783:	72 ec                	jb     0x423771
423785:	5f                   	pop    %edi
423786:	5e                   	pop    %esi
423787:	5b                   	pop    %ebx
423788:	5d                   	pop    %ebp
423789:	c2 10 00             	ret    $0x10
42378c:	55                   	push   %ebp
42378d:	8b ec                	mov    %esp,%ebp
42378f:	8b 55 0c             	mov    0xc(%ebp),%edx
423792:	56                   	push   %esi
423793:	8b 75 08             	mov    0x8(%ebp),%esi
423796:	57                   	push   %edi
423797:	0f b7 3a             	movzwl (%edx),%edi
42379a:	0f b7 0e             	movzwl (%esi),%ecx
42379d:	2b cf                	sub    %edi,%ecx
42379f:	75 15                	jne    0x4237b6
4237a1:	2b f2                	sub    %edx,%esi
4237a3:	66 85 ff             	test   %di,%di
4237a6:	74 0e                	je     0x4237b6
4237a8:	83 c2 02             	add    $0x2,%edx
4237ab:	0f b7 3a             	movzwl (%edx),%edi
4237ae:	0f b7 0c 16          	movzwl (%esi,%edx,1),%ecx
4237b2:	2b cf                	sub    %edi,%ecx
4237b4:	74 ed                	je     0x4237a3
4237b6:	5f                   	pop    %edi
4237b7:	5e                   	pop    %esi
4237b8:	85 c9                	test   %ecx,%ecx
4237ba:	79 05                	jns    0x4237c1
4237bc:	83 c9 ff             	or     $0xffffffff,%ecx
4237bf:	eb 05                	jmp    0x4237c6
4237c1:	7e 03                	jle    0x4237c6
4237c3:	33 c9                	xor    %ecx,%ecx
4237c5:	41                   	inc    %ecx
4237c6:	8b c1                	mov    %ecx,%eax
4237c8:	5d                   	pop    %ebp
4237c9:	c3                   	ret
4237ca:	55                   	push   %ebp
4237cb:	8b ec                	mov    %esp,%ebp
4237cd:	5d                   	pop    %ebp
4237ce:	e9 14 00 00 00       	jmp    0x4237e7
4237d3:	55                   	push   %ebp
4237d4:	8b ec                	mov    %esp,%ebp
4237d6:	6a 0a                	push   $0xa
4237d8:	6a 00                	push   $0x0
4237da:	ff 75 08             	push   0x8(%ebp)
4237dd:	e8 fc 77 00 00       	call   0x42afde
4237e2:	83 c4 0c             	add    $0xc,%esp
4237e5:	5d                   	pop    %ebp
4237e6:	c3                   	ret
4237e7:	55                   	push   %ebp
4237e8:	8b ec                	mov    %esp,%ebp
4237ea:	6a 0a                	push   $0xa
4237ec:	6a 00                	push   $0x0
4237ee:	ff 75 08             	push   0x8(%ebp)
4237f1:	e8 00 75 00 00       	call   0x42acf6
4237f6:	83 c4 0c             	add    $0xc,%esp
4237f9:	5d                   	pop    %ebp
4237fa:	c3                   	ret
4237fb:	55                   	push   %ebp
4237fc:	8b ec                	mov    %esp,%ebp
4237fe:	83 ec 10             	sub    $0x10,%esp
423801:	ff 75 0c             	push   0xc(%ebp)
423804:	8d 4d f0             	lea    -0x10(%ebp),%ecx
423807:	e8 a9 f8 ff ff       	call   0x4230b5
42380c:	8b 45 08             	mov    0x8(%ebp),%eax
42380f:	0f b6 c8             	movzbl %al,%ecx
423812:	8b 45 f0             	mov    -0x10(%ebp),%eax
423815:	8b 80 90 00 00 00    	mov    0x90(%eax),%eax
42381b:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
42381f:	25 00 80 00 00       	and    $0x8000,%eax
423824:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
423828:	74 07                	je     0x423831
42382a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
42382d:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
423831:	8b e5                	mov    %ebp,%esp
423833:	5d                   	pop    %ebp
423834:	c3                   	ret
423835:	55                   	push   %ebp
423836:	8b ec                	mov    %esp,%ebp
423838:	6a 00                	push   $0x0
42383a:	ff 75 08             	push   0x8(%ebp)
42383d:	e8 b9 ff ff ff       	call   0x4237fb
423842:	59                   	pop    %ecx
423843:	59                   	pop    %ecx
423844:	5d                   	pop    %ebp
423845:	c3                   	ret
423846:	55                   	push   %ebp
423847:	8b ec                	mov    %esp,%ebp
423849:	68 07 01 00 00       	push   $0x107
42384e:	ff 75 08             	push   0x8(%ebp)
423851:	e8 b2 77 00 00       	call   0x42b008
423856:	59                   	pop    %ecx
423857:	59                   	pop    %ecx
423858:	5d                   	pop    %ebp
423859:	c3                   	ret
42385a:	55                   	push   %ebp
42385b:	8b ec                	mov    %esp,%ebp
42385d:	b8 80 00 00 00       	mov    $0x80,%eax
423862:	66 39 45 08          	cmp    %ax,0x8(%ebp)
423866:	1b c0                	sbb    %eax,%eax
423868:	f7 d8                	neg    %eax
42386a:	5d                   	pop    %ebp
42386b:	c3                   	ret
42386c:	55                   	push   %ebp
42386d:	8b ec                	mov    %esp,%ebp
42386f:	6a 04                	push   $0x4
423871:	ff 75 08             	push   0x8(%ebp)
423874:	e8 8f 77 00 00       	call   0x42b008
423879:	59                   	pop    %ecx
42387a:	59                   	pop    %ecx
42387b:	5d                   	pop    %ebp
42387c:	c3                   	ret
42387d:	55                   	push   %ebp
42387e:	8b ec                	mov    %esp,%ebp
423880:	6a 08                	push   $0x8
423882:	ff 75 08             	push   0x8(%ebp)
423885:	e8 7e 77 00 00       	call   0x42b008
42388a:	59                   	pop    %ecx
42388b:	59                   	pop    %ecx
42388c:	5d                   	pop    %ebp
42388d:	c3                   	ret
42388e:	55                   	push   %ebp
42388f:	8b ec                	mov    %esp,%ebp
423891:	68 80 00 00 00       	push   $0x80
423896:	ff 75 08             	push   0x8(%ebp)
423899:	e8 6a 77 00 00       	call   0x42b008
42389e:	59                   	pop    %ecx
42389f:	59                   	pop    %ecx
4238a0:	5d                   	pop    %ebp
4238a1:	c3                   	ret
4238a2:	55                   	push   %ebp
4238a3:	8b ec                	mov    %esp,%ebp
4238a5:	8b 45 10             	mov    0x10(%ebp),%eax
4238a8:	85 c0                	test   %eax,%eax
4238aa:	75 02                	jne    0x4238ae
4238ac:	5d                   	pop    %ebp
4238ad:	c3                   	ret
4238ae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4238b1:	8b 55 08             	mov    0x8(%ebp),%edx
4238b4:	56                   	push   %esi
4238b5:	48                   	dec    %eax
4238b6:	74 15                	je     0x4238cd
4238b8:	0f b7 32             	movzwl (%edx),%esi
4238bb:	66 85 f6             	test   %si,%si
4238be:	74 0d                	je     0x4238cd
4238c0:	66 3b 31             	cmp    (%ecx),%si
4238c3:	75 08                	jne    0x4238cd
4238c5:	83 c2 02             	add    $0x2,%edx
4238c8:	83 c1 02             	add    $0x2,%ecx
4238cb:	eb e8                	jmp    0x4238b5
4238cd:	0f b7 02             	movzwl (%edx),%eax
4238d0:	0f b7 09             	movzwl (%ecx),%ecx
4238d3:	2b c1                	sub    %ecx,%eax
4238d5:	5e                   	pop    %esi
4238d6:	5d                   	pop    %ebp
4238d7:	c3                   	ret
4238d8:	55                   	push   %ebp
4238d9:	8b ec                	mov    %esp,%ebp
4238db:	83 ec 20             	sub    $0x20,%esp
4238de:	53                   	push   %ebx
4238df:	57                   	push   %edi
4238e0:	33 db                	xor    %ebx,%ebx
4238e2:	8d 7d e4             	lea    -0x1c(%ebp),%edi
4238e5:	6a 07                	push   $0x7
4238e7:	33 c0                	xor    %eax,%eax
4238e9:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4238ec:	59                   	pop    %ecx
4238ed:	f3 ab                	rep stos %eax,%es:(%edi)
4238ef:	39 45 0c             	cmp    %eax,0xc(%ebp)
4238f2:	75 15                	jne    0x423909
4238f4:	e8 6f 54 00 00       	call   0x428d68
4238f9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4238ff:	e8 f2 56 00 00       	call   0x428ff6
423904:	83 c8 ff             	or     $0xffffffff,%eax
423907:	eb 6c                	jmp    0x423975
423909:	8b 45 08             	mov    0x8(%ebp),%eax
42390c:	85 c0                	test   %eax,%eax
42390e:	74 e4                	je     0x4238f4
423910:	56                   	push   %esi
423911:	89 45 e8             	mov    %eax,-0x18(%ebp)
423914:	89 45 e0             	mov    %eax,-0x20(%ebp)
423917:	8d 45 10             	lea    0x10(%ebp),%eax
42391a:	50                   	push   %eax
42391b:	53                   	push   %ebx
42391c:	ff 75 0c             	push   0xc(%ebp)
42391f:	8d 45 e0             	lea    -0x20(%ebp),%eax
423922:	c7 45 ec 42 00 00 00 	movl   $0x42,-0x14(%ebp)
423929:	50                   	push   %eax
42392a:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
423931:	e8 77 78 00 00       	call   0x42b1ad
423936:	83 c4 10             	add    $0x10,%esp
423939:	8b f0                	mov    %eax,%esi
42393b:	ff 4d e4             	decl   -0x1c(%ebp)
42393e:	78 0e                	js     0x42394e
423940:	8b 4d e0             	mov    -0x20(%ebp),%ecx
423943:	88 19                	mov    %bl,(%ecx)
423945:	8b 4d e0             	mov    -0x20(%ebp),%ecx
423948:	41                   	inc    %ecx
423949:	89 4d e0             	mov    %ecx,-0x20(%ebp)
42394c:	eb 0f                	jmp    0x42395d
42394e:	8d 45 e0             	lea    -0x20(%ebp),%eax
423951:	50                   	push   %eax
423952:	53                   	push   %ebx
423953:	e8 06 77 00 00       	call   0x42b05e
423958:	59                   	pop    %ecx
423959:	59                   	pop    %ecx
42395a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
42395d:	ff 4d e4             	decl   -0x1c(%ebp)
423960:	78 04                	js     0x423966
423962:	88 19                	mov    %bl,(%ecx)
423964:	eb 0c                	jmp    0x423972
423966:	8d 45 e0             	lea    -0x20(%ebp),%eax
423969:	50                   	push   %eax
42396a:	53                   	push   %ebx
42396b:	e8 ee 76 00 00       	call   0x42b05e
423970:	59                   	pop    %ecx
423971:	59                   	pop    %ecx
423972:	8b c6                	mov    %esi,%eax
423974:	5e                   	pop    %esi
423975:	5f                   	pop    %edi
423976:	5b                   	pop    %ebx
423977:	8b e5                	mov    %ebp,%esp
423979:	5d                   	pop    %ebp
42397a:	c3                   	ret
42397b:	cc                   	int3
42397c:	cc                   	int3
42397d:	cc                   	int3
42397e:	cc                   	int3
42397f:	cc                   	int3
423980:	8b 4c 24 04          	mov    0x4(%esp),%ecx
423984:	f7 c1 03 00 00 00    	test   $0x3,%ecx
42398a:	74 24                	je     0x4239b0
42398c:	8a 01                	mov    (%ecx),%al
42398e:	83 c1 01             	add    $0x1,%ecx
423991:	84 c0                	test   %al,%al
423993:	74 4e                	je     0x4239e3
423995:	f7 c1 03 00 00 00    	test   $0x3,%ecx
42399b:	75 ef                	jne    0x42398c
42399d:	05 00 00 00 00       	add    $0x0,%eax
4239a2:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4239a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4239b0:	8b 01                	mov    (%ecx),%eax
4239b2:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
4239b7:	03 d0                	add    %eax,%edx
4239b9:	83 f0 ff             	xor    $0xffffffff,%eax
4239bc:	33 c2                	xor    %edx,%eax
4239be:	83 c1 04             	add    $0x4,%ecx
4239c1:	a9 00 01 01 81       	test   $0x81010100,%eax
4239c6:	74 e8                	je     0x4239b0
4239c8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4239cb:	84 c0                	test   %al,%al
4239cd:	74 32                	je     0x423a01
4239cf:	84 e4                	test   %ah,%ah
4239d1:	74 24                	je     0x4239f7
4239d3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4239d8:	74 13                	je     0x4239ed
4239da:	a9 00 00 00 ff       	test   $0xff000000,%eax
4239df:	74 02                	je     0x4239e3
4239e1:	eb cd                	jmp    0x4239b0
4239e3:	8d 41 ff             	lea    -0x1(%ecx),%eax
4239e6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4239ea:	2b c1                	sub    %ecx,%eax
4239ec:	c3                   	ret
4239ed:	8d 41 fe             	lea    -0x2(%ecx),%eax
4239f0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4239f4:	2b c1                	sub    %ecx,%eax
4239f6:	c3                   	ret
4239f7:	8d 41 fd             	lea    -0x3(%ecx),%eax
4239fa:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4239fe:	2b c1                	sub    %ecx,%eax
423a00:	c3                   	ret
423a01:	8d 41 fc             	lea    -0x4(%ecx),%eax
423a04:	8b 4c 24 04          	mov    0x4(%esp),%ecx
423a08:	2b c1                	sub    %ecx,%eax
423a0a:	c3                   	ret
423a0b:	55                   	push   %ebp
423a0c:	8b ec                	mov    %esp,%ebp
423a0e:	51                   	push   %ecx
423a0f:	83 3d 28 42 4c 00 00 	cmpl   $0x0,0x4c4228
423a16:	57                   	push   %edi
423a17:	0f 85 8c 00 00 00    	jne    0x423aa9
423a1d:	8b 7d 10             	mov    0x10(%ebp),%edi
423a20:	33 c0                	xor    %eax,%eax
423a22:	85 ff                	test   %edi,%edi
423a24:	0f 84 92 00 00 00    	je     0x423abc
423a2a:	8b 55 08             	mov    0x8(%ebp),%edx
423a2d:	85 d2                	test   %edx,%edx
423a2f:	75 17                	jne    0x423a48
423a31:	e8 32 53 00 00       	call   0x428d68
423a36:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
423a3c:	e8 b5 55 00 00       	call   0x428ff6
423a41:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
423a46:	eb 74                	jmp    0x423abc
423a48:	8b 4d 0c             	mov    0xc(%ebp),%ecx
423a4b:	85 c9                	test   %ecx,%ecx
423a4d:	74 e2                	je     0x423a31
423a4f:	53                   	push   %ebx
423a50:	56                   	push   %esi
423a51:	6a 41                	push   $0x41
423a53:	5b                   	pop    %ebx
423a54:	6a 5a                	push   $0x5a
423a56:	5e                   	pop    %esi
423a57:	2b d1                	sub    %ecx,%edx
423a59:	89 75 fc             	mov    %esi,-0x4(%ebp)
423a5c:	eb 03                	jmp    0x423a61
423a5e:	6a 5a                	push   $0x5a
423a60:	5e                   	pop    %esi
423a61:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
423a65:	66 3b c3             	cmp    %bx,%ax
423a68:	72 0d                	jb     0x423a77
423a6a:	66 3b c6             	cmp    %si,%ax
423a6d:	77 08                	ja     0x423a77
423a6f:	83 c0 20             	add    $0x20,%eax
423a72:	0f b7 f0             	movzwl %ax,%esi
423a75:	eb 02                	jmp    0x423a79
423a77:	8b f0                	mov    %eax,%esi
423a79:	0f b7 01             	movzwl (%ecx),%eax
423a7c:	66 3b c3             	cmp    %bx,%ax
423a7f:	72 0c                	jb     0x423a8d
423a81:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
423a85:	77 06                	ja     0x423a8d
423a87:	83 c0 20             	add    $0x20,%eax
423a8a:	0f b7 c0             	movzwl %ax,%eax
423a8d:	83 c1 02             	add    $0x2,%ecx
423a90:	4f                   	dec    %edi
423a91:	74 0a                	je     0x423a9d
423a93:	66 85 f6             	test   %si,%si
423a96:	74 05                	je     0x423a9d
423a98:	66 3b f0             	cmp    %ax,%si
423a9b:	74 c1                	je     0x423a5e
423a9d:	0f b7 c8             	movzwl %ax,%ecx
423aa0:	0f b7 c6             	movzwl %si,%eax
423aa3:	5e                   	pop    %esi
423aa4:	2b c1                	sub    %ecx,%eax
423aa6:	5b                   	pop    %ebx
423aa7:	eb 13                	jmp    0x423abc
423aa9:	6a 00                	push   $0x0
423aab:	ff 75 10             	push   0x10(%ebp)
423aae:	ff 75 0c             	push   0xc(%ebp)
423ab1:	ff 75 08             	push   0x8(%ebp)
423ab4:	e8 08 00 00 00       	call   0x423ac1
423ab9:	83 c4 10             	add    $0x10,%esp
423abc:	5f                   	pop    %edi
423abd:	8b e5                	mov    %ebp,%esp
423abf:	5d                   	pop    %ebp
423ac0:	c3                   	ret
423ac1:	55                   	push   %ebp