5647ab:	0f 8f d4 fc ff ff    	jg     0x564485
5647b1:	83 6d f4 04          	subl   $0x4,-0xc(%ebp)
5647b5:	8b 4d d0             	mov    -0x30(%ebp),%ecx
5647b8:	c1 e1 02             	shl    $0x2,%ecx
5647bb:	01 4d cc             	add    %ecx,-0x34(%ebp)
5647be:	8b 45 c0             	mov    -0x40(%ebp),%eax
5647c1:	c1 e0 02             	shl    $0x2,%eax
5647c4:	01 45 bc             	add    %eax,-0x44(%ebp)
5647c7:	8b 55 f4             	mov    -0xc(%ebp),%edx
5647ca:	85 d2                	test   %edx,%edx
5647cc:	0f 8f 81 fc ff ff    	jg     0x564453
5647d2:	33 c0                	xor    %eax,%eax
5647d4:	5f                   	pop    %edi
5647d5:	5e                   	pop    %esi
5647d6:	5b                   	pop    %ebx
5647d7:	8b e5                	mov    %ebp,%esp
5647d9:	5d                   	pop    %ebp
5647da:	c2 0c 00             	ret    $0xc
5647dd:	90                   	nop
5647de:	90                   	nop
5647df:	90                   	nop
5647e0:	55                   	push   %ebp
5647e1:	8b ec                	mov    %esp,%ebp
5647e3:	83 c4 b8             	add    $0xffffffb8,%esp
5647e6:	53                   	push   %ebx
5647e7:	56                   	push   %esi
5647e8:	57                   	push   %edi
5647e9:	89 45 fc             	mov    %eax,-0x4(%ebp)
5647ec:	8b 45 08             	mov    0x8(%ebp),%eax
5647ef:	8b f1                	mov    %ecx,%esi
5647f1:	8b da                	mov    %edx,%ebx
5647f3:	8b 55 0c             	mov    0xc(%ebp),%edx
5647f6:	8b 48 18             	mov    0x18(%eax),%ecx
5647f9:	89 4d e8             	mov    %ecx,-0x18(%ebp)
5647fc:	8b 48 14             	mov    0x14(%eax),%ecx
5647ff:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
564802:	8b 4a 14             	mov    0x14(%edx),%ecx
564805:	49                   	dec    %ecx
564806:	7e 19                	jle    0x564821
564808:	8b 4a 1c             	mov    0x1c(%edx),%ecx
56480b:	8b 7a 1c             	mov    0x1c(%edx),%edi
56480e:	8b 3f                	mov    (%edi),%edi
564810:	8b 49 04             	mov    0x4(%ecx),%ecx
564813:	2b cf                	sub    %edi,%ecx
564815:	85 c9                	test   %ecx,%ecx
564817:	79 03                	jns    0x56481c
564819:	83 c1 03             	add    $0x3,%ecx
56481c:	c1 f9 02             	sar    $0x2,%ecx
56481f:	eb 02                	jmp    0x564823
564821:	33 c9                	xor    %ecx,%ecx
564823:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
564826:	8b 48 14             	mov    0x14(%eax),%ecx
564829:	49                   	dec    %ecx
56482a:	7e 19                	jle    0x564845
56482c:	8b 48 1c             	mov    0x1c(%eax),%ecx
56482f:	8b 78 1c             	mov    0x1c(%eax),%edi
564832:	8b 3f                	mov    (%edi),%edi
564834:	8b 49 04             	mov    0x4(%ecx),%ecx
564837:	2b cf                	sub    %edi,%ecx
564839:	85 c9                	test   %ecx,%ecx
56483b:	79 03                	jns    0x564840
56483d:	83 c1 03             	add    $0x3,%ecx
564840:	c1 f9 02             	sar    $0x2,%ecx
564843:	eb 02                	jmp    0x564847
564845:	33 c9                	xor    %ecx,%ecx
564847:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
56484a:	bf 01 00 00 00       	mov    $0x1,%edi
56484f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
564852:	c1 e1 02             	shl    $0x2,%ecx
564855:	89 4d d0             	mov    %ecx,-0x30(%ebp)
564858:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
56485b:	c1 e1 02             	shl    $0x2,%ecx
56485e:	89 4d c0             	mov    %ecx,-0x40(%ebp)
564861:	8b ce                	mov    %esi,%ecx
564863:	d3 e7                	shl    %cl,%edi
564865:	89 7d e0             	mov    %edi,-0x20(%ebp)
564868:	8b 4d e0             	mov    -0x20(%ebp),%ecx
56486b:	d1 f9                	sar    $1,%ecx
56486d:	85 f6                	test   %esi,%esi
56486f:	89 4d dc             	mov    %ecx,-0x24(%ebp)
564872:	7e 07                	jle    0x56487b
564874:	8b 4d dc             	mov    -0x24(%ebp),%ecx
564877:	f7 d9                	neg    %ecx
564879:	eb 03                	jmp    0x56487e
56487b:	83 c9 ff             	or     $0xffffffff,%ecx
56487e:	89 4d d8             	mov    %ecx,-0x28(%ebp)
564881:	8b 52 1c             	mov    0x1c(%edx),%edx
564884:	8b 52 04             	mov    0x4(%edx),%edx
564887:	83 c2 04             	add    $0x4,%edx
56488a:	89 55 cc             	mov    %edx,-0x34(%ebp)
56488d:	8b 40 1c             	mov    0x1c(%eax),%eax
564890:	8b 08                	mov    (%eax),%ecx
564892:	89 4d bc             	mov    %ecx,-0x44(%ebp)
564895:	8b 45 e4             	mov    -0x1c(%ebp),%eax
564898:	89 45 f8             	mov    %eax,-0x8(%ebp)
56489b:	8b 55 f8             	mov    -0x8(%ebp),%edx
56489e:	85 d2                	test   %edx,%edx
5648a0:	0f 8e a8 02 00 00    	jle    0x564b4e
5648a6:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5648a9:	89 4d c8             	mov    %ecx,-0x38(%ebp)
5648ac:	8b 45 bc             	mov    -0x44(%ebp),%eax
5648af:	89 45 b8             	mov    %eax,-0x48(%ebp)
5648b2:	8b 55 f8             	mov    -0x8(%ebp),%edx
5648b5:	83 fa 04             	cmp    $0x4,%edx
5648b8:	7d 05                	jge    0x5648bf
5648ba:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5648bd:	eb 05                	jmp    0x5648c4
5648bf:	b9 04 00 00 00       	mov    $0x4,%ecx
5648c4:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5648c7:	8b 45 e8             	mov    -0x18(%ebp),%eax
5648ca:	89 45 f4             	mov    %eax,-0xc(%ebp)
5648cd:	8b 55 f4             	mov    -0xc(%ebp),%edx
5648d0:	85 d2                	test   %edx,%edx
5648d2:	0f 8e 55 02 00 00    	jle    0x564b2d
5648d8:	8b 75 c8             	mov    -0x38(%ebp),%esi
5648db:	8b 7d b8             	mov    -0x48(%ebp),%edi
5648de:	8b 45 ec             	mov    -0x14(%ebp),%eax
5648e1:	89 45 f0             	mov    %eax,-0x10(%ebp)
5648e4:	8b 16                	mov    (%esi),%edx
5648e6:	81 e2 00 50 00 00    	and    $0x5000,%edx
5648ec:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
5648f2:	75 67                	jne    0x56495b
5648f4:	f6 43 10 01          	testb  $0x1,0x10(%ebx)
5648f8:	75 17                	jne    0x564911
5648fa:	68 f2 02 00 00       	push   $0x2f2
5648ff:	68 7a f4 69 00       	push   $0x69f47a
564904:	68 55 f4 69 00       	push   $0x69f455
564909:	e8 32 62 ff ff       	call   0x55ab40
56490e:	83 c4 0c             	add    $0xc,%esp
564911:	ff 4b 08             	decl   0x8(%ebx)
564914:	78 0e                	js     0x564924
564916:	8b 4b 08             	mov    0x8(%ebx),%ecx
564919:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
56491d:	d3 f8                	sar    %cl,%eax
56491f:	83 e0 01             	and    $0x1,%eax
564922:	eb 07                	jmp    0x56492b
564924:	8b c3                	mov    %ebx,%eax
564926:	e8 51 c3 00 00       	call   0x570c7c
56492b:	85 c0                	test   %eax,%eax
56492d:	7d 08                	jge    0x564937
56492f:	83 c8 ff             	or     $0xffffffff,%eax
564932:	e9 19 02 00 00       	jmp    0x564b50
564937:	85 c0                	test   %eax,%eax
564939:	74 05                	je     0x564940
56493b:	8b 55 dc             	mov    -0x24(%ebp),%edx
56493e:	eb 03                	jmp    0x564943
564940:	8b 55 d8             	mov    -0x28(%ebp),%edx
564943:	8b c2                	mov    %edx,%eax
564945:	8b 0f                	mov    (%edi),%ecx
564947:	85 c9                	test   %ecx,%ecx
564949:	7d 06                	jge    0x564951
56494b:	8b d0                	mov    %eax,%edx
56494d:	f7 da                	neg    %edx
56494f:	eb 02                	jmp    0x564953
564951:	8b d0                	mov    %eax,%edx
564953:	01 17                	add    %edx,(%edi)
564955:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
56495b:	ff 4d f0             	decl   -0x10(%ebp)
56495e:	8b 45 f0             	mov    -0x10(%ebp),%eax
564961:	85 c0                	test   %eax,%eax
564963:	0f 8e ae 01 00 00    	jle    0x564b17
564969:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
56496c:	8b 45 c4             	mov    -0x3c(%ebp),%eax
56496f:	c1 e1 02             	shl    $0x2,%ecx
564972:	c1 e0 02             	shl    $0x2,%eax
564975:	03 f1                	add    %ecx,%esi
564977:	03 f8                	add    %eax,%edi
564979:	8b 16                	mov    (%esi),%edx
56497b:	81 e2 00 50 00 00    	and    $0x5000,%edx
564981:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
564987:	75 67                	jne    0x5649f0
564989:	f6 43 10 01          	testb  $0x1,0x10(%ebx)
56498d:	75 17                	jne    0x5649a6
56498f:	68 fa 02 00 00       	push   $0x2fa
564994:	68 ab f4 69 00       	push   $0x69f4ab
564999:	68 86 f4 69 00       	push   $0x69f486
56499e:	e8 9d 61 ff ff       	call   0x55ab40
5649a3:	83 c4 0c             	add    $0xc,%esp
5649a6:	ff 4b 08             	decl   0x8(%ebx)
5649a9:	78 0e                	js     0x5649b9
5649ab:	8b 4b 08             	mov    0x8(%ebx),%ecx
5649ae:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
5649b2:	d3 f8                	sar    %cl,%eax
5649b4:	83 e0 01             	and    $0x1,%eax
5649b7:	eb 07                	jmp    0x5649c0
5649b9:	8b c3                	mov    %ebx,%eax
5649bb:	e8 bc c2 00 00       	call   0x570c7c
5649c0:	85 c0                	test   %eax,%eax
5649c2:	7d 08                	jge    0x5649cc
5649c4:	83 c8 ff             	or     $0xffffffff,%eax
5649c7:	e9 84 01 00 00       	jmp    0x564b50
5649cc:	85 c0                	test   %eax,%eax
5649ce:	74 05                	je     0x5649d5
5649d0:	8b 55 dc             	mov    -0x24(%ebp),%edx
5649d3:	eb 03                	jmp    0x5649d8
5649d5:	8b 55 d8             	mov    -0x28(%ebp),%edx
5649d8:	8b c2                	mov    %edx,%eax
5649da:	8b 0f                	mov    (%edi),%ecx
5649dc:	85 c9                	test   %ecx,%ecx
5649de:	7d 06                	jge    0x5649e6
5649e0:	8b d0                	mov    %eax,%edx
5649e2:	f7 da                	neg    %edx
5649e4:	eb 02                	jmp    0x5649e8
5649e6:	8b d0                	mov    %eax,%edx
5649e8:	01 17                	add    %edx,(%edi)
5649ea:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
5649f0:	ff 4d f0             	decl   -0x10(%ebp)
5649f3:	8b 45 f0             	mov    -0x10(%ebp),%eax
5649f6:	85 c0                	test   %eax,%eax
5649f8:	0f 8e 19 01 00 00    	jle    0x564b17
5649fe:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
564a01:	8b 45 c4             	mov    -0x3c(%ebp),%eax
564a04:	c1 e1 02             	shl    $0x2,%ecx
564a07:	c1 e0 02             	shl    $0x2,%eax
564a0a:	03 f1                	add    %ecx,%esi
564a0c:	03 f8                	add    %eax,%edi
564a0e:	8b 16                	mov    (%esi),%edx
564a10:	81 e2 00 50 00 00    	and    $0x5000,%edx
564a16:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
564a1c:	75 67                	jne    0x564a85
564a1e:	f6 43 10 01          	testb  $0x1,0x10(%ebx)
564a22:	75 17                	jne    0x564a3b
564a24:	68 02 03 00 00       	push   $0x302
564a29:	68 dc f4 69 00       	push   $0x69f4dc
564a2e:	68 b7 f4 69 00       	push   $0x69f4b7
564a33:	e8 08 61 ff ff       	call   0x55ab40
564a38:	83 c4 0c             	add    $0xc,%esp
564a3b:	ff 4b 08             	decl   0x8(%ebx)
564a3e:	78 0e                	js     0x564a4e
564a40:	8b 4b 08             	mov    0x8(%ebx),%ecx
564a43:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
564a47:	d3 f8                	sar    %cl,%eax
564a49:	83 e0 01             	and    $0x1,%eax
564a4c:	eb 07                	jmp    0x564a55
564a4e:	8b c3                	mov    %ebx,%eax
564a50:	e8 27 c2 00 00       	call   0x570c7c
564a55:	85 c0                	test   %eax,%eax
564a57:	7d 08                	jge    0x564a61
564a59:	83 c8 ff             	or     $0xffffffff,%eax
564a5c:	e9 ef 00 00 00       	jmp    0x564b50
564a61:	85 c0                	test   %eax,%eax
564a63:	74 05                	je     0x564a6a
564a65:	8b 55 dc             	mov    -0x24(%ebp),%edx
564a68:	eb 03                	jmp    0x564a6d
564a6a:	8b 55 d8             	mov    -0x28(%ebp),%edx
564a6d:	8b c2                	mov    %edx,%eax
564a6f:	8b 0f                	mov    (%edi),%ecx
564a71:	85 c9                	test   %ecx,%ecx
564a73:	7d 06                	jge    0x564a7b
564a75:	8b d0                	mov    %eax,%edx
564a77:	f7 da                	neg    %edx
564a79:	eb 02                	jmp    0x564a7d
564a7b:	8b d0                	mov    %eax,%edx
564a7d:	01 17                	add    %edx,(%edi)
564a7f:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
564a85:	ff 4d f0             	decl   -0x10(%ebp)
564a88:	8b 45 f0             	mov    -0x10(%ebp),%eax
564a8b:	85 c0                	test   %eax,%eax
564a8d:	0f 8e 84 00 00 00    	jle    0x564b17
564a93:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
564a96:	8b 45 c4             	mov    -0x3c(%ebp),%eax
564a99:	c1 e1 02             	shl    $0x2,%ecx
564a9c:	c1 e0 02             	shl    $0x2,%eax
564a9f:	03 f1                	add    %ecx,%esi
564aa1:	03 f8                	add    %eax,%edi
564aa3:	8b 16                	mov    (%esi),%edx
564aa5:	81 e2 00 50 00 00    	and    $0x5000,%edx
564aab:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
564ab1:	75 64                	jne    0x564b17
564ab3:	f6 43 10 01          	testb  $0x1,0x10(%ebx)
564ab7:	75 17                	jne    0x564ad0
564ab9:	68 0a 03 00 00       	push   $0x30a
564abe:	68 0d f5 69 00       	push   $0x69f50d
564ac3:	68 e8 f4 69 00       	push   $0x69f4e8
564ac8:	e8 73 60 ff ff       	call   0x55ab40
564acd:	83 c4 0c             	add    $0xc,%esp
564ad0:	ff 4b 08             	decl   0x8(%ebx)
564ad3:	78 0e                	js     0x564ae3
564ad5:	8b 4b 08             	mov    0x8(%ebx),%ecx
564ad8:	0f b7 43 04          	movzwl 0x4(%ebx),%eax
564adc:	d3 f8                	sar    %cl,%eax
564ade:	83 e0 01             	and    $0x1,%eax
564ae1:	eb 07                	jmp    0x564aea
564ae3:	8b c3                	mov    %ebx,%eax
564ae5:	e8 92 c1 00 00       	call   0x570c7c
564aea:	85 c0                	test   %eax,%eax
564aec:	7d 05                	jge    0x564af3
564aee:	83 c8 ff             	or     $0xffffffff,%eax
564af1:	eb 5d                	jmp    0x564b50
564af3:	85 c0                	test   %eax,%eax
564af5:	74 05                	je     0x564afc
564af7:	8b 55 dc             	mov    -0x24(%ebp),%edx
564afa:	eb 03                	jmp    0x564aff
564afc:	8b 55 d8             	mov    -0x28(%ebp),%edx
564aff:	8b c2                	mov    %edx,%eax
564b01:	8b 0f                	mov    (%edi),%ecx
564b03:	85 c9                	test   %ecx,%ecx
564b05:	7d 06                	jge    0x564b0d
564b07:	8b d0                	mov    %eax,%edx
564b09:	f7 da                	neg    %edx
564b0b:	eb 02                	jmp    0x564b0f
564b0d:	8b d0                	mov    %eax,%edx
564b0f:	01 17                	add    %edx,(%edi)
564b11:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
564b17:	ff 4d f4             	decl   -0xc(%ebp)
564b1a:	83 45 c8 04          	addl   $0x4,-0x38(%ebp)
564b1e:	83 45 b8 04          	addl   $0x4,-0x48(%ebp)
564b22:	8b 45 f4             	mov    -0xc(%ebp),%eax
564b25:	85 c0                	test   %eax,%eax
564b27:	0f 8f ab fd ff ff    	jg     0x5648d8
564b2d:	83 6d f8 04          	subl   $0x4,-0x8(%ebp)
564b31:	8b 4d d0             	mov    -0x30(%ebp),%ecx
564b34:	c1 e1 02             	shl    $0x2,%ecx
564b37:	01 4d cc             	add    %ecx,-0x34(%ebp)
564b3a:	8b 45 c0             	mov    -0x40(%ebp),%eax
564b3d:	c1 e0 02             	shl    $0x2,%eax
564b40:	01 45 bc             	add    %eax,-0x44(%ebp)
564b43:	8b 55 f8             	mov    -0x8(%ebp),%edx
564b46:	85 d2                	test   %edx,%edx
564b48:	0f 8f 58 fd ff ff    	jg     0x5648a6
564b4e:	33 c0                	xor    %eax,%eax
564b50:	5f                   	pop    %edi
564b51:	5e                   	pop    %esi
564b52:	5b                   	pop    %ebx
564b53:	8b e5                	mov    %ebp,%esp
564b55:	5d                   	pop    %ebp
564b56:	c2 0c 00             	ret    $0xc
564b59:	90                   	nop
564b5a:	90                   	nop
564b5b:	90                   	nop
564b5c:	55                   	push   %ebp
564b5d:	8b ec                	mov    %esp,%ebp
564b5f:	83 c4 a8             	add    $0xffffffa8,%esp
564b62:	53                   	push   %ebx
564b63:	56                   	push   %esi
564b64:	57                   	push   %edi
564b65:	89 4d f8             	mov    %ecx,-0x8(%ebp)
564b68:	8b da                	mov    %edx,%ebx
564b6a:	89 45 fc             	mov    %eax,-0x4(%ebp)
564b6d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
564b70:	b8 01 00 00 00       	mov    $0x1,%eax
564b75:	d3 e0                	shl    %cl,%eax
564b77:	89 45 d4             	mov    %eax,-0x2c(%ebp)
564b7a:	8b 55 d4             	mov    -0x2c(%ebp),%edx
564b7d:	d1 fa                	sar    $1,%edx
564b7f:	89 55 e4             	mov    %edx,-0x1c(%ebp)
564b82:	8b 45 d4             	mov    -0x2c(%ebp),%eax
564b85:	8b 55 e4             	mov    -0x1c(%ebp),%edx
564b88:	0b c2                	or     %edx,%eax
564b8a:	89 45 d0             	mov    %eax,-0x30(%ebp)