50a496:	ba 01 00 00 00       	mov    $0x1,%edx
50a49b:	8b 70 04             	mov    0x4(%eax),%esi
50a49e:	ff 56 08             	call   *0x8(%esi)
50a4a1:	8b f0                	mov    %eax,%esi
50a4a3:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
50a4a6:	c1 e0 02             	shl    $0x2,%eax
50a4a9:	8b d3                	mov    %ebx,%edx
50a4ab:	50                   	push   %eax
50a4ac:	56                   	push   %esi
50a4ad:	c1 e2 02             	shl    $0x2,%edx
50a4b0:	03 54 24 14          	add    0x14(%esp),%edx
50a4b4:	52                   	push   %edx
50a4b5:	e8 12 0e ff ff       	call   0x4fb2cc
50a4ba:	83 c4 0c             	add    $0xc,%esp
50a4bd:	33 c0                	xor    %eax,%eax
50a4bf:	3b d8                	cmp    %eax,%ebx
50a4c1:	8b ce                	mov    %esi,%ecx
50a4c3:	8b 54 24 0c          	mov    0xc(%esp),%edx
50a4c7:	7e 25                	jle    0x50a4ee
50a4c9:	8d 3c 58             	lea    (%eax,%ebx,2),%edi
50a4cc:	8b 3c be             	mov    (%esi,%edi,4),%edi
50a4cf:	89 3a                	mov    %edi,(%edx)
50a4d1:	8d 3c 98             	lea    (%eax,%ebx,4),%edi
50a4d4:	8b 6c 24 0c          	mov    0xc(%esp),%ebp
50a4d8:	40                   	inc    %eax
50a4d9:	83 c2 04             	add    $0x4,%edx
50a4dc:	8d 7c bd 00          	lea    0x0(%ebp,%edi,4),%edi
50a4e0:	57                   	push   %edi
50a4e1:	5d                   	pop    %ebp
50a4e2:	8b 39                	mov    (%ecx),%edi
50a4e4:	83 c1 04             	add    $0x4,%ecx
50a4e7:	3b d8                	cmp    %eax,%ebx
50a4e9:	89 7d 00             	mov    %edi,0x0(%ebp)
50a4ec:	7f db                	jg     0x50a4c9
50a4ee:	8b c3                	mov    %ebx,%eax
50a4f0:	8b cb                	mov    %ebx,%ecx
50a4f2:	c1 e1 02             	shl    $0x2,%ecx
50a4f5:	8b 54 24 10          	mov    0x10(%esp),%edx
50a4f9:	c1 e0 02             	shl    $0x2,%eax
50a4fc:	03 44 24 0c          	add    0xc(%esp),%eax
50a500:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
50a503:	89 02                	mov    %eax,(%edx)
50a505:	01 4c 24 0c          	add    %ecx,0xc(%esp)
50a509:	83 44 24 10 04       	addl   $0x4,0x10(%esp)
50a50e:	ff 44 24 04          	incl   0x4(%esp)
50a512:	83 44 24 08 54       	addl   $0x54,0x8(%esp)
50a517:	8b 04 24             	mov    (%esp),%eax
50a51a:	8b 50 34             	mov    0x34(%eax),%edx
50a51d:	3b 54 24 04          	cmp    0x4(%esp),%edx
50a521:	0f 8f 49 ff ff ff    	jg     0x50a470
50a527:	83 c4 14             	add    $0x14,%esp
50a52a:	5d                   	pop    %ebp
50a52b:	5f                   	pop    %edi
50a52c:	5e                   	pop    %esi
50a52d:	5b                   	pop    %ebx
50a52e:	c3                   	ret
50a52f:	90                   	nop
50a530:	53                   	push   %ebx
50a531:	56                   	push   %esi
50a532:	57                   	push   %edi
50a533:	55                   	push   %ebp
50a534:	51                   	push   %ecx
50a535:	8b d8                	mov    %eax,%ebx
50a537:	85 d2                	test   %edx,%edx
50a539:	74 0f                	je     0x50a54a
50a53b:	8b 03                	mov    (%ebx),%eax
50a53d:	c7 40 14 04 00 00 00 	movl   $0x4,0x14(%eax)
50a544:	8b c3                	mov    %ebx,%eax
50a546:	8b 10                	mov    (%eax),%edx
50a548:	ff 12                	call   *(%edx)
50a54a:	8b c3                	mov    %ebx,%eax
50a54c:	b9 40 00 00 00       	mov    $0x40,%ecx
50a551:	ba 01 00 00 00       	mov    $0x1,%edx
50a556:	8b 70 04             	mov    0x4(%eax),%esi
50a559:	ff 16                	call   *(%esi)
50a55b:	89 83 4c 01 00 00    	mov    %eax,0x14c(%ebx)
50a561:	c7 00 9c a0 50 00    	movl   $0x50a09c,(%eax)
50a567:	8b 93 5c 01 00 00    	mov    0x15c(%ebx),%edx
50a56d:	83 7a 08 00          	cmpl   $0x0,0x8(%edx)
50a571:	74 10                	je     0x50a583
50a573:	c7 40 04 70 a2 50 00 	movl   $0x50a270,0x4(%eax)
50a57a:	8b c3                	mov    %ebx,%eax
50a57c:	e8 97 fe ff ff       	call   0x50a418
50a581:	eb 4d                	jmp    0x50a5d0
50a583:	c7 40 04 10 a1 50 00 	movl   $0x50a110,0x4(%eax)
50a58a:	33 c9                	xor    %ecx,%ecx
50a58c:	8d 78 08             	lea    0x8(%eax),%edi
50a58f:	89 0c 24             	mov    %ecx,(%esp)
50a592:	8b 73 3c             	mov    0x3c(%ebx),%esi
50a595:	eb 31                	jmp    0x50a5c8
50a597:	8b 83 e4 00 00 00    	mov    0xe4(%ebx),%eax
50a59d:	50                   	push   %eax
50a59e:	8b 46 1c             	mov    0x1c(%esi),%eax
50a5a1:	c1 e0 03             	shl    $0x3,%eax
50a5a4:	f7 ab e0 00 00 00    	imull  0xe0(%ebx)
50a5aa:	99                   	cltd
50a5ab:	f7 7e 08             	idivl  0x8(%esi)
50a5ae:	8b c8                	mov    %eax,%ecx
50a5b0:	8b c3                	mov    %ebx,%eax
50a5b2:	ba 01 00 00 00       	mov    $0x1,%edx
50a5b7:	8b 68 04             	mov    0x4(%eax),%ebp
50a5ba:	ff 55 08             	call   *0x8(%ebp)
50a5bd:	89 07                	mov    %eax,(%edi)
50a5bf:	83 c7 04             	add    $0x4,%edi
50a5c2:	ff 04 24             	incl   (%esp)
50a5c5:	83 c6 54             	add    $0x54,%esi
50a5c8:	8b 04 24             	mov    (%esp),%eax
50a5cb:	3b 43 34             	cmp    0x34(%ebx),%eax
50a5ce:	7c c7                	jl     0x50a597
50a5d0:	5a                   	pop    %edx
50a5d1:	5d                   	pop    %ebp
50a5d2:	5f                   	pop    %edi
50a5d3:	5e                   	pop    %esi
50a5d4:	5b                   	pop    %ebx
50a5d5:	c3                   	ret
50a5d6:	8b c0                	mov    %eax,%eax
50a5d8:	83 b8 ec 00 00 00 01 	cmpl   $0x1,0xec(%eax)
50a5df:	8b 90 50 01 00 00    	mov    0x150(%eax),%edx
50a5e5:	7e 09                	jle    0x50a5f0
50a5e7:	c7 42 14 01 00 00 00 	movl   $0x1,0x14(%edx)
50a5ee:	eb 26                	jmp    0x50a616
50a5f0:	8b 88 e8 00 00 00    	mov    0xe8(%eax),%ecx
50a5f6:	49                   	dec    %ecx
50a5f7:	3b 4a 08             	cmp    0x8(%edx),%ecx
50a5fa:	76 0e                	jbe    0x50a60a
50a5fc:	8b 80 f0 00 00 00    	mov    0xf0(%eax),%eax
50a602:	8b 40 0c             	mov    0xc(%eax),%eax
50a605:	89 42 14             	mov    %eax,0x14(%edx)
50a608:	eb 0c                	jmp    0x50a616
50a60a:	8b 88 f0 00 00 00    	mov    0xf0(%eax),%ecx
50a610:	8b 41 48             	mov    0x48(%ecx),%eax
50a613:	89 42 14             	mov    %eax,0x14(%edx)
50a616:	33 c9                	xor    %ecx,%ecx
50a618:	33 c0                	xor    %eax,%eax
50a61a:	89 4a 0c             	mov    %ecx,0xc(%edx)
50a61d:	89 42 10             	mov    %eax,0x10(%edx)
50a620:	c3                   	ret
50a621:	90                   	nop
50a622:	90                   	nop
50a623:	90                   	nop
50a624:	53                   	push   %ebx
50a625:	56                   	push   %esi
50a626:	8b f0                	mov    %eax,%esi
50a628:	57                   	push   %edi
50a629:	33 c0                	xor    %eax,%eax
50a62b:	8b fa                	mov    %edx,%edi
50a62d:	8b 9e 50 01 00 00    	mov    0x150(%esi),%ebx
50a633:	89 43 08             	mov    %eax,0x8(%ebx)
50a636:	8b c6                	mov    %esi,%eax
50a638:	e8 9b ff ff ff       	call   0x50a5d8
50a63d:	83 ef 01             	sub    $0x1,%edi
50a640:	72 08                	jb     0x50a64a
50a642:	4f                   	dec    %edi
50a643:	74 41                	je     0x50a686
50a645:	4f                   	dec    %edi
50a646:	74 20                	je     0x50a668
50a648:	eb 5a                	jmp    0x50a6a4
50a64a:	83 7b 40 00          	cmpl   $0x0,0x40(%ebx)
50a64e:	74 0f                	je     0x50a65f
50a650:	8b 16                	mov    (%esi),%edx
50a652:	8b c6                	mov    %esi,%eax
50a654:	c7 42 14 04 00 00 00 	movl   $0x4,0x14(%edx)
50a65b:	8b 10                	mov    (%eax),%edx
50a65d:	ff 12                	call   *(%edx)
50a65f:	c7 43 04 b8 a6 50 00 	movl   $0x50a6b8,0x4(%ebx)
50a666:	eb 4b                	jmp    0x50a6b3
50a668:	83 7b 40 00          	cmpl   $0x0,0x40(%ebx)
50a66c:	75 0f                	jne    0x50a67d
50a66e:	8b 0e                	mov    (%esi),%ecx
50a670:	8b c6                	mov    %esi,%eax
50a672:	c7 41 14 04 00 00 00 	movl   $0x4,0x14(%ecx)
50a679:	8b 10                	mov    (%eax),%edx
50a67b:	ff 12                	call   *(%edx)
50a67d:	c7 43 04 e8 a8 50 00 	movl   $0x50a8e8,0x4(%ebx)
50a684:	eb 2d                	jmp    0x50a6b3
50a686:	83 7b 40 00          	cmpl   $0x0,0x40(%ebx)
50a68a:	75 0f                	jne    0x50a69b
50a68c:	8b 0e                	mov    (%esi),%ecx
50a68e:	8b c6                	mov    %esi,%eax
50a690:	c7 41 14 04 00 00 00 	movl   $0x4,0x14(%ecx)
50a697:	8b 10                	mov    (%eax),%edx
50a699:	ff 12                	call   *(%edx)
50a69b:	c7 43 04 78 ab 50 00 	movl   $0x50ab78,0x4(%ebx)
50a6a2:	eb 0f                	jmp    0x50a6b3
50a6a4:	8b 0e                	mov    (%esi),%ecx
50a6a6:	8b c6                	mov    %esi,%eax
50a6a8:	c7 41 14 04 00 00 00 	movl   $0x4,0x14(%ecx)
50a6af:	8b 10                	mov    (%eax),%edx
50a6b1:	ff 12                	call   *(%edx)
50a6b3:	5f                   	pop    %edi
50a6b4:	5e                   	pop    %esi
50a6b5:	5b                   	pop    %ebx
50a6b6:	c3                   	ret
50a6b7:	90                   	nop
50a6b8:	53                   	push   %ebx
50a6b9:	56                   	push   %esi
50a6ba:	57                   	push   %edi
50a6bb:	83 c4 c4             	add    $0xffffffc4,%esp
50a6be:	89 54 24 04          	mov    %edx,0x4(%esp)
50a6c2:	89 04 24             	mov    %eax,(%esp)
50a6c5:	8b 04 24             	mov    (%esp),%eax
50a6c8:	8b b0 50 01 00 00    	mov    0x150(%eax),%esi
50a6ce:	8b 04 24             	mov    (%esp),%eax
50a6d1:	8b 90 00 01 00 00    	mov    0x100(%eax),%edx
50a6d7:	4a                   	dec    %edx
50a6d8:	89 54 24 0c          	mov    %edx,0xc(%esp)
50a6dc:	8b 0c 24             	mov    (%esp),%ecx
50a6df:	8b 81 e8 00 00 00    	mov    0xe8(%ecx),%eax
50a6e5:	48                   	dec    %eax
50a6e6:	89 44 24 10          	mov    %eax,0x10(%esp)
50a6ea:	8b 56 10             	mov    0x10(%esi),%edx
50a6ed:	89 54 24 20          	mov    %edx,0x20(%esp)
50a6f1:	e9 cd 01 00 00       	jmp    0x50a8c3
50a6f6:	8b 4e 0c             	mov    0xc(%esi),%ecx
50a6f9:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50a6fd:	8b 44 24 08          	mov    0x8(%esp),%eax
50a701:	3b 44 24 0c          	cmp    0xc(%esp),%eax
50a705:	0f 87 af 01 00 00    	ja     0x50a8ba
50a70b:	33 d2                	xor    %edx,%edx
50a70d:	33 c9                	xor    %ecx,%ecx
50a70f:	89 54 24 14          	mov    %edx,0x14(%esp)
50a713:	89 4c 24 18          	mov    %ecx,0x18(%esp)
50a717:	8b 44 24 04          	mov    0x4(%esp),%eax
50a71b:	8b d0                	mov    %eax,%edx
50a71d:	89 54 24 38          	mov    %edx,0x38(%esp)
50a721:	8b 0c 24             	mov    (%esp),%ecx
50a724:	8d 81 f0 00 00 00    	lea    0xf0(%ecx),%eax
50a72a:	89 44 24 30          	mov    %eax,0x30(%esp)
50a72e:	e9 3d 01 00 00       	jmp    0x50a870
50a733:	8b 54 24 30          	mov    0x30(%esp),%edx
50a737:	8b 1a                	mov    (%edx),%ebx
50a739:	8b 44 24 08          	mov    0x8(%esp),%eax
50a73d:	3b 44 24 0c          	cmp    0xc(%esp),%eax
50a741:	73 05                	jae    0x50a748
50a743:	8b 53 34             	mov    0x34(%ebx),%edx
50a746:	eb 03                	jmp    0x50a74b
50a748:	8b 53 44             	mov    0x44(%ebx),%edx
50a74b:	89 54 24 24          	mov    %edx,0x24(%esp)
50a74f:	8b 44 24 08          	mov    0x8(%esp),%eax
50a753:	f7 6b 40             	imull  0x40(%ebx)
50a756:	89 44 24 2c          	mov    %eax,0x2c(%esp)
50a75a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
50a75e:	c1 e1 03             	shl    $0x3,%ecx
50a761:	33 c0                	xor    %eax,%eax
50a763:	89 4c 24 28          	mov    %ecx,0x28(%esp)
50a767:	89 44 24 1c          	mov    %eax,0x1c(%esp)
50a76b:	8b 54 24 38          	mov    0x38(%esp),%edx
50a76f:	8b ca                	mov    %edx,%ecx
50a771:	89 4c 24 34          	mov    %ecx,0x34(%esp)
50a775:	e9 db 00 00 00       	jmp    0x50a855
50a77a:	8b 46 08             	mov    0x8(%esi),%eax
50a77d:	3b 44 24 10          	cmp    0x10(%esp),%eax
50a781:	72 0d                	jb     0x50a790
50a783:	8b 54 24 20          	mov    0x20(%esp),%edx
50a787:	03 54 24 1c          	add    0x1c(%esp),%edx
50a78b:	3b 53 48             	cmp    0x48(%ebx),%edx
50a78e:	7d 77                	jge    0x50a807
50a790:	8b 4c 24 14          	mov    0x14(%esp),%ecx
50a794:	8b 44 8e 18          	mov    0x18(%esi,%ecx,4),%eax
50a798:	50                   	push   %eax
50a799:	8b 54 24 2c          	mov    0x2c(%esp),%edx
50a79d:	52                   	push   %edx
50a79e:	8b 4c 24 34          	mov    0x34(%esp),%ecx
50a7a2:	51                   	push   %ecx
50a7a3:	8b 44 24 30          	mov    0x30(%esp),%eax
50a7a7:	50                   	push   %eax
50a7a8:	8b 44 24 10          	mov    0x10(%esp),%eax
50a7ac:	8b 54 24 44          	mov    0x44(%esp),%edx
50a7b0:	8b b8 60 01 00 00    	mov    0x160(%eax),%edi
50a7b6:	8b 0a                	mov    (%edx),%ecx
50a7b8:	8b d3                	mov    %ebx,%edx
50a7ba:	ff 57 04             	call   *0x4(%edi)
50a7bd:	8b 43 34             	mov    0x34(%ebx),%eax
50a7c0:	3b 44 24 24          	cmp    0x24(%esp),%eax
50a7c4:	7e 7f                	jle    0x50a845
50a7c6:	2b 44 24 24          	sub    0x24(%esp),%eax
50a7ca:	c1 e0 07             	shl    $0x7,%eax
50a7cd:	50                   	push   %eax
50a7ce:	6a 00                	push   $0x0
50a7d0:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50a7d4:	03 54 24 2c          	add    0x2c(%esp),%edx
50a7d8:	8b 4c 96 18          	mov    0x18(%esi,%edx,4),%ecx
50a7dc:	51                   	push   %ecx
50a7dd:	e8 d2 0a ff ff       	call   0x4fb2b4
50a7e2:	83 c4 0c             	add    $0xc,%esp
50a7e5:	8b 44 24 24          	mov    0x24(%esp),%eax
50a7e9:	eb 15                	jmp    0x50a800
50a7eb:	8b 54 24 14          	mov    0x14(%esp),%edx
50a7ef:	03 d0                	add    %eax,%edx
50a7f1:	40                   	inc    %eax
50a7f2:	8b 4c 96 14          	mov    0x14(%esi,%edx,4),%ecx
50a7f6:	8b 54 96 18          	mov    0x18(%esi,%edx,4),%edx
50a7fa:	66 8b 09             	mov    (%ecx),%cx
50a7fd:	66 89 0a             	mov    %cx,(%edx)
50a800:	3b 43 34             	cmp    0x34(%ebx),%eax
50a803:	7c e6                	jl     0x50a7eb
50a805:	eb 3e                	jmp    0x50a845
50a807:	8b 43 34             	mov    0x34(%ebx),%eax
50a80a:	c1 e0 07             	shl    $0x7,%eax
50a80d:	50                   	push   %eax
50a80e:	6a 00                	push   $0x0
50a810:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50a814:	8b 54 86 18          	mov    0x18(%esi,%eax,4),%edx
50a818:	52                   	push   %edx
50a819:	e8 96 0a ff ff       	call   0x4fb2b4
50a81e:	83 c4 0c             	add    $0xc,%esp
50a821:	33 c0                	xor    %eax,%eax
50a823:	8b 54 24 14          	mov    0x14(%esp),%edx
50a827:	8d 54 96 14          	lea    0x14(%esi,%edx,4),%edx
50a82b:	eb 13                	jmp    0x50a840
50a82d:	8b 4c 24 14          	mov    0x14(%esp),%ecx
50a831:	8b 3a                	mov    (%edx),%edi
50a833:	03 c8                	add    %eax,%ecx
50a835:	40                   	inc    %eax
50a836:	66 8b 3f             	mov    (%edi),%di
50a839:	8b 4c 8e 18          	mov    0x18(%esi,%ecx,4),%ecx
50a83d:	66 89 39             	mov    %di,(%ecx)
50a840:	3b 43 34             	cmp    0x34(%ebx),%eax
50a843:	7c e8                	jl     0x50a82d
50a845:	8b 43 34             	mov    0x34(%ebx),%eax
50a848:	01 44 24 14          	add    %eax,0x14(%esp)
50a84c:	83 44 24 28 08       	addl   $0x8,0x28(%esp)
50a851:	ff 44 24 1c          	incl   0x1c(%esp)
50a855:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50a859:	3b 53 38             	cmp    0x38(%ebx),%edx
50a85c:	0f 8c 18 ff ff ff    	jl     0x50a77a
50a862:	ff 44 24 18          	incl   0x18(%esp)
50a866:	83 44 24 38 04       	addl   $0x4,0x38(%esp)
50a86b:	83 44 24 30 04       	addl   $0x4,0x30(%esp)
50a870:	8b 0c 24             	mov    (%esp),%ecx
50a873:	8b 81 ec 00 00 00    	mov    0xec(%ecx),%eax
50a879:	3b 44 24 18          	cmp    0x18(%esp),%eax
50a87d:	0f 8f b0 fe ff ff    	jg     0x50a733
50a883:	8d 56 18             	lea    0x18(%esi),%edx
50a886:	8b 04 24             	mov    (%esp),%eax
50a889:	8b 88 64 01 00 00    	mov    0x164(%eax),%ecx
50a88f:	ff 51 04             	call   *0x4(%ecx)
50a892:	85 c0                	test   %eax,%eax
50a894:	75 12                	jne    0x50a8a8
50a896:	8b 54 24 20          	mov    0x20(%esp),%edx
50a89a:	89 56 10             	mov    %edx,0x10(%esi)
50a89d:	8b 44 24 08          	mov    0x8(%esp),%eax
50a8a1:	89 46 0c             	mov    %eax,0xc(%esi)
50a8a4:	33 c0                	xor    %eax,%eax
50a8a6:	eb 38                	jmp    0x50a8e0
50a8a8:	ff 44 24 08          	incl   0x8(%esp)
50a8ac:	8b 54 24 08          	mov    0x8(%esp),%edx
50a8b0:	3b 54 24 0c          	cmp    0xc(%esp),%edx
50a8b4:	0f 86 51 fe ff ff    	jbe    0x50a70b
50a8ba:	33 c9                	xor    %ecx,%ecx