5084cc:	33 db                	xor    %ebx,%ebx
5084ce:	8d 70 04             	lea    0x4(%eax),%esi
5084d1:	3b d3                	cmp    %ebx,%edx
5084d3:	7e 0a                	jle    0x5084df
5084d5:	89 1e                	mov    %ebx,(%esi)
5084d7:	43                   	inc    %ebx
5084d8:	83 c6 04             	add    $0x4,%esi
5084db:	3b d3                	cmp    %ebx,%edx
5084dd:	7f f6                	jg     0x5084d5
5084df:	33 d2                	xor    %edx,%edx
5084e1:	89 50 18             	mov    %edx,0x18(%eax)
5084e4:	89 50 14             	mov    %edx,0x14(%eax)
5084e7:	89 48 1c             	mov    %ecx,0x1c(%eax)
5084ea:	8b 4d 08             	mov    0x8(%ebp),%ecx
5084ed:	89 48 20             	mov    %ecx,0x20(%eax)
5084f0:	83 c0 24             	add    $0x24,%eax
5084f3:	eb 0e                	jmp    0x508503
5084f5:	6a 00                	push   $0x0
5084f7:	51                   	push   %ecx
5084f8:	8b 4d 08             	mov    0x8(%ebp),%ecx
5084fb:	51                   	push   %ecx
5084fc:	33 c9                	xor    %ecx,%ecx
5084fe:	e8 81 ff ff ff       	call   0x508484
508503:	5e                   	pop    %esi
508504:	5b                   	pop    %ebx
508505:	5d                   	pop    %ebp
508506:	c2 04 00             	ret    $0x4
508509:	90                   	nop
50850a:	90                   	nop
50850b:	90                   	nop
50850c:	53                   	push   %ebx
50850d:	56                   	push   %esi
50850e:	57                   	push   %edi
50850f:	8b f8                	mov    %eax,%edi
508511:	51                   	push   %ecx
508512:	83 7f 10 64          	cmpl   $0x64,0x10(%edi)
508516:	8b 77 34             	mov    0x34(%edi),%esi
508519:	74 15                	je     0x508530
50851b:	8b 07                	mov    (%edi),%eax
50851d:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508524:	8b 57 10             	mov    0x10(%edi),%edx
508527:	89 50 18             	mov    %edx,0x18(%eax)
50852a:	8b c7                	mov    %edi,%eax
50852c:	8b 10                	mov    (%eax),%edx
50852e:	ff 12                	call   *(%edx)
508530:	83 fe 03             	cmp    $0x3,%esi
508533:	75 0f                	jne    0x508544
508535:	83 7f 38 03          	cmpl   $0x3,0x38(%edi)
508539:	75 09                	jne    0x508544
50853b:	c7 04 24 0a 00 00 00 	movl   $0xa,(%esp)
508542:	eb 1c                	jmp    0x508560
508544:	83 fe 04             	cmp    $0x4,%esi
508547:	7e 0c                	jle    0x508555
508549:	8b ce                	mov    %esi,%ecx
50854b:	03 c9                	add    %ecx,%ecx
50854d:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
508550:	89 0c 24             	mov    %ecx,(%esp)
508553:	eb 0b                	jmp    0x508560
508555:	8b c6                	mov    %esi,%eax
508557:	c1 e0 02             	shl    $0x2,%eax
50855a:	83 c0 02             	add    $0x2,%eax
50855d:	89 04 24             	mov    %eax,(%esp)
508560:	8b 0c 24             	mov    (%esp),%ecx
508563:	8b c7                	mov    %edi,%eax
508565:	c1 e1 02             	shl    $0x2,%ecx
508568:	33 d2                	xor    %edx,%edx
50856a:	8b 58 04             	mov    0x4(%eax),%ebx
50856d:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
508570:	ff 13                	call   *(%ebx)
508572:	8b d8                	mov    %eax,%ebx
508574:	83 fe 03             	cmp    $0x3,%esi
508577:	89 9f a4 00 00 00    	mov    %ebx,0xa4(%edi)
50857d:	8b 04 24             	mov    (%esp),%eax
508580:	89 87 a0 00 00 00    	mov    %eax,0xa0(%edi)
508586:	0f 85 e7 00 00 00    	jne    0x508673
50858c:	83 7f 38 03          	cmpl   $0x3,0x38(%edi)
508590:	0f 85 dd 00 00 00    	jne    0x508673
508596:	6a 01                	push   $0x1
508598:	33 c9                	xor    %ecx,%ecx
50859a:	8b d6                	mov    %esi,%edx
50859c:	8b c3                	mov    %ebx,%eax
50859e:	e8 1d ff ff ff       	call   0x5084c0
5085a3:	8b d8                	mov    %eax,%ebx
5085a5:	6a 05                	push   $0x5
5085a7:	6a 00                	push   $0x0
5085a9:	6a 02                	push   $0x2
5085ab:	b9 01 00 00 00       	mov    $0x1,%ecx
5085b0:	33 d2                	xor    %edx,%edx
5085b2:	8b c3                	mov    %ebx,%eax
5085b4:	e8 a3 fe ff ff       	call   0x50845c
5085b9:	8b d8                	mov    %eax,%ebx
5085bb:	6a 3f                	push   $0x3f
5085bd:	6a 00                	push   $0x0
5085bf:	6a 01                	push   $0x1
5085c1:	b9 01 00 00 00       	mov    $0x1,%ecx
5085c6:	ba 02 00 00 00       	mov    $0x2,%edx
5085cb:	8b c3                	mov    %ebx,%eax
5085cd:	e8 8a fe ff ff       	call   0x50845c
5085d2:	8b d8                	mov    %eax,%ebx
5085d4:	6a 3f                	push   $0x3f
5085d6:	6a 00                	push   $0x0
5085d8:	6a 01                	push   $0x1
5085da:	b9 01 00 00 00       	mov    $0x1,%ecx
5085df:	ba 01 00 00 00       	mov    $0x1,%edx
5085e4:	8b c3                	mov    %ebx,%eax
5085e6:	e8 71 fe ff ff       	call   0x50845c
5085eb:	8b d8                	mov    %eax,%ebx
5085ed:	6a 3f                	push   $0x3f
5085ef:	6a 00                	push   $0x0
5085f1:	6a 02                	push   $0x2
5085f3:	b9 06 00 00 00       	mov    $0x6,%ecx
5085f8:	33 d2                	xor    %edx,%edx
5085fa:	8b c3                	mov    %ebx,%eax
5085fc:	e8 5b fe ff ff       	call   0x50845c
508601:	8b d8                	mov    %eax,%ebx
508603:	6a 3f                	push   $0x3f
508605:	6a 02                	push   $0x2
508607:	6a 01                	push   $0x1
508609:	b9 01 00 00 00       	mov    $0x1,%ecx
50860e:	33 d2                	xor    %edx,%edx
508610:	8b c3                	mov    %ebx,%eax
508612:	e8 45 fe ff ff       	call   0x50845c
508617:	8b d8                	mov    %eax,%ebx
508619:	6a 00                	push   $0x0
50861b:	b9 01 00 00 00       	mov    $0x1,%ecx
508620:	8b d6                	mov    %esi,%edx
508622:	8b c3                	mov    %ebx,%eax
508624:	e8 97 fe ff ff       	call   0x5084c0
508629:	8b d8                	mov    %eax,%ebx
50862b:	6a 3f                	push   $0x3f
50862d:	6a 01                	push   $0x1
50862f:	6a 00                	push   $0x0
508631:	b9 01 00 00 00       	mov    $0x1,%ecx
508636:	ba 02 00 00 00       	mov    $0x2,%edx
50863b:	8b c3                	mov    %ebx,%eax
50863d:	e8 1a fe ff ff       	call   0x50845c
508642:	8b d8                	mov    %eax,%ebx
508644:	6a 3f                	push   $0x3f
508646:	6a 01                	push   $0x1
508648:	6a 00                	push   $0x0
50864a:	b9 01 00 00 00       	mov    $0x1,%ecx
50864f:	ba 01 00 00 00       	mov    $0x1,%edx
508654:	8b c3                	mov    %ebx,%eax
508656:	e8 01 fe ff ff       	call   0x50845c
50865b:	8b d8                	mov    %eax,%ebx
50865d:	6a 3f                	push   $0x3f
50865f:	6a 01                	push   $0x1
508661:	6a 00                	push   $0x0
508663:	b9 01 00 00 00       	mov    $0x1,%ecx
508668:	33 d2                	xor    %edx,%edx
50866a:	8b c3                	mov    %ebx,%eax
50866c:	e8 eb fd ff ff       	call   0x50845c
508671:	eb 77                	jmp    0x5086ea
508673:	6a 01                	push   $0x1
508675:	33 c9                	xor    %ecx,%ecx
508677:	8b d6                	mov    %esi,%edx
508679:	8b c3                	mov    %ebx,%eax
50867b:	e8 40 fe ff ff       	call   0x5084c0
508680:	8b d8                	mov    %eax,%ebx
508682:	6a 05                	push   $0x5
508684:	6a 00                	push   $0x0
508686:	6a 02                	push   $0x2
508688:	b9 01 00 00 00       	mov    $0x1,%ecx
50868d:	8b d6                	mov    %esi,%edx
50868f:	8b c3                	mov    %ebx,%eax
508691:	e8 ee fd ff ff       	call   0x508484
508696:	8b d8                	mov    %eax,%ebx
508698:	6a 3f                	push   $0x3f
50869a:	6a 00                	push   $0x0
50869c:	6a 02                	push   $0x2
50869e:	b9 06 00 00 00       	mov    $0x6,%ecx
5086a3:	8b d6                	mov    %esi,%edx
5086a5:	8b c3                	mov    %ebx,%eax
5086a7:	e8 d8 fd ff ff       	call   0x508484
5086ac:	8b d8                	mov    %eax,%ebx
5086ae:	6a 3f                	push   $0x3f
5086b0:	6a 02                	push   $0x2
5086b2:	6a 01                	push   $0x1
5086b4:	b9 01 00 00 00       	mov    $0x1,%ecx
5086b9:	8b d6                	mov    %esi,%edx
5086bb:	8b c3                	mov    %ebx,%eax
5086bd:	e8 c2 fd ff ff       	call   0x508484
5086c2:	8b d8                	mov    %eax,%ebx
5086c4:	6a 00                	push   $0x0
5086c6:	b9 01 00 00 00       	mov    $0x1,%ecx
5086cb:	8b d6                	mov    %esi,%edx
5086cd:	8b c3                	mov    %ebx,%eax
5086cf:	e8 ec fd ff ff       	call   0x5084c0
5086d4:	8b d8                	mov    %eax,%ebx
5086d6:	6a 3f                	push   $0x3f
5086d8:	6a 01                	push   $0x1
5086da:	6a 00                	push   $0x0
5086dc:	b9 01 00 00 00       	mov    $0x1,%ecx
5086e1:	8b d6                	mov    %esi,%edx
5086e3:	8b c3                	mov    %ebx,%eax
5086e5:	e8 9a fd ff ff       	call   0x508484
5086ea:	5a                   	pop    %edx
5086eb:	5f                   	pop    %edi
5086ec:	5e                   	pop    %esi
5086ed:	5b                   	pop    %ebx
5086ee:	c3                   	ret
5086ef:	90                   	nop
5086f0:	53                   	push   %ebx
5086f1:	8b d8                	mov    %eax,%ebx
5086f3:	56                   	push   %esi
5086f4:	8b f2                	mov    %edx,%esi
5086f6:	83 7b 10 64          	cmpl   $0x64,0x10(%ebx)
5086fa:	74 15                	je     0x508711
5086fc:	8b 03                	mov    (%ebx),%eax
5086fe:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508705:	8b 53 10             	mov    0x10(%ebx),%edx
508708:	89 50 18             	mov    %edx,0x18(%eax)
50870b:	8b c3                	mov    %ebx,%eax
50870d:	8b 10                	mov    (%eax),%edx
50870f:	ff 12                	call   *(%edx)
508711:	85 f6                	test   %esi,%esi
508713:	74 09                	je     0x50871e
508715:	33 d2                	xor    %edx,%edx
508717:	8b c3                	mov    %ebx,%eax
508719:	e8 7a 02 00 00       	call   0x508998
50871e:	8b c3                	mov    %ebx,%eax
508720:	8b 10                	mov    (%eax),%edx
508722:	ff 52 10             	call   *0x10(%edx)
508725:	8b c3                	mov    %ebx,%eax
508727:	8b 50 14             	mov    0x14(%eax),%edx
50872a:	ff 52 08             	call   *0x8(%edx)
50872d:	8b c3                	mov    %ebx,%eax
50872f:	e8 30 04 00 00       	call   0x508b64
508734:	8b c3                	mov    %ebx,%eax
508736:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
50873c:	ff 12                	call   *(%edx)
50873e:	33 c9                	xor    %ecx,%ecx
508740:	89 8b d8 00 00 00    	mov    %ecx,0xd8(%ebx)
508746:	83 bb a8 00 00 00 00 	cmpl   $0x0,0xa8(%ebx)
50874d:	74 07                	je     0x508756
50874f:	b8 66 00 00 00       	mov    $0x66,%eax
508754:	eb 05                	jmp    0x50875b
508756:	b8 65 00 00 00       	mov    $0x65,%eax
50875b:	89 43 10             	mov    %eax,0x10(%ebx)
50875e:	5e                   	pop    %esi
50875f:	5b                   	pop    %ebx
508760:	c3                   	ret
508761:	90                   	nop
508762:	90                   	nop
508763:	90                   	nop
508764:	53                   	push   %ebx
508765:	8b d8                	mov    %eax,%ebx
508767:	56                   	push   %esi
508768:	57                   	push   %edi
508769:	51                   	push   %ecx
50876a:	8b fa                	mov    %edx,%edi
50876c:	83 7b 10 65          	cmpl   $0x65,0x10(%ebx)
508770:	8b f1                	mov    %ecx,%esi
508772:	74 15                	je     0x508789
508774:	8b 03                	mov    (%ebx),%eax
508776:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
50877d:	8b 53 10             	mov    0x10(%ebx),%edx
508780:	89 50 18             	mov    %edx,0x18(%eax)
508783:	8b c3                	mov    %ebx,%eax
508785:	8b 10                	mov    (%eax),%edx
508787:	ff 12                	call   *(%edx)
508789:	8b 8b d8 00 00 00    	mov    0xd8(%ebx),%ecx
50878f:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
508792:	72 13                	jb     0x5087a7
508794:	8b 03                	mov    (%ebx),%eax
508796:	c7 40 14 77 00 00 00 	movl   $0x77,0x14(%eax)
50879d:	83 ca ff             	or     $0xffffffff,%edx
5087a0:	8b c3                	mov    %ebx,%eax
5087a2:	8b 08                	mov    (%eax),%ecx
5087a4:	ff 51 04             	call   *0x4(%ecx)
5087a7:	8b 43 08             	mov    0x8(%ebx),%eax
5087aa:	85 c0                	test   %eax,%eax
5087ac:	74 16                	je     0x5087c4
5087ae:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
5087b4:	89 50 04             	mov    %edx,0x4(%eax)
5087b7:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
5087ba:	89 48 08             	mov    %ecx,0x8(%eax)
5087bd:	8b c3                	mov    %ebx,%eax
5087bf:	8b 50 08             	mov    0x8(%eax),%edx
5087c2:	ff 12                	call   *(%edx)
5087c4:	8b 8b 44 01 00 00    	mov    0x144(%ebx),%ecx
5087ca:	83 79 0c 00          	cmpl   $0x0,0xc(%ecx)
5087ce:	74 0b                	je     0x5087db
5087d0:	8b c3                	mov    %ebx,%eax
5087d2:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
5087d8:	ff 52 04             	call   *0x4(%edx)
5087db:	8b 43 1c             	mov    0x1c(%ebx),%eax
5087de:	2b 83 d8 00 00 00    	sub    0xd8(%ebx),%eax
5087e4:	3b c6                	cmp    %esi,%eax
5087e6:	73 02                	jae    0x5087ea
5087e8:	8b f0                	mov    %eax,%esi
5087ea:	33 c0                	xor    %eax,%eax
5087ec:	8b d7                	mov    %edi,%edx
5087ee:	89 04 24             	mov    %eax,(%esp)
5087f1:	8b c3                	mov    %ebx,%eax
5087f3:	56                   	push   %esi
5087f4:	8d 4c 24 04          	lea    0x4(%esp),%ecx
5087f8:	8b b0 48 01 00 00    	mov    0x148(%eax),%esi
5087fe:	ff 56 04             	call   *0x4(%esi)
508801:	8b 04 24             	mov    (%esp),%eax
508804:	01 83 d8 00 00 00    	add    %eax,0xd8(%ebx)
50880a:	8b 04 24             	mov    (%esp),%eax
50880d:	5a                   	pop    %edx
50880e:	5f                   	pop    %edi
50880f:	5e                   	pop    %esi
508810:	5b                   	pop    %ebx
508811:	c3                   	ret
508812:	90                   	nop
508813:	90                   	nop
508814:	53                   	push   %ebx
508815:	8b d8                	mov    %eax,%ebx
508817:	56                   	push   %esi
508818:	57                   	push   %edi
508819:	55                   	push   %ebp
50881a:	8b e9                	mov    %ecx,%ebp
50881c:	83 7b 10 66          	cmpl   $0x66,0x10(%ebx)
508820:	8b fa                	mov    %edx,%edi
508822:	74 15                	je     0x508839
508824:	8b 03                	mov    (%ebx),%eax
508826:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
50882d:	8b 53 10             	mov    0x10(%ebx),%edx
508830:	89 50 18             	mov    %edx,0x18(%eax)
508833:	8b c3                	mov    %ebx,%eax
508835:	8b 10                	mov    (%eax),%edx
508837:	ff 12                	call   *(%edx)
508839:	8b 8b d8 00 00 00    	mov    0xd8(%ebx),%ecx
50883f:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
508842:	72 17                	jb     0x50885b
508844:	8b 03                	mov    (%ebx),%eax
508846:	c7 40 14 77 00 00 00 	movl   $0x77,0x14(%eax)
50884d:	83 ca ff             	or     $0xffffffff,%edx
508850:	8b c3                	mov    %ebx,%eax
508852:	8b 08                	mov    (%eax),%ecx
508854:	ff 51 04             	call   *0x4(%ecx)
508857:	33 c0                	xor    %eax,%eax
508859:	eb 6d                	jmp    0x5088c8
50885b:	8b 43 08             	mov    0x8(%ebx),%eax
50885e:	85 c0                	test   %eax,%eax
508860:	74 16                	je     0x508878
508862:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
508868:	89 50 04             	mov    %edx,0x4(%eax)
50886b:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
50886e:	89 48 08             	mov    %ecx,0x8(%eax)
508871:	8b c3                	mov    %ebx,%eax
508873:	8b 50 08             	mov    0x8(%eax),%edx
508876:	ff 12                	call   *(%edx)
508878:	8b 8b 44 01 00 00    	mov    0x144(%ebx),%ecx
50887e:	83 79 0c 00          	cmpl   $0x0,0xc(%ecx)
508882:	74 0b                	je     0x50888f
508884:	8b c3                	mov    %ebx,%eax