5fabe6:	8b c6                	mov    %esi,%eax
5fabe8:	8b 10                	mov    (%eax),%edx
5fabea:	ff 52 0c             	call   *0xc(%edx)
5fabed:	2b 45 f8             	sub    -0x8(%ebp),%eax
5fabf0:	89 45 0c             	mov    %eax,0xc(%ebp)
5fabf3:	8b c6                	mov    %esi,%eax
5fabf5:	8b 10                	mov    (%eax),%edx
5fabf7:	ff 52 08             	call   *0x8(%edx)
5fabfa:	8b 55 18             	mov    0x18(%ebp),%edx
5fabfd:	03 d3                	add    %ebx,%edx
5fabff:	3b c2                	cmp    %edx,%eax
5fac01:	7d 0c                	jge    0x5fac0f
5fac03:	8b c6                	mov    %esi,%eax
5fac05:	8b 10                	mov    (%eax),%edx
5fac07:	ff 52 08             	call   *0x8(%edx)
5fac0a:	8b d8                	mov    %eax,%ebx
5fac0c:	2b 5d 18             	sub    0x18(%ebp),%ebx
5fac0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac12:	8b 10                	mov    (%eax),%edx
5fac14:	ff 52 0c             	call   *0xc(%edx)
5fac17:	8b 55 14             	mov    0x14(%ebp),%edx
5fac1a:	03 55 0c             	add    0xc(%ebp),%edx
5fac1d:	3b c2                	cmp    %edx,%eax
5fac1f:	7d 0e                	jge    0x5fac2f
5fac21:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac24:	8b 10                	mov    (%eax),%edx
5fac26:	ff 52 0c             	call   *0xc(%edx)
5fac29:	2b 45 14             	sub    0x14(%ebp),%eax
5fac2c:	89 45 0c             	mov    %eax,0xc(%ebp)
5fac2f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac32:	8b 10                	mov    (%eax),%edx
5fac34:	ff 52 08             	call   *0x8(%edx)
5fac37:	8b 55 10             	mov    0x10(%ebp),%edx
5fac3a:	03 d3                	add    %ebx,%edx
5fac3c:	3b c2                	cmp    %edx,%eax
5fac3e:	7d 0d                	jge    0x5fac4d
5fac40:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac43:	8b 10                	mov    (%eax),%edx
5fac45:	ff 52 08             	call   *0x8(%edx)
5fac48:	8b d8                	mov    %eax,%ebx
5fac4a:	2b 5d 10             	sub    0x10(%ebp),%ebx
5fac4d:	8b c6                	mov    %esi,%eax
5fac4f:	8b 10                	mov    (%eax),%edx
5fac51:	ff 52 10             	call   *0x10(%edx)
5fac54:	3c 01                	cmp    $0x1,%al
5fac56:	75 68                	jne    0x5facc0
5fac58:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac5b:	8b 10                	mov    (%eax),%edx
5fac5d:	ff 52 10             	call   *0x10(%edx)
5fac60:	3c 01                	cmp    $0x1,%al
5fac62:	75 5c                	jne    0x5facc0
5fac64:	4b                   	dec    %ebx
5fac65:	85 db                	test   %ebx,%ebx
5fac67:	0f 8c ca 01 00 00    	jl     0x5fae37
5fac6d:	43                   	inc    %ebx
5fac6e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5fac71:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5fac78:	8b 55 18             	mov    0x18(%ebp),%edx
5fac7b:	03 55 f4             	add    -0xc(%ebp),%edx
5fac7e:	8b c6                	mov    %esi,%eax
5fac80:	8b 08                	mov    (%eax),%ecx
5fac82:	ff 11                	call   *(%ecx)
5fac84:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fac87:	8b 55 10             	mov    0x10(%ebp),%edx
5fac8a:	03 55 f4             	add    -0xc(%ebp),%edx
5fac8d:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fac90:	8b 08                	mov    (%eax),%ecx
5fac92:	ff 11                	call   *(%ecx)
5fac94:	8b d8                	mov    %eax,%ebx
5fac96:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fac99:	50                   	push   %eax
5fac9a:	8b 45 0c             	mov    0xc(%ebp),%eax
5fac9d:	50                   	push   %eax
5fac9e:	8b c6                	mov    %esi,%eax
5faca0:	8b 10                	mov    (%eax),%edx
5faca2:	ff 52 14             	call   *0x14(%edx)
5faca5:	50                   	push   %eax
5faca6:	8b 4d 14             	mov    0x14(%ebp),%ecx
5faca9:	8b 55 ec             	mov    -0x14(%ebp),%edx
5facac:	8b c3                	mov    %ebx,%eax
5facae:	e8 31 16 fb ff       	call   0x5ac2e4
5facb3:	ff 45 f4             	incl   -0xc(%ebp)
5facb6:	ff 4d e8             	decl   -0x18(%ebp)
5facb9:	75 bd                	jne    0x5fac78
5facbb:	e9 77 01 00 00       	jmp    0x5fae37
5facc0:	8b c6                	mov    %esi,%eax
5facc2:	8b 10                	mov    (%eax),%edx
5facc4:	ff 52 10             	call   *0x10(%edx)
5facc7:	3c 01                	cmp    $0x1,%al
5facc9:	0f 85 94 00 00 00    	jne    0x5fad63
5faccf:	8b 45 fc             	mov    -0x4(%ebp),%eax
5facd2:	8b 10                	mov    (%eax),%edx
5facd4:	ff 52 10             	call   *0x10(%edx)
5facd7:	3c 05                	cmp    $0x5,%al
5facd9:	0f 85 84 00 00 00    	jne    0x5fad63
5facdf:	4b                   	dec    %ebx
5face0:	85 db                	test   %ebx,%ebx
5face2:	0f 8c 4f 01 00 00    	jl     0x5fae37
5face8:	43                   	inc    %ebx
5face9:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5facec:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5facf3:	8b 55 18             	mov    0x18(%ebp),%edx
5facf6:	03 55 f4             	add    -0xc(%ebp),%edx
5facf9:	8b c6                	mov    %esi,%eax
5facfb:	8b 08                	mov    (%eax),%ecx
5facfd:	ff 11                	call   *(%ecx)
5facff:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fad02:	8b 55 10             	mov    0x10(%ebp),%edx
5fad05:	03 55 f4             	add    -0xc(%ebp),%edx
5fad08:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fad0b:	8b 08                	mov    (%eax),%ecx
5fad0d:	ff 11                	call   *(%ecx)
5fad0f:	8b d8                	mov    %eax,%ebx
5fad11:	8b 45 14             	mov    0x14(%ebp),%eax
5fad14:	8d 04 40             	lea    (%eax,%eax,2),%eax
5fad17:	03 d8                	add    %eax,%ebx
5fad19:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fad1c:	8b 7d f8             	mov    -0x8(%ebp),%edi
5fad1f:	03 7d 0c             	add    0xc(%ebp),%edi
5fad22:	4f                   	dec    %edi
5fad23:	2b f8                	sub    %eax,%edi
5fad25:	7c 2f                	jl     0x5fad56
5fad27:	47                   	inc    %edi
5fad28:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fad2b:	8b 55 f0             	mov    -0x10(%ebp),%edx
5fad2e:	8b 45 ec             	mov    -0x14(%ebp),%eax
5fad31:	e8 ca 4d fb ff       	call   0x5afb00
5fad36:	85 c0                	test   %eax,%eax
5fad38:	0f 95 c0             	setne  %al
5fad3b:	83 e0 7f             	and    $0x7f,%eax
5fad3e:	8b d0                	mov    %eax,%edx
5fad40:	c1 e0 08             	shl    $0x8,%eax
5fad43:	2b c2                	sub    %edx,%eax
5fad45:	8b d0                	mov    %eax,%edx
5fad47:	88 13                	mov    %dl,(%ebx)
5fad49:	43                   	inc    %ebx
5fad4a:	88 13                	mov    %dl,(%ebx)
5fad4c:	43                   	inc    %ebx
5fad4d:	88 13                	mov    %dl,(%ebx)
5fad4f:	43                   	inc    %ebx
5fad50:	ff 45 f0             	incl   -0x10(%ebp)
5fad53:	4f                   	dec    %edi
5fad54:	75 d5                	jne    0x5fad2b
5fad56:	ff 45 f4             	incl   -0xc(%ebp)
5fad59:	ff 4d e8             	decl   -0x18(%ebp)
5fad5c:	75 95                	jne    0x5facf3
5fad5e:	e9 d4 00 00 00       	jmp    0x5fae37
5fad63:	8b c6                	mov    %esi,%eax
5fad65:	8b 10                	mov    (%eax),%edx
5fad67:	ff 52 10             	call   *0x10(%edx)
5fad6a:	50                   	push   %eax
5fad6b:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fad6e:	8b 10                	mov    (%eax),%edx
5fad70:	ff 52 10             	call   *0x10(%edx)
5fad73:	5a                   	pop    %edx
5fad74:	3a d0                	cmp    %al,%dl
5fad76:	0f 85 bb 00 00 00    	jne    0x5fae37
5fad7c:	8b c6                	mov    %esi,%eax
5fad7e:	8b 10                	mov    (%eax),%edx
5fad80:	ff 52 10             	call   *0x10(%edx)
5fad83:	83 e0 7f             	and    $0x7f,%eax
5fad86:	83 f8 08             	cmp    $0x8,%eax
5fad89:	0f 87 a8 00 00 00    	ja     0x5fae37
5fad8f:	ff 24 85 96 ad 5f 00 	jmp    *0x5fad96(,%eax,4)
5fad96:	37                   	aaa
5fad97:	ae                   	scas   %es:(%edi),%al
5fad98:	5f                   	pop    %edi
5fad99:	00 37                	add    %dh,(%edi)
5fad9b:	ae                   	scas   %es:(%edi),%al
5fad9c:	5f                   	pop    %edi
5fad9d:	00 ba ad 5f 00 ba    	add    %bh,-0x45ffa053(%edx)
5fada3:	ad                   	lods   %ds:(%esi),%eax
5fada4:	5f                   	pop    %edi
5fada5:	00 c1                	add    %al,%cl
5fada7:	ad                   	lods   %ds:(%esi),%eax
5fada8:	5f                   	pop    %edi
5fada9:	00 c8                	add    %cl,%al
5fadab:	ad                   	lods   %ds:(%esi),%eax
5fadac:	5f                   	pop    %edi
5fadad:	00 cf                	add    %cl,%bh
5fadaf:	ad                   	lods   %ds:(%esi),%eax
5fadb0:	5f                   	pop    %edi
5fadb1:	00 d6                	add    %dl,%dh
5fadb3:	ad                   	lods   %ds:(%esi),%eax
5fadb4:	5f                   	pop    %edi
5fadb5:	00 dd                	add    %bl,%ch
5fadb7:	ad                   	lods   %ds:(%esi),%eax
5fadb8:	5f                   	pop    %edi
5fadb9:	00 bf 01 00 00 00    	add    %bh,0x1(%edi)
5fadbf:	eb 21                	jmp    0x5fade2
5fadc1:	bf 02 00 00 00       	mov    $0x2,%edi
5fadc6:	eb 1a                	jmp    0x5fade2
5fadc8:	bf 03 00 00 00       	mov    $0x3,%edi
5fadcd:	eb 13                	jmp    0x5fade2
5fadcf:	bf 04 00 00 00       	mov    $0x4,%edi
5fadd4:	eb 0c                	jmp    0x5fade2
5fadd6:	bf 04 00 00 00       	mov    $0x4,%edi
5faddb:	eb 05                	jmp    0x5fade2
5faddd:	bf 06 00 00 00       	mov    $0x6,%edi
5fade2:	4b                   	dec    %ebx
5fade3:	85 db                	test   %ebx,%ebx
5fade5:	7c 50                	jl     0x5fae37
5fade7:	43                   	inc    %ebx
5fade8:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5fadeb:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
5fadf2:	8b 55 18             	mov    0x18(%ebp),%edx
5fadf5:	03 55 f4             	add    -0xc(%ebp),%edx
5fadf8:	8b c6                	mov    %esi,%eax
5fadfa:	8b 08                	mov    (%eax),%ecx
5fadfc:	ff 11                	call   *(%ecx)
5fadfe:	89 45 ec             	mov    %eax,-0x14(%ebp)
5fae01:	8b 45 f8             	mov    -0x8(%ebp),%eax
5fae04:	f7 ef                	imul   %edi
5fae06:	01 45 ec             	add    %eax,-0x14(%ebp)
5fae09:	8b 55 10             	mov    0x10(%ebp),%edx
5fae0c:	03 55 f4             	add    -0xc(%ebp),%edx
5fae0f:	8b 45 fc             	mov    -0x4(%ebp),%eax
5fae12:	8b 08                	mov    (%eax),%ecx
5fae14:	ff 11                	call   *(%ecx)
5fae16:	8b d8                	mov    %eax,%ebx
5fae18:	8b 45 14             	mov    0x14(%ebp),%eax
5fae1b:	f7 ef                	imul   %edi
5fae1d:	03 d8                	add    %eax,%ebx
5fae1f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5fae22:	0f af cf             	imul   %edi,%ecx
5fae25:	8b 55 ec             	mov    -0x14(%ebp),%edx
5fae28:	8b c3                	mov    %ebx,%eax
5fae2a:	e8 91 d0 e0 ff       	call   0x407ec0
5fae2f:	ff 45 f4             	incl   -0xc(%ebp)
5fae32:	ff 4d e8             	decl   -0x18(%ebp)
5fae35:	75 bb                	jne    0x5fadf2
5fae37:	5f                   	pop    %edi
5fae38:	5e                   	pop    %esi
5fae39:	5b                   	pop    %ebx
5fae3a:	8b e5                	mov    %ebp,%esp
5fae3c:	5d                   	pop    %ebp
5fae3d:	c2 14 00             	ret    $0x14
5fae40:	55                   	push   %ebp
5fae41:	8b ec                	mov    %esp,%ebp
5fae43:	83 c4 ec             	add    $0xffffffec,%esp
5fae46:	53                   	push   %ebx
5fae47:	56                   	push   %esi
5fae48:	57                   	push   %edi
5fae49:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5fae4c:	8b f0                	mov    %eax,%esi
5fae4e:	8b 5d 08             	mov    0x8(%ebp),%ebx
5fae51:	8b c2                	mov    %edx,%eax
5fae53:	e8 80 ca ff ff       	call   0x5f78d8
5fae58:	89 45 f4             	mov    %eax,-0xc(%ebp)
5fae5b:	8b c6                	mov    %esi,%eax
5fae5d:	e8 76 ca ff ff       	call   0x5f78d8
5fae62:	89 45 f0             	mov    %eax,-0x10(%ebp)
5fae65:	8b 45 f0             	mov    -0x10(%ebp),%eax
5fae68:	8b 10                	mov    (%eax),%edx
5fae6a:	ff 52 10             	call   *0x10(%edx)
5fae6d:	3c 03                	cmp    $0x3,%al
5fae6f:	0f 85 86 01 00 00    	jne    0x5faffb
5fae75:	8b 45 f4             	mov    -0xc(%ebp),%eax
5fae78:	8b 10                	mov    (%eax),%edx
5fae7a:	ff 52 10             	call   *0x10(%edx)
5fae7d:	3c 03                	cmp    $0x3,%al
5fae7f:	0f 85 76 01 00 00    	jne    0x5faffb
5fae85:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
5fae89:	7d 15                	jge    0x5faea0
5fae8b:	8b 45 14             	mov    0x14(%ebp),%eax
5fae8e:	f7 d8                	neg    %eax
5fae90:	01 45 fc             	add    %eax,-0x4(%ebp)
5fae93:	8b 55 14             	mov    0x14(%ebp),%edx
5fae96:	f7 da                	neg    %edx
5fae98:	29 45 0c             	sub    %eax,0xc(%ebp)
5fae9b:	33 c0                	xor    %eax,%eax
5fae9d:	89 45 14             	mov    %eax,0x14(%ebp)
5faea0:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
5faea4:	7d 14                	jge    0x5faeba
5faea6:	8b 45 10             	mov    0x10(%ebp),%eax
5faea9:	f7 d8                	neg    %eax
5faeab:	01 45 18             	add    %eax,0x18(%ebp)
5faeae:	8b 55 10             	mov    0x10(%ebp),%edx
5faeb1:	f7 da                	neg    %edx
5faeb3:	2b d8                	sub    %eax,%ebx
5faeb5:	33 c0                	xor    %eax,%eax
5faeb7:	89 45 10             	mov    %eax,0x10(%ebp)
5faeba:	8b 45 f4             	mov    -0xc(%ebp),%eax
5faebd:	8b 10                	mov    (%eax),%edx
5faebf:	ff 52 0c             	call   *0xc(%edx)
5faec2:	8b d0                	mov    %eax,%edx
5faec4:	4a                   	dec    %edx
5faec5:	8b 45 14             	mov    0x14(%ebp),%eax
5faec8:	e8 4f e5 fa ff       	call   0x5a941c
5faecd:	89 45 14             	mov    %eax,0x14(%ebp)
5faed0:	8b 45 f4             	mov    -0xc(%ebp),%eax
5faed3:	8b 10                	mov    (%eax),%edx
5faed5:	ff 52 08             	call   *0x8(%edx)
5faed8:	8b d0                	mov    %eax,%edx
5faeda:	4a                   	dec    %edx
5faedb:	8b 45 10             	mov    0x10(%ebp),%eax
5faede:	e8 39 e5 fa ff       	call   0x5a941c
5faee3:	89 45 10             	mov    %eax,0x10(%ebp)
5faee6:	8b 45 f0             	mov    -0x10(%ebp),%eax
5faee9:	8b 10                	mov    (%eax),%edx
5faeeb:	ff 52 0c             	call   *0xc(%edx)
5faeee:	48                   	dec    %eax
5faeef:	50                   	push   %eax
5faef0:	33 d2                	xor    %edx,%edx
5faef2:	8b 45 fc             	mov    -0x4(%ebp),%eax
5faef5:	e8 1a e5 fa ff       	call   0x5a9414
5faefa:	5a                   	pop    %edx
5faefb:	e8 1c e5 fa ff       	call   0x5a941c
5faf00:	89 45 fc             	mov    %eax,-0x4(%ebp)
5faf03:	8b 45 f0             	mov    -0x10(%ebp),%eax
5faf06:	8b 10                	mov    (%eax),%edx
5faf08:	ff 52 08             	call   *0x8(%edx)
5faf0b:	48                   	dec    %eax
5faf0c:	50                   	push   %eax
5faf0d:	33 d2                	xor    %edx,%edx
5faf0f:	8b 45 18             	mov    0x18(%ebp),%eax
5faf12:	e8 fd e4 fa ff       	call   0x5a9414
5faf17:	5a                   	pop    %edx
5faf18:	e8 ff e4 fa ff       	call   0x5a941c
5faf1d:	89 45 18             	mov    %eax,0x18(%ebp)
5faf20:	8b 45 f0             	mov    -0x10(%ebp),%eax
5faf23:	8b 10                	mov    (%eax),%edx
5faf25:	ff 52 0c             	call   *0xc(%edx)
5faf28:	8b 55 fc             	mov    -0x4(%ebp),%edx
5faf2b:	03 55 0c             	add    0xc(%ebp),%edx
5faf2e:	3b c2                	cmp    %edx,%eax
5faf30:	7d 0e                	jge    0x5faf40
5faf32:	8b 45 f0             	mov    -0x10(%ebp),%eax
5faf35:	8b 10                	mov    (%eax),%edx
5faf37:	ff 52 0c             	call   *0xc(%edx)
5faf3a:	2b 45 fc             	sub    -0x4(%ebp),%eax
5faf3d:	89 45 0c             	mov    %eax,0xc(%ebp)
5faf40:	8b 45 f0             	mov    -0x10(%ebp),%eax
5faf43:	8b 10                	mov    (%eax),%edx
5faf45:	ff 52 08             	call   *0x8(%edx)
5faf48:	8b 55 18             	mov    0x18(%ebp),%edx
5faf4b:	03 d3                	add    %ebx,%edx
5faf4d:	3b c2                	cmp    %edx,%eax
5faf4f:	7d 0d                	jge    0x5faf5e
5faf51:	8b 45 f0             	mov    -0x10(%ebp),%eax
5faf54:	8b 10                	mov    (%eax),%edx
5faf56:	ff 52 08             	call   *0x8(%edx)
5faf59:	8b d8                	mov    %eax,%ebx
5faf5b:	2b 5d 18             	sub    0x18(%ebp),%ebx
5faf5e:	8b 45 f4             	mov    -0xc(%ebp),%eax
5faf61:	8b 10                	mov    (%eax),%edx
5faf63:	ff 52 0c             	call   *0xc(%edx)
5faf66:	8b 55 14             	mov    0x14(%ebp),%edx
5faf69:	03 55 0c             	add    0xc(%ebp),%edx
5faf6c:	3b c2                	cmp    %edx,%eax