4643fc:	59                   	pop    %ecx
4643fd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
464400:	8d 45 e0             	lea    -0x20(%ebp),%eax
464403:	50                   	push   %eax
464404:	e8 5f 27 fa ff       	call   0x406b68
464409:	8d 4d e0             	lea    -0x20(%ebp),%ecx
46440c:	e8 26 87 fa ff       	call   0x40cb37
464411:	8b 03                	mov    (%ebx),%eax
464413:	6a 00                	push   $0x0
464415:	8b 48 04             	mov    0x4(%eax),%ecx
464418:	ff 75 08             	push   0x8(%ebp)
46441b:	03 cb                	add    %ebx,%ecx
46441d:	e8 ff ee f9 ff       	call   0x403321
464422:	8b 7d f0             	mov    -0x10(%ebp),%edi
464425:	eb 10                	jmp    0x464437
464427:	8b 03                	mov    (%ebx),%eax
464429:	6a 00                	push   $0x0
46442b:	8b 48 04             	mov    0x4(%eax),%ecx
46442e:	6a 01                	push   $0x1
464430:	03 cb                	add    %ebx,%ecx
464432:	e8 15 8b fe ff       	call   0x44cf4c
464437:	8b 0e                	mov    (%esi),%ecx
464439:	e8 18 50 fe ff       	call   0x449456
46443e:	84 c0                	test   %al,%al
464440:	75 1d                	jne    0x46445f
464442:	8d 45 f8             	lea    -0x8(%ebp),%eax
464445:	50                   	push   %eax
464446:	8b cf                	mov    %edi,%ecx
464448:	e8 1b 00 00 00       	call   0x464468
46444d:	eb 10                	jmp    0x46445f
46444f:	8b 03                	mov    (%ebx),%eax
464451:	6a 00                	push   $0x0
464453:	8b 48 04             	mov    0x4(%eax),%ecx
464456:	6a 02                	push   $0x2
464458:	03 cb                	add    %ebx,%ecx
46445a:	e8 ed 8a fe ff       	call   0x44cf4c
46445f:	5f                   	pop    %edi
464460:	5e                   	pop    %esi
464461:	33 c0                	xor    %eax,%eax
464463:	5b                   	pop    %ebx
464464:	c9                   	leave
464465:	c2 14 00             	ret    $0x14
464468:	55                   	push   %ebp
464469:	8b ec                	mov    %esp,%ebp
46446b:	56                   	push   %esi
46446c:	57                   	push   %edi
46446d:	8b 7d 08             	mov    0x8(%ebp),%edi
464470:	8b f1                	mov    %ecx,%esi
464472:	8b 0f                	mov    (%edi),%ecx
464474:	8b 51 08             	mov    0x8(%ecx),%edx
464477:	8b 41 04             	mov    0x4(%ecx),%eax
46447a:	85 d2                	test   %edx,%edx
46447c:	74 03                	je     0x464481
46447e:	89 42 04             	mov    %eax,0x4(%edx)
464481:	85 c0                	test   %eax,%eax
464483:	74 03                	je     0x464488
464485:	89 50 08             	mov    %edx,0x8(%eax)
464488:	3b 0e                	cmp    (%esi),%ecx
46448a:	75 02                	jne    0x46448e
46448c:	89 06                	mov    %eax,(%esi)
46448e:	3b 4e 04             	cmp    0x4(%esi),%ecx
464491:	75 03                	jne    0x464496
464493:	89 56 04             	mov    %edx,0x4(%esi)
464496:	51                   	push   %ecx
464497:	e8 76 85 fe ff       	call   0x44ca12
46449c:	83 27 00             	andl   $0x0,(%edi)
46449f:	ff 4e 08             	decl   0x8(%esi)
4644a2:	5f                   	pop    %edi
4644a3:	5e                   	pop    %esi
4644a4:	5d                   	pop    %ebp
4644a5:	c2 04 00             	ret    $0x4
4644a8:	55                   	push   %ebp
4644a9:	8b ec                	mov    %esp,%ebp
4644ab:	56                   	push   %esi
4644ac:	8b f1                	mov    %ecx,%esi
4644ae:	e8 bb 16 fe ff       	call   0x445b6e
4644b3:	8b 4d 08             	mov    0x8(%ebp),%ecx
4644b6:	8b 06                	mov    (%esi),%eax
4644b8:	3b 4e 04             	cmp    0x4(%esi),%ecx
4644bb:	73 04                	jae    0x4644c1
4644bd:	03 c1                	add    %ecx,%eax
4644bf:	eb 03                	jmp    0x4644c4
4644c1:	03 46 04             	add    0x4(%esi),%eax
4644c4:	5e                   	pop    %esi
4644c5:	5d                   	pop    %ebp
4644c6:	c2 04 00             	ret    $0x4
4644c9:	55                   	push   %ebp
4644ca:	8b ec                	mov    %esp,%ebp
4644cc:	56                   	push   %esi
4644cd:	8b 75 08             	mov    0x8(%ebp),%esi
4644d0:	57                   	push   %edi
4644d1:	8b 4e 04             	mov    0x4(%esi),%ecx
4644d4:	8b 09                	mov    (%ecx),%ecx
4644d6:	e8 80 70 fe ff       	call   0x44b55b
4644db:	8b 4e 04             	mov    0x4(%esi),%ecx
4644de:	8b 09                	mov    (%ecx),%ecx
4644e0:	e8 b9 70 fe ff       	call   0x44b59e
4644e5:	8b 75 0c             	mov    0xc(%ebp),%esi
4644e8:	8b ce                	mov    %esi,%ecx
4644ea:	8b f8                	mov    %eax,%edi
4644ec:	e8 2f e7 fa ff       	call   0x412c20
4644f1:	89 3e                	mov    %edi,(%esi)
4644f3:	5f                   	pop    %edi
4644f4:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4644fb:	33 c0                	xor    %eax,%eax
4644fd:	5e                   	pop    %esi
4644fe:	5d                   	pop    %ebp
4644ff:	c2 08 00             	ret    $0x8
464502:	55                   	push   %ebp
464503:	8b ec                	mov    %esp,%ebp
464505:	51                   	push   %ecx
464506:	53                   	push   %ebx
464507:	56                   	push   %esi
464508:	8b 75 08             	mov    0x8(%ebp),%esi
46450b:	57                   	push   %edi
46450c:	8b 46 04             	mov    0x4(%esi),%eax
46450f:	8b 08                	mov    (%eax),%ecx
464511:	e8 45 70 fe ff       	call   0x44b55b
464516:	8b 56 04             	mov    0x4(%esi),%edx
464519:	89 45 fc             	mov    %eax,-0x4(%ebp)
46451c:	8b 0a                	mov    (%edx),%ecx
46451e:	e8 7b 70 fe ff       	call   0x44b59e
464523:	8b 4a 04             	mov    0x4(%edx),%ecx
464526:	8b d8                	mov    %eax,%ebx
464528:	83 ce ff             	or     $0xffffffff,%esi
46452b:	e8 56 8d fa ff       	call   0x40d286
464530:	8d 78 ff             	lea    -0x1(%eax),%edi
464533:	8b 45 08             	mov    0x8(%ebp),%eax
464536:	83 78 08 02          	cmpl   $0x2,0x8(%eax)
46453a:	76 0d                	jbe    0x464549
46453c:	8b 48 04             	mov    0x4(%eax),%ecx
46453f:	8b 49 08             	mov    0x8(%ecx),%ecx
464542:	e8 3f 8d fa ff       	call   0x40d286
464547:	8b f0                	mov    %eax,%esi
464549:	3b fb                	cmp    %ebx,%edi
46454b:	7f 04                	jg     0x464551
46454d:	85 ff                	test   %edi,%edi
46454f:	79 02                	jns    0x464553
464551:	8b fb                	mov    %ebx,%edi
464553:	85 f6                	test   %esi,%esi
464555:	78 08                	js     0x46455f
464557:	8b c3                	mov    %ebx,%eax
464559:	2b c7                	sub    %edi,%eax
46455b:	3b f0                	cmp    %eax,%esi
46455d:	7e 04                	jle    0x464563
46455f:	8b f3                	mov    %ebx,%esi
464561:	2b f7                	sub    %edi,%esi
464563:	8b 4d 0c             	mov    0xc(%ebp),%ecx
464566:	56                   	push   %esi
464567:	e8 77 5e fe ff       	call   0x44a3e3
46456c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46456f:	56                   	push   %esi
464570:	03 cf                	add    %edi,%ecx
464572:	51                   	push   %ecx
464573:	50                   	push   %eax
464574:	e8 07 a9 fb ff       	call   0x41ee80
464579:	83 c4 0c             	add    $0xc,%esp
46457c:	33 c0                	xor    %eax,%eax
46457e:	5f                   	pop    %edi
46457f:	5e                   	pop    %esi
464580:	5b                   	pop    %ebx
464581:	c9                   	leave
464582:	c2 08 00             	ret    $0x8
464585:	55                   	push   %ebp
464586:	8b ec                	mov    %esp,%ebp
464588:	83 e4 f8             	and    $0xfffffff8,%esp
46458b:	83 ec 24             	sub    $0x24,%esp
46458e:	8b 45 08             	mov    0x8(%ebp),%eax
464591:	53                   	push   %ebx
464592:	8b 40 04             	mov    0x4(%eax),%eax
464595:	56                   	push   %esi
464596:	8b f1                	mov    %ecx,%esi
464598:	8b 08                	mov    (%eax),%ecx
46459a:	57                   	push   %edi
46459b:	89 74 24 0c          	mov    %esi,0xc(%esp)
46459f:	e8 b7 6f fe ff       	call   0x44b55b
4645a4:	8b 55 08             	mov    0x8(%ebp),%edx
4645a7:	8b d8                	mov    %eax,%ebx
4645a9:	8b 42 04             	mov    0x4(%edx),%eax
4645ac:	8b 08                	mov    (%eax),%ecx
4645ae:	e8 eb 6f fe ff       	call   0x44b59e
4645b3:	8b f8                	mov    %eax,%edi
4645b5:	85 ff                	test   %edi,%edi
4645b7:	75 21                	jne    0x4645da
4645b9:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4645bc:	68 00 dc 49 00       	push   $0x49dc00
4645c1:	e8 f3 87 fa ff       	call   0x40cdb9
4645c6:	8b 06                	mov    (%esi),%eax
4645c8:	57                   	push   %edi
4645c9:	8b 48 04             	mov    0x4(%eax),%ecx
4645cc:	6a 01                	push   $0x1
4645ce:	03 ce                	add    %esi,%ecx
4645d0:	e8 77 89 fe ff       	call   0x44cf4c
4645d5:	e9 6c 01 00 00       	jmp    0x464746
4645da:	6a 02                	push   $0x2
4645dc:	59                   	pop    %ecx
4645dd:	39 4a 08             	cmp    %ecx,0x8(%edx)
4645e0:	72 12                	jb     0x4645f4
4645e2:	8b 4a 04             	mov    0x4(%edx),%ecx
4645e5:	8b 49 04             	mov    0x4(%ecx),%ecx
4645e8:	e8 99 8c fa ff       	call   0x40d286
4645ed:	6a 02                	push   $0x2
4645ef:	8b f0                	mov    %eax,%esi
4645f1:	59                   	pop    %ecx
4645f2:	eb 03                	jmp    0x4645f7
4645f4:	33 f6                	xor    %esi,%esi
4645f6:	46                   	inc    %esi
4645f7:	83 fe 01             	cmp    $0x1,%esi
4645fa:	7c 05                	jl     0x464601
4645fc:	83 fe 04             	cmp    $0x4,%esi
4645ff:	7e 03                	jle    0x464604
464601:	33 f6                	xor    %esi,%esi
464603:	46                   	inc    %esi
464604:	3b f1                	cmp    %ecx,%esi
464606:	74 05                	je     0x46460d
464608:	83 fe 03             	cmp    $0x3,%esi
46460b:	75 27                	jne    0x464634
46460d:	8b c7                	mov    %edi,%eax
46460f:	99                   	cltd
464610:	f7 f9                	idiv   %ecx
464612:	85 d2                	test   %edx,%edx
464614:	74 1e                	je     0x464634
464616:	8b 4d 0c             	mov    0xc(%ebp),%ecx
464619:	68 00 dc 49 00       	push   $0x49dc00
46461e:	e8 96 87 fa ff       	call   0x40cdb9
464623:	8b 54 24 0c          	mov    0xc(%esp),%edx
464627:	6a 00                	push   $0x0
464629:	8b 02                	mov    (%edx),%eax
46462b:	6a 02                	push   $0x2
46462d:	8b 48 04             	mov    0x4(%eax),%ecx
464630:	03 ca                	add    %edx,%ecx
464632:	eb 9c                	jmp    0x4645d0
464634:	83 fe 01             	cmp    $0x1,%esi
464637:	0f 84 af 00 00 00    	je     0x4646ec
46463d:	83 fe 04             	cmp    $0x4,%esi
464640:	0f 84 a6 00 00 00    	je     0x4646ec
464646:	3b f1                	cmp    %ecx,%esi
464648:	75 3b                	jne    0x464685
46464a:	8b c7                	mov    %edi,%eax
46464c:	99                   	cltd
46464d:	2b c2                	sub    %edx,%eax
46464f:	8b f0                	mov    %eax,%esi
464651:	d1 fe                	sar    $1,%esi
464653:	56                   	push   %esi
464654:	8d 4c 24 24          	lea    0x24(%esp),%ecx
464658:	e8 b2 24 fa ff       	call   0x406b0f
46465d:	8d 4c 24 20          	lea    0x20(%esp),%ecx
464661:	56                   	push   %esi
464662:	6a 00                	push   $0x0
464664:	53                   	push   %ebx
464665:	e8 e5 7b fa ff       	call   0x40c24f
46466a:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46466d:	8d 44 24 20          	lea    0x20(%esp),%eax
464671:	50                   	push   %eax
464672:	e8 f1 24 fa ff       	call   0x406b68
464677:	8d 4c 24 20          	lea    0x20(%esp),%ecx
46467b:	e8 b7 84 fa ff       	call   0x40cb37
464680:	e9 c1 00 00 00       	jmp    0x464746
464685:	57                   	push   %edi
464686:	e8 5f ae fb ff       	call   0x41f4ea
46468b:	59                   	pop    %ecx
46468c:	8b d0                	mov    %eax,%edx
46468e:	33 c9                	xor    %ecx,%ecx
464690:	89 54 24 0c          	mov    %edx,0xc(%esp)
464694:	85 ff                	test   %edi,%edi
464696:	7e 1a                	jle    0x4646b2
464698:	8b f2                	mov    %edx,%esi
46469a:	2b f3                	sub    %ebx,%esi
46469c:	8a 43 01             	mov    0x1(%ebx),%al
46469f:	88 04 1e             	mov    %al,(%esi,%ebx,1)
4646a2:	8a 03                	mov    (%ebx),%al
4646a4:	88 44 0a 01          	mov    %al,0x1(%edx,%ecx,1)
4646a8:	83 c1 02             	add    $0x2,%ecx
4646ab:	8d 5b 02             	lea    0x2(%ebx),%ebx
4646ae:	3b cf                	cmp    %edi,%ecx
4646b0:	7c ea                	jl     0x46469c
4646b2:	8b c7                	mov    %edi,%eax
4646b4:	99                   	cltd
4646b5:	2b c2                	sub    %edx,%eax
4646b7:	8b f0                	mov    %eax,%esi
4646b9:	d1 fe                	sar    $1,%esi
4646bb:	56                   	push   %esi
4646bc:	8d 4c 24 24          	lea    0x24(%esp),%ecx
4646c0:	e8 4a 24 fa ff       	call   0x406b0f
4646c5:	8d 4c 24 20          	lea    0x20(%esp),%ecx
4646c9:	56                   	push   %esi
4646ca:	8b 74 24 10          	mov    0x10(%esp),%esi
4646ce:	6a 00                	push   $0x0
4646d0:	56                   	push   %esi
4646d1:	e8 79 7b fa ff       	call   0x40c24f
4646d6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4646d9:	8d 44 24 20          	lea    0x20(%esp),%eax
4646dd:	50                   	push   %eax
4646de:	e8 85 24 fa ff       	call   0x406b68
4646e3:	56                   	push   %esi
4646e4:	e8 75 ae fb ff       	call   0x41f55e
4646e9:	59                   	pop    %ecx
4646ea:	eb 8b                	jmp    0x464677
4646ec:	57                   	push   %edi
4646ed:	8d 4c 24 24          	lea    0x24(%esp),%ecx
4646f1:	e8 37 56 fe ff       	call   0x449d2d
4646f6:	57                   	push   %edi
4646f7:	51                   	push   %ecx
4646f8:	53                   	push   %ebx
4646f9:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
4646fd:	e8 c1 9f fb ff       	call   0x41e6c3
464702:	57                   	push   %edi
464703:	8d 4c 24 14          	lea    0x14(%esp),%ecx
464707:	e8 03 24 fa ff       	call   0x406b0f
46470c:	8d 44 24 10          	lea    0x10(%esp),%eax
464710:	50                   	push   %eax
464711:	8d 44 24 24          	lea    0x24(%esp),%eax
464715:	50                   	push   %eax
464716:	83 fe 01             	cmp    $0x1,%esi
464719:	75 07                	jne    0x464722
46471b:	e8 be 7a fa ff       	call   0x40c1de
464720:	eb 05                	jmp    0x464727
464722:	e8 ca 15 fe ff       	call   0x445cf1
464727:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46472a:	8d 44 24 10          	lea    0x10(%esp),%eax
46472e:	50                   	push   %eax
46472f:	e8 34 24 fa ff       	call   0x406b68
464734:	8d 4c 24 10          	lea    0x10(%esp),%ecx
464738:	e8 fa 83 fa ff       	call   0x40cb37
46473d:	8d 4c 24 20          	lea    0x20(%esp),%ecx
464741:	e8 f1 83 fa ff       	call   0x40cb37
464746:	5f                   	pop    %edi
464747:	5e                   	pop    %esi
464748:	33 c0                	xor    %eax,%eax
46474a:	5b                   	pop    %ebx
46474b:	8b e5                	mov    %ebp,%esp
46474d:	5d                   	pop    %ebp
46474e:	c2 08 00             	ret    $0x8
464751:	55                   	push   %ebp
464752:	8b ec                	mov    %esp,%ebp
464754:	83 e4 f8             	and    $0xfffffff8,%esp
464757:	83 ec 14             	sub    $0x14,%esp
46475a:	8b 45 08             	mov    0x8(%ebp),%eax
46475d:	56                   	push   %esi
46475e:	8b 40 04             	mov    0x4(%eax),%eax
464761:	8b 30                	mov    (%eax),%esi
464763:	8b ce                	mov    %esi,%ecx
464765:	e8 02 4c fa ff       	call   0x40936c
46476a:	8b 4e 08             	mov    0x8(%esi),%ecx
46476d:	8b 01                	mov    (%ecx),%eax
46476f:	89 44 24 08          	mov    %eax,0x8(%esp)
464773:	8b 41 04             	mov    0x4(%ecx),%eax
464776:	89 44 24 0c          	mov    %eax,0xc(%esp)
46477a:	8b 41 08             	mov    0x8(%ecx),%eax
46477d:	89 44 24 10          	mov    %eax,0x10(%esp)