571646:	80 f9 01             	cmp    $0x1,%cl
571649:	0f 85 a4 00 00 00    	jne    0x5716f3
57164f:	0f b7 07             	movzwl (%edi),%eax
571652:	c1 e0 02             	shl    $0x2,%eax
571655:	e8 22 6d 00 00       	call   0x57837c
57165a:	89 44 24 1c          	mov    %eax,0x1c(%esp)
57165e:	33 f6                	xor    %esi,%esi
571660:	8b 44 24 1c          	mov    0x1c(%esp),%eax
571664:	eb 1f                	jmp    0x571685
571666:	8b 54 24 24          	mov    0x24(%esp),%edx
57166a:	33 c9                	xor    %ecx,%ecx
57166c:	8a 4a 03             	mov    0x3(%edx),%cl
57166f:	33 d2                	xor    %edx,%edx
571671:	8a 57 02             	mov    0x2(%edi),%dl
571674:	0f af d6             	imul   %esi,%edx
571677:	03 ca                	add    %edx,%ecx
571679:	8b 57 04             	mov    0x4(%edi),%edx
57167c:	46                   	inc    %esi
57167d:	8b 0c 8a             	mov    (%edx,%ecx,4),%ecx
571680:	89 08                	mov    %ecx,(%eax)
571682:	83 c0 04             	add    $0x4,%eax
571685:	0f b7 17             	movzwl (%edi),%edx
571688:	3b f2                	cmp    %edx,%esi
57168a:	7c da                	jl     0x571666
57168c:	8b 43 18             	mov    0x18(%ebx),%eax
57168f:	33 c9                	xor    %ecx,%ecx
571691:	0f b7 70 10          	movzwl 0x10(%eax),%esi
571695:	8b 44 24 1c          	mov    0x1c(%esp),%eax
571699:	50                   	push   %eax
57169a:	8b 54 24 28          	mov    0x28(%esp),%edx
57169e:	8b 47 08             	mov    0x8(%edi),%eax
5716a1:	8a 4a 03             	mov    0x3(%edx),%cl
5716a4:	33 d2                	xor    %edx,%edx
5716a6:	8a 14 08             	mov    (%eax,%ecx,1),%dl
5716a9:	8b 4c 24 28          	mov    0x28(%esp),%ecx
5716ad:	33 c0                	xor    %eax,%eax
5716af:	8a 41 03             	mov    0x3(%ecx),%al
5716b2:	8b 4f 08             	mov    0x8(%edi),%ecx
5716b5:	c1 fa 07             	sar    $0x7,%edx
5716b8:	0f b6 04 01          	movzbl (%ecx,%eax,1),%eax
5716bc:	83 e0 7f             	and    $0x7f,%eax
5716bf:	83 e2 01             	and    $0x1,%edx
5716c2:	40                   	inc    %eax
5716c3:	c1 e2 07             	shl    $0x7,%edx
5716c6:	83 e0 7f             	and    $0x7f,%eax
5716c9:	0b d0                	or     %eax,%edx
5716cb:	52                   	push   %edx
5716cc:	56                   	push   %esi
5716cd:	8b 54 24 30          	mov    0x30(%esp),%edx
5716d1:	8b 43 18             	mov    0x18(%ebx),%eax
5716d4:	0f b7 0f             	movzwl (%edi),%ecx
5716d7:	0f b7 12             	movzwl (%edx),%edx
5716da:	e8 49 43 00 00       	call   0x575a28
5716df:	8b 4b 20             	mov    0x20(%ebx),%ecx
5716e2:	8b 44 24 14          	mov    0x14(%esp),%eax
5716e6:	66 89 34 41          	mov    %si,(%ecx,%eax,2)
5716ea:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5716ee:	e8 91 6c 00 00       	call   0x578384
5716f3:	ff 44 24 14          	incl   0x14(%esp)
5716f7:	8b 54 24 0c          	mov    0xc(%esp),%edx
5716fb:	8b 44 24 14          	mov    0x14(%esp),%eax
5716ff:	0f b7 0a             	movzwl (%edx),%ecx
571702:	3b c8                	cmp    %eax,%ecx
571704:	0f 8f 01 ff ff ff    	jg     0x57160b
57170a:	33 f6                	xor    %esi,%esi
57170c:	eb 0e                	jmp    0x57171c
57170e:	8b 40 14             	mov    0x14(%eax),%eax
571711:	8b 14 b0             	mov    (%eax,%esi,4),%edx
571714:	46                   	inc    %esi
571715:	c7 42 24 00 00 01 00 	movl   $0x10000,0x24(%edx)
57171c:	8b 43 18             	mov    0x18(%ebx),%eax
57171f:	0f b7 50 10          	movzwl 0x10(%eax),%edx
571723:	3b f2                	cmp    %edx,%esi
571725:	7c e7                	jl     0x57170e
571727:	8b 4b 04             	mov    0x4(%ebx),%ecx
57172a:	85 c9                	test   %ecx,%ecx
57172c:	74 50                	je     0x57177e
57172e:	33 f6                	xor    %esi,%esi
571730:	eb 42                	jmp    0x571774
571732:	8b 43 04             	mov    0x4(%ebx),%eax
571735:	8d 3c 76             	lea    (%esi,%esi,2),%edi
571738:	8b 50 14             	mov    0x14(%eax),%edx
57173b:	8b 43 04             	mov    0x4(%ebx),%eax
57173e:	0f b7 4c 7a 04       	movzwl 0x4(%edx,%edi,2),%ecx
571743:	8b 50 14             	mov    0x14(%eax),%edx
571746:	8b 43 18             	mov    0x18(%ebx),%eax
571749:	0f b7 54 7a 02       	movzwl 0x2(%edx,%edi,2),%edx
57174e:	8b 40 18             	mov    0x18(%eax),%eax
571751:	e8 1e 02 00 00       	call   0x571974
571756:	8b 53 04             	mov    0x4(%ebx),%edx
571759:	46                   	inc    %esi
57175a:	8b 4a 14             	mov    0x14(%edx),%ecx
57175d:	0f b7 14 79          	movzwl (%ecx,%edi,2),%edx
571761:	8b 4b 20             	mov    0x20(%ebx),%ecx
571764:	0f b7 14 51          	movzwl (%ecx,%edx,2),%edx
571768:	8b 4b 18             	mov    0x18(%ebx),%ecx
57176b:	8b 49 14             	mov    0x14(%ecx),%ecx
57176e:	8b 14 91             	mov    (%ecx,%edx,4),%edx
571771:	89 42 24             	mov    %eax,0x24(%edx)
571774:	0f b7 43 1c          	movzwl 0x1c(%ebx),%eax
571778:	3b f0                	cmp    %eax,%esi
57177a:	7c b6                	jl     0x571732
57177c:	eb 30                	jmp    0x5717ae
57177e:	33 f6                	xor    %esi,%esi
571780:	eb 24                	jmp    0x5717a6
571782:	8d 4e 01             	lea    0x1(%esi),%ecx
571785:	8b 43 18             	mov    0x18(%ebx),%eax
571788:	8b 40 18             	mov    0x18(%eax),%eax
57178b:	33 d2                	xor    %edx,%edx
57178d:	e8 e2 01 00 00       	call   0x571974
571792:	8b 4b 20             	mov    0x20(%ebx),%ecx
571795:	0f b7 14 71          	movzwl (%ecx,%esi,2),%edx
571799:	8b 4b 18             	mov    0x18(%ebx),%ecx
57179c:	46                   	inc    %esi
57179d:	8b 49 14             	mov    0x14(%ecx),%ecx
5717a0:	8b 14 91             	mov    (%ecx,%edx,4),%edx
5717a3:	89 42 24             	mov    %eax,0x24(%edx)
5717a6:	0f b7 43 1c          	movzwl 0x1c(%ebx),%eax
5717aa:	3b f0                	cmp    %eax,%esi
5717ac:	7c d4                	jl     0x571782
5717ae:	8b 43 18             	mov    0x18(%ebx),%eax
5717b1:	0f b7 70 10          	movzwl 0x10(%eax),%esi
5717b5:	4e                   	dec    %esi
5717b6:	85 f6                	test   %esi,%esi
5717b8:	7c 20                	jl     0x5717da
5717ba:	8b 43 18             	mov    0x18(%ebx),%eax
5717bd:	8b 50 14             	mov    0x14(%eax),%edx
5717c0:	8b 0c b2             	mov    (%edx,%esi,4),%ecx
5717c3:	8b 51 24             	mov    0x24(%ecx),%edx
5717c6:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
5717cc:	75 07                	jne    0x5717d5
5717ce:	8b d6                	mov    %esi,%edx
5717d0:	e8 17 3e 00 00       	call   0x5755ec
5717d5:	4e                   	dec    %esi
5717d6:	85 f6                	test   %esi,%esi
5717d8:	7d e0                	jge    0x5717ba
5717da:	8b 4b 18             	mov    0x18(%ebx),%ecx
5717dd:	66 83 79 10 00       	cmpw   $0x0,0x10(%ecx)
5717e2:	75 0d                	jne    0x5717f1
5717e4:	68 72 16 6a 00       	push   $0x6a1672
5717e9:	e8 66 87 00 00       	call   0x579f54
5717ee:	59                   	pop    %ecx
5717ef:	eb 2d                	jmp    0x57181e
5717f1:	8b 43 18             	mov    0x18(%ebx),%eax
5717f4:	0f b7 50 10          	movzwl 0x10(%eax),%edx
5717f8:	52                   	push   %edx
5717f9:	68 88 16 6a 00       	push   $0x6a1688
5717fe:	68 80 2e 6a 00       	push   $0x6a2e80
571803:	e8 c4 88 00 00       	call   0x57a0cc
571808:	83 c4 0c             	add    $0xc,%esp
57180b:	33 c0                	xor    %eax,%eax
57180d:	8b 73 18             	mov    0x18(%ebx),%esi
571810:	89 43 18             	mov    %eax,0x18(%ebx)
571813:	8b c3                	mov    %ebx,%eax
571815:	e8 ee 00 00 00       	call   0x571908
57181a:	8b c6                	mov    %esi,%eax
57181c:	eb 18                	jmp    0x571836
57181e:	85 ed                	test   %ebp,%ebp
571820:	74 07                	je     0x571829
571822:	8b c5                	mov    %ebp,%eax
571824:	e8 eb 21 00 00       	call   0x573a14
571829:	85 db                	test   %ebx,%ebx
57182b:	74 07                	je     0x571834
57182d:	8b c3                	mov    %ebx,%eax
57182f:	e8 d4 00 00 00       	call   0x571908
571834:	33 c0                	xor    %eax,%eax
571836:	83 c4 28             	add    $0x28,%esp
571839:	5d                   	pop    %ebp
57183a:	5f                   	pop    %edi
57183b:	5e                   	pop    %esi
57183c:	5b                   	pop    %ebx
57183d:	c3                   	ret
57183e:	90                   	nop
57183f:	90                   	nop
571840:	53                   	push   %ebx
571841:	56                   	push   %esi
571842:	57                   	push   %edi
571843:	55                   	push   %ebp
571844:	83 c4 f0             	add    $0xfffffff0,%esp
571847:	8b f8                	mov    %eax,%edi
571849:	8b d4                	mov    %esp,%edx
57184b:	b9 10 00 00 00       	mov    $0x10,%ecx
571850:	8b c7                	mov    %edi,%eax
571852:	e8 29 70 00 00       	call   0x578880
571857:	8b e8                	mov    %eax,%ebp
571859:	85 c0                	test   %eax,%eax
57185b:	7d 05                	jge    0x571862
57185d:	83 c8 ff             	or     $0xffffffff,%eax
571860:	eb 5e                	jmp    0x5718c0
571862:	8d 5d ff             	lea    -0x1(%ebp),%ebx
571865:	8d 34 1c             	lea    (%esp,%ebx,1),%esi
571868:	85 db                	test   %ebx,%ebx
57186a:	7c 18                	jl     0x571884
57186c:	0f be 16             	movsbl (%esi),%edx
57186f:	8b c7                	mov    %edi,%eax
571871:	e8 e2 6f 00 00       	call   0x578858
571876:	40                   	inc    %eax
571877:	75 05                	jne    0x57187e
571879:	83 c8 ff             	or     $0xffffffff,%eax
57187c:	eb 42                	jmp    0x5718c0
57187e:	4b                   	dec    %ebx
57187f:	4e                   	dec    %esi
571880:	85 db                	test   %ebx,%ebx
571882:	7d e8                	jge    0x57186c
571884:	83 fd 10             	cmp    $0x10,%ebp
571887:	7d 05                	jge    0x57188e
571889:	83 c8 ff             	or     $0xffffffff,%eax
57188c:	eb 32                	jmp    0x5718c0
57188e:	0f be 54 24 04       	movsbl 0x4(%esp),%edx
571893:	c1 e2 18             	shl    $0x18,%edx
571896:	0f be 4c 24 05       	movsbl 0x5(%esp),%ecx
57189b:	c1 e1 10             	shl    $0x10,%ecx
57189e:	0b d1                	or     %ecx,%edx
5718a0:	0f be 44 24 06       	movsbl 0x6(%esp),%eax
5718a5:	c1 e0 08             	shl    $0x8,%eax
5718a8:	0b d0                	or     %eax,%edx
5718aa:	0f be 4c 24 07       	movsbl 0x7(%esp),%ecx
5718af:	0b d1                	or     %ecx,%edx
5718b1:	81 fa 20 20 50 6a    	cmp    $0x6a502020,%edx
5718b7:	74 05                	je     0x5718be
5718b9:	83 c8 ff             	or     $0xffffffff,%eax
5718bc:	eb 02                	jmp    0x5718c0
5718be:	33 c0                	xor    %eax,%eax
5718c0:	83 c4 10             	add    $0x10,%esp
5718c3:	5d                   	pop    %ebp
5718c4:	5f                   	pop    %edi
5718c5:	5e                   	pop    %esi
5718c6:	5b                   	pop    %ebx
5718c7:	c3                   	ret
5718c8:	53                   	push   %ebx
5718c9:	b8 24 00 00 00       	mov    $0x24,%eax
5718ce:	e8 a9 6a 00 00       	call   0x57837c
5718d3:	8b d8                	mov    %eax,%ebx
5718d5:	85 c0                	test   %eax,%eax
5718d7:	75 04                	jne    0x5718dd
5718d9:	33 c0                	xor    %eax,%eax
5718db:	5b                   	pop    %ebx
5718dc:	c3                   	ret
5718dd:	33 d2                	xor    %edx,%edx
5718df:	33 c9                	xor    %ecx,%ecx
5718e1:	89 53 08             	mov    %edx,0x8(%ebx)
5718e4:	89 4b 0c             	mov    %ecx,0xc(%ebx)
5718e7:	33 c0                	xor    %eax,%eax
5718e9:	33 d2                	xor    %edx,%edx
5718eb:	89 43 04             	mov    %eax,0x4(%ebx)
5718ee:	89 13                	mov    %edx,(%ebx)
5718f0:	33 c9                	xor    %ecx,%ecx
5718f2:	33 c0                	xor    %eax,%eax
5718f4:	89 4b 18             	mov    %ecx,0x18(%ebx)
5718f7:	89 43 20             	mov    %eax,0x20(%ebx)
5718fa:	33 d2                	xor    %edx,%edx
5718fc:	33 c9                	xor    %ecx,%ecx
5718fe:	8b c3                	mov    %ebx,%eax
571900:	89 53 10             	mov    %edx,0x10(%ebx)
571903:	89 4b 14             	mov    %ecx,0x14(%ebx)
571906:	5b                   	pop    %ebx
571907:	c3                   	ret
571908:	53                   	push   %ebx
571909:	8b d8                	mov    %eax,%ebx
57190b:	8b 43 08             	mov    0x8(%ebx),%eax
57190e:	85 c0                	test   %eax,%eax
571910:	74 05                	je     0x571917
571912:	e8 fd 20 00 00       	call   0x573a14
571917:	8b 43 0c             	mov    0xc(%ebx),%eax
57191a:	85 c0                	test   %eax,%eax
57191c:	74 05                	je     0x571923
57191e:	e8 f1 20 00 00       	call   0x573a14
571923:	8b 43 04             	mov    0x4(%ebx),%eax
571926:	85 c0                	test   %eax,%eax
571928:	74 05                	je     0x57192f
57192a:	e8 e5 20 00 00       	call   0x573a14
57192f:	8b 03                	mov    (%ebx),%eax
571931:	85 c0                	test   %eax,%eax
571933:	74 05                	je     0x57193a
571935:	e8 da 20 00 00       	call   0x573a14
57193a:	8b 43 18             	mov    0x18(%ebx),%eax
57193d:	85 c0                	test   %eax,%eax
57193f:	74 05                	je     0x571946
571941:	e8 62 34 00 00       	call   0x574da8
571946:	8b 43 10             	mov    0x10(%ebx),%eax
571949:	85 c0                	test   %eax,%eax
57194b:	74 05                	je     0x571952
57194d:	e8 c2 20 00 00       	call   0x573a14
571952:	8b 43 14             	mov    0x14(%ebx),%eax
571955:	85 c0                	test   %eax,%eax
571957:	74 05                	je     0x57195e
571959:	e8 b6 20 00 00       	call   0x573a14
57195e:	8b 43 20             	mov    0x20(%ebx),%eax
571961:	85 c0                	test   %eax,%eax
571963:	74 05                	je     0x57196a
571965:	e8 1a 6a 00 00       	call   0x578384
57196a:	8b c3                	mov    %ebx,%eax
57196c:	e8 13 6a 00 00       	call   0x578384
571971:	5b                   	pop    %ebx
571972:	c3                   	ret
571973:	90                   	nop
571974:	83 fa 01             	cmp    $0x1,%edx
571977:	75 0a                	jne    0x571983
571979:	85 c9                	test   %ecx,%ecx
57197b:	75 06                	jne    0x571983
57197d:	b8 00 80 00 00       	mov    $0x8000,%eax
571982:	c3                   	ret
571983:	85 d2                	test   %edx,%edx
571985:	75 5b                	jne    0x5719e2
571987:	83 f9 01             	cmp    $0x1,%ecx
57198a:	7c 56                	jl     0x5719e2
57198c:	81 f9 fe ff 00 00    	cmp    $0xfffe,%ecx
571992:	7f 4e                	jg     0x5719e2
571994:	48                   	dec    %eax
571995:	74 3c                	je     0x5719d3
571997:	48                   	dec    %eax
571998:	74 05                	je     0x57199f
57199a:	48                   	dec    %eax
57199b:	74 1c                	je     0x5719b9
57199d:	eb 3a                	jmp    0x5719d9
57199f:	49                   	dec    %ecx
5719a0:	74 08                	je     0x5719aa
5719a2:	49                   	dec    %ecx
5719a3:	74 08                	je     0x5719ad
5719a5:	49                   	dec    %ecx
5719a6:	74 0b                	je     0x5719b3
5719a8:	eb 38                	jmp    0x5719e2
5719aa:	33 c0                	xor    %eax,%eax
5719ac:	c3                   	ret
5719ad:	b8 01 00 00 00       	mov    $0x1,%eax
5719b2:	c3                   	ret
5719b3:	b8 02 00 00 00       	mov    $0x2,%eax
5719b8:	c3                   	ret
5719b9:	49                   	dec    %ecx
5719ba:	74 08                	je     0x5719c4
5719bc:	49                   	dec    %ecx
5719bd:	74 08                	je     0x5719c7
5719bf:	49                   	dec    %ecx
5719c0:	74 0b                	je     0x5719cd
5719c2:	eb 1e                	jmp    0x5719e2
5719c4:	33 c0                	xor    %eax,%eax
5719c6:	c3                   	ret
5719c7:	b8 01 00 00 00       	mov    $0x1,%eax
5719cc:	c3                   	ret
5719cd:	b8 02 00 00 00       	mov    $0x2,%eax
5719d2:	c3                   	ret
5719d3:	49                   	dec    %ecx
5719d4:	75 0c                	jne    0x5719e2
5719d6:	33 c0                	xor    %eax,%eax
5719d8:	c3                   	ret
5719d9:	8d 41 ff             	lea    -0x1(%ecx),%eax
5719dc:	25 ff 7f 00 00       	and    $0x7fff,%eax
5719e1:	c3                   	ret
5719e2:	b8 00 00 01 00       	mov    $0x10000,%eax
5719e7:	c3                   	ret