5f4954:	8b 74 fa 04          	mov    0x4(%edx,%edi,8),%esi
5f4958:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f495b:	8b 14 c2             	mov    (%edx,%eax,8),%edx
5f495e:	89 55 dc             	mov    %edx,-0x24(%ebp)
5f4961:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f4964:	8b 44 c2 04          	mov    0x4(%edx,%eax,8),%eax
5f4968:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f496b:	3b 75 d8             	cmp    -0x28(%ebp),%esi
5f496e:	74 5c                	je     0x5f49cc
5f4970:	3b 75 d8             	cmp    -0x28(%ebp),%esi
5f4973:	7e 14                	jle    0x5f4989
5f4975:	8b 45 e0             	mov    -0x20(%ebp),%eax
5f4978:	8b 55 dc             	mov    -0x24(%ebp),%edx
5f497b:	89 55 e0             	mov    %edx,-0x20(%ebp)
5f497e:	89 45 dc             	mov    %eax,-0x24(%ebp)
5f4981:	8b c6                	mov    %esi,%eax
5f4983:	8b 75 d8             	mov    -0x28(%ebp),%esi
5f4986:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f4989:	b8 18 00 00 00       	mov    $0x18,%eax
5f498e:	e8 19 de e0 ff       	call   0x4027ac
5f4993:	8b d8                	mov    %eax,%ebx
5f4995:	8b 45 e0             	mov    -0x20(%ebp),%eax
5f4998:	89 03                	mov    %eax,(%ebx)
5f499a:	8b 45 dc             	mov    -0x24(%ebp),%eax
5f499d:	2b 45 e0             	sub    -0x20(%ebp),%eax
5f49a0:	89 43 08             	mov    %eax,0x8(%ebx)
5f49a3:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f49a6:	89 43 04             	mov    %eax,0x4(%ebx)
5f49a9:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f49ac:	2b c6                	sub    %esi,%eax
5f49ae:	89 43 0c             	mov    %eax,0xc(%ebx)
5f49b1:	2b 75 ec             	sub    -0x14(%ebp),%esi
5f49b4:	89 75 e8             	mov    %esi,-0x18(%ebp)
5f49b7:	8b 45 c8             	mov    -0x38(%ebp),%eax
5f49ba:	8b 55 e8             	mov    -0x18(%ebp),%edx
5f49bd:	8b 04 90             	mov    (%eax,%edx,4),%eax
5f49c0:	89 43 14             	mov    %eax,0x14(%ebx)
5f49c3:	8b 45 c8             	mov    -0x38(%ebp),%eax
5f49c6:	8b 55 e8             	mov    -0x18(%ebp),%edx
5f49c9:	89 1c 90             	mov    %ebx,(%eax,%edx,4)
5f49cc:	47                   	inc    %edi
5f49cd:	ff 4d b4             	decl   -0x4c(%ebp)
5f49d0:	0f 85 68 ff ff ff    	jne    0x5f493e
5f49d6:	b8 18 00 00 00       	mov    $0x18,%eax
5f49db:	e8 cc dd e0 ff       	call   0x4027ac
5f49e0:	89 45 c4             	mov    %eax,-0x3c(%ebp)
5f49e3:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5f49e6:	89 45 c0             	mov    %eax,-0x40(%ebp)
5f49e9:	33 c0                	xor    %eax,%eax
5f49eb:	89 45 b8             	mov    %eax,-0x48(%ebp)
5f49ee:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5f49f1:	48                   	dec    %eax
5f49f2:	85 c0                	test   %eax,%eax
5f49f4:	0f 8c 85 01 00 00    	jl     0x5f4b7f
5f49fa:	40                   	inc    %eax
5f49fb:	89 45 b4             	mov    %eax,-0x4c(%ebp)
5f49fe:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
5f4a05:	8b 45 ec             	mov    -0x14(%ebp),%eax
5f4a08:	03 45 e8             	add    -0x18(%ebp),%eax
5f4a0b:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f4a0e:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
5f4a11:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
5f4a14:	0f 84 8b 00 00 00    	je     0x5f4aa5
5f4a1a:	8b 43 04             	mov    0x4(%ebx),%eax
5f4a1d:	3b 45 f0             	cmp    -0x10(%ebp),%eax
5f4a20:	75 1f                	jne    0x5f4a41
5f4a22:	8b 43 14             	mov    0x14(%ebx),%eax
5f4a25:	3b 45 c0             	cmp    -0x40(%ebp),%eax
5f4a28:	75 05                	jne    0x5f4a2f
5f4a2a:	89 5d c0             	mov    %ebx,-0x40(%ebp)
5f4a2d:	eb 0b                	jmp    0x5f4a3a
5f4a2f:	8b f0                	mov    %eax,%esi
5f4a31:	8b fb                	mov    %ebx,%edi
5f4a33:	b9 06 00 00 00       	mov    $0x6,%ecx
5f4a38:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5f4a3a:	e8 8d dd e0 ff       	call   0x4027cc
5f4a3f:	eb 5b                	jmp    0x5f4a9c
5f4a41:	8b 43 08             	mov    0x8(%ebx),%eax
5f4a44:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f4a47:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
5f4a4b:	74 4c                	je     0x5f4a99
5f4a4d:	8b 33                	mov    (%ebx),%esi
5f4a4f:	8b 43 0c             	mov    0xc(%ebx),%eax
5f4a52:	89 45 d0             	mov    %eax,-0x30(%ebp)
5f4a55:	8b 4b 10             	mov    0x10(%ebx),%ecx
5f4a58:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5f4a5b:	99                   	cltd
5f4a5c:	f7 7d d0             	idivl  -0x30(%ebp)
5f4a5f:	8b 55 d0             	mov    -0x30(%ebp),%edx
5f4a62:	03 d2                	add    %edx,%edx
5f4a64:	89 55 cc             	mov    %edx,-0x34(%ebp)
5f4a67:	03 f0                	add    %eax,%esi
5f4a69:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5f4a6c:	03 d2                	add    %edx,%edx
5f4a6e:	0f af 45 cc          	imul   -0x34(%ebp),%eax
5f4a72:	2b d0                	sub    %eax,%edx
5f4a74:	03 ca                	add    %edx,%ecx
5f4a76:	3b 4d d0             	cmp    -0x30(%ebp),%ecx
5f4a79:	7f 09                	jg     0x5f4a84
5f4a7b:	8b 45 d0             	mov    -0x30(%ebp),%eax
5f4a7e:	f7 d8                	neg    %eax
5f4a80:	3b c8                	cmp    %eax,%ecx
5f4a82:	7d 10                	jge    0x5f4a94
5f4a84:	83 7d d4 00          	cmpl   $0x0,-0x2c(%ebp)
5f4a88:	7e 06                	jle    0x5f4a90
5f4a8a:	46                   	inc    %esi
5f4a8b:	2b 4d cc             	sub    -0x34(%ebp),%ecx
5f4a8e:	eb 04                	jmp    0x5f4a94
5f4a90:	4e                   	dec    %esi
5f4a91:	03 4d cc             	add    -0x34(%ebp),%ecx
5f4a94:	89 33                	mov    %esi,(%ebx)
5f4a96:	89 4b 10             	mov    %ecx,0x10(%ebx)
5f4a99:	8b 5b 14             	mov    0x14(%ebx),%ebx
5f4a9c:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
5f4a9f:	0f 85 75 ff ff ff    	jne    0x5f4a1a
5f4aa5:	8b 45 c8             	mov    -0x38(%ebp),%eax
5f4aa8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5f4aab:	8b 1c 90             	mov    (%eax,%edx,4),%ebx
5f4aae:	85 db                	test   %ebx,%ebx
5f4ab0:	0f 84 8c 00 00 00    	je     0x5f4b42
5f4ab6:	8b 55 c0             	mov    -0x40(%ebp),%edx
5f4ab9:	8b 03                	mov    (%ebx),%eax
5f4abb:	89 02                	mov    %eax,(%edx)
5f4abd:	8b f0                	mov    %eax,%esi
5f4abf:	8b 43 04             	mov    0x4(%ebx),%eax
5f4ac2:	89 45 d8             	mov    %eax,-0x28(%ebp)
5f4ac5:	8b 43 08             	mov    0x8(%ebx),%eax
5f4ac8:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f4acb:	8b 43 0c             	mov    0xc(%ebx),%eax
5f4ace:	89 45 d0             	mov    %eax,-0x30(%ebp)
5f4ad1:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5f4ad4:	eb 03                	jmp    0x5f4ad9
5f4ad6:	8b 40 14             	mov    0x14(%eax),%eax
5f4ad9:	3b 30                	cmp    (%eax),%esi
5f4adb:	7f f9                	jg     0x5f4ad6
5f4add:	3b 30                	cmp    (%eax),%esi
5f4adf:	75 17                	jne    0x5f4af8
5f4ae1:	3b 45 c0             	cmp    -0x40(%ebp),%eax
5f4ae4:	74 12                	je     0x5f4af8
5f4ae6:	8b 50 08             	mov    0x8(%eax),%edx
5f4ae9:	0f af 55 d0          	imul   -0x30(%ebp),%edx
5f4aed:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5f4af0:	0f af 48 0c          	imul   0xc(%eax),%ecx
5f4af4:	3b d1                	cmp    %ecx,%edx
5f4af6:	7c de                	jl     0x5f4ad6
5f4af8:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5f4afb:	8b 5b 14             	mov    0x14(%ebx),%ebx
5f4afe:	3b 45 c0             	cmp    -0x40(%ebp),%eax
5f4b01:	75 08                	jne    0x5f4b0b
5f4b03:	8b 55 bc             	mov    -0x44(%ebp),%edx
5f4b06:	89 55 c0             	mov    %edx,-0x40(%ebp)
5f4b09:	eb 10                	jmp    0x5f4b1b
5f4b0b:	8b 55 bc             	mov    -0x44(%ebp),%edx
5f4b0e:	56                   	push   %esi
5f4b0f:	8b fa                	mov    %edx,%edi
5f4b11:	8b f0                	mov    %eax,%esi
5f4b13:	b9 06 00 00 00       	mov    $0x6,%ecx
5f4b18:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
5f4b1a:	5e                   	pop    %esi
5f4b1b:	89 30                	mov    %esi,(%eax)
5f4b1d:	8b 55 d8             	mov    -0x28(%ebp),%edx
5f4b20:	89 50 04             	mov    %edx,0x4(%eax)
5f4b23:	8b 55 d4             	mov    -0x2c(%ebp),%edx
5f4b26:	89 50 08             	mov    %edx,0x8(%eax)
5f4b29:	8b 55 d0             	mov    -0x30(%ebp),%edx
5f4b2c:	89 50 0c             	mov    %edx,0xc(%eax)
5f4b2f:	33 d2                	xor    %edx,%edx
5f4b31:	89 50 10             	mov    %edx,0x10(%eax)
5f4b34:	8b 55 bc             	mov    -0x44(%ebp),%edx
5f4b37:	89 50 14             	mov    %edx,0x14(%eax)
5f4b3a:	85 db                	test   %ebx,%ebx
5f4b3c:	0f 85 74 ff ff ff    	jne    0x5f4ab6
5f4b42:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
5f4b45:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
5f4b48:	74 29                	je     0x5f4b73
5f4b4a:	8b 33                	mov    (%ebx),%esi
5f4b4c:	8b 5b 14             	mov    0x14(%ebx),%ebx
5f4b4f:	8b 3b                	mov    (%ebx),%edi
5f4b51:	4f                   	dec    %edi
5f4b52:	3b fe                	cmp    %esi,%edi
5f4b54:	7c 15                	jl     0x5f4b6b
5f4b56:	57                   	push   %edi
5f4b57:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f4b5a:	50                   	push   %eax
5f4b5b:	8b ce                	mov    %esi,%ecx
5f4b5d:	8b 55 f8             	mov    -0x8(%ebp),%edx
5f4b60:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4b63:	e8 d0 fa ff ff       	call   0x5f4638
5f4b68:	01 45 b8             	add    %eax,-0x48(%ebp)
5f4b6b:	8b 5b 14             	mov    0x14(%ebx),%ebx
5f4b6e:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
5f4b71:	75 d7                	jne    0x5f4b4a
5f4b73:	ff 45 e8             	incl   -0x18(%ebp)
5f4b76:	ff 4d b4             	decl   -0x4c(%ebp)
5f4b79:	0f 85 86 fe ff ff    	jne    0x5f4a05
5f4b7f:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
5f4b82:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
5f4b85:	74 13                	je     0x5f4b9a
5f4b87:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5f4b8a:	8b 5b 14             	mov    0x14(%ebx),%ebx
5f4b8d:	8b 45 bc             	mov    -0x44(%ebp),%eax
5f4b90:	e8 37 dc e0 ff       	call   0x4027cc
5f4b95:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
5f4b98:	75 ed                	jne    0x5f4b87
5f4b9a:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5f4b9d:	e8 2a dc e0 ff       	call   0x4027cc
5f4ba2:	8b 45 c8             	mov    -0x38(%ebp),%eax
5f4ba5:	e8 22 dc e0 ff       	call   0x4027cc
5f4baa:	83 7d b8 00          	cmpl   $0x0,-0x48(%ebp)
5f4bae:	75 24                	jne    0x5f4bd4
5f4bb0:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4bb3:	c7 40 18 ff ff ff 7f 	movl   $0x7fffffff,0x18(%eax)
5f4bba:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4bbd:	c7 40 1c ff ff ff 7f 	movl   $0x7fffffff,0x1c(%eax)
5f4bc4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4bc7:	33 d2                	xor    %edx,%edx
5f4bc9:	89 50 20             	mov    %edx,0x20(%eax)
5f4bcc:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4bcf:	33 d2                	xor    %edx,%edx
5f4bd1:	89 50 24             	mov    %edx,0x24(%eax)
5f4bd4:	5f                   	pop    %edi
5f4bd5:	5e                   	pop    %esi
5f4bd6:	5b                   	pop    %ebx
5f4bd7:	8b e5                	mov    %ebp,%esp
5f4bd9:	5d                   	pop    %ebp
5f4bda:	c2 04 00             	ret    $0x4
5f4bdd:	8d 40 00             	lea    0x0(%eax),%eax
5f4be0:	55                   	push   %ebp
5f4be1:	8b ec                	mov    %esp,%ebp
5f4be3:	83 c4 d0             	add    $0xffffffd0,%esp
5f4be6:	53                   	push   %ebx
5f4be7:	56                   	push   %esi
5f4be8:	57                   	push   %edi
5f4be9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5f4bec:	8b f2                	mov    %edx,%esi
5f4bee:	8b d8                	mov    %eax,%ebx
5f4bf0:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
5f4bf4:	74 6d                	je     0x5f4c63
5f4bf6:	8b 0e                	mov    (%esi),%ecx
5f4bf8:	03 4b 18             	add    0x18(%ebx),%ecx
5f4bfb:	85 c9                	test   %ecx,%ecx
5f4bfd:	7d 0a                	jge    0x5f4c09
5f4bff:	8b c1                	mov    %ecx,%eax
5f4c01:	99                   	cltd
5f4c02:	33 c2                	xor    %edx,%eax
5f4c04:	2b c2                	sub    %edx,%eax
5f4c06:	01 43 18             	add    %eax,0x18(%ebx)
5f4c09:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f4c0c:	8b 09                	mov    (%ecx),%ecx
5f4c0e:	03 4b 1c             	add    0x1c(%ebx),%ecx
5f4c11:	85 c9                	test   %ecx,%ecx
5f4c13:	7d 0d                	jge    0x5f4c22
5f4c15:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4c18:	8b c1                	mov    %ecx,%eax
5f4c1a:	99                   	cltd
5f4c1b:	33 c2                	xor    %edx,%eax
5f4c1d:	2b c2                	sub    %edx,%eax
5f4c1f:	01 43 1c             	add    %eax,0x1c(%ebx)
5f4c22:	8b 3e                	mov    (%esi),%edi
5f4c24:	03 7b 20             	add    0x20(%ebx),%edi
5f4c27:	8b 4b 04             	mov    0x4(%ebx),%ecx
5f4c2a:	3b f9                	cmp    %ecx,%edi
5f4c2c:	7c 0d                	jl     0x5f4c3b
5f4c2e:	8b c1                	mov    %ecx,%eax
5f4c30:	2b c7                	sub    %edi,%eax
5f4c32:	99                   	cltd
5f4c33:	33 c2                	xor    %edx,%eax
5f4c35:	2b c2                	sub    %edx,%eax
5f4c37:	40                   	inc    %eax
5f4c38:	29 43 20             	sub    %eax,0x20(%ebx)
5f4c3b:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4c3e:	8b 00                	mov    (%eax),%eax
5f4c40:	03 43 24             	add    0x24(%ebx),%eax
5f4c43:	8b 4b 08             	mov    0x8(%ebx),%ecx
5f4c46:	3b c1                	cmp    %ecx,%eax
5f4c48:	7c 75                	jl     0x5f4cbf
5f4c4a:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4c4d:	8b 00                	mov    (%eax),%eax
5f4c4f:	03 43 24             	add    0x24(%ebx),%eax
5f4c52:	50                   	push   %eax
5f4c53:	8b c1                	mov    %ecx,%eax
5f4c55:	5a                   	pop    %edx
5f4c56:	2b c2                	sub    %edx,%eax
5f4c58:	99                   	cltd
5f4c59:	33 c2                	xor    %edx,%eax
5f4c5b:	2b c2                	sub    %edx,%eax
5f4c5d:	40                   	inc    %eax
5f4c5e:	29 43 24             	sub    %eax,0x24(%ebx)
5f4c61:	eb 5c                	jmp    0x5f4cbf
5f4c63:	8b 06                	mov    (%esi),%eax
5f4c65:	03 43 18             	add    0x18(%ebx),%eax
5f4c68:	85 c0                	test   %eax,%eax
5f4c6a:	7d 07                	jge    0x5f4c73
5f4c6c:	8b 06                	mov    (%esi),%eax
5f4c6e:	03 43 18             	add    0x18(%ebx),%eax
5f4c71:	29 06                	sub    %eax,(%esi)
5f4c73:	8b 06                	mov    (%esi),%eax
5f4c75:	03 43 20             	add    0x20(%ebx),%eax
5f4c78:	3b 43 04             	cmp    0x4(%ebx),%eax
5f4c7b:	7c 0b                	jl     0x5f4c88
5f4c7d:	8b 06                	mov    (%esi),%eax
5f4c7f:	03 43 20             	add    0x20(%ebx),%eax
5f4c82:	2b 43 04             	sub    0x4(%ebx),%eax
5f4c85:	40                   	inc    %eax
5f4c86:	29 06                	sub    %eax,(%esi)
5f4c88:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4c8b:	8b 00                	mov    (%eax),%eax
5f4c8d:	03 43 1c             	add    0x1c(%ebx),%eax
5f4c90:	85 c0                	test   %eax,%eax
5f4c92:	7d 0d                	jge    0x5f4ca1
5f4c94:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4c97:	8b 00                	mov    (%eax),%eax
5f4c99:	03 43 1c             	add    0x1c(%ebx),%eax
5f4c9c:	8b 55 fc             	mov    -0x4(%ebp),%edx
5f4c9f:	29 02                	sub    %eax,(%edx)
5f4ca1:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4ca4:	8b 00                	mov    (%eax),%eax
5f4ca6:	03 43 24             	add    0x24(%ebx),%eax
5f4ca9:	3b 43 08             	cmp    0x8(%ebx),%eax
5f4cac:	7c 11                	jl     0x5f4cbf
5f4cae:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4cb1:	8b 00                	mov    (%eax),%eax
5f4cb3:	03 43 24             	add    0x24(%ebx),%eax
5f4cb6:	2b 43 08             	sub    0x8(%ebx),%eax
5f4cb9:	40                   	inc    %eax
5f4cba:	8b 55 fc             	mov    -0x4(%ebp),%edx
5f4cbd:	29 02                	sub    %eax,(%edx)
5f4cbf:	83 3e 00             	cmpl   $0x0,(%esi)
5f4cc2:	75 0c                	jne    0x5f4cd0
5f4cc4:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4cc7:	83 38 00             	cmpl   $0x0,(%eax)
5f4cca:	0f 84 34 02 00 00    	je     0x5f4f04
5f4cd0:	8b 43 0c             	mov    0xc(%ebx),%eax
5f4cd3:	8b d0                	mov    %eax,%edx
5f4cd5:	4a                   	dec    %edx
5f4cd6:	74 0e                	je     0x5f4ce6
5f4cd8:	83 ea 07             	sub    $0x7,%edx
5f4cdb:	0f 84 f6 00 00 00    	je     0x5f4dd7
5f4ce1:	e9 a8 01 00 00       	jmp    0x5f4e8e
5f4ce6:	8b 53 20             	mov    0x20(%ebx),%edx
5f4ce9:	2b 53 18             	sub    0x18(%ebx),%edx
5f4cec:	42                   	inc    %edx
5f4ced:	89 55 dc             	mov    %edx,-0x24(%ebp)
5f4cf0:	8b 53 24             	mov    0x24(%ebx),%edx
5f4cf3:	2b 53 1c             	sub    0x1c(%ebx),%edx
5f4cf6:	42                   	inc    %edx
5f4cf7:	89 55 d8             	mov    %edx,-0x28(%ebp)
5f4cfa:	b9 20 00 00 00       	mov    $0x20,%ecx
5f4cff:	8b d0                	mov    %eax,%edx
5f4d01:	8b 45 dc             	mov    -0x24(%ebp),%eax