5b9999:	e8 52 09 00 00       	call   0x5ba2f0
5b999e:	8b c8                	mov    %eax,%ecx
5b99a0:	a1 cc 6c 69 00       	mov    0x696ccc,%eax
5b99a5:	eb 02                	jmp    0x5b99a9
5b99a7:	8b c8                	mov    %eax,%ecx
5b99a9:	f7 c1 00 04 00 00    	test   $0x400,%ecx
5b99af:	74 13                	je     0x5b99c4
5b99b1:	f6 c3 1f             	test   $0x1f,%bl
5b99b4:	bf 50 a9 5b 00       	mov    $0x5ba950,%edi
5b99b9:	b9 e0 a4 5b 00       	mov    $0x5ba4e0,%ecx
5b99be:	0f 44 f9             	cmove  %ecx,%edi
5b99c1:	89 7d fc             	mov    %edi,-0x4(%ebp)
5b99c4:	85 c0                	test   %eax,%eax
5b99c6:	75 0e                	jne    0x5b99d6
5b99c8:	e8 23 09 00 00       	call   0x5ba2f0
5b99cd:	8b c8                	mov    %eax,%ecx
5b99cf:	a1 cc 6c 69 00       	mov    0x696ccc,%eax
5b99d4:	eb 02                	jmp    0x5b99d8
5b99d6:	8b c8                	mov    %eax,%ecx
5b99d8:	f7 c1 00 04 00 00    	test   $0x400,%ecx
5b99de:	74 13                	je     0x5b99f3
5b99e0:	f6 c3 1f             	test   $0x1f,%bl
5b99e3:	b9 70 a6 5b 00       	mov    $0x5ba670,%ecx
5b99e8:	ba 20 a3 5b 00       	mov    $0x5ba320,%edx
5b99ed:	0f 44 ca             	cmove  %edx,%ecx
5b99f0:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5b99f3:	85 c0                	test   %eax,%eax
5b99f5:	75 0e                	jne    0x5b9a05
5b99f7:	e8 f4 08 00 00       	call   0x5ba2f0
5b99fc:	8b c8                	mov    %eax,%ecx
5b99fe:	a1 cc 6c 69 00       	mov    0x696ccc,%eax
5b9a03:	eb 02                	jmp    0x5b9a07
5b9a05:	8b c8                	mov    %eax,%ecx
5b9a07:	f6 c1 20             	test   $0x20,%cl
5b9a0a:	74 14                	je     0x5b9a20
5b9a0c:	f6 45 20 0f          	testb  $0xf,0x20(%ebp)
5b9a10:	b9 10 ac 5b 00       	mov    $0x5bac10,%ecx
5b9a15:	ba 30 a6 5b 00       	mov    $0x5ba630,%edx
5b9a1a:	0f 44 ca             	cmove  %edx,%ecx
5b9a1d:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5b9a20:	85 c0                	test   %eax,%eax
5b9a22:	75 05                	jne    0x5b9a29
5b9a24:	e8 c7 08 00 00       	call   0x5ba2f0
5b9a29:	a9 00 04 00 00       	test   $0x400,%eax
5b9a2e:	74 14                	je     0x5b9a44
5b9a30:	f6 45 20 1f          	testb  $0x1f,0x20(%ebp)
5b9a34:	b8 10 ab 5b 00       	mov    $0x5bab10,%eax
5b9a39:	b9 e0 a5 5b 00       	mov    $0x5ba5e0,%ecx
5b9a3e:	0f 44 c1             	cmove  %ecx,%eax
5b9a41:	89 45 f0             	mov    %eax,-0x10(%ebp)
5b9a44:	8b 7d 20             	mov    0x20(%ebp),%edi
5b9a47:	83 c7 1f             	add    $0x1f,%edi
5b9a4a:	8b c7                	mov    %edi,%eax
5b9a4c:	83 e0 e0             	and    $0xffffffe0,%eax
5b9a4f:	8d 04 45 3f 00 00 00 	lea    0x3f(,%eax,2),%eax
5b9a56:	50                   	push   %eax
5b9a57:	e8 93 ae 02 00       	call   0x5e48ef
5b9a5c:	8b 4d 24             	mov    0x24(%ebp),%ecx
5b9a5f:	83 e7 e0             	and    $0xffffffe0,%edi
5b9a62:	89 45 e0             	mov    %eax,-0x20(%ebp)
5b9a65:	83 c4 04             	add    $0x4,%esp
5b9a68:	83 c0 3f             	add    $0x3f,%eax
5b9a6b:	83 e0 c0             	and    $0xffffffc0,%eax
5b9a6e:	8d 51 ff             	lea    -0x1(%ecx),%edx
5b9a71:	89 45 f4             	mov    %eax,-0xc(%ebp)
5b9a74:	03 f8                	add    %eax,%edi
5b9a76:	89 55 ec             	mov    %edx,-0x14(%ebp)
5b9a79:	85 d2                	test   %edx,%edx
5b9a7b:	7e 6a                	jle    0x5b9ae7
5b9a7d:	8b 55 08             	mov    0x8(%ebp),%edx
5b9a80:	8d 0c 12             	lea    (%edx,%edx,1),%ecx
5b9a83:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5b9a86:	8b 4d 14             	mov    0x14(%ebp),%ecx
5b9a89:	03 c9                	add    %ecx,%ecx
5b9a8b:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5b9a8e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
5b9a91:	49                   	dec    %ecx
5b9a92:	d1 e9                	shr    $1,%ecx
5b9a94:	41                   	inc    %ecx
5b9a95:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5b9a98:	53                   	push   %ebx
5b9a99:	57                   	push   %edi
5b9a9a:	50                   	push   %eax
5b9a9b:	52                   	push   %edx
5b9a9c:	56                   	push   %esi
5b9a9d:	ff 55 f8             	call   *-0x8(%ebp)
5b9aa0:	ff 75 20             	push   0x20(%ebp)
5b9aa3:	ff 75 18             	push   0x18(%ebp)
5b9aa6:	57                   	push   %edi
5b9aa7:	ff 75 f4             	push   -0xc(%ebp)
5b9aaa:	ff 55 f0             	call   *-0x10(%ebp)
5b9aad:	53                   	push   %ebx
5b9aae:	ff 75 10             	push   0x10(%ebp)
5b9ab1:	56                   	push   %esi
5b9ab2:	ff 55 fc             	call   *-0x4(%ebp)
5b9ab5:	8b 45 10             	mov    0x10(%ebp),%eax
5b9ab8:	03 45 14             	add    0x14(%ebp),%eax
5b9abb:	53                   	push   %ebx
5b9abc:	50                   	push   %eax
5b9abd:	8b 45 08             	mov    0x8(%ebp),%eax
5b9ac0:	03 c6                	add    %esi,%eax
5b9ac2:	50                   	push   %eax
5b9ac3:	ff 55 fc             	call   *-0x4(%ebp)
5b9ac6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5b9ac9:	83 c4 3c             	add    $0x3c,%esp
5b9acc:	01 45 10             	add    %eax,0x10(%ebp)
5b9acf:	8b 45 1c             	mov    0x1c(%ebp),%eax
5b9ad2:	01 45 18             	add    %eax,0x18(%ebp)
5b9ad5:	03 75 e8             	add    -0x18(%ebp),%esi
5b9ad8:	83 6d ec 01          	subl   $0x1,-0x14(%ebp)
5b9adc:	8b 45 f4             	mov    -0xc(%ebp),%eax
5b9adf:	8b 55 08             	mov    0x8(%ebp),%edx
5b9ae2:	75 b4                	jne    0x5b9a98
5b9ae4:	8b 4d 24             	mov    0x24(%ebp),%ecx
5b9ae7:	f6 c1 01             	test   $0x1,%cl
5b9aea:	74 21                	je     0x5b9b0d
5b9aec:	53                   	push   %ebx
5b9aed:	57                   	push   %edi
5b9aee:	50                   	push   %eax
5b9aef:	6a 00                	push   $0x0
5b9af1:	56                   	push   %esi
5b9af2:	ff 55 f8             	call   *-0x8(%ebp)
5b9af5:	ff 75 20             	push   0x20(%ebp)
5b9af8:	ff 75 18             	push   0x18(%ebp)
5b9afb:	57                   	push   %edi
5b9afc:	ff 75 f4             	push   -0xc(%ebp)
5b9aff:	ff 55 f0             	call   *-0x10(%ebp)
5b9b02:	53                   	push   %ebx
5b9b03:	ff 75 10             	push   0x10(%ebp)
5b9b06:	56                   	push   %esi
5b9b07:	ff 55 fc             	call   *-0x4(%ebp)
5b9b0a:	83 c4 30             	add    $0x30,%esp
5b9b0d:	ff 75 e0             	push   -0x20(%ebp)
5b9b10:	e8 18 64 02 00       	call   0x5dff2d
5b9b15:	83 c4 04             	add    $0x4,%esp
5b9b18:	33 c0                	xor    %eax,%eax
5b9b1a:	5f                   	pop    %edi
5b9b1b:	5e                   	pop    %esi
5b9b1c:	5b                   	pop    %ebx
5b9b1d:	8b e5                	mov    %ebp,%esp
5b9b1f:	5d                   	pop    %ebp
5b9b20:	c3                   	ret
5b9b21:	5e                   	pop    %esi
5b9b22:	83 c8 ff             	or     $0xffffffff,%eax
5b9b25:	5b                   	pop    %ebx
5b9b26:	8b e5                	mov    %ebp,%esp
5b9b28:	5d                   	pop    %ebp
5b9b29:	c3                   	ret
5b9b2a:	cc                   	int3
5b9b2b:	cc                   	int3
5b9b2c:	cc                   	int3
5b9b2d:	cc                   	int3
5b9b2e:	cc                   	int3
5b9b2f:	cc                   	int3
5b9b30:	55                   	push   %ebp
5b9b31:	8b ec                	mov    %esp,%ebp
5b9b33:	83 ec 1c             	sub    $0x1c,%esp
5b9b36:	53                   	push   %ebx
5b9b37:	56                   	push   %esi
5b9b38:	8b 75 08             	mov    0x8(%ebp),%esi
5b9b3b:	57                   	push   %edi
5b9b3c:	8b 7d 24             	mov    0x24(%ebp),%edi
5b9b3f:	c7 45 f4 00 a1 5b 00 	movl   $0x5ba100,-0xc(%ebp)
5b9b46:	8d 57 01             	lea    0x1(%edi),%edx
5b9b49:	d1 fa                	sar    $1,%edx
5b9b4b:	89 55 fc             	mov    %edx,-0x4(%ebp)
5b9b4e:	85 f6                	test   %esi,%esi
5b9b50:	0f 84 9d 01 00 00    	je     0x5b9cf3
5b9b56:	8b 5d 10             	mov    0x10(%ebp),%ebx
5b9b59:	85 db                	test   %ebx,%ebx
5b9b5b:	0f 84 92 01 00 00    	je     0x5b9cf3
5b9b61:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
5b9b65:	0f 84 88 01 00 00    	je     0x5b9cf3
5b9b6b:	85 ff                	test   %edi,%edi
5b9b6d:	0f 8e 80 01 00 00    	jle    0x5b9cf3
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)