56388e:	8b 45 a0             	mov    -0x60(%ebp),%eax
563891:	25 ff 00 00 00       	and    $0xff,%eax
563896:	85 c0                	test   %eax,%eax
563898:	0f 84 ab 01 00 00    	je     0x563a49
56389e:	f6 45 a1 50          	testb  $0x50,-0x5f(%ebp)
5638a2:	0f 85 a1 01 00 00    	jne    0x563a49
5638a8:	8b 55 14             	mov    0x14(%ebp),%edx
5638ab:	8b 4d a0             	mov    -0x60(%ebp),%ecx
5638ae:	c1 e2 08             	shl    $0x8,%edx
5638b1:	81 e1 ff 00 00 00    	and    $0xff,%ecx
5638b7:	0b d1                	or     %ecx,%edx
5638b9:	8b 04 95 10 b4 6a 00 	mov    0x6ab410(,%edx,4),%eax
5638c0:	8b 53 10             	mov    0x10(%ebx),%edx
5638c3:	c1 e0 02             	shl    $0x2,%eax
5638c6:	03 c2                	add    %edx,%eax
5638c8:	89 43 0c             	mov    %eax,0xc(%ebx)
5638cb:	8b 4b 0c             	mov    0xc(%ebx),%ecx
5638ce:	8b 01                	mov    (%ecx),%eax
5638d0:	0f b7 10             	movzwl (%eax),%edx
5638d3:	29 53 04             	sub    %edx,0x4(%ebx)
5638d6:	8b 43 0c             	mov    0xc(%ebx),%eax
5638d9:	8b 0b                	mov    (%ebx),%ecx
5638db:	c1 e9 10             	shr    $0x10,%ecx
5638de:	8b 10                	mov    (%eax),%edx
5638e0:	0f b7 02             	movzwl (%edx),%eax
5638e3:	3b c8                	cmp    %eax,%ecx
5638e5:	72 27                	jb     0x56390e
5638e7:	8b 53 0c             	mov    0xc(%ebx),%edx
5638ea:	8b 0a                	mov    (%edx),%ecx
5638ec:	0f b7 01             	movzwl (%ecx),%eax
5638ef:	c1 e0 10             	shl    $0x10,%eax
5638f2:	29 03                	sub    %eax,(%ebx)
5638f4:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5638f8:	74 0b                	je     0x563905
5638fa:	8b 53 0c             	mov    0xc(%ebx),%edx
5638fd:	8b 0a                	mov    (%edx),%ecx
5638ff:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
563903:	eb 10                	jmp    0x563915
563905:	8b c3                	mov    %ebx,%eax
563907:	e8 a4 e3 00 00       	call   0x571cb0
56390c:	eb 07                	jmp    0x563915
56390e:	8b c3                	mov    %ebx,%eax
563910:	e8 bb e4 00 00       	call   0x571dd0
563915:	85 c0                	test   %eax,%eax
563917:	0f 84 26 01 00 00    	je     0x563a43
56391d:	8b 55 a0             	mov    -0x60(%ebp),%edx
563920:	8b 43 10             	mov    0x10(%ebx),%eax
563923:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
563929:	c1 fa 04             	sar    $0x4,%edx
56392c:	8b 0c 95 18 c8 6a 00 	mov    0x6ac818(,%edx,4),%ecx
563933:	c1 e1 02             	shl    $0x2,%ecx
563936:	03 c8                	add    %eax,%ecx
563938:	89 4b 0c             	mov    %ecx,0xc(%ebx)
56393b:	8b 53 0c             	mov    0xc(%ebx),%edx
56393e:	8b 0a                	mov    (%edx),%ecx
563940:	0f b7 01             	movzwl (%ecx),%eax
563943:	29 43 04             	sub    %eax,0x4(%ebx)
563946:	8b 4b 0c             	mov    0xc(%ebx),%ecx
563949:	8b 13                	mov    (%ebx),%edx
56394b:	c1 ea 10             	shr    $0x10,%edx
56394e:	8b 01                	mov    (%ecx),%eax
563950:	0f b7 08             	movzwl (%eax),%ecx
563953:	3b d1                	cmp    %ecx,%edx
563955:	72 27                	jb     0x56397e
563957:	8b 53 0c             	mov    0xc(%ebx),%edx
56395a:	8b 02                	mov    (%edx),%eax
56395c:	0f b7 10             	movzwl (%eax),%edx
56395f:	c1 e2 10             	shl    $0x10,%edx
563962:	29 13                	sub    %edx,(%ebx)
563964:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
563968:	74 0b                	je     0x563975
56396a:	8b 4b 0c             	mov    0xc(%ebx),%ecx
56396d:	8b 01                	mov    (%ecx),%eax
56396f:	0f b7 40 02          	movzwl 0x2(%eax),%eax
563973:	eb 10                	jmp    0x563985
563975:	8b c3                	mov    %ebx,%eax
563977:	e8 34 e3 00 00       	call   0x571cb0
56397c:	eb 07                	jmp    0x563985
56397e:	8b c3                	mov    %ebx,%eax
563980:	e8 4b e4 00 00       	call   0x571dd0
563985:	8b 55 a0             	mov    -0x60(%ebp),%edx
563988:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
56398e:	c1 fa 04             	sar    $0x4,%edx
563991:	33 04 95 14 c4 6a 00 	xor    0x6ac414(,%edx,4),%eax
563998:	8b cf                	mov    %edi,%ecx
56399a:	c1 e1 02             	shl    $0x2,%ecx
56399d:	8b d6                	mov    %esi,%edx
56399f:	2b d1                	sub    %ecx,%edx
5639a1:	89 55 9c             	mov    %edx,-0x64(%ebp)
5639a4:	8b d7                	mov    %edi,%edx
5639a6:	c1 e2 02             	shl    $0x2,%edx
5639a9:	03 d6                	add    %esi,%edx
5639ab:	eb 30                	jmp    0x5639dd
5639ad:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
5639b1:	83 4a 04 08          	orl    $0x8,0x4(%edx)
5639b5:	85 c0                	test   %eax,%eax
5639b7:	74 14                	je     0x5639cd
5639b9:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
5639bf:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5639c6:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5639cd:	83 0a 10             	orl    $0x10,(%edx)
5639d0:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
5639d4:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
5639db:	eb 4d                	jmp    0x563a2a
5639dd:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
5639e0:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
5639e4:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
5639e7:	83 49 04 04          	orl    $0x4,0x4(%ecx)
5639eb:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
5639ef:	83 4a 04 08          	orl    $0x8,0x4(%edx)
5639f3:	85 c0                	test   %eax,%eax
5639f5:	74 1f                	je     0x563a16
5639f7:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
5639fa:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
563a00:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
563a06:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
563a0d:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
563a14:	eb 14                	jmp    0x563a2a
563a16:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
563a19:	83 09 40             	orl    $0x40,(%ecx)
563a1c:	83 0a 10             	orl    $0x10,(%edx)
563a1f:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
563a23:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
563a2a:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
563a30:	85 c0                	test   %eax,%eax
563a32:	74 07                	je     0x563a3b
563a34:	8b 45 e4             	mov    -0x1c(%ebp),%eax
563a37:	f7 d8                	neg    %eax
563a39:	eb 03                	jmp    0x563a3e
563a3b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
563a3e:	8b 55 c8             	mov    -0x38(%ebp),%edx
563a41:	89 02                	mov    %eax,(%edx)
563a43:	81 0e 00 40 00 00    	orl    $0x4000,(%esi)
563a49:	ff 4d b4             	decl   -0x4c(%ebp)
563a4c:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
563a4f:	85 c9                	test   %ecx,%ecx
563a51:	0f 8e d0 01 00 00    	jle    0x563c27
563a57:	8b c7                	mov    %edi,%eax
563a59:	8b 55 c4             	mov    -0x3c(%ebp),%edx
563a5c:	c1 e0 02             	shl    $0x2,%eax
563a5f:	c1 e2 02             	shl    $0x2,%edx
563a62:	03 f0                	add    %eax,%esi
563a64:	01 55 c8             	add    %edx,-0x38(%ebp)
563a67:	8b 0e                	mov    (%esi),%ecx
563a69:	89 4d 98             	mov    %ecx,-0x68(%ebp)
563a6c:	8b 45 98             	mov    -0x68(%ebp),%eax
563a6f:	25 ff 00 00 00       	and    $0xff,%eax
563a74:	85 c0                	test   %eax,%eax
563a76:	0f 84 ab 01 00 00    	je     0x563c27
563a7c:	f6 45 99 50          	testb  $0x50,-0x67(%ebp)
563a80:	0f 85 a1 01 00 00    	jne    0x563c27
563a86:	8b 55 14             	mov    0x14(%ebp),%edx
563a89:	8b 4d 98             	mov    -0x68(%ebp),%ecx
563a8c:	c1 e2 08             	shl    $0x8,%edx
563a8f:	81 e1 ff 00 00 00    	and    $0xff,%ecx
563a95:	0b d1                	or     %ecx,%edx
563a97:	8b 04 95 10 b4 6a 00 	mov    0x6ab410(,%edx,4),%eax
563a9e:	8b 53 10             	mov    0x10(%ebx),%edx
563aa1:	c1 e0 02             	shl    $0x2,%eax
563aa4:	03 c2                	add    %edx,%eax
563aa6:	89 43 0c             	mov    %eax,0xc(%ebx)
563aa9:	8b 4b 0c             	mov    0xc(%ebx),%ecx
563aac:	8b 01                	mov    (%ecx),%eax
563aae:	0f b7 10             	movzwl (%eax),%edx
563ab1:	29 53 04             	sub    %edx,0x4(%ebx)
563ab4:	8b 43 0c             	mov    0xc(%ebx),%eax
563ab7:	8b 0b                	mov    (%ebx),%ecx
563ab9:	c1 e9 10             	shr    $0x10,%ecx
563abc:	8b 10                	mov    (%eax),%edx
563abe:	0f b7 02             	movzwl (%edx),%eax
563ac1:	3b c8                	cmp    %eax,%ecx
563ac3:	72 27                	jb     0x563aec
563ac5:	8b 53 0c             	mov    0xc(%ebx),%edx
563ac8:	8b 0a                	mov    (%edx),%ecx
563aca:	0f b7 01             	movzwl (%ecx),%eax
563acd:	c1 e0 10             	shl    $0x10,%eax
563ad0:	29 03                	sub    %eax,(%ebx)
563ad2:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
563ad6:	74 0b                	je     0x563ae3
563ad8:	8b 53 0c             	mov    0xc(%ebx),%edx
563adb:	8b 0a                	mov    (%edx),%ecx
563add:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
563ae1:	eb 10                	jmp    0x563af3
563ae3:	8b c3                	mov    %ebx,%eax
563ae5:	e8 c6 e1 00 00       	call   0x571cb0
563aea:	eb 07                	jmp    0x563af3
563aec:	8b c3                	mov    %ebx,%eax
563aee:	e8 dd e2 00 00       	call   0x571dd0
563af3:	85 c0                	test   %eax,%eax
563af5:	0f 84 26 01 00 00    	je     0x563c21
563afb:	8b 55 98             	mov    -0x68(%ebp),%edx
563afe:	8b 43 10             	mov    0x10(%ebx),%eax
563b01:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
563b07:	c1 fa 04             	sar    $0x4,%edx
563b0a:	8b 0c 95 18 c8 6a 00 	mov    0x6ac818(,%edx,4),%ecx
563b11:	c1 e1 02             	shl    $0x2,%ecx
563b14:	03 c8                	add    %eax,%ecx
563b16:	89 4b 0c             	mov    %ecx,0xc(%ebx)
563b19:	8b 53 0c             	mov    0xc(%ebx),%edx
563b1c:	8b 0a                	mov    (%edx),%ecx
563b1e:	0f b7 01             	movzwl (%ecx),%eax
563b21:	29 43 04             	sub    %eax,0x4(%ebx)
563b24:	8b 4b 0c             	mov    0xc(%ebx),%ecx
563b27:	8b 13                	mov    (%ebx),%edx
563b29:	c1 ea 10             	shr    $0x10,%edx
563b2c:	8b 01                	mov    (%ecx),%eax
563b2e:	0f b7 08             	movzwl (%eax),%ecx
563b31:	3b d1                	cmp    %ecx,%edx
563b33:	72 27                	jb     0x563b5c
563b35:	8b 53 0c             	mov    0xc(%ebx),%edx
563b38:	8b 02                	mov    (%edx),%eax
563b3a:	0f b7 10             	movzwl (%eax),%edx
563b3d:	c1 e2 10             	shl    $0x10,%edx
563b40:	29 13                	sub    %edx,(%ebx)
563b42:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
563b46:	74 0b                	je     0x563b53
563b48:	8b 4b 0c             	mov    0xc(%ebx),%ecx
563b4b:	8b 01                	mov    (%ecx),%eax
563b4d:	0f b7 40 02          	movzwl 0x2(%eax),%eax
563b51:	eb 10                	jmp    0x563b63
563b53:	8b c3                	mov    %ebx,%eax
563b55:	e8 56 e1 00 00       	call   0x571cb0
563b5a:	eb 07                	jmp    0x563b63
563b5c:	8b c3                	mov    %ebx,%eax
563b5e:	e8 6d e2 00 00       	call   0x571dd0
563b63:	8b 55 98             	mov    -0x68(%ebp),%edx
563b66:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
563b6c:	c1 fa 04             	sar    $0x4,%edx
563b6f:	33 04 95 14 c4 6a 00 	xor    0x6ac414(,%edx,4),%eax
563b76:	8b cf                	mov    %edi,%ecx
563b78:	c1 e1 02             	shl    $0x2,%ecx
563b7b:	8b d6                	mov    %esi,%edx
563b7d:	2b d1                	sub    %ecx,%edx
563b7f:	89 55 94             	mov    %edx,-0x6c(%ebp)
563b82:	8b d7                	mov    %edi,%edx
563b84:	c1 e2 02             	shl    $0x2,%edx
563b87:	03 d6                	add    %esi,%edx
563b89:	eb 30                	jmp    0x563bbb
563b8b:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
563b8f:	83 4a 04 08          	orl    $0x8,0x4(%edx)
563b93:	85 c0                	test   %eax,%eax
563b95:	74 14                	je     0x563bab
563b97:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
563b9d:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
563ba4:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
563bab:	83 0a 10             	orl    $0x10,(%edx)
563bae:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
563bb2:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
563bb9:	eb 4d                	jmp    0x563c08
563bbb:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
563bbe:	83 49 fc 02          	orl    $0x2,-0x4(%ecx)
563bc2:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
563bc5:	83 49 04 04          	orl    $0x4,0x4(%ecx)
563bc9:	83 4a fc 01          	orl    $0x1,-0x4(%edx)
563bcd:	83 4a 04 08          	orl    $0x8,0x4(%edx)
563bd1:	85 c0                	test   %eax,%eax
563bd3:	74 1f                	je     0x563bf4
563bd5:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
563bd8:	81 09 40 04 00 00    	orl    $0x440,(%ecx)
563bde:	81 0a 10 01 00 00    	orl    $0x110,(%edx)
563be4:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
563beb:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
563bf2:	eb 14                	jmp    0x563c08
563bf4:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
563bf7:	83 09 40             	orl    $0x40,(%ecx)
563bfa:	83 0a 10             	orl    $0x10,(%edx)
563bfd:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
563c01:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
563c08:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
563c0e:	85 c0                	test   %eax,%eax
563c10:	74 07                	je     0x563c19
563c12:	8b 45 e4             	mov    -0x1c(%ebp),%eax
563c15:	f7 d8                	neg    %eax
563c17:	eb 03                	jmp    0x563c1c
563c19:	8b 45 e4             	mov    -0x1c(%ebp),%eax
563c1c:	8b 55 c8             	mov    -0x38(%ebp),%edx
563c1f:	89 02                	mov    %eax,(%edx)
563c21:	81 0e 00 40 00 00    	orl    $0x4000,(%esi)
563c27:	ff 4d f0             	decl   -0x10(%ebp)
563c2a:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
563c2e:	83 45 b8 04          	addl   $0x4,-0x48(%ebp)
563c32:	8b 4d f0             	mov    -0x10(%ebp),%ecx
563c35:	85 c9                	test   %ecx,%ecx
563c37:	0f 8f 83 f8 ff ff    	jg     0x5634c0
563c3d:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
563c41:	8b 45 d4             	mov    -0x2c(%ebp),%eax
563c44:	c1 e0 02             	shl    $0x2,%eax
563c47:	01 45 d0             	add    %eax,-0x30(%ebp)
563c4a:	8b 55 c0             	mov    -0x40(%ebp),%edx
563c4d:	c1 e2 02             	shl    $0x2,%edx
563c50:	01 55 bc             	add    %edx,-0x44(%ebp)
563c53:	8b 4d f4             	mov    -0xc(%ebp),%ecx
563c56:	85 c9                	test   %ecx,%ecx
563c58:	0f 8f 30 f8 ff ff    	jg     0x56348e
563c5e:	33 c0                	xor    %eax,%eax
563c60:	5f                   	pop    %edi
563c61:	5e                   	pop    %esi
563c62:	5b                   	pop    %ebx
563c63:	8b e5                	mov    %ebp,%esp
563c65:	5d                   	pop    %ebp
563c66:	c2 10 00             	ret    $0x10
563c69:	90                   	nop
563c6a:	90                   	nop
563c6b:	90                   	nop
563c6c:	55                   	push   %ebp
563c6d:	8b ec                	mov    %esp,%ebp
563c6f:	83 c4 a4             	add    $0xffffffa4,%esp
563c72:	53                   	push   %ebx
563c73:	56                   	push   %esi
563c74:	57                   	push   %edi
563c75:	89 4d f8             	mov    %ecx,-0x8(%ebp)
563c78:	8b f2                	mov    %edx,%esi
563c7a:	89 45 fc             	mov    %eax,-0x4(%ebp)
563c7d:	8b 45 08             	mov    0x8(%ebp),%eax
563c80:	8b 50 18             	mov    0x18(%eax),%edx
563c83:	89 55 d8             	mov    %edx,-0x28(%ebp)
563c86:	8b 4d 08             	mov    0x8(%ebp),%ecx
563c89:	8b 41 14             	mov    0x14(%ecx),%eax
563c8c:	89 45 d4             	mov    %eax,-0x2c(%ebp)
563c8f:	8b 55 0c             	mov    0xc(%ebp),%edx
563c92:	8b 4a 14             	mov    0x14(%edx),%ecx
563c95:	49                   	dec    %ecx
563c96:	7e 1f                	jle    0x563cb7
563c98:	8b 45 0c             	mov    0xc(%ebp),%eax
563c9b:	8b 50 1c             	mov    0x1c(%eax),%edx
563c9e:	8b 45 0c             	mov    0xc(%ebp),%eax
563ca1:	8b 7a 04             	mov    0x4(%edx),%edi
563ca4:	8b 50 1c             	mov    0x1c(%eax),%edx
563ca7:	8b 0a                	mov    (%edx),%ecx
563ca9:	2b f9                	sub    %ecx,%edi
563cab:	85 ff                	test   %edi,%edi
563cad:	79 03                	jns    0x563cb2
563caf:	83 c7 03             	add    $0x3,%edi
563cb2:	c1 ff 02             	sar    $0x2,%edi
563cb5:	eb 02                	jmp    0x563cb9
563cb7:	33 ff                	xor    %edi,%edi
563cb9:	8b 45 08             	mov    0x8(%ebp),%eax
563cbc:	8b 50 14             	mov    0x14(%eax),%edx
563cbf:	4a                   	dec    %edx
563cc0:	7e 1f                	jle    0x563ce1
563cc2:	8b 4d 08             	mov    0x8(%ebp),%ecx
563cc5:	8b 41 1c             	mov    0x1c(%ecx),%eax
563cc8:	8b 4d 08             	mov    0x8(%ebp),%ecx
563ccb:	8b 50 04             	mov    0x4(%eax),%edx
563cce:	8b 41 1c             	mov    0x1c(%ecx),%eax
563cd1:	8b 08                	mov    (%eax),%ecx
563cd3:	2b d1                	sub    %ecx,%edx
563cd5:	85 d2                	test   %edx,%edx
563cd7:	79 03                	jns    0x563cdc
563cd9:	83 c2 03             	add    $0x3,%edx