561b50:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
561b53:	57                   	push   %edi
561b54:	0f b7 c1             	movzwl %cx,%eax
561b57:	50                   	push   %eax
561b58:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
561b5e:	53                   	push   %ebx
561b5f:	74 74                	je     0x561bd5
561b61:	83 4e 24 22          	orl    $0x22,0x24(%esi)
561b65:	ff 70 2c             	push   0x2c(%eax)
561b68:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
561b6e:	e8 cd 2a 00 00       	call   0x564640
561b73:	66 89 46 1a          	mov    %ax,0x1a(%esi)
561b77:	ba 00 01 00 00       	mov    $0x100,%edx
561b7c:	33 c0                	xor    %eax,%eax
561b7e:	83 c4 14             	add    $0x14,%esp
561b81:	8b cf                	mov    %edi,%ecx
561b83:	89 45 98             	mov    %eax,-0x68(%ebp)
561b86:	89 4d 88             	mov    %ecx,-0x78(%ebp)
561b89:	66 85 57 0a          	test   %dx,0xa(%edi)
561b8d:	74 83                	je     0x561b12
561b8f:	8d 47 30             	lea    0x30(%edi),%eax
561b92:	89 45 98             	mov    %eax,-0x68(%ebp)
561b95:	0f b7 46 28          	movzwl 0x28(%esi),%eax
561b99:	40                   	inc    %eax
561b9a:	50                   	push   %eax
561b9b:	56                   	push   %esi
561b9c:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
561ba2:	e8 a9 15 00 00       	call   0x563150
561ba7:	83 c4 0c             	add    $0xc,%esp
561baa:	85 c0                	test   %eax,%eax
561bac:	0f 85 b4 01 00 00    	jne    0x561d66
561bb2:	0f b7 4e 28          	movzwl 0x28(%esi),%ecx
561bb6:	8b 46 30             	mov    0x30(%esi),%eax
561bb9:	8b 55 98             	mov    -0x68(%ebp),%edx
561bbc:	89 14 88             	mov    %edx,(%eax,%ecx,4)
561bbf:	b8 01 00 00 00       	mov    $0x1,%eax
561bc4:	66 ff 46 28          	incw   0x28(%esi)
561bc8:	83 4e 24 10          	orl    $0x10,0x24(%esi)
561bcc:	66 89 46 1c          	mov    %ax,0x1c(%esi)
561bd0:	e9 37 ff ff ff       	jmp    0x561b0c
561bd5:	83 4e 24 12          	orl    $0x12,0x24(%esi)
561bd9:	ff 70 2c             	push   0x2c(%eax)
561bdc:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
561be2:	e8 59 2a 00 00       	call   0x564640
561be7:	66 89 46 1c          	mov    %ax,0x1c(%esi)
561beb:	83 c4 14             	add    $0x14,%esp
561bee:	f6 46 24 20          	testb  $0x20,0x24(%esi)
561bf2:	8b c7                	mov    %edi,%eax
561bf4:	89 45 98             	mov    %eax,-0x68(%ebp)
561bf7:	74 13                	je     0x561c0c
561bf9:	0f b7 4e 28          	movzwl 0x28(%esi),%ecx
561bfd:	8b 46 30             	mov    0x30(%esi),%eax
561c00:	8b 4c 88 f8          	mov    -0x8(%eax,%ecx,4),%ecx
561c04:	89 4d 88             	mov    %ecx,-0x78(%ebp)
561c07:	e9 03 ff ff ff       	jmp    0x561b0f
561c0c:	33 c9                	xor    %ecx,%ecx
561c0e:	89 4d 88             	mov    %ecx,-0x78(%ebp)
561c11:	e9 fc fe ff ff       	jmp    0x561b12
561c16:	66 ff 46 18          	incw   0x18(%esi)
561c1a:	0f b7 4f 08          	movzwl 0x8(%edi),%ecx
561c1e:	0f b7 56 18          	movzwl 0x18(%esi),%edx
561c22:	66 85 c9             	test   %cx,%cx
561c25:	7f 1f                	jg     0x561c46
561c27:	8b 75 94             	mov    -0x6c(%ebp),%esi
561c2a:	8b 43 04             	mov    0x4(%ebx),%eax
561c2d:	0f b7 fe             	movzwl %si,%edi
561c30:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
561c36:	66 83 3c 78 00       	cmpw   $0x0,(%eax,%edi,2)
561c3b:	7c 09                	jl     0x561c46
561c3d:	2b 4d 90             	sub    -0x70(%ebp),%ecx
561c40:	66 01 4e 16          	add    %cx,0x16(%esi)
561c44:	eb 27                	jmp    0x561c6d
561c46:	8b 43 08             	mov    0x8(%ebx),%eax
561c49:	66 8b 0c 50          	mov    (%eax,%edx,2),%cx
561c4d:	66 2b 4c 50 fe       	sub    -0x2(%eax,%edx,2),%cx
561c52:	66 01 4e 16          	add    %cx,0x16(%esi)
561c56:	f7 85 6c ff ff ff 00 	testl  $0x100,-0x94(%ebp)
561c5d:	01 00 00
561c60:	66 8b 46 16          	mov    0x16(%esi),%ax
561c64:	74 07                	je     0x561c6d
561c66:	83 c0 0a             	add    $0xa,%eax
561c69:	66 89 46 16          	mov    %ax,0x16(%esi)
561c6d:	0f bf 43 30          	movswl 0x30(%ebx),%eax
561c71:	8b d0                	mov    %eax,%edx
561c73:	c1 e2 04             	shl    $0x4,%edx
561c76:	2b d0                	sub    %eax,%edx
561c78:	8b 85 7c ff ff ff    	mov    -0x84(%ebp),%eax
561c7e:	8b 40 10             	mov    0x10(%eax),%eax
561c81:	0f bf 48 30          	movswl 0x30(%eax),%ecx
561c85:	8b c2                	mov    %edx,%eax
561c87:	99                   	cltd
561c88:	f7 f9                	idiv   %ecx
561c8a:	66 40                	inc    %ax
561c8c:	66 03 46 16          	add    0x16(%esi),%ax
561c90:	0f b7 c0             	movzwl %ax,%eax
561c93:	50                   	push   %eax
561c94:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
561c9a:	e8 a1 f1 fc ff       	call   0x530e40
561c9f:	83 c4 08             	add    $0x8,%esp
561ca2:	0f b7 c8             	movzwl %ax,%ecx
561ca5:	f7 46 24 40 01 00 00 	testl  $0x140,0x24(%esi)
561cac:	66 89 4e 14          	mov    %cx,0x14(%esi)
561cb0:	75 19                	jne    0x561ccb
561cb2:	66 8b 46 16          	mov    0x16(%esi),%ax
561cb6:	66 83 c0 10          	add    $0x10,%ax
561cba:	0f b7 c0             	movzwl %ax,%eax
561cbd:	50                   	push   %eax
561cbe:	51                   	push   %ecx
561cbf:	e8 7c f1 fc ff       	call   0x530e40
561cc4:	83 c4 08             	add    $0x8,%esp
561cc7:	66 89 46 14          	mov    %ax,0x14(%esi)
561ccb:	8b 4d 90             	mov    -0x70(%ebp),%ecx
561cce:	8b 55 14             	mov    0x14(%ebp),%edx
561cd1:	0f b7 7e 16          	movzwl 0x16(%esi),%edi
561cd5:	ff b5 40 ff ff ff    	push   -0xc0(%ebp)
561cdb:	8d 04 11             	lea    (%ecx,%edx,1),%eax
561cde:	66 01 46 14          	add    %ax,0x14(%esi)
561ce2:	8d 04 11             	lea    (%ecx,%edx,1),%eax
561ce5:	66 01 46 16          	add    %ax,0x16(%esi)
561ce9:	8b 45 84             	mov    -0x7c(%ebp),%eax
561cec:	56                   	push   %esi
561ced:	ff 70 04             	push   0x4(%eax)
561cf0:	e8 fb 12 00 00       	call   0x562ff0
561cf5:	56                   	push   %esi
561cf6:	ff 75 84             	push   -0x7c(%ebp)
561cf9:	e8 72 11 00 00       	call   0x562e70
561cfe:	83 c4 14             	add    $0x14,%esp
561d01:	89 45 80             	mov    %eax,-0x80(%ebp)
561d04:	8b 46 24             	mov    0x24(%esi),%eax
561d07:	8b d7                	mov    %edi,%edx
561d09:	8b bd 60 ff ff ff    	mov    -0xa0(%ebp),%edi
561d0f:	a8 02                	test   $0x2,%al
561d11:	0f b7 cf             	movzwl %di,%ecx
561d14:	0f 45 d1             	cmovne %ecx,%edx
561d17:	66 89 56 16          	mov    %dx,0x16(%esi)
561d1b:	a8 10                	test   $0x10,%al
561d1d:	75 23                	jne    0x561d42
561d1f:	66 8b 46 18          	mov    0x18(%esi),%ax
561d23:	66 3b 43 34          	cmp    0x34(%ebx),%ax
561d27:	73 19                	jae    0x561d42
561d29:	8b 45 90             	mov    -0x70(%ebp),%eax
561d2c:	03 45 14             	add    0x14(%ebp),%eax
561d2f:	50                   	push   %eax
561d30:	53                   	push   %ebx
561d31:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
561d37:	ff 75 84             	push   -0x7c(%ebp)
561d3a:	e8 01 fa ff ff       	call   0x561740
561d3f:	83 c4 10             	add    $0x10,%esp
561d42:	66 89 7e 16          	mov    %di,0x16(%esi)
561d46:	8d 45 9c             	lea    -0x64(%ebp),%eax
561d49:	50                   	push   %eax
561d4a:	e8 91 2b 00 00       	call   0x5648e0
561d4f:	83 c4 04             	add    $0x4,%esp
561d52:	8b f8                	mov    %eax,%edi
561d54:	83 7d 80 00          	cmpl   $0x0,-0x80(%ebp)
561d58:	b9 00 01 00 00       	mov    $0x100,%ecx
561d5d:	89 7d 8c             	mov    %edi,-0x74(%ebp)
561d60:	0f 84 2a fb ff ff    	je     0x561890
561d66:	8b 85 58 ff ff ff    	mov    -0xa8(%ebp),%eax
561d6c:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
561d72:	8b bd 48 ff ff ff    	mov    -0xb8(%ebp),%edi
561d78:	89 06                	mov    %eax,(%esi)
561d7a:	8b 85 54 ff ff ff    	mov    -0xac(%ebp),%eax
561d80:	89 46 04             	mov    %eax,0x4(%esi)
561d83:	8b 45 94             	mov    -0x6c(%ebp),%eax
561d86:	66 89 46 18          	mov    %ax,0x18(%esi)
561d8a:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
561d90:	66 89 46 1a          	mov    %ax,0x1a(%esi)
561d94:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
561d9a:	66 89 46 1c          	mov    %ax,0x1c(%esi)
561d9e:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
561da4:	89 46 24             	mov    %eax,0x24(%esi)
561da7:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
561dad:	66 89 46 16          	mov    %ax,0x16(%esi)
561db1:	8b 45 94             	mov    -0x6c(%ebp),%eax
561db4:	66 89 4e 2a          	mov    %cx,0x2a(%esi)
561db8:	66 89 7e 28          	mov    %di,0x28(%esi)
561dbc:	66 3b c1             	cmp    %cx,%ax
561dbf:	0f 85 eb 00 00 00    	jne    0x561eb0
561dc5:	0f b7 4b 32          	movzwl 0x32(%ebx),%ecx
561dc9:	0f b7 d0             	movzwl %ax,%edx
561dcc:	8d 42 01             	lea    0x1(%edx),%eax
561dcf:	3b c1                	cmp    %ecx,%eax
561dd1:	0f 83 d9 00 00 00    	jae    0x561eb0
561dd7:	66 39 7d 94          	cmp    %di,-0x6c(%ebp)
561ddb:	0f 85 cf 00 00 00    	jne    0x561eb0
561de1:	f6 43 38 40          	testb  $0x40,0x38(%ebx)
561de5:	0f 85 c5 00 00 00    	jne    0x561eb0
561deb:	8b 8d 64 ff ff ff    	mov    -0x9c(%ebp),%ecx
561df1:	b8 00 40 00 00       	mov    $0x4000,%eax
561df6:	66 85 41 4c          	test   %ax,0x4c(%ecx)
561dfa:	0f 85 b0 00 00 00    	jne    0x561eb0
561e00:	8b 43 08             	mov    0x8(%ebx),%eax
561e03:	66 83 7c 50 02 2a    	cmpw   $0x2a,0x2(%eax,%edx,2)
561e09:	0f 8c a1 00 00 00    	jl     0x561eb0
561e0f:	0f b7 c7             	movzwl %di,%eax
561e12:	40                   	inc    %eax
561e13:	50                   	push   %eax
561e14:	56                   	push   %esi
561e15:	51                   	push   %ecx
561e16:	e8 35 13 00 00       	call   0x563150
561e1b:	8b f8                	mov    %eax,%edi
561e1d:	83 c4 0c             	add    $0xc,%esp
561e20:	85 ff                	test   %edi,%edi
561e22:	0f 85 8b 00 00 00    	jne    0x561eb3
561e28:	0f b7 4e 28          	movzwl 0x28(%esi),%ecx
561e2c:	8b 46 30             	mov    0x30(%esi),%eax
561e2f:	66 ff 46 18          	incw   0x18(%esi)
561e33:	66 ff 46 2a          	incw   0x2a(%esi)
561e37:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
561e3a:	66 ff 46 28          	incw   0x28(%esi)
561e3e:	81 4e 24 00 80 00 00 	orl    $0x8000,0x24(%esi)
561e45:	8b 43 08             	mov    0x8(%ebx),%eax
561e48:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
561e4b:	0f b7 d1             	movzwl %cx,%edx
561e4e:	66 8b 0c 50          	mov    (%eax,%edx,2),%cx
561e52:	66 2b 4c 50 02       	sub    0x2(%eax,%edx,2),%cx
561e57:	0f b7 c1             	movzwl %cx,%eax
561e5a:	8b 4d 14             	mov    0x14(%ebp),%ecx
561e5d:	66 29 46 16          	sub    %ax,0x16(%esi)
561e61:	83 c1 05             	add    $0x5,%ecx
561e64:	03 c1                	add    %ecx,%eax
561e66:	50                   	push   %eax
561e67:	53                   	push   %ebx
561e68:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
561e6e:	ff 75 84             	push   -0x7c(%ebp)
561e71:	e8 ca f8 ff ff       	call   0x561740
561e76:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
561e7c:	83 c4 10             	add    $0x10,%esp
561e7f:	66 89 46 16          	mov    %ax,0x16(%esi)
561e83:	8b 45 94             	mov    -0x6c(%ebp),%eax
561e86:	66 89 46 18          	mov    %ax,0x18(%esi)
561e8a:	8b 85 44 ff ff ff    	mov    -0xbc(%ebp),%eax
561e90:	66 89 46 2a          	mov    %ax,0x2a(%esi)
561e94:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
561e9a:	89 46 24             	mov    %eax,0x24(%esi)
561e9d:	8b c7                	mov    %edi,%eax
561e9f:	5f                   	pop    %edi
561ea0:	5e                   	pop    %esi
561ea1:	5b                   	pop    %ebx
561ea2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
561ea5:	33 cd                	xor    %ebp,%ecx
561ea7:	e8 2e f6 07 00       	call   0x5e14da
561eac:	8b e5                	mov    %ebp,%esp
561eae:	5d                   	pop    %ebp
561eaf:	c3                   	ret
561eb0:	8b 7d 80             	mov    -0x80(%ebp),%edi
561eb3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
561eb6:	8b c7                	mov    %edi,%eax
561eb8:	5f                   	pop    %edi
561eb9:	5e                   	pop    %esi
561eba:	33 cd                	xor    %ebp,%ecx
561ebc:	5b                   	pop    %ebx
561ebd:	e8 18 f6 07 00       	call   0x5e14da
561ec2:	8b e5                	mov    %ebp,%esp
561ec4:	5d                   	pop    %ebp
561ec5:	c3                   	ret
561ec6:	cc                   	int3
561ec7:	cc                   	int3
561ec8:	cc                   	int3
561ec9:	cc                   	int3
561eca:	cc                   	int3
561ecb:	cc                   	int3
561ecc:	cc                   	int3
561ecd:	cc                   	int3
561ece:	cc                   	int3
561ecf:	cc                   	int3
561ed0:	55                   	push   %ebp
561ed1:	8b ec                	mov    %esp,%ebp
561ed3:	81 ec a8 02 00 00    	sub    $0x2a8,%esp
561ed9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
561ede:	33 c5                	xor    %ebp,%eax
561ee0:	89 45 fc             	mov    %eax,-0x4(%ebp)
561ee3:	53                   	push   %ebx
561ee4:	8b 5d 08             	mov    0x8(%ebp),%ebx
561ee7:	56                   	push   %esi
561ee8:	57                   	push   %edi
561ee9:	33 f6                	xor    %esi,%esi
561eeb:	89 9d 6c fd ff ff    	mov    %ebx,-0x294(%ebp)
561ef1:	8b 43 04             	mov    0x4(%ebx),%eax
561ef4:	8b 7b 0c             	mov    0xc(%ebx),%edi
561ef7:	89 85 64 fd ff ff    	mov    %eax,-0x29c(%ebp)
561efd:	6a 38                	push   $0x38
561eff:	8b 50 14             	mov    0x14(%eax),%edx
561f02:	8b 40 0c             	mov    0xc(%eax),%eax
561f05:	56                   	push   %esi
561f06:	89 b5 98 fd ff ff    	mov    %esi,-0x268(%ebp)
561f0c:	89 95 94 fd ff ff    	mov    %edx,-0x26c(%ebp)
561f12:	8d 04 40             	lea    (%eax,%eax,2),%eax
561f15:	89 bd 88 fd ff ff    	mov    %edi,-0x278(%ebp)
561f1b:	c1 e0 04             	shl    $0x4,%eax
561f1e:	03 c2                	add    %edx,%eax
561f20:	89 85 90 fd ff ff    	mov    %eax,-0x270(%ebp)
561f26:	8d 45 c4             	lea    -0x3c(%ebp),%eax
561f29:	50                   	push   %eax
561f2a:	e8 d1 1a 08 00       	call   0x5e3a00
561f2f:	0f b6 47 10          	movzbl 0x10(%edi),%eax
561f33:	83 c4 0c             	add    $0xc,%esp
561f36:	8d 0c c0             	lea    (%eax,%eax,8),%ecx
561f39:	8b 03                	mov    (%ebx),%eax
561f3b:	8b 40 04             	mov    0x4(%eax),%eax
561f3e:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
561f41:	8b 8d 94 fd ff ff    	mov    -0x26c(%ebp),%ecx
561f47:	83 c0 08             	add    $0x8,%eax
561f4a:	89 85 60 fd ff ff    	mov    %eax,-0x2a0(%ebp)
561f50:	8b 40 2c             	mov    0x2c(%eax),%eax
561f53:	89 85 68 fd ff ff    	mov    %eax,-0x298(%ebp)
561f59:	3b 8d 90 fd ff ff    	cmp    -0x270(%ebp),%ecx
561f5f:	0f 83 b1 04 00 00    	jae    0x562416
561f65:	66 8b 5d c4          	mov    -0x3c(%ebp),%bx
561f69:	33 c0                	xor    %eax,%eax
561f6b:	8b 75 10             	mov    0x10(%ebp),%esi
561f6e:	8b 95 90 fd ff ff    	mov    -0x270(%ebp),%edx
561f74:	89 9d 9c fd ff ff    	mov    %ebx,-0x264(%ebp)
561f7a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
561f80:	85 c0                	test   %eax,%eax
561f82:	0f 85 90 04 00 00    	jne    0x562418
561f88:	bb 00 02 00 00       	mov    $0x200,%ebx
561f8d:	66 85 59 0c          	test   %bx,0xc(%ecx)
561f91:	8b 9d 9c fd ff ff    	mov    -0x264(%ebp),%ebx
561f97:	0f 84 57 04 00 00    	je     0x5623f4
561f9d:	8b 51 1c             	mov    0x1c(%ecx),%edx
561fa0:	8b 8a 98 01 00 00    	mov    0x198(%edx),%ecx
561fa6:	8b 82 9c 01 00 00    	mov    0x19c(%edx),%eax
561fac:	23 4f 08             	and    0x8(%edi),%ecx
561faf:	23 47 0c             	and    0xc(%edi),%eax
561fb2:	0b c8                	or     %eax,%ecx
561fb4:	0f 84 21 04 00 00    	je     0x5623db
561fba:	8b 42 0c             	mov    0xc(%edx),%eax
561fbd:	c7 85 7c fd ff ff 01 	movl   $0x1,-0x284(%ebp)
561fc4:	00 00 00
561fc7:	8d 04 40             	lea    (%eax,%eax,2),%eax
561fca:	c1 e0 04             	shl    $0x4,%eax
561fcd:	03 42 14             	add    0x14(%edx),%eax
561fd0:	89 85 8c fd ff ff    	mov    %eax,-0x274(%ebp)
561fd6:	8b 85 6c fd ff ff    	mov    -0x294(%ebp),%eax
561fdc:	0f 10 00             	movups (%eax),%xmm0
561fdf:	0f 11 85 38 ff ff ff 	movups %xmm0,-0xc8(%ebp)
561fe6:	c7 85 40 ff ff ff 00 	movl   $0x0,-0xc0(%ebp)
561fed:	00 00 00
561ff0:	f3 0f 7e 40 10       	movq   0x10(%eax),%xmm0
561ff5:	8b 40 18             	mov    0x18(%eax),%eax
561ff8:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
561ffe:	8d 45 8c             	lea    -0x74(%ebp),%eax
562001:	66 0f d6 85 48 ff ff 	movq   %xmm0,-0xb8(%ebp)
562008:	ff
562009:	89 85 48 ff ff ff    	mov    %eax,-0xb8(%ebp)
56200f:	8b 7a 14             	mov    0x14(%edx),%edi
562012:	8b 85 8c fd ff ff    	mov    -0x274(%ebp),%eax
562018:	89 bd 70 fd ff ff    	mov    %edi,-0x290(%ebp)