56689b:	8b 45 c8             	mov    -0x38(%ebp),%eax
56689e:	8b 00                	mov    (%eax),%eax
5668a0:	99                   	cltd
5668a1:	33 c2                	xor    %edx,%eax
5668a3:	2b c2                	sub    %edx,%eax
5668a5:	d3 f8                	sar    %cl,%eax
5668a7:	eb 10                	jmp    0x5668b9
5668a9:	8b 45 c8             	mov    -0x38(%ebp),%eax
5668ac:	8b cf                	mov    %edi,%ecx
5668ae:	f7 d9                	neg    %ecx
5668b0:	8b 00                	mov    (%eax),%eax
5668b2:	99                   	cltd
5668b3:	33 c2                	xor    %edx,%eax
5668b5:	2b c2                	sub    %edx,%eax
5668b7:	d3 e0                	shl    %cl,%eax
5668b9:	83 e0 7f             	and    $0x7f,%eax
5668bc:	8b 0c 85 20 0c 6b 00 	mov    0x6b0c20(,%eax,4),%ecx
5668c3:	eb 2e                	jmp    0x5668f3
5668c5:	85 ff                	test   %edi,%edi
5668c7:	7c 10                	jl     0x5668d9
5668c9:	8b cf                	mov    %edi,%ecx
5668cb:	8b 45 c8             	mov    -0x38(%ebp),%eax
5668ce:	8b 00                	mov    (%eax),%eax
5668d0:	99                   	cltd
5668d1:	33 c2                	xor    %edx,%eax
5668d3:	2b c2                	sub    %edx,%eax
5668d5:	d3 f8                	sar    %cl,%eax
5668d7:	eb 10                	jmp    0x5668e9
5668d9:	8b 45 c8             	mov    -0x38(%ebp),%eax
5668dc:	8b cf                	mov    %edi,%ecx
5668de:	f7 d9                	neg    %ecx
5668e0:	8b 00                	mov    (%eax),%eax
5668e2:	99                   	cltd
5668e3:	33 c2                	xor    %edx,%eax
5668e5:	2b c2                	sub    %edx,%eax
5668e7:	d3 e0                	shl    %cl,%eax
5668e9:	83 e0 7f             	and    $0x7f,%eax
5668ec:	8b 0c 85 28 10 6b 00 	mov    0x6b1028(,%eax,4),%ecx
5668f3:	8b 45 08             	mov    0x8(%ebp),%eax
5668f6:	01 08                	add    %ecx,(%eax)
5668f8:	8b 55 c8             	mov    -0x38(%ebp),%edx
5668fb:	8b 0a                	mov    (%edx),%ecx
5668fd:	85 c9                	test   %ecx,%ecx
5668ff:	7d 07                	jge    0x566908
566901:	b8 01 00 00 00       	mov    $0x1,%eax
566906:	eb 02                	jmp    0x56690a
566908:	33 c0                	xor    %eax,%eax
56690a:	89 45 9c             	mov    %eax,-0x64(%ebp)
56690d:	8b 55 a0             	mov    -0x60(%ebp),%edx
566910:	8b 43 10             	mov    0x10(%ebx),%eax
566913:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
566919:	c1 fa 04             	sar    $0x4,%edx
56691c:	8b 0c 95 18 c8 6a 00 	mov    0x6ac818(,%edx,4),%ecx
566923:	c1 e1 02             	shl    $0x2,%ecx
566926:	03 c8                	add    %eax,%ecx
566928:	89 4b 14             	mov    %ecx,0x14(%ebx)
56692b:	8b 53 14             	mov    0x14(%ebx),%edx
56692e:	8b 0a                	mov    (%edx),%ecx
566930:	8b 55 a0             	mov    -0x60(%ebp),%edx
566933:	81 e2 f0 0f 00 00    	and    $0xff0,%edx
566939:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
56693d:	c1 fa 04             	sar    $0x4,%edx
566940:	8b 0c 95 14 c4 6a 00 	mov    0x6ac414(,%edx,4),%ecx
566947:	8b 55 9c             	mov    -0x64(%ebp),%edx
56694a:	33 ca                	xor    %edx,%ecx
56694c:	3b c1                	cmp    %ecx,%eax
56694e:	75 28                	jne    0x566978
566950:	8b 43 14             	mov    0x14(%ebx),%eax
566953:	8b 08                	mov    (%eax),%ecx
566955:	0f b7 01             	movzwl (%ecx),%eax
566958:	29 43 04             	sub    %eax,0x4(%ebx)
56695b:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
56695f:	75 09                	jne    0x56696a
566961:	8b c3                	mov    %ebx,%eax
566963:	e8 e4 ba 00 00       	call   0x57244c
566968:	eb 15                	jmp    0x56697f
56696a:	8b 53 14             	mov    0x14(%ebx),%edx
56696d:	8b 0a                	mov    (%edx),%ecx
56696f:	0f b7 01             	movzwl (%ecx),%eax
566972:	01 03                	add    %eax,(%ebx)
566974:	8b 03                	mov    (%ebx),%eax
566976:	eb 07                	jmp    0x56697f
566978:	8b c3                	mov    %ebx,%eax
56697a:	e8 ad bd 00 00       	call   0x57272c
56697f:	8b 55 e0             	mov    -0x20(%ebp),%edx
566982:	c1 e2 02             	shl    $0x2,%edx
566985:	52                   	push   %edx
566986:	8b d6                	mov    %esi,%edx
566988:	58                   	pop    %eax
566989:	2b d0                	sub    %eax,%edx
56698b:	8b 45 e0             	mov    -0x20(%ebp),%eax
56698e:	c1 e0 02             	shl    $0x2,%eax
566991:	03 c6                	add    %esi,%eax
566993:	eb 33                	jmp    0x5669c8
566995:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
566999:	83 48 04 08          	orl    $0x8,0x4(%eax)
56699d:	8b 55 9c             	mov    -0x64(%ebp),%edx
5669a0:	85 d2                	test   %edx,%edx
5669a2:	74 14                	je     0x5669b8
5669a4:	81 08 10 01 00 00    	orl    $0x110,(%eax)
5669aa:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5669b1:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5669b8:	83 08 10             	orl    $0x10,(%eax)
5669bb:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
5669bf:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
5669c6:	eb 44                	jmp    0x566a0c
5669c8:	83 4a fc 02          	orl    $0x2,-0x4(%edx)
5669cc:	83 4a 04 04          	orl    $0x4,0x4(%edx)
5669d0:	83 48 fc 01          	orl    $0x1,-0x4(%eax)
5669d4:	83 48 04 08          	orl    $0x8,0x4(%eax)
5669d8:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
5669db:	85 c9                	test   %ecx,%ecx
5669dd:	74 1c                	je     0x5669fb
5669df:	81 0a 40 04 00 00    	orl    $0x440,(%edx)
5669e5:	81 08 10 01 00 00    	orl    $0x110,(%eax)
5669eb:	81 4e fc 20 02 00 00 	orl    $0x220,-0x4(%esi)
5669f2:	81 4e 04 80 08 00 00 	orl    $0x880,0x4(%esi)
5669f9:	eb 11                	jmp    0x566a0c
5669fb:	83 0a 40             	orl    $0x40,(%edx)
5669fe:	83 08 10             	orl    $0x10,(%eax)
566a01:	83 4e fc 20          	orl    $0x20,-0x4(%esi)
566a05:	81 4e 04 80 00 00 00 	orl    $0x80,0x4(%esi)
566a0c:	81 0e 00 10 00 00    	orl    $0x1000,(%esi)
566a12:	81 0e 00 40 00 00    	orl    $0x4000,(%esi)
566a18:	ff 4d f4             	decl   -0xc(%ebp)
566a1b:	83 45 c4 04          	addl   $0x4,-0x3c(%ebp)
566a1f:	83 45 c0 04          	addl   $0x4,-0x40(%ebp)
566a23:	8b 45 f4             	mov    -0xc(%ebp),%eax
566a26:	85 c0                	test   %eax,%eax
566a28:	0f 8f c5 f6 ff ff    	jg     0x5660f3
566a2e:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
566a32:	8b 55 d8             	mov    -0x28(%ebp),%edx
566a35:	c1 e2 02             	shl    $0x2,%edx
566a38:	01 55 d0             	add    %edx,-0x30(%ebp)
566a3b:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
566a3e:	c1 e1 02             	shl    $0x2,%ecx
566a41:	01 4d cc             	add    %ecx,-0x34(%ebp)
566a44:	8b 45 f8             	mov    -0x8(%ebp),%eax
566a47:	85 c0                	test   %eax,%eax
566a49:	0f 8f 72 f6 ff ff    	jg     0x5660c1
566a4f:	8b 55 0c             	mov    0xc(%ebp),%edx
566a52:	85 d2                	test   %edx,%edx
566a54:	74 0b                	je     0x566a61
566a56:	8b 55 0c             	mov    0xc(%ebp),%edx
566a59:	8b c3                	mov    %ebx,%eax
566a5b:	4a                   	dec    %edx
566a5c:	e8 af bf 00 00       	call   0x572a10
566a61:	8b 4b 20             	mov    0x20(%ebx),%ecx
566a64:	85 c9                	test   %ecx,%ecx
566a66:	74 05                	je     0x566a6d
566a68:	83 c8 ff             	or     $0xffffffff,%eax
566a6b:	eb 02                	jmp    0x566a6f
566a6d:	33 c0                	xor    %eax,%eax
566a6f:	5f                   	pop    %edi
566a70:	5e                   	pop    %esi
566a71:	5b                   	pop    %ebx
566a72:	8b e5                	mov    %ebp,%esp
566a74:	5d                   	pop    %ebp
566a75:	c2 14 00             	ret    $0x14
566a78:	55                   	push   %ebp
566a79:	8b ec                	mov    %esp,%ebp
566a7b:	83 c4 ac             	add    $0xffffffac,%esp
566a7e:	53                   	push   %ebx
566a7f:	56                   	push   %esi
566a80:	57                   	push   %edi
566a81:	89 4d f8             	mov    %ecx,-0x8(%ebp)
566a84:	89 55 fc             	mov    %edx,-0x4(%ebp)
566a87:	8b d8                	mov    %eax,%ebx
566a89:	8b 45 08             	mov    0x8(%ebp),%eax
566a8c:	33 d2                	xor    %edx,%edx
566a8e:	89 10                	mov    %edx,(%eax)
566a90:	8b 4d 10             	mov    0x10(%ebp),%ecx
566a93:	8b 41 18             	mov    0x18(%ecx),%eax
566a96:	89 45 e0             	mov    %eax,-0x20(%ebp)
566a99:	8b 55 10             	mov    0x10(%ebp),%edx
566a9c:	8b 4a 14             	mov    0x14(%edx),%ecx
566a9f:	89 4d dc             	mov    %ecx,-0x24(%ebp)
566aa2:	8b 45 14             	mov    0x14(%ebp),%eax
566aa5:	8b 50 14             	mov    0x14(%eax),%edx
566aa8:	4a                   	dec    %edx
566aa9:	7e 1f                	jle    0x566aca
566aab:	8b 4d 14             	mov    0x14(%ebp),%ecx
566aae:	8b 41 1c             	mov    0x1c(%ecx),%eax
566ab1:	8b 4d 14             	mov    0x14(%ebp),%ecx
566ab4:	8b 50 04             	mov    0x4(%eax),%edx
566ab7:	8b 41 1c             	mov    0x1c(%ecx),%eax
566aba:	8b 08                	mov    (%eax),%ecx
566abc:	2b d1                	sub    %ecx,%edx
566abe:	85 d2                	test   %edx,%edx
566ac0:	79 03                	jns    0x566ac5
566ac2:	83 c2 03             	add    $0x3,%edx
566ac5:	c1 fa 02             	sar    $0x2,%edx
566ac8:	eb 02                	jmp    0x566acc
566aca:	33 d2                	xor    %edx,%edx
566acc:	89 55 d8             	mov    %edx,-0x28(%ebp)
566acf:	8b 45 10             	mov    0x10(%ebp),%eax
566ad2:	8b 50 14             	mov    0x14(%eax),%edx
566ad5:	4a                   	dec    %edx
566ad6:	7e 1f                	jle    0x566af7
566ad8:	8b 4d 10             	mov    0x10(%ebp),%ecx
566adb:	8b 41 1c             	mov    0x1c(%ecx),%eax
566ade:	8b 4d 10             	mov    0x10(%ebp),%ecx
566ae1:	8b 50 04             	mov    0x4(%eax),%edx
566ae4:	8b 41 1c             	mov    0x1c(%ecx),%eax
566ae7:	8b 08                	mov    (%eax),%ecx
566ae9:	2b d1                	sub    %ecx,%edx
566aeb:	85 d2                	test   %edx,%edx
566aed:	79 03                	jns    0x566af2
566aef:	83 c2 03             	add    $0x3,%edx
566af2:	c1 fa 02             	sar    $0x2,%edx
566af5:	eb 02                	jmp    0x566af9
566af7:	33 d2                	xor    %edx,%edx
566af9:	89 55 d4             	mov    %edx,-0x2c(%ebp)
566afc:	8b 45 d8             	mov    -0x28(%ebp),%eax
566aff:	c1 e0 02             	shl    $0x2,%eax
566b02:	89 45 d0             	mov    %eax,-0x30(%ebp)
566b05:	8b 55 d4             	mov    -0x2c(%ebp),%edx
566b08:	c1 e2 02             	shl    $0x2,%edx
566b0b:	89 55 cc             	mov    %edx,-0x34(%ebp)
566b0e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
566b11:	83 c1 06             	add    $0x6,%ecx
566b14:	b8 01 00 00 00       	mov    $0x1,%eax
566b19:	d3 e0                	shl    %cl,%eax
566b1b:	89 45 e8             	mov    %eax,-0x18(%ebp)
566b1e:	8b 55 14             	mov    0x14(%ebp),%edx
566b21:	8b 4a 1c             	mov    0x1c(%edx),%ecx
566b24:	8b 41 04             	mov    0x4(%ecx),%eax
566b27:	83 c0 04             	add    $0x4,%eax
566b2a:	89 45 c8             	mov    %eax,-0x38(%ebp)
566b2d:	8b 55 10             	mov    0x10(%ebp),%edx
566b30:	8b 4a 1c             	mov    0x1c(%edx),%ecx
566b33:	8b 01                	mov    (%ecx),%eax
566b35:	89 45 c4             	mov    %eax,-0x3c(%ebp)
566b38:	8b 55 dc             	mov    -0x24(%ebp),%edx
566b3b:	89 55 f4             	mov    %edx,-0xc(%ebp)
566b3e:	8b 4d f4             	mov    -0xc(%ebp),%ecx
566b41:	85 c9                	test   %ecx,%ecx
566b43:	0f 8e 6e 0e 00 00    	jle    0x5679b7
566b49:	8b 45 c8             	mov    -0x38(%ebp),%eax
566b4c:	89 45 c0             	mov    %eax,-0x40(%ebp)
566b4f:	8b 55 c4             	mov    -0x3c(%ebp),%edx
566b52:	89 55 bc             	mov    %edx,-0x44(%ebp)
566b55:	8b 4d f4             	mov    -0xc(%ebp),%ecx
566b58:	83 f9 04             	cmp    $0x4,%ecx
566b5b:	7d 05                	jge    0x566b62
566b5d:	8b 45 f4             	mov    -0xc(%ebp),%eax
566b60:	eb 05                	jmp    0x566b67
566b62:	b8 04 00 00 00       	mov    $0x4,%eax
566b67:	89 45 e4             	mov    %eax,-0x1c(%ebp)
566b6a:	8b 55 e0             	mov    -0x20(%ebp),%edx
566b6d:	89 55 f0             	mov    %edx,-0x10(%ebp)
566b70:	8b 4d f0             	mov    -0x10(%ebp),%ecx
566b73:	85 c9                	test   %ecx,%ecx
566b75:	0f 8e 1b 0e 00 00    	jle    0x567996
566b7b:	8b 75 c0             	mov    -0x40(%ebp),%esi
566b7e:	8b 7d bc             	mov    -0x44(%ebp),%edi
566b81:	8b 45 e4             	mov    -0x1c(%ebp),%eax
566b84:	89 45 ec             	mov    %eax,-0x14(%ebp)
566b87:	8b 06                	mov    (%esi),%eax
566b89:	a8 ff                	test   $0xff,%al
566b8b:	0f 84 61 03 00 00    	je     0x566ef2
566b91:	f6 c4 50             	test   $0x50,%ah
566b94:	0f 85 58 03 00 00    	jne    0x566ef2
566b9a:	8b 07                	mov    (%edi),%eax
566b9c:	99                   	cltd
566b9d:	33 c2                	xor    %edx,%eax
566b9f:	2b c2                	sub    %edx,%eax
566ba1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
566ba4:	23 c1                	and    %ecx,%eax
566ba6:	74 07                	je     0x566baf
566ba8:	b8 01 00 00 00       	mov    $0x1,%eax
566bad:	eb 02                	jmp    0x566bb1
566baf:	33 c0                	xor    %eax,%eax
566bb1:	89 45 b8             	mov    %eax,-0x48(%ebp)
566bb4:	f6 43 10 02          	testb  $0x2,0x10(%ebx)
566bb8:	75 17                	jne    0x566bd1
566bba:	68 6d 02 00 00       	push   $0x26d
566bbf:	68 9f f6 69 00       	push   $0x69f69f
566bc4:	68 76 f6 69 00       	push   $0x69f676
566bc9:	e8 72 3f ff ff       	call   0x55ab40
566bce:	83 c4 0c             	add    $0xc,%esp
566bd1:	ff 4b 08             	decl   0x8(%ebx)
566bd4:	0f 89 c3 00 00 00    	jns    0x566c9d
566bda:	66 8b 53 04          	mov    0x4(%ebx),%dx
566bde:	c1 e2 08             	shl    $0x8,%edx
566be1:	66 81 e2 ff ff       	and    $0xffff,%dx
566be6:	66 89 53 04          	mov    %dx,0x4(%ebx)
566bea:	66 81 7b 04 00 ff    	cmpw   $0xff00,0x4(%ebx)
566bf0:	75 07                	jne    0x566bf9
566bf2:	b9 06 00 00 00       	mov    $0x6,%ecx
566bf7:	eb 05                	jmp    0x566bfe
566bf9:	b9 07 00 00 00       	mov    $0x7,%ecx
566bfe:	89 4b 08             	mov    %ecx,0x8(%ebx)
566c01:	66 8b 45 b8          	mov    -0x48(%ebp),%ax
566c05:	8b 4b 08             	mov    0x8(%ebx),%ecx
566c08:	66 83 e0 01          	and    $0x1,%ax
566c0c:	66 d3 e0             	shl    %cl,%ax
566c0f:	66 09 43 04          	or     %ax,0x4(%ebx)
566c13:	8b 53 0c             	mov    0xc(%ebx),%edx
566c16:	f6 42 08 07          	testb  $0x7,0x8(%edx)
566c1a:	75 6e                	jne    0x566c8a
566c1c:	8b 43 0c             	mov    0xc(%ebx),%eax
566c1f:	8b 50 40             	mov    0x40(%eax),%edx
566c22:	85 d2                	test   %edx,%edx
566c24:	7c 1c                	jl     0x566c42
566c26:	8b 4b 0c             	mov    0xc(%ebx),%ecx
566c29:	8b 53 0c             	mov    0xc(%ebx),%edx
566c2c:	8b 41 40             	mov    0x40(%ecx),%eax
566c2f:	8b 4a 3c             	mov    0x3c(%edx),%ecx
566c32:	3b c1                	cmp    %ecx,%eax
566c34:	7f 0c                	jg     0x566c42
566c36:	8b 43 0c             	mov    0xc(%ebx),%eax
566c39:	83 48 08 04          	orl    $0x4,0x8(%eax)
566c3d:	83 ca ff             	or     $0xffffffff,%edx
566c40:	eb 4b                	jmp    0x566c8d
566c42:	8b 4b 0c             	mov    0xc(%ebx),%ecx
566c45:	83 49 04 20          	orl    $0x20,0x4(%ecx)
566c49:	8b 43 0c             	mov    0xc(%ebx),%eax
566c4c:	ff 48 1c             	decl   0x1c(%eax)
566c4f:	79 19                	jns    0x566c6a
566c51:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
566c55:	c1 fa 08             	sar    $0x8,%edx
566c58:	8b 43 0c             	mov    0xc(%ebx),%eax
566c5b:	81 e2 ff 00 00 00    	and    $0xff,%edx
566c61:	e8 b2 21 01 00       	call   0x578e18
566c66:	8b d0                	mov    %eax,%edx
566c68:	eb 23                	jmp    0x566c8d
566c6a:	8b 43 0c             	mov    0xc(%ebx),%eax
566c6d:	ff 40 3c             	incl   0x3c(%eax)
566c70:	8b 4b 0c             	mov    0xc(%ebx),%ecx
566c73:	8b 41 18             	mov    0x18(%ecx),%eax
566c76:	ff 41 18             	incl   0x18(%ecx)
566c79:	0f b7 53 04          	movzwl 0x4(%ebx),%edx
566c7d:	c1 fa 08             	sar    $0x8,%edx
566c80:	88 10                	mov    %dl,(%eax)
566c82:	81 e2 ff 00 00 00    	and    $0xff,%edx
566c88:	eb 03                	jmp    0x566c8d
566c8a:	83 ca ff             	or     $0xffffffff,%edx
566c8d:	42                   	inc    %edx
566c8e:	75 05                	jne    0x566c95
566c90:	83 c8 ff             	or     $0xffffffff,%eax
566c93:	eb 20                	jmp    0x566cb5
566c95:	8b 45 b8             	mov    -0x48(%ebp),%eax
566c98:	83 e0 01             	and    $0x1,%eax
566c9b:	eb 18                	jmp    0x566cb5
566c9d:	66 8b 55 b8          	mov    -0x48(%ebp),%dx
566ca1:	8b 4b 08             	mov    0x8(%ebx),%ecx
566ca4:	66 83 e2 01          	and    $0x1,%dx
566ca8:	66 d3 e2             	shl    %cl,%dx
566cab:	66 09 53 04          	or     %dx,0x4(%ebx)