5a7861:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
5a7868:	8b 45 10             	mov    0x10(%ebp),%eax
5a786b:	57                   	push   %edi
5a786c:	8b f0                	mov    %eax,%esi
5a786e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a786f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7870:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7871:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7872:	5f                   	pop    %edi
5a7873:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7876:	f7 6d 08             	imull  0x8(%ebp)
5a7879:	b9 64 00 00 00       	mov    $0x64,%ecx
5a787e:	99                   	cltd
5a787f:	f7 f9                	idiv   %ecx
5a7881:	89 47 08             	mov    %eax,0x8(%edi)
5a7884:	eb 2c                	jmp    0x5a78b2
5a7886:	57                   	push   %edi
5a7887:	e8 5c fc e5 ff       	call   0x4074e8
5a788c:	8b f0                	mov    %eax,%esi
5a788e:	85 db                	test   %ebx,%ebx
5a7890:	74 12                	je     0x5a78a4
5a7892:	6a 02                	push   $0x2
5a7894:	56                   	push   %esi
5a7895:	53                   	push   %ebx
5a7896:	53                   	push   %ebx
5a7897:	e8 ac fb e5 ff       	call   0x407448
5a789c:	56                   	push   %esi
5a789d:	e8 6e fc e5 ff       	call   0x407510
5a78a2:	eb 02                	jmp    0x5a78a6
5a78a4:	8b de                	mov    %esi,%ebx
5a78a6:	6a 00                	push   $0x0
5a78a8:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a78ab:	50                   	push   %eax
5a78ac:	57                   	push   %edi
5a78ad:	e8 c6 03 e6 ff       	call   0x407c78
5a78b2:	8b 07                	mov    (%edi),%eax
5a78b4:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5a78b7:	7c cd                	jl     0x5a7886
5a78b9:	53                   	push   %ebx
5a78ba:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a78bd:	e8 fe 13 e8 ff       	call   0x428cc0
5a78c2:	50                   	push   %eax
5a78c3:	e8 30 fe e5 ff       	call   0x4076f8
5a78c8:	53                   	push   %ebx
5a78c9:	e8 42 fc e5 ff       	call   0x407510
5a78ce:	8b 45 f8             	mov    -0x8(%ebp),%eax
5a78d1:	50                   	push   %eax
5a78d2:	33 c9                	xor    %ecx,%ecx
5a78d4:	33 d2                	xor    %edx,%edx
5a78d6:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a78d9:	e8 f6 0c e8 ff       	call   0x4285d4
5a78de:	6a 00                	push   $0x0
5a78e0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5a78e3:	e8 d8 13 e8 ff       	call   0x428cc0
5a78e8:	50                   	push   %eax
5a78e9:	e8 0a fe e5 ff       	call   0x4076f8
5a78ee:	5f                   	pop    %edi
5a78ef:	5e                   	pop    %esi
5a78f0:	5b                   	pop    %ebx
5a78f1:	8b e5                	mov    %ebp,%esp
5a78f3:	5d                   	pop    %ebp
5a78f4:	c2 0c 00             	ret    $0xc
5a78f7:	90                   	nop
5a78f8:	55                   	push   %ebp
5a78f9:	8b ec                	mov    %esp,%ebp
5a78fb:	83 c4 d4             	add    $0xffffffd4,%esp
5a78fe:	53                   	push   %ebx
5a78ff:	56                   	push   %esi
5a7900:	57                   	push   %edi
5a7901:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5a7904:	89 45 fc             	mov    %eax,-0x4(%ebp)
5a7907:	8d 7d d4             	lea    -0x2c(%ebp),%edi
5a790a:	8d 45 f4             	lea    -0xc(%ebp),%eax
5a790d:	50                   	push   %eax
5a790e:	8d 45 f0             	lea    -0x10(%ebp),%eax
5a7911:	50                   	push   %eax
5a7912:	8d 45 ec             	lea    -0x14(%ebp),%eax
5a7915:	50                   	push   %eax
5a7916:	8d 45 e8             	lea    -0x18(%ebp),%eax
5a7919:	50                   	push   %eax
5a791a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
5a791d:	50                   	push   %eax
5a791e:	8b 45 10             	mov    0x10(%ebp),%eax
5a7921:	8b 4d 08             	mov    0x8(%ebp),%ecx
5a7924:	8b 55 0c             	mov    0xc(%ebp),%edx
5a7927:	e8 c8 ad ff ff       	call   0x5a26f4
5a792c:	33 db                	xor    %ebx,%ebx
5a792e:	8b 45 f0             	mov    -0x10(%ebp),%eax
5a7931:	99                   	cltd
5a7932:	f7 7d e4             	idivl  -0x1c(%ebp)
5a7935:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a7938:	8b 45 10             	mov    0x10(%ebp),%eax
5a793b:	57                   	push   %edi
5a793c:	8b f0                	mov    %eax,%esi
5a793e:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a793f:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7940:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7941:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a7942:	5f                   	pop    %edi
5a7943:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7946:	d1 f8                	sar    $1,%eax
5a7948:	79 03                	jns    0x5a794d
5a794a:	83 d0 00             	adc    $0x0,%eax
5a794d:	50                   	push   %eax
5a794e:	6a 00                	push   $0x0
5a7950:	57                   	push   %edi
5a7951:	e8 22 03 e6 ff       	call   0x407c78
5a7956:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7959:	f7 6d 08             	imull  0x8(%ebp)
5a795c:	b9 c8 00 00 00       	mov    $0xc8,%ecx
5a7961:	99                   	cltd
5a7962:	f7 f9                	idiv   %ecx
5a7964:	29 47 04             	sub    %eax,0x4(%edi)
5a7967:	03 c0                	add    %eax,%eax
5a7969:	03 47 04             	add    0x4(%edi),%eax
5a796c:	89 47 0c             	mov    %eax,0xc(%edi)
5a796f:	eb 2c                	jmp    0x5a799d
5a7971:	57                   	push   %edi
5a7972:	e8 71 fb e5 ff       	call   0x4074e8
5a7977:	8b f0                	mov    %eax,%esi
5a7979:	85 db                	test   %ebx,%ebx
5a797b:	74 12                	je     0x5a798f
5a797d:	6a 02                	push   $0x2
5a797f:	56                   	push   %esi
5a7980:	53                   	push   %ebx
5a7981:	53                   	push   %ebx
5a7982:	e8 c1 fa e5 ff       	call   0x407448
5a7987:	56                   	push   %esi
5a7988:	e8 83 fb e5 ff       	call   0x407510
5a798d:	eb 02                	jmp    0x5a7991
5a798f:	8b de                	mov    %esi,%ebx
5a7991:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a7994:	50                   	push   %eax
5a7995:	6a 00                	push   $0x0
5a7997:	57                   	push   %edi
5a7998:	e8 db 02 e6 ff       	call   0x407c78
5a799d:	8b 47 04             	mov    0x4(%edi),%eax
5a79a0:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5a79a3:	7c cc                	jl     0x5a7971
5a79a5:	8b 45 ec             	mov    -0x14(%ebp),%eax
5a79a8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5a79ab:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
5a79af:	7d 07                	jge    0x5a79b8
5a79b1:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)
5a79b8:	8b 45 10             	mov    0x10(%ebp),%eax
5a79bb:	57                   	push   %edi
5a79bc:	8b f0                	mov    %eax,%esi
5a79be:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79bf:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79c0:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79c1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
5a79c2:	5f                   	pop    %edi
5a79c3:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5a79c6:	f7 6d 08             	imull  0x8(%ebp)
5a79c9:	b9 64 00 00 00       	mov    $0x64,%ecx
5a79ce:	99                   	cltd
5a79cf:	f7 f9                	idiv   %ecx
5a79d1:	8b 57 08             	mov    0x8(%edi),%edx
5a79d4:	2b d0                	sub    %eax,%edx
5a79d6:	89 17                	mov    %edx,(%edi)
5a79d8:	eb 2e                	jmp    0x5a7a08
5a79da:	57                   	push   %edi
5a79db:	e8 08 fb e5 ff       	call   0x4074e8
5a79e0:	8b f0                	mov    %eax,%esi
5a79e2:	85 db                	test   %ebx,%ebx
5a79e4:	74 12                	je     0x5a79f8
5a79e6:	6a 02                	push   $0x2
5a79e8:	56                   	push   %esi
5a79e9:	53                   	push   %ebx
5a79ea:	53                   	push   %ebx
5a79eb:	e8 58 fa e5 ff       	call   0x407448
5a79f0:	56                   	push   %esi
5a79f1:	e8 1a fb e5 ff       	call   0x407510
5a79f6:	eb 02                	jmp    0x5a79fa
5a79f8:	8b de                	mov    %esi,%ebx
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