57745f:	33 c0                	xor    %eax,%eax
577461:	5d                   	pop    %ebp
577462:	5f                   	pop    %edi
577463:	5e                   	pop    %esi
577464:	5b                   	pop    %ebx
577465:	c3                   	ret
577466:	90                   	nop
577467:	90                   	nop
577468:	83 c0 08             	add    $0x8,%eax
57746b:	8b 50 04             	mov    0x4(%eax),%edx
57746e:	85 d2                	test   %edx,%edx
577470:	74 07                	je     0x577479
577472:	8b c2                	mov    %edx,%eax
577474:	e8 0b 0f 00 00       	call   0x578384
577479:	c3                   	ret
57747a:	90                   	nop
57747b:	90                   	nop
57747c:	53                   	push   %ebx
57747d:	56                   	push   %esi
57747e:	57                   	push   %edi
57747f:	8b f8                	mov    %eax,%edi
577481:	55                   	push   %ebp
577482:	8b e9                	mov    %ecx,%ebp
577484:	8d 5f 08             	lea    0x8(%edi),%ebx
577487:	8b c5                	mov    %ebp,%eax
577489:	8b d3                	mov    %ebx,%edx
57748b:	e8 98 02 00 00       	call   0x577728
577490:	85 c0                	test   %eax,%eax
577492:	74 05                	je     0x577499
577494:	83 c8 ff             	or     $0xffffffff,%eax
577497:	eb 49                	jmp    0x5774e2
577499:	66 8b 77 02          	mov    0x2(%edi),%si
57749d:	66 81 c6 fe ff       	add    $0xfffe,%si
5774a2:	66 89 73 02          	mov    %si,0x2(%ebx)
5774a6:	66 85 f6             	test   %si,%si
5774a9:	76 30                	jbe    0x5774db
5774ab:	0f b7 c6             	movzwl %si,%eax
5774ae:	e8 c9 0e 00 00       	call   0x57837c
5774b3:	8b f8                	mov    %eax,%edi
5774b5:	89 7b 04             	mov    %edi,0x4(%ebx)
5774b8:	85 ff                	test   %edi,%edi
5774ba:	75 05                	jne    0x5774c1
5774bc:	83 c8 ff             	or     $0xffffffff,%eax
5774bf:	eb 21                	jmp    0x5774e2
5774c1:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
5774c5:	8b d7                	mov    %edi,%edx
5774c7:	8b c5                	mov    %ebp,%eax
5774c9:	e8 b2 13 00 00       	call   0x578880
5774ce:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
5774d2:	3b c2                	cmp    %edx,%eax
5774d4:	74 0a                	je     0x5774e0
5774d6:	83 c8 ff             	or     $0xffffffff,%eax
5774d9:	eb 07                	jmp    0x5774e2
5774db:	33 d2                	xor    %edx,%edx
5774dd:	89 53 04             	mov    %edx,0x4(%ebx)
5774e0:	33 c0                	xor    %eax,%eax
5774e2:	5d                   	pop    %ebp
5774e3:	5f                   	pop    %edi
5774e4:	5e                   	pop    %esi
5774e5:	5b                   	pop    %ebx
5774e6:	c3                   	ret
5774e7:	90                   	nop
5774e8:	53                   	push   %ebx
5774e9:	8d 58 08             	lea    0x8(%eax),%ebx
5774ec:	56                   	push   %esi
5774ed:	8b f1                	mov    %ecx,%esi
5774ef:	66 8b 13             	mov    (%ebx),%dx
5774f2:	8b c6                	mov    %esi,%eax
5774f4:	e8 f3 02 00 00       	call   0x5777ec
5774f9:	85 c0                	test   %eax,%eax
5774fb:	74 06                	je     0x577503
5774fd:	83 c8 ff             	or     $0xffffffff,%eax
577500:	5e                   	pop    %esi
577501:	5b                   	pop    %ebx
577502:	c3                   	ret
577503:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
577507:	8b 53 04             	mov    0x4(%ebx),%edx
57750a:	8b c6                	mov    %esi,%eax
57750c:	e8 eb 13 00 00       	call   0x5788fc
577511:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
577515:	3b c2                	cmp    %edx,%eax
577517:	74 06                	je     0x57751f
577519:	83 c8 ff             	or     $0xffffffff,%eax
57751c:	5e                   	pop    %esi
57751d:	5b                   	pop    %ebx
57751e:	c3                   	ret
57751f:	33 c0                	xor    %eax,%eax
577521:	5e                   	pop    %esi
577522:	5b                   	pop    %ebx
577523:	c3                   	ret
577524:	53                   	push   %ebx
577525:	56                   	push   %esi
577526:	8d 70 08             	lea    0x8(%eax),%esi
577529:	57                   	push   %edi
57752a:	55                   	push   %ebp
57752b:	8b ea                	mov    %edx,%ebp
57752d:	0f b7 06             	movzwl (%esi),%eax
577530:	50                   	push   %eax
577531:	68 61 28 6a 00       	push   $0x6a2861
577536:	55                   	push   %ebp
577537:	e8 90 2b 00 00       	call   0x57a0cc
57753c:	83 c4 0c             	add    $0xc,%esp
57753f:	bf 01 00 00 00       	mov    $0x1,%edi
577544:	33 db                	xor    %ebx,%ebx
577546:	eb 18                	jmp    0x577560
577548:	8b 46 04             	mov    0x4(%esi),%eax
57754b:	33 d2                	xor    %edx,%edx
57754d:	8a 14 18             	mov    (%eax,%ebx,1),%dl
577550:	52                   	push   %edx
577551:	e8 0a 3b fe ff       	call   0x55b060
577556:	59                   	pop    %ecx
577557:	85 c0                	test   %eax,%eax
577559:	75 04                	jne    0x57755f
57755b:	33 ff                	xor    %edi,%edi
57755d:	eb 09                	jmp    0x577568
57755f:	43                   	inc    %ebx
577560:	0f b7 46 02          	movzwl 0x2(%esi),%eax
577564:	3b d8                	cmp    %eax,%ebx
577566:	7c e0                	jl     0x577548
577568:	85 ff                	test   %edi,%edi
57756a:	74 30                	je     0x57759c
57756c:	68 6e 28 6a 00       	push   $0x6a286e
577571:	55                   	push   %ebp
577572:	e8 55 2b 00 00       	call   0x57a0cc
577577:	83 c4 08             	add    $0x8,%esp
57757a:	55                   	push   %ebp
57757b:	0f b7 56 02          	movzwl 0x2(%esi),%edx
57757f:	52                   	push   %edx
577580:	6a 01                	push   $0x1
577582:	8b 4e 04             	mov    0x4(%esi),%ecx
577585:	51                   	push   %ecx
577586:	e8 55 39 fe ff       	call   0x55aee0
57758b:	83 c4 10             	add    $0x10,%esp
57758e:	68 76 28 6a 00       	push   $0x6a2876
577593:	55                   	push   %ebp
577594:	e8 33 2b 00 00       	call   0x57a0cc
577599:	83 c4 08             	add    $0x8,%esp
57759c:	33 c0                	xor    %eax,%eax
57759e:	5d                   	pop    %ebp
57759f:	5f                   	pop    %edi
5775a0:	5e                   	pop    %esi
5775a1:	5b                   	pop    %ebx
5775a2:	c3                   	ret
5775a3:	90                   	nop
5775a4:	83 c0 08             	add    $0x8,%eax
5775a7:	8b 10                	mov    (%eax),%edx
5775a9:	85 d2                	test   %edx,%edx
5775ab:	74 07                	je     0x5775b4
5775ad:	8b c2                	mov    %edx,%eax
5775af:	e8 d0 0d 00 00       	call   0x578384
5775b4:	c3                   	ret
5775b5:	90                   	nop
5775b6:	90                   	nop
5775b7:	90                   	nop
5775b8:	53                   	push   %ebx
5775b9:	56                   	push   %esi
5775ba:	57                   	push   %edi
5775bb:	8b f0                	mov    %eax,%esi
5775bd:	55                   	push   %ebp
5775be:	51                   	push   %ecx
5775bf:	89 0c 24             	mov    %ecx,(%esp)
5775c2:	8d 5e 08             	lea    0x8(%esi),%ebx
5775c5:	66 8b 7e 02          	mov    0x2(%esi),%di
5775c9:	66 85 ff             	test   %di,%di
5775cc:	76 41                	jbe    0x57760f
5775ce:	0f b7 c7             	movzwl %di,%eax
5775d1:	e8 a6 0d 00 00       	call   0x57837c
5775d6:	8b e8                	mov    %eax,%ebp
5775d8:	89 2b                	mov    %ebp,(%ebx)
5775da:	85 ed                	test   %ebp,%ebp
5775dc:	75 05                	jne    0x5775e3
5775de:	83 c8 ff             	or     $0xffffffff,%eax
5775e1:	eb 38                	jmp    0x57761b
5775e3:	0f b7 4e 02          	movzwl 0x2(%esi),%ecx
5775e7:	8b d5                	mov    %ebp,%edx
5775e9:	8b 04 24             	mov    (%esp),%eax
5775ec:	e8 8f 12 00 00       	call   0x578880
5775f1:	0f b7 56 02          	movzwl 0x2(%esi),%edx
5775f5:	3b c2                	cmp    %edx,%eax
5775f7:	74 0c                	je     0x577605
5775f9:	8b 03                	mov    (%ebx),%eax
5775fb:	e8 84 0d 00 00       	call   0x578384
577600:	83 c8 ff             	or     $0xffffffff,%eax
577603:	eb 16                	jmp    0x57761b
577605:	66 8b 56 02          	mov    0x2(%esi),%dx
577609:	66 89 53 04          	mov    %dx,0x4(%ebx)
57760d:	eb 0a                	jmp    0x577619
57760f:	33 c9                	xor    %ecx,%ecx
577611:	89 0b                	mov    %ecx,(%ebx)
577613:	66 c7 43 04 00 00    	movw   $0x0,0x4(%ebx)
577619:	33 c0                	xor    %eax,%eax
57761b:	5a                   	pop    %edx
57761c:	5d                   	pop    %ebp
57761d:	5f                   	pop    %edi
57761e:	5e                   	pop    %esi
57761f:	5b                   	pop    %ebx
577620:	c3                   	ret
577621:	90                   	nop
577622:	90                   	nop
577623:	90                   	nop
577624:	83 c8 ff             	or     $0xffffffff,%eax
577627:	c3                   	ret
577628:	53                   	push   %ebx
577629:	56                   	push   %esi
57762a:	57                   	push   %edi
57762b:	8b fa                	mov    %edx,%edi
57762d:	8d 70 08             	lea    0x8(%eax),%esi
577630:	33 db                	xor    %ebx,%ebx
577632:	eb 17                	jmp    0x57764b
577634:	8b 06                	mov    (%esi),%eax
577636:	33 d2                	xor    %edx,%edx
577638:	8a 14 18             	mov    (%eax,%ebx,1),%dl
57763b:	52                   	push   %edx
57763c:	68 78 28 6a 00       	push   $0x6a2878
577641:	57                   	push   %edi
577642:	e8 85 2a 00 00       	call   0x57a0cc
577647:	83 c4 0c             	add    $0xc,%esp
57764a:	43                   	inc    %ebx
57764b:	0f b7 4e 04          	movzwl 0x4(%esi),%ecx
57764f:	3b d9                	cmp    %ecx,%ebx
577651:	7c e1                	jl     0x577634
577653:	33 c0                	xor    %eax,%eax
577655:	5f                   	pop    %edi
577656:	5e                   	pop    %esi
577657:	5b                   	pop    %ebx
577658:	c3                   	ret
577659:	90                   	nop
57765a:	90                   	nop
57765b:	90                   	nop
57765c:	53                   	push   %ebx
57765d:	8b d8                	mov    %eax,%ebx
57765f:	56                   	push   %esi
577660:	57                   	push   %edi
577661:	55                   	push   %ebp
577662:	8b fa                	mov    %edx,%edi
577664:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577668:	75 3a                	jne    0x5776a4
57766a:	8b 73 40             	mov    0x40(%ebx),%esi
57766d:	85 f6                	test   %esi,%esi
57766f:	7c 10                	jl     0x577681
577671:	8b 43 3c             	mov    0x3c(%ebx),%eax
577674:	3b f0                	cmp    %eax,%esi
577676:	7f 09                	jg     0x577681
577678:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
57767c:	83 cd ff             	or     $0xffffffff,%ebp
57767f:	eb 26                	jmp    0x5776a7
577681:	ff 4b 1c             	decl   0x1c(%ebx)
577684:	79 10                	jns    0x577696
577686:	ba 01 00 00 00       	mov    $0x1,%edx
57768b:	8b c3                	mov    %ebx,%eax
57768d:	e8 96 16 00 00       	call   0x578d28
577692:	8b e8                	mov    %eax,%ebp
577694:	eb 11                	jmp    0x5776a7
577696:	ff 43 3c             	incl   0x3c(%ebx)
577699:	8b 43 18             	mov    0x18(%ebx),%eax
57769c:	ff 43 18             	incl   0x18(%ebx)
57769f:	0f b6 28             	movzbl (%eax),%ebp
5776a2:	eb 03                	jmp    0x5776a7
5776a4:	83 cd ff             	or     $0xffffffff,%ebp
5776a7:	83 fd ff             	cmp    $0xffffffff,%ebp
5776aa:	75 05                	jne    0x5776b1
5776ac:	83 c8 ff             	or     $0xffffffff,%eax
5776af:	eb 0a                	jmp    0x5776bb
5776b1:	85 ff                	test   %edi,%edi
5776b3:	74 04                	je     0x5776b9
5776b5:	8b d5                	mov    %ebp,%edx
5776b7:	88 17                	mov    %dl,(%edi)
5776b9:	33 c0                	xor    %eax,%eax
5776bb:	5d                   	pop    %ebp
5776bc:	5f                   	pop    %edi
5776bd:	5e                   	pop    %esi
5776be:	5b                   	pop    %ebx
5776bf:	c3                   	ret
5776c0:	53                   	push   %ebx
5776c1:	56                   	push   %esi
5776c2:	8b f0                	mov    %eax,%esi
5776c4:	57                   	push   %edi
5776c5:	8b da                	mov    %edx,%ebx
5776c7:	f6 46 08 07          	testb  $0x7,0x8(%esi)
5776cb:	75 4a                	jne    0x577717
5776cd:	8b 7e 40             	mov    0x40(%esi),%edi
5776d0:	85 ff                	test   %edi,%edi
5776d2:	7c 10                	jl     0x5776e4
5776d4:	8b 46 3c             	mov    0x3c(%esi),%eax
5776d7:	3b f8                	cmp    %eax,%edi
5776d9:	7f 09                	jg     0x5776e4
5776db:	83 4e 08 04          	orl    $0x4,0x8(%esi)
5776df:	83 ca ff             	or     $0xffffffff,%edx
5776e2:	eb 36                	jmp    0x57771a
5776e4:	83 4e 04 20          	orl    $0x20,0x4(%esi)
5776e8:	ff 4e 1c             	decl   0x1c(%esi)
5776eb:	79 16                	jns    0x577703
5776ed:	8b d3                	mov    %ebx,%edx
5776ef:	8b c6                	mov    %esi,%eax
5776f1:	80 e2 ff             	and    $0xff,%dl
5776f4:	81 e2 ff 00 00 00    	and    $0xff,%edx
5776fa:	e8 19 17 00 00       	call   0x578e18
5776ff:	8b d0                	mov    %eax,%edx
577701:	eb 17                	jmp    0x57771a
577703:	ff 46 3c             	incl   0x3c(%esi)
577706:	80 e3 ff             	and    $0xff,%bl
577709:	8b 46 18             	mov    0x18(%esi),%eax
57770c:	ff 46 18             	incl   0x18(%esi)
57770f:	88 18                	mov    %bl,(%eax)
577711:	33 d2                	xor    %edx,%edx
577713:	8a d3                	mov    %bl,%dl
577715:	eb 03                	jmp    0x57771a
577717:	83 ca ff             	or     $0xffffffff,%edx
57771a:	42                   	inc    %edx
57771b:	75 05                	jne    0x577722
57771d:	83 c8 ff             	or     $0xffffffff,%eax
577720:	eb 02                	jmp    0x577724
577722:	33 c0                	xor    %eax,%eax
577724:	5f                   	pop    %edi
577725:	5e                   	pop    %esi
577726:	5b                   	pop    %ebx
577727:	c3                   	ret
577728:	53                   	push   %ebx
577729:	56                   	push   %esi
57772a:	57                   	push   %edi
57772b:	55                   	push   %ebp
57772c:	8b d8                	mov    %eax,%ebx
57772e:	51                   	push   %ecx
57772f:	89 14 24             	mov    %edx,(%esp)
577732:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577736:	75 3a                	jne    0x577772
577738:	8b 7b 40             	mov    0x40(%ebx),%edi
57773b:	85 ff                	test   %edi,%edi
57773d:	7c 10                	jl     0x57774f
57773f:	8b 43 3c             	mov    0x3c(%ebx),%eax
577742:	3b f8                	cmp    %eax,%edi
577744:	7f 09                	jg     0x57774f
577746:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
57774a:	83 ce ff             	or     $0xffffffff,%esi
57774d:	eb 26                	jmp    0x577775
57774f:	ff 4b 1c             	decl   0x1c(%ebx)
577752:	79 10                	jns    0x577764
577754:	ba 01 00 00 00       	mov    $0x1,%edx
577759:	8b c3                	mov    %ebx,%eax
57775b:	e8 c8 15 00 00       	call   0x578d28
577760:	8b f0                	mov    %eax,%esi
577762:	eb 11                	jmp    0x577775
577764:	ff 43 3c             	incl   0x3c(%ebx)
577767:	8b 43 18             	mov    0x18(%ebx),%eax
57776a:	ff 43 18             	incl   0x18(%ebx)
57776d:	0f b6 30             	movzbl (%eax),%esi
577770:	eb 03                	jmp    0x577775
577772:	83 ce ff             	or     $0xffffffff,%esi
577775:	83 fe ff             	cmp    $0xffffffff,%esi
577778:	75 05                	jne    0x57777f