500577:	8b e5                	mov    %ebp,%esp
500579:	5d                   	pop    %ebp
50057a:	c3                   	ret
50057b:	6a 00                	push   $0x0
50057d:	6a 48                	push   $0x48
50057f:	57                   	push   %edi
500580:	e8 5b 15 04 00       	call   0x541ae0
500585:	83 c4 10             	add    $0x10,%esp
500588:	8b c6                	mov    %esi,%eax
50058a:	5f                   	pop    %edi
50058b:	5e                   	pop    %esi
50058c:	5b                   	pop    %ebx
50058d:	8b e5                	mov    %ebp,%esp
50058f:	5d                   	pop    %ebp
500590:	c3                   	ret
500591:	ff 75 14             	push   0x14(%ebp)
500594:	ff 73 04             	push   0x4(%ebx)
500597:	50                   	push   %eax
500598:	e8 b3 4c 02 00       	call   0x525250
50059d:	83 c4 0c             	add    $0xc,%esp
5005a0:	5f                   	pop    %edi
5005a1:	5e                   	pop    %esi
5005a2:	5b                   	pop    %ebx
5005a3:	8b e5                	mov    %ebp,%esp
5005a5:	5d                   	pop    %ebp
5005a6:	c3                   	ret
5005a7:	90                   	nop
5005a8:	18 04 50             	sbb    %al,(%eax,%edx,2)
5005ab:	00 4c 05 50          	add    %cl,0x50(%ebp,%eax,1)
5005af:	00 38                	add    %bh,(%eax)
5005b1:	05 50 00 0d 05       	add    $0x50d0050,%eax
5005b6:	50                   	push   %eax
5005b7:	00 cc                	add    %cl,%ah
5005b9:	cc                   	int3
5005ba:	cc                   	int3
5005bb:	cc                   	int3
5005bc:	cc                   	int3
5005bd:	cc                   	int3
5005be:	cc                   	int3
5005bf:	cc                   	int3
5005c0:	55                   	push   %ebp
5005c1:	8b ec                	mov    %esp,%ebp
5005c3:	51                   	push   %ecx
5005c4:	56                   	push   %esi
5005c5:	8b 75 0c             	mov    0xc(%ebp),%esi
5005c8:	8a 06                	mov    (%esi),%al
5005ca:	3c ad                	cmp    $0xad,%al
5005cc:	75 03                	jne    0x5005d1
5005ce:	8a 46 02             	mov    0x2(%esi),%al
5005d1:	3c ae                	cmp    $0xae,%al
5005d3:	75 05                	jne    0x5005da
5005d5:	8b 46 14             	mov    0x14(%esi),%eax
5005d8:	eb 0a                	jmp    0x5005e4
5005da:	3c 88                	cmp    $0x88,%al
5005dc:	75 75                	jne    0x500653
5005de:	8b 46 14             	mov    0x14(%esi),%eax
5005e1:	8b 40 1c             	mov    0x1c(%eax),%eax
5005e4:	8b 08                	mov    (%eax),%ecx
5005e6:	89 4d 0c             	mov    %ecx,0xc(%ebp)
5005e9:	83 f9 01             	cmp    $0x1,%ecx
5005ec:	74 65                	je     0x500653
5005ee:	8b 45 10             	mov    0x10(%ebp),%eax
5005f1:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
5005f7:	80 3e 88             	cmpb   $0x88,(%esi)
5005fa:	75 11                	jne    0x50060d
5005fc:	56                   	push   %esi
5005fd:	ff 75 08             	push   0x8(%ebp)
500600:	e8 2b e9 01 00       	call   0x51ef30
500605:	83 c4 08             	add    $0x8,%esp
500608:	5e                   	pop    %esi
500609:	8b e5                	mov    %ebp,%esp
50060b:	5d                   	pop    %ebp
50060c:	c3                   	ret
50060d:	53                   	push   %ebx
50060e:	8b 5d 08             	mov    0x8(%ebp),%ebx
500611:	57                   	push   %edi
500612:	33 ff                	xor    %edi,%edi
500614:	8b 43 2c             	mov    0x2c(%ebx),%eax
500617:	8d 50 01             	lea    0x1(%eax),%edx
50061a:	03 c1                	add    %ecx,%eax
50061c:	89 55 fc             	mov    %edx,-0x4(%ebp)
50061f:	89 43 2c             	mov    %eax,0x2c(%ebx)
500622:	85 c9                	test   %ecx,%ecx
500624:	7e 24                	jle    0x50064a
500626:	33 db                	xor    %ebx,%ebx
500628:	8d 04 17             	lea    (%edi,%edx,1),%eax
50062b:	50                   	push   %eax
50062c:	8b 46 14             	mov    0x14(%esi),%eax
50062f:	ff 74 18 04          	push   0x4(%eax,%ebx,1)
500633:	ff 75 08             	push   0x8(%ebp)
500636:	e8 b5 38 02 00       	call   0x523ef0
50063b:	8b 55 fc             	mov    -0x4(%ebp),%edx
50063e:	8d 5b 14             	lea    0x14(%ebx),%ebx
500641:	47                   	inc    %edi
500642:	83 c4 0c             	add    $0xc,%esp
500645:	3b 7d 0c             	cmp    0xc(%ebp),%edi
500648:	7c de                	jl     0x500628
50064a:	5f                   	pop    %edi
50064b:	5b                   	pop    %ebx
50064c:	8b c2                	mov    %edx,%eax
50064e:	5e                   	pop    %esi
50064f:	8b e5                	mov    %ebp,%esp
500651:	5d                   	pop    %ebp
500652:	c3                   	ret
500653:	ff 75 10             	push   0x10(%ebp)
500656:	56                   	push   %esi
500657:	ff 75 08             	push   0x8(%ebp)
50065a:	e8 71 5b 02 00       	call   0x5261d0
50065f:	83 c4 0c             	add    $0xc,%esp
500662:	5e                   	pop    %esi
500663:	8b e5                	mov    %ebp,%esp
500665:	5d                   	pop    %ebp
500666:	c3                   	ret
500667:	cc                   	int3
500668:	cc                   	int3
500669:	cc                   	int3
50066a:	cc                   	int3
50066b:	cc                   	int3
50066c:	cc                   	int3
50066d:	cc                   	int3
50066e:	cc                   	int3
50066f:	cc                   	int3
500670:	55                   	push   %ebp
500671:	8b ec                	mov    %esp,%ebp
500673:	8b 45 0c             	mov    0xc(%ebp),%eax
500676:	80 38 a4             	cmpb   $0xa4,(%eax)
500679:	75 1f                	jne    0x50069a
50067b:	0f b7 40 20          	movzwl 0x20(%eax),%eax
50067f:	66 85 c0             	test   %ax,%ax
500682:	78 16                	js     0x50069a
500684:	8b 55 08             	mov    0x8(%ebp),%edx
500687:	98                   	cwtl
500688:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
50068b:	8b 42 18             	mov    0x18(%edx),%eax
50068e:	8b 40 04             	mov    0x4(%eax),%eax
500691:	66 8b 44 88 10       	mov    0x10(%eax,%ecx,4),%ax
500696:	66 09 42 14          	or     %ax,0x14(%edx)
50069a:	33 c0                	xor    %eax,%eax
50069c:	5d                   	pop    %ebp
50069d:	c3                   	ret
50069e:	cc                   	int3
50069f:	cc                   	int3
5006a0:	55                   	push   %ebp
5006a1:	8b ec                	mov    %esp,%ebp
5006a3:	53                   	push   %ebx
5006a4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5006a7:	8b 43 0c             	mov    0xc(%ebx),%eax
5006aa:	80 38 ae             	cmpb   $0xae,(%eax)
5006ad:	74 2b                	je     0x5006da
5006af:	8b 4b 10             	mov    0x10(%ebx),%ecx
5006b2:	80 39 ae             	cmpb   $0xae,(%ecx)
5006b5:	74 23                	je     0x5006da
5006b7:	56                   	push   %esi
5006b8:	51                   	push   %ecx
5006b9:	50                   	push   %eax
5006ba:	ff 75 08             	push   0x8(%ebp)
5006bd:	e8 ee 9b 01 00       	call   0x51a2b0
5006c2:	ff 73 0c             	push   0xc(%ebx)
5006c5:	8b f0                	mov    %eax,%esi
5006c7:	ff 73 10             	push   0x10(%ebx)
5006ca:	ff 75 08             	push   0x8(%ebp)
5006cd:	e8 de 9b 01 00       	call   0x51a2b0
5006d2:	83 c4 18             	add    $0x18,%esp
5006d5:	3b f0                	cmp    %eax,%esi
5006d7:	5e                   	pop    %esi
5006d8:	74 07                	je     0x5006e1
5006da:	81 73 04 00 02 00 00 	xorl   $0x200,0x4(%ebx)
5006e1:	8b 43 0c             	mov    0xc(%ebx),%eax
5006e4:	8b 4b 10             	mov    0x10(%ebx),%ecx
5006e7:	89 43 10             	mov    %eax,0x10(%ebx)
5006ea:	8a 03                	mov    (%ebx),%al
5006ec:	89 4b 0c             	mov    %ecx,0xc(%ebx)
5006ef:	3c 36                	cmp    $0x36,%al
5006f1:	72 08                	jb     0x5006fb
5006f3:	2c 36                	sub    $0x36,%al
5006f5:	34 02                	xor    $0x2,%al
5006f7:	04 36                	add    $0x36,%al
5006f9:	88 03                	mov    %al,(%ebx)
5006fb:	33 c0                	xor    %eax,%eax
5006fd:	5b                   	pop    %ebx
5006fe:	5d                   	pop    %ebp
5006ff:	c3                   	ret
500700:	55                   	push   %ebp
500701:	8b ec                	mov    %esp,%ebp
500703:	83 ec 08             	sub    $0x8,%esp
500706:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50070b:	33 c5                	xor    %ebp,%eax
50070d:	89 45 fc             	mov    %eax,-0x4(%ebp)
500710:	8b 45 10             	mov    0x10(%ebp),%eax
500713:	56                   	push   %esi
500714:	8b 75 08             	mov    0x8(%ebp),%esi
500717:	57                   	push   %edi
500718:	33 ff                	xor    %edi,%edi
50071a:	89 7d f8             	mov    %edi,-0x8(%ebp)
50071d:	85 c0                	test   %eax,%eax
50071f:	0f 84 1a 01 00 00    	je     0x50083f
500725:	57                   	push   %edi
500726:	8d 4d f8             	lea    -0x8(%ebp),%ecx
500729:	51                   	push   %ecx
50072a:	6a 41                	push   $0x41
50072c:	6a 01                	push   $0x1
50072e:	50                   	push   %eax
50072f:	ff 36                	push   (%esi)
500731:	e8 6a 90 05 00       	call   0x5597a0
500736:	83 c4 18             	add    $0x18,%esp
500739:	39 7d f8             	cmp    %edi,-0x8(%ebp)
50073c:	0f 84 fd 00 00 00    	je     0x50083f
500742:	8b 45 0c             	mov    0xc(%ebp),%eax
500745:	8b 56 08             	mov    0x8(%esi),%edx
500748:	53                   	push   %ebx
500749:	0f bf 58 20          	movswl 0x20(%eax),%ebx
50074d:	83 fb 20             	cmp    $0x20,%ebx
500750:	7c 0c                	jl     0x50075e
500752:	81 8a d4 00 00 00 00 	orl    $0x80000000,0xd4(%edx)
500759:	00 00 80
50075c:	eb 12                	jmp    0x500770
50075e:	8b 8a d4 00 00 00    	mov    0xd4(%edx),%ecx
500764:	8d 43 ff             	lea    -0x1(%ebx),%eax
500767:	0f ab c1             	bts    %eax,%ecx
50076a:	89 8a d4 00 00 00    	mov    %ecx,0xd4(%edx)
500770:	8b 96 dc 00 00 00    	mov    0xdc(%esi),%edx
500776:	85 d2                	test   %edx,%edx
500778:	74 6b                	je     0x5007e5
50077a:	8b 42 64             	mov    0x64(%edx),%eax
50077d:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx
500780:	8d 5b fb             	lea    -0x5(%ebx),%ebx
500783:	f6 44 d8 08 01       	testb  $0x1,0x8(%eax,%ebx,8)
500788:	8d 1c d8             	lea    (%eax,%ebx,8),%ebx
50078b:	75 58                	jne    0x5007e5
50078d:	ff 32                	push   (%edx)
50078f:	e8 1c 11 04 00       	call   0x5418b0
500794:	8b f0                	mov    %eax,%esi
500796:	83 c4 04             	add    $0x4,%esp
500799:	85 f6                	test   %esi,%esi
50079b:	74 4a                	je     0x5007e7
50079d:	53                   	push   %ebx
50079e:	56                   	push   %esi
50079f:	e8 6c ab 04 00       	call   0x54b310
5007a4:	6a 01                	push   $0x1
5007a6:	6a 41                	push   $0x41
5007a8:	56                   	push   %esi
5007a9:	e8 32 33 ff ff       	call   0x4f3ae0
5007ae:	83 c4 14             	add    $0x14,%esp
5007b1:	85 f6                	test   %esi,%esi
5007b3:	74 32                	je     0x5007e7
5007b5:	0f b7 46 08          	movzwl 0x8(%esi),%eax
5007b9:	83 e0 3f             	and    $0x3f,%eax
5007bc:	80 b8 68 30 6b 00 03 	cmpb   $0x3,0x6b3068(%eax)
5007c3:	75 09                	jne    0x5007ce
5007c5:	56                   	push   %esi
5007c6:	e8 75 1e fe ff       	call   0x4e2640
5007cb:	83 c4 04             	add    $0x4,%esp
5007ce:	6a 00                	push   $0x0
5007d0:	ff 75 f8             	push   -0x8(%ebp)
5007d3:	56                   	push   %esi
5007d4:	e8 f7 0a 03 00       	call   0x5312d0
5007d9:	83 c4 0c             	add    $0xc,%esp
5007dc:	8b f8                	mov    %eax,%edi
5007de:	f7 df                	neg    %edi
5007e0:	1b ff                	sbb    %edi,%edi
5007e2:	47                   	inc    %edi
5007e3:	eb 02                	jmp    0x5007e7
5007e5:	33 f6                	xor    %esi,%esi
5007e7:	8b 5d f8             	mov    -0x8(%ebp),%ebx
5007ea:	b8 00 24 00 00       	mov    $0x2400,%eax
5007ef:	85 db                	test   %ebx,%ebx
5007f1:	74 26                	je     0x500819
5007f3:	66 85 43 08          	test   %ax,0x8(%ebx)
5007f7:	75 06                	jne    0x5007ff
5007f9:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
5007fd:	74 09                	je     0x500808
5007ff:	53                   	push   %ebx
500800:	e8 0b a6 05 00       	call   0x55ae10
500805:	83 c4 04             	add    $0x4,%esp
500808:	53                   	push   %ebx
500809:	ff 73 20             	push   0x20(%ebx)
50080c:	e8 5f 0b 02 00       	call   0x521370
500811:	83 c4 08             	add    $0x8,%esp
500814:	b8 00 24 00 00       	mov    $0x2400,%eax
500819:	5b                   	pop    %ebx
50081a:	85 f6                	test   %esi,%esi
50081c:	74 21                	je     0x50083f
50081e:	66 85 46 08          	test   %ax,0x8(%esi)
500822:	75 06                	jne    0x50082a
500824:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
500828:	74 09                	je     0x500833
50082a:	56                   	push   %esi
50082b:	e8 e0 a5 05 00       	call   0x55ae10
500830:	83 c4 04             	add    $0x4,%esp
500833:	56                   	push   %esi
500834:	ff 76 20             	push   0x20(%esi)
500837:	e8 34 0b 02 00       	call   0x521370
50083c:	83 c4 08             	add    $0x8,%esp
50083f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
500842:	8b c7                	mov    %edi,%eax
500844:	5f                   	pop    %edi
500845:	33 cd                	xor    %ebp,%ecx
500847:	5e                   	pop    %esi
500848:	e8 8d 0c 0e 00       	call   0x5e14da
50084d:	8b e5                	mov    %ebp,%esp
50084f:	5d                   	pop    %ebp
500850:	c3                   	ret
500851:	cc                   	int3
500852:	cc                   	int3
500853:	cc                   	int3
500854:	cc                   	int3
500855:	cc                   	int3
500856:	cc                   	int3
500857:	cc                   	int3
500858:	cc                   	int3
500859:	cc                   	int3
50085a:	cc                   	int3
50085b:	cc                   	int3
50085c:	cc                   	int3
50085d:	cc                   	int3
50085e:	cc                   	int3
50085f:	cc                   	int3
500860:	55                   	push   %ebp
500861:	8b ec                	mov    %esp,%ebp
500863:	83 ec 24             	sub    $0x24,%esp
500866:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50086b:	33 c5                	xor    %ebp,%eax
50086d:	89 45 fc             	mov    %eax,-0x4(%ebp)
500870:	8b 45 08             	mov    0x8(%ebp),%eax
500873:	53                   	push   %ebx
500874:	8b 5d 10             	mov    0x10(%ebp),%ebx
500877:	56                   	push   %esi
500878:	89 45 f4             	mov    %eax,-0xc(%ebp)
50087b:	8b 45 14             	mov    0x14(%ebp),%eax
50087e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
500881:	89 45 dc             	mov    %eax,-0x24(%ebp)
500884:	57                   	push   %edi
500885:	8b 7d 0c             	mov    0xc(%ebp),%edi
500888:	85 c0                	test   %eax,%eax
50088a:	74 0b                	je     0x500897
50088c:	8b 30                	mov    (%eax),%esi
50088e:	c7 45 e4 00 00 00 08 	movl   $0x8000000,-0x1c(%ebp)
500895:	eb 4b                	jmp    0x5008e2
500897:	33 c0                	xor    %eax,%eax
500899:	85 ff                	test   %edi,%edi
50089b:	74 2e                	je     0x5008cb
50089d:	53                   	push   %ebx
50089e:	57                   	push   %edi
50089f:	e8 4c dd ff ff       	call   0x4fe5f0
5008a4:	83 c4 08             	add    $0x8,%esp
5008a7:	89 45 ec             	mov    %eax,-0x14(%ebp)
5008aa:	f6 c3 01             	test   $0x1,%bl
5008ad:	74 1c                	je     0x5008cb
5008af:	53                   	push   %ebx
5008b0:	ff 77 10             	push   0x10(%edi)