567987:	83 45 bc 04          	addl   $0x4,-0x44(%ebp)
56798b:	8b 55 f0             	mov    -0x10(%ebp),%edx
56798e:	85 d2                	test   %edx,%edx
567990:	0f 8f e5 f1 ff ff    	jg     0x566b7b
567996:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
56799a:	8b 4d d0             	mov    -0x30(%ebp),%ecx
56799d:	c1 e1 02             	shl    $0x2,%ecx
5679a0:	01 4d c8             	add    %ecx,-0x38(%ebp)
5679a3:	8b 45 cc             	mov    -0x34(%ebp),%eax
5679a6:	c1 e0 02             	shl    $0x2,%eax
5679a9:	01 45 c4             	add    %eax,-0x3c(%ebp)
5679ac:	8b 55 f4             	mov    -0xc(%ebp),%edx
5679af:	85 d2                	test   %edx,%edx
5679b1:	0f 8f 92 f1 ff ff    	jg     0x566b49
5679b7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5679ba:	85 c9                	test   %ecx,%ecx
5679bc:	74 0c                	je     0x5679ca
5679be:	ba 2a 00 00 00       	mov    $0x2a,%edx
5679c3:	8b c3                	mov    %ebx,%eax
5679c5:	e8 82 95 00 00       	call   0x570f4c
5679ca:	33 c0                	xor    %eax,%eax
5679cc:	5f                   	pop    %edi
5679cd:	5e                   	pop    %esi
5679ce:	5b                   	pop    %ebx
5679cf:	8b e5                	mov    %ebp,%esp
5679d1:	5d                   	pop    %ebp
5679d2:	c2 10 00             	ret    $0x10
5679d5:	90                   	nop
5679d6:	90                   	nop
5679d7:	90                   	nop
5679d8:	55                   	push   %ebp
5679d9:	8b ec                	mov    %esp,%ebp
5679db:	83 c4 b8             	add    $0xffffffb8,%esp
5679de:	53                   	push   %ebx
5679df:	56                   	push   %esi
5679e0:	57                   	push   %edi
5679e1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5679e4:	8b da                	mov    %edx,%ebx
5679e6:	8b f8                	mov    %eax,%edi
5679e8:	8b 45 10             	mov    0x10(%ebp),%eax
5679eb:	8b 55 08             	mov    0x8(%ebp),%edx
5679ee:	33 c9                	xor    %ecx,%ecx
5679f0:	89 0a                	mov    %ecx,(%edx)
5679f2:	8b 50 18             	mov    0x18(%eax),%edx
5679f5:	89 55 e4             	mov    %edx,-0x1c(%ebp)
5679f8:	8b 48 14             	mov    0x14(%eax),%ecx
5679fb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5679fe:	8b 55 14             	mov    0x14(%ebp),%edx
567a01:	8b 4a 14             	mov    0x14(%edx),%ecx
567a04:	49                   	dec    %ecx
567a05:	7e 1f                	jle    0x567a26
567a07:	8b 55 14             	mov    0x14(%ebp),%edx
567a0a:	8b 4a 1c             	mov    0x1c(%edx),%ecx
567a0d:	8b 51 04             	mov    0x4(%ecx),%edx
567a10:	8b 4d 14             	mov    0x14(%ebp),%ecx
567a13:	8b 49 1c             	mov    0x1c(%ecx),%ecx
567a16:	8b 09                	mov    (%ecx),%ecx
567a18:	2b d1                	sub    %ecx,%edx
567a1a:	85 d2                	test   %edx,%edx
567a1c:	79 03                	jns    0x567a21
567a1e:	83 c2 03             	add    $0x3,%edx
567a21:	c1 fa 02             	sar    $0x2,%edx
567a24:	eb 02                	jmp    0x567a28
567a26:	33 d2                	xor    %edx,%edx
567a28:	89 55 dc             	mov    %edx,-0x24(%ebp)
567a2b:	8b 50 14             	mov    0x14(%eax),%edx
567a2e:	4a                   	dec    %edx
567a2f:	7e 19                	jle    0x567a4a
567a31:	8b 48 1c             	mov    0x1c(%eax),%ecx
567a34:	8b 51 04             	mov    0x4(%ecx),%edx
567a37:	8b 48 1c             	mov    0x1c(%eax),%ecx
567a3a:	8b 09                	mov    (%ecx),%ecx
567a3c:	2b d1                	sub    %ecx,%edx
567a3e:	85 d2                	test   %edx,%edx
567a40:	79 03                	jns    0x567a45
567a42:	83 c2 03             	add    $0x3,%edx
567a45:	c1 fa 02             	sar    $0x2,%edx
567a48:	eb 02                	jmp    0x567a4c
567a4a:	33 d2                	xor    %edx,%edx
567a4c:	89 55 d8             	mov    %edx,-0x28(%ebp)
567a4f:	8b 55 dc             	mov    -0x24(%ebp),%edx
567a52:	c1 e2 02             	shl    $0x2,%edx
567a55:	89 55 d4             	mov    %edx,-0x2c(%ebp)
567a58:	ba 01 00 00 00       	mov    $0x1,%edx
567a5d:	8b 4d d8             	mov    -0x28(%ebp),%ecx
567a60:	c1 e1 02             	shl    $0x2,%ecx
567a63:	89 4d d0             	mov    %ecx,-0x30(%ebp)
567a66:	8d 4b 06             	lea    0x6(%ebx),%ecx
567a69:	d3 e2                	shl    %cl,%edx
567a6b:	89 55 f0             	mov    %edx,-0x10(%ebp)
567a6e:	8b 55 14             	mov    0x14(%ebp),%edx
567a71:	8b 4a 1c             	mov    0x1c(%edx),%ecx
567a74:	8b 51 04             	mov    0x4(%ecx),%edx
567a77:	83 c2 04             	add    $0x4,%edx
567a7a:	89 55 cc             	mov    %edx,-0x34(%ebp)
567a7d:	8b 40 1c             	mov    0x1c(%eax),%eax
567a80:	8b 08                	mov    (%eax),%ecx
567a82:	89 4d c8             	mov    %ecx,-0x38(%ebp)
567a85:	8b 45 e0             	mov    -0x20(%ebp),%eax
567a88:	89 45 f8             	mov    %eax,-0x8(%ebp)
567a8b:	8b 55 f8             	mov    -0x8(%ebp),%edx
567a8e:	85 d2                	test   %edx,%edx
567a90:	0f 8e e1 04 00 00    	jle    0x567f77
567a96:	8b 4d cc             	mov    -0x34(%ebp),%ecx
567a99:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
567a9c:	8b 45 c8             	mov    -0x38(%ebp),%eax
567a9f:	89 45 c0             	mov    %eax,-0x40(%ebp)
567aa2:	8b 55 f8             	mov    -0x8(%ebp),%edx
567aa5:	83 fa 04             	cmp    $0x4,%edx
567aa8:	7d 05                	jge    0x567aaf
567aaa:	8b 4d f8             	mov    -0x8(%ebp),%ecx
567aad:	eb 05                	jmp    0x567ab4
567aaf:	b9 04 00 00 00       	mov    $0x4,%ecx
567ab4:	89 4d ec             	mov    %ecx,-0x14(%ebp)
567ab7:	8b 45 e4             	mov    -0x1c(%ebp),%eax
567aba:	89 45 f4             	mov    %eax,-0xc(%ebp)
567abd:	8b 55 f4             	mov    -0xc(%ebp),%edx
567ac0:	85 d2                	test   %edx,%edx
567ac2:	0f 8e 8e 04 00 00    	jle    0x567f56
567ac8:	8b 75 c4             	mov    -0x3c(%ebp),%esi
567acb:	8b 45 c0             	mov    -0x40(%ebp),%eax
567ace:	89 45 bc             	mov    %eax,-0x44(%ebp)
567ad1:	8b 55 ec             	mov    -0x14(%ebp),%edx
567ad4:	89 55 b8             	mov    %edx,-0x48(%ebp)
567ad7:	8b 0e                	mov    (%esi),%ecx
567ad9:	81 e1 00 50 00 00    	and    $0x5000,%ecx
567adf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
567ae5:	0f 85 ef 00 00 00    	jne    0x567bda
567aeb:	8b 45 bc             	mov    -0x44(%ebp),%eax
567aee:	8d 4b 06             	lea    0x6(%ebx),%ecx
567af1:	83 f9 06             	cmp    $0x6,%ecx
567af4:	8b 10                	mov    (%eax),%edx
567af6:	89 55 e8             	mov    %edx,-0x18(%ebp)
567af9:	7e 2c                	jle    0x567b27
567afb:	85 db                	test   %ebx,%ebx
567afd:	7c 0e                	jl     0x567b0d
567aff:	8b cb                	mov    %ebx,%ecx
567b01:	8b 45 e8             	mov    -0x18(%ebp),%eax
567b04:	99                   	cltd
567b05:	33 c2                	xor    %edx,%eax
567b07:	2b c2                	sub    %edx,%eax
567b09:	d3 f8                	sar    %cl,%eax
567b0b:	eb 0e                	jmp    0x567b1b
567b0d:	8b 45 e8             	mov    -0x18(%ebp),%eax
567b10:	8b cb                	mov    %ebx,%ecx
567b12:	99                   	cltd
567b13:	33 c2                	xor    %edx,%eax
567b15:	f7 d9                	neg    %ecx
567b17:	2b c2                	sub    %edx,%eax
567b19:	d3 e0                	shl    %cl,%eax
567b1b:	83 e0 7f             	and    $0x7f,%eax
567b1e:	8b 04 85 24 0e 6b 00 	mov    0x6b0e24(,%eax,4),%eax
567b25:	eb 2a                	jmp    0x567b51
567b27:	85 db                	test   %ebx,%ebx
567b29:	7c 0e                	jl     0x567b39
567b2b:	8b cb                	mov    %ebx,%ecx
567b2d:	8b 45 e8             	mov    -0x18(%ebp),%eax
567b30:	99                   	cltd
567b31:	33 c2                	xor    %edx,%eax
567b33:	2b c2                	sub    %edx,%eax
567b35:	d3 f8                	sar    %cl,%eax
567b37:	eb 0e                	jmp    0x567b47
567b39:	8b 45 e8             	mov    -0x18(%ebp),%eax
567b3c:	8b cb                	mov    %ebx,%ecx
567b3e:	99                   	cltd
567b3f:	33 c2                	xor    %edx,%eax
567b41:	f7 d9                	neg    %ecx
567b43:	2b c2                	sub    %edx,%eax
567b45:	d3 e0                	shl    %cl,%eax
567b47:	83 e0 7f             	and    $0x7f,%eax
567b4a:	8b 04 85 2c 12 6b 00 	mov    0x6b122c(,%eax,4),%eax
567b51:	8b 55 08             	mov    0x8(%ebp),%edx
567b54:	01 02                	add    %eax,(%edx)
567b56:	8b 06                	mov    (%esi),%eax
567b58:	8b d0                	mov    %eax,%edx
567b5a:	81 e2 ff 00 00 00    	and    $0xff,%edx
567b60:	f6 c4 20             	test   $0x20,%ah
567b63:	0f 95 c1             	setne  %cl
567b66:	83 e1 01             	and    $0x1,%ecx
567b69:	c1 e1 0b             	shl    $0xb,%ecx
567b6c:	0b d1                	or     %ecx,%edx
567b6e:	8b 04 95 1c cc 6a 00 	mov    0x6acc1c(,%edx,4),%eax
567b75:	c1 e0 02             	shl    $0x2,%eax
567b78:	8b 57 10             	mov    0x10(%edi),%edx
567b7b:	03 c2                	add    %edx,%eax
567b7d:	89 47 14             	mov    %eax,0x14(%edi)
567b80:	8b 45 e8             	mov    -0x18(%ebp),%eax
567b83:	99                   	cltd
567b84:	33 c2                	xor    %edx,%eax
567b86:	2b c2                	sub    %edx,%eax
567b88:	8b 4d f0             	mov    -0x10(%ebp),%ecx
567b8b:	23 c1                	and    %ecx,%eax
567b8d:	74 07                	je     0x567b96
567b8f:	b8 01 00 00 00       	mov    $0x1,%eax
567b94:	eb 02                	jmp    0x567b98
567b96:	33 c0                	xor    %eax,%eax
567b98:	8b 57 14             	mov    0x14(%edi),%edx
567b9b:	8b 0a                	mov    (%edx),%ecx
567b9d:	0f b7 51 02          	movzwl 0x2(%ecx),%edx
567ba1:	3b c2                	cmp    %edx,%eax
567ba3:	75 28                	jne    0x567bcd
567ba5:	8b 47 14             	mov    0x14(%edi),%eax
567ba8:	8b 08                	mov    (%eax),%ecx
567baa:	0f b7 01             	movzwl (%ecx),%eax
567bad:	29 47 04             	sub    %eax,0x4(%edi)
567bb0:	f6 47 05 80          	testb  $0x80,0x5(%edi)
567bb4:	75 09                	jne    0x567bbf
567bb6:	8b c7                	mov    %edi,%eax
567bb8:	e8 8f a8 00 00       	call   0x57244c
567bbd:	eb 15                	jmp    0x567bd4
567bbf:	8b 57 14             	mov    0x14(%edi),%edx
567bc2:	8b 0a                	mov    (%edx),%ecx
567bc4:	0f b7 01             	movzwl (%ecx),%eax
567bc7:	01 07                	add    %eax,(%edi)
567bc9:	8b 07                	mov    (%edi),%eax
567bcb:	eb 07                	jmp    0x567bd4
567bcd:	8b c7                	mov    %edi,%eax
567bcf:	e8 58 ab 00 00       	call   0x57272c
567bd4:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
567bda:	ff 4d b8             	decl   -0x48(%ebp)
567bdd:	8b 55 b8             	mov    -0x48(%ebp),%edx
567be0:	85 d2                	test   %edx,%edx
567be2:	0f 8e 58 03 00 00    	jle    0x567f40
567be8:	8b 4d dc             	mov    -0x24(%ebp),%ecx
567beb:	8b 45 d8             	mov    -0x28(%ebp),%eax
567bee:	c1 e1 02             	shl    $0x2,%ecx
567bf1:	c1 e0 02             	shl    $0x2,%eax
567bf4:	03 f1                	add    %ecx,%esi
567bf6:	01 45 bc             	add    %eax,-0x44(%ebp)
567bf9:	8b 16                	mov    (%esi),%edx
567bfb:	81 e2 00 50 00 00    	and    $0x5000,%edx
567c01:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
567c07:	0f 85 ef 00 00 00    	jne    0x567cfc
567c0d:	8b 4d bc             	mov    -0x44(%ebp),%ecx
567c10:	8d 53 06             	lea    0x6(%ebx),%edx
567c13:	83 fa 06             	cmp    $0x6,%edx
567c16:	8b 01                	mov    (%ecx),%eax
567c18:	89 45 e8             	mov    %eax,-0x18(%ebp)
567c1b:	7e 2c                	jle    0x567c49
567c1d:	85 db                	test   %ebx,%ebx
567c1f:	7c 0e                	jl     0x567c2f
567c21:	8b cb                	mov    %ebx,%ecx
567c23:	8b 45 e8             	mov    -0x18(%ebp),%eax
567c26:	99                   	cltd
567c27:	33 c2                	xor    %edx,%eax
567c29:	2b c2                	sub    %edx,%eax
567c2b:	d3 f8                	sar    %cl,%eax
567c2d:	eb 0e                	jmp    0x567c3d
567c2f:	8b 45 e8             	mov    -0x18(%ebp),%eax
567c32:	8b cb                	mov    %ebx,%ecx
567c34:	99                   	cltd
567c35:	33 c2                	xor    %edx,%eax
567c37:	f7 d9                	neg    %ecx
567c39:	2b c2                	sub    %edx,%eax
567c3b:	d3 e0                	shl    %cl,%eax
567c3d:	83 e0 7f             	and    $0x7f,%eax
567c40:	8b 0c 85 24 0e 6b 00 	mov    0x6b0e24(,%eax,4),%ecx
567c47:	eb 2a                	jmp    0x567c73
567c49:	85 db                	test   %ebx,%ebx
567c4b:	7c 0e                	jl     0x567c5b
567c4d:	8b cb                	mov    %ebx,%ecx
567c4f:	8b 45 e8             	mov    -0x18(%ebp),%eax
567c52:	99                   	cltd
567c53:	33 c2                	xor    %edx,%eax
567c55:	2b c2                	sub    %edx,%eax
567c57:	d3 f8                	sar    %cl,%eax
567c59:	eb 0e                	jmp    0x567c69
567c5b:	8b 45 e8             	mov    -0x18(%ebp),%eax
567c5e:	8b cb                	mov    %ebx,%ecx
567c60:	99                   	cltd
567c61:	33 c2                	xor    %edx,%eax
567c63:	f7 d9                	neg    %ecx
567c65:	2b c2                	sub    %edx,%eax
567c67:	d3 e0                	shl    %cl,%eax
567c69:	83 e0 7f             	and    $0x7f,%eax
567c6c:	8b 0c 85 2c 12 6b 00 	mov    0x6b122c(,%eax,4),%ecx
567c73:	8b 45 08             	mov    0x8(%ebp),%eax
567c76:	01 08                	add    %ecx,(%eax)
567c78:	8b 06                	mov    (%esi),%eax
567c7a:	8b d0                	mov    %eax,%edx
567c7c:	81 e2 ff 00 00 00    	and    $0xff,%edx
567c82:	f6 c4 20             	test   $0x20,%ah
567c85:	0f 95 c1             	setne  %cl
567c88:	83 e1 01             	and    $0x1,%ecx
567c8b:	c1 e1 0b             	shl    $0xb,%ecx
567c8e:	0b d1                	or     %ecx,%edx
567c90:	8b 04 95 1c cc 6a 00 	mov    0x6acc1c(,%edx,4),%eax
567c97:	c1 e0 02             	shl    $0x2,%eax
567c9a:	8b 57 10             	mov    0x10(%edi),%edx
567c9d:	03 c2                	add    %edx,%eax
567c9f:	89 47 14             	mov    %eax,0x14(%edi)
567ca2:	8b 45 e8             	mov    -0x18(%ebp),%eax
567ca5:	99                   	cltd
567ca6:	33 c2                	xor    %edx,%eax
567ca8:	2b c2                	sub    %edx,%eax
567caa:	8b 4d f0             	mov    -0x10(%ebp),%ecx
567cad:	23 c1                	and    %ecx,%eax
567caf:	74 07                	je     0x567cb8
567cb1:	b8 01 00 00 00       	mov    $0x1,%eax
567cb6:	eb 02                	jmp    0x567cba
567cb8:	33 c0                	xor    %eax,%eax
567cba:	8b 57 14             	mov    0x14(%edi),%edx
567cbd:	8b 0a                	mov    (%edx),%ecx
567cbf:	0f b7 51 02          	movzwl 0x2(%ecx),%edx
567cc3:	3b c2                	cmp    %edx,%eax
567cc5:	75 28                	jne    0x567cef
567cc7:	8b 47 14             	mov    0x14(%edi),%eax
567cca:	8b 08                	mov    (%eax),%ecx
567ccc:	0f b7 01             	movzwl (%ecx),%eax
567ccf:	29 47 04             	sub    %eax,0x4(%edi)
567cd2:	f6 47 05 80          	testb  $0x80,0x5(%edi)
567cd6:	75 09                	jne    0x567ce1
567cd8:	8b c7                	mov    %edi,%eax
567cda:	e8 6d a7 00 00       	call   0x57244c
567cdf:	eb 15                	jmp    0x567cf6
567ce1:	8b 57 14             	mov    0x14(%edi),%edx
567ce4:	8b 0a                	mov    (%edx),%ecx
567ce6:	0f b7 01             	movzwl (%ecx),%eax
567ce9:	01 07                	add    %eax,(%edi)
567ceb:	8b 07                	mov    (%edi),%eax
567ced:	eb 07                	jmp    0x567cf6
567cef:	8b c7                	mov    %edi,%eax
567cf1:	e8 36 aa 00 00       	call   0x57272c
567cf6:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
567cfc:	ff 4d b8             	decl   -0x48(%ebp)
567cff:	8b 55 b8             	mov    -0x48(%ebp),%edx
567d02:	85 d2                	test   %edx,%edx
567d04:	0f 8e 36 02 00 00    	jle    0x567f40
567d0a:	8b 4d dc             	mov    -0x24(%ebp),%ecx
567d0d:	8b 45 d8             	mov    -0x28(%ebp),%eax
567d10:	c1 e1 02             	shl    $0x2,%ecx
567d13:	c1 e0 02             	shl    $0x2,%eax
567d16:	03 f1                	add    %ecx,%esi
567d18:	01 45 bc             	add    %eax,-0x44(%ebp)
567d1b:	8b 16                	mov    (%esi),%edx
567d1d:	81 e2 00 50 00 00    	and    $0x5000,%edx
567d23:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
567d29:	0f 85 ef 00 00 00    	jne    0x567e1e
567d2f:	8b 4d bc             	mov    -0x44(%ebp),%ecx
567d32:	8d 53 06             	lea    0x6(%ebx),%edx
567d35:	83 fa 06             	cmp    $0x6,%edx
567d38:	8b 01                	mov    (%ecx),%eax
567d3a:	89 45 e8             	mov    %eax,-0x18(%ebp)
567d3d:	7e 2c                	jle    0x567d6b
567d3f:	85 db                	test   %ebx,%ebx
567d41:	7c 0e                	jl     0x567d51
567d43:	8b cb                	mov    %ebx,%ecx
567d45:	8b 45 e8             	mov    -0x18(%ebp),%eax
567d48:	99                   	cltd
567d49:	33 c2                	xor    %edx,%eax