41c447:	59                   	pop    %ecx
41c448:	c9                   	leave
41c449:	c3                   	ret
41c44a:	8b ff                	mov    %edi,%edi
41c44c:	55                   	push   %ebp
41c44d:	8b ec                	mov    %esp,%ebp
41c44f:	51                   	push   %ecx
41c450:	53                   	push   %ebx
41c451:	8b 5d 08             	mov    0x8(%ebp),%ebx
41c454:	56                   	push   %esi
41c455:	8b f1                	mov    %ecx,%esi
41c457:	57                   	push   %edi
41c458:	8b 46 14             	mov    0x14(%esi),%eax
41c45b:	3b c3                	cmp    %ebx,%eax
41c45d:	73 08                	jae    0x41c467
41c45f:	e8 26 16 07 00       	call   0x48da8a
41c464:	8b 46 14             	mov    0x14(%esi),%eax
41c467:	8b 7d 0c             	mov    0xc(%ebp),%edi
41c46a:	2b c3                	sub    %ebx,%eax
41c46c:	3b c7                	cmp    %edi,%eax
41c46e:	73 02                	jae    0x41c472
41c470:	8b f8                	mov    %eax,%edi
41c472:	85 ff                	test   %edi,%edi
41c474:	74 4d                	je     0x41c4c3
41c476:	8b 56 18             	mov    0x18(%esi),%edx
41c479:	8d 4e 04             	lea    0x4(%esi),%ecx
41c47c:	83 fa 08             	cmp    $0x8,%edx
41c47f:	72 0a                	jb     0x41c48b
41c481:	8b 19                	mov    (%ecx),%ebx
41c483:	89 5d fc             	mov    %ebx,-0x4(%ebp)
41c486:	8b 5d 08             	mov    0x8(%ebp),%ebx
41c489:	eb 03                	jmp    0x41c48e
41c48b:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41c48e:	72 02                	jb     0x41c492
41c490:	8b 09                	mov    (%ecx),%ecx
41c492:	2b c7                	sub    %edi,%eax
41c494:	03 c0                	add    %eax,%eax
41c496:	50                   	push   %eax
41c497:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
41c49a:	8b 5d fc             	mov    -0x4(%ebp),%ebx
41c49d:	8d 04 43             	lea    (%ebx,%eax,2),%eax
41c4a0:	8b 5d 08             	mov    0x8(%ebp),%ebx
41c4a3:	50                   	push   %eax
41c4a4:	2b d3                	sub    %ebx,%edx
41c4a6:	03 d2                	add    %edx,%edx
41c4a8:	52                   	push   %edx
41c4a9:	8d 04 59             	lea    (%ecx,%ebx,2),%eax
41c4ac:	50                   	push   %eax
41c4ad:	ff 15 c4 80 4a 00    	call   *0x4a80c4
41c4b3:	8b 46 14             	mov    0x14(%esi),%eax
41c4b6:	83 c4 10             	add    $0x10,%esp
41c4b9:	2b c7                	sub    %edi,%eax
41c4bb:	8b ce                	mov    %esi,%ecx
41c4bd:	50                   	push   %eax
41c4be:	e8 e1 02 00 00       	call   0x41c7a4
41c4c3:	5f                   	pop    %edi
41c4c4:	8b c6                	mov    %esi,%eax
41c4c6:	5e                   	pop    %esi
41c4c7:	5b                   	pop    %ebx
41c4c8:	c9                   	leave
41c4c9:	c2 08 00             	ret    $0x8
41c4cc:	8b ff                	mov    %edi,%edi
41c4ce:	55                   	push   %ebp
41c4cf:	8b ec                	mov    %esp,%ebp
41c4d1:	56                   	push   %esi
41c4d2:	8d 45 08             	lea    0x8(%ebp),%eax
41c4d5:	8b f1                	mov    %ecx,%esi
41c4d7:	50                   	push   %eax
41c4d8:	ff 15 c8 80 4a 00    	call   *0x4a80c8
41c4de:	c7 06 0c 12 40 00    	movl   $0x40120c,(%esi)
41c4e4:	8b c6                	mov    %esi,%eax
41c4e6:	5e                   	pop    %esi
41c4e7:	5d                   	pop    %ebp
41c4e8:	c2 04 00             	ret    $0x4
41c4eb:	cc                   	int3
41c4ec:	cc                   	int3
41c4ed:	cc                   	int3
41c4ee:	cc                   	int3
41c4ef:	cc                   	int3
41c4f0:	c7 01 0c 12 40 00    	movl   $0x40120c,(%ecx)
41c4f6:	ff 25 ec 80 4a 00    	jmp    *0x4a80ec
41c4fc:	cc                   	int3
41c4fd:	cc                   	int3
41c4fe:	cc                   	int3
41c4ff:	cc                   	int3
41c500:	8b ff                	mov    %edi,%edi
41c502:	55                   	push   %ebp
41c503:	8b ec                	mov    %esp,%ebp
41c505:	56                   	push   %esi
41c506:	8b f1                	mov    %ecx,%esi
41c508:	c7 06 0c 12 40 00    	movl   $0x40120c,(%esi)
41c50e:	ff 15 ec 80 4a 00    	call   *0x4a80ec
41c514:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
41c518:	74 08                	je     0x41c522
41c51a:	56                   	push   %esi
41c51b:	ff 15 10 74 4a 00    	call   *0x4a7410
41c521:	59                   	pop    %ecx
41c522:	8b c6                	mov    %esi,%eax
41c524:	5e                   	pop    %esi
41c525:	5d                   	pop    %ebp
41c526:	c2 04 00             	ret    $0x4
41c529:	cc                   	int3
41c52a:	cc                   	int3
41c52b:	cc                   	int3
41c52c:	cc                   	int3
41c52d:	cc                   	int3
41c52e:	cc                   	int3
41c52f:	cc                   	int3
41c530:	8b ff                	mov    %edi,%edi
41c532:	55                   	push   %ebp
41c533:	8b ec                	mov    %esp,%ebp
41c535:	83 ec 0c             	sub    $0xc,%esp
41c538:	51                   	push   %ecx
41c539:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41c53c:	e8 0f 00 00 00       	call   0x41c550
41c541:	68 4c eb 49 00       	push   $0x49eb4c
41c546:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c549:	50                   	push   %eax
41c54a:	e8 4c 3f 07 00       	call   0x49049b
41c54f:	cc                   	int3
41c550:	8b ff                	mov    %edi,%edi
41c552:	55                   	push   %ebp
41c553:	8b ec                	mov    %esp,%ebp
41c555:	51                   	push   %ecx
41c556:	56                   	push   %esi
41c557:	ff 75 08             	push   0x8(%ebp)
41c55a:	8b f1                	mov    %ecx,%esi
41c55c:	89 75 fc             	mov    %esi,-0x4(%ebp)
41c55f:	ff 15 d4 80 4a 00    	call   *0x4a80d4
41c565:	c7 06 0c 12 40 00    	movl   $0x40120c,(%esi)
41c56b:	8b c6                	mov    %esi,%eax
41c56d:	5e                   	pop    %esi
41c56e:	c9                   	leave
41c56f:	c2 04 00             	ret    $0x4
41c572:	8b ff                	mov    %edi,%edi
41c574:	55                   	push   %ebp
41c575:	8b ec                	mov    %esp,%ebp
41c577:	8b 4d 08             	mov    0x8(%ebp),%ecx
41c57a:	83 ec 0c             	sub    $0xc,%esp
41c57d:	85 c9                	test   %ecx,%ecx
41c57f:	75 0f                	jne    0x41c590
41c581:	8d 04 09             	lea    (%ecx,%ecx,1),%eax
41c584:	50                   	push   %eax
41c585:	ff 15 14 74 4a 00    	call   *0x4a7414
41c58b:	59                   	pop    %ecx
41c58c:	c9                   	leave
41c58d:	c2 04 00             	ret    $0x4
41c590:	83 c8 ff             	or     $0xffffffff,%eax
41c593:	33 d2                	xor    %edx,%edx
41c595:	f7 f1                	div    %ecx
41c597:	83 f8 02             	cmp    $0x2,%eax
41c59a:	73 e5                	jae    0x41c581
41c59c:	6a 00                	push   $0x0
41c59e:	8d 4d f4             	lea    -0xc(%ebp),%ecx
41c5a1:	e8 26 ff ff ff       	call   0x41c4cc
41c5a6:	68 4c eb 49 00       	push   $0x49eb4c
41c5ab:	8d 45 f4             	lea    -0xc(%ebp),%eax
41c5ae:	50                   	push   %eax
41c5af:	e8 e7 3e 07 00       	call   0x49049b
41c5b4:	cc                   	int3
41c5b5:	6a 10                	push   $0x10
41c5b7:	b8 91 14 49 00       	mov    $0x491491,%eax
41c5bc:	e8 7b 3f 07 00       	call   0x49053c
41c5c1:	8b f9                	mov    %ecx,%edi
41c5c3:	89 7d e8             	mov    %edi,-0x18(%ebp)
41c5c6:	8b 75 08             	mov    0x8(%ebp),%esi
41c5c9:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
41c5ce:	83 ce 07             	or     $0x7,%esi
41c5d1:	3b f1                	cmp    %ecx,%esi
41c5d3:	76 05                	jbe    0x41c5da
41c5d5:	8b 75 08             	mov    0x8(%ebp),%esi
41c5d8:	eb 23                	jmp    0x41c5fd
41c5da:	33 d2                	xor    %edx,%edx
41c5dc:	c7 45 ec 03 00 00 00 	movl   $0x3,-0x14(%ebp)
41c5e3:	8b c6                	mov    %esi,%eax
41c5e5:	8b 5f 18             	mov    0x18(%edi),%ebx
41c5e8:	f7 75 ec             	divl   -0x14(%ebp)
41c5eb:	d1 eb                	shr    $1,%ebx
41c5ed:	3b c3                	cmp    %ebx,%eax
41c5ef:	73 0c                	jae    0x41c5fd
41c5f1:	8b 47 18             	mov    0x18(%edi),%eax
41c5f4:	2b cb                	sub    %ebx,%ecx
41c5f6:	3b c1                	cmp    %ecx,%eax
41c5f8:	77 03                	ja     0x41c5fd
41c5fa:	8d 34 03             	lea    (%ebx,%eax,1),%esi
41c5fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41c601:	8d 46 01             	lea    0x1(%esi),%eax
41c604:	50                   	push   %eax
41c605:	e8 68 ff ff ff       	call   0x41c572
41c60a:	8b c8                	mov    %eax,%ecx
41c60c:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c60f:	eb 29                	jmp    0x41c63a
41c611:	8b 45 08             	mov    0x8(%ebp),%eax
41c614:	89 45 ec             	mov    %eax,-0x14(%ebp)
41c617:	40                   	inc    %eax
41c618:	89 65 f0             	mov    %esp,-0x10(%ebp)
41c61b:	50                   	push   %eax
41c61c:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
41c620:	e8 4d ff ff ff       	call   0x41c572
41c625:	89 45 e4             	mov    %eax,-0x1c(%ebp)
41c628:	b8 2e c6 41 00       	mov    $0x41c62e,%eax
41c62d:	c3                   	ret
41c62e:	8b 75 ec             	mov    -0x14(%ebp),%esi
41c631:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41c634:	8b 7d e8             	mov    -0x18(%ebp),%edi
41c637:	89 4d ec             	mov    %ecx,-0x14(%ebp)
41c63a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41c63d:	85 db                	test   %ebx,%ebx
41c63f:	74 22                	je     0x41c663
41c641:	83 7f 18 08          	cmpl   $0x8,0x18(%edi)
41c645:	8d 57 04             	lea    0x4(%edi),%edx
41c648:	72 02                	jb     0x41c64c
41c64a:	8b 12                	mov    (%edx),%edx
41c64c:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41c64f:	50                   	push   %eax
41c650:	52                   	push   %edx
41c651:	8d 04 75 02 00 00 00 	lea    0x2(,%esi,2),%eax
41c658:	50                   	push   %eax
41c659:	51                   	push   %ecx
41c65a:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41c660:	83 c4 10             	add    $0x10,%esp
41c663:	6a 00                	push   $0x0
41c665:	6a 01                	push   $0x1
41c667:	8b cf                	mov    %edi,%ecx
41c669:	e8 56 01 00 00       	call   0x41c7c4
41c66e:	8b 45 ec             	mov    -0x14(%ebp),%eax
41c671:	8b cf                	mov    %edi,%ecx
41c673:	53                   	push   %ebx
41c674:	89 47 04             	mov    %eax,0x4(%edi)
41c677:	89 77 18             	mov    %esi,0x18(%edi)
41c67a:	e8 25 01 00 00       	call   0x41c7a4
41c67f:	e8 1d 3e 07 00       	call   0x4904a1
41c684:	c2 08 00             	ret    $0x8
41c687:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41c68a:	6a 00                	push   $0x0
41c68c:	6a 01                	push   $0x1
41c68e:	e8 31 01 00 00       	call   0x41c7c4
41c693:	6a 00                	push   $0x0
41c695:	6a 00                	push   $0x0
41c697:	e8 ff 3d 07 00       	call   0x49049b
41c69c:	cc                   	int3
41c69d:	8b ff                	mov    %edi,%edi
41c69f:	55                   	push   %ebp
41c6a0:	8b ec                	mov    %esp,%ebp
41c6a2:	56                   	push   %esi
41c6a3:	8b 75 08             	mov    0x8(%ebp),%esi
41c6a6:	57                   	push   %edi
41c6a7:	8b f9                	mov    %ecx,%edi
41c6a9:	81 fe fe ff ff 7f    	cmp    $0x7ffffffe,%esi
41c6af:	76 05                	jbe    0x41c6b6
41c6b1:	e8 9c 13 07 00       	call   0x48da52
41c6b6:	8b 47 18             	mov    0x18(%edi),%eax
41c6b9:	3b c6                	cmp    %esi,%eax
41c6bb:	73 0d                	jae    0x41c6ca
41c6bd:	ff 77 14             	push   0x14(%edi)
41c6c0:	8b cf                	mov    %edi,%ecx
41c6c2:	56                   	push   %esi
41c6c3:	e8 ed fe ff ff       	call   0x41c5b5
41c6c8:	eb 36                	jmp    0x41c700
41c6ca:	80 7d 0c 00          	cmpb   $0x0,0xc(%ebp)
41c6ce:	74 1a                	je     0x41c6ea
41c6d0:	83 fe 08             	cmp    $0x8,%esi
41c6d3:	73 15                	jae    0x41c6ea
41c6d5:	8b 47 14             	mov    0x14(%edi),%eax
41c6d8:	3b f0                	cmp    %eax,%esi
41c6da:	73 02                	jae    0x41c6de
41c6dc:	8b c6                	mov    %esi,%eax
41c6de:	50                   	push   %eax
41c6df:	6a 01                	push   $0x1
41c6e1:	8b cf                	mov    %edi,%ecx
41c6e3:	e8 dc 00 00 00       	call   0x41c7c4
41c6e8:	eb 16                	jmp    0x41c700
41c6ea:	85 f6                	test   %esi,%esi
41c6ec:	75 14                	jne    0x41c702
41c6ee:	21 77 14             	and    %esi,0x14(%edi)
41c6f1:	83 c7 04             	add    $0x4,%edi
41c6f4:	83 f8 08             	cmp    $0x8,%eax
41c6f7:	72 02                	jb     0x41c6fb
41c6f9:	8b 3f                	mov    (%edi),%edi
41c6fb:	33 c0                	xor    %eax,%eax
41c6fd:	66 89 07             	mov    %ax,(%edi)
41c700:	85 f6                	test   %esi,%esi
41c702:	5f                   	pop    %edi
41c703:	0f 95 c0             	setne  %al
41c706:	5e                   	pop    %esi
41c707:	5d                   	pop    %ebp
41c708:	c2 08 00             	ret    $0x8
41c70b:	8b ff                	mov    %edi,%edi
41c70d:	55                   	push   %ebp
41c70e:	8b ec                	mov    %esp,%ebp
41c710:	8b 45 0c             	mov    0xc(%ebp),%eax
41c713:	53                   	push   %ebx
41c714:	8b 5d 08             	mov    0x8(%ebp),%ebx
41c717:	56                   	push   %esi
41c718:	57                   	push   %edi
41c719:	8b f9                	mov    %ecx,%edi
41c71b:	8b 73 14             	mov    0x14(%ebx),%esi
41c71e:	3b f0                	cmp    %eax,%esi
41c720:	73 0b                	jae    0x41c72d
41c722:	e8 63 13 07 00       	call   0x48da8a
41c727:	8b 73 14             	mov    0x14(%ebx),%esi
41c72a:	8b 45 0c             	mov    0xc(%ebp),%eax
41c72d:	2b f0                	sub    %eax,%esi
41c72f:	39 75 10             	cmp    %esi,0x10(%ebp)
41c732:	73 03                	jae    0x41c737
41c734:	8b 75 10             	mov    0x10(%ebp),%esi
41c737:	8b cf                	mov    %edi,%ecx
41c739:	3b fb                	cmp    %ebx,%edi
41c73b:	75 19                	jne    0x41c756
41c73d:	6a ff                	push   $0xffffffff
41c73f:	03 c6                	add    %esi,%eax
41c741:	50                   	push   %eax
41c742:	e8 03 fd ff ff       	call   0x41c44a
41c747:	8b 45 0c             	mov    0xc(%ebp),%eax
41c74a:	8b cf                	mov    %edi,%ecx
41c74c:	50                   	push   %eax
41c74d:	6a 00                	push   $0x0
41c74f:	e8 f6 fc ff ff       	call   0x41c44a
41c754:	eb 45                	jmp    0x41c79b
41c756:	6a 00                	push   $0x0
41c758:	56                   	push   %esi
41c759:	e8 3f ff ff ff       	call   0x41c69d
41c75e:	84 c0                	test   %al,%al
41c760:	74 39                	je     0x41c79b
41c762:	83 7b 18 08          	cmpl   $0x8,0x18(%ebx)
41c766:	8d 4b 04             	lea    0x4(%ebx),%ecx
41c769:	72 02                	jb     0x41c76d
41c76b:	8b 09                	mov    (%ecx),%ecx
41c76d:	8b 5f 18             	mov    0x18(%edi),%ebx
41c770:	8d 57 04             	lea    0x4(%edi),%edx
41c773:	83 fb 08             	cmp    $0x8,%ebx
41c776:	72 02                	jb     0x41c77a
41c778:	8b 12                	mov    (%edx),%edx
41c77a:	8d 04 36             	lea    (%esi,%esi,1),%eax
41c77d:	50                   	push   %eax
41c77e:	8b 45 0c             	mov    0xc(%ebp),%eax
41c781:	8d 04 41             	lea    (%ecx,%eax,2),%eax
41c784:	50                   	push   %eax
41c785:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
41c788:	50                   	push   %eax
41c789:	52                   	push   %edx
41c78a:	ff 15 f0 80 4a 00    	call   *0x4a80f0
41c790:	83 c4 10             	add    $0x10,%esp
41c793:	8b cf                	mov    %edi,%ecx
41c795:	56                   	push   %esi
41c796:	e8 09 00 00 00       	call   0x41c7a4
41c79b:	8b c7                	mov    %edi,%eax
41c79d:	5f                   	pop    %edi
41c79e:	5e                   	pop    %esi
41c79f:	5b                   	pop    %ebx