578609:	56                   	push   %esi
57860a:	83 c4 f0             	add    $0xfffffff0,%esp
57860d:	e8 b2 fd ff ff       	call   0x5783c4
578612:	8b d8                	mov    %eax,%ebx
578614:	85 c0                	test   %eax,%eax
578616:	75 04                	jne    0x57861c
578618:	33 c0                	xor    %eax,%eax
57861a:	eb 73                	jmp    0x57868f
57861c:	c7 03 0b 00 00 00    	movl   $0xb,(%ebx)
578622:	b8 04 00 00 00       	mov    $0x4,%eax
578627:	e8 50 fd ff ff       	call   0x57837c
57862c:	8b f0                	mov    %eax,%esi
57862e:	85 c0                	test   %eax,%eax
578630:	75 0b                	jne    0x57863d
578632:	8b c3                	mov    %ebx,%eax
578634:	e8 db 00 00 00       	call   0x578714
578639:	33 c0                	xor    %eax,%eax
57863b:	eb 52                	jmp    0x57868f
57863d:	89 73 38             	mov    %esi,0x38(%ebx)
578640:	54                   	push   %esp
578641:	e8 6a 28 fe ff       	call   0x55aeb0
578646:	59                   	pop    %ecx
578647:	68 b6 01 00 00       	push   $0x1b6
57864c:	68 02 87 00 00       	push   $0x8702
578651:	8d 54 24 08          	lea    0x8(%esp),%edx
578655:	52                   	push   %edx
578656:	e8 3d 27 fe ff       	call   0x55ad98
57865b:	83 c4 0c             	add    $0xc,%esp
57865e:	89 06                	mov    %eax,(%esi)
578660:	85 c0                	test   %eax,%eax
578662:	7d 0b                	jge    0x57866f
578664:	8b c3                	mov    %ebx,%eax
578666:	e8 a9 00 00 00       	call   0x578714
57866b:	33 c0                	xor    %eax,%eax
57866d:	eb 20                	jmp    0x57868f
57866f:	54                   	push   %esp
578670:	e8 27 25 fe ff       	call   0x55ab9c
578675:	59                   	pop    %ecx
578676:	6a 00                	push   $0x0
578678:	33 c9                	xor    %ecx,%ecx
57867a:	ba 02 00 00 00       	mov    $0x2,%edx
57867f:	8b c3                	mov    %ebx,%eax
578681:	e8 ba 05 00 00       	call   0x578c40
578686:	c7 43 34 40 29 6a 00 	movl   $0x6a2940,0x34(%ebx)
57868d:	8b c3                	mov    %ebx,%eax
57868f:	83 c4 10             	add    $0x10,%esp
578692:	5e                   	pop    %esi
578693:	5b                   	pop    %ebx
578694:	c3                   	ret
578695:	90                   	nop
578696:	90                   	nop
578697:	90                   	nop
578698:	53                   	push   %ebx
578699:	56                   	push   %esi
57869a:	57                   	push   %edi
57869b:	55                   	push   %ebp
57869c:	8b ea                	mov    %edx,%ebp
57869e:	8b f8                	mov    %eax,%edi
5786a0:	e8 1f fd ff ff       	call   0x5783c4
5786a5:	8b d8                	mov    %eax,%ebx
5786a7:	85 c0                	test   %eax,%eax
5786a9:	75 04                	jne    0x5786af
5786ab:	33 c0                	xor    %eax,%eax
5786ad:	eb 5d                	jmp    0x57870c
5786af:	8b c5                	mov    %ebp,%eax
5786b1:	e8 2a 08 00 00       	call   0x578ee0
5786b6:	8b f0                	mov    %eax,%esi
5786b8:	f7 c6 08 00 00 00    	test   $0x8,%esi
5786be:	89 33                	mov    %esi,(%ebx)
5786c0:	74 0e                	je     0x5786d0
5786c2:	68 00 80 00 00       	push   $0x8000
5786c7:	57                   	push   %edi
5786c8:	e8 d3 24 fe ff       	call   0x55aba0
5786cd:	83 c4 08             	add    $0x8,%esp
5786d0:	b8 04 00 00 00       	mov    $0x4,%eax
5786d5:	e8 a2 fc ff ff       	call   0x57837c
5786da:	8b f0                	mov    %eax,%esi
5786dc:	85 c0                	test   %eax,%eax
5786de:	75 0b                	jne    0x5786eb
5786e0:	8b c3                	mov    %ebx,%eax
5786e2:	e8 2d 00 00 00       	call   0x578714
5786e7:	33 c0                	xor    %eax,%eax
5786e9:	eb 21                	jmp    0x57870c
5786eb:	89 73 38             	mov    %esi,0x38(%ebx)
5786ee:	89 3e                	mov    %edi,(%esi)
5786f0:	6a 00                	push   $0x0
5786f2:	33 c9                	xor    %ecx,%ecx
5786f4:	ba 02 00 00 00       	mov    $0x2,%edx
5786f9:	8b c3                	mov    %ebx,%eax
5786fb:	e8 40 05 00 00       	call   0x578c40
578700:	c7 43 34 40 29 6a 00 	movl   $0x6a2940,0x34(%ebx)
578707:	83 0b 20             	orl    $0x20,(%ebx)
57870a:	8b c3                	mov    %ebx,%eax
57870c:	5d                   	pop    %ebp
57870d:	5f                   	pop    %edi
57870e:	5e                   	pop    %esi
57870f:	5b                   	pop    %ebx
578710:	c3                   	ret
578711:	90                   	nop
578712:	90                   	nop
578713:	90                   	nop
578714:	53                   	push   %ebx
578715:	8b d8                	mov    %eax,%ebx
578717:	f6 43 04 08          	testb  $0x8,0x4(%ebx)
57871b:	74 14                	je     0x578731
57871d:	8b 43 0c             	mov    0xc(%ebx),%eax
578720:	85 c0                	test   %eax,%eax
578722:	74 0d                	je     0x578731
578724:	8b 43 0c             	mov    0xc(%ebx),%eax
578727:	e8 58 fc ff ff       	call   0x578384
57872c:	33 d2                	xor    %edx,%edx
57872e:	89 53 0c             	mov    %edx,0xc(%ebx)
578731:	8b c3                	mov    %ebx,%eax
578733:	e8 4c fc ff ff       	call   0x578384
578738:	5b                   	pop    %ebx
578739:	c3                   	ret
57873a:	90                   	nop
57873b:	90                   	nop
57873c:	53                   	push   %ebx
57873d:	56                   	push   %esi
57873e:	8b d8                	mov    %eax,%ebx
578740:	8b c3                	mov    %ebx,%eax
578742:	e8 cd 05 00 00       	call   0x578d14
578747:	f6 03 20             	testb  $0x20,(%ebx)
57874a:	75 09                	jne    0x578755
57874c:	8b 73 34             	mov    0x34(%ebx),%esi
57874f:	8b 43 38             	mov    0x38(%ebx),%eax
578752:	ff 56 0c             	call   *0xc(%esi)
578755:	8b c3                	mov    %ebx,%eax
578757:	e8 b8 ff ff ff       	call   0x578714
57875c:	33 c0                	xor    %eax,%eax
57875e:	5e                   	pop    %esi
57875f:	5b                   	pop    %ebx
578760:	c3                   	ret
578761:	90                   	nop
578762:	90                   	nop
578763:	90                   	nop
578764:	53                   	push   %ebx
578765:	8b d8                	mov    %eax,%ebx
578767:	56                   	push   %esi
578768:	8b 43 18             	mov    0x18(%ebx),%eax
57876b:	8b 53 0c             	mov    0xc(%ebx),%edx
57876e:	8b 4b 14             	mov    0x14(%ebx),%ecx
578771:	2b c2                	sub    %edx,%eax
578773:	83 c1 10             	add    $0x10,%ecx
578776:	3b c1                	cmp    %ecx,%eax
578778:	7e 17                	jle    0x578791
57877a:	68 04 02 00 00       	push   $0x204
57877f:	68 bc 29 6a 00       	push   $0x6a29bc
578784:	68 70 29 6a 00       	push   $0x6a2970
578789:	e8 b2 23 fe ff       	call   0x55ab40
57878e:	83 c4 0c             	add    $0xc,%esp
578791:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578795:	75 39                	jne    0x5787d0
578797:	8b 73 40             	mov    0x40(%ebx),%esi
57879a:	85 f6                	test   %esi,%esi
57879c:	7c 10                	jl     0x5787ae
57879e:	8b 43 3c             	mov    0x3c(%ebx),%eax
5787a1:	3b f0                	cmp    %eax,%esi
5787a3:	7f 09                	jg     0x5787ae
5787a5:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
5787a9:	83 c8 ff             	or     $0xffffffff,%eax
5787ac:	eb 25                	jmp    0x5787d3
5787ae:	ff 4b 1c             	decl   0x1c(%ebx)
5787b1:	79 0e                	jns    0x5787c1
5787b3:	ba 01 00 00 00       	mov    $0x1,%edx
5787b8:	8b c3                	mov    %ebx,%eax
5787ba:	e8 69 05 00 00       	call   0x578d28
5787bf:	eb 12                	jmp    0x5787d3
5787c1:	ff 43 3c             	incl   0x3c(%ebx)
5787c4:	8b 53 18             	mov    0x18(%ebx),%edx
5787c7:	ff 43 18             	incl   0x18(%ebx)
5787ca:	33 c0                	xor    %eax,%eax
5787cc:	8a 02                	mov    (%edx),%al
5787ce:	eb 03                	jmp    0x5787d3
5787d0:	83 c8 ff             	or     $0xffffffff,%eax
5787d3:	5e                   	pop    %esi
5787d4:	5b                   	pop    %ebx
5787d5:	c3                   	ret
5787d6:	90                   	nop
5787d7:	90                   	nop
5787d8:	53                   	push   %ebx
5787d9:	8b d8                	mov    %eax,%ebx
5787db:	56                   	push   %esi
5787dc:	57                   	push   %edi
5787dd:	8b f2                	mov    %edx,%esi
5787df:	8b 53 10             	mov    0x10(%ebx),%edx
5787e2:	8b 43 18             	mov    0x18(%ebx),%eax
5787e5:	8b 4b 14             	mov    0x14(%ebx),%ecx
5787e8:	2b c2                	sub    %edx,%eax
5787ea:	3b c1                	cmp    %ecx,%eax
5787ec:	7e 17                	jle    0x578805
5787ee:	68 0a 02 00 00       	push   $0x20a
5787f3:	68 fe 29 6a 00       	push   $0x6a29fe
5787f8:	68 c9 29 6a 00       	push   $0x6a29c9
5787fd:	e8 3e 23 fe ff       	call   0x55ab40
578802:	83 c4 0c             	add    $0xc,%esp
578805:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578809:	75 44                	jne    0x57884f
57880b:	8b 7b 40             	mov    0x40(%ebx),%edi
57880e:	85 ff                	test   %edi,%edi
578810:	7c 10                	jl     0x578822
578812:	8b 43 3c             	mov    0x3c(%ebx),%eax
578815:	3b f8                	cmp    %eax,%edi
578817:	7f 09                	jg     0x578822
578819:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
57881d:	83 c8 ff             	or     $0xffffffff,%eax
578820:	eb 30                	jmp    0x578852
578822:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
578826:	ff 4b 1c             	decl   0x1c(%ebx)
578829:	79 11                	jns    0x57883c
57882b:	8b d6                	mov    %esi,%edx
57882d:	8b c3                	mov    %ebx,%eax
57882f:	81 e2 ff 00 00 00    	and    $0xff,%edx
578835:	e8 de 05 00 00       	call   0x578e18
57883a:	eb 16                	jmp    0x578852
57883c:	ff 43 3c             	incl   0x3c(%ebx)
57883f:	8b ce                	mov    %esi,%ecx
578841:	8b 43 18             	mov    0x18(%ebx),%eax
578844:	ff 43 18             	incl   0x18(%ebx)
578847:	88 08                	mov    %cl,(%eax)
578849:	33 c0                	xor    %eax,%eax
57884b:	8a c1                	mov    %cl,%al
57884d:	eb 03                	jmp    0x578852
57884f:	83 c8 ff             	or     $0xffffffff,%eax
578852:	5f                   	pop    %edi
578853:	5e                   	pop    %esi
578854:	5b                   	pop    %ebx
578855:	c3                   	ret
578856:	90                   	nop
578857:	90                   	nop
578858:	8b 48 18             	mov    0x18(%eax),%ecx
57885b:	85 c9                	test   %ecx,%ecx
57885d:	74 05                	je     0x578864
57885f:	3b 48 0c             	cmp    0xc(%eax),%ecx
578862:	75 04                	jne    0x578868
578864:	83 c8 ff             	or     $0xffffffff,%eax
578867:	c3                   	ret
578868:	83 60 08 fe          	andl   $0xfffffffe,0x8(%eax)
57886c:	ff 48 3c             	decl   0x3c(%eax)
57886f:	ff 48 18             	decl   0x18(%eax)
578872:	ff 40 1c             	incl   0x1c(%eax)
578875:	8b 40 18             	mov    0x18(%eax),%eax
578878:	88 10                	mov    %dl,(%eax)
57887a:	33 c0                	xor    %eax,%eax
57887c:	c3                   	ret
57887d:	90                   	nop
57887e:	90                   	nop
57887f:	90                   	nop
578880:	53                   	push   %ebx
578881:	56                   	push   %esi
578882:	57                   	push   %edi
578883:	55                   	push   %ebp
578884:	51                   	push   %ecx
578885:	89 0c 24             	mov    %ecx,(%esp)
578888:	8b d8                	mov    %eax,%ebx
57888a:	8b fa                	mov    %edx,%edi
57888c:	33 f6                	xor    %esi,%esi
57888e:	8b 04 24             	mov    (%esp),%eax
578891:	3b f0                	cmp    %eax,%esi
578893:	7d 5c                	jge    0x5788f1
578895:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578899:	75 3d                	jne    0x5788d8
57889b:	8b 53 40             	mov    0x40(%ebx),%edx
57889e:	85 d2                	test   %edx,%edx
5788a0:	7c 13                	jl     0x5788b5
5788a2:	8b 4b 40             	mov    0x40(%ebx),%ecx
5788a5:	8b 43 3c             	mov    0x3c(%ebx),%eax
5788a8:	3b c8                	cmp    %eax,%ecx
5788aa:	7f 09                	jg     0x5788b5
5788ac:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
5788b0:	83 cd ff             	or     $0xffffffff,%ebp
5788b3:	eb 26                	jmp    0x5788db
5788b5:	ff 4b 1c             	decl   0x1c(%ebx)
5788b8:	79 10                	jns    0x5788ca
5788ba:	ba 01 00 00 00       	mov    $0x1,%edx
5788bf:	8b c3                	mov    %ebx,%eax
5788c1:	e8 62 04 00 00       	call   0x578d28
5788c6:	8b e8                	mov    %eax,%ebp
5788c8:	eb 11                	jmp    0x5788db
5788ca:	ff 43 3c             	incl   0x3c(%ebx)
5788cd:	8b 43 18             	mov    0x18(%ebx),%eax
5788d0:	ff 43 18             	incl   0x18(%ebx)
5788d3:	0f b6 28             	movzbl (%eax),%ebp
5788d6:	eb 03                	jmp    0x5788db
5788d8:	83 cd ff             	or     $0xffffffff,%ebp
5788db:	83 fd ff             	cmp    $0xffffffff,%ebp
5788de:	75 04                	jne    0x5788e4
5788e0:	8b c6                	mov    %esi,%eax
5788e2:	eb 0f                	jmp    0x5788f3
5788e4:	8b d5                	mov    %ebp,%edx
5788e6:	88 17                	mov    %dl,(%edi)
5788e8:	47                   	inc    %edi
5788e9:	46                   	inc    %esi
5788ea:	8b 0c 24             	mov    (%esp),%ecx
5788ed:	3b f1                	cmp    %ecx,%esi
5788ef:	7c a4                	jl     0x578895
5788f1:	8b c6                	mov    %esi,%eax
5788f3:	5a                   	pop    %edx
5788f4:	5d                   	pop    %ebp
5788f5:	5f                   	pop    %edi
5788f6:	5e                   	pop    %esi
5788f7:	5b                   	pop    %ebx
5788f8:	c3                   	ret
5788f9:	90                   	nop
5788fa:	90                   	nop
5788fb:	90                   	nop
5788fc:	53                   	push   %ebx
5788fd:	56                   	push   %esi
5788fe:	57                   	push   %edi
5788ff:	55                   	push   %ebp
578900:	51                   	push   %ecx
578901:	89 0c 24             	mov    %ecx,(%esp)
578904:	8b d8                	mov    %eax,%ebx
578906:	8b f2                	mov    %edx,%esi
578908:	33 ff                	xor    %edi,%edi
57890a:	8b 04 24             	mov    (%esp),%eax
57890d:	3b f8                	cmp    %eax,%edi
57890f:	7d 5b                	jge    0x57896c
578911:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
578915:	75 42                	jne    0x578959
578917:	8b 6b 40             	mov    0x40(%ebx),%ebp
57891a:	85 ed                	test   %ebp,%ebp
57891c:	7c 10                	jl     0x57892e
57891e:	8b 43 3c             	mov    0x3c(%ebx),%eax
578921:	3b e8                	cmp    %eax,%ebp
578923:	7f 09                	jg     0x57892e
578925:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
578929:	83 ca ff             	or     $0xffffffff,%edx
57892c:	eb 2e                	jmp    0x57895c
57892e:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
578932:	ff 4b 1c             	decl   0x1c(%ebx)
578935:	79 0f                	jns    0x578946
578937:	33 d2                	xor    %edx,%edx
578939:	8b c3                	mov    %ebx,%eax
57893b:	8a 16                	mov    (%esi),%dl
57893d:	e8 d6 04 00 00       	call   0x578e18
578942:	8b d0                	mov    %eax,%edx
578944:	eb 16                	jmp    0x57895c
578946:	ff 43 3c             	incl   0x3c(%ebx)
578949:	8b 43 18             	mov    0x18(%ebx),%eax
57894c:	ff 43 18             	incl   0x18(%ebx)
57894f:	8a 0e                	mov    (%esi),%cl
578951:	88 08                	mov    %cl,(%eax)
578953:	33 d2                	xor    %edx,%edx
578955:	8a d1                	mov    %cl,%dl
578957:	eb 03                	jmp    0x57895c
578959:	83 ca ff             	or     $0xffffffff,%edx
57895c:	42                   	inc    %edx
57895d:	75 04                	jne    0x578963