5645b3:	72 27                	jb     0x5645dc
5645b5:	8b 43 0c             	mov    0xc(%ebx),%eax
5645b8:	8b 08                	mov    (%eax),%ecx
5645ba:	0f b7 01             	movzwl (%ecx),%eax
5645bd:	c1 e0 10             	shl    $0x10,%eax
5645c0:	29 03                	sub    %eax,(%ebx)
5645c2:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
5645c6:	74 0b                	je     0x5645d3
5645c8:	8b 53 0c             	mov    0xc(%ebx),%edx
5645cb:	8b 0a                	mov    (%edx),%ecx
5645cd:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
5645d1:	eb 10                	jmp    0x5645e3
5645d3:	8b c3                	mov    %ebx,%eax
5645d5:	e8 d6 d6 00 00       	call   0x571cb0
5645da:	eb 07                	jmp    0x5645e3
5645dc:	8b c3                	mov    %ebx,%eax
5645de:	e8 ed d7 00 00       	call   0x571dd0
5645e3:	85 c0                	test   %eax,%eax
5645e5:	74 05                	je     0x5645ec
5645e7:	8b 55 dc             	mov    -0x24(%ebp),%edx
5645ea:	eb 03                	jmp    0x5645ef
5645ec:	8b 55 d8             	mov    -0x28(%ebp),%edx
5645ef:	8b c2                	mov    %edx,%eax
5645f1:	8b 0f                	mov    (%edi),%ecx
5645f3:	85 c9                	test   %ecx,%ecx
5645f5:	7d 06                	jge    0x5645fd
5645f7:	8b d0                	mov    %eax,%edx
5645f9:	f7 da                	neg    %edx
5645fb:	eb 02                	jmp    0x5645ff
5645fd:	8b d0                	mov    %eax,%edx
5645ff:	01 17                	add    %edx,(%edi)
564601:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
564607:	ff 4d b4             	decl   -0x4c(%ebp)
56460a:	8b 45 b4             	mov    -0x4c(%ebp),%eax
56460d:	85 c0                	test   %eax,%eax
56460f:	0f 8e 86 01 00 00    	jle    0x56479b
564615:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
564618:	8b 45 c4             	mov    -0x3c(%ebp),%eax
56461b:	c1 e1 02             	shl    $0x2,%ecx
56461e:	c1 e0 02             	shl    $0x2,%eax
564621:	03 f1                	add    %ecx,%esi
564623:	03 f8                	add    %eax,%edi
564625:	8b 06                	mov    (%esi),%eax
564627:	8b d0                	mov    %eax,%edx
564629:	81 e2 00 50 00 00    	and    $0x5000,%edx
56462f:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
564635:	0f 85 96 00 00 00    	jne    0x5646d1
56463b:	8b c8                	mov    %eax,%ecx
56463d:	81 e1 ff 00 00 00    	and    $0xff,%ecx
564643:	f6 c4 20             	test   $0x20,%ah
564646:	0f 95 c0             	setne  %al
564649:	83 e0 01             	and    $0x1,%eax
56464c:	c1 e0 0b             	shl    $0xb,%eax
56464f:	0b c8                	or     %eax,%ecx
564651:	8b 14 8d 1c cc 6a 00 	mov    0x6acc1c(,%ecx,4),%edx
564658:	8b 4b 10             	mov    0x10(%ebx),%ecx
56465b:	c1 e2 02             	shl    $0x2,%edx
56465e:	03 d1                	add    %ecx,%edx
564660:	89 53 0c             	mov    %edx,0xc(%ebx)
564663:	8b 43 0c             	mov    0xc(%ebx),%eax
564666:	8b 10                	mov    (%eax),%edx
564668:	0f b7 0a             	movzwl (%edx),%ecx
56466b:	29 4b 04             	sub    %ecx,0x4(%ebx)
56466e:	8b 53 0c             	mov    0xc(%ebx),%edx
564671:	8b 03                	mov    (%ebx),%eax
564673:	c1 e8 10             	shr    $0x10,%eax
564676:	8b 0a                	mov    (%edx),%ecx
564678:	0f b7 11             	movzwl (%ecx),%edx
56467b:	3b c2                	cmp    %edx,%eax
56467d:	72 27                	jb     0x5646a6
56467f:	8b 43 0c             	mov    0xc(%ebx),%eax
564682:	8b 08                	mov    (%eax),%ecx
564684:	0f b7 01             	movzwl (%ecx),%eax
564687:	c1 e0 10             	shl    $0x10,%eax
56468a:	29 03                	sub    %eax,(%ebx)
56468c:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
564690:	74 0b                	je     0x56469d
564692:	8b 53 0c             	mov    0xc(%ebx),%edx
564695:	8b 0a                	mov    (%edx),%ecx
564697:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
56469b:	eb 10                	jmp    0x5646ad
56469d:	8b c3                	mov    %ebx,%eax
56469f:	e8 0c d6 00 00       	call   0x571cb0
5646a4:	eb 07                	jmp    0x5646ad
5646a6:	8b c3                	mov    %ebx,%eax
5646a8:	e8 23 d7 00 00       	call   0x571dd0
5646ad:	85 c0                	test   %eax,%eax
5646af:	74 05                	je     0x5646b6
5646b1:	8b 55 dc             	mov    -0x24(%ebp),%edx
5646b4:	eb 03                	jmp    0x5646b9
5646b6:	8b 55 d8             	mov    -0x28(%ebp),%edx
5646b9:	8b c2                	mov    %edx,%eax
5646bb:	8b 0f                	mov    (%edi),%ecx
5646bd:	85 c9                	test   %ecx,%ecx
5646bf:	7d 06                	jge    0x5646c7
5646c1:	8b d0                	mov    %eax,%edx
5646c3:	f7 da                	neg    %edx
5646c5:	eb 02                	jmp    0x5646c9
5646c7:	8b d0                	mov    %eax,%edx
5646c9:	01 17                	add    %edx,(%edi)
5646cb:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
5646d1:	ff 4d b4             	decl   -0x4c(%ebp)
5646d4:	8b 45 b4             	mov    -0x4c(%ebp),%eax
5646d7:	85 c0                	test   %eax,%eax
5646d9:	0f 8e bc 00 00 00    	jle    0x56479b
5646df:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5646e2:	8b 45 c4             	mov    -0x3c(%ebp),%eax
5646e5:	c1 e1 02             	shl    $0x2,%ecx
5646e8:	c1 e0 02             	shl    $0x2,%eax
5646eb:	03 f1                	add    %ecx,%esi
5646ed:	03 f8                	add    %eax,%edi
5646ef:	8b 06                	mov    (%esi),%eax
5646f1:	8b d0                	mov    %eax,%edx
5646f3:	81 e2 00 50 00 00    	and    $0x5000,%edx
5646f9:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
5646ff:	0f 85 96 00 00 00    	jne    0x56479b
564705:	8b c8                	mov    %eax,%ecx
564707:	81 e1 ff 00 00 00    	and    $0xff,%ecx
56470d:	f6 c4 20             	test   $0x20,%ah
564710:	0f 95 c0             	setne  %al
564713:	83 e0 01             	and    $0x1,%eax
564716:	c1 e0 0b             	shl    $0xb,%eax
564719:	0b c8                	or     %eax,%ecx
56471b:	8b 14 8d 1c cc 6a 00 	mov    0x6acc1c(,%ecx,4),%edx
564722:	8b 4b 10             	mov    0x10(%ebx),%ecx
564725:	c1 e2 02             	shl    $0x2,%edx
564728:	03 d1                	add    %ecx,%edx
56472a:	89 53 0c             	mov    %edx,0xc(%ebx)
56472d:	8b 43 0c             	mov    0xc(%ebx),%eax
564730:	8b 10                	mov    (%eax),%edx
564732:	0f b7 0a             	movzwl (%edx),%ecx
564735:	29 4b 04             	sub    %ecx,0x4(%ebx)
564738:	8b 53 0c             	mov    0xc(%ebx),%edx
56473b:	8b 03                	mov    (%ebx),%eax
56473d:	c1 e8 10             	shr    $0x10,%eax
564740:	8b 0a                	mov    (%edx),%ecx
564742:	0f b7 11             	movzwl (%ecx),%edx
564745:	3b c2                	cmp    %edx,%eax
564747:	72 27                	jb     0x564770
564749:	8b 43 0c             	mov    0xc(%ebx),%eax
56474c:	8b 08                	mov    (%eax),%ecx
56474e:	0f b7 01             	movzwl (%ecx),%eax
564751:	c1 e0 10             	shl    $0x10,%eax
564754:	29 03                	sub    %eax,(%ebx)
564756:	f6 43 05 80          	testb  $0x80,0x5(%ebx)
56475a:	74 0b                	je     0x564767
56475c:	8b 53 0c             	mov    0xc(%ebx),%edx
56475f:	8b 0a                	mov    (%edx),%ecx
564761:	0f b7 41 02          	movzwl 0x2(%ecx),%eax
564765:	eb 10                	jmp    0x564777
564767:	8b c3                	mov    %ebx,%eax
564769:	e8 42 d5 00 00       	call   0x571cb0
56476e:	eb 07                	jmp    0x564777
564770:	8b c3                	mov    %ebx,%eax
564772:	e8 59 d6 00 00       	call   0x571dd0
564777:	85 c0                	test   %eax,%eax
564779:	74 05                	je     0x564780
56477b:	8b 55 dc             	mov    -0x24(%ebp),%edx
56477e:	eb 03                	jmp    0x564783
564780:	8b 55 d8             	mov    -0x28(%ebp),%edx
564783:	8b c2                	mov    %edx,%eax
564785:	8b 0f                	mov    (%edi),%ecx
564787:	85 c9                	test   %ecx,%ecx
564789:	7d 06                	jge    0x564791
56478b:	8b d0                	mov    %eax,%edx
56478d:	f7 da                	neg    %edx
56478f:	eb 02                	jmp    0x564793
564791:	8b d0                	mov    %eax,%edx
564793:	01 17                	add    %edx,(%edi)
564795:	81 0e 00 20 00 00    	orl    $0x2000,(%esi)
56479b:	ff 4d f0             	decl   -0x10(%ebp)
56479e:	83 45 c8 04          	addl   $0x4,-0x38(%ebp)
5647a2:	83 45 b8 04          	addl   $0x4,-0x48(%ebp)
5647a6:	8b 45 f0             	mov    -0x10(%ebp),%eax
5647a9:	85 c0                	test   %eax,%eax
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