574716:	8b d0                	mov    %eax,%edx
574718:	eb 18                	jmp    0x574732
57471a:	ff 43 3c             	incl   0x3c(%ebx)
57471d:	8b c6                	mov    %esi,%eax
57471f:	8b 4b 18             	mov    0x18(%ebx),%ecx
574722:	24 ff                	and    $0xff,%al
574724:	ff 43 18             	incl   0x18(%ebx)
574727:	33 d2                	xor    %edx,%edx
574729:	8a d0                	mov    %al,%dl
57472b:	88 01                	mov    %al,(%ecx)
57472d:	eb 03                	jmp    0x574732
57472f:	83 ca ff             	or     $0xffffffff,%edx
574732:	42                   	inc    %edx
574733:	75 05                	jne    0x57473a
574735:	83 c8 ff             	or     $0xffffffff,%eax
574738:	eb 02                	jmp    0x57473c
57473a:	33 c0                	xor    %eax,%eax
57473c:	5f                   	pop    %edi
57473d:	5e                   	pop    %esi
57473e:	5b                   	pop    %ebx
57473f:	c3                   	ret
574740:	55                   	push   %ebp
574741:	8b ec                	mov    %esp,%ebp
574743:	53                   	push   %ebx
574744:	8b d8                	mov    %eax,%ebx
574746:	8b 45 0c             	mov    0xc(%ebp),%eax
574749:	33 d2                	xor    %edx,%edx
57474b:	8b d0                	mov    %eax,%edx
57474d:	8b c3                	mov    %ebx,%eax
57474f:	83 e2 ff             	and    $0xffffffff,%edx
574752:	e8 61 fe ff ff       	call   0x5745b8
574757:	85 c0                	test   %eax,%eax
574759:	75 13                	jne    0x57476e
57475b:	8b 45 08             	mov    0x8(%ebp),%eax
57475e:	8b d0                	mov    %eax,%edx
574760:	8b c3                	mov    %ebx,%eax
574762:	83 e2 ff             	and    $0xffffffff,%edx
574765:	e8 4e fe ff ff       	call   0x5745b8
57476a:	85 c0                	test   %eax,%eax
57476c:	74 05                	je     0x574773
57476e:	83 c8 ff             	or     $0xffffffff,%eax
574771:	eb 02                	jmp    0x574775
574773:	33 c0                	xor    %eax,%eax
574775:	5b                   	pop    %ebx
574776:	5d                   	pop    %ebp
574777:	c2 08 00             	ret    $0x8
57477a:	90                   	nop
57477b:	90                   	nop
57477c:	ba 6c 1c 6a 00       	mov    $0x6a1c6c,%edx
574781:	eb 0c                	jmp    0x57478f
574783:	8b 0a                	mov    (%edx),%ecx
574785:	3b c1                	cmp    %ecx,%eax
574787:	75 03                	jne    0x57478c
574789:	8b c2                	mov    %edx,%eax
57478b:	c3                   	ret
57478c:	83 c2 20             	add    $0x20,%edx
57478f:	8b 4a 04             	mov    0x4(%edx),%ecx
574792:	85 c9                	test   %ecx,%ecx
574794:	75 ed                	jne    0x574783
574796:	b8 ec 1e 6a 00       	mov    $0x6a1eec,%eax
57479b:	c3                   	ret
57479c:	83 c0 10             	add    $0x10,%eax
57479f:	8b 50 04             	mov    0x4(%eax),%edx
5747a2:	85 d2                	test   %edx,%edx
5747a4:	74 07                	je     0x5747ad
5747a6:	8b c2                	mov    %edx,%eax
5747a8:	e8 d7 3b 00 00       	call   0x578384
5747ad:	c3                   	ret
5747ae:	90                   	nop
5747af:	90                   	nop
5747b0:	53                   	push   %ebx
5747b1:	56                   	push   %esi
5747b2:	57                   	push   %edi
5747b3:	55                   	push   %ebp
5747b4:	8b 58 0c             	mov    0xc(%eax),%ebx
5747b7:	8d 68 10             	lea    0x10(%eax),%ebp
5747ba:	83 eb 08             	sub    $0x8,%ebx
5747bd:	8b fa                	mov    %edx,%edi
5747bf:	c1 eb 02             	shr    $0x2,%ebx
5747c2:	0f b7 c3             	movzwl %bx,%eax
5747c5:	66 89 5d 00          	mov    %bx,0x0(%ebp)
5747c9:	c1 e0 02             	shl    $0x2,%eax
5747cc:	e8 ab 3b 00 00       	call   0x57837c
5747d1:	89 45 04             	mov    %eax,0x4(%ebp)
5747d4:	85 c0                	test   %eax,%eax
5747d6:	75 05                	jne    0x5747dd
5747d8:	83 c8 ff             	or     $0xffffffff,%eax
5747db:	eb 47                	jmp    0x574824
5747dd:	33 f6                	xor    %esi,%esi
5747df:	eb 39                	jmp    0x57481a
5747e1:	8b c6                	mov    %esi,%eax
5747e3:	8b 5d 04             	mov    0x4(%ebp),%ebx
5747e6:	c1 e0 02             	shl    $0x2,%eax
5747e9:	03 d8                	add    %eax,%ebx
5747eb:	8b c7                	mov    %edi,%eax
5747ed:	8b d3                	mov    %ebx,%edx
5747ef:	e8 5c fa ff ff       	call   0x574250
5747f4:	85 c0                	test   %eax,%eax
5747f6:	75 1c                	jne    0x574814
5747f8:	8d 53 02             	lea    0x2(%ebx),%edx
5747fb:	8b c7                	mov    %edi,%eax
5747fd:	e8 ea f9 ff ff       	call   0x5741ec
574802:	85 c0                	test   %eax,%eax
574804:	75 0e                	jne    0x574814
574806:	8d 53 03             	lea    0x3(%ebx),%edx
574809:	8b c7                	mov    %edi,%eax
57480b:	e8 dc f9 ff ff       	call   0x5741ec
574810:	85 c0                	test   %eax,%eax
574812:	74 05                	je     0x574819
574814:	83 c8 ff             	or     $0xffffffff,%eax
574817:	eb 0b                	jmp    0x574824
574819:	46                   	inc    %esi
57481a:	0f b7 55 00          	movzwl 0x0(%ebp),%edx
57481e:	3b f2                	cmp    %edx,%esi
574820:	7c bf                	jl     0x5747e1
574822:	33 c0                	xor    %eax,%eax
574824:	5d                   	pop    %ebp
574825:	5f                   	pop    %edi
574826:	5e                   	pop    %esi
574827:	5b                   	pop    %ebx
574828:	c3                   	ret
574829:	90                   	nop
57482a:	90                   	nop
57482b:	90                   	nop
57482c:	83 c8 ff             	or     $0xffffffff,%eax
57482f:	c3                   	ret
574830:	53                   	push   %ebx
574831:	56                   	push   %esi
574832:	8d 70 10             	lea    0x10(%eax),%esi
574835:	0f b7 06             	movzwl (%esi),%eax
574838:	50                   	push   %eax
574839:	68 f0 1f 6a 00       	push   $0x6a1ff0
57483e:	68 80 2e 6a 00       	push   $0x6a2e80
574843:	e8 84 58 00 00       	call   0x57a0cc
574848:	83 c4 0c             	add    $0xc,%esp
57484b:	33 db                	xor    %ebx,%ebx
57484d:	eb 2d                	jmp    0x57487c
57484f:	8b 46 04             	mov    0x4(%esi),%eax
574852:	8b d3                	mov    %ebx,%edx
574854:	c1 e2 02             	shl    $0x2,%edx
574857:	03 c2                	add    %edx,%eax
574859:	33 c9                	xor    %ecx,%ecx
57485b:	8a 48 03             	mov    0x3(%eax),%cl
57485e:	51                   	push   %ecx
57485f:	33 d2                	xor    %edx,%edx
574861:	8a 50 02             	mov    0x2(%eax),%dl
574864:	52                   	push   %edx
574865:	0f b7 00             	movzwl (%eax),%eax
574868:	50                   	push   %eax
574869:	68 ff 1f 6a 00       	push   $0x6a1fff
57486e:	68 80 2e 6a 00       	push   $0x6a2e80
574873:	e8 54 58 00 00       	call   0x57a0cc
574878:	83 c4 14             	add    $0x14,%esp
57487b:	43                   	inc    %ebx
57487c:	0f b7 0e             	movzwl (%esi),%ecx
57487f:	3b d9                	cmp    %ecx,%ebx
574881:	7c cc                	jl     0x57484f
574883:	5e                   	pop    %esi
574884:	5b                   	pop    %ebx
574885:	c3                   	ret
574886:	90                   	nop
574887:	90                   	nop
574888:	83 c0 10             	add    $0x10,%eax
57488b:	8b 50 04             	mov    0x4(%eax),%edx
57488e:	85 d2                	test   %edx,%edx
574890:	74 07                	je     0x574899
574892:	8b c2                	mov    %edx,%eax
574894:	e8 eb 3a 00 00       	call   0x578384
574899:	c3                   	ret
57489a:	90                   	nop
57489b:	90                   	nop
57489c:	53                   	push   %ebx
57489d:	56                   	push   %esi
57489e:	57                   	push   %edi
57489f:	55                   	push   %ebp
5748a0:	83 c4 f8             	add    $0xfffffff8,%esp
5748a3:	8b ea                	mov    %edx,%ebp
5748a5:	89 04 24             	mov    %eax,(%esp)
5748a8:	8b 1c 24             	mov    (%esp),%ebx
5748ab:	83 c3 10             	add    $0x10,%ebx
5748ae:	33 c0                	xor    %eax,%eax
5748b0:	89 43 04             	mov    %eax,0x4(%ebx)
5748b3:	8b d3                	mov    %ebx,%edx
5748b5:	8b c5                	mov    %ebp,%eax
5748b7:	e8 94 f9 ff ff       	call   0x574250
5748bc:	85 c0                	test   %eax,%eax
5748be:	75 0e                	jne    0x5748ce
5748c0:	8d 53 02             	lea    0x2(%ebx),%edx
5748c3:	8b c5                	mov    %ebp,%eax
5748c5:	e8 22 f9 ff ff       	call   0x5741ec
5748ca:	85 c0                	test   %eax,%eax
5748cc:	74 08                	je     0x5748d6
5748ce:	83 c8 ff             	or     $0xffffffff,%eax
5748d1:	e9 be 00 00 00       	jmp    0x574994
5748d6:	0f b7 33             	movzwl (%ebx),%esi
5748d9:	33 c0                	xor    %eax,%eax
5748db:	8a 43 02             	mov    0x2(%ebx),%al
5748de:	0f af f0             	imul   %eax,%esi
5748e1:	8b c6                	mov    %esi,%eax
5748e3:	c1 e0 02             	shl    $0x2,%eax
5748e6:	e8 91 3a 00 00       	call   0x57837c
5748eb:	89 43 04             	mov    %eax,0x4(%ebx)
5748ee:	85 c0                	test   %eax,%eax
5748f0:	75 08                	jne    0x5748fa
5748f2:	83 c8 ff             	or     $0xffffffff,%eax
5748f5:	e9 9a 00 00 00       	jmp    0x574994
5748fa:	33 c0                	xor    %eax,%eax
5748fc:	8a 43 02             	mov    0x2(%ebx),%al
5748ff:	e8 78 3a 00 00       	call   0x57837c
574904:	89 43 08             	mov    %eax,0x8(%ebx)
574907:	85 c0                	test   %eax,%eax
574909:	75 08                	jne    0x574913
57490b:	83 c8 ff             	or     $0xffffffff,%eax
57490e:	e9 81 00 00 00       	jmp    0x574994
574913:	33 ff                	xor    %edi,%edi
574915:	eb 16                	jmp    0x57492d
574917:	8b 53 08             	mov    0x8(%ebx),%edx
57491a:	8b c5                	mov    %ebp,%eax
57491c:	03 d7                	add    %edi,%edx
57491e:	e8 c9 f8 ff ff       	call   0x5741ec
574923:	85 c0                	test   %eax,%eax
574925:	74 05                	je     0x57492c
574927:	83 c8 ff             	or     $0xffffffff,%eax
57492a:	eb 68                	jmp    0x574994
57492c:	47                   	inc    %edi
57492d:	33 d2                	xor    %edx,%edx
57492f:	8a 53 02             	mov    0x2(%ebx),%dl
574932:	3b fa                	cmp    %edx,%edi
574934:	7c e1                	jl     0x574917
574936:	33 ff                	xor    %edi,%edi
574938:	eb 51                	jmp    0x57498b
57493a:	33 f6                	xor    %esi,%esi
57493c:	eb 43                	jmp    0x574981
57493e:	8d 54 24 04          	lea    0x4(%esp),%edx
574942:	52                   	push   %edx
574943:	8b 43 08             	mov    0x8(%ebx),%eax
574946:	8b 4b 08             	mov    0x8(%ebx),%ecx
574949:	8a 04 30             	mov    (%eax,%esi,1),%al
57494c:	a8 80                	test   $0x80,%al
57494e:	0f 95 c2             	setne  %dl
574951:	33 c9                	xor    %ecx,%ecx
574953:	83 e2 01             	and    $0x1,%edx
574956:	8a c8                	mov    %al,%cl
574958:	8b c5                	mov    %ebp,%eax
57495a:	83 e1 7f             	and    $0x7f,%ecx
57495d:	41                   	inc    %ecx
57495e:	e8 99 00 00 00       	call   0x5749fc
574963:	85 c0                	test   %eax,%eax
574965:	74 05                	je     0x57496c
574967:	83 c8 ff             	or     $0xffffffff,%eax
57496a:	eb 28                	jmp    0x574994
57496c:	33 d2                	xor    %edx,%edx
57496e:	8b 4b 04             	mov    0x4(%ebx),%ecx
574971:	8a 53 02             	mov    0x2(%ebx),%dl
574974:	8b 44 24 04          	mov    0x4(%esp),%eax
574978:	0f af d7             	imul   %edi,%edx
57497b:	03 d6                	add    %esi,%edx
57497d:	46                   	inc    %esi
57497e:	89 04 91             	mov    %eax,(%ecx,%edx,4)
574981:	33 d2                	xor    %edx,%edx
574983:	8a 53 02             	mov    0x2(%ebx),%dl
574986:	3b f2                	cmp    %edx,%esi
574988:	7c b4                	jl     0x57493e
57498a:	47                   	inc    %edi
57498b:	0f b7 0b             	movzwl (%ebx),%ecx
57498e:	3b f9                	cmp    %ecx,%edi
574990:	7c a8                	jl     0x57493a
574992:	33 c0                	xor    %eax,%eax
574994:	59                   	pop    %ecx
574995:	5a                   	pop    %edx
574996:	5d                   	pop    %ebp
574997:	5f                   	pop    %edi
574998:	5e                   	pop    %esi
574999:	5b                   	pop    %ebx
57499a:	c3                   	ret
57499b:	90                   	nop
57499c:	83 c8 ff             	or     $0xffffffff,%eax
57499f:	c3                   	ret
5749a0:	53                   	push   %ebx
5749a1:	56                   	push   %esi
5749a2:	8d 70 10             	lea    0x10(%eax),%esi
5749a5:	57                   	push   %edi
5749a6:	55                   	push   %ebp
5749a7:	33 c0                	xor    %eax,%eax
5749a9:	8a 46 02             	mov    0x2(%esi),%al
5749ac:	8b ea                	mov    %edx,%ebp
5749ae:	50                   	push   %eax
5749af:	0f b7 16             	movzwl (%esi),%edx
5749b2:	52                   	push   %edx
5749b3:	68 1b 20 6a 00       	push   $0x6a201b
5749b8:	55                   	push   %ebp
5749b9:	e8 0e 57 00 00       	call   0x57a0cc
5749be:	83 c4 10             	add    $0x10,%esp
5749c1:	33 ff                	xor    %edi,%edi
5749c3:	eb 2a                	jmp    0x5749ef
5749c5:	33 db                	xor    %ebx,%ebx
5749c7:	eb 1c                	jmp    0x5749e5
5749c9:	f7 ef                	imul   %edi
5749cb:	03 c3                	add    %ebx,%eax
5749cd:	8b 56 04             	mov    0x4(%esi),%edx
5749d0:	8b 04 82             	mov    (%edx,%eax,4),%eax
5749d3:	50                   	push   %eax
5749d4:	53                   	push   %ebx
5749d5:	57                   	push   %edi
5749d6:	68 34 20 6a 00       	push   $0x6a2034
5749db:	55                   	push   %ebp
5749dc:	e8 eb 56 00 00       	call   0x57a0cc
5749e1:	83 c4 14             	add    $0x14,%esp
5749e4:	43                   	inc    %ebx
5749e5:	33 c0                	xor    %eax,%eax
5749e7:	8a 46 02             	mov    0x2(%esi),%al
5749ea:	3b d8                	cmp    %eax,%ebx
5749ec:	7c db                	jl     0x5749c9
5749ee:	47                   	inc    %edi
5749ef:	0f b7 16             	movzwl (%esi),%edx
5749f2:	3b fa                	cmp    %edx,%edi
5749f4:	7c cf                	jl     0x5749c5
5749f6:	5d                   	pop    %ebp
5749f7:	5f                   	pop    %edi
5749f8:	5e                   	pop    %esi
5749f9:	5b                   	pop    %ebx
5749fa:	c3                   	ret
5749fb:	90                   	nop
5749fc:	55                   	push   %ebp
5749fd:	8b ec                	mov    %esp,%ebp
5749ff:	83 c4 f0             	add    $0xfffffff0,%esp
574a02:	53                   	push   %ebx
574a03:	56                   	push   %esi
574a04:	57                   	push   %edi
574a05:	89 4d f8             	mov    %ecx,-0x8(%ebp)
574a08:	89 55 fc             	mov    %edx,-0x4(%ebp)
574a0b:	8b d8                	mov    %eax,%ebx
574a0d:	8b 45 f8             	mov    -0x8(%ebp),%eax
574a10:	83 c0 07             	add    $0x7,%eax
574a13:	85 c0                	test   %eax,%eax
574a15:	79 03                	jns    0x574a1a
574a17:	83 c0 07             	add    $0x7,%eax
574a1a:	c1 f8 03             	sar    $0x3,%eax
574a1d:	89 45 f0             	mov    %eax,-0x10(%ebp)
574a20:	33 f6                	xor    %esi,%esi
574a22:	33 ff                	xor    %edi,%edi
574a24:	8b 45 f0             	mov    -0x10(%ebp),%eax
574a27:	3b f8                	cmp    %eax,%edi
574a29:	7d 62                	jge    0x574a8d
574a2b:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
574a2f:	75 3e                	jne    0x574a6f
574a31:	8b 53 40             	mov    0x40(%ebx),%edx
574a34:	85 d2                	test   %edx,%edx
574a36:	7c 13                	jl     0x574a4b
574a38:	8b 4b 40             	mov    0x40(%ebx),%ecx