4286fe:	8b 47 5c             	mov    0x5c(%edi),%eax
428701:	83 64 01 08 00       	andl   $0x0,0x8(%ecx,%eax,1)
428706:	42                   	inc    %edx
428707:	89 55 d4             	mov    %edx,-0x2c(%ebp)
42870a:	8b 0d f8 ed 48 00    	mov    0x48edf8,%ecx
428710:	eb dc                	jmp    0x4286ee
428712:	6a 00                	push   $0x0
428714:	ff 15 00 a0 4b 00    	call   *0x4ba000
42871a:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
42871d:	89 01                	mov    %eax,(%ecx)
42871f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
428726:	e8 18 00 00 00       	call   0x428743
42872b:	83 fe 08             	cmp    $0x8,%esi
42872e:	75 20                	jne    0x428750
428730:	ff 77 64             	push   0x64(%edi)
428733:	56                   	push   %esi
428734:	ff 55 dc             	call   *-0x24(%ebp)
428737:	59                   	pop    %ecx
428738:	eb 1a                	jmp    0x428754
42873a:	8b 75 08             	mov    0x8(%ebp),%esi
42873d:	8b 5d e0             	mov    -0x20(%ebp),%ebx
428740:	8b 7d d8             	mov    -0x28(%ebp),%edi
428743:	85 db                	test   %ebx,%ebx
428745:	74 08                	je     0x42874f
428747:	6a 00                	push   $0x0
428749:	e8 0a f7 ff ff       	call   0x427e58
42874e:	59                   	pop    %ecx
42874f:	c3                   	ret
428750:	56                   	push   %esi
428751:	ff 55 dc             	call   *-0x24(%ebp)
428754:	59                   	pop    %ecx
428755:	83 fe 08             	cmp    $0x8,%esi
428758:	74 0a                	je     0x428764
42875a:	83 fe 0b             	cmp    $0xb,%esi
42875d:	74 05                	je     0x428764
42875f:	83 fe 04             	cmp    $0x4,%esi
428762:	75 11                	jne    0x428775
428764:	8b 45 d0             	mov    -0x30(%ebp),%eax
428767:	89 47 60             	mov    %eax,0x60(%edi)
42876a:	83 fe 08             	cmp    $0x8,%esi
42876d:	75 06                	jne    0x428775
42876f:	8b 45 cc             	mov    -0x34(%ebp),%eax
428772:	89 47 64             	mov    %eax,0x64(%edi)
428775:	33 c0                	xor    %eax,%eax
428777:	e8 89 e3 ff ff       	call   0x426b05
42877c:	c3                   	ret
42877d:	55                   	push   %ebp
42877e:	8b ec                	mov    %esp,%ebp
428780:	8b 4d 0c             	mov    0xc(%ebp),%ecx
428783:	8b 15 f0 ed 48 00    	mov    0x48edf0,%edx
428789:	56                   	push   %esi
42878a:	8b 75 08             	mov    0x8(%ebp),%esi
42878d:	39 71 04             	cmp    %esi,0x4(%ecx)
428790:	74 0f                	je     0x4287a1
428792:	8b c2                	mov    %edx,%eax
428794:	6b c0 0c             	imul   $0xc,%eax,%eax
428797:	03 45 0c             	add    0xc(%ebp),%eax
42879a:	83 c1 0c             	add    $0xc,%ecx
42879d:	3b c8                	cmp    %eax,%ecx
42879f:	72 ec                	jb     0x42878d
4287a1:	6b d2 0c             	imul   $0xc,%edx,%edx
4287a4:	03 55 0c             	add    0xc(%ebp),%edx
4287a7:	3b ca                	cmp    %edx,%ecx
4287a9:	73 09                	jae    0x4287b4
4287ab:	39 71 04             	cmp    %esi,0x4(%ecx)
4287ae:	75 04                	jne    0x4287b4
4287b0:	8b c1                	mov    %ecx,%eax
4287b2:	eb 02                	jmp    0x4287b6
4287b4:	33 c0                	xor    %eax,%eax
4287b6:	5e                   	pop    %esi
4287b7:	5d                   	pop    %ebp
4287b8:	c3                   	ret
4287b9:	55                   	push   %ebp
4287ba:	8b ec                	mov    %esp,%ebp
4287bc:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4287c0:	74 26                	je     0x4287e8
4287c2:	56                   	push   %esi
4287c3:	8b 75 0c             	mov    0xc(%ebp),%esi
4287c6:	f7 46 0c 00 10 00 00 	testl  $0x1000,0xc(%esi)
4287cd:	74 18                	je     0x4287e7
4287cf:	56                   	push   %esi
4287d0:	e8 af a4 ff ff       	call   0x422c84
4287d5:	81 66 0c ff ee ff ff 	andl   $0xffffeeff,0xc(%esi)
4287dc:	33 c0                	xor    %eax,%eax
4287de:	59                   	pop    %ecx
4287df:	89 46 18             	mov    %eax,0x18(%esi)
4287e2:	89 06                	mov    %eax,(%esi)
4287e4:	89 46 08             	mov    %eax,0x8(%esi)
4287e7:	5e                   	pop    %esi
4287e8:	5d                   	pop    %ebp
4287e9:	c3                   	ret
4287ea:	55                   	push   %ebp
4287eb:	8b ec                	mov    %esp,%ebp
4287ed:	56                   	push   %esi
4287ee:	8b 75 08             	mov    0x8(%ebp),%esi
4287f1:	56                   	push   %esi
4287f2:	e8 3c a1 ff ff       	call   0x422933
4287f7:	50                   	push   %eax
4287f8:	e8 f5 b3 00 00       	call   0x433bf2
4287fd:	59                   	pop    %ecx
4287fe:	59                   	pop    %ecx
4287ff:	85 c0                	test   %eax,%eax
428801:	0f 84 86 00 00 00    	je     0x42888d
428807:	57                   	push   %edi
428808:	e8 09 c6 ff ff       	call   0x424e16
42880d:	83 c0 20             	add    $0x20,%eax
428810:	3b f0                	cmp    %eax,%esi
428812:	75 04                	jne    0x428818
428814:	33 ff                	xor    %edi,%edi
428816:	eb 0f                	jmp    0x428827
428818:	e8 f9 c5 ff ff       	call   0x424e16
42881d:	83 c0 40             	add    $0x40,%eax
428820:	3b f0                	cmp    %eax,%esi
428822:	75 66                	jne    0x42888a
428824:	33 ff                	xor    %edi,%edi
428826:	47                   	inc    %edi
428827:	ff 05 48 01 4c 00    	incl   0x4c0148
42882d:	f7 46 0c 0c 01 00 00 	testl  $0x10c,0xc(%esi)
428834:	75 54                	jne    0x42888a
428836:	83 3c bd 28 09 4c 00 	cmpl   $0x0,0x4c0928(,%edi,4)
42883d:	00
42883e:	53                   	push   %ebx
42883f:	bb 00 10 00 00       	mov    $0x1000,%ebx
428844:	75 25                	jne    0x42886b
428846:	53                   	push   %ebx
428847:	e8 84 e1 ff ff       	call   0x4269d0
42884c:	59                   	pop    %ecx
42884d:	89 04 bd 28 09 4c 00 	mov    %eax,0x4c0928(,%edi,4)
428854:	85 c0                	test   %eax,%eax
428856:	75 13                	jne    0x42886b
428858:	8d 46 14             	lea    0x14(%esi),%eax
42885b:	6a 02                	push   $0x2
42885d:	89 46 08             	mov    %eax,0x8(%esi)
428860:	89 06                	mov    %eax,(%esi)
428862:	58                   	pop    %eax
428863:	89 46 18             	mov    %eax,0x18(%esi)
428866:	89 46 04             	mov    %eax,0x4(%esi)
428869:	eb 12                	jmp    0x42887d
42886b:	8b 0c bd 28 09 4c 00 	mov    0x4c0928(,%edi,4),%ecx
428872:	89 4e 08             	mov    %ecx,0x8(%esi)
428875:	89 0e                	mov    %ecx,(%esi)
428877:	89 5e 18             	mov    %ebx,0x18(%esi)
42887a:	89 5e 04             	mov    %ebx,0x4(%esi)
42887d:	81 4e 0c 02 11 00 00 	orl    $0x1102,0xc(%esi)
428884:	33 c0                	xor    %eax,%eax
428886:	40                   	inc    %eax
428887:	5b                   	pop    %ebx
428888:	eb 02                	jmp    0x42888c
42888a:	33 c0                	xor    %eax,%eax
42888c:	5f                   	pop    %edi
42888d:	5e                   	pop    %esi
42888e:	5d                   	pop    %ebp
42888f:	c3                   	ret
428890:	56                   	push   %esi
428891:	8b 44 24 14          	mov    0x14(%esp),%eax
428895:	0b c0                	or     %eax,%eax
428897:	75 28                	jne    0x4288c1
428899:	8b 4c 24 10          	mov    0x10(%esp),%ecx
42889d:	8b 44 24 0c          	mov    0xc(%esp),%eax
4288a1:	33 d2                	xor    %edx,%edx
4288a3:	f7 f1                	div    %ecx
4288a5:	8b d8                	mov    %eax,%ebx
4288a7:	8b 44 24 08          	mov    0x8(%esp),%eax
4288ab:	f7 f1                	div    %ecx
4288ad:	8b f0                	mov    %eax,%esi
4288af:	8b c3                	mov    %ebx,%eax
4288b1:	f7 64 24 10          	mull   0x10(%esp)
4288b5:	8b c8                	mov    %eax,%ecx
4288b7:	8b c6                	mov    %esi,%eax
4288b9:	f7 64 24 10          	mull   0x10(%esp)
4288bd:	03 d1                	add    %ecx,%edx
4288bf:	eb 47                	jmp    0x428908
4288c1:	8b c8                	mov    %eax,%ecx
4288c3:	8b 5c 24 10          	mov    0x10(%esp),%ebx
4288c7:	8b 54 24 0c          	mov    0xc(%esp),%edx
4288cb:	8b 44 24 08          	mov    0x8(%esp),%eax
4288cf:	d1 e9                	shr    $1,%ecx
4288d1:	d1 db                	rcr    $1,%ebx
4288d3:	d1 ea                	shr    $1,%edx
4288d5:	d1 d8                	rcr    $1,%eax
4288d7:	0b c9                	or     %ecx,%ecx
4288d9:	75 f4                	jne    0x4288cf
4288db:	f7 f3                	div    %ebx
4288dd:	8b f0                	mov    %eax,%esi
4288df:	f7 64 24 14          	mull   0x14(%esp)
4288e3:	8b c8                	mov    %eax,%ecx
4288e5:	8b 44 24 10          	mov    0x10(%esp),%eax
4288e9:	f7 e6                	mul    %esi
4288eb:	03 d1                	add    %ecx,%edx
4288ed:	72 0e                	jb     0x4288fd
4288ef:	3b 54 24 0c          	cmp    0xc(%esp),%edx
4288f3:	77 08                	ja     0x4288fd
4288f5:	72 0f                	jb     0x428906
4288f7:	3b 44 24 08          	cmp    0x8(%esp),%eax
4288fb:	76 09                	jbe    0x428906
4288fd:	4e                   	dec    %esi
4288fe:	2b 44 24 10          	sub    0x10(%esp),%eax
428902:	1b 54 24 14          	sbb    0x14(%esp),%edx
428906:	33 db                	xor    %ebx,%ebx
428908:	2b 44 24 08          	sub    0x8(%esp),%eax
42890c:	1b 54 24 0c          	sbb    0xc(%esp),%edx
428910:	f7 da                	neg    %edx
428912:	f7 d8                	neg    %eax
428914:	83 da 00             	sbb    $0x0,%edx
428917:	8b ca                	mov    %edx,%ecx
428919:	8b d3                	mov    %ebx,%edx
42891b:	8b d9                	mov    %ecx,%ebx
42891d:	8b c8                	mov    %eax,%ecx
42891f:	8b c6                	mov    %esi,%eax
428921:	5e                   	pop    %esi
428922:	c2 10 00             	ret    $0x10
428925:	55                   	push   %ebp
428926:	8b ec                	mov    %esp,%ebp
428928:	8b 45 0c             	mov    0xc(%ebp),%eax
42892b:	8b 4d 08             	mov    0x8(%ebp),%ecx
42892e:	83 ec 0c             	sub    $0xc,%esp
428931:	85 c0                	test   %eax,%eax
428933:	74 02                	je     0x428937
428935:	89 08                	mov    %ecx,(%eax)
428937:	85 c9                	test   %ecx,%ecx
428939:	75 14                	jne    0x42894f
42893b:	e8 ce f2 ff ff       	call   0x427c0e
428940:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
428946:	e8 c5 e4 ff ff       	call   0x426e10
42894b:	33 c0                	xor    %eax,%eax
42894d:	c9                   	leave
42894e:	c3                   	ret
42894f:	8b 45 10             	mov    0x10(%ebp),%eax
428952:	85 c0                	test   %eax,%eax
428954:	74 0a                	je     0x428960
428956:	83 f8 02             	cmp    $0x2,%eax
428959:	7c e0                	jl     0x42893b
42895b:	83 f8 24             	cmp    $0x24,%eax
42895e:	7f db                	jg     0x42893b
428960:	53                   	push   %ebx
428961:	56                   	push   %esi
428962:	57                   	push   %edi
428963:	0f b7 39             	movzwl (%ecx),%edi
428966:	33 db                	xor    %ebx,%ebx
428968:	8d 71 02             	lea    0x2(%ecx),%esi
42896b:	eb 06                	jmp    0x428973
42896d:	0f b7 3e             	movzwl (%esi),%edi
428970:	83 c6 02             	add    $0x2,%esi
428973:	6a 08                	push   $0x8
428975:	57                   	push   %edi
428976:	e8 96 04 00 00       	call   0x428e11
42897b:	59                   	pop    %ecx
42897c:	59                   	pop    %ecx
42897d:	85 c0                	test   %eax,%eax
42897f:	75 ec                	jne    0x42896d
428981:	8b 45 14             	mov    0x14(%ebp),%eax
428984:	66 83 ff 2d          	cmp    $0x2d,%di
428988:	75 05                	jne    0x42898f
42898a:	83 c8 02             	or     $0x2,%eax
42898d:	eb 06                	jmp    0x428995
42898f:	66 83 ff 2b          	cmp    $0x2b,%di
428993:	75 06                	jne    0x42899b
428995:	0f b7 3e             	movzwl (%esi),%edi
428998:	83 c6 02             	add    $0x2,%esi
42899b:	89 45 fc             	mov    %eax,-0x4(%ebp)
42899e:	8b 45 10             	mov    0x10(%ebp),%eax
4289a1:	85 c0                	test   %eax,%eax
4289a3:	75 36                	jne    0x4289db
4289a5:	57                   	push   %edi
4289a6:	e8 9b b2 00 00       	call   0x433c46
4289ab:	59                   	pop    %ecx
4289ac:	85 c0                	test   %eax,%eax
4289ae:	74 09                	je     0x4289b9
4289b0:	c7 45 10 0a 00 00 00 	movl   $0xa,0x10(%ebp)
4289b7:	eb 4c                	jmp    0x428a05
4289b9:	0f b7 06             	movzwl (%esi),%eax
4289bc:	6a 78                	push   $0x78
4289be:	59                   	pop    %ecx
4289bf:	66 3b c1             	cmp    %cx,%ax
4289c2:	74 11                	je     0x4289d5
4289c4:	6a 58                	push   $0x58
4289c6:	59                   	pop    %ecx
4289c7:	66 3b c1             	cmp    %cx,%ax
4289ca:	74 09                	je     0x4289d5
4289cc:	c7 45 10 08 00 00 00 	movl   $0x8,0x10(%ebp)
4289d3:	eb 30                	jmp    0x428a05
4289d5:	6a 10                	push   $0x10
4289d7:	58                   	pop    %eax
4289d8:	89 45 10             	mov    %eax,0x10(%ebp)
4289db:	83 f8 10             	cmp    $0x10,%eax
4289de:	75 25                	jne    0x428a05
4289e0:	57                   	push   %edi
4289e1:	e8 60 b2 00 00       	call   0x433c46
4289e6:	59                   	pop    %ecx
4289e7:	85 c0                	test   %eax,%eax
4289e9:	75 1a                	jne    0x428a05
4289eb:	0f b7 06             	movzwl (%esi),%eax
4289ee:	6a 78                	push   $0x78
4289f0:	59                   	pop    %ecx
4289f1:	66 3b c1             	cmp    %cx,%ax
4289f4:	74 08                	je     0x4289fe
4289f6:	6a 58                	push   $0x58
4289f8:	59                   	pop    %ecx
4289f9:	66 3b c1             	cmp    %cx,%ax
4289fc:	75 07                	jne    0x428a05
4289fe:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
428a02:	83 c6 04             	add    $0x4,%esi
428a05:	83 c8 ff             	or     $0xffffffff,%eax
428a08:	33 d2                	xor    %edx,%edx
428a0a:	f7 75 10             	divl   0x10(%ebp)
428a0d:	89 55 f4             	mov    %edx,-0xc(%ebp)
428a10:	89 45 f8             	mov    %eax,-0x8(%ebp)
428a13:	57                   	push   %edi
428a14:	e8 2d b2 00 00       	call   0x433c46
428a19:	8b d0                	mov    %eax,%edx
428a1b:	59                   	pop    %ecx
428a1c:	83 fa ff             	cmp    $0xffffffff,%edx
428a1f:	75 48                	jne    0x428a69
428a21:	6a 41                	push   $0x41
428a23:	58                   	pop    %eax
428a24:	66 3b c7             	cmp    %di,%ax
428a27:	77 06                	ja     0x428a2f
428a29:	66 83 ff 5a          	cmp    $0x5a,%di
428a2d:	76 26                	jbe    0x428a55
428a2f:	6a 19                	push   $0x19
428a31:	8d 47 9f             	lea    -0x61(%edi),%eax
428a34:	59                   	pop    %ecx
428a35:	66 3b c1             	cmp    %cx,%ax
428a38:	76 1e                	jbe    0x428a58
428a3a:	8b 45 fc             	mov    -0x4(%ebp),%eax
428a3d:	8b 7d 0c             	mov    0xc(%ebp),%edi
428a40:	83 ee 02             	sub    $0x2,%esi
428a43:	a8 08                	test   $0x8,%al
428a45:	75 5f                	jne    0x428aa6
428a47:	85 ff                	test   %edi,%edi
428a49:	74 03                	je     0x428a4e
428a4b:	8b 75 08             	mov    0x8(%ebp),%esi
428a4e:	33 db                	xor    %ebx,%ebx
428a50:	e9 99 00 00 00       	jmp    0x428aee
428a55:	6a 19                	push   $0x19
428a57:	59                   	pop    %ecx
428a58:	8d 47 9f             	lea    -0x61(%edi),%eax
428a5b:	0f b7 d7             	movzwl %di,%edx
428a5e:	66 3b c1             	cmp    %cx,%ax
428a61:	77 03                	ja     0x428a66
428a63:	83 ea 20             	sub    $0x20,%edx
428a66:	83 c2 c9             	add    $0xffffffc9,%edx
428a69:	8b 4d 10             	mov    0x10(%ebp),%ecx
428a6c:	8b 45 fc             	mov    -0x4(%ebp),%eax
428a6f:	3b d1                	cmp    %ecx,%edx
428a71:	73 ca                	jae    0x428a3d
428a73:	8b 7d f8             	mov    -0x8(%ebp),%edi
428a76:	83 c8 08             	or     $0x8,%eax
428a79:	89 45 fc             	mov    %eax,-0x4(%ebp)
428a7c:	3b df                	cmp    %edi,%ebx