5f4d04:	e8 d7 bd ff ff       	call   0x5f0ae0
5f4d09:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f4d0c:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5f4d0f:	f7 6d d8             	imull  -0x28(%ebp)
5f4d12:	e8 9d 43 e1 ff       	call   0x4090b4
5f4d17:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f4d1a:	8b 43 08             	mov    0x8(%ebx),%eax
5f4d1d:	2b 43 1c             	sub    0x1c(%ebx),%eax
5f4d20:	48                   	dec    %eax
5f4d21:	f7 6b 10             	imull  0x10(%ebx)
5f4d24:	03 43 14             	add    0x14(%ebx),%eax
5f4d27:	89 45 f4             	mov    %eax,-0xc(%ebp)
5f4d2a:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f4d2d:	48                   	dec    %eax
5f4d2e:	8b d0                	mov    %eax,%edx
5f4d30:	0f af 55 d4          	imul   -0x2c(%ebp),%edx
5f4d34:	03 55 f8             	add    -0x8(%ebp),%edx
5f4d37:	89 55 f0             	mov    %edx,-0x10(%ebp)
5f4d3a:	8b f8                	mov    %eax,%edi
5f4d3c:	85 ff                	test   %edi,%edi
5f4d3e:	7c 34                	jl     0x5f4d74
5f4d40:	47                   	inc    %edi
5f4d41:	8b 43 18             	mov    0x18(%ebx),%eax
5f4d44:	50                   	push   %eax
5f4d45:	8b 45 dc             	mov    -0x24(%ebp),%eax
5f4d48:	50                   	push   %eax
5f4d49:	8b 43 10             	mov    0x10(%ebx),%eax
5f4d4c:	50                   	push   %eax
5f4d4d:	33 c9                	xor    %ecx,%ecx
5f4d4f:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f4d52:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f4d55:	e8 8a 75 fb ff       	call   0x5ac2e4
5f4d5a:	8b 53 10             	mov    0x10(%ebx),%edx
5f4d5d:	8b 45 f4             	mov    -0xc(%ebp),%eax
5f4d60:	e8 6f 31 e1 ff       	call   0x407ed4
5f4d65:	8b 43 10             	mov    0x10(%ebx),%eax
5f4d68:	29 45 f4             	sub    %eax,-0xc(%ebp)
5f4d6b:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5f4d6e:	29 45 f0             	sub    %eax,-0x10(%ebp)
5f4d71:	4f                   	dec    %edi
5f4d72:	75 cd                	jne    0x5f4d41
5f4d74:	8b 45 d8             	mov    -0x28(%ebp),%eax
5f4d77:	48                   	dec    %eax
5f4d78:	8b d0                	mov    %eax,%edx
5f4d7a:	0f af 55 d4          	imul   -0x2c(%ebp),%edx
5f4d7e:	03 55 f8             	add    -0x8(%ebp),%edx
5f4d81:	89 55 f4             	mov    %edx,-0xc(%ebp)
5f4d84:	8b 53 08             	mov    0x8(%ebx),%edx
5f4d87:	2b 53 1c             	sub    0x1c(%ebx),%edx
5f4d8a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5f4d8d:	2b 11                	sub    (%ecx),%edx
5f4d8f:	4a                   	dec    %edx
5f4d90:	0f af 53 10          	imul   0x10(%ebx),%edx
5f4d94:	03 53 14             	add    0x14(%ebx),%edx
5f4d97:	89 55 f0             	mov    %edx,-0x10(%ebp)
5f4d9a:	8b f8                	mov    %eax,%edi
5f4d9c:	85 ff                	test   %edi,%edi
5f4d9e:	7c 2a                	jl     0x5f4dca
5f4da0:	47                   	inc    %edi
5f4da1:	6a 00                	push   $0x0
5f4da3:	8b 45 dc             	mov    -0x24(%ebp),%eax
5f4da6:	50                   	push   %eax
5f4da7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5f4daa:	50                   	push   %eax
5f4dab:	8b 0e                	mov    (%esi),%ecx
5f4dad:	03 4b 18             	add    0x18(%ebx),%ecx
5f4db0:	8b 55 f4             	mov    -0xc(%ebp),%edx
5f4db3:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f4db6:	e8 29 75 fb ff       	call   0x5ac2e4
5f4dbb:	8b 43 10             	mov    0x10(%ebx),%eax
5f4dbe:	29 45 f0             	sub    %eax,-0x10(%ebp)
5f4dc1:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5f4dc4:	29 45 f4             	sub    %eax,-0xc(%ebp)
5f4dc7:	4f                   	dec    %edi
5f4dc8:	75 d7                	jne    0x5f4da1
5f4dca:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4dcd:	e8 fa d9 e0 ff       	call   0x4027cc
5f4dd2:	e9 b7 00 00 00       	jmp    0x5f4e8e
5f4dd7:	8b 43 10             	mov    0x10(%ebx),%eax
5f4dda:	f7 6b 08             	imull  0x8(%ebx)
5f4ddd:	e8 ca d9 e0 ff       	call   0x4027ac
5f4de2:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f4de5:	8b 4b 10             	mov    0x10(%ebx),%ecx
5f4de8:	0f af 4b 08          	imul   0x8(%ebx),%ecx
5f4dec:	8b 53 14             	mov    0x14(%ebx),%edx
5f4def:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4df2:	e8 c9 30 e1 ff       	call   0x407ec0
5f4df7:	8b 53 10             	mov    0x10(%ebx),%edx
5f4dfa:	0f af 53 08          	imul   0x8(%ebx),%edx
5f4dfe:	8b 43 14             	mov    0x14(%ebx),%eax
5f4e01:	e8 ce 30 e1 ff       	call   0x407ed4
5f4e06:	8b 43 1c             	mov    0x1c(%ebx),%eax
5f4e09:	8b 7b 24             	mov    0x24(%ebx),%edi
5f4e0c:	2b f8                	sub    %eax,%edi
5f4e0e:	7c 76                	jl     0x5f4e86
5f4e10:	47                   	inc    %edi
5f4e11:	89 45 e8             	mov    %eax,-0x18(%ebp)
5f4e14:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4e17:	8b 00                	mov    (%eax),%eax
5f4e19:	03 45 e8             	add    -0x18(%ebp),%eax
5f4e1c:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f4e1f:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5f4e22:	3b 43 08             	cmp    0x8(%ebx),%eax
5f4e25:	7d 59                	jge    0x5f4e80
5f4e27:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
5f4e2b:	7c 53                	jl     0x5f4e80
5f4e2d:	8b 43 18             	mov    0x18(%ebx),%eax
5f4e30:	8b 53 20             	mov    0x20(%ebx),%edx
5f4e33:	2b d0                	sub    %eax,%edx
5f4e35:	7c 49                	jl     0x5f4e80
5f4e37:	42                   	inc    %edx
5f4e38:	89 55 d0             	mov    %edx,-0x30(%ebp)
5f4e3b:	89 45 ec             	mov    %eax,-0x14(%ebp)
5f4e3e:	8b 06                	mov    (%esi),%eax
5f4e40:	03 45 ec             	add    -0x14(%ebp),%eax
5f4e43:	3b 43 04             	cmp    0x4(%ebx),%eax
5f4e46:	7d 30                	jge    0x5f4e78
5f4e48:	85 c0                	test   %eax,%eax
5f4e4a:	7c 2c                	jl     0x5f4e78
5f4e4c:	8b 53 08             	mov    0x8(%ebx),%edx
5f4e4f:	2b 55 e8             	sub    -0x18(%ebp),%edx
5f4e52:	4a                   	dec    %edx
5f4e53:	0f af 53 10          	imul   0x10(%ebx),%edx
5f4e57:	03 55 f8             	add    -0x8(%ebp),%edx
5f4e5a:	03 55 ec             	add    -0x14(%ebp),%edx
5f4e5d:	0f b6 12             	movzbl (%edx),%edx
5f4e60:	89 55 e0             	mov    %edx,-0x20(%ebp)
5f4e63:	8a 55 e0             	mov    -0x20(%ebp),%dl
5f4e66:	8b 4b 08             	mov    0x8(%ebx),%ecx
5f4e69:	2b 4d e4             	sub    -0x1c(%ebp),%ecx
5f4e6c:	49                   	dec    %ecx
5f4e6d:	0f af 4b 10          	imul   0x10(%ebx),%ecx
5f4e71:	03 4b 14             	add    0x14(%ebx),%ecx
5f4e74:	03 c1                	add    %ecx,%eax
5f4e76:	88 10                	mov    %dl,(%eax)
5f4e78:	ff 45 ec             	incl   -0x14(%ebp)
5f4e7b:	ff 4d d0             	decl   -0x30(%ebp)
5f4e7e:	75 be                	jne    0x5f4e3e
5f4e80:	ff 45 e8             	incl   -0x18(%ebp)
5f4e83:	4f                   	dec    %edi
5f4e84:	75 8e                	jne    0x5f4e14
5f4e86:	8b 45 f8             	mov    -0x8(%ebp),%eax
5f4e89:	e8 3e d9 e0 ff       	call   0x4027cc
5f4e8e:	8b 06                	mov    (%esi),%eax
5f4e90:	01 43 18             	add    %eax,0x18(%ebx)
5f4e93:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
5f4e97:	7d 05                	jge    0x5f4e9e
5f4e99:	33 c0                	xor    %eax,%eax
5f4e9b:	89 43 18             	mov    %eax,0x18(%ebx)
5f4e9e:	8b 43 04             	mov    0x4(%ebx),%eax
5f4ea1:	3b 43 18             	cmp    0x18(%ebx),%eax
5f4ea4:	7f 04                	jg     0x5f4eaa
5f4ea6:	48                   	dec    %eax
5f4ea7:	89 43 18             	mov    %eax,0x18(%ebx)
5f4eaa:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4ead:	8b 00                	mov    (%eax),%eax
5f4eaf:	01 43 1c             	add    %eax,0x1c(%ebx)
5f4eb2:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
5f4eb6:	7d 05                	jge    0x5f4ebd
5f4eb8:	33 c0                	xor    %eax,%eax
5f4eba:	89 43 1c             	mov    %eax,0x1c(%ebx)
5f4ebd:	8b 43 08             	mov    0x8(%ebx),%eax
5f4ec0:	3b 43 1c             	cmp    0x1c(%ebx),%eax
5f4ec3:	7f 04                	jg     0x5f4ec9
5f4ec5:	48                   	dec    %eax
5f4ec6:	89 43 1c             	mov    %eax,0x1c(%ebx)
5f4ec9:	8b 06                	mov    (%esi),%eax
5f4ecb:	01 43 20             	add    %eax,0x20(%ebx)
5f4ece:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
5f4ed2:	7d 05                	jge    0x5f4ed9
5f4ed4:	33 c0                	xor    %eax,%eax
5f4ed6:	89 43 20             	mov    %eax,0x20(%ebx)
5f4ed9:	8b 43 04             	mov    0x4(%ebx),%eax
5f4edc:	3b 43 20             	cmp    0x20(%ebx),%eax
5f4edf:	7f 04                	jg     0x5f4ee5
5f4ee1:	48                   	dec    %eax
5f4ee2:	89 43 20             	mov    %eax,0x20(%ebx)
5f4ee5:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f4ee8:	8b 00                	mov    (%eax),%eax
5f4eea:	01 43 24             	add    %eax,0x24(%ebx)
5f4eed:	83 7b 24 00          	cmpl   $0x0,0x24(%ebx)
5f4ef1:	7d 05                	jge    0x5f4ef8
5f4ef3:	33 c0                	xor    %eax,%eax
5f4ef5:	89 43 24             	mov    %eax,0x24(%ebx)
5f4ef8:	8b 43 08             	mov    0x8(%ebx),%eax
5f4efb:	3b 43 24             	cmp    0x24(%ebx),%eax
5f4efe:	7f 04                	jg     0x5f4f04
5f4f00:	48                   	dec    %eax
5f4f01:	89 43 24             	mov    %eax,0x24(%ebx)
5f4f04:	5f                   	pop    %edi
5f4f05:	5e                   	pop    %esi
5f4f06:	5b                   	pop    %ebx
5f4f07:	8b e5                	mov    %ebp,%esp
5f4f09:	5d                   	pop    %ebp
5f4f0a:	c2 04 00             	ret    $0x4
5f4f0d:	8d 40 00             	lea    0x0(%eax),%eax
5f4f10:	53                   	push   %ebx
5f4f11:	56                   	push   %esi
5f4f12:	57                   	push   %edi
5f4f13:	55                   	push   %ebp
5f4f14:	83 c4 f8             	add    $0xfffffff8,%esp
5f4f17:	89 14 24             	mov    %edx,(%esp)
5f4f1a:	8b d8                	mov    %eax,%ebx
5f4f1c:	81 7b 18 ff ff ff 7f 	cmpl   $0x7fffffff,0x18(%ebx)
5f4f23:	0f 84 9b 00 00 00    	je     0x5f4fc4
5f4f29:	81 7b 1c ff ff ff 7f 	cmpl   $0x7fffffff,0x1c(%ebx)
5f4f30:	0f 84 8e 00 00 00    	je     0x5f4fc4
5f4f36:	c6 43 68 00          	movb   $0x0,0x68(%ebx)
5f4f3a:	c7 43 18 ff ff ff 7f 	movl   $0x7fffffff,0x18(%ebx)
5f4f41:	c7 43 1c ff ff ff 7f 	movl   $0x7fffffff,0x1c(%ebx)
5f4f48:	33 c0                	xor    %eax,%eax
5f4f4a:	89 43 20             	mov    %eax,0x20(%ebx)
5f4f4d:	33 c0                	xor    %eax,%eax
5f4f4f:	89 43 24             	mov    %eax,0x24(%ebx)
5f4f52:	8b 43 08             	mov    0x8(%ebx),%eax
5f4f55:	48                   	dec    %eax
5f4f56:	85 c0                	test   %eax,%eax
5f4f58:	7c 6a                	jl     0x5f4fc4
5f4f5a:	40                   	inc    %eax
5f4f5b:	89 44 24 04          	mov    %eax,0x4(%esp)
5f4f5f:	33 ff                	xor    %edi,%edi
5f4f61:	8b 6b 04             	mov    0x4(%ebx),%ebp
5f4f64:	4d                   	dec    %ebp
5f4f65:	85 ed                	test   %ebp,%ebp
5f4f67:	7c 54                	jl     0x5f4fbd
5f4f69:	45                   	inc    %ebp
5f4f6a:	33 f6                	xor    %esi,%esi
5f4f6c:	8b cf                	mov    %edi,%ecx
5f4f6e:	8b d6                	mov    %esi,%edx
5f4f70:	8b c3                	mov    %ebx,%eax
5f4f72:	e8 55 df ff ff       	call   0x5f2ecc
5f4f77:	85 c0                	test   %eax,%eax
5f4f79:	75 31                	jne    0x5f4fac
5f4f7b:	8b 04 24             	mov    (%esp),%eax
5f4f7e:	50                   	push   %eax
5f4f7f:	8b cf                	mov    %edi,%ecx
5f4f81:	8b d6                	mov    %esi,%edx
5f4f83:	8b c3                	mov    %ebx,%eax
5f4f85:	e8 ce dc ff ff       	call   0x5f2c58
5f4f8a:	3b 73 18             	cmp    0x18(%ebx),%esi
5f4f8d:	7d 03                	jge    0x5f4f92
5f4f8f:	89 73 18             	mov    %esi,0x18(%ebx)
5f4f92:	3b 73 20             	cmp    0x20(%ebx),%esi
5f4f95:	7e 03                	jle    0x5f4f9a
5f4f97:	89 73 20             	mov    %esi,0x20(%ebx)
5f4f9a:	3b 7b 1c             	cmp    0x1c(%ebx),%edi
5f4f9d:	7d 03                	jge    0x5f4fa2
5f4f9f:	89 7b 1c             	mov    %edi,0x1c(%ebx)
5f4fa2:	3b 7b 24             	cmp    0x24(%ebx),%edi
5f4fa5:	7e 12                	jle    0x5f4fb9
5f4fa7:	89 7b 24             	mov    %edi,0x24(%ebx)
5f4faa:	eb 0d                	jmp    0x5f4fb9
5f4fac:	6a 00                	push   $0x0
5f4fae:	8b cf                	mov    %edi,%ecx
5f4fb0:	8b d6                	mov    %esi,%edx
5f4fb2:	8b c3                	mov    %ebx,%eax
5f4fb4:	e8 9f dc ff ff       	call   0x5f2c58
5f4fb9:	46                   	inc    %esi
5f4fba:	4d                   	dec    %ebp
5f4fbb:	75 af                	jne    0x5f4f6c
5f4fbd:	47                   	inc    %edi
5f4fbe:	ff 4c 24 04          	decl   0x4(%esp)
5f4fc2:	75 9d                	jne    0x5f4f61
5f4fc4:	59                   	pop    %ecx
5f4fc5:	5a                   	pop    %edx
5f4fc6:	5d                   	pop    %ebp
5f4fc7:	5f                   	pop    %edi
5f4fc8:	5e                   	pop    %esi
5f4fc9:	5b                   	pop    %ebx
5f4fca:	c3                   	ret
5f4fcb:	90                   	nop
5f4fcc:	53                   	push   %ebx
5f4fcd:	56                   	push   %esi
5f4fce:	57                   	push   %edi
5f4fcf:	83 c4 f4             	add    $0xfffffff4,%esp
5f4fd2:	8b f0                	mov    %eax,%esi
5f4fd4:	8b 46 0c             	mov    0xc(%esi),%eax
5f4fd7:	48                   	dec    %eax
5f4fd8:	74 0e                	je     0x5f4fe8
5f4fda:	83 e8 07             	sub    $0x7,%eax
5f4fdd:	0f 84 8f 00 00 00    	je     0x5f5072
5f4fe3:	e9 c9 00 00 00       	jmp    0x5f50b1
5f4fe8:	8b 46 04             	mov    0x4(%esi),%eax
5f4feb:	85 c0                	test   %eax,%eax
5f4fed:	79 03                	jns    0x5f4ff2
5f4fef:	83 c0 07             	add    $0x7,%eax
5f4ff2:	c1 f8 03             	sar    $0x3,%eax
5f4ff5:	89 44 24 04          	mov    %eax,0x4(%esp)
5f4ff9:	8b 46 08             	mov    0x8(%esi),%eax
5f4ffc:	48                   	dec    %eax
5f4ffd:	85 c0                	test   %eax,%eax
5f4fff:	0f 8c ac 00 00 00    	jl     0x5f50b1
5f5005:	40                   	inc    %eax
5f5006:	89 44 24 08          	mov    %eax,0x8(%esp)
5f500a:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
5f5011:	8b 14 24             	mov    (%esp),%edx
5f5014:	8b c6                	mov    %esi,%eax
5f5016:	e8 f9 f6 ff ff       	call   0x5f4714
5f501b:	8b 5c 24 04          	mov    0x4(%esp),%ebx
5f501f:	4b                   	dec    %ebx
5f5020:	85 db                	test   %ebx,%ebx
5f5022:	7c 13                	jl     0x5f5037
5f5024:	43                   	inc    %ebx
5f5025:	80 38 ff             	cmpb   $0xff,(%eax)
5f5028:	73 09                	jae    0x5f5033
5f502a:	c6 46 68 00          	movb   $0x0,0x68(%esi)
5f502e:	e9 82 00 00 00       	jmp    0x5f50b5
5f5033:	40                   	inc    %eax
5f5034:	4b                   	dec    %ebx
5f5035:	75 ee                	jne    0x5f5025
5f5037:	8b 46 04             	mov    0x4(%esi),%eax
5f503a:	a8 07                	test   $0x7,%al
5f503c:	74 29                	je     0x5f5067
5f503e:	8b 7c 24 04          	mov    0x4(%esp),%edi
5f5042:	c1 e7 03             	shl    $0x3,%edi
5f5045:	8b d8                	mov    %eax,%ebx
5f5047:	4b                   	dec    %ebx
5f5048:	2b df                	sub    %edi,%ebx
5f504a:	7c 1b                	jl     0x5f5067
5f504c:	43                   	inc    %ebx
5f504d:	8b 0c 24             	mov    (%esp),%ecx
5f5050:	8b d7                	mov    %edi,%edx
5f5052:	8b c6                	mov    %esi,%eax
5f5054:	e8 73 de ff ff       	call   0x5f2ecc
5f5059:	85 c0                	test   %eax,%eax
5f505b:	75 06                	jne    0x5f5063
5f505d:	c6 46 68 00          	movb   $0x0,0x68(%esi)
5f5061:	eb 52                	jmp    0x5f50b5
5f5063:	47                   	inc    %edi
5f5064:	4b                   	dec    %ebx
5f5065:	75 e6                	jne    0x5f504d
5f5067:	ff 04 24             	incl   (%esp)
5f506a:	ff 4c 24 08          	decl   0x8(%esp)
5f506e:	75 a1                	jne    0x5f5011
5f5070:	eb 3f                	jmp    0x5f50b1
5f5072:	8b 46 08             	mov    0x8(%esi),%eax
5f5075:	48                   	dec    %eax
5f5076:	85 c0                	test   %eax,%eax
5f5078:	7c 37                	jl     0x5f50b1
5f507a:	40                   	inc    %eax
5f507b:	89 44 24 08          	mov    %eax,0x8(%esp)
5f507f:	c7 04 24 00 00 00 00 	movl   $0x0,(%esp)
5f5086:	8b 14 24             	mov    (%esp),%edx
5f5089:	8b c6                	mov    %esi,%eax
5f508b:	e8 84 f6 ff ff       	call   0x5f4714
5f5090:	8b 5e 04             	mov    0x4(%esi),%ebx
5f5093:	4b                   	dec    %ebx
5f5094:	85 db                	test   %ebx,%ebx
5f5096:	7c 10                	jl     0x5f50a8
5f5098:	43                   	inc    %ebx