424493:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
42449a:	89 7d ec             	mov    %edi,-0x14(%ebp)
42449d:	83 f8 ff             	cmp    $0xffffffff,%eax
4244a0:	74 4a                	je     0x4244ec
4244a2:	40                   	inc    %eax
4244a3:	8d 04 81             	lea    (%ecx,%eax,4),%eax
4244a6:	89 45 e8             	mov    %eax,-0x18(%ebp)
4244a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4244b0:	6a 00                	push   $0x0
4244b2:	53                   	push   %ebx
4244b3:	33 f6                	xor    %esi,%esi
4244b5:	0b 30                	or     (%eax),%esi
4244b7:	57                   	push   %edi
4244b8:	56                   	push   %esi
4244b9:	e8 82 60 ff ff       	call   0x41a540
4244be:	6a 00                	push   $0x0
4244c0:	33 c9                	xor    %ecx,%ecx
4244c2:	03 c1                	add    %ecx,%eax
4244c4:	53                   	push   %ebx
4244c5:	13 4d f4             	adc    -0xc(%ebp),%ecx
4244c8:	57                   	push   %edi
4244c9:	56                   	push   %esi
4244ca:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4244cd:	89 45 f4             	mov    %eax,-0xc(%ebp)
4244d0:	e8 eb 5c 01 00       	call   0x43a1c0
4244d5:	8b f8                	mov    %eax,%edi
4244d7:	89 55 ec             	mov    %edx,-0x14(%ebp)
4244da:	8b 45 e8             	mov    -0x18(%ebp),%eax
4244dd:	83 e8 04             	sub    $0x4,%eax
4244e0:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
4244e4:	89 45 e8             	mov    %eax,-0x18(%ebp)
4244e7:	75 c7                	jne    0x4244b0
4244e9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4244ec:	6a 00                	push   $0x0
4244ee:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
4244f4:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
4244fb:	00 00 00
4244fe:	50                   	push   %eax
4244ff:	8d 71 04             	lea    0x4(%ecx),%esi
424502:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
424508:	68 cc 01 00 00       	push   $0x1cc
42450d:	56                   	push   %esi
42450e:	e8 18 fe ff ff       	call   0x42432b
424513:	8b 45 ec             	mov    -0x14(%ebp),%eax
424516:	83 c4 10             	add    $0x10,%esp
424519:	8b 55 08             	mov    0x8(%ebp),%edx
42451c:	33 c9                	xor    %ecx,%ecx
42451e:	3b c8                	cmp    %eax,%ecx
424520:	89 3e                	mov    %edi,(%esi)
424522:	1b c9                	sbb    %ecx,%ecx
424524:	f7 d9                	neg    %ecx
424526:	89 42 08             	mov    %eax,0x8(%edx)
424529:	8b 45 f4             	mov    -0xc(%ebp),%eax
42452c:	41                   	inc    %ecx
42452d:	5f                   	pop    %edi
42452e:	5e                   	pop    %esi
42452f:	89 0a                	mov    %ecx,(%edx)
424531:	8b 55 fc             	mov    -0x4(%ebp),%edx
424534:	5b                   	pop    %ebx
424535:	8b e5                	mov    %ebp,%esp
424537:	5d                   	pop    %ebp
424538:	c3                   	ret
424539:	3b f0                	cmp    %eax,%esi
42453b:	0f 87 1f 03 00 00    	ja     0x424860
424541:	8b d0                	mov    %eax,%edx
424543:	8b d8                	mov    %eax,%ebx
424545:	2b d6                	sub    %esi,%edx
424547:	3b da                	cmp    %edx,%ebx
424549:	7c 1f                	jl     0x42456a
42454b:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
42454e:	83 c1 04             	add    $0x4,%ecx
424551:	46                   	inc    %esi
424552:	8d 34 b7             	lea    (%edi,%esi,4),%esi
424555:	8b 3e                	mov    (%esi),%edi
424557:	3b 39                	cmp    (%ecx),%edi
424559:	75 0d                	jne    0x424568
42455b:	48                   	dec    %eax
42455c:	83 ee 04             	sub    $0x4,%esi
42455f:	83 e9 04             	sub    $0x4,%ecx
424562:	3b c2                	cmp    %edx,%eax
424564:	7d ef                	jge    0x424555
424566:	eb 02                	jmp    0x42456a
424568:	73 01                	jae    0x42456b
42456a:	42                   	inc    %edx
42456b:	85 d2                	test   %edx,%edx
42456d:	0f 84 ed 02 00 00    	je     0x424860
424573:	8b 7d ec             	mov    -0x14(%ebp),%edi
424576:	8b 75 0c             	mov    0xc(%ebp),%esi
424579:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
42457d:	8b 1c be             	mov    (%esi,%edi,4),%ebx
424580:	89 45 e0             	mov    %eax,-0x20(%ebp)
424583:	0f bd c3             	bsr    %ebx,%eax
424586:	89 5d d0             	mov    %ebx,-0x30(%ebp)
424589:	74 09                	je     0x424594
42458b:	b9 1f 00 00 00       	mov    $0x1f,%ecx
424590:	2b c8                	sub    %eax,%ecx
424592:	eb 05                	jmp    0x424599
424594:	b9 20 00 00 00       	mov    $0x20,%ecx
424599:	b8 20 00 00 00       	mov    $0x20,%eax
42459e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4245a1:	2b c1                	sub    %ecx,%eax
4245a3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4245a6:	85 c9                	test   %ecx,%ecx
4245a8:	74 2d                	je     0x4245d7
4245aa:	8b 45 e0             	mov    -0x20(%ebp),%eax
4245ad:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4245b0:	d3 e8                	shr    %cl,%eax
4245b2:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4245b5:	d3 e3                	shl    %cl,%ebx
4245b7:	0b d8                	or     %eax,%ebx
4245b9:	89 5d d0             	mov    %ebx,-0x30(%ebp)
4245bc:	8b 5d e0             	mov    -0x20(%ebp),%ebx
4245bf:	d3 e3                	shl    %cl,%ebx
4245c1:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4245c4:	83 ff 02             	cmp    $0x2,%edi
4245c7:	76 0e                	jbe    0x4245d7
4245c9:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
4245cd:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4245d0:	d3 e8                	shr    %cl,%eax
4245d2:	0b d8                	or     %eax,%ebx
4245d4:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4245d7:	8d 5a ff             	lea    -0x1(%edx),%ebx
4245da:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
4245e1:	33 f6                	xor    %esi,%esi
4245e3:	89 5d b0             	mov    %ebx,-0x50(%ebp)
4245e6:	85 db                	test   %ebx,%ebx
4245e8:	0f 88 31 02 00 00    	js     0x42481f
4245ee:	8b 55 08             	mov    0x8(%ebp),%edx
4245f1:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
4245f4:	89 45 c8             	mov    %eax,-0x38(%ebp)
4245f7:	8d 4a 04             	lea    0x4(%edx),%ecx
4245fa:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
4245fd:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
424600:	8d 4a fc             	lea    -0x4(%edx),%ecx
424603:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
424606:	89 4d e8             	mov    %ecx,-0x18(%ebp)
424609:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
424610:	3b 45 f4             	cmp    -0xc(%ebp),%eax
424613:	77 05                	ja     0x42461a
424615:	8b 51 08             	mov    0x8(%ecx),%edx
424618:	eb 02                	jmp    0x42461c
42461a:	33 d2                	xor    %edx,%edx
42461c:	83 7d e4 00          	cmpl   $0x0,-0x1c(%ebp)
424620:	8b 41 04             	mov    0x4(%ecx),%eax
424623:	8b 19                	mov    (%ecx),%ebx
424625:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
42462c:	89 55 b8             	mov    %edx,-0x48(%ebp)
42462f:	89 45 fc             	mov    %eax,-0x4(%ebp)
424632:	89 55 dc             	mov    %edx,-0x24(%ebp)
424635:	89 5d f8             	mov    %ebx,-0x8(%ebp)
424638:	76 3c                	jbe    0x424676
42463a:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
42463d:	8b fb                	mov    %ebx,%edi
42463f:	d3 ef                	shr    %cl,%edi
424641:	33 f6                	xor    %esi,%esi
424643:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
424646:	e8 f5 5b 01 00       	call   0x43a240
42464b:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
42464e:	0b c7                	or     %edi,%eax
424650:	0b d6                	or     %esi,%edx
424652:	d3 e3                	shl    %cl,%ebx
424654:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
424658:	89 45 fc             	mov    %eax,-0x4(%ebp)
42465b:	89 55 dc             	mov    %edx,-0x24(%ebp)
42465e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
424661:	72 13                	jb     0x424676
424663:	8b 45 e8             	mov    -0x18(%ebp),%eax
424666:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
424669:	8b 40 fc             	mov    -0x4(%eax),%eax
42466c:	d3 e8                	shr    %cl,%eax
42466e:	0b d8                	or     %eax,%ebx
424670:	8b 45 fc             	mov    -0x4(%ebp),%eax
424673:	89 5d f8             	mov    %ebx,-0x8(%ebp)
424676:	8b 75 d0             	mov    -0x30(%ebp),%esi
424679:	6a 00                	push   $0x0
42467b:	56                   	push   %esi
42467c:	52                   	push   %edx
42467d:	50                   	push   %eax
42467e:	e8 bd 5e ff ff       	call   0x41a540
424683:	6a 00                	push   $0x0
424685:	56                   	push   %esi
424686:	ff 75 dc             	push   -0x24(%ebp)
424689:	8b d8                	mov    %eax,%ebx
42468b:	89 55 f0             	mov    %edx,-0x10(%ebp)
42468e:	ff 75 fc             	push   -0x4(%ebp)
424691:	89 5d cc             	mov    %ebx,-0x34(%ebp)
424694:	89 5d bc             	mov    %ebx,-0x44(%ebp)
424697:	89 55 c0             	mov    %edx,-0x40(%ebp)
42469a:	e8 21 5b 01 00       	call   0x43a1c0
42469f:	8b f8                	mov    %eax,%edi
4246a1:	33 f6                	xor    %esi,%esi
4246a3:	8b 45 f0             	mov    -0x10(%ebp),%eax
4246a6:	89 75 fc             	mov    %esi,-0x4(%ebp)
4246a9:	85 c0                	test   %eax,%eax
4246ab:	75 05                	jne    0x4246b2
4246ad:	83 fb ff             	cmp    $0xffffffff,%ebx
4246b0:	76 2a                	jbe    0x4246dc
4246b2:	6a 00                	push   $0x0
4246b4:	ff 75 d0             	push   -0x30(%ebp)
4246b7:	83 c3 01             	add    $0x1,%ebx
4246ba:	83 d0 ff             	adc    $0xffffffff,%eax
4246bd:	50                   	push   %eax
4246be:	53                   	push   %ebx
4246bf:	e8 3c 5e ff ff       	call   0x41a500
4246c4:	03 f8                	add    %eax,%edi
4246c6:	13 f2                	adc    %edx,%esi
4246c8:	83 cb ff             	or     $0xffffffff,%ebx
4246cb:	33 c0                	xor    %eax,%eax
4246cd:	89 75 fc             	mov    %esi,-0x4(%ebp)
4246d0:	89 5d cc             	mov    %ebx,-0x34(%ebp)
4246d3:	89 5d bc             	mov    %ebx,-0x44(%ebp)
4246d6:	89 45 f0             	mov    %eax,-0x10(%ebp)
4246d9:	89 45 c0             	mov    %eax,-0x40(%ebp)
4246dc:	85 f6                	test   %esi,%esi
4246de:	77 50                	ja     0x424730
4246e0:	72 05                	jb     0x4246e7
4246e2:	83 ff ff             	cmp    $0xffffffff,%edi
4246e5:	77 49                	ja     0x424730
4246e7:	50                   	push   %eax
4246e8:	53                   	push   %ebx
4246e9:	33 c9                	xor    %ecx,%ecx
4246eb:	8b f7                	mov    %edi,%esi
4246ed:	0b 4d f8             	or     -0x8(%ebp),%ecx
4246f0:	6a 00                	push   $0x0
4246f2:	ff 75 e0             	push   -0x20(%ebp)
4246f5:	89 4d dc             	mov    %ecx,-0x24(%ebp)
4246f8:	e8 03 5e ff ff       	call   0x41a500
4246fd:	3b d6                	cmp    %esi,%edx
4246ff:	72 29                	jb     0x42472a
424701:	77 05                	ja     0x424708
424703:	3b 45 dc             	cmp    -0x24(%ebp),%eax
424706:	76 22                	jbe    0x42472a
424708:	8b 45 f0             	mov    -0x10(%ebp),%eax
42470b:	83 c3 ff             	add    $0xffffffff,%ebx
42470e:	89 5d bc             	mov    %ebx,-0x44(%ebp)
424711:	83 d0 ff             	adc    $0xffffffff,%eax
424714:	03 7d d0             	add    -0x30(%ebp),%edi
424717:	89 45 f0             	mov    %eax,-0x10(%ebp)
42471a:	83 55 fc 00          	adcl   $0x0,-0x4(%ebp)
42471e:	89 45 c0             	mov    %eax,-0x40(%ebp)
424721:	75 0a                	jne    0x42472d
424723:	83 ff ff             	cmp    $0xffffffff,%edi
424726:	76 bf                	jbe    0x4246e7
424728:	eb 03                	jmp    0x42472d
42472a:	8b 45 f0             	mov    -0x10(%ebp),%eax
42472d:	89 5d cc             	mov    %ebx,-0x34(%ebp)
424730:	85 c0                	test   %eax,%eax
424732:	75 08                	jne    0x42473c
424734:	85 db                	test   %ebx,%ebx
424736:	0f 84 af 00 00 00    	je     0x4247eb
42473c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
42473f:	33 ff                	xor    %edi,%edi
424741:	8b 45 0c             	mov    0xc(%ebp),%eax
424744:	33 f6                	xor    %esi,%esi
424746:	85 c9                	test   %ecx,%ecx
424748:	74 55                	je     0x42479f
42474a:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
42474d:	83 c0 04             	add    $0x4,%eax
424750:	89 45 f8             	mov    %eax,-0x8(%ebp)
424753:	89 4d fc             	mov    %ecx,-0x4(%ebp)
424756:	8b 00                	mov    (%eax),%eax
424758:	89 45 dc             	mov    %eax,-0x24(%ebp)
42475b:	8b 45 c0             	mov    -0x40(%ebp),%eax
42475e:	f7 65 dc             	mull   -0x24(%ebp)
424761:	8b c8                	mov    %eax,%ecx
424763:	8b 45 bc             	mov    -0x44(%ebp),%eax
424766:	f7 65 dc             	mull   -0x24(%ebp)
424769:	03 d1                	add    %ecx,%edx
42476b:	03 f8                	add    %eax,%edi
42476d:	8b 03                	mov    (%ebx),%eax
42476f:	8b cf                	mov    %edi,%ecx
424771:	13 f2                	adc    %edx,%esi
424773:	8b fe                	mov    %esi,%edi
424775:	33 f6                	xor    %esi,%esi
424777:	3b c1                	cmp    %ecx,%eax
424779:	73 05                	jae    0x424780
42477b:	83 c7 01             	add    $0x1,%edi
42477e:	13 f6                	adc    %esi,%esi
424780:	2b c1                	sub    %ecx,%eax
424782:	89 03                	mov    %eax,(%ebx)
424784:	83 c3 04             	add    $0x4,%ebx
424787:	8b 45 f8             	mov    -0x8(%ebp),%eax
42478a:	83 c0 04             	add    $0x4,%eax
42478d:	83 6d fc 01          	subl   $0x1,-0x4(%ebp)
424791:	89 45 f8             	mov    %eax,-0x8(%ebp)
424794:	75 c0                	jne    0x424756
424796:	8b 45 0c             	mov    0xc(%ebp),%eax
424799:	8b 5d cc             	mov    -0x34(%ebp),%ebx
42479c:	8b 4d ec             	mov    -0x14(%ebp),%ecx
42479f:	83 c0 04             	add    $0x4,%eax
4247a2:	89 45 dc             	mov    %eax,-0x24(%ebp)
4247a5:	33 c0                	xor    %eax,%eax
4247a7:	3b c6                	cmp    %esi,%eax
4247a9:	77 39                	ja     0x4247e4
4247ab:	72 05                	jb     0x4247b2
4247ad:	39 7d b8             	cmp    %edi,-0x48(%ebp)
4247b0:	73 32                	jae    0x4247e4
4247b2:	85 c9                	test   %ecx,%ecx
4247b4:	74 2b                	je     0x4247e1
4247b6:	8b 55 c4             	mov    -0x3c(%ebp),%edx
4247b9:	33 db                	xor    %ebx,%ebx
4247bb:	8b 75 dc             	mov    -0x24(%ebp),%esi
4247be:	8b f9                	mov    %ecx,%edi
4247c0:	8b 0a                	mov    (%edx),%ecx
4247c2:	8d 76 04             	lea    0x4(%esi),%esi
4247c5:	33 c0                	xor    %eax,%eax
4247c7:	8d 52 04             	lea    0x4(%edx),%edx
4247ca:	03 4e fc             	add    -0x4(%esi),%ecx
4247cd:	13 c0                	adc    %eax,%eax
4247cf:	03 cb                	add    %ebx,%ecx
4247d1:	89 4a fc             	mov    %ecx,-0x4(%edx)
4247d4:	83 d0 00             	adc    $0x0,%eax
4247d7:	8b d8                	mov    %eax,%ebx
4247d9:	83 ef 01             	sub    $0x1,%edi
4247dc:	75 e2                	jne    0x4247c0
4247de:	8b 5d cc             	mov    -0x34(%ebp),%ebx
4247e1:	83 c3 ff             	add    $0xffffffff,%ebx
4247e4:	8b 45 c8             	mov    -0x38(%ebp),%eax
4247e7:	48                   	dec    %eax
4247e8:	89 45 f4             	mov    %eax,-0xc(%ebp)
4247eb:	8b 75 b4             	mov    -0x4c(%ebp),%esi
4247ee:	33 c0                	xor    %eax,%eax
4247f0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4247f3:	03 c3                	add    %ebx,%eax
4247f5:	8b 5d b0             	mov    -0x50(%ebp),%ebx
4247f8:	8b f8                	mov    %eax,%edi
4247fa:	8b 45 c8             	mov    -0x38(%ebp),%eax
4247fd:	83 d6 00             	adc    $0x0,%esi
424800:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
424804:	4b                   	dec    %ebx
424805:	48                   	dec    %eax
424806:	89 7d b4             	mov    %edi,-0x4c(%ebp)
424809:	83 e9 04             	sub    $0x4,%ecx
42480c:	89 5d b0             	mov    %ebx,-0x50(%ebp)
42480f:	89 45 c8             	mov    %eax,-0x38(%ebp)
424812:	89 4d e8             	mov    %ecx,-0x18(%ebp)
424815:	85 db                	test   %ebx,%ebx
424817:	0f 89 f3 fd ff ff    	jns    0x424610
42481d:	eb 02                	jmp    0x424821
42481f:	33 ff                	xor    %edi,%edi
424821:	8b 4d f4             	mov    -0xc(%ebp),%ecx
424824:	8b 5d 08             	mov    0x8(%ebp),%ebx
424827:	41                   	inc    %ecx
424828:	8b c1                	mov    %ecx,%eax
42482a:	3b 03                	cmp    (%ebx),%eax
42482c:	73 14                	jae    0x424842
42482e:	8d 53 04             	lea    0x4(%ebx),%edx
424831:	8d 14 82             	lea    (%edx,%eax,4),%edx
424834:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
42483a:	8d 52 04             	lea    0x4(%edx),%edx