5b9b73:	8b 45 28             	mov    0x28(%ebp),%eax
5b9b76:	85 c0                	test   %eax,%eax
5b9b78:	0f 84 75 01 00 00    	je     0x5b9cf3
5b9b7e:	79 15                	jns    0x5b9b95
5b9b80:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5b9b83:	f7 d8                	neg    %eax
5b9b85:	89 45 28             	mov    %eax,0x28(%ebp)
5b9b88:	48                   	dec    %eax
5b9b89:	0f af c1             	imul   %ecx,%eax
5b9b8c:	03 f0                	add    %eax,%esi
5b9b8e:	f7 d9                	neg    %ecx
5b9b90:	89 4d 08             	mov    %ecx,0x8(%ebp)
5b9b93:	eb 06                	jmp    0x5b9b9b
5b9b95:	8b 45 0c             	mov    0xc(%ebp),%eax
5b9b98:	89 45 08             	mov    %eax,0x8(%ebp)
5b9b9b:	a1 cc 6c 69 00       	mov    0x696ccc,%eax
5b9ba0:	85 c0                	test   %eax,%eax
5b9ba2:	75 11                	jne    0x5b9bb5
5b9ba4:	e8 47 07 00 00       	call   0x5ba2f0
5b9ba9:	8b 55 fc             	mov    -0x4(%ebp),%edx
5b9bac:	8b c8                	mov    %eax,%ecx
5b9bae:	a1 cc 6c 69 00       	mov    0x696ccc,%eax
5b9bb3:	eb 02                	jmp    0x5b9bb7
5b9bb5:	8b c8                	mov    %eax,%ecx
5b9bb7:	f6 c1 20             	test   $0x20,%cl
5b9bba:	74 13                	je     0x5b9bcf
5b9bbc:	f6 c2 0f             	test   $0xf,%dl
5b9bbf:	b9 10 ac 5b 00       	mov    $0x5bac10,%ecx
5b9bc4:	ba 30 a6 5b 00       	mov    $0x5ba630,%edx
5b9bc9:	0f 44 ca             	cmove  %edx,%ecx
5b9bcc:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5b9bcf:	85 c0                	test   %eax,%eax
5b9bd1:	75 05                	jne    0x5b9bd8
5b9bd3:	e8 18 07 00 00       	call   0x5ba2f0
5b9bd8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5b9bdb:	a9 00 04 00 00       	test   $0x400,%eax
5b9be0:	74 13                	je     0x5b9bf5
5b9be2:	f6 c1 1f             	test   $0x1f,%cl
5b9be5:	b8 10 ab 5b 00       	mov    $0x5bab10,%eax
5b9bea:	ba e0 a5 5b 00       	mov    $0x5ba5e0,%edx
5b9bef:	0f 44 c2             	cmove  %edx,%eax
5b9bf2:	89 45 f4             	mov    %eax,-0xc(%ebp)
5b9bf5:	83 c1 1f             	add    $0x1f,%ecx
5b9bf8:	89 4d 24             	mov    %ecx,0x24(%ebp)
5b9bfb:	83 e1 e0             	and    $0xffffffe0,%ecx
5b9bfe:	8d 04 4d 3f 00 00 00 	lea    0x3f(,%ecx,2),%eax
5b9c05:	50                   	push   %eax
5b9c06:	e8 e4 ac 02 00       	call   0x5e48ef
5b9c0b:	8b 4d 28             	mov    0x28(%ebp),%ecx
5b9c0e:	83 c4 04             	add    $0x4,%esp
5b9c11:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5b9c14:	49                   	dec    %ecx
5b9c15:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5b9c18:	8d 50 3f             	lea    0x3f(%eax),%edx
5b9c1b:	8b 45 24             	mov    0x24(%ebp),%eax
5b9c1e:	83 e2 c0             	and    $0xffffffc0,%edx
5b9c21:	83 e0 e0             	and    $0xffffffe0,%eax
5b9c24:	03 c2                	add    %edx,%eax
5b9c26:	89 55 f8             	mov    %edx,-0x8(%ebp)
5b9c29:	85 c9                	test   %ecx,%ecx
5b9c2b:	89 45 24             	mov    %eax,0x24(%ebp)
5b9c2e:	8b 4d 20             	mov    0x20(%ebp),%ecx
5b9c31:	7e 7c                	jle    0x5b9caf
5b9c33:	8b 55 08             	mov    0x8(%ebp),%edx
5b9c36:	8d 1c 12             	lea    (%edx,%edx,1),%ebx
5b9c39:	89 5d ec             	mov    %ebx,-0x14(%ebp)
5b9c3c:	8b 5d 14             	mov    0x14(%ebp),%ebx
5b9c3f:	03 db                	add    %ebx,%ebx
5b9c41:	89 5d e8             	mov    %ebx,-0x18(%ebp)
5b9c44:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5b9c47:	4b                   	dec    %ebx
5b9c48:	d1 eb                	shr    $1,%ebx
5b9c4a:	43                   	inc    %ebx
5b9c4b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
5b9c4e:	8b 5d 10             	mov    0x10(%ebp),%ebx
5b9c51:	57                   	push   %edi
5b9c52:	51                   	push   %ecx
5b9c53:	50                   	push   %eax
5b9c54:	ff 75 f8             	push   -0x8(%ebp)
5b9c57:	52                   	push   %edx
5b9c58:	56                   	push   %esi
5b9c59:	e8 a2 00 00 00       	call   0x5b9d00
5b9c5e:	ff 75 fc             	push   -0x4(%ebp)
5b9c61:	8b 4d 24             	mov    0x24(%ebp),%ecx
5b9c64:	ff 75 18             	push   0x18(%ebp)
5b9c67:	51                   	push   %ecx
5b9c68:	ff 75 f8             	push   -0x8(%ebp)
5b9c6b:	ff 55 f4             	call   *-0xc(%ebp)
5b9c6e:	57                   	push   %edi
5b9c6f:	ff 75 20             	push   0x20(%ebp)
5b9c72:	53                   	push   %ebx
5b9c73:	56                   	push   %esi
5b9c74:	e8 c7 03 00 00       	call   0x5ba040
5b9c79:	8b 45 14             	mov    0x14(%ebp),%eax
5b9c7c:	57                   	push   %edi
5b9c7d:	ff 75 20             	push   0x20(%ebp)
5b9c80:	03 c3                	add    %ebx,%eax
5b9c82:	50                   	push   %eax
5b9c83:	8b 45 08             	mov    0x8(%ebp),%eax
5b9c86:	03 c6                	add    %esi,%eax
5b9c88:	50                   	push   %eax
5b9c89:	e8 b2 03 00 00       	call   0x5ba040
5b9c8e:	8b 45 1c             	mov    0x1c(%ebp),%eax
5b9c91:	83 c4 48             	add    $0x48,%esp
5b9c94:	01 45 18             	add    %eax,0x18(%ebp)
5b9c97:	03 75 ec             	add    -0x14(%ebp),%esi
5b9c9a:	03 5d e8             	add    -0x18(%ebp),%ebx
5b9c9d:	83 6d f0 01          	subl   $0x1,-0x10(%ebp)
5b9ca1:	8b 45 24             	mov    0x24(%ebp),%eax
5b9ca4:	8b 4d 20             	mov    0x20(%ebp),%ecx
5b9ca7:	8b 55 08             	mov    0x8(%ebp),%edx
5b9caa:	75 a5                	jne    0x5b9c51
5b9cac:	8b 55 f8             	mov    -0x8(%ebp),%edx
5b9caf:	f6 45 28 01          	testb  $0x1,0x28(%ebp)
5b9cb3:	74 2a                	je     0x5b9cdf
5b9cb5:	57                   	push   %edi
5b9cb6:	51                   	push   %ecx
5b9cb7:	50                   	push   %eax
5b9cb8:	52                   	push   %edx
5b9cb9:	6a 00                	push   $0x0
5b9cbb:	56                   	push   %esi
5b9cbc:	e8 3f 00 00 00       	call   0x5b9d00
5b9cc1:	ff 75 fc             	push   -0x4(%ebp)
5b9cc4:	8b 4d 24             	mov    0x24(%ebp),%ecx
5b9cc7:	ff 75 18             	push   0x18(%ebp)
5b9cca:	51                   	push   %ecx
5b9ccb:	ff 75 f8             	push   -0x8(%ebp)
5b9cce:	ff 55 f4             	call   *-0xc(%ebp)
5b9cd1:	57                   	push   %edi
5b9cd2:	ff 75 20             	push   0x20(%ebp)
5b9cd5:	53                   	push   %ebx
5b9cd6:	56                   	push   %esi
5b9cd7:	e8 64 03 00 00       	call   0x5ba040
5b9cdc:	83 c4 38             	add    $0x38,%esp
5b9cdf:	ff 75 e4             	push   -0x1c(%ebp)
5b9ce2:	e8 46 62 02 00       	call   0x5dff2d
5b9ce7:	83 c4 04             	add    $0x4,%esp
5b9cea:	33 c0                	xor    %eax,%eax
5b9cec:	5f                   	pop    %edi
5b9ced:	5e                   	pop    %esi
5b9cee:	5b                   	pop    %ebx
5b9cef:	8b e5                	mov    %ebp,%esp
5b9cf1:	5d                   	pop    %ebp
5b9cf2:	c3                   	ret
5b9cf3:	5f                   	pop    %edi
5b9cf4:	5e                   	pop    %esi
5b9cf5:	83 c8 ff             	or     $0xffffffff,%eax
5b9cf8:	5b                   	pop    %ebx
5b9cf9:	8b e5                	mov    %ebp,%esp
5b9cfb:	5d                   	pop    %ebp
5b9cfc:	c3                   	ret
5b9cfd:	cc                   	int3
5b9cfe:	cc                   	int3
5b9cff:	cc                   	int3
5b9d00:	55                   	push   %ebp
5b9d01:	8b ec                	mov    %esp,%ebp
5b9d03:	83 ec 0c             	sub    $0xc,%esp
5b9d06:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
5b9d09:	8b 45 18             	mov    0x18(%ebp),%eax
5b9d0c:	49                   	dec    %ecx
5b9d0d:	53                   	push   %ebx
5b9d0e:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5b9d11:	56                   	push   %esi
5b9d12:	57                   	push   %edi
5b9d13:	8b 7d 08             	mov    0x8(%ebp),%edi
5b9d16:	03 df                	add    %edi,%ebx
5b9d18:	89 5d 0c             	mov    %ebx,0xc(%ebp)
5b9d1b:	85 c9                	test   %ecx,%ecx
5b9d1d:	0f 8e f9 00 00 00    	jle    0x5b9e1c
5b9d23:	49                   	dec    %ecx
5b9d24:	d1 e9                	shr    $1,%ecx
5b9d26:	41                   	inc    %ecx
5b9d27:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5b9d2a:	8b 4d 14             	mov    0x14(%ebp),%ecx
5b9d2d:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5b9d30:	8b 4d 10             	mov    0x10(%ebp),%ecx
5b9d33:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5b9d36:	0f b6 53 06          	movzbl 0x6(%ebx),%edx
5b9d3a:	0f b6 77 06          	movzbl 0x6(%edi),%esi
5b9d3e:	42                   	inc    %edx
5b9d3f:	0f b6 4f 02          	movzbl 0x2(%edi),%ecx
5b9d43:	03 f2                	add    %edx,%esi
5b9d45:	0f b6 53 02          	movzbl 0x2(%ebx),%edx
5b9d49:	42                   	inc    %edx
5b9d4a:	d1 ee                	shr    $1,%esi
5b9d4c:	03 ca                	add    %edx,%ecx
5b9d4e:	46                   	inc    %esi
5b9d4f:	d1 e9                	shr    $1,%ecx
5b9d51:	03 ce                	add    %esi,%ecx
5b9d53:	0f b6 77 04          	movzbl 0x4(%edi),%esi
5b9d57:	d1 e9                	shr    $1,%ecx
5b9d59:	0f b6 d9             	movzbl %cl,%ebx
5b9d5c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5b9d5f:	0f b6 51 04          	movzbl 0x4(%ecx),%edx
5b9d63:	42                   	inc    %edx
5b9d64:	03 f2                	add    %edx,%esi
5b9d66:	0f b6 11             	movzbl (%ecx),%edx
5b9d69:	0f b6 0f             	movzbl (%edi),%ecx
5b9d6c:	42                   	inc    %edx
5b9d6d:	03 ca                	add    %edx,%ecx
5b9d6f:	d1 ee                	shr    $1,%esi
5b9d71:	d1 e9                	shr    $1,%ecx
5b9d73:	46                   	inc    %esi
5b9d74:	03 ce                	add    %esi,%ecx
5b9d76:	d1 e9                	shr    $1,%ecx
5b9d78:	0f b6 f9             	movzbl %cl,%edi
5b9d7b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5b9d7e:	0f b6 51 05          	movzbl 0x5(%ecx),%edx
5b9d82:	8b 4d 08             	mov    0x8(%ebp),%ecx
5b9d85:	42                   	inc    %edx
5b9d86:	0f b6 71 05          	movzbl 0x5(%ecx),%esi
5b9d8a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5b9d8d:	03 f2                	add    %edx,%esi
5b9d8f:	d1 ee                	shr    $1,%esi
5b9d91:	46                   	inc    %esi
5b9d92:	0f b6 51 01          	movzbl 0x1(%ecx),%edx
5b9d96:	8b 4d 08             	mov    0x8(%ebp),%ecx
5b9d99:	42                   	inc    %edx
5b9d9a:	0f b6 49 01          	movzbl 0x1(%ecx),%ecx
5b9d9e:	03 ca                	add    %edx,%ecx
5b9da0:	0f b6 50 04          	movzbl 0x4(%eax),%edx
5b9da4:	d1 e9                	shr    $1,%ecx
5b9da6:	03 ce                	add    %esi,%ecx
5b9da8:	0f af d7             	imul   %edi,%edx
5b9dab:	d1 e9                	shr    $1,%ecx
5b9dad:	0f b6 f1             	movzbl %cl,%esi
5b9db0:	0f b6 48 05          	movzbl 0x5(%eax),%ecx
5b9db4:	0f af ce             	imul   %esi,%ecx
5b9db7:	2b d1                	sub    %ecx,%edx
5b9db9:	0f b6 48 06          	movzbl 0x6(%eax),%ecx
5b9dbd:	0f af cb             	imul   %ebx,%ecx
5b9dc0:	2b d1                	sub    %ecx,%edx
5b9dc2:	0f b7 48 0e          	movzwl 0xe(%eax),%ecx
5b9dc6:	03 d1                	add    %ecx,%edx
5b9dc8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5b9dcb:	c1 fa 08             	sar    $0x8,%edx
5b9dce:	ff 45 fc             	incl   -0x4(%ebp)
5b9dd1:	88 11                	mov    %dl,(%ecx)
5b9dd3:	0f b6 48 09          	movzbl 0x9(%eax),%ecx
5b9dd7:	0f b6 50 08          	movzbl 0x8(%eax),%edx
5b9ddb:	0f af d3             	imul   %ebx,%edx
5b9dde:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5b9de1:	0f af ce             	imul   %esi,%ecx
5b9de4:	83 c3 08             	add    $0x8,%ebx
5b9de7:	89 5d 0c             	mov    %ebx,0xc(%ebp)
5b9dea:	2b d1                	sub    %ecx,%edx
5b9dec:	0f b6 48 0a          	movzbl 0xa(%eax),%ecx
5b9df0:	0f af cf             	imul   %edi,%ecx
5b9df3:	8b 7d 08             	mov    0x8(%ebp),%edi
5b9df6:	83 c7 08             	add    $0x8,%edi
5b9df9:	89 7d 08             	mov    %edi,0x8(%ebp)
5b9dfc:	2b d1                	sub    %ecx,%edx
5b9dfe:	0f b7 48 0e          	movzwl 0xe(%eax),%ecx
5b9e02:	03 d1                	add    %ecx,%edx
5b9e04:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5b9e07:	c1 fa 08             	sar    $0x8,%edx
5b9e0a:	88 11                	mov    %dl,(%ecx)
5b9e0c:	41                   	inc    %ecx
5b9e0d:	83 6d f4 01          	subl   $0x1,-0xc(%ebp)
5b9e11:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5b9e14:	0f 85 1c ff ff ff    	jne    0x5b9d36
5b9e1a:	eb 0c                	jmp    0x5b9e28
5b9e1c:	8b 4d 14             	mov    0x14(%ebp),%ecx
5b9e1f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5b9e22:	8b 4d 10             	mov    0x10(%ebp),%ecx
5b9e25:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5b9e28:	f6 45 1c 01          	testb  $0x1,0x1c(%ebp)
5b9e2c:	0f 84 82 00 00 00    	je     0x5b9eb4
5b9e32:	0f b6 53 02          	movzbl 0x2(%ebx),%edx
5b9e36:	0f b6 4f 02          	movzbl 0x2(%edi),%ecx
5b9e3a:	42                   	inc    %edx
5b9e3b:	8b 75 0c             	mov    0xc(%ebp),%esi
5b9e3e:	03 ca                	add    %edx,%ecx
5b9e40:	d1 e9                	shr    $1,%ecx
5b9e42:	0f b6 d9             	movzbl %cl,%ebx
5b9e45:	0f b6 0f             	movzbl (%edi),%ecx
5b9e48:	0f b6 16             	movzbl (%esi),%edx
5b9e4b:	42                   	inc    %edx
5b9e4c:	03 ca                	add    %edx,%ecx
5b9e4e:	0f b6 56 01          	movzbl 0x1(%esi),%edx
5b9e52:	d1 e9                	shr    $1,%ecx
5b9e54:	42                   	inc    %edx
5b9e55:	0f b6 f9             	movzbl %cl,%edi
5b9e58:	8b 4d 08             	mov    0x8(%ebp),%ecx
5b9e5b:	0f b6 49 01          	movzbl 0x1(%ecx),%ecx
5b9e5f:	03 ca                	add    %edx,%ecx
5b9e61:	0f b6 50 04          	movzbl 0x4(%eax),%edx
5b9e65:	d1 e9                	shr    $1,%ecx
5b9e67:	0f b6 f1             	movzbl %cl,%esi
5b9e6a:	0f b6 48 05          	movzbl 0x5(%eax),%ecx
5b9e6e:	0f af ce             	imul   %esi,%ecx
5b9e71:	0f af d7             	imul   %edi,%edx
5b9e74:	2b d1                	sub    %ecx,%edx
5b9e76:	0f b6 48 06          	movzbl 0x6(%eax),%ecx
5b9e7a:	0f af cb             	imul   %ebx,%ecx
5b9e7d:	2b d1                	sub    %ecx,%edx
5b9e7f:	0f b7 48 0e          	movzwl 0xe(%eax),%ecx
5b9e83:	03 d1                	add    %ecx,%edx
5b9e85:	8b 4d fc             	mov    -0x4(%ebp),%ecx
5b9e88:	c1 fa 08             	sar    $0x8,%edx
5b9e8b:	88 11                	mov    %dl,(%ecx)
5b9e8d:	0f b6 48 09          	movzbl 0x9(%eax),%ecx
5b9e91:	0f b6 50 08          	movzbl 0x8(%eax),%edx
5b9e95:	0f af ce             	imul   %esi,%ecx
5b9e98:	0f af d3             	imul   %ebx,%edx
5b9e9b:	2b d1                	sub    %ecx,%edx
5b9e9d:	0f b6 48 0a          	movzbl 0xa(%eax),%ecx
5b9ea1:	0f b7 40 0e          	movzwl 0xe(%eax),%eax
5b9ea5:	0f af cf             	imul   %edi,%ecx
5b9ea8:	2b d1                	sub    %ecx,%edx
5b9eaa:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5b9ead:	03 d0                	add    %eax,%edx
5b9eaf:	c1 fa 08             	sar    $0x8,%edx
5b9eb2:	88 11                	mov    %dl,(%ecx)
5b9eb4:	5f                   	pop    %edi
5b9eb5:	5e                   	pop    %esi
5b9eb6:	5b                   	pop    %ebx
5b9eb7:	8b e5                	mov    %ebp,%esp
5b9eb9:	5d                   	pop    %ebp
5b9eba:	c3                   	ret
5b9ebb:	cc                   	int3
5b9ebc:	cc                   	int3
5b9ebd:	cc                   	int3
5b9ebe:	cc                   	int3
5b9ebf:	cc                   	int3
5b9ec0:	55                   	push   %ebp
5b9ec1:	8b ec                	mov    %esp,%ebp
5b9ec3:	83 ec 08             	sub    $0x8,%esp
5b9ec6:	8b 45 18             	mov    0x18(%ebp),%eax
5b9ec9:	53                   	push   %ebx
5b9eca:	8b 5d 08             	mov    0x8(%ebp),%ebx
5b9ecd:	48                   	dec    %eax
5b9ece:	56                   	push   %esi
5b9ecf:	8b 75 0c             	mov    0xc(%ebp),%esi
5b9ed2:	03 f3                	add    %ebx,%esi
5b9ed4:	89 75 08             	mov    %esi,0x8(%ebp)
5b9ed7:	57                   	push   %edi
5b9ed8:	85 c0                	test   %eax,%eax
5b9eda:	0f 8e d1 00 00 00    	jle    0x5b9fb1
5b9ee0:	48                   	dec    %eax
5b9ee1:	d1 e8                	shr    $1,%eax
5b9ee3:	40                   	inc    %eax
5b9ee4:	89 45 f8             	mov    %eax,-0x8(%ebp)
5b9ee7:	8b 45 14             	mov    0x14(%ebp),%eax
5b9eea:	89 45 fc             	mov    %eax,-0x4(%ebp)
5b9eed:	8b 45 10             	mov    0x10(%ebp),%eax
5b9ef0:	89 45 0c             	mov    %eax,0xc(%ebp)
5b9ef3:	0f b6 4e 04          	movzbl 0x4(%esi),%ecx
5b9ef7:	0f b6 53 04          	movzbl 0x4(%ebx),%edx
5b9efb:	41                   	inc    %ecx