630a92:	99                   	cltd
630a93:	2b c2                	sub    %edx,%eax
630a95:	8b d8                	mov    %eax,%ebx
630a97:	56                   	push   %esi
630a98:	57                   	push   %edi
630a99:	8b 7d 0c             	mov    0xc(%ebp),%edi
630a9c:	8b c7                	mov    %edi,%eax
630a9e:	d1 fb                	sar    $1,%ebx
630aa0:	89 7d f8             	mov    %edi,-0x8(%ebp)
630aa3:	3b fb                	cmp    %ebx,%edi
630aa5:	7d 3b                	jge    0x630ae2
630aa7:	8b 75 08             	mov    0x8(%ebp),%esi
630aaa:	8d 14 45 02 00 00 00 	lea    0x2(,%eax,2),%edx
630ab1:	6b ca 0c             	imul   $0xc,%edx,%ecx
630ab4:	8b 44 31 f4          	mov    -0xc(%ecx,%esi,1),%eax
630ab8:	8d 72 ff             	lea    -0x1(%edx),%esi
630abb:	89 75 0c             	mov    %esi,0xc(%ebp)
630abe:	8b 75 08             	mov    0x8(%ebp),%esi
630ac1:	39 04 31             	cmp    %eax,(%ecx,%esi,1)
630ac4:	8b 45 0c             	mov    0xc(%ebp),%eax
630ac7:	8b 4d 08             	mov    0x8(%ebp),%ecx
630aca:	0f 43 c2             	cmovae %edx,%eax
630acd:	6b ff 0c             	imul   $0xc,%edi,%edi
630ad0:	6b f0 0c             	imul   $0xc,%eax,%esi
630ad3:	03 f9                	add    %ecx,%edi
630ad5:	03 f1                	add    %ecx,%esi
630ad7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630ad8:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630ad9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630ada:	8b f8                	mov    %eax,%edi
630adc:	3b c3                	cmp    %ebx,%eax
630ade:	7c c7                	jl     0x630aa7
630ae0:	eb 03                	jmp    0x630ae5
630ae2:	8b 4d 08             	mov    0x8(%ebp),%ecx
630ae5:	3b c3                	cmp    %ebx,%eax
630ae7:	75 1a                	jne    0x630b03
630ae9:	8b 45 10             	mov    0x10(%ebp),%eax
630aec:	a8 01                	test   $0x1,%al
630aee:	75 13                	jne    0x630b03
630af0:	6b f0 0c             	imul   $0xc,%eax,%esi
630af3:	6b ff 0c             	imul   $0xc,%edi,%edi
630af6:	83 c6 f4             	add    $0xfffffff4,%esi
630af9:	03 f1                	add    %ecx,%esi
630afb:	03 f9                	add    %ecx,%edi
630afd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630afe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630aff:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b00:	8b 7d fc             	mov    -0x4(%ebp),%edi
630b03:	ff 75 18             	push   0x18(%ebp)
630b06:	ff 75 14             	push   0x14(%ebp)
630b09:	ff 75 f8             	push   -0x8(%ebp)
630b0c:	57                   	push   %edi
630b0d:	51                   	push   %ecx
630b0e:	e8 7b 00 00 00       	call   0x630b8e
630b13:	83 c4 14             	add    $0x14,%esp
630b16:	5f                   	pop    %edi
630b17:	5e                   	pop    %esi
630b18:	5b                   	pop    %ebx
630b19:	8b e5                	mov    %ebp,%esp
630b1b:	5d                   	pop    %ebp
630b1c:	c3                   	ret
630b1d:	55                   	push   %ebp
630b1e:	8b ec                	mov    %esp,%ebp
630b20:	8b 45 0c             	mov    0xc(%ebp),%eax
630b23:	2b 45 08             	sub    0x8(%ebp),%eax
630b26:	56                   	push   %esi
630b27:	57                   	push   %edi
630b28:	ff 75 18             	push   0x18(%ebp)
630b2b:	99                   	cltd
630b2c:	ff 75 14             	push   0x14(%ebp)
630b2f:	8b 75 08             	mov    0x8(%ebp),%esi
630b32:	6a 0c                	push   $0xc
630b34:	59                   	pop    %ecx
630b35:	f7 f9                	idiv   %ecx
630b37:	8b 7d 10             	mov    0x10(%ebp),%edi
630b3a:	50                   	push   %eax
630b3b:	6a 00                	push   $0x0
630b3d:	ff 75 08             	push   0x8(%ebp)
630b40:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b41:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b42:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b43:	e8 3d ff ff ff       	call   0x630a85
630b48:	83 c4 14             	add    $0x14,%esp
630b4b:	5f                   	pop    %edi
630b4c:	5e                   	pop    %esi
630b4d:	5d                   	pop    %ebp
630b4e:	c3                   	ret
630b4f:	55                   	push   %ebp
630b50:	8b ec                	mov    %esp,%ebp
630b52:	8b 4d 0c             	mov    0xc(%ebp),%ecx
630b55:	83 ec 0c             	sub    $0xc,%esp
630b58:	8b c1                	mov    %ecx,%eax
630b5a:	2b 45 08             	sub    0x8(%ebp),%eax
630b5d:	99                   	cltd
630b5e:	56                   	push   %esi
630b5f:	6a 0c                	push   $0xc
630b61:	5e                   	pop    %esi
630b62:	f7 fe                	idiv   %esi
630b64:	83 f8 02             	cmp    $0x2,%eax
630b67:	7c 20                	jl     0x630b89
630b69:	2b ce                	sub    %esi,%ecx
630b6b:	8d 45 f4             	lea    -0xc(%ebp),%eax
630b6e:	57                   	push   %edi
630b6f:	ff 75 10             	push   0x10(%ebp)
630b72:	8b f1                	mov    %ecx,%esi
630b74:	8d 7d f4             	lea    -0xc(%ebp),%edi
630b77:	50                   	push   %eax
630b78:	51                   	push   %ecx
630b79:	51                   	push   %ecx
630b7a:	ff 75 08             	push   0x8(%ebp)
630b7d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b7e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b7f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630b80:	e8 98 ff ff ff       	call   0x630b1d
630b85:	83 c4 14             	add    $0x14,%esp
630b88:	5f                   	pop    %edi
630b89:	5e                   	pop    %esi
630b8a:	8b e5                	mov    %ebp,%esp
630b8c:	5d                   	pop    %ebp
630b8d:	c3                   	ret
630b8e:	55                   	push   %ebp
630b8f:	8b ec                	mov    %esp,%ebp
630b91:	53                   	push   %ebx
630b92:	8b 5d 08             	mov    0x8(%ebp),%ebx
630b95:	56                   	push   %esi
630b96:	8b 75 0c             	mov    0xc(%ebp),%esi
630b99:	57                   	push   %edi
630b9a:	8d 46 ff             	lea    -0x1(%esi),%eax
630b9d:	eb 21                	jmp    0x630bc0
630b9f:	8b 55 14             	mov    0x14(%ebp),%edx
630ba2:	6b c1 0c             	imul   $0xc,%ecx,%eax
630ba5:	03 c3                	add    %ebx,%eax
630ba7:	89 45 0c             	mov    %eax,0xc(%ebp)
630baa:	8b 00                	mov    (%eax),%eax
630bac:	3b 02                	cmp    (%edx),%eax
630bae:	73 1c                	jae    0x630bcc
630bb0:	6b fe 0c             	imul   $0xc,%esi,%edi
630bb3:	8d 41 ff             	lea    -0x1(%ecx),%eax
630bb6:	8b 75 0c             	mov    0xc(%ebp),%esi
630bb9:	03 fb                	add    %ebx,%edi
630bbb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630bbc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630bbd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630bbe:	8b f1                	mov    %ecx,%esi
630bc0:	99                   	cltd
630bc1:	2b c2                	sub    %edx,%eax
630bc3:	8b c8                	mov    %eax,%ecx
630bc5:	d1 f9                	sar    $1,%ecx
630bc7:	39 75 10             	cmp    %esi,0x10(%ebp)
630bca:	7c d3                	jl     0x630b9f
630bcc:	6b fe 0c             	imul   $0xc,%esi,%edi
630bcf:	8b 75 14             	mov    0x14(%ebp),%esi
630bd2:	03 fb                	add    %ebx,%edi
630bd4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630bd5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630bd6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
630bd7:	5f                   	pop    %edi
630bd8:	5e                   	pop    %esi
630bd9:	5b                   	pop    %ebx
630bda:	5d                   	pop    %ebp
630bdb:	c3                   	ret
630bdc:	55                   	push   %ebp
630bdd:	8b ec                	mov    %esp,%ebp
630bdf:	53                   	push   %ebx
630be0:	56                   	push   %esi
630be1:	57                   	push   %edi
630be2:	8b 7d 0c             	mov    0xc(%ebp),%edi
630be5:	8b f7                	mov    %edi,%esi
630be7:	2b 75 08             	sub    0x8(%ebp),%esi
630bea:	6a 0c                	push   $0xc
630bec:	5b                   	pop    %ebx
630bed:	eb 13                	jmp    0x630c02
630bef:	ff 75 10             	push   0x10(%ebp)
630bf2:	57                   	push   %edi
630bf3:	ff 75 08             	push   0x8(%ebp)
630bf6:	e8 54 ff ff ff       	call   0x630b4f
630bfb:	83 c4 0c             	add    $0xc,%esp
630bfe:	2b fb                	sub    %ebx,%edi
630c00:	2b f3                	sub    %ebx,%esi
630c02:	8b c6                	mov    %esi,%eax
630c04:	99                   	cltd
630c05:	f7 fb                	idiv   %ebx
630c07:	83 f8 02             	cmp    $0x2,%eax
630c0a:	7d e3                	jge    0x630bef
630c0c:	5f                   	pop    %edi
630c0d:	5e                   	pop    %esi
630c0e:	5b                   	pop    %ebx
630c0f:	5d                   	pop    %ebp
630c10:	c3                   	ret
630c11:	55                   	push   %ebp
630c12:	8b ec                	mov    %esp,%ebp
630c14:	51                   	push   %ecx
630c15:	51                   	push   %ecx
630c16:	53                   	push   %ebx
630c17:	56                   	push   %esi
630c18:	8b 75 0c             	mov    0xc(%ebp),%esi
630c1b:	8b c6                	mov    %esi,%eax
630c1d:	57                   	push   %edi
630c1e:	8b 7d 08             	mov    0x8(%ebp),%edi
630c21:	2b c7                	sub    %edi,%eax
630c23:	6a 0c                	push   $0xc
630c25:	59                   	pop    %ecx
630c26:	99                   	cltd
630c27:	f7 f9                	idiv   %ecx
630c29:	8b 5d 14             	mov    0x14(%ebp),%ebx
630c2c:	89 4d 0c             	mov    %ecx,0xc(%ebp)
630c2f:	83 f8 20             	cmp    $0x20,%eax
630c32:	0f 8e 8f 00 00 00    	jle    0x630cc7
630c38:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
630c3c:	7e 6f                	jle    0x630cad
630c3e:	53                   	push   %ebx
630c3f:	56                   	push   %esi
630c40:	8d 45 f8             	lea    -0x8(%ebp),%eax
630c43:	57                   	push   %edi
630c44:	50                   	push   %eax
630c45:	e8 77 fc ff ff       	call   0x6308c1
630c4a:	8b 45 10             	mov    0x10(%ebp),%eax
630c4d:	83 c4 10             	add    $0x10,%esp
630c50:	99                   	cltd
630c51:	2b c2                	sub    %edx,%eax
630c53:	8b c8                	mov    %eax,%ecx
630c55:	d1 f9                	sar    $1,%ecx
630c57:	8b c1                	mov    %ecx,%eax
630c59:	99                   	cltd
630c5a:	2b c2                	sub    %edx,%eax
630c5c:	d1 f8                	sar    $1,%eax
630c5e:	03 c8                	add    %eax,%ecx
630c60:	8b c6                	mov    %esi,%eax
630c62:	2b 45 fc             	sub    -0x4(%ebp),%eax
630c65:	99                   	cltd
630c66:	6a 0c                	push   $0xc
630c68:	89 4d 10             	mov    %ecx,0x10(%ebp)
630c6b:	59                   	pop    %ecx
630c6c:	f7 f9                	idiv   %ecx
630c6e:	53                   	push   %ebx
630c6f:	8b c8                	mov    %eax,%ecx
630c71:	8b 45 f8             	mov    -0x8(%ebp),%eax
630c74:	2b c7                	sub    %edi,%eax
630c76:	99                   	cltd
630c77:	f7 7d 0c             	idivl  0xc(%ebp)
630c7a:	ff 75 10             	push   0x10(%ebp)
630c7d:	3b c1                	cmp    %ecx,%eax
630c7f:	7d 0e                	jge    0x630c8f
630c81:	ff 75 f8             	push   -0x8(%ebp)
630c84:	57                   	push   %edi
630c85:	e8 87 ff ff ff       	call   0x630c11
630c8a:	8b 7d fc             	mov    -0x4(%ebp),%edi
630c8d:	eb 0c                	jmp    0x630c9b
630c8f:	56                   	push   %esi
630c90:	ff 75 fc             	push   -0x4(%ebp)
630c93:	e8 79 ff ff ff       	call   0x630c11
630c98:	8b 75 f8             	mov    -0x8(%ebp),%esi
630c9b:	83 c4 10             	add    $0x10,%esp
630c9e:	8b c6                	mov    %esi,%eax
630ca0:	2b c7                	sub    %edi,%eax
630ca2:	99                   	cltd
630ca3:	6a 0c                	push   $0xc
630ca5:	59                   	pop    %ecx
630ca6:	f7 f9                	idiv   %ecx
630ca8:	83 f8 20             	cmp    $0x20,%eax
630cab:	7f 8b                	jg     0x630c38
630cad:	83 f8 20             	cmp    $0x20,%eax
630cb0:	7e 15                	jle    0x630cc7
630cb2:	53                   	push   %ebx
630cb3:	56                   	push   %esi
630cb4:	57                   	push   %edi
630cb5:	e8 39 fb ff ff       	call   0x6307f3
630cba:	53                   	push   %ebx
630cbb:	56                   	push   %esi
630cbc:	57                   	push   %edi
630cbd:	e8 1a ff ff ff       	call   0x630bdc
630cc2:	83 c4 18             	add    $0x18,%esp
630cc5:	eb 10                	jmp    0x630cd7
630cc7:	83 f8 02             	cmp    $0x2,%eax
630cca:	7c 0b                	jl     0x630cd7
630ccc:	53                   	push   %ebx
630ccd:	56                   	push   %esi
630cce:	57                   	push   %edi
630ccf:	e8 b6 fa ff ff       	call   0x63078a
630cd4:	83 c4 0c             	add    $0xc,%esp
630cd7:	5f                   	pop    %edi
630cd8:	5e                   	pop    %esi
630cd9:	5b                   	pop    %ebx
630cda:	8b e5                	mov    %ebp,%esp
630cdc:	5d                   	pop    %ebp
630cdd:	c3                   	ret
630cde:	55                   	push   %ebp
630cdf:	8b ec                	mov    %esp,%ebp
630ce1:	ff 75 10             	push   0x10(%ebp)
630ce4:	8b 45 0c             	mov    0xc(%ebp),%eax
630ce7:	2b 45 08             	sub    0x8(%ebp),%eax
630cea:	6a 0c                	push   $0xc
630cec:	59                   	pop    %ecx
630ced:	99                   	cltd
630cee:	f7 f9                	idiv   %ecx
630cf0:	50                   	push   %eax
630cf1:	ff 75 0c             	push   0xc(%ebp)
630cf4:	ff 75 08             	push   0x8(%ebp)
630cf7:	e8 15 ff ff ff       	call   0x630c11
630cfc:	83 c4 10             	add    $0x10,%esp
630cff:	5d                   	pop    %ebp
630d00:	c3                   	ret
630d01:	55                   	push   %ebp
630d02:	8b ec                	mov    %esp,%ebp
630d04:	8b 4d 0c             	mov    0xc(%ebp),%ecx
630d07:	85 c9                	test   %ecx,%ecx
630d09:	74 19                	je     0x630d24
630d0b:	8b 45 08             	mov    0x8(%ebp),%eax
630d0e:	33 d2                	xor    %edx,%edx
630d10:	85 c0                	test   %eax,%eax
630d12:	74 08                	je     0x630d1c
630d14:	89 10                	mov    %edx,(%eax)
630d16:	89 50 04             	mov    %edx,0x4(%eax)
630d19:	89 50 08             	mov    %edx,0x8(%eax)
630d1c:	83 c0 0c             	add    $0xc,%eax
630d1f:	83 e9 01             	sub    $0x1,%ecx
630d22:	75 ec                	jne    0x630d10
630d24:	5d                   	pop    %ebp
630d25:	c3                   	ret
630d26:	55                   	push   %ebp
630d27:	8b ec                	mov    %esp,%ebp
630d29:	8b 4d 0c             	mov    0xc(%ebp),%ecx
630d2c:	85 c9                	test   %ecx,%ecx
630d2e:	74 18                	je     0x630d48
630d30:	8b 55 08             	mov    0x8(%ebp),%edx
630d33:	57                   	push   %edi
630d34:	85 d2                	test   %edx,%edx
630d36:	74 07                	je     0x630d3f
630d38:	8b fa                	mov    %edx,%edi
630d3a:	33 c0                	xor    %eax,%eax
630d3c:	ab                   	stos   %eax,%es:(%edi)
630d3d:	ab                   	stos   %eax,%es:(%edi)
630d3e:	ab                   	stos   %eax,%es:(%edi)
630d3f:	83 c2 0c             	add    $0xc,%edx
630d42:	83 e9 01             	sub    $0x1,%ecx
630d45:	75 ed                	jne    0x630d34
630d47:	5f                   	pop    %edi
630d48:	5d                   	pop    %ebp
630d49:	c3                   	ret
630d4a:	55                   	push   %ebp
630d4b:	8b ec                	mov    %esp,%ebp
630d4d:	8b 4d 08             	mov    0x8(%ebp),%ecx
630d50:	8b 45 10             	mov    0x10(%ebp),%eax
630d53:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
630d56:	74 1a                	je     0x630d72
630d58:	56                   	push   %esi
630d59:	57                   	push   %edi
630d5a:	85 c0                	test   %eax,%eax
630d5c:	74 07                	je     0x630d65
630d5e:	8b f1                	mov    %ecx,%esi