578453:	b8 18 00 00 00       	mov    $0x18,%eax
578458:	e8 1f ff ff ff       	call   0x57837c
57845d:	8b d8                	mov    %eax,%ebx
57845f:	85 c0                	test   %eax,%eax
578461:	75 0b                	jne    0x57846e
578463:	8b c6                	mov    %esi,%eax
578465:	e8 aa 02 00 00       	call   0x578714
57846a:	33 c0                	xor    %eax,%eax
57846c:	eb 6b                	jmp    0x5784d9
57846e:	89 5e 38             	mov    %ebx,0x38(%esi)
578471:	33 d2                	xor    %edx,%edx
578473:	89 53 14             	mov    %edx,0x14(%ebx)
578476:	33 c9                	xor    %ecx,%ecx
578478:	89 0b                	mov    %ecx,(%ebx)
57847a:	85 ff                	test   %edi,%edi
57847c:	7f 10                	jg     0x57848e
57847e:	c7 43 04 00 04 00 00 	movl   $0x400,0x4(%ebx)
578485:	c7 43 10 01 00 00 00 	movl   $0x1,0x10(%ebx)
57848c:	eb 08                	jmp    0x578496
57848e:	89 7b 04             	mov    %edi,0x4(%ebx)
578491:	33 c0                	xor    %eax,%eax
578493:	89 43 10             	mov    %eax,0x10(%ebx)
578496:	85 ed                	test   %ebp,%ebp
578498:	74 04                	je     0x57849e
57849a:	89 2b                	mov    %ebp,(%ebx)
57849c:	eb 11                	jmp    0x5784af
57849e:	8b 43 04             	mov    0x4(%ebx),%eax
5784a1:	e8 d6 fe ff ff       	call   0x57837c
5784a6:	89 03                	mov    %eax,(%ebx)
5784a8:	c7 43 14 01 00 00 00 	movl   $0x1,0x14(%ebx)
5784af:	8b 13                	mov    (%ebx),%edx
5784b1:	85 d2                	test   %edx,%edx
5784b3:	75 0b                	jne    0x5784c0
5784b5:	8b c6                	mov    %esi,%eax
5784b7:	e8 80 02 00 00       	call   0x57873c
5784bc:	33 c0                	xor    %eax,%eax
5784be:	eb 19                	jmp    0x5784d9
5784c0:	85 ff                	test   %edi,%edi
5784c2:	7e 09                	jle    0x5784cd
5784c4:	85 ed                	test   %ebp,%ebp
5784c6:	74 05                	je     0x5784cd
5784c8:	89 7b 08             	mov    %edi,0x8(%ebx)
5784cb:	eb 05                	jmp    0x5784d2
5784cd:	33 d2                	xor    %edx,%edx
5784cf:	89 53 08             	mov    %edx,0x8(%ebx)
5784d2:	33 c9                	xor    %ecx,%ecx
5784d4:	8b c6                	mov    %esi,%eax
5784d6:	89 4b 0c             	mov    %ecx,0xc(%ebx)
5784d9:	5d                   	pop    %ebp
5784da:	5f                   	pop    %edi
5784db:	5e                   	pop    %esi
5784dc:	5b                   	pop    %ebx
5784dd:	c3                   	ret
5784de:	90                   	nop
5784df:	90                   	nop
5784e0:	53                   	push   %ebx
5784e1:	56                   	push   %esi
5784e2:	57                   	push   %edi
5784e3:	55                   	push   %ebp
5784e4:	8b f2                	mov    %edx,%esi
5784e6:	8b e8                	mov    %eax,%ebp
5784e8:	e8 d7 fe ff ff       	call   0x5783c4
5784ed:	8b d8                	mov    %eax,%ebx
5784ef:	85 c0                	test   %eax,%eax
5784f1:	75 07                	jne    0x5784fa
5784f3:	33 c0                	xor    %eax,%eax
5784f5:	e9 ab 00 00 00       	jmp    0x5785a5
5784fa:	8b c6                	mov    %esi,%eax
5784fc:	e8 df 09 00 00       	call   0x578ee0
578501:	89 03                	mov    %eax,(%ebx)
578503:	8b 03                	mov    (%ebx),%eax
578505:	8b d0                	mov    %eax,%edx
578507:	83 e2 01             	and    $0x1,%edx
57850a:	85 d2                	test   %edx,%edx
57850c:	74 0b                	je     0x578519
57850e:	a8 02                	test   $0x2,%al
578510:	74 07                	je     0x578519
578512:	be 02 00 00 00       	mov    $0x2,%esi
578517:	eb 15                	jmp    0x57852e
578519:	85 d2                	test   %edx,%edx
57851b:	74 04                	je     0x578521
57851d:	33 f6                	xor    %esi,%esi
57851f:	eb 0d                	jmp    0x57852e
578521:	a8 02                	test   $0x2,%al
578523:	74 07                	je     0x57852c
578525:	be 01 00 00 00       	mov    $0x1,%esi
57852a:	eb 02                	jmp    0x57852e
57852c:	33 f6                	xor    %esi,%esi
57852e:	8b 03                	mov    (%ebx),%eax
578530:	a8 04                	test   $0x4,%al
578532:	74 06                	je     0x57853a
578534:	81 ce 00 08 00 00    	or     $0x800,%esi
57853a:	a8 08                	test   $0x8,%al
57853c:	74 06                	je     0x578544
57853e:	81 ce 00 80 00 00    	or     $0x8000,%esi
578544:	a8 10                	test   $0x10,%al
578546:	74 06                	je     0x57854e
578548:	81 ce 00 03 00 00    	or     $0x300,%esi
57854e:	b8 04 00 00 00       	mov    $0x4,%eax
578553:	e8 24 fe ff ff       	call   0x57837c
578558:	8b f8                	mov    %eax,%edi
57855a:	85 c0                	test   %eax,%eax
57855c:	75 0b                	jne    0x578569
57855e:	8b c3                	mov    %ebx,%eax
578560:	e8 af 01 00 00       	call   0x578714
578565:	33 c0                	xor    %eax,%eax
578567:	eb 3c                	jmp    0x5785a5
578569:	89 7b 38             	mov    %edi,0x38(%ebx)
57856c:	c7 43 34 40 29 6a 00 	movl   $0x6a2940,0x34(%ebx)
578573:	68 b6 01 00 00       	push   $0x1b6
578578:	56                   	push   %esi
578579:	55                   	push   %ebp
57857a:	e8 19 28 fe ff       	call   0x55ad98
57857f:	83 c4 0c             	add    $0xc,%esp
578582:	89 07                	mov    %eax,(%edi)
578584:	85 c0                	test   %eax,%eax
578586:	7d 0b                	jge    0x578593
578588:	8b c3                	mov    %ebx,%eax
57858a:	e8 85 01 00 00       	call   0x578714
57858f:	33 c0                	xor    %eax,%eax
578591:	eb 12                	jmp    0x5785a5
578593:	6a 00                	push   $0x0
578595:	33 c9                	xor    %ecx,%ecx
578597:	ba 02 00 00 00       	mov    $0x2,%edx
57859c:	8b c3                	mov    %ebx,%eax
57859e:	e8 9d 06 00 00       	call   0x578c40
5785a3:	8b c3                	mov    %ebx,%eax
5785a5:	5d                   	pop    %ebp
5785a6:	5f                   	pop    %edi
5785a7:	5e                   	pop    %esi
5785a8:	5b                   	pop    %ebx
5785a9:	c3                   	ret
5785aa:	90                   	nop
5785ab:	90                   	nop
5785ac:	53                   	push   %ebx
5785ad:	56                   	push   %esi
5785ae:	57                   	push   %edi
5785af:	8b f9                	mov    %ecx,%edi
5785b1:	8b f2                	mov    %edx,%esi
5785b3:	e8 0c fe ff ff       	call   0x5783c4
5785b8:	8b d8                	mov    %eax,%ebx
5785ba:	85 c0                	test   %eax,%eax
5785bc:	75 04                	jne    0x5785c2
5785be:	33 c0                	xor    %eax,%eax
5785c0:	eb 42                	jmp    0x578604
5785c2:	8b c6                	mov    %esi,%eax
5785c4:	e8 17 09 00 00       	call   0x578ee0
5785c9:	89 03                	mov    %eax,(%ebx)
5785cb:	8b 03                	mov    (%ebx),%eax
5785cd:	8b d0                	mov    %eax,%edx
5785cf:	83 e2 01             	and    $0x1,%edx
5785d2:	85 d2                	test   %edx,%edx
5785d4:	74 04                	je     0x5785da
5785d6:	a8 02                	test   $0x2,%al
5785d8:	75 06                	jne    0x5785e0
5785da:	85 d2                	test   %edx,%edx
5785dc:	75 02                	jne    0x5785e0
5785de:	a8 02                	test   $0x2,%al
5785e0:	8b 03                	mov    (%ebx),%eax
5785e2:	89 7b 38             	mov    %edi,0x38(%ebx)
5785e5:	c7 43 34 50 29 6a 00 	movl   $0x6a2950,0x34(%ebx)
5785ec:	a8 04                	test   $0x4,%al
5785ee:	a8 08                	test   $0x8,%al
5785f0:	a8 10                	test   $0x10,%al
5785f2:	8b c3                	mov    %ebx,%eax
5785f4:	33 c9                	xor    %ecx,%ecx
5785f6:	6a 00                	push   $0x0
5785f8:	ba 02 00 00 00       	mov    $0x2,%edx
5785fd:	e8 3e 06 00 00       	call   0x578c40
578602:	8b c3                	mov    %ebx,%eax
578604:	5f                   	pop    %edi
578605:	5e                   	pop    %esi
578606:	5b                   	pop    %ebx
578607:	c3                   	ret
578608:	53                   	push   %ebx
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