50a29f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50a2a2:	8b 01                	mov    (%ecx),%eax
50a2a4:	3b 45 14             	cmp    0x14(%ebp),%eax
50a2a7:	0f 83 af 00 00 00    	jae    0x50a35c
50a2ad:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
50a2b0:	8b 55 14             	mov    0x14(%ebp),%edx
50a2b3:	2b 4b 34             	sub    0x34(%ebx),%ecx
50a2b6:	2b d0                	sub    %eax,%edx
50a2b8:	8b c2                	mov    %edx,%eax
50a2ba:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50a2bd:	3b 45 f0             	cmp    -0x10(%ebp),%eax
50a2c0:	76 05                	jbe    0x50a2c7
50a2c2:	8b 55 f0             	mov    -0x10(%ebp),%edx
50a2c5:	eb 02                	jmp    0x50a2c9
50a2c7:	8b d0                	mov    %eax,%edx
50a2c9:	89 55 f0             	mov    %edx,-0x10(%ebp)
50a2cc:	8b 43 34             	mov    0x34(%ebx),%eax
50a2cf:	50                   	push   %eax
50a2d0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50a2d3:	51                   	push   %ecx
50a2d4:	8d 4b 08             	lea    0x8(%ebx),%ecx
50a2d7:	8b 45 f4             	mov    -0xc(%ebp),%eax
50a2da:	8b 10                	mov    (%eax),%edx
50a2dc:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a2df:	c1 e2 02             	shl    $0x2,%edx
50a2e2:	03 55 f8             	add    -0x8(%ebp),%edx
50a2e5:	8b b0 58 01 00 00    	mov    0x158(%eax),%esi
50a2eb:	ff 56 04             	call   *0x4(%esi)
50a2ee:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a2f1:	8b 50 1c             	mov    0x1c(%eax),%edx
50a2f4:	3b 53 30             	cmp    0x30(%ebx),%edx
50a2f7:	75 50                	jne    0x50a349
50a2f9:	33 c9                	xor    %ecx,%ecx
50a2fb:	89 4d ec             	mov    %ecx,-0x14(%ebp)
50a2fe:	8d 43 08             	lea    0x8(%ebx),%eax
50a301:	89 45 e4             	mov    %eax,-0x1c(%ebp)
50a304:	eb 38                	jmp    0x50a33e
50a306:	bf 01 00 00 00       	mov    $0x1,%edi
50a30b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
50a30e:	8b f0                	mov    %eax,%esi
50a310:	eb 1a                	jmp    0x50a32c
50a312:	8b d7                	mov    %edi,%edx
50a314:	f7 da                	neg    %edx
50a316:	52                   	push   %edx
50a317:	6a 01                	push   $0x1
50a319:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a31c:	8b 51 18             	mov    0x18(%ecx),%edx
50a31f:	52                   	push   %edx
50a320:	33 d2                	xor    %edx,%edx
50a322:	8b 06                	mov    (%esi),%eax
50a324:	8b c8                	mov    %eax,%ecx
50a326:	e8 69 d8 ff ff       	call   0x507b94
50a32b:	47                   	inc    %edi
50a32c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50a32f:	3b b9 e4 00 00 00    	cmp    0xe4(%ecx),%edi
50a335:	7e db                	jle    0x50a312
50a337:	ff 45 ec             	incl   -0x14(%ebp)
50a33a:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
50a33e:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a341:	8b 50 34             	mov    0x34(%eax),%edx
50a344:	3b 55 ec             	cmp    -0x14(%ebp),%edx
50a347:	7f bd                	jg     0x50a306
50a349:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50a34c:	8b 45 f0             	mov    -0x10(%ebp),%eax
50a34f:	01 01                	add    %eax,(%ecx)
50a351:	8b 55 f0             	mov    -0x10(%ebp),%edx
50a354:	01 53 34             	add    %edx,0x34(%ebx)
50a357:	29 43 30             	sub    %eax,0x30(%ebx)
50a35a:	eb 47                	jmp    0x50a3a3
50a35c:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
50a360:	0f 85 a9 00 00 00    	jne    0x50a40f
50a366:	8b 4b 34             	mov    0x34(%ebx),%ecx
50a369:	3b 4b 3c             	cmp    0x3c(%ebx),%ecx
50a36c:	7d 35                	jge    0x50a3a3
50a36e:	33 c0                	xor    %eax,%eax
50a370:	8d 73 08             	lea    0x8(%ebx),%esi
50a373:	89 45 ec             	mov    %eax,-0x14(%ebp)
50a376:	eb 1a                	jmp    0x50a392
50a378:	8b 43 3c             	mov    0x3c(%ebx),%eax
50a37b:	50                   	push   %eax
50a37c:	8b 55 fc             	mov    -0x4(%ebp),%edx
50a37f:	8b 52 18             	mov    0x18(%edx),%edx
50a382:	8b 06                	mov    (%esi),%eax
50a384:	8b 4b 34             	mov    0x34(%ebx),%ecx
50a387:	e8 4c fd ff ff       	call   0x50a0d8
50a38c:	ff 45 ec             	incl   -0x14(%ebp)
50a38f:	83 c6 04             	add    $0x4,%esi
50a392:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a395:	8b 50 34             	mov    0x34(%eax),%edx
50a398:	3b 55 ec             	cmp    -0x14(%ebp),%edx
50a39b:	7f db                	jg     0x50a378
50a39d:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
50a3a0:	89 4b 34             	mov    %ecx,0x34(%ebx)
50a3a3:	8b 43 34             	mov    0x34(%ebx),%eax
50a3a6:	3b 43 3c             	cmp    0x3c(%ebx),%eax
50a3a9:	75 56                	jne    0x50a401
50a3ab:	8b 55 10             	mov    0x10(%ebp),%edx
50a3ae:	52                   	push   %edx
50a3af:	8b 4d 0c             	mov    0xc(%ebp),%ecx
50a3b2:	8b 01                	mov    (%ecx),%eax
50a3b4:	50                   	push   %eax
50a3b5:	8d 53 08             	lea    0x8(%ebx),%edx
50a3b8:	8b 4b 38             	mov    0x38(%ebx),%ecx
50a3bb:	8b 45 fc             	mov    -0x4(%ebp),%eax
50a3be:	8b b0 5c 01 00 00    	mov    0x15c(%eax),%esi
50a3c4:	ff 56 04             	call   *0x4(%esi)
50a3c7:	8b 45 0c             	mov    0xc(%ebp),%eax
50a3ca:	ff 00                	incl   (%eax)
50a3cc:	8b 55 fc             	mov    -0x4(%ebp),%edx
50a3cf:	8b 8a e4 00 00 00    	mov    0xe4(%edx),%ecx
50a3d5:	01 4b 38             	add    %ecx,0x38(%ebx)
50a3d8:	8b 43 38             	mov    0x38(%ebx),%eax
50a3db:	3b 45 e8             	cmp    -0x18(%ebp),%eax
50a3de:	7c 05                	jl     0x50a3e5
50a3e0:	33 d2                	xor    %edx,%edx
50a3e2:	89 53 38             	mov    %edx,0x38(%ebx)
50a3e5:	8b 4b 34             	mov    0x34(%ebx),%ecx
50a3e8:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
50a3eb:	7c 05                	jl     0x50a3f2
50a3ed:	33 c0                	xor    %eax,%eax
50a3ef:	89 43 34             	mov    %eax,0x34(%ebx)
50a3f2:	8b 55 fc             	mov    -0x4(%ebp),%edx
50a3f5:	8b 8a e4 00 00 00    	mov    0xe4(%edx),%ecx
50a3fb:	03 4b 34             	add    0x34(%ebx),%ecx
50a3fe:	89 4b 3c             	mov    %ecx,0x3c(%ebx)
50a401:	8b 45 0c             	mov    0xc(%ebp),%eax
50a404:	8b 10                	mov    (%eax),%edx
50a406:	3b 55 08             	cmp    0x8(%ebp),%edx
50a409:	0f 82 90 fe ff ff    	jb     0x50a29f
50a40f:	5f                   	pop    %edi
50a410:	5e                   	pop    %esi
50a411:	5b                   	pop    %ebx
50a412:	8b e5                	mov    %ebp,%esp
50a414:	5d                   	pop    %ebp
50a415:	c2 10 00             	ret    $0x10
50a418:	53                   	push   %ebx
50a419:	56                   	push   %esi
50a41a:	57                   	push   %edi
50a41b:	55                   	push   %ebp
50a41c:	83 c4 ec             	add    $0xffffffec,%esp
50a41f:	89 04 24             	mov    %eax,(%esp)
50a422:	8b 04 24             	mov    (%esp),%eax
50a425:	8b b0 4c 01 00 00    	mov    0x14c(%eax),%esi
50a42b:	8b 04 24             	mov    (%esp),%eax
50a42e:	8b 98 e4 00 00 00    	mov    0xe4(%eax),%ebx
50a434:	8b 04 24             	mov    (%esp),%eax
50a437:	8b 50 34             	mov    0x34(%eax),%edx
50a43a:	8b 04 24             	mov    (%esp),%eax
50a43d:	0f af d3             	imul   %ebx,%edx
50a440:	8b 78 04             	mov    0x4(%eax),%edi
50a443:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
50a446:	c1 e1 02             	shl    $0x2,%ecx
50a449:	ba 01 00 00 00       	mov    $0x1,%edx
50a44e:	ff 17                	call   *(%edi)
50a450:	89 44 24 0c          	mov    %eax,0xc(%esp)
50a454:	33 c0                	xor    %eax,%eax
50a456:	89 44 24 04          	mov    %eax,0x4(%esp)
50a45a:	8b 14 24             	mov    (%esp),%edx
50a45d:	8b 4a 3c             	mov    0x3c(%edx),%ecx
50a460:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50a464:	8d 46 08             	lea    0x8(%esi),%eax
50a467:	89 44 24 10          	mov    %eax,0x10(%esp)
50a46b:	e9 a7 00 00 00       	jmp    0x50a517
50a470:	8d 14 5b             	lea    (%ebx,%ebx,2),%edx
50a473:	52                   	push   %edx
50a474:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50a478:	8b 54 24 04          	mov    0x4(%esp),%edx
50a47c:	8b 41 1c             	mov    0x1c(%ecx),%eax
50a47f:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
50a483:	c1 e0 03             	shl    $0x3,%eax
50a486:	f7 aa e0 00 00 00    	imull  0xe0(%edx)
50a48c:	99                   	cltd
50a48d:	f7 79 08             	idivl  0x8(%ecx)
50a490:	8b c8                	mov    %eax,%ecx
50a492:	8b 44 24 04          	mov    0x4(%esp),%eax
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