47e5d9:	5b                   	pop    %ebx
47e5da:	8b e5                	mov    %ebp,%esp
47e5dc:	5d                   	pop    %ebp
47e5dd:	c3                   	ret
47e5de:	85 c0                	test   %eax,%eax
47e5e0:	75 48                	jne    0x47e62a
47e5e2:	8b 79 04             	mov    0x4(%ecx),%edi
47e5e5:	8d 71 04             	lea    0x4(%ecx),%esi
47e5e8:	50                   	push   %eax
47e5e9:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
47e5ef:	89 01                	mov    %eax,(%ecx)
47e5f1:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
47e5f7:	50                   	push   %eax
47e5f8:	68 cc 01 00 00       	push   $0x1cc
47e5fd:	56                   	push   %esi
47e5fe:	e8 d8 bb ff ff       	call   0x47a1db
47e603:	33 d2                	xor    %edx,%edx
47e605:	8b c7                	mov    %edi,%eax
47e607:	f7 f3                	div    %ebx
47e609:	83 c4 10             	add    $0x10,%esp
47e60c:	33 c0                	xor    %eax,%eax
47e60e:	3b c2                	cmp    %edx,%eax
47e610:	89 16                	mov    %edx,(%esi)
47e612:	8b 55 08             	mov    0x8(%ebp),%edx
47e615:	8b c7                	mov    %edi,%eax
47e617:	1b c9                	sbb    %ecx,%ecx
47e619:	f7 d9                	neg    %ecx
47e61b:	5f                   	pop    %edi
47e61c:	89 0a                	mov    %ecx,(%edx)
47e61e:	33 d2                	xor    %edx,%edx
47e620:	f7 f3                	div    %ebx
47e622:	5e                   	pop    %esi
47e623:	33 d2                	xor    %edx,%edx
47e625:	5b                   	pop    %ebx
47e626:	8b e5                	mov    %ebp,%esp
47e628:	5d                   	pop    %ebp
47e629:	c3                   	ret
47e62a:	33 ff                	xor    %edi,%edi
47e62c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
47e633:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
47e63a:	89 7d ec             	mov    %edi,-0x14(%ebp)
47e63d:	83 f8 ff             	cmp    $0xffffffff,%eax
47e640:	74 4a                	je     0x47e68c
47e642:	40                   	inc    %eax
47e643:	8d 04 81             	lea    (%ecx,%eax,4),%eax
47e646:	89 45 e8             	mov    %eax,-0x18(%ebp)
47e649:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
47e650:	6a 00                	push   $0x0
47e652:	53                   	push   %ebx
47e653:	33 f6                	xor    %esi,%esi
47e655:	0b 30                	or     (%eax),%esi
47e657:	57                   	push   %edi
47e658:	56                   	push   %esi
47e659:	e8 02 bd fe ff       	call   0x46a360
47e65e:	6a 00                	push   $0x0
47e660:	33 c9                	xor    %ecx,%ecx
47e662:	03 c1                	add    %ecx,%eax
47e664:	53                   	push   %ebx
47e665:	13 4d f4             	adc    -0xc(%ebp),%ecx
47e668:	57                   	push   %edi
47e669:	56                   	push   %esi
47e66a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47e66d:	89 45 f4             	mov    %eax,-0xc(%ebp)
47e670:	e8 5b 73 01 00       	call   0x4959d0
47e675:	8b f8                	mov    %eax,%edi
47e677:	89 55 ec             	mov    %edx,-0x14(%ebp)
47e67a:	8b 45 e8             	mov    -0x18(%ebp),%eax
47e67d:	83 e8 04             	sub    $0x4,%eax
47e680:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
47e684:	89 45 e8             	mov    %eax,-0x18(%ebp)
47e687:	75 c7                	jne    0x47e650
47e689:	8b 4d 08             	mov    0x8(%ebp),%ecx
47e68c:	6a 00                	push   $0x0
47e68e:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
47e694:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
47e69b:	00 00 00
47e69e:	50                   	push   %eax
47e69f:	8d 71 04             	lea    0x4(%ecx),%esi
47e6a2:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
47e6a8:	68 cc 01 00 00       	push   $0x1cc
47e6ad:	56                   	push   %esi
47e6ae:	e8 28 bb ff ff       	call   0x47a1db
47e6b3:	8b 45 ec             	mov    -0x14(%ebp),%eax
47e6b6:	83 c4 10             	add    $0x10,%esp
47e6b9:	8b 55 08             	mov    0x8(%ebp),%edx
47e6bc:	33 c9                	xor    %ecx,%ecx
47e6be:	3b c8                	cmp    %eax,%ecx
47e6c0:	89 3e                	mov    %edi,(%esi)
47e6c2:	1b c9                	sbb    %ecx,%ecx
47e6c4:	f7 d9                	neg    %ecx
47e6c6:	89 42 08             	mov    %eax,0x8(%edx)
47e6c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
47e6cc:	41                   	inc    %ecx
47e6cd:	5f                   	pop    %edi
47e6ce:	5e                   	pop    %esi
47e6cf:	89 0a                	mov    %ecx,(%edx)
47e6d1:	8b 55 fc             	mov    -0x4(%ebp),%edx
47e6d4:	5b                   	pop    %ebx
47e6d5:	8b e5                	mov    %ebp,%esp
47e6d7:	5d                   	pop    %ebp
47e6d8:	c3                   	ret
47e6d9:	3b f0                	cmp    %eax,%esi
47e6db:	0f 87 1f 03 00 00    	ja     0x47ea00
47e6e1:	8b d0                	mov    %eax,%edx
47e6e3:	8b d8                	mov    %eax,%ebx
47e6e5:	2b d6                	sub    %esi,%edx
47e6e7:	3b da                	cmp    %edx,%ebx
47e6e9:	7c 1f                	jl     0x47e70a
47e6eb:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
47e6ee:	83 c1 04             	add    $0x4,%ecx
47e6f1:	46                   	inc    %esi
47e6f2:	8d 34 b7             	lea    (%edi,%esi,4),%esi
47e6f5:	8b 3e                	mov    (%esi),%edi
47e6f7:	3b 39                	cmp    (%ecx),%edi
47e6f9:	75 0d                	jne    0x47e708
47e6fb:	48                   	dec    %eax
47e6fc:	83 ee 04             	sub    $0x4,%esi
47e6ff:	83 e9 04             	sub    $0x4,%ecx
47e702:	3b c2                	cmp    %edx,%eax
47e704:	7d ef                	jge    0x47e6f5
47e706:	eb 02                	jmp    0x47e70a
47e708:	73 01                	jae    0x47e70b
47e70a:	42                   	inc    %edx
47e70b:	85 d2                	test   %edx,%edx
47e70d:	0f 84 ed 02 00 00    	je     0x47ea00
47e713:	8b 7d ec             	mov    -0x14(%ebp),%edi
47e716:	8b 75 0c             	mov    0xc(%ebp),%esi
47e719:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
47e71d:	8b 1c be             	mov    (%esi,%edi,4),%ebx
47e720:	89 45 e0             	mov    %eax,-0x20(%ebp)
47e723:	0f bd c3             	bsr    %ebx,%eax
47e726:	89 5d d0             	mov    %ebx,-0x30(%ebp)
47e729:	74 09                	je     0x47e734
47e72b:	b9 1f 00 00 00       	mov    $0x1f,%ecx
47e730:	2b c8                	sub    %eax,%ecx
47e732:	eb 05                	jmp    0x47e739
47e734:	b9 20 00 00 00       	mov    $0x20,%ecx
47e739:	b8 20 00 00 00       	mov    $0x20,%eax
47e73e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
47e741:	2b c1                	sub    %ecx,%eax
47e743:	89 45 d4             	mov    %eax,-0x2c(%ebp)
47e746:	85 c9                	test   %ecx,%ecx
47e748:	74 2d                	je     0x47e777
47e74a:	8b 45 e0             	mov    -0x20(%ebp),%eax
47e74d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47e750:	d3 e8                	shr    %cl,%eax
47e752:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
47e755:	d3 e3                	shl    %cl,%ebx
47e757:	0b d8                	or     %eax,%ebx
47e759:	89 5d d0             	mov    %ebx,-0x30(%ebp)
47e75c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
47e75f:	d3 e3                	shl    %cl,%ebx
47e761:	89 5d e0             	mov    %ebx,-0x20(%ebp)
47e764:	83 ff 02             	cmp    $0x2,%edi
47e767:	76 0e                	jbe    0x47e777
47e769:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
47e76d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47e770:	d3 e8                	shr    %cl,%eax
47e772:	0b d8                	or     %eax,%ebx
47e774:	89 5d e0             	mov    %ebx,-0x20(%ebp)
47e777:	8d 5a ff             	lea    -0x1(%edx),%ebx
47e77a:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
47e781:	33 f6                	xor    %esi,%esi
47e783:	89 5d b0             	mov    %ebx,-0x50(%ebp)
47e786:	85 db                	test   %ebx,%ebx
47e788:	0f 88 31 02 00 00    	js     0x47e9bf
47e78e:	8b 55 08             	mov    0x8(%ebp),%edx
47e791:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
47e794:	89 45 c8             	mov    %eax,-0x38(%ebp)
47e797:	8d 4a 04             	lea    0x4(%edx),%ecx
47e79a:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
47e79d:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
47e7a0:	8d 4a fc             	lea    -0x4(%edx),%ecx
47e7a3:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
47e7a6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
47e7a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
47e7b0:	3b 45 f4             	cmp    -0xc(%ebp),%eax
47e7b3:	77 05                	ja     0x47e7ba
47e7b5:	8b 51 08             	mov    0x8(%ecx),%edx
47e7b8:	eb 02                	jmp    0x47e7bc
47e7ba:	33 d2                	xor    %edx,%edx
47e7bc:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
47e7c0:	8b 41 04             	mov    0x4(%ecx),%eax
47e7c3:	8b 19                	mov    (%ecx),%ebx
47e7c5:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
47e7cc:	89 55 b8             	mov    %edx,-0x48(%ebp)
47e7cf:	89 45 fc             	mov    %eax,-0x4(%ebp)
47e7d2:	89 55 dc             	mov    %edx,-0x24(%ebp)
47e7d5:	89 5d f8             	mov    %ebx,-0x8(%ebp)
47e7d8:	76 3c                	jbe    0x47e816
47e7da:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47e7dd:	8b fb                	mov    %ebx,%edi
47e7df:	d3 ef                	shr    %cl,%edi
47e7e1:	33 f6                	xor    %esi,%esi
47e7e3:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
47e7e6:	e8 65 72 01 00       	call   0x495a50
47e7eb:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
47e7ee:	0b c7                	or     %edi,%eax
47e7f0:	0b d6                	or     %esi,%edx
47e7f2:	d3 e3                	shl    %cl,%ebx
47e7f4:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
47e7f8:	89 45 fc             	mov    %eax,-0x4(%ebp)
47e7fb:	89 55 dc             	mov    %edx,-0x24(%ebp)
47e7fe:	89 5d f8             	mov    %ebx,-0x8(%ebp)
47e801:	72 13                	jb     0x47e816
47e803:	8b 45 e8             	mov    -0x18(%ebp),%eax
47e806:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47e809:	8b 40 fc             	mov    -0x4(%eax),%eax
47e80c:	d3 e8                	shr    %cl,%eax
47e80e:	0b d8                	or     %eax,%ebx
47e810:	8b 45 fc             	mov    -0x4(%ebp),%eax
47e813:	89 5d f8             	mov    %ebx,-0x8(%ebp)
47e816:	8b 75 d0             	mov    -0x30(%ebp),%esi
47e819:	6a 00                	push   $0x0
47e81b:	56                   	push   %esi
47e81c:	52                   	push   %edx
47e81d:	50                   	push   %eax
47e81e:	e8 3d bb fe ff       	call   0x46a360
47e823:	6a 00                	push   $0x0
47e825:	56                   	push   %esi
47e826:	ff 75 dc             	push   -0x24(%ebp)
47e829:	8b d8                	mov    %eax,%ebx
47e82b:	89 55 f0             	mov    %edx,-0x10(%ebp)
47e82e:	ff 75 fc             	push   -0x4(%ebp)
47e831:	89 5d cc             	mov    %ebx,-0x34(%ebp)
47e834:	89 5d bc             	mov    %ebx,-0x44(%ebp)
47e837:	89 55 c0             	mov    %edx,-0x40(%ebp)
47e83a:	e8 91 71 01 00       	call   0x4959d0
47e83f:	8b f8                	mov    %eax,%edi
47e841:	33 f6                	xor    %esi,%esi
47e843:	8b 45 f0             	mov    -0x10(%ebp),%eax
47e846:	89 75 fc             	mov    %esi,-0x4(%ebp)
47e849:	85 c0                	test   %eax,%eax
47e84b:	75 05                	jne    0x47e852
47e84d:	83 fb ff             	cmp    $0xffffffff,%ebx
47e850:	76 2a                	jbe    0x47e87c
47e852:	6a 00                	push   $0x0
47e854:	ff 75 d0             	push   -0x30(%ebp)
47e857:	83 c3 01             	add    $0x1,%ebx
47e85a:	83 d0 ff             	adc    $0xffffffff,%eax
47e85d:	50                   	push   %eax
47e85e:	53                   	push   %ebx
47e85f:	e8 bc ba fe ff       	call   0x46a320
47e864:	03 f8                	add    %eax,%edi
47e866:	13 f2                	adc    %edx,%esi
47e868:	83 cb ff             	or     $0xffffffff,%ebx
47e86b:	33 c0                	xor    %eax,%eax
47e86d:	89 75 fc             	mov    %esi,-0x4(%ebp)
47e870:	89 5d cc             	mov    %ebx,-0x34(%ebp)
47e873:	89 5d bc             	mov    %ebx,-0x44(%ebp)
47e876:	89 45 f0             	mov    %eax,-0x10(%ebp)
47e879:	89 45 c0             	mov    %eax,-0x40(%ebp)
47e87c:	85 f6                	test   %esi,%esi
47e87e:	77 50                	ja     0x47e8d0
47e880:	72 05                	jb     0x47e887
47e882:	83 ff ff             	cmp    $0xffffffff,%edi
47e885:	77 49                	ja     0x47e8d0
47e887:	50                   	push   %eax
47e888:	53                   	push   %ebx
47e889:	33 c9                	xor    %ecx,%ecx
47e88b:	8b f7                	mov    %edi,%esi
47e88d:	0b 4d f8             	or     -0x8(%ebp),%ecx
47e890:	6a 00                	push   $0x0
47e892:	ff 75 e0             	push   -0x20(%ebp)
47e895:	89 4d dc             	mov    %ecx,-0x24(%ebp)
47e898:	e8 83 ba fe ff       	call   0x46a320
47e89d:	3b d6                	cmp    %esi,%edx
47e89f:	72 29                	jb     0x47e8ca
47e8a1:	77 05                	ja     0x47e8a8
47e8a3:	3b 45 dc             	cmp    -0x24(%ebp),%eax
47e8a6:	76 22                	jbe    0x47e8ca
47e8a8:	8b 45 f0             	mov    -0x10(%ebp),%eax
47e8ab:	83 c3 ff             	add    $0xffffffff,%ebx
47e8ae:	89 5d bc             	mov    %ebx,-0x44(%ebp)
47e8b1:	83 d0 ff             	adc    $0xffffffff,%eax
47e8b4:	03 7d d0             	add    -0x30(%ebp),%edi
47e8b7:	89 45 f0             	mov    %eax,-0x10(%ebp)
47e8ba:	83 55 fc 00          	adcl   $0x0,-0x4(%ebp)
47e8be:	89 45 c0             	mov    %eax,-0x40(%ebp)
47e8c1:	75 0a                	jne    0x47e8cd
47e8c3:	83 ff ff             	cmp    $0xffffffff,%edi
47e8c6:	76 bf                	jbe    0x47e887
47e8c8:	eb 03                	jmp    0x47e8cd
47e8ca:	8b 45 f0             	mov    -0x10(%ebp),%eax
47e8cd:	89 5d cc             	mov    %ebx,-0x34(%ebp)
47e8d0:	85 c0                	test   %eax,%eax
47e8d2:	75 08                	jne    0x47e8dc
47e8d4:	85 db                	test   %ebx,%ebx
47e8d6:	0f 84 af 00 00 00    	je     0x47e98b
47e8dc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47e8df:	33 ff                	xor    %edi,%edi
47e8e1:	8b 45 0c             	mov    0xc(%ebp),%eax
47e8e4:	33 f6                	xor    %esi,%esi
47e8e6:	85 c9                	test   %ecx,%ecx
47e8e8:	74 55                	je     0x47e93f
47e8ea:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
47e8ed:	83 c0 04             	add    $0x4,%eax
47e8f0:	89 45 f8             	mov    %eax,-0x8(%ebp)
47e8f3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47e8f6:	8b 00                	mov    (%eax),%eax
47e8f8:	89 45 dc             	mov    %eax,-0x24(%ebp)
47e8fb:	8b 45 c0             	mov    -0x40(%ebp),%eax
47e8fe:	f7 65 dc             	mull   -0x24(%ebp)
47e901:	8b c8                	mov    %eax,%ecx
47e903:	8b 45 bc             	mov    -0x44(%ebp),%eax
47e906:	f7 65 dc             	mull   -0x24(%ebp)
47e909:	03 d1                	add    %ecx,%edx
47e90b:	03 f8                	add    %eax,%edi
47e90d:	8b 03                	mov    (%ebx),%eax
47e90f:	8b cf                	mov    %edi,%ecx
47e911:	13 f2                	adc    %edx,%esi
47e913:	8b fe                	mov    %esi,%edi
47e915:	33 f6                	xor    %esi,%esi
47e917:	3b c1                	cmp    %ecx,%eax
47e919:	73 05                	jae    0x47e920
47e91b:	83 c7 01             	add    $0x1,%edi
47e91e:	13 f6                	adc    %esi,%esi
47e920:	2b c1                	sub    %ecx,%eax
47e922:	89 03                	mov    %eax,(%ebx)
47e924:	83 c3 04             	add    $0x4,%ebx
47e927:	8b 45 f8             	mov    -0x8(%ebp),%eax
47e92a:	83 c0 04             	add    $0x4,%eax
47e92d:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
47e931:	89 45 f8             	mov    %eax,-0x8(%ebp)
47e934:	75 c0                	jne    0x47e8f6
47e936:	8b 45 0c             	mov    0xc(%ebp),%eax
47e939:	8b 5d cc             	mov    -0x34(%ebp),%ebx
47e93c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
47e93f:	83 c0 04             	add    $0x4,%eax
47e942:	89 45 dc             	mov    %eax,-0x24(%ebp)
47e945:	33 c0                	xor    %eax,%eax
47e947:	3b c6                	cmp    %esi,%eax
47e949:	77 39                	ja     0x47e984
47e94b:	72 05                	jb     0x47e952
47e94d:	39 7d b8             	cmp    %edi,-0x48(%ebp)
47e950:	73 32                	jae    0x47e984
47e952:	85 c9                	test   %ecx,%ecx
47e954:	74 2b                	je     0x47e981
47e956:	8b 55 c4             	mov    -0x3c(%ebp),%edx
47e959:	33 db                	xor    %ebx,%ebx
47e95b:	8b 75 dc             	mov    -0x24(%ebp),%esi
47e95e:	8b f9                	mov    %ecx,%edi
47e960:	8b 0a                	mov    (%edx),%ecx
47e962:	8d 76 04             	lea    0x4(%esi),%esi
47e965:	33 c0                	xor    %eax,%eax
47e967:	8d 52 04             	lea    0x4(%edx),%edx
47e96a:	03 4e fc             	add    -0x4(%esi),%ecx
47e96d:	13 c0                	adc    %eax,%eax
47e96f:	03 cb                	add    %ebx,%ecx
47e971:	89 4a fc             	mov    %ecx,-0x4(%edx)