5012da:	83 44 24 18 04       	addl   $0x4,0x18(%esp)
5012df:	8b 04 24             	mov    (%esp),%eax
5012e2:	3b 78 74             	cmp    0x74(%eax),%edi
5012e5:	0f 8c 20 ff ff ff    	jl     0x50120b
5012eb:	83 c4 20             	add    $0x20,%esp
5012ee:	5f                   	pop    %edi
5012ef:	5e                   	pop    %esi
5012f0:	5b                   	pop    %ebx
5012f1:	c3                   	ret
5012f2:	90                   	nop
5012f3:	90                   	nop
5012f4:	53                   	push   %ebx
5012f5:	56                   	push   %esi
5012f6:	57                   	push   %edi
5012f7:	55                   	push   %ebp
5012f8:	8b 70 04             	mov    0x4(%eax),%esi
5012fb:	8b da                	mov    %edx,%ebx
5012fd:	ba 01 00 00 00       	mov    $0x1,%edx
501302:	83 c4 f0             	add    $0xfffffff0,%esp
501305:	b9 00 04 00 00       	mov    $0x400,%ecx
50130a:	ff 16                	call   *(%esi)
50130c:	89 04 24             	mov    %eax,(%esp)
50130f:	8b eb                	mov    %ebx,%ebp
501311:	c1 e5 09             	shl    $0x9,%ebp
501314:	81 c5 00 fe ff ff    	add    $0xfffffe00,%ebp
50131a:	33 c0                	xor    %eax,%eax
50131c:	89 44 24 04          	mov    %eax,0x4(%esp)
501320:	c7 44 24 0c 98 d7 68 	movl   $0x68d798,0xc(%esp)
501327:	00
501328:	8b 14 24             	mov    (%esp),%edx
50132b:	8b ca                	mov    %edx,%ecx
50132d:	89 4c 24 08          	mov    %ecx,0x8(%esp)
501331:	33 ff                	xor    %edi,%edi
501333:	8b 44 24 08          	mov    0x8(%esp),%eax
501337:	8b f0                	mov    %eax,%esi
501339:	8b 44 24 0c          	mov    0xc(%esp),%eax
50133d:	8b d8                	mov    %eax,%ebx
50133f:	33 c0                	xor    %eax,%eax
501341:	8a 03                	mov    (%ebx),%al
501343:	03 c0                	add    %eax,%eax
501345:	ba ff 00 00 00       	mov    $0xff,%edx
50134a:	2b d0                	sub    %eax,%edx
50134c:	8b ca                	mov    %edx,%ecx
50134e:	c1 e1 08             	shl    $0x8,%ecx
501351:	2b ca                	sub    %edx,%ecx
501353:	85 c9                	test   %ecx,%ecx
501355:	7d 0b                	jge    0x501362
501357:	8b c1                	mov    %ecx,%eax
501359:	f7 d8                	neg    %eax
50135b:	99                   	cltd
50135c:	f7 fd                	idiv   %ebp
50135e:	f7 d8                	neg    %eax
501360:	eb 05                	jmp    0x501367
501362:	8b c1                	mov    %ecx,%eax
501364:	99                   	cltd
501365:	f7 fd                	idiv   %ebp
501367:	89 06                	mov    %eax,(%esi)
501369:	47                   	inc    %edi
50136a:	83 c6 04             	add    $0x4,%esi
50136d:	43                   	inc    %ebx
50136e:	83 ff 10             	cmp    $0x10,%edi
501371:	7c cc                	jl     0x50133f
501373:	ff 44 24 04          	incl   0x4(%esp)
501377:	83 44 24 0c 10       	addl   $0x10,0xc(%esp)
50137c:	83 44 24 08 40       	addl   $0x40,0x8(%esp)
501381:	83 7c 24 04 10       	cmpl   $0x10,0x4(%esp)
501386:	7c a9                	jl     0x501331
501388:	8b 04 24             	mov    (%esp),%eax
50138b:	83 c4 10             	add    $0x10,%esp
50138e:	5d                   	pop    %ebp
50138f:	5f                   	pop    %edi
501390:	5e                   	pop    %esi
501391:	5b                   	pop    %ebx
501392:	c3                   	ret
501393:	90                   	nop
501394:	53                   	push   %ebx
501395:	56                   	push   %esi
501396:	57                   	push   %edi
501397:	83 c4 f8             	add    $0xfffffff8,%esp
50139a:	89 04 24             	mov    %eax,(%esp)
50139d:	8b 04 24             	mov    (%esp),%eax
5013a0:	8b 90 c4 01 00 00    	mov    0x1c4(%eax),%edx
5013a6:	89 54 24 04          	mov    %edx,0x4(%esp)
5013aa:	33 db                	xor    %ebx,%ebx
5013ac:	8b 44 24 04          	mov    0x4(%esp),%eax
5013b0:	8d 70 20             	lea    0x20(%eax),%esi
5013b3:	eb 39                	jmp    0x5013ee
5013b5:	8b 3e                	mov    (%esi),%edi
5013b7:	33 c9                	xor    %ecx,%ecx
5013b9:	33 d2                	xor    %edx,%edx
5013bb:	8b 44 24 04          	mov    0x4(%esp),%eax
5013bf:	83 c0 20             	add    $0x20,%eax
5013c2:	3b da                	cmp    %edx,%ebx
5013c4:	7e 11                	jle    0x5013d7
5013c6:	3b 38                	cmp    (%eax),%edi
5013c8:	75 05                	jne    0x5013cf
5013ca:	8b 48 14             	mov    0x14(%eax),%ecx
5013cd:	eb 08                	jmp    0x5013d7
5013cf:	42                   	inc    %edx
5013d0:	83 c0 04             	add    $0x4,%eax
5013d3:	3b da                	cmp    %edx,%ebx
5013d5:	7f ef                	jg     0x5013c6
5013d7:	85 c9                	test   %ecx,%ecx
5013d9:	75 0c                	jne    0x5013e7
5013db:	8b d7                	mov    %edi,%edx
5013dd:	8b 04 24             	mov    (%esp),%eax
5013e0:	e8 0f ff ff ff       	call   0x5012f4
5013e5:	8b c8                	mov    %eax,%ecx
5013e7:	89 4e 14             	mov    %ecx,0x14(%esi)
5013ea:	43                   	inc    %ebx
5013eb:	83 c6 04             	add    $0x4,%esi
5013ee:	8b 14 24             	mov    (%esp),%edx
5013f1:	3b 5a 74             	cmp    0x74(%edx),%ebx
5013f4:	7c bf                	jl     0x5013b5
5013f6:	59                   	pop    %ecx
5013f7:	5a                   	pop    %edx
5013f8:	5f                   	pop    %edi
5013f9:	5e                   	pop    %esi
5013fa:	5b                   	pop    %ebx
5013fb:	c3                   	ret
5013fc:	55                   	push   %ebp
5013fd:	8b ec                	mov    %esp,%ebp
5013ff:	83 c4 e0             	add    $0xffffffe0,%esp
501402:	53                   	push   %ebx
501403:	56                   	push   %esi
501404:	57                   	push   %edi
501405:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
50140b:	8b 5b 18             	mov    0x18(%ebx),%ebx
50140e:	89 5d fc             	mov    %ebx,-0x4(%ebp)
501411:	8b 58 6c             	mov    0x6c(%eax),%ebx
501414:	89 5d ec             	mov    %ebx,-0x14(%ebp)
501417:	8b 40 74             	mov    0x74(%eax),%eax
50141a:	89 45 e8             	mov    %eax,-0x18(%ebp)
50141d:	33 c0                	xor    %eax,%eax
50141f:	89 45 f4             	mov    %eax,-0xc(%ebp)
501422:	89 4d e0             	mov    %ecx,-0x20(%ebp)
501425:	89 55 e4             	mov    %edx,-0x1c(%ebp)
501428:	8b 45 f4             	mov    -0xc(%ebp),%eax
50142b:	3b 45 08             	cmp    0x8(%ebp),%eax
50142e:	7d 61                	jge    0x501491
501430:	8b 55 e4             	mov    -0x1c(%ebp),%edx
501433:	8b 45 e0             	mov    -0x20(%ebp),%eax
501436:	8b 0a                	mov    (%edx),%ecx
501438:	8b 10                	mov    (%eax),%edx
50143a:	89 55 f8             	mov    %edx,-0x8(%ebp)
50143d:	8b 45 ec             	mov    -0x14(%ebp),%eax
501440:	89 45 f0             	mov    %eax,-0x10(%ebp)
501443:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
501447:	76 35                	jbe    0x50147e
501449:	33 f6                	xor    %esi,%esi
50144b:	33 d2                	xor    %edx,%edx
50144d:	8b 45 fc             	mov    -0x4(%ebp),%eax
501450:	3b 55 e8             	cmp    -0x18(%ebp),%edx
501453:	7d 16                	jge    0x50146b
501455:	33 db                	xor    %ebx,%ebx
501457:	8b 38                	mov    (%eax),%edi
501459:	8a 19                	mov    (%ecx),%bl
50145b:	41                   	inc    %ecx
50145c:	83 c0 04             	add    $0x4,%eax
50145f:	42                   	inc    %edx
501460:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501464:	03 f3                	add    %ebx,%esi
501466:	3b 55 e8             	cmp    -0x18(%ebp),%edx
501469:	7c ea                	jl     0x501455
50146b:	8b c6                	mov    %esi,%eax
50146d:	8b 55 f8             	mov    -0x8(%ebp),%edx
501470:	88 02                	mov    %al,(%edx)
501472:	ff 45 f8             	incl   -0x8(%ebp)
501475:	ff 4d f0             	decl   -0x10(%ebp)
501478:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
50147c:	77 cb                	ja     0x501449
50147e:	ff 45 f4             	incl   -0xc(%ebp)
501481:	83 45 e0 04          	addl   $0x4,-0x20(%ebp)
501485:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
501489:	8b 4d f4             	mov    -0xc(%ebp),%ecx
50148c:	3b 4d 08             	cmp    0x8(%ebp),%ecx
50148f:	7c 9f                	jl     0x501430
501491:	5f                   	pop    %edi
501492:	5e                   	pop    %esi
501493:	5b                   	pop    %ebx
501494:	8b e5                	mov    %ebp,%esp
501496:	5d                   	pop    %ebp
501497:	c2 04 00             	ret    $0x4
50149a:	90                   	nop
50149b:	90                   	nop
50149c:	55                   	push   %ebp
50149d:	8b ec                	mov    %esp,%ebp
50149f:	83 c4 e4             	add    $0xffffffe4,%esp
5014a2:	53                   	push   %ebx
5014a3:	56                   	push   %esi
5014a4:	57                   	push   %edi
5014a5:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
5014ab:	8b 73 18             	mov    0x18(%ebx),%esi
5014ae:	8b 3e                	mov    (%esi),%edi
5014b0:	89 7d fc             	mov    %edi,-0x4(%ebp)
5014b3:	8b 7e 04             	mov    0x4(%esi),%edi
5014b6:	89 7d f8             	mov    %edi,-0x8(%ebp)
5014b9:	8b 5e 08             	mov    0x8(%esi),%ebx
5014bc:	89 5d f4             	mov    %ebx,-0xc(%ebp)
5014bf:	8b 40 6c             	mov    0x6c(%eax),%eax
5014c2:	89 45 ec             	mov    %eax,-0x14(%ebp)
5014c5:	33 c0                	xor    %eax,%eax
5014c7:	89 45 f0             	mov    %eax,-0x10(%ebp)
5014ca:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
5014cd:	89 55 e8             	mov    %edx,-0x18(%ebp)
5014d0:	8b 45 f0             	mov    -0x10(%ebp),%eax
5014d3:	3b 45 08             	cmp    0x8(%ebp),%eax
5014d6:	7d 54                	jge    0x50152c
5014d8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5014db:	8b 02                	mov    (%edx),%eax
5014dd:	8b 55 e4             	mov    -0x1c(%ebp),%edx
5014e0:	8b 0a                	mov    (%edx),%ecx
5014e2:	8b 75 ec             	mov    -0x14(%ebp),%esi
5014e5:	85 f6                	test   %esi,%esi
5014e7:	76 30                	jbe    0x501519
5014e9:	33 d2                	xor    %edx,%edx
5014eb:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5014ee:	8a 10                	mov    (%eax),%dl
5014f0:	40                   	inc    %eax
5014f1:	8b 7d f8             	mov    -0x8(%ebp),%edi
5014f4:	4e                   	dec    %esi
5014f5:	0f b6 14 13          	movzbl (%ebx,%edx,1),%edx
5014f9:	33 db                	xor    %ebx,%ebx
5014fb:	8a 18                	mov    (%eax),%bl
5014fd:	40                   	inc    %eax
5014fe:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501502:	03 d3                	add    %ebx,%edx
501504:	33 db                	xor    %ebx,%ebx
501506:	8a 18                	mov    (%eax),%bl
501508:	8b 7d f4             	mov    -0xc(%ebp),%edi
50150b:	40                   	inc    %eax
50150c:	0f b6 1c 1f          	movzbl (%edi,%ebx,1),%ebx
501510:	03 d3                	add    %ebx,%edx
501512:	88 11                	mov    %dl,(%ecx)
501514:	41                   	inc    %ecx
501515:	85 f6                	test   %esi,%esi
501517:	77 d0                	ja     0x5014e9
501519:	ff 45 f0             	incl   -0x10(%ebp)
50151c:	83 45 e4 04          	addl   $0x4,-0x1c(%ebp)
501520:	83 45 e8 04          	addl   $0x4,-0x18(%ebp)
501524:	8b 45 f0             	mov    -0x10(%ebp),%eax
501527:	3b 45 08             	cmp    0x8(%ebp),%eax
50152a:	7c ac                	jl     0x5014d8
50152c:	5f                   	pop    %edi
50152d:	5e                   	pop    %esi
50152e:	5b                   	pop    %ebx
50152f:	8b e5                	mov    %ebp,%esp
501531:	5d                   	pop    %ebp
501532:	c2 04 00             	ret    $0x4
501535:	90                   	nop
501536:	90                   	nop
501537:	90                   	nop
501538:	55                   	push   %ebp
501539:	8b ec                	mov    %esp,%ebp
50153b:	83 c4 cc             	add    $0xffffffcc,%esp
50153e:	53                   	push   %ebx
50153f:	56                   	push   %esi
501540:	57                   	push   %edi
501541:	8b 98 c4 01 00 00    	mov    0x1c4(%eax),%ebx
501547:	89 5d fc             	mov    %ebx,-0x4(%ebp)
50154a:	8b 58 74             	mov    0x74(%eax),%ebx
50154d:	89 5d ec             	mov    %ebx,-0x14(%ebp)
501550:	8b 40 6c             	mov    0x6c(%eax),%eax
501553:	89 45 e0             	mov    %eax,-0x20(%ebp)
501556:	33 c0                	xor    %eax,%eax
501558:	89 45 e4             	mov    %eax,-0x1c(%ebp)
50155b:	89 55 cc             	mov    %edx,-0x34(%ebp)
50155e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
501561:	8b 45 e4             	mov    -0x1c(%ebp),%eax
501564:	3b 45 08             	cmp    0x8(%ebp),%eax
501567:	0f 8d d5 00 00 00    	jge    0x501642
50156d:	8b 55 e0             	mov    -0x20(%ebp),%edx
501570:	52                   	push   %edx
501571:	6a 00                	push   $0x0
501573:	8b 4d dc             	mov    -0x24(%ebp),%ecx
501576:	8b 01                	mov    (%ecx),%eax
501578:	50                   	push   %eax
501579:	e8 36 9d ff ff       	call   0x4fb2b4
50157e:	8b 55 fc             	mov    -0x4(%ebp),%edx
501581:	33 c0                	xor    %eax,%eax
501583:	83 c4 0c             	add    $0xc,%esp
501586:	8b 4a 30             	mov    0x30(%edx),%ecx
501589:	89 4d f0             	mov    %ecx,-0x10(%ebp)
50158c:	89 45 e8             	mov    %eax,-0x18(%ebp)
50158f:	8b 55 fc             	mov    -0x4(%ebp),%edx
501592:	8d 4a 34             	lea    0x34(%edx),%ecx
501595:	89 4d d0             	mov    %ecx,-0x30(%ebp)
501598:	8b 45 dc             	mov    -0x24(%ebp),%eax
50159b:	8b d0                	mov    %eax,%edx
50159d:	89 55 d4             	mov    %edx,-0x2c(%ebp)
5015a0:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5015a3:	8b c1                	mov    %ecx,%eax
5015a5:	89 45 d8             	mov    %eax,-0x28(%ebp)
5015a8:	8b 55 e8             	mov    -0x18(%ebp),%edx
5015ab:	3b 55 ec             	cmp    -0x14(%ebp),%edx
5015ae:	7d 68                	jge    0x501618
5015b0:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5015b3:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5015b6:	8b 5d e8             	mov    -0x18(%ebp),%ebx
5015b9:	8b 11                	mov    (%ecx),%edx
5015bb:	8b 08                	mov    (%eax),%ecx
5015bd:	8b 45 fc             	mov    -0x4(%ebp),%eax
5015c0:	03 55 e8             	add    -0x18(%ebp),%edx
5015c3:	8b 40 18             	mov    0x18(%eax),%eax
5015c6:	8b 04 98             	mov    (%eax,%ebx,4),%eax
5015c9:	89 45 f8             	mov    %eax,-0x8(%ebp)
5015cc:	8b 45 d0             	mov    -0x30(%ebp),%eax
5015cf:	8b 5d f0             	mov    -0x10(%ebp),%ebx
5015d2:	c1 e3 06             	shl    $0x6,%ebx
5015d5:	8b 00                	mov    (%eax),%eax
5015d7:	03 c3                	add    %ebx,%eax
5015d9:	89 45 f4             	mov    %eax,-0xc(%ebp)
5015dc:	33 c0                	xor    %eax,%eax
5015de:	8b 75 e0             	mov    -0x20(%ebp),%esi
5015e1:	85 f6                	test   %esi,%esi
5015e3:	76 24                	jbe    0x501609
5015e5:	33 db                	xor    %ebx,%ebx
5015e7:	8b 7d f8             	mov    -0x8(%ebp),%edi
5015ea:	8a 1a                	mov    (%edx),%bl
5015ec:	4e                   	dec    %esi
5015ed:	8d 1c 1f             	lea    (%edi,%ebx,1),%ebx
5015f0:	53                   	push   %ebx
5015f1:	8b 5d f4             	mov    -0xc(%ebp),%ebx
5015f4:	5f                   	pop    %edi
5015f5:	8b 1c 83             	mov    (%ebx,%eax,4),%ebx
5015f8:	40                   	inc    %eax
5015f9:	83 e0 0f             	and    $0xf,%eax
5015fc:	8a 1c 1f             	mov    (%edi,%ebx,1),%bl
5015ff:	00 19                	add    %bl,(%ecx)
501601:	41                   	inc    %ecx
501602:	03 55 ec             	add    -0x14(%ebp),%edx
501605:	85 f6                	test   %esi,%esi
501607:	77 dc                	ja     0x5015e5
501609:	ff 45 e8             	incl   -0x18(%ebp)
50160c:	83 45 d0 04          	addl   $0x4,-0x30(%ebp)
501610:	8b 55 e8             	mov    -0x18(%ebp),%edx
501613:	3b 55 ec             	cmp    -0x14(%ebp),%edx
501616:	7c 98                	jl     0x5015b0
501618:	8b 4d f0             	mov    -0x10(%ebp),%ecx
50161b:	41                   	inc    %ecx
50161c:	83 e1 0f             	and    $0xf,%ecx
50161f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
501622:	8b 45 fc             	mov    -0x4(%ebp),%eax
501625:	8b 55 f0             	mov    -0x10(%ebp),%edx
501628:	89 50 30             	mov    %edx,0x30(%eax)
50162b:	ff 45 e4             	incl   -0x1c(%ebp)
50162e:	83 45 cc 04          	addl   $0x4,-0x34(%ebp)
501632:	83 45 dc 04          	addl   $0x4,-0x24(%ebp)
501636:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
501639:	3b 4d 08             	cmp    0x8(%ebp),%ecx