4216c9:	33 c0                	xor    %eax,%eax
4216cb:	53                   	push   %ebx
4216cc:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4216cf:	56                   	push   %esi
4216d0:	57                   	push   %edi
4216d1:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4216d4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4216d7:	38 45 18             	cmp    %al,0x18(%ebp)
4216da:	74 14                	je     0x4216f0
4216dc:	6a 2d                	push   $0x2d
4216de:	58                   	pop    %eax
4216df:	66 89 03             	mov    %ax,(%ebx)
4216e2:	8d 43 02             	lea    0x2(%ebx),%eax
4216e5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4216e8:	33 c0                	xor    %eax,%eax
4216ea:	40                   	inc    %eax
4216eb:	f7 d9                	neg    %ecx
4216ed:	89 45 f8             	mov    %eax,-0x8(%ebp)
4216f0:	8b 5d fc             	mov    -0x4(%ebp),%ebx
4216f3:	8b 75 f8             	mov    -0x8(%ebp),%esi
4216f6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4216f9:	33 d2                	xor    %edx,%edx
4216fb:	8b c1                	mov    %ecx,%eax
4216fd:	f7 75 14             	divl   0x14(%ebp)
421700:	6a 09                	push   $0x9
421702:	8b c8                	mov    %eax,%ecx
421704:	8b fb                	mov    %ebx,%edi
421706:	8d 43 02             	lea    0x2(%ebx),%eax
421709:	89 45 f8             	mov    %eax,-0x8(%ebp)
42170c:	58                   	pop    %eax
42170d:	3b c2                	cmp    %edx,%eax
42170f:	1b c0                	sbb    %eax,%eax
421711:	83 e0 27             	and    $0x27,%eax
421714:	83 c0 30             	add    $0x30,%eax
421717:	66 03 c2             	add    %dx,%ax
42171a:	8b 55 f8             	mov    -0x8(%ebp),%edx
42171d:	46                   	inc    %esi
42171e:	66 89 03             	mov    %ax,(%ebx)
421721:	8b 45 10             	mov    0x10(%ebp),%eax
421724:	85 c9                	test   %ecx,%ecx
421726:	74 06                	je     0x42172e
421728:	8b da                	mov    %edx,%ebx
42172a:	3b f0                	cmp    %eax,%esi
42172c:	72 cb                	jb     0x4216f9
42172e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
421731:	3b f0                	cmp    %eax,%esi
421733:	8b 75 fc             	mov    -0x4(%ebp),%esi
421736:	72 18                	jb     0x421750
421738:	33 c0                	xor    %eax,%eax
42173a:	66 89 03             	mov    %ax,(%ebx)
42173d:	e8 b9 d6 fe ff       	call   0x40edfb
421742:	6a 22                	push   $0x22
421744:	5e                   	pop    %esi
421745:	89 30                	mov    %esi,(%eax)
421747:	e8 35 b9 fe ff       	call   0x40d081
42174c:	8b c6                	mov    %esi,%eax
42174e:	eb 1d                	jmp    0x42176d
421750:	33 c0                	xor    %eax,%eax
421752:	66 89 02             	mov    %ax,(%edx)
421755:	66 8b 06             	mov    (%esi),%ax
421758:	0f b7 0f             	movzwl (%edi),%ecx
42175b:	66 89 07             	mov    %ax,(%edi)
42175e:	83 ef 02             	sub    $0x2,%edi
421761:	66 89 0e             	mov    %cx,(%esi)
421764:	83 c6 02             	add    $0x2,%esi
421767:	3b f7                	cmp    %edi,%esi
421769:	72 ea                	jb     0x421755
42176b:	33 c0                	xor    %eax,%eax
42176d:	5f                   	pop    %edi
42176e:	5e                   	pop    %esi
42176f:	5b                   	pop    %ebx
421770:	c9                   	leave
421771:	c3                   	ret
421772:	8b ff                	mov    %edi,%edi
421774:	55                   	push   %ebp
421775:	8b ec                	mov    %esp,%ebp
421777:	8b 4d 0c             	mov    0xc(%ebp),%ecx
42177a:	56                   	push   %esi
42177b:	85 c9                	test   %ecx,%ecx
42177d:	75 13                	jne    0x421792
42177f:	e8 77 d6 fe ff       	call   0x40edfb
421784:	6a 16                	push   $0x16
421786:	5e                   	pop    %esi
421787:	89 30                	mov    %esi,(%eax)
421789:	e8 f3 b8 fe ff       	call   0x40d081
42178e:	8b c6                	mov    %esi,%eax
421790:	eb 4f                	jmp    0x4217e1
421792:	8b 55 10             	mov    0x10(%ebp),%edx
421795:	53                   	push   %ebx
421796:	85 d2                	test   %edx,%edx
421798:	74 24                	je     0x4217be
42179a:	8b 5d 18             	mov    0x18(%ebp),%ebx
42179d:	33 c0                	xor    %eax,%eax
42179f:	66 89 01             	mov    %ax,(%ecx)
4217a2:	0f b6 c3             	movzbl %bl,%eax
4217a5:	40                   	inc    %eax
4217a6:	3b d0                	cmp    %eax,%edx
4217a8:	77 09                	ja     0x4217b3
4217aa:	e8 4c d6 fe ff       	call   0x40edfb
4217af:	6a 22                	push   $0x22
4217b1:	eb 12                	jmp    0x4217c5
4217b3:	8b 75 14             	mov    0x14(%ebp),%esi
4217b6:	8d 46 fe             	lea    -0x2(%esi),%eax
4217b9:	83 f8 22             	cmp    $0x22,%eax
4217bc:	76 13                	jbe    0x4217d1
4217be:	e8 38 d6 fe ff       	call   0x40edfb
4217c3:	6a 16                	push   $0x16
4217c5:	5e                   	pop    %esi
4217c6:	89 30                	mov    %esi,(%eax)
4217c8:	e8 b4 b8 fe ff       	call   0x40d081
4217cd:	8b c6                	mov    %esi,%eax
4217cf:	eb 0f                	jmp    0x4217e0
4217d1:	53                   	push   %ebx
4217d2:	56                   	push   %esi
4217d3:	52                   	push   %edx
4217d4:	51                   	push   %ecx
4217d5:	ff 75 08             	push   0x8(%ebp)
4217d8:	e8 e2 fe ff ff       	call   0x4216bf
4217dd:	83 c4 14             	add    $0x14,%esp
4217e0:	5b                   	pop    %ebx
4217e1:	5e                   	pop    %esi
4217e2:	5d                   	pop    %ebp
4217e3:	c3                   	ret
4217e4:	8b ff                	mov    %edi,%edi
4217e6:	55                   	push   %ebp
4217e7:	8b ec                	mov    %esp,%ebp
4217e9:	51                   	push   %ecx
4217ea:	83 7d 14 0a          	cmpl   $0xa,0x14(%ebp)
4217ee:	75 0a                	jne    0x4217fa
4217f0:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4217f4:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4217f8:	7c 04                	jl     0x4217fe
4217fa:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
4217fe:	ff 75 fc             	push   -0x4(%ebp)
421801:	ff 75 14             	push   0x14(%ebp)
421804:	ff 75 10             	push   0x10(%ebp)
421807:	ff 75 0c             	push   0xc(%ebp)
42180a:	ff 75 08             	push   0x8(%ebp)
42180d:	e8 60 ff ff ff       	call   0x421772
421812:	83 c4 14             	add    $0x14,%esp
421815:	c9                   	leave
421816:	c3                   	ret
421817:	8b ff                	mov    %edi,%edi
421819:	55                   	push   %ebp
42181a:	8b ec                	mov    %esp,%ebp
42181c:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
421820:	75 15                	jne    0x421837
421822:	e8 d4 d5 fe ff       	call   0x40edfb
421827:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
42182d:	e8 4f b8 fe ff       	call   0x40d081
421832:	83 c8 ff             	or     $0xffffffff,%eax
421835:	5d                   	pop    %ebp
421836:	c3                   	ret
421837:	ff 75 08             	push   0x8(%ebp)
42183a:	6a 00                	push   $0x0
42183c:	ff 35 ec 4d 43 00    	push   0x434dec
421842:	ff 15 10 40 42 00    	call   *0x424010
421848:	5d                   	pop    %ebp
421849:	c3                   	ret
42184a:	cc                   	int3
42184b:	cc                   	int3
42184c:	cc                   	int3
42184d:	cc                   	int3
42184e:	cc                   	int3
42184f:	cc                   	int3
421850:	55                   	push   %ebp
421851:	8b ec                	mov    %esp,%ebp
421853:	57                   	push   %edi
421854:	56                   	push   %esi
421855:	53                   	push   %ebx
421856:	8b 4d 10             	mov    0x10(%ebp),%ecx
421859:	0b c9                	or     %ecx,%ecx
42185b:	74 4d                	je     0x4218aa
42185d:	8b 75 08             	mov    0x8(%ebp),%esi
421860:	8b 7d 0c             	mov    0xc(%ebp),%edi
421863:	b7 41                	mov    $0x41,%bh
421865:	b3 5a                	mov    $0x5a,%bl
421867:	b6 20                	mov    $0x20,%dh
421869:	8d 49 00             	lea    0x0(%ecx),%ecx
42186c:	8a 26                	mov    (%esi),%ah
42186e:	0a e4                	or     %ah,%ah
421870:	8a 07                	mov    (%edi),%al
421872:	74 27                	je     0x42189b
421874:	0a c0                	or     %al,%al
421876:	74 23                	je     0x42189b
421878:	83 c6 01             	add    $0x1,%esi
42187b:	83 c7 01             	add    $0x1,%edi
42187e:	3a e7                	cmp    %bh,%ah
421880:	72 06                	jb     0x421888
421882:	3a e3                	cmp    %bl,%ah
421884:	77 02                	ja     0x421888
421886:	02 e6                	add    %dh,%ah
421888:	3a c7                	cmp    %bh,%al
42188a:	72 06                	jb     0x421892
42188c:	3a c3                	cmp    %bl,%al
42188e:	77 02                	ja     0x421892
421890:	02 c6                	add    %dh,%al
421892:	3a e0                	cmp    %al,%ah
421894:	75 0b                	jne    0x4218a1
421896:	83 e9 01             	sub    $0x1,%ecx
421899:	75 d1                	jne    0x42186c
42189b:	33 c9                	xor    %ecx,%ecx
42189d:	3a e0                	cmp    %al,%ah
42189f:	74 09                	je     0x4218aa
4218a1:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
4218a6:	72 02                	jb     0x4218aa
4218a8:	f7 d9                	neg    %ecx
4218aa:	8b c1                	mov    %ecx,%eax
4218ac:	5b                   	pop    %ebx
4218ad:	5e                   	pop    %esi
4218ae:	5f                   	pop    %edi
4218af:	c9                   	leave
4218b0:	c3                   	ret
4218b1:	8b ff                	mov    %edi,%edi
4218b3:	55                   	push   %ebp
4218b4:	8b ec                	mov    %esp,%ebp
4218b6:	53                   	push   %ebx
4218b7:	56                   	push   %esi
4218b8:	8b 75 08             	mov    0x8(%ebp),%esi
4218bb:	33 db                	xor    %ebx,%ebx
4218bd:	57                   	push   %edi
4218be:	6a 01                	push   $0x1
4218c0:	53                   	push   %ebx
4218c1:	53                   	push   %ebx
4218c2:	56                   	push   %esi
4218c3:	8b f9                	mov    %ecx,%edi
4218c5:	e8 83 64 ff ff       	call   0x417d4d
4218ca:	6a 02                	push   $0x2
4218cc:	53                   	push   %ebx
4218cd:	53                   	push   %ebx
4218ce:	56                   	push   %esi
4218cf:	89 07                	mov    %eax,(%edi)
4218d1:	89 57 04             	mov    %edx,0x4(%edi)
4218d4:	e8 74 64 ff ff       	call   0x417d4d
4218d9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4218dc:	83 c4 20             	add    $0x20,%esp
4218df:	89 47 08             	mov    %eax,0x8(%edi)
4218e2:	2b c8                	sub    %eax,%ecx
4218e4:	8b 45 10             	mov    0x10(%ebp),%eax
4218e7:	1b c2                	sbb    %edx,%eax
4218e9:	89 77 18             	mov    %esi,0x18(%edi)
4218ec:	89 47 14             	mov    %eax,0x14(%edi)
4218ef:	8b c7                	mov    %edi,%eax
4218f1:	89 57 0c             	mov    %edx,0xc(%edi)
4218f4:	89 4f 10             	mov    %ecx,0x10(%edi)
4218f7:	5f                   	pop    %edi
4218f8:	5e                   	pop    %esi
4218f9:	5b                   	pop    %ebx
4218fa:	5d                   	pop    %ebp
4218fb:	c2 0c 00             	ret    $0xc
4218fe:	8b ff                	mov    %edi,%edi
421900:	55                   	push   %ebp
421901:	8b ec                	mov    %esp,%ebp
421903:	83 ec 28             	sub    $0x28,%esp
421906:	53                   	push   %ebx
421907:	8b 5d 08             	mov    0x8(%ebp),%ebx
42190a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42190d:	56                   	push   %esi
42190e:	57                   	push   %edi
42190f:	ff 75 10             	push   0x10(%ebp)
421912:	ff 75 0c             	push   0xc(%ebp)
421915:	53                   	push   %ebx
421916:	e8 96 ff ff ff       	call   0x4218b1
42191b:	8b 45 d8             	mov    -0x28(%ebp),%eax
42191e:	23 45 dc             	and    -0x24(%ebp),%eax
421921:	83 f8 ff             	cmp    $0xffffffff,%eax
421924:	0f 84 23 01 00 00    	je     0x421a4d
42192a:	8b 45 e0             	mov    -0x20(%ebp),%eax
42192d:	23 45 e4             	and    -0x1c(%ebp),%eax
421930:	83 f8 ff             	cmp    $0xffffffff,%eax
421933:	0f 84 14 01 00 00    	je     0x421a4d
421939:	8b 45 ec             	mov    -0x14(%ebp),%eax
42193c:	8b 7d e8             	mov    -0x18(%ebp),%edi
42193f:	89 45 fc             	mov    %eax,-0x4(%ebp)
421942:	85 c0                	test   %eax,%eax
421944:	0f 8c bf 00 00 00    	jl     0x421a09
42194a:	7f 08                	jg     0x421954
42194c:	85 ff                	test   %edi,%edi
42194e:	0f 84 ab 00 00 00    	je     0x4219ff
421954:	6a 01                	push   $0x1
421956:	68 00 10 00 00       	push   $0x1000
42195b:	e8 4e 17 ff ff       	call   0x4130ae
421960:	8b f0                	mov    %eax,%esi
421962:	59                   	pop    %ecx
421963:	59                   	pop    %ecx
421964:	85 f6                	test   %esi,%esi
421966:	75 0d                	jne    0x421975
421968:	e8 8e d4 fe ff       	call   0x40edfb
42196d:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
421973:	eb 7a                	jmp    0x4219ef
421975:	68 00 80 00 00       	push   $0x8000
42197a:	53                   	push   %ebx
42197b:	e8 6b ec fe ff       	call   0x4105eb
421980:	59                   	pop    %ecx
421981:	89 45 f8             	mov    %eax,-0x8(%ebp)
421984:	8b 45 ec             	mov    -0x14(%ebp),%eax
421987:	59                   	pop    %ecx
421988:	85 c0                	test   %eax,%eax
42198a:	7c 11                	jl     0x42199d
42198c:	7f 08                	jg     0x421996
42198e:	81 ff 00 10 00 00    	cmp    $0x1000,%edi
421994:	72 07                	jb     0x42199d
421996:	b8 00 10 00 00       	mov    $0x1000,%eax
42199b:	eb 02                	jmp    0x42199f
42199d:	8b c7                	mov    %edi,%eax
42199f:	50                   	push   %eax
4219a0:	56                   	push   %esi
4219a1:	53                   	push   %ebx
4219a2:	e8 c8 4c ff ff       	call   0x41666f
4219a7:	83 c4 0c             	add    $0xc,%esp
4219aa:	83 f8 ff             	cmp    $0xffffffff,%eax
4219ad:	74 2b                	je     0x4219da
4219af:	99                   	cltd
4219b0:	2b f8                	sub    %eax,%edi
4219b2:	8b 45 fc             	mov    -0x4(%ebp),%eax
4219b5:	1b c2                	sbb    %edx,%eax
4219b7:	89 45 fc             	mov    %eax,-0x4(%ebp)
4219ba:	85 c0                	test   %eax,%eax
4219bc:	7f d8                	jg     0x421996
4219be:	7c 04                	jl     0x4219c4
4219c0:	85 ff                	test   %edi,%edi
4219c2:	75 c4                	jne    0x421988
4219c4:	ff 75 f8             	push   -0x8(%ebp)
4219c7:	53                   	push   %ebx
4219c8:	e8 1e ec fe ff       	call   0x4105eb
4219cd:	56                   	push   %esi
4219ce:	e8 38 17 ff ff       	call   0x41310b
4219d3:	83 c4 0c             	add    $0xc,%esp
4219d6:	33 ff                	xor    %edi,%edi
4219d8:	eb 7a                	jmp    0x421a54
4219da:	e8 09 d4 fe ff       	call   0x40ede8
4219df:	83 38 05             	cmpl   $0x5,(%eax)
4219e2:	75 0b                	jne    0x4219ef
4219e4:	e8 12 d4 fe ff       	call   0x40edfb
4219e9:	c7 00 0d 00 00 00    	movl   $0xd,(%eax)
4219ef:	e8 07 d4 fe ff       	call   0x40edfb
4219f4:	56                   	push   %esi
4219f5:	8b 38                	mov    (%eax),%edi
4219f7:	e8 0f 17 ff ff       	call   0x41310b
4219fc:	59                   	pop    %ecx
4219fd:	eb 55                	jmp    0x421a54
4219ff:	85 c0                	test   %eax,%eax
421a01:	7f d3                	jg     0x4219d6
421a03:	7c 04                	jl     0x421a09
421a05:	85 ff                	test   %edi,%edi
421a07:	73 cd                	jae    0x4219d6
421a09:	6a 00                	push   $0x0
421a0b:	ff 75 10             	push   0x10(%ebp)
421a0e:	ff 75 0c             	push   0xc(%ebp)
421a11:	53                   	push   %ebx