5a79fa:	6a 00                	push   $0x0
5a79fc:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a79ff:	f7 d8                	neg    %eax
5a7a01:	50                   	push   %eax
5a7a02:	57                   	push   %edi
5a7a03:	e8 70 02 e6 ff       	call   0x407c78
5a7a08:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
5a7a0c:	7d cc                	jge    0x5a79da
5a7a0e:	53                   	push   %ebx
5a7a0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7a12:	e8 a9 12 e8 ff       	call   0x428cc0
5a7a17:	50                   	push   %eax
5a7a18:	e8 db fc e5 ff       	call   0x4076f8
5a7a1d:	53                   	push   %ebx
5a7a1e:	e8 ed fa e5 ff       	call   0x407510
5a7a23:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a7a26:	50                   	push   %eax
5a7a27:	33 c9                	xor    %ecx,%ecx
5a7a29:	33 d2                	xor    %edx,%edx
5a7a2b:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7a2e:	e8 a1 0b e8 ff       	call   0x4285d4
5a7a33:	6a 00                	push   $0x0
5a7a35:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7a38:	e8 83 12 e8 ff       	call   0x428cc0
5a7a3d:	50                   	push   %eax
5a7a3e:	e8 b5 fc e5 ff       	call   0x4076f8
5a7a43:	5f                   	pop    %edi
5a7a44:	5e                   	pop    %esi
5a7a45:	5b                   	pop    %ebx
5a7a46:	8b e5                	mov    %ebp,%esp
5a7a48:	5d                   	pop    %ebp
5a7a49:	c2 0c 00             	ret    $0xc
5a7a4c:	55                   	push   %ebp
5a7a4d:	8b ec                	mov    %esp,%ebp
5a7a4f:	83 c4 d4             	add    $0xffffffd4,%esp
5a7a52:	53                   	push   %ebx
5a7a53:	56                   	push   %esi
5a7a54:	57                   	push   %edi
5a7a55:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5a7a58:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a7a5b:	8d 7d d4             	lea    -0x2c(%ebp),%edi
5a7a5e:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a7a61:	50                   	push   %eax
5a7a62:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a7a65:	50                   	push   %eax
5a7a66:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a7a69:	50                   	push   %eax
5a7a6a:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a7a6d:	50                   	push   %eax
5a7a6e:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5a7a71:	50                   	push   %eax
5a7a72:	8b 45 10             	mov    0x10(%ebp),%eax
5a7a75:	8b 4d 08             	mov    0x8(%ebp),%ecx
5a7a78:	8b 55 0c             	mov    0xc(%ebp),%edx
5a7a7b:	e8 74 ac ff ff       	call   0x5a26f4
5a7a80:	33 db                	xor    %ebx,%ebx
5a7a82:	8b 45 f4             	mov    -0xc(%ebp),%eax
5a7a85:	99                   	cltd
5a7a86:	f7 7d e4             	idivl  -0x1c(%ebp)
5a7a89:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a7a8c:	8b 45 10             	mov    0x10(%ebp),%eax
5a7a8f:	57                   	push   %edi
5a7a90:	8b f0                	mov    %eax,%esi
5a7a92:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7a93:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7a94:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7a95:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7a96:	5f                   	pop    %edi
5a7a97:	6a 00                	push   $0x0
5a7a99:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7a9c:	d1 f8                	sar    $1,%eax
5a7a9e:	79 03                	jns    0x5a7aa3
5a7aa0:	83 d0 00             	adc    $0x0,%eax
5a7aa3:	50                   	push   %eax
5a7aa4:	57                   	push   %edi
5a7aa5:	e8 ce 01 e6 ff       	call   0x407c78
5a7aaa:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7aad:	f7 6d 08             	imull  0x8(%ebp)
5a7ab0:	b9 c8 00 00 00       	mov    $0xc8,%ecx
5a7ab5:	99                   	cltd
5a7ab6:	f7 f9                	idiv   %ecx
5a7ab8:	29 07                	sub    %eax,(%edi)
5a7aba:	03 c0                	add    %eax,%eax
5a7abc:	03 07                	add    (%edi),%eax
5a7abe:	89 47 08             	mov    %eax,0x8(%edi)
5a7ac1:	eb 2c                	jmp    0x5a7aef
5a7ac3:	57                   	push   %edi
5a7ac4:	e8 1f fa e5 ff       	call   0x4074e8
5a7ac9:	8b f0                	mov    %eax,%esi
5a7acb:	85 db                	test   %ebx,%ebx
5a7acd:	74 12                	je     0x5a7ae1
5a7acf:	6a 02                	push   $0x2
5a7ad1:	56                   	push   %esi
5a7ad2:	53                   	push   %ebx
5a7ad3:	53                   	push   %ebx
5a7ad4:	e8 6f f9 e5 ff       	call   0x407448
5a7ad9:	56                   	push   %esi
5a7ada:	e8 31 fa e5 ff       	call   0x407510
5a7adf:	eb 02                	jmp    0x5a7ae3
5a7ae1:	8b de                	mov    %esi,%ebx
5a7ae3:	6a 00                	push   $0x0
5a7ae5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7ae8:	50                   	push   %eax
5a7ae9:	57                   	push   %edi
5a7aea:	e8 89 01 e6 ff       	call   0x407c78
5a7aef:	8b 07                	mov    (%edi),%eax
5a7af1:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5a7af4:	7c cd                	jl     0x5a7ac3
5a7af6:	8b 45 e8             	mov    -0x18(%ebp),%eax
5a7af9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a7afc:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
5a7b00:	7d 07                	jge    0x5a7b09
5a7b02:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
5a7b09:	8b 45 10             	mov    0x10(%ebp),%eax
5a7b0c:	57                   	push   %edi
5a7b0d:	8b f0                	mov    %eax,%esi
5a7b0f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7b10:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7b11:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7b12:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7b13:	5f                   	pop    %edi
5a7b14:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7b17:	f7 6d 08             	imull  0x8(%ebp)
5a7b1a:	b9 64 00 00 00       	mov    $0x64,%ecx
5a7b1f:	99                   	cltd
5a7b20:	f7 f9                	idiv   %ecx
5a7b22:	89 47 0c             	mov    %eax,0xc(%edi)
5a7b25:	eb 2c                	jmp    0x5a7b53
5a7b27:	57                   	push   %edi
5a7b28:	e8 bb f9 e5 ff       	call   0x4074e8
5a7b2d:	8b f0                	mov    %eax,%esi
5a7b2f:	85 db                	test   %ebx,%ebx
5a7b31:	74 12                	je     0x5a7b45
5a7b33:	6a 02                	push   $0x2
5a7b35:	56                   	push   %esi
5a7b36:	53                   	push   %ebx
5a7b37:	53                   	push   %ebx
5a7b38:	e8 0b f9 e5 ff       	call   0x407448
5a7b3d:	56                   	push   %esi
5a7b3e:	e8 cd f9 e5 ff       	call   0x407510
5a7b43:	eb 02                	jmp    0x5a7b47
5a7b45:	8b de                	mov    %esi,%ebx
5a7b47:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7b4a:	50                   	push   %eax
5a7b4b:	6a 00                	push   $0x0
5a7b4d:	57                   	push   %edi
5a7b4e:	e8 25 01 e6 ff       	call   0x407c78
5a7b53:	8b 47 04             	mov    0x4(%edi),%eax
5a7b56:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5a7b59:	7c cc                	jl     0x5a7b27
5a7b5b:	53                   	push   %ebx
5a7b5c:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7b5f:	e8 5c 11 e8 ff       	call   0x428cc0
5a7b64:	50                   	push   %eax
5a7b65:	e8 8e fb e5 ff       	call   0x4076f8
5a7b6a:	53                   	push   %ebx
5a7b6b:	e8 a0 f9 e5 ff       	call   0x407510
5a7b70:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a7b73:	50                   	push   %eax
5a7b74:	33 c9                	xor    %ecx,%ecx
5a7b76:	33 d2                	xor    %edx,%edx
5a7b78:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7b7b:	e8 54 0a e8 ff       	call   0x4285d4
5a7b80:	6a 00                	push   $0x0
5a7b82:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7b85:	e8 36 11 e8 ff       	call   0x428cc0
5a7b8a:	50                   	push   %eax
5a7b8b:	e8 68 fb e5 ff       	call   0x4076f8
5a7b90:	5f                   	pop    %edi
5a7b91:	5e                   	pop    %esi
5a7b92:	5b                   	pop    %ebx
5a7b93:	8b e5                	mov    %ebp,%esp
5a7b95:	5d                   	pop    %ebp
5a7b96:	c2 0c 00             	ret    $0xc
5a7b99:	8d 40 00             	lea    0x0(%eax),%eax
5a7b9c:	55                   	push   %ebp
5a7b9d:	8b ec                	mov    %esp,%ebp
5a7b9f:	83 c4 d4             	add    $0xffffffd4,%esp
5a7ba2:	53                   	push   %ebx
5a7ba3:	56                   	push   %esi
5a7ba4:	57                   	push   %edi
5a7ba5:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5a7ba8:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a7bab:	8d 7d d4             	lea    -0x2c(%ebp),%edi
5a7bae:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a7bb1:	50                   	push   %eax
5a7bb2:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a7bb5:	50                   	push   %eax
5a7bb6:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a7bb9:	50                   	push   %eax
5a7bba:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a7bbd:	50                   	push   %eax
5a7bbe:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5a7bc1:	50                   	push   %eax
5a7bc2:	8b 45 10             	mov    0x10(%ebp),%eax
5a7bc5:	8b 4d 08             	mov    0x8(%ebp),%ecx
5a7bc8:	8b 55 0c             	mov    0xc(%ebp),%edx
5a7bcb:	e8 24 ab ff ff       	call   0x5a26f4
5a7bd0:	33 db                	xor    %ebx,%ebx
5a7bd2:	8b 45 f4             	mov    -0xc(%ebp),%eax
5a7bd5:	99                   	cltd
5a7bd6:	f7 7d e4             	idivl  -0x1c(%ebp)
5a7bd9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a7bdc:	8b 45 10             	mov    0x10(%ebp),%eax
5a7bdf:	57                   	push   %edi
5a7be0:	8b f0                	mov    %eax,%esi
5a7be2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7be3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7be4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7be5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7be6:	5f                   	pop    %edi
5a7be7:	6a 00                	push   $0x0
5a7be9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7bec:	d1 f8                	sar    $1,%eax
5a7bee:	79 03                	jns    0x5a7bf3
5a7bf0:	83 d0 00             	adc    $0x0,%eax
5a7bf3:	50                   	push   %eax
5a7bf4:	57                   	push   %edi
5a7bf5:	e8 7e 00 e6 ff       	call   0x407c78
5a7bfa:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7bfd:	f7 6d 08             	imull  0x8(%ebp)
5a7c00:	b9 c8 00 00 00       	mov    $0xc8,%ecx
5a7c05:	99                   	cltd
5a7c06:	f7 f9                	idiv   %ecx
5a7c08:	29 07                	sub    %eax,(%edi)
5a7c0a:	03 c0                	add    %eax,%eax
5a7c0c:	03 07                	add    (%edi),%eax
5a7c0e:	89 47 08             	mov    %eax,0x8(%edi)
5a7c11:	eb 2c                	jmp    0x5a7c3f
5a7c13:	57                   	push   %edi
5a7c14:	e8 cf f8 e5 ff       	call   0x4074e8
5a7c19:	8b f0                	mov    %eax,%esi
5a7c1b:	85 db                	test   %ebx,%ebx
5a7c1d:	74 12                	je     0x5a7c31
5a7c1f:	6a 02                	push   $0x2
5a7c21:	56                   	push   %esi
5a7c22:	53                   	push   %ebx
5a7c23:	53                   	push   %ebx
5a7c24:	e8 1f f8 e5 ff       	call   0x407448
5a7c29:	56                   	push   %esi
5a7c2a:	e8 e1 f8 e5 ff       	call   0x407510
5a7c2f:	eb 02                	jmp    0x5a7c33
5a7c31:	8b de                	mov    %esi,%ebx
5a7c33:	6a 00                	push   $0x0
5a7c35:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7c38:	50                   	push   %eax
5a7c39:	57                   	push   %edi
5a7c3a:	e8 39 00 e6 ff       	call   0x407c78
5a7c3f:	8b 07                	mov    (%edi),%eax
5a7c41:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5a7c44:	7c cd                	jl     0x5a7c13
5a7c46:	8b 45 e8             	mov    -0x18(%ebp),%eax
5a7c49:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a7c4c:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
5a7c50:	7d 07                	jge    0x5a7c59
5a7c52:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
5a7c59:	8b 45 10             	mov    0x10(%ebp),%eax
5a7c5c:	57                   	push   %edi
5a7c5d:	8b f0                	mov    %eax,%esi
5a7c5f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7c60:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7c61:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7c62:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7c63:	5f                   	pop    %edi
5a7c64:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7c67:	f7 6d 08             	imull  0x8(%ebp)
5a7c6a:	b9 64 00 00 00       	mov    $0x64,%ecx
5a7c6f:	99                   	cltd
5a7c70:	f7 f9                	idiv   %ecx
5a7c72:	8b 55 10             	mov    0x10(%ebp),%edx
5a7c75:	8b 52 0c             	mov    0xc(%edx),%edx
5a7c78:	2b d0                	sub    %eax,%edx
5a7c7a:	89 57 04             	mov    %edx,0x4(%edi)
5a7c7d:	eb 2e                	jmp    0x5a7cad
5a7c7f:	57                   	push   %edi
5a7c80:	e8 63 f8 e5 ff       	call   0x4074e8
5a7c85:	8b f0                	mov    %eax,%esi
5a7c87:	85 db                	test   %ebx,%ebx
5a7c89:	74 12                	je     0x5a7c9d
5a7c8b:	6a 02                	push   $0x2
5a7c8d:	56                   	push   %esi
5a7c8e:	53                   	push   %ebx
5a7c8f:	53                   	push   %ebx
5a7c90:	e8 b3 f7 e5 ff       	call   0x407448
5a7c95:	56                   	push   %esi
5a7c96:	e8 75 f8 e5 ff       	call   0x407510
5a7c9b:	eb 02                	jmp    0x5a7c9f
5a7c9d:	8b de                	mov    %esi,%ebx
5a7c9f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7ca2:	f7 d8                	neg    %eax
5a7ca4:	50                   	push   %eax
5a7ca5:	6a 00                	push   $0x0
5a7ca7:	57                   	push   %edi
5a7ca8:	e8 cb ff e5 ff       	call   0x407c78
5a7cad:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
5a7cb1:	7d cc                	jge    0x5a7c7f
5a7cb3:	53                   	push   %ebx
5a7cb4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7cb7:	e8 04 10 e8 ff       	call   0x428cc0
5a7cbc:	50                   	push   %eax
5a7cbd:	e8 36 fa e5 ff       	call   0x4076f8
5a7cc2:	53                   	push   %ebx
5a7cc3:	e8 48 f8 e5 ff       	call   0x407510
5a7cc8:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a7ccb:	50                   	push   %eax
5a7ccc:	33 c9                	xor    %ecx,%ecx
5a7cce:	33 d2                	xor    %edx,%edx
5a7cd0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7cd3:	e8 fc 08 e8 ff       	call   0x4285d4
5a7cd8:	6a 00                	push   $0x0
5a7cda:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a7cdd:	e8 de 0f e8 ff       	call   0x428cc0
5a7ce2:	50                   	push   %eax
5a7ce3:	e8 10 fa e5 ff       	call   0x4076f8
5a7ce8:	5f                   	pop    %edi
5a7ce9:	5e                   	pop    %esi
5a7cea:	5b                   	pop    %ebx
5a7ceb:	8b e5                	mov    %ebp,%esp
5a7ced:	5d                   	pop    %ebp
5a7cee:	c2 0c 00             	ret    $0xc
5a7cf1:	8d 40 00             	lea    0x0(%eax),%eax
5a7cf4:	55                   	push   %ebp
5a7cf5:	8b ec                	mov    %esp,%ebp
5a7cf7:	83 c4 c8             	add    $0xffffffc8,%esp
5a7cfa:	53                   	push   %ebx
5a7cfb:	56                   	push   %esi
5a7cfc:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5a7cff:	8b f0                	mov    %eax,%esi
5a7d01:	8d 45 f8             	lea    -0x8(%ebp),%eax
5a7d04:	50                   	push   %eax
5a7d05:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a7d08:	50                   	push   %eax
5a7d09:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a7d0c:	50                   	push   %eax
5a7d0d:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a7d10:	50                   	push   %eax
5a7d11:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a7d14:	50                   	push   %eax
5a7d15:	8b 45 10             	mov    0x10(%ebp),%eax
5a7d18:	8b 4d 08             	mov    0x8(%ebp),%ecx
5a7d1b:	8b 55 0c             	mov    0xc(%ebp),%edx
5a7d1e:	e8 d1 a9 ff ff       	call   0x5a26f4
5a7d23:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a7d26:	d1 f8                	sar    $1,%eax
5a7d28:	79 03                	jns    0x5a7d2d
5a7d2a:	83 d0 00             	adc    $0x0,%eax
5a7d2d:	8b 55 f4             	mov    -0xc(%ebp),%edx
5a7d30:	d1 fa                	sar    $1,%edx
5a7d32:	79 03                	jns    0x5a7d37
5a7d34:	83 d2 00             	adc    $0x0,%edx