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
428a7e:	72 16                	jb     0x428a96
428a80:	75 05                	jne    0x428a87
428a82:	3b 55 f4             	cmp    -0xc(%ebp),%edx
428a85:	76 0f                	jbe    0x428a96
428a87:	8b 7d 0c             	mov    0xc(%ebp),%edi
428a8a:	83 c8 04             	or     $0x4,%eax
428a8d:	89 45 fc             	mov    %eax,-0x4(%ebp)
428a90:	85 ff                	test   %edi,%edi
428a92:	74 ac                	je     0x428a40
428a94:	eb 05                	jmp    0x428a9b
428a96:	0f af d9             	imul   %ecx,%ebx
428a99:	03 da                	add    %edx,%ebx
428a9b:	0f b7 3e             	movzwl (%esi),%edi
428a9e:	83 c6 02             	add    $0x2,%esi
428aa1:	e9 6d ff ff ff       	jmp    0x428a13
428aa6:	a8 04                	test   $0x4,%al
428aa8:	75 1f                	jne    0x428ac9
428aaa:	a8 01                	test   $0x1,%al
428aac:	75 40                	jne    0x428aee
428aae:	8b c8                	mov    %eax,%ecx
428ab0:	83 e1 02             	and    $0x2,%ecx
428ab3:	74 08                	je     0x428abd
428ab5:	81 fb 00 00 00 80    	cmp    $0x80000000,%ebx
428abb:	77 0c                	ja     0x428ac9
428abd:	85 c9                	test   %ecx,%ecx
428abf:	75 2d                	jne    0x428aee
428ac1:	81 fb ff ff ff 7f    	cmp    $0x7fffffff,%ebx
428ac7:	76 25                	jbe    0x428aee
428ac9:	e8 40 f1 ff ff       	call   0x427c0e
428ace:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
428ad4:	8b 45 fc             	mov    -0x4(%ebp),%eax
428ad7:	a8 01                	test   $0x1,%al
428ad9:	74 05                	je     0x428ae0
428adb:	83 cb ff             	or     $0xffffffff,%ebx
428ade:	eb 0e                	jmp    0x428aee
428ae0:	6a 00                	push   $0x0
428ae2:	a8 02                	test   $0x2,%al
428ae4:	5b                   	pop    %ebx
428ae5:	0f 95 c3             	setne  %bl
428ae8:	81 c3 ff ff ff 7f    	add    $0x7fffffff,%ebx
428aee:	85 ff                	test   %edi,%edi
428af0:	74 02                	je     0x428af4
428af2:	89 37                	mov    %esi,(%edi)
428af4:	a8 02                	test   $0x2,%al
428af6:	74 02                	je     0x428afa
428af8:	f7 db                	neg    %ebx
428afa:	5f                   	pop    %edi
428afb:	5e                   	pop    %esi
428afc:	8b c3                	mov    %ebx,%eax
428afe:	5b                   	pop    %ebx
428aff:	c9                   	leave
428b00:	c3                   	ret
428b01:	55                   	push   %ebp
428b02:	8b ec                	mov    %esp,%ebp
428b04:	6a 00                	push   $0x0
428b06:	ff 75 10             	push   0x10(%ebp)
428b09:	ff 75 0c             	push   0xc(%ebp)
428b0c:	ff 75 08             	push   0x8(%ebp)
428b0f:	e8 11 fe ff ff       	call   0x428925
428b14:	83 c4 10             	add    $0x10,%esp
428b17:	5d                   	pop    %ebp
428b18:	c3                   	ret
428b19:	55                   	push   %ebp
428b1a:	8b ec                	mov    %esp,%ebp
428b1c:	83 ec 34             	sub    $0x34,%esp
428b1f:	8d 4d cc             	lea    -0x34(%ebp),%ecx
428b22:	ff 75 08             	push   0x8(%ebp)
428b25:	e8 f5 83 ff ff       	call   0x420f1f
428b2a:	8b 45 10             	mov    0x10(%ebp),%eax
428b2d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
428b30:	85 c0                	test   %eax,%eax
428b32:	74 02                	je     0x428b36
428b34:	89 08                	mov    %ecx,(%eax)
428b36:	53                   	push   %ebx
428b37:	56                   	push   %esi
428b38:	33 d2                	xor    %edx,%edx
428b3a:	57                   	push   %edi
428b3b:	85 c9                	test   %ecx,%ecx
428b3d:	74 11                	je     0x428b50
428b3f:	8b 45 14             	mov    0x14(%ebp),%eax
428b42:	85 c0                	test   %eax,%eax
428b44:	74 1f                	je     0x428b65
428b46:	83 f8 02             	cmp    $0x2,%eax
428b49:	7c 05                	jl     0x428b50
428b4b:	83 f8 24             	cmp    $0x24,%eax
428b4e:	7e 15                	jle    0x428b65
428b50:	e8 b9 f0 ff ff       	call   0x427c0e
428b55:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
428b5b:	e8 b0 e2 ff ff       	call   0x426e10
428b60:	e9 68 02 00 00       	jmp    0x428dcd
428b65:	0f b7 19             	movzwl (%ecx),%ebx
428b68:	8b fa                	mov    %edx,%edi
428b6a:	6a 08                	push   $0x8
428b6c:	53                   	push   %ebx
428b6d:	89 55 fc             	mov    %edx,-0x4(%ebp)
428b70:	89 7d ec             	mov    %edi,-0x14(%ebp)
428b73:	89 5d f4             	mov    %ebx,-0xc(%ebp)
428b76:	8d 71 02             	lea    0x2(%ecx),%esi
428b79:	e8 93 02 00 00       	call   0x428e11
428b7e:	59                   	pop    %ecx
428b7f:	59                   	pop    %ecx
428b80:	85 c0                	test   %eax,%eax
428b82:	74 1d                	je     0x428ba1
428b84:	0f b7 3e             	movzwl (%esi),%edi
428b87:	6a 08                	push   $0x8
428b89:	57                   	push   %edi
428b8a:	89 7d f4             	mov    %edi,-0xc(%ebp)
428b8d:	83 c6 02             	add    $0x2,%esi
428b90:	e8 7c 02 00 00       	call   0x428e11
428b95:	59                   	pop    %ecx
428b96:	59                   	pop    %ecx
428b97:	85 c0                	test   %eax,%eax
428b99:	75 e9                	jne    0x428b84
428b9b:	8b 7d ec             	mov    -0x14(%ebp),%edi
428b9e:	8b 5d f4             	mov    -0xc(%ebp),%ebx
428ba1:	8b 45 18             	mov    0x18(%ebp),%eax
428ba4:	66 83 fb 2d          	cmp    $0x2d,%bx
428ba8:	75 05                	jne    0x428baf
428baa:	83 c8 02             	or     $0x2,%eax
428bad:	eb 06                	jmp    0x428bb5
428baf:	66 83 fb 2b          	cmp    $0x2b,%bx
428bb3:	75 09                	jne    0x428bbe
428bb5:	0f b7 1e             	movzwl (%esi),%ebx
428bb8:	83 c6 02             	add    $0x2,%esi
428bbb:	89 5d f4             	mov    %ebx,-0xc(%ebp)
428bbe:	89 45 f8             	mov    %eax,-0x8(%ebp)
428bc1:	8b 45 14             	mov    0x14(%ebp),%eax
428bc4:	85 c0                	test   %eax,%eax
428bc6:	0f 88 f5 01 00 00    	js     0x428dc1
428bcc:	83 f8 01             	cmp    $0x1,%eax
428bcf:	0f 84 ec 01 00 00    	je     0x428dc1
428bd5:	83 f8 24             	cmp    $0x24,%eax
428bd8:	0f 8f e3 01 00 00    	jg     0x428dc1
428bde:	85 c0                	test   %eax,%eax
428be0:	75 30                	jne    0x428c12
428be2:	53                   	push   %ebx
428be3:	e8 5e b0 00 00       	call   0x433c46
428be8:	59                   	pop    %ecx
428be9:	85 c0                	test   %eax,%eax
428beb:	74 08                	je     0x428bf5
428bed:	6a 0a                	push   $0xa
428bef:	58                   	pop    %eax
428bf0:	89 45 14             	mov    %eax,0x14(%ebp)
428bf3:	eb 4d                	jmp    0x428c42
428bf5:	0f b7 06             	movzwl (%esi),%eax
428bf8:	6a 78                	push   $0x78
428bfa:	59                   	pop    %ecx
428bfb:	66 3b c1             	cmp    %cx,%ax
428bfe:	74 0c                	je     0x428c0c
428c00:	6a 58                	push   $0x58
428c02:	59                   	pop    %ecx
428c03:	66 3b c1             	cmp    %cx,%ax
428c06:	74 04                	je     0x428c0c
428c08:	6a 08                	push   $0x8
428c0a:	eb e3                	jmp    0x428bef
428c0c:	6a 10                	push   $0x10
428c0e:	58                   	pop    %eax
428c0f:	89 45 14             	mov    %eax,0x14(%ebp)
428c12:	83 f8 10             	cmp    $0x10,%eax
428c15:	75 2b                	jne    0x428c42
428c17:	53                   	push   %ebx
428c18:	e8 29 b0 00 00       	call   0x433c46
428c1d:	59                   	pop    %ecx
428c1e:	85 c0                	test   %eax,%eax
428c20:	75 1d                	jne    0x428c3f
428c22:	0f b7 06             	movzwl (%esi),%eax
428c25:	6a 78                	push   $0x78
428c27:	59                   	pop    %ecx
428c28:	66 3b c1             	cmp    %cx,%ax
428c2b:	74 08                	je     0x428c35
428c2d:	6a 58                	push   $0x58
428c2f:	59                   	pop    %ecx
428c30:	66 3b c1             	cmp    %cx,%ax
428c33:	75 0a                	jne    0x428c3f
428c35:	0f b7 5e 02          	movzwl 0x2(%esi),%ebx