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
50986d:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
509874:	8b 54 24 04          	mov    0x4(%esp),%edx
509878:	89 50 18             	mov    %edx,0x18(%eax)
50987b:	8b c6                	mov    %esi,%eax
50987d:	8b 10                	mov    (%eax),%edx
50987f:	ff 12                	call   *(%edx)
509881:	8b 4c 24 18          	mov    0x18(%esp),%ecx
509885:	47                   	inc    %edi
509886:	89 0b                	mov    %ecx,(%ebx)
509888:	83 c3 04             	add    $0x4,%ebx
50988b:	3b 7c 24 14          	cmp    0x14(%esp),%edi
50988f:	7e ac                	jle    0x50983d
509891:	ff 44 24 0c          	incl   0xc(%esp)
509895:	83 44 24 1c 04       	addl   $0x4,0x1c(%esp)
50989a:	8b 44 24 0c          	mov    0xc(%esp),%eax
50989e:	3b 44 24 08          	cmp    0x8(%esp),%eax
5098a2:	0f 8c 55 ff ff ff    	jl     0x5097fd
5098a8:	eb 7d                	jmp    0x509927
5098aa:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
5098af:	75 12                	jne    0x5098c3
5098b1:	83 7c 24 14 3f       	cmpl   $0x3f,0x14(%esp)
5098b6:	75 0b                	jne    0x5098c3
5098b8:	85 ed                	test   %ebp,%ebp
5098ba:	75 07                	jne    0x5098c3
5098bc:	83 7c 24 18 00       	cmpl   $0x0,0x18(%esp)
5098c1:	74 16                	je     0x5098d9
5098c3:	8b 06                	mov    (%esi),%eax
5098c5:	c7 40 14 0f 00 00 00 	movl   $0xf,0x14(%eax)
5098cc:	8b 54 24 04          	mov    0x4(%esp),%edx
5098d0:	89 50 18             	mov    %edx,0x18(%eax)
5098d3:	8b c6                	mov    %esi,%eax
5098d5:	8b 10                	mov    (%eax),%edx
5098d7:	ff 12                	call   *(%edx)
5098d9:	33 c9                	xor    %ecx,%ecx
5098db:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5098df:	8b 04 24             	mov    (%esp),%eax
5098e2:	8d 78 04             	lea    0x4(%eax),%edi
5098e5:	8b 44 24 0c          	mov    0xc(%esp),%eax
5098e9:	3b 44 24 08          	cmp    0x8(%esp),%eax
5098ed:	7d 38                	jge    0x509927
5098ef:	8b 1f                	mov    (%edi),%ebx
5098f1:	83 7c 9c 20 00       	cmpl   $0x0,0x20(%esp,%ebx,4)
5098f6:	74 16                	je     0x50990e
5098f8:	8b 06                	mov    (%esi),%eax
5098fa:	c7 40 14 11 00 00 00 	movl   $0x11,0x14(%eax)
509901:	8b 54 24 04          	mov    0x4(%esp),%edx
509905:	89 50 18             	mov    %edx,0x18(%eax)
509908:	8b c6                	mov    %esi,%eax
50990a:	8b 10                	mov    (%eax),%edx
50990c:	ff 12                	call   *(%edx)
50990e:	c7 44 9c 20 01 00 00 	movl   $0x1,0x20(%esp,%ebx,4)
509915:	00
509916:	ff 44 24 0c          	incl   0xc(%esp)
50991a:	83 c7 04             	add    $0x4,%edi
50991d:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
509921:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
509925:	7c c8                	jl     0x5098ef
509927:	83 04 24 24          	addl   $0x24,(%esp)
50992b:	ff 44 24 04          	incl   0x4(%esp)
50992f:	8b 44 24 04          	mov    0x4(%esp),%eax
509933:	3b 86 a0 00 00 00    	cmp    0xa0(%esi),%eax
509939:	0f 8e 42 fd ff ff    	jle    0x509681
50993f:	83 be dc 00 00 00 00 	cmpl   $0x0,0xdc(%esi)
509946:	74 35                	je     0x50997d
509948:	33 d2                	xor    %edx,%edx
50994a:	8d 5c 24 48          	lea    0x48(%esp),%ebx
50994e:	89 54 24 0c          	mov    %edx,0xc(%esp)
509952:	eb 1e                	jmp    0x509972
509954:	83 3b 00             	cmpl   $0x0,(%ebx)
509957:	7d 0f                	jge    0x509968
509959:	8b 06                	mov    (%esi),%eax
50995b:	c7 40 14 2c 00 00 00 	movl   $0x2c,0x14(%eax)
509962:	8b c6                	mov    %esi,%eax
509964:	8b 10                	mov    (%eax),%edx
509966:	ff 12                	call   *(%edx)
509968:	ff 44 24 0c          	incl   0xc(%esp)
50996c:	81 c3 00 01 00 00    	add    $0x100,%ebx
509972:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
509976:	3b 4e 34             	cmp    0x34(%esi),%ecx
509979:	7c d9                	jl     0x509954
50997b:	eb 30                	jmp    0x5099ad
50997d:	33 c0                	xor    %eax,%eax
50997f:	8d 5c 24 20          	lea    0x20(%esp),%ebx
509983:	89 44 24 0c          	mov    %eax,0xc(%esp)
509987:	eb 1b                	jmp    0x5099a4
509989:	83 3b 00             	cmpl   $0x0,(%ebx)
50998c:	75 0f                	jne    0x50999d
50998e:	8b 06                	mov    (%esi),%eax
509990:	c7 40 14 2c 00 00 00 	movl   $0x2c,0x14(%eax)
509997:	8b c6                	mov    %esi,%eax
509999:	8b 10                	mov    (%eax),%edx
50999b:	ff 12                	call   *(%edx)
50999d:	ff 44 24 0c          	incl   0xc(%esp)
5099a1:	83 c3 04             	add    $0x4,%ebx
5099a4:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5099a8:	3b 4e 34             	cmp    0x34(%esi),%ecx
5099ab:	7c dc                	jl     0x509989
5099ad:	81 c4 48 0a 00 00    	add    $0xa48,%esp
5099b3:	5d                   	pop    %ebp
5099b4:	5f                   	pop    %edi
5099b5:	5e                   	pop    %esi
5099b6:	5b                   	pop    %ebx
5099b7:	c3                   	ret
5099b8:	53                   	push   %ebx
5099b9:	8b d8                	mov    %eax,%ebx
5099bb:	56                   	push   %esi
5099bc:	57                   	push   %edi
5099bd:	55                   	push   %ebp
5099be:	8b 93 a4 00 00 00    	mov    0xa4(%ebx),%edx
5099c4:	85 d2                	test   %edx,%edx
5099c6:	74 6d                	je     0x509a35
5099c8:	8b 83 44 01 00 00    	mov    0x144(%ebx),%eax
5099ce:	8d b3 f0 00 00 00    	lea    0xf0(%ebx),%esi
5099d4:	8b 48 20             	mov    0x20(%eax),%ecx
5099d7:	c1 e1 02             	shl    $0x2,%ecx
5099da:	8d 0c c9             	lea    (%ecx,%ecx,8),%ecx
5099dd:	03 ca                	add    %edx,%ecx
5099df:	8b d1                	mov    %ecx,%edx
5099e1:	8b 02                	mov    (%edx),%eax
5099e3:	8d 4a 04             	lea    0x4(%edx),%ecx
5099e6:	89 83 ec 00 00 00    	mov    %eax,0xec(%ebx)
5099ec:	33 c0                	xor    %eax,%eax
5099ee:	eb 1b                	jmp    0x509a0b
5099f0:	8b 39                	mov    (%ecx),%edi
5099f2:	40                   	inc    %eax
5099f3:	8b ef                	mov    %edi,%ebp
5099f5:	8d 7c bd 00          	lea    0x0(%ebp,%edi,4),%edi
5099f9:	8d 7c bd 00          	lea    0x0(%ebp,%edi,4),%edi
5099fd:	c1 e7 02             	shl    $0x2,%edi
509a00:	03 7b 3c             	add    0x3c(%ebx),%edi
509a03:	89 3e                	mov    %edi,(%esi)
509a05:	83 c6 04             	add    $0x4,%esi
509a08:	83 c1 04             	add    $0x4,%ecx
509a0b:	3b 02                	cmp    (%edx),%eax
509a0d:	7c e1                	jl     0x5099f0
509a0f:	8b 42 14             	mov    0x14(%edx),%eax
509a12:	89 83 34 01 00 00    	mov    %eax,0x134(%ebx)
509a18:	8b 4a 18             	mov    0x18(%edx),%ecx
509a1b:	89 8b 38 01 00 00    	mov    %ecx,0x138(%ebx)
509a21:	8b 42 1c             	mov    0x1c(%edx),%eax
509a24:	89 83 3c 01 00 00    	mov    %eax,0x13c(%ebx)
509a2a:	8b 52 20             	mov    0x20(%edx),%edx
509a2d:	89 93 40 01 00 00    	mov    %edx,0x140(%ebx)
509a33:	eb 6e                	jmp    0x509aa3
509a35:	83 7b 34 04          	cmpl   $0x4,0x34(%ebx)
509a39:	7e 1c                	jle    0x509a57
509a3b:	8b 03                	mov    (%ebx),%eax
509a3d:	c7 40 14 18 00 00 00 	movl   $0x18,0x14(%eax)
509a44:	8b 53 34             	mov    0x34(%ebx),%edx
509a47:	89 50 18             	mov    %edx,0x18(%eax)
509a4a:	c7 40 1c 04 00 00 00 	movl   $0x4,0x1c(%eax)
509a51:	8b c3                	mov    %ebx,%eax
509a53:	8b 10                	mov    (%eax),%edx
509a55:	ff 12                	call   *(%edx)
509a57:	8b 4b 34             	mov    0x34(%ebx),%ecx
509a5a:	89 8b ec 00 00 00    	mov    %ecx,0xec(%ebx)
509a60:	33 c0                	xor    %eax,%eax
509a62:	8d 93 f0 00 00 00    	lea    0xf0(%ebx),%edx
509a68:	eb 12                	jmp    0x509a7c
509a6a:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
509a6d:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
509a70:	40                   	inc    %eax
509a71:	c1 e1 02             	shl    $0x2,%ecx
509a74:	03 4b 3c             	add    0x3c(%ebx),%ecx
509a77:	89 0a                	mov    %ecx,(%edx)
509a79:	83 c2 04             	add    $0x4,%edx
509a7c:	3b 43 34             	cmp    0x34(%ebx),%eax
509a7f:	7c e9                	jl     0x509a6a
509a81:	33 c0                	xor    %eax,%eax
509a83:	33 d2                	xor    %edx,%edx
509a85:	89 83 34 01 00 00    	mov    %eax,0x134(%ebx)
509a8b:	33 c9                	xor    %ecx,%ecx
509a8d:	c7 83 38 01 00 00 3f 	movl   $0x3f,0x138(%ebx)
509a94:	00 00 00
509a97:	89 93 3c 01 00 00    	mov    %edx,0x13c(%ebx)