561922:	0f 84 1e 04 00 00    	je     0x561d46
561928:	80 7b 36 00          	cmpb   $0x0,0x36(%ebx)
56192c:	8b 55 94             	mov    -0x6c(%ebp),%edx
56192f:	74 15                	je     0x561946
561931:	0f b7 43 32          	movzwl 0x32(%ebx),%eax
561935:	48                   	dec    %eax
561936:	0f b7 ca             	movzwl %dx,%ecx
561939:	3b c8                	cmp    %eax,%ecx
56193b:	75 09                	jne    0x561946
56193d:	8b 45 84             	mov    -0x7c(%ebp),%eax
561940:	83 48 14 02          	orl    $0x2,0x14(%eax)
561944:	eb 07                	jmp    0x56194d
561946:	8b 45 84             	mov    -0x7c(%ebp),%eax
561949:	83 48 14 01          	orl    $0x1,0x14(%eax)
56194d:	8b 85 5c ff ff ff    	mov    -0xa4(%ebp),%eax
561953:	89 46 24             	mov    %eax,0x24(%esi)
561956:	8b 85 50 ff ff ff    	mov    -0xb0(%ebp),%eax
56195c:	66 89 46 1a          	mov    %ax,0x1a(%esi)
561960:	8b 85 4c ff ff ff    	mov    -0xb4(%ebp),%eax
561966:	66 89 46 1c          	mov    %ax,0x1c(%esi)
56196a:	8b 85 48 ff ff ff    	mov    -0xb8(%ebp),%eax
561970:	66 89 46 28          	mov    %ax,0x28(%esi)
561974:	0f b7 c0             	movzwl %ax,%eax
561977:	40                   	inc    %eax
561978:	66 89 56 18          	mov    %dx,0x18(%esi)
56197c:	50                   	push   %eax
56197d:	56                   	push   %esi
56197e:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
561984:	e8 c7 17 00 00       	call   0x563150
561989:	83 c4 0c             	add    $0xc,%esp
56198c:	85 c0                	test   %eax,%eax
56198e:	0f 85 d2 03 00 00    	jne    0x561d66
561994:	0f b7 4e 28          	movzwl 0x28(%esi),%ecx
561998:	8b 46 30             	mov    0x30(%esi),%eax
56199b:	8b 55 8c             	mov    -0x74(%ebp),%edx
56199e:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
5619a1:	66 ff 46 28          	incw   0x28(%esi)
5619a5:	8b 52 24             	mov    0x24(%edx),%edx
5619a8:	8b 7f 20             	mov    0x20(%edi),%edi
5619ab:	8b 46 0c             	mov    0xc(%esi),%eax
5619ae:	0b 95 54 ff ff ff    	or     -0xac(%ebp),%edx
5619b4:	f7 d0                	not    %eax
5619b6:	8b 4e 08             	mov    0x8(%esi),%ecx
5619b9:	23 d0                	and    %eax,%edx
5619bb:	0b bd 58 ff ff ff    	or     -0xa8(%ebp),%edi
5619c1:	f7 d1                	not    %ecx
5619c3:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
5619c9:	23 f9                	and    %ecx,%edi
5619cb:	66 8b 5e 28          	mov    0x28(%esi),%bx
5619cf:	89 3e                	mov    %edi,(%esi)
5619d1:	89 56 04             	mov    %edx,0x4(%esi)
5619d4:	a8 01                	test   $0x1,%al
5619d6:	0f 84 cc 00 00 00    	je     0x561aa8
5619dc:	8b 45 8c             	mov    -0x74(%ebp),%eax
5619df:	8b 38                	mov    (%eax),%edi
5619e1:	f7 47 04 00 08 00 00 	testl  $0x800,0x4(%edi)
5619e8:	74 5f                	je     0x561a49
5619ea:	0f b7 d3             	movzwl %bx,%edx
5619ed:	33 c9                	xor    %ecx,%ecx
5619ef:	4a                   	dec    %edx
5619f0:	c7 45 90 2e 00 00 00 	movl   $0x2e,-0x70(%ebp)
5619f7:	85 d2                	test   %edx,%edx
5619f9:	7e 6e                	jle    0x561a69
5619fb:	8b 5e 30             	mov    0x30(%esi),%ebx
5619fe:	8b 75 90             	mov    -0x70(%ebp),%esi
561a01:	8b 04 8b             	mov    (%ebx,%ecx,4),%eax
561a04:	85 c0                	test   %eax,%eax
561a06:	74 0d                	je     0x561a15
561a08:	39 38                	cmp    %edi,(%eax)
561a0a:	c7 45 90 00 00 00 00 	movl   $0x0,-0x70(%ebp)
561a11:	0f 44 75 90          	cmove  -0x70(%ebp),%esi
561a15:	41                   	inc    %ecx
561a16:	3b ca                	cmp    %edx,%ecx
561a18:	7c e7                	jl     0x561a01
561a1a:	89 75 90             	mov    %esi,-0x70(%ebp)
561a1d:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
561a23:	8b 4d 90             	mov    -0x70(%ebp),%ecx
561a26:	8b 9d 78 ff ff ff    	mov    -0x88(%ebp),%ebx
561a2c:	f6 43 38 80          	testb  $0x80,0x38(%ebx)
561a30:	74 70                	je     0x561aa2
561a32:	8b 7d 94             	mov    -0x6c(%ebp),%edi
561a35:	8b 43 08             	mov    0x8(%ebx),%eax
561a38:	0f b7 d7             	movzwl %di,%edx
561a3b:	0f b7 3c 50          	movzwl (%eax,%edx,2),%edi
561a3f:	66 83 f9 0a          	cmp    $0xa,%cx
561a43:	7f 2b                	jg     0x561a70
561a45:	33 c0                	xor    %eax,%eax
561a47:	eb 3c                	jmp    0x561a85
561a49:	8b 47 14             	mov    0x14(%edi),%eax
561a4c:	85 c0                	test   %eax,%eax
561a4e:	74 d3                	je     0x561a23
561a50:	8b 00                	mov    (%eax),%eax
561a52:	85 c0                	test   %eax,%eax
561a54:	74 cd                	je     0x561a23
561a56:	99                   	cltd
561a57:	52                   	push   %edx
561a58:	50                   	push   %eax
561a59:	e8 32 f3 fc ff       	call   0x530d90
561a5e:	0f bf c8             	movswl %ax,%ecx
561a61:	83 c4 08             	add    $0x8,%esp
561a64:	89 4d 90             	mov    %ecx,-0x70(%ebp)
561a67:	eb bd                	jmp    0x561a26
561a69:	b9 2e 00 00 00       	mov    $0x2e,%ecx
561a6e:	eb b6                	jmp    0x561a26
561a70:	0f bf c1             	movswl %cx,%eax
561a73:	99                   	cltd
561a74:	52                   	push   %edx
561a75:	50                   	push   %eax
561a76:	e8 15 f3 fc ff       	call   0x530d90
561a7b:	83 c4 08             	add    $0x8,%esp
561a7e:	66 83 e8 21          	sub    $0x21,%ax
561a82:	0f b7 c0             	movzwl %ax,%eax
561a85:	0f bf c8             	movswl %ax,%ecx
561a88:	0f bf c7             	movswl %di,%eax
561a8b:	83 c0 0a             	add    $0xa,%eax
561a8e:	03 c8                	add    %eax,%ecx
561a90:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
561a96:	98                   	cwtl
561a97:	03 45 90             	add    -0x70(%ebp),%eax
561a9a:	3b c8                	cmp    %eax,%ecx
561a9c:	0f 8c a4 02 00 00    	jl     0x561d46
561aa2:	83 4e 24 04          	orl    $0x4,0x24(%esi)
561aa6:	eb 61                	jmp    0x561b09
561aa8:	8b 9d 78 ff ff ff    	mov    -0x88(%ebp),%ebx
561aae:	a8 82                	test   $0x82,%al
561ab0:	0f 84 88 00 00 00    	je     0x561b3e
561ab6:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
561ab9:	8b 43 04             	mov    0x4(%ebx),%eax
561abc:	0f b7 f9             	movzwl %cx,%edi
561abf:	0f bf 04 78          	movswl (%eax,%edi,2),%eax
561ac3:	83 4e 24 01          	orl    $0x1,0x24(%esi)
561ac7:	8b 4e 24             	mov    0x24(%esi),%ecx
561aca:	83 f8 ff             	cmp    $0xffffffff,%eax
561acd:	74 67                	je     0x561b36
561acf:	85 c0                	test   %eax,%eax
561ad1:	78 36                	js     0x561b09
561ad3:	66 83 7d 14 00       	cmpw   $0x0,0x14(%ebp)
561ad8:	75 2f                	jne    0x561b09
561ada:	0f b7 53 32          	movzwl 0x32(%ebx),%edx
561ade:	8d 42 ff             	lea    -0x1(%edx),%eax
561ae1:	3b f8                	cmp    %eax,%edi
561ae3:	75 24                	jne    0x561b09
561ae5:	f6 43 38 08          	testb  $0x8,0x38(%ebx)
561ae9:	75 4b                	jne    0x561b36
561aeb:	83 fa 01             	cmp    $0x1,%edx
561aee:	75 10                	jne    0x561b00
561af0:	80 7b 36 00          	cmpb   $0x0,0x36(%ebx)
561af4:	74 0a                	je     0x561b00
561af6:	66 83 bd 6c ff ff ff 	cmpw   $0x2,-0x94(%ebp)
561afd:	02
561afe:	74 36                	je     0x561b36
561b00:	81 c9 00 00 01 00    	or     $0x10000,%ecx
561b06:	89 4e 24             	mov    %ecx,0x24(%esi)
561b09:	8b 7d 8c             	mov    -0x74(%ebp),%edi
561b0c:	8b 4d 88             	mov    -0x78(%ebp),%ecx
561b0f:	8b 45 98             	mov    -0x68(%ebp),%eax
561b12:	f6 46 24 02          	testb  $0x2,0x24(%esi)
561b16:	0f 84 fa 00 00 00    	je     0x561c16
561b1c:	56                   	push   %esi
561b1d:	50                   	push   %eax
561b1e:	8b 45 84             	mov    -0x7c(%ebp),%eax
561b21:	51                   	push   %ecx
561b22:	50                   	push   %eax
561b23:	ff b5 74 ff ff ff    	push   -0x8c(%ebp)
561b29:	e8 72 2a 00 00       	call   0x5645a0
561b2e:	83 c4 14             	add    $0x14,%esp
561b31:	e9 37 01 00 00       	jmp    0x561c6d
561b36:	81 c9 00 10 00 00    	or     $0x1000,%ecx
561b3c:	eb c8                	jmp    0x561b06
561b3e:	a9 00 01 00 00       	test   $0x100,%eax
561b43:	74 06                	je     0x561b4b
561b45:	83 4e 24 08          	orl    $0x8,0x24(%esi)
561b49:	eb be                	jmp    0x561b09
561b4b:	8b 7d 8c             	mov    -0x74(%ebp),%edi
561b4e:	a8 24                	test   $0x24,%al
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