509430:	8b 10                	mov    (%eax),%edx
509432:	ff 12                	call   *(%edx)
509434:	81 7b 1c dc ff 00 00 	cmpl   $0xffdc,0x1c(%ebx)
50943b:	7f 09                	jg     0x509446
50943d:	81 7b 18 dc ff 00 00 	cmpl   $0xffdc,0x18(%ebx)
509444:	7e 16                	jle    0x50945c
509446:	8b 03                	mov    (%ebx),%eax
509448:	c7 40 14 28 00 00 00 	movl   $0x28,0x14(%eax)
50944f:	c7 40 18 dc ff 00 00 	movl   $0xffdc,0x18(%eax)
509456:	8b c3                	mov    %ebx,%eax
509458:	8b 10                	mov    (%eax),%edx
50945a:	ff 12                	call   *(%edx)
50945c:	8b 43 18             	mov    0x18(%ebx),%eax
50945f:	f7 6b 20             	imull  0x20(%ebx)
509462:	8b d0                	mov    %eax,%edx
509464:	3b c2                	cmp    %edx,%eax
509466:	74 0f                	je     0x509477
509468:	8b 0b                	mov    (%ebx),%ecx
50946a:	8b c3                	mov    %ebx,%eax
50946c:	c7 41 14 45 00 00 00 	movl   $0x45,0x14(%ecx)
509473:	8b 10                	mov    (%eax),%edx
509475:	ff 12                	call   *(%edx)
509477:	83 7b 30 08          	cmpl   $0x8,0x30(%ebx)
50947b:	74 15                	je     0x509492
50947d:	8b 03                	mov    (%ebx),%eax
50947f:	c7 40 14 0d 00 00 00 	movl   $0xd,0x14(%eax)
509486:	8b 53 30             	mov    0x30(%ebx),%edx
509489:	89 50 18             	mov    %edx,0x18(%eax)
50948c:	8b c3                	mov    %ebx,%eax
50948e:	8b 10                	mov    (%eax),%edx
509490:	ff 12                	call   *(%edx)
509492:	83 7b 34 0a          	cmpl   $0xa,0x34(%ebx)
509496:	7e 1c                	jle    0x5094b4
509498:	8b 03                	mov    (%ebx),%eax
50949a:	c7 40 14 18 00 00 00 	movl   $0x18,0x14(%eax)
5094a1:	8b 53 34             	mov    0x34(%ebx),%edx
5094a4:	89 50 18             	mov    %edx,0x18(%eax)
5094a7:	c7 40 1c 0a 00 00 00 	movl   $0xa,0x1c(%eax)
5094ae:	8b c3                	mov    %ebx,%eax
5094b0:	8b 10                	mov    (%eax),%edx
5094b2:	ff 12                	call   *(%edx)
5094b4:	c7 83 e0 00 00 00 01 	movl   $0x1,0xe0(%ebx)
5094bb:	00 00 00
5094be:	c7 83 e4 00 00 00 01 	movl   $0x1,0xe4(%ebx)
5094c5:	00 00 00
5094c8:	33 ff                	xor    %edi,%edi
5094ca:	8b 73 3c             	mov    0x3c(%ebx),%esi
5094cd:	eb 63                	jmp    0x509532
5094cf:	8b 46 08             	mov    0x8(%esi),%eax
5094d2:	85 c0                	test   %eax,%eax
5094d4:	7e 11                	jle    0x5094e7
5094d6:	83 f8 04             	cmp    $0x4,%eax
5094d9:	7f 0c                	jg     0x5094e7
5094db:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
5094df:	7e 06                	jle    0x5094e7
5094e1:	83 7e 0c 04          	cmpl   $0x4,0xc(%esi)
5094e5:	7e 0f                	jle    0x5094f6
5094e7:	8b 13                	mov    (%ebx),%edx
5094e9:	8b c3                	mov    %ebx,%eax
5094eb:	c7 42 14 10 00 00 00 	movl   $0x10,0x14(%edx)
5094f2:	8b 10                	mov    (%eax),%edx
5094f4:	ff 12                	call   *(%edx)
5094f6:	8b 8b e0 00 00 00    	mov    0xe0(%ebx),%ecx
5094fc:	3b 4e 08             	cmp    0x8(%esi),%ecx
5094ff:	7e 08                	jle    0x509509
509501:	8b 83 e0 00 00 00    	mov    0xe0(%ebx),%eax
509507:	eb 03                	jmp    0x50950c
509509:	8b 46 08             	mov    0x8(%esi),%eax
50950c:	89 83 e0 00 00 00    	mov    %eax,0xe0(%ebx)
509512:	8b 93 e4 00 00 00    	mov    0xe4(%ebx),%edx
509518:	3b 56 0c             	cmp    0xc(%esi),%edx
50951b:	7e 08                	jle    0x509525
50951d:	8b 8b e4 00 00 00    	mov    0xe4(%ebx),%ecx
509523:	eb 03                	jmp    0x509528
509525:	8b 4e 0c             	mov    0xc(%esi),%ecx
509528:	89 8b e4 00 00 00    	mov    %ecx,0xe4(%ebx)
50952e:	47                   	inc    %edi
50952f:	83 c6 54             	add    $0x54,%esi
509532:	3b 7b 34             	cmp    0x34(%ebx),%edi
509535:	7c 98                	jl     0x5094cf
509537:	33 ff                	xor    %edi,%edi
509539:	8b 73 3c             	mov    0x3c(%ebx),%esi
50953c:	eb 6f                	jmp    0x5095ad
50953e:	89 7e 04             	mov    %edi,0x4(%esi)
509541:	47                   	inc    %edi
509542:	c7 46 24 08 00 00 00 	movl   $0x8,0x24(%esi)
509549:	8b 43 18             	mov    0x18(%ebx),%eax
50954c:	8b 8b e0 00 00 00    	mov    0xe0(%ebx),%ecx
509552:	f7 6e 08             	imull  0x8(%esi)
509555:	c1 e1 03             	shl    $0x3,%ecx
509558:	03 c1                	add    %ecx,%eax
50955a:	48                   	dec    %eax
50955b:	99                   	cltd
50955c:	f7 f9                	idiv   %ecx
50955e:	89 46 1c             	mov    %eax,0x1c(%esi)
509561:	8b 43 1c             	mov    0x1c(%ebx),%eax
509564:	8b 8b e4 00 00 00    	mov    0xe4(%ebx),%ecx
50956a:	f7 6e 0c             	imull  0xc(%esi)
50956d:	c1 e1 03             	shl    $0x3,%ecx
509570:	03 c1                	add    %ecx,%eax
509572:	48                   	dec    %eax
509573:	99                   	cltd
509574:	f7 f9                	idiv   %ecx
509576:	89 46 20             	mov    %eax,0x20(%esi)
509579:	8b 43 18             	mov    0x18(%ebx),%eax
50957c:	8b 8b e0 00 00 00    	mov    0xe0(%ebx),%ecx
509582:	f7 6e 08             	imull  0x8(%esi)
509585:	03 c1                	add    %ecx,%eax
509587:	48                   	dec    %eax
509588:	99                   	cltd
509589:	f7 f9                	idiv   %ecx
50958b:	89 46 28             	mov    %eax,0x28(%esi)
50958e:	8b 43 1c             	mov    0x1c(%ebx),%eax
509591:	8b 8b e4 00 00 00    	mov    0xe4(%ebx),%ecx
509597:	f7 6e 0c             	imull  0xc(%esi)
50959a:	03 c1                	add    %ecx,%eax
50959c:	48                   	dec    %eax
50959d:	99                   	cltd
50959e:	f7 f9                	idiv   %ecx
5095a0:	89 46 2c             	mov    %eax,0x2c(%esi)
5095a3:	c7 46 30 01 00 00 00 	movl   $0x1,0x30(%esi)
5095aa:	83 c6 54             	add    $0x54,%esi
5095ad:	3b 7b 34             	cmp    0x34(%ebx),%edi
5095b0:	7c 8c                	jl     0x50953e
5095b2:	8b 8b e4 00 00 00    	mov    0xe4(%ebx),%ecx
5095b8:	c1 e1 03             	shl    $0x3,%ecx
5095bb:	8b c1                	mov    %ecx,%eax
5095bd:	03 43 1c             	add    0x1c(%ebx),%eax
5095c0:	48                   	dec    %eax
5095c1:	99                   	cltd
5095c2:	f7 f9                	idiv   %ecx
5095c4:	89 83 e8 00 00 00    	mov    %eax,0xe8(%ebx)
5095ca:	5f                   	pop    %edi
5095cb:	5e                   	pop    %esi
5095cc:	5b                   	pop    %ebx
5095cd:	c3                   	ret
5095ce:	90                   	nop
5095cf:	90                   	nop
5095d0:	53                   	push   %ebx
5095d1:	56                   	push   %esi
5095d2:	57                   	push   %edi
5095d3:	8b f0                	mov    %eax,%esi
5095d5:	55                   	push   %ebp
5095d6:	81 c4 b8 f5 ff ff    	add    $0xfffff5b8,%esp
5095dc:	83 be a0 00 00 00 00 	cmpl   $0x0,0xa0(%esi)
5095e3:	7f 16                	jg     0x5095fb
5095e5:	8b 06                	mov    (%esi),%eax
5095e7:	33 c9                	xor    %ecx,%ecx
5095e9:	c7 40 14 11 00 00 00 	movl   $0x11,0x14(%eax)
5095f0:	8b 16                	mov    (%esi),%edx
5095f2:	8b c6                	mov    %esi,%eax
5095f4:	89 4a 18             	mov    %ecx,0x18(%edx)
5095f7:	8b 10                	mov    (%eax),%edx
5095f9:	ff 12                	call   *(%edx)
5095fb:	8b 8e a4 00 00 00    	mov    0xa4(%esi),%ecx
509601:	89 0c 24             	mov    %ecx,(%esp)
509604:	8b 04 24             	mov    (%esp),%eax
509607:	83 78 14 00          	cmpl   $0x0,0x14(%eax)
50960b:	75 09                	jne    0x509616
50960d:	8b 14 24             	mov    (%esp),%edx
509610:	83 7a 18 3f          	cmpl   $0x3f,0x18(%edx)
509614:	74 36                	je     0x50964c
509616:	c7 86 dc 00 00 00 01 	movl   $0x1,0xdc(%esi)
50961d:	00 00 00
509620:	8d 5c 24 48          	lea    0x48(%esp),%ebx
509624:	33 c0                	xor    %eax,%eax
509626:	89 44 24 0c          	mov    %eax,0xc(%esp)
50962a:	eb 15                	jmp    0x509641
50962c:	33 ff                	xor    %edi,%edi
50962e:	c7 03 ff ff ff ff    	movl   $0xffffffff,(%ebx)
509634:	83 c3 04             	add    $0x4,%ebx
509637:	47                   	inc    %edi
509638:	83 ff 40             	cmp    $0x40,%edi
50963b:	7c f1                	jl     0x50962e
50963d:	ff 44 24 0c          	incl   0xc(%esp)
509641:	8b 44 24 0c          	mov    0xc(%esp),%eax
509645:	3b 46 34             	cmp    0x34(%esi),%eax
509648:	7c e2                	jl     0x50962c
50964a:	eb 28                	jmp    0x509674
50964c:	33 d2                	xor    %edx,%edx
50964e:	33 c9                	xor    %ecx,%ecx
509650:	89 96 dc 00 00 00    	mov    %edx,0xdc(%esi)
509656:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
50965a:	8d 44 24 20          	lea    0x20(%esp),%eax
50965e:	eb 0b                	jmp    0x50966b
509660:	33 d2                	xor    %edx,%edx
509662:	89 10                	mov    %edx,(%eax)
509664:	ff 44 24 0c          	incl   0xc(%esp)
509668:	83 c0 04             	add    $0x4,%eax
50966b:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50966f:	3b 4e 34             	cmp    0x34(%esi),%ecx
509672:	7c ec                	jl     0x509660
509674:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
50967b:	00
50967c:	e9 ae 02 00 00       	jmp    0x50992f
509681:	8b 04 24             	mov    (%esp),%eax
509684:	8b 10                	mov    (%eax),%edx
509686:	89 54 24 08          	mov    %edx,0x8(%esp)
50968a:	83 7c 24 08 00       	cmpl   $0x0,0x8(%esp)
50968f:	7e 07                	jle    0x509698
509691:	83 7c 24 08 04       	cmpl   $0x4,0x8(%esp)
509696:	7e 1d                	jle    0x5096b5
509698:	8b 06                	mov    (%esi),%eax
50969a:	c7 40 14 18 00 00 00 	movl   $0x18,0x14(%eax)
5096a1:	8b 54 24 08          	mov    0x8(%esp),%edx
5096a5:	89 50 18             	mov    %edx,0x18(%eax)
5096a8:	c7 40 1c 04 00 00 00 	movl   $0x4,0x1c(%eax)
5096af:	8b c6                	mov    %esi,%eax
5096b1:	8b 10                	mov    (%eax),%edx
5096b3:	ff 12                	call   *(%edx)
5096b5:	33 c9                	xor    %ecx,%ecx
5096b7:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5096bb:	8b 04 24             	mov    (%esp),%eax
5096be:	8d 78 04             	lea    0x4(%eax),%edi
5096c1:	8b 44 24 0c          	mov    0xc(%esp),%eax
5096c5:	3b 44 24 08          	cmp    0x8(%esp),%eax
5096c9:	7d 54                	jge    0x50971f
5096cb:	8b 1f                	mov    (%edi),%ebx
5096cd:	85 db                	test   %ebx,%ebx
5096cf:	7c 05                	jl     0x5096d6
5096d1:	3b 5e 34             	cmp    0x34(%esi),%ebx
5096d4:	7c 16                	jl     0x5096ec
5096d6:	8b 06                	mov    (%esi),%eax
5096d8:	c7 40 14 11 00 00 00 	movl   $0x11,0x14(%eax)
5096df:	8b 54 24 04          	mov    0x4(%esp),%edx
5096e3:	89 50 18             	mov    %edx,0x18(%eax)
5096e6:	8b c6                	mov    %esi,%eax
5096e8:	8b 10                	mov    (%eax),%edx
5096ea:	ff 12                	call   *(%edx)
5096ec:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
5096f1:	7e 1b                	jle    0x50970e
5096f3:	3b 5f fc             	cmp    -0x4(%edi),%ebx
5096f6:	7f 16                	jg     0x50970e
5096f8:	8b 06                	mov    (%esi),%eax
5096fa:	c7 40 14 11 00 00 00 	movl   $0x11,0x14(%eax)
509701:	8b 54 24 04          	mov    0x4(%esp),%edx
509705:	89 50 18             	mov    %edx,0x18(%eax)
509708:	8b c6                	mov    %esi,%eax
50970a:	8b 10                	mov    (%eax),%edx
50970c:	ff 12                	call   *(%edx)
50970e:	ff 44 24 0c          	incl   0xc(%esp)
509712:	83 c7 04             	add    $0x4,%edi
509715:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
509719:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
50971d:	7c ac                	jl     0x5096cb
50971f:	8b 04 24             	mov    (%esp),%eax
509722:	8b 50 14             	mov    0x14(%eax),%edx
509725:	89 54 24 10          	mov    %edx,0x10(%esp)
509729:	8b 0c 24             	mov    (%esp),%ecx
50972c:	8b 41 18             	mov    0x18(%ecx),%eax
50972f:	89 44 24 14          	mov    %eax,0x14(%esp)
509733:	8b 14 24             	mov    (%esp),%edx
509736:	8b 04 24             	mov    (%esp),%eax
509739:	8b 6a 1c             	mov    0x1c(%edx),%ebp
50973c:	8b 50 20             	mov    0x20(%eax),%edx
50973f:	89 54 24 18          	mov    %edx,0x18(%esp)
509743:	83 be dc 00 00 00 00 	cmpl   $0x0,0xdc(%esi)
50974a:	0f 84 5a 01 00 00    	je     0x5098aa
509750:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
509755:	7c 2f                	jl     0x509786
509757:	83 7c 24 10 40       	cmpl   $0x40,0x10(%esp)
50975c:	7d 28                	jge    0x509786
50975e:	8b 4c 24 14          	mov    0x14(%esp),%ecx
509762:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
509766:	7c 1e                	jl     0x509786
509768:	83 7c 24 14 40       	cmpl   $0x40,0x14(%esp)
50976d:	7d 17                	jge    0x509786
50976f:	85 ed                	test   %ebp,%ebp
509771:	7c 13                	jl     0x509786
509773:	83 fd 0d             	cmp    $0xd,%ebp
509776:	7f 0e                	jg     0x509786
509778:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
50977d:	7c 07                	jl     0x509786
50977f:	83 7c 24 18 0d       	cmpl   $0xd,0x18(%esp)
509784:	7e 16                	jle    0x50979c
509786:	8b 06                	mov    (%esi),%eax
509788:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
50978f:	8b 54 24 04          	mov    0x4(%esp),%edx
509793:	89 50 18             	mov    %edx,0x18(%eax)
509796:	8b c6                	mov    %esi,%eax
509798:	8b 10                	mov    (%eax),%edx
50979a:	ff 12                	call   *(%edx)
50979c:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5097a1:	75 1f                	jne    0x5097c2
5097a3:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
5097a8:	74 35                	je     0x5097df
5097aa:	8b 06                	mov    (%esi),%eax
5097ac:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
5097b3:	8b 54 24 04          	mov    0x4(%esp),%edx
5097b7:	89 50 18             	mov    %edx,0x18(%eax)
5097ba:	8b c6                	mov    %esi,%eax
5097bc:	8b 10                	mov    (%eax),%edx
5097be:	ff 12                	call   *(%edx)
5097c0:	eb 1d                	jmp    0x5097df
5097c2:	83 7c 24 08 01       	cmpl   $0x1,0x8(%esp)
5097c7:	74 16                	je     0x5097df
5097c9:	8b 06                	mov    (%esi),%eax
5097cb:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
5097d2:	8b 54 24 04          	mov    0x4(%esp),%edx
5097d6:	89 50 18             	mov    %edx,0x18(%eax)
5097d9:	8b c6                	mov    %esi,%eax
5097db:	8b 10                	mov    (%eax),%edx
5097dd:	ff 12                	call   *(%edx)
5097df:	33 c9                	xor    %ecx,%ecx
5097e1:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5097e5:	8b 04 24             	mov    (%esp),%eax
5097e8:	8d 50 04             	lea    0x4(%eax),%edx
5097eb:	89 54 24 1c          	mov    %edx,0x1c(%esp)
5097ef:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5097f3:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
5097f7:	0f 8d 2a 01 00 00    	jge    0x509927
5097fd:	8b 44 24 1c          	mov    0x1c(%esp),%eax
509801:	8b 18                	mov    (%eax),%ebx
509803:	c1 e3 08             	shl    $0x8,%ebx
509806:	8d 44 24 48          	lea    0x48(%esp),%eax
50980a:	03 d8                	add    %eax,%ebx
50980c:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
509811:	74 1b                	je     0x50982e
509813:	83 3b 00             	cmpl   $0x0,(%ebx)
509816:	7d 16                	jge    0x50982e
509818:	8b 06                	mov    (%esi),%eax
50981a:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
509821:	8b 54 24 04          	mov    0x4(%esp),%edx
509825:	89 50 18             	mov    %edx,0x18(%eax)
509828:	8b c6                	mov    %esi,%eax
50982a:	8b 10                	mov    (%eax),%edx
50982c:	ff 12                	call   *(%edx)
50982e:	8b 7c 24 10          	mov    0x10(%esp),%edi
509832:	3b 7c 24 14          	cmp    0x14(%esp),%edi
509836:	8d 04 bb             	lea    (%ebx,%edi,4),%eax
509839:	8b d8                	mov    %eax,%ebx
50983b:	7f 54                	jg     0x509891
50983d:	83 3b 00             	cmpl   $0x0,(%ebx)
509840:	7d 1c                	jge    0x50985e
509842:	85 ed                	test   %ebp,%ebp
509844:	74 3b                	je     0x509881
509846:	8b 06                	mov    (%esi),%eax
509848:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
50984f:	8b 54 24 04          	mov    0x4(%esp),%edx
509853:	89 50 18             	mov    %edx,0x18(%eax)
509856:	8b c6                	mov    %esi,%eax
509858:	8b 10                	mov    (%eax),%edx
50985a:	ff 12                	call   *(%edx)
50985c:	eb 23                	jmp    0x509881
50985e:	3b 2b                	cmp    (%ebx),%ebp
509860:	75 09                	jne    0x50986b
509862:	8d 4d ff             	lea    -0x1(%ebp),%ecx
509865:	3b 4c 24 18          	cmp    0x18(%esp),%ecx
509869:	74 16                	je     0x509881
50986b:	8b 06                	mov    (%esi),%eax