428289:	75 10                	jne    0x42829b
42828b:	39 75 e0             	cmp    %esi,-0x20(%ebp)
42828e:	75 0b                	jne    0x42829b
428290:	33 c0                	xor    %eax,%eax
428292:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
428296:	e9 ad 01 00 00       	jmp    0x428448
42829b:	66 3b d6             	cmp    %si,%dx
42829e:	75 13                	jne    0x4282b3
4282a0:	47                   	inc    %edi
4282a1:	f7 40 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%eax)
4282a8:	75 09                	jne    0x4282b3
4282aa:	39 70 04             	cmp    %esi,0x4(%eax)
4282ad:	75 04                	jne    0x4282b3
4282af:	39 30                	cmp    %esi,(%eax)
4282b1:	74 b4                	je     0x428267
4282b3:	21 75 a8             	and    %esi,-0x58(%ebp)
4282b6:	8d 75 f4             	lea    -0xc(%ebp),%esi
4282b9:	c7 45 c0 05 00 00 00 	movl   $0x5,-0x40(%ebp)
4282c0:	8b 4d a8             	mov    -0x58(%ebp),%ecx
4282c3:	8b 55 c0             	mov    -0x40(%ebp),%edx
4282c6:	03 c9                	add    %ecx,%ecx
4282c8:	89 55 b0             	mov    %edx,-0x50(%ebp)
4282cb:	85 d2                	test   %edx,%edx
4282cd:	7e 55                	jle    0x428324
4282cf:	8d 4c 0d e0          	lea    -0x20(%ebp,%ecx,1),%ecx
4282d3:	83 c0 08             	add    $0x8,%eax
4282d6:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
4282d9:	89 45 98             	mov    %eax,-0x68(%ebp)
4282dc:	8b 45 94             	mov    -0x6c(%ebp),%eax
4282df:	0f b7 08             	movzwl (%eax),%ecx
4282e2:	8b 45 98             	mov    -0x68(%ebp),%eax
4282e5:	0f b7 00             	movzwl (%eax),%eax
4282e8:	8b 56 fc             	mov    -0x4(%esi),%edx
4282eb:	0f af c8             	imul   %eax,%ecx
4282ee:	83 65 a4 00          	andl   $0x0,-0x5c(%ebp)
4282f2:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
4282f5:	3b c2                	cmp    %edx,%eax
4282f7:	72 04                	jb     0x4282fd
4282f9:	3b c1                	cmp    %ecx,%eax
4282fb:	73 07                	jae    0x428304
4282fd:	c7 45 a4 01 00 00 00 	movl   $0x1,-0x5c(%ebp)
428304:	83 7d a4 00          	cmpl   $0x0,-0x5c(%ebp)
428308:	89 46 fc             	mov    %eax,-0x4(%esi)
42830b:	74 03                	je     0x428310
42830d:	66 ff 06             	incw   (%esi)
428310:	83 45 94 02          	addl   $0x2,-0x6c(%ebp)
428314:	83 6d 98 02          	subl   $0x2,-0x68(%ebp)
428318:	ff 4d b0             	decl   -0x50(%ebp)
42831b:	83 7d b0 00          	cmpl   $0x0,-0x50(%ebp)
42831f:	7f bb                	jg     0x4282dc
428321:	8b 45 bc             	mov    -0x44(%ebp),%eax
428324:	46                   	inc    %esi
428325:	46                   	inc    %esi
428326:	ff 45 a8             	incl   -0x58(%ebp)
428329:	ff 4d c0             	decl   -0x40(%ebp)
42832c:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
428330:	7f 8e                	jg     0x4282c0
428332:	81 c7 02 c0 00 00    	add    $0xc002,%edi
428338:	66 85 ff             	test   %di,%di
42833b:	7e 3b                	jle    0x428378
42833d:	f7 45 f8 00 00 00 80 	testl  $0x80000000,-0x8(%ebp)
428344:	75 2d                	jne    0x428373
428346:	8b 45 f4             	mov    -0xc(%ebp),%eax
428349:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42834c:	d1 65 f0             	shll   $1,-0x10(%ebp)
42834f:	8b d0                	mov    %eax,%edx
428351:	03 c0                	add    %eax,%eax
428353:	c1 e9 1f             	shr    $0x1f,%ecx
428356:	0b c1                	or     %ecx,%eax
428358:	89 45 f4             	mov    %eax,-0xc(%ebp)
42835b:	8b 45 f8             	mov    -0x8(%ebp),%eax
42835e:	c1 ea 1f             	shr    $0x1f,%edx
428361:	03 c0                	add    %eax,%eax
428363:	0b c2                	or     %edx,%eax
428365:	81 c7 ff ff 00 00    	add    $0xffff,%edi
42836b:	89 45 f8             	mov    %eax,-0x8(%ebp)
42836e:	66 85 ff             	test   %di,%di
428371:	7f ca                	jg     0x42833d
428373:	66 85 ff             	test   %di,%di
428376:	7f 4d                	jg     0x4283c5
428378:	81 c7 ff ff 00 00    	add    $0xffff,%edi
42837e:	66 85 ff             	test   %di,%di
428381:	7d 42                	jge    0x4283c5
428383:	8b c7                	mov    %edi,%eax
428385:	f7 d8                	neg    %eax
428387:	0f b7 c0             	movzwl %ax,%eax
42838a:	03 f8                	add    %eax,%edi
42838c:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)
428390:	74 03                	je     0x428395
428392:	ff 45 ac             	incl   -0x54(%ebp)
428395:	8b 4d f8             	mov    -0x8(%ebp),%ecx
428398:	8b 75 f4             	mov    -0xc(%ebp),%esi
42839b:	8b 55 f4             	mov    -0xc(%ebp),%edx
42839e:	d1 6d f8             	shrl   $1,-0x8(%ebp)
4283a1:	c1 e1 1f             	shl    $0x1f,%ecx
4283a4:	d1 ee                	shr    $1,%esi
4283a6:	0b f1                	or     %ecx,%esi
4283a8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4283ab:	c1 e2 1f             	shl    $0x1f,%edx
4283ae:	d1 e9                	shr    $1,%ecx
4283b0:	0b ca                	or     %edx,%ecx
4283b2:	48                   	dec    %eax
4283b3:	89 75 f4             	mov    %esi,-0xc(%ebp)
4283b6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
4283b9:	75 d1                	jne    0x42838c
4283bb:	39 45 ac             	cmp    %eax,-0x54(%ebp)
4283be:	74 05                	je     0x4283c5
4283c0:	66 83 4d f0 01       	orw    $0x1,-0x10(%ebp)
4283c5:	b8 00 80 00 00       	mov    $0x8000,%eax
4283ca:	8b c8                	mov    %eax,%ecx
4283cc:	66 39 4d f0          	cmp    %cx,-0x10(%ebp)
4283d0:	77 11                	ja     0x4283e3
4283d2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4283d5:	81 e1 ff ff 01 00    	and    $0x1ffff,%ecx
4283db:	81 f9 00 80 01 00    	cmp    $0x18000,%ecx
4283e1:	75 34                	jne    0x428417
4283e3:	83 7d f2 ff          	cmpl   $0xffffffff,-0xe(%ebp)
4283e7:	75 2b                	jne    0x428414
4283e9:	83 65 f2 00          	andl   $0x0,-0xe(%ebp)
4283ed:	83 7d f6 ff          	cmpl   $0xffffffff,-0xa(%ebp)
4283f1:	75 1c                	jne    0x42840f
4283f3:	83 65 f6 00          	andl   $0x0,-0xa(%ebp)
4283f7:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4283fc:	66 39 4d fa          	cmp    %cx,-0x6(%ebp)
428400:	75 07                	jne    0x428409
428402:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
428406:	47                   	inc    %edi
428407:	eb 0e                	jmp    0x428417
428409:	66 ff 45 fa          	incw   -0x6(%ebp)
42840d:	eb 08                	jmp    0x428417
42840f:	ff 45 f6             	incl   -0xa(%ebp)
428412:	eb 03                	jmp    0x428417
428414:	ff 45 f2             	incl   -0xe(%ebp)
428417:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
42841c:	66 3b f8             	cmp    %ax,%di
42841f:	0f 82 ab 00 00 00    	jb     0x4284d0
428425:	33 c0                	xor    %eax,%eax
428427:	33 c9                	xor    %ecx,%ecx
428429:	66 39 45 b8          	cmp    %ax,-0x48(%ebp)
42842d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
428430:	0f 94 c1             	sete   %cl
428433:	89 45 e0             	mov    %eax,-0x20(%ebp)
428436:	49                   	dec    %ecx
428437:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
42843d:	81 c1 00 80 ff 7f    	add    $0x7fff8000,%ecx
428443:	89 4d e8             	mov    %ecx,-0x18(%ebp)
428446:	33 f6                	xor    %esi,%esi
428448:	3b de                	cmp    %esi,%ebx
42844a:	0f 85 7b fd ff ff    	jne    0x4281cb
428450:	8b 4d e8             	mov    -0x18(%ebp),%ecx
428453:	c1 e9 10             	shr    $0x10,%ecx
428456:	ba ff 3f 00 00       	mov    $0x3fff,%edx
42845b:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
428460:	66 3b ca             	cmp    %dx,%cx
428463:	0f 82 a3 02 00 00    	jb     0x42870c
428469:	ff 45 b4             	incl   -0x4c(%ebp)
42846c:	33 d2                	xor    %edx,%edx
42846e:	89 55 b0             	mov    %edx,-0x50(%ebp)
428471:	89 55 f0             	mov    %edx,-0x10(%ebp)
428474:	89 55 f4             	mov    %edx,-0xc(%ebp)
428477:	89 55 f8             	mov    %edx,-0x8(%ebp)
42847a:	8b 55 da             	mov    -0x26(%ebp),%edx
42847d:	0f b7 c9             	movzwl %cx,%ecx
428480:	8b da                	mov    %edx,%ebx
428482:	33 d9                	xor    %ecx,%ebx
428484:	23 c8                	and    %eax,%ecx
428486:	23 d0                	and    %eax,%edx
428488:	81 e3 00 80 00 00    	and    $0x8000,%ebx
42848e:	8b f8                	mov    %eax,%edi
428490:	8d 34 0a             	lea    (%edx,%ecx,1),%esi
428493:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
428496:	0f b7 f6             	movzwl %si,%esi
428499:	66 3b cf             	cmp    %di,%cx
42849c:	0f 83 4c 02 00 00    	jae    0x4286ee
4284a2:	66 3b d0             	cmp    %ax,%dx
4284a5:	0f 83 43 02 00 00    	jae    0x4286ee
4284ab:	b8 fd bf 00 00       	mov    $0xbffd,%eax
4284b0:	66 3b f0             	cmp    %ax,%si
4284b3:	0f 87 35 02 00 00    	ja     0x4286ee
4284b9:	b8 bf 3f 00 00       	mov    $0x3fbf,%eax
4284be:	66 3b f0             	cmp    %ax,%si
4284c1:	77 4b                	ja     0x42850e
4284c3:	33 c0                	xor    %eax,%eax
4284c5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4284c8:	89 45 e0             	mov    %eax,-0x20(%ebp)
4284cb:	e9 39 02 00 00       	jmp    0x428709
4284d0:	66 8b 45 f2          	mov    -0xe(%ebp),%ax
4284d4:	0b 7d b8             	or     -0x48(%ebp),%edi
4284d7:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
4284db:	8b 45 f4             	mov    -0xc(%ebp),%eax
4284de:	89 45 e2             	mov    %eax,-0x1e(%ebp)
4284e1:	8b 45 f8             	mov    -0x8(%ebp),%eax
4284e4:	89 45 e6             	mov    %eax,-0x1a(%ebp)
4284e7:	66 89 7d ea          	mov    %di,-0x16(%ebp)
4284eb:	e9 56 ff ff ff       	jmp    0x428446
4284f0:	33 c0                	xor    %eax,%eax
4284f2:	33 f6                	xor    %esi,%esi
4284f4:	66 39 75 b8          	cmp    %si,-0x48(%ebp)
4284f8:	0f 94 c0             	sete   %al
4284fb:	48                   	dec    %eax
4284fc:	25 00 00 00 80       	and    $0x80000000,%eax
428501:	05 00 80 ff 7f       	add    $0x7fff8000,%eax
428506:	89 45 e8             	mov    %eax,-0x18(%ebp)
428509:	e9 5c fd ff ff       	jmp    0x42826a
42850e:	33 c0                	xor    %eax,%eax
428510:	66 3b c8             	cmp    %ax,%cx
428513:	75 1d                	jne    0x428532
428515:	46                   	inc    %esi
428516:	f7 45 e8 ff ff ff 7f 	testl  $0x7fffffff,-0x18(%ebp)
42851d:	75 13                	jne    0x428532
42851f:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
428522:	75 0e                	jne    0x428532
428524:	39 45 e0             	cmp    %eax,-0x20(%ebp)
428527:	75 09                	jne    0x428532
428529:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
42852d:	e9 da 01 00 00       	jmp    0x42870c
428532:	66 3b d0             	cmp    %ax,%dx
428535:	75 18                	jne    0x42854f
428537:	46                   	inc    %esi
428538:	f7 45 d8 ff ff ff 7f 	testl  $0x7fffffff,-0x28(%ebp)
42853f:	75 0e                	jne    0x42854f
428541:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
428544:	75 09                	jne    0x42854f
428546:	39 45 d0             	cmp    %eax,-0x30(%ebp)
428549:	0f 84 76 ff ff ff    	je     0x4284c5
42854f:	89 45 a8             	mov    %eax,-0x58(%ebp)
428552:	8d 7d f4             	lea    -0xc(%ebp),%edi
428555:	c7 45 c0 05 00 00 00 	movl   $0x5,-0x40(%ebp)
42855c:	8b 45 a8             	mov    -0x58(%ebp),%eax
42855f:	8b 4d c0             	mov    -0x40(%ebp),%ecx
428562:	03 c0                	add    %eax,%eax
428564:	89 4d ac             	mov    %ecx,-0x54(%ebp)
428567:	85 c9                	test   %ecx,%ecx
428569:	7e 4a                	jle    0x4285b5
42856b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
42856e:	89 4d b8             	mov    %ecx,-0x48(%ebp)
428571:	8d 44 05 e0          	lea    -0x20(%ebp,%eax,1),%eax
428575:	8b 4d b8             	mov    -0x48(%ebp),%ecx
428578:	0f b7 10             	movzwl (%eax),%edx
42857b:	0f b7 09             	movzwl (%ecx),%ecx
42857e:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)
428582:	0f af ca             	imul   %edx,%ecx
428585:	8b 57 fc             	mov    -0x4(%edi),%edx
428588:	8d 1c 0a             	lea    (%edx,%ecx,1),%ebx
42858b:	3b da                	cmp    %edx,%ebx
42858d:	72 04                	jb     0x428593
42858f:	3b d9                	cmp    %ecx,%ebx
428591:	73 07                	jae    0x42859a
428593:	c7 45 bc 01 00 00 00 	movl   $0x1,-0x44(%ebp)
42859a:	83 7d bc 00          	cmpl   $0x0,-0x44(%ebp)
42859e:	89 5f fc             	mov    %ebx,-0x4(%edi)
4285a1:	74 03                	je     0x4285a6
4285a3:	66 ff 07             	incw   (%edi)
4285a6:	83 6d b8 02          	subl   $0x2,-0x48(%ebp)
4285aa:	40                   	inc    %eax
4285ab:	40                   	inc    %eax
4285ac:	ff 4d ac             	decl   -0x54(%ebp)
4285af:	83 7d ac 00          	cmpl   $0x0,-0x54(%ebp)
4285b3:	7f c0                	jg     0x428575
4285b5:	47                   	inc    %edi
4285b6:	47                   	inc    %edi
4285b7:	ff 45 a8             	incl   -0x58(%ebp)
4285ba:	ff 4d c0             	decl   -0x40(%ebp)
4285bd:	83 7d c0 00          	cmpl   $0x0,-0x40(%ebp)
4285c1:	7f 99                	jg     0x42855c
4285c3:	81 c6 02 c0 00 00    	add    $0xc002,%esi
4285c9:	66 85 f6             	test   %si,%si
4285cc:	7e 37                	jle    0x428605
4285ce:	8b 7d f8             	mov    -0x8(%ebp),%edi
4285d1:	85 ff                	test   %edi,%edi
4285d3:	78 2b                	js     0x428600
4285d5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4285d8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4285db:	d1 65 f0             	shll   $1,-0x10(%ebp)
4285de:	8b d0                	mov    %eax,%edx
4285e0:	03 c0                	add    %eax,%eax
4285e2:	c1 e9 1f             	shr    $0x1f,%ecx
4285e5:	0b c1                	or     %ecx,%eax
4285e7:	89 45 f4             	mov    %eax,-0xc(%ebp)
4285ea:	c1 ea 1f             	shr    $0x1f,%edx
4285ed:	8d 04 3f             	lea    (%edi,%edi,1),%eax
4285f0:	0b c2                	or     %edx,%eax
4285f2:	81 c6 ff ff 00 00    	add    $0xffff,%esi
4285f8:	89 45 f8             	mov    %eax,-0x8(%ebp)
4285fb:	66 85 f6             	test   %si,%si
4285fe:	7f ce                	jg     0x4285ce
428600:	66 85 f6             	test   %si,%si
428603:	7f 4d                	jg     0x428652
428605:	81 c6 ff ff 00 00    	add    $0xffff,%esi
42860b:	66 85 f6             	test   %si,%si
42860e:	7d 42                	jge    0x428652
428610:	8b c6                	mov    %esi,%eax
428612:	f7 d8                	neg    %eax
428614:	0f b7 c0             	movzwl %ax,%eax
428617:	03 f0                	add    %eax,%esi
428619:	f6 45 f0 01          	testb  $0x1,-0x10(%ebp)
42861d:	74 03                	je     0x428622
42861f:	ff 45 b0             	incl   -0x50(%ebp)
428622:	8b 4d f8             	mov    -0x8(%ebp),%ecx
428625:	8b 7d f4             	mov    -0xc(%ebp),%edi
428628:	8b 55 f4             	mov    -0xc(%ebp),%edx
42862b:	d1 6d f8             	shrl   $1,-0x8(%ebp)
42862e:	c1 e1 1f             	shl    $0x1f,%ecx
428631:	d1 ef                	shr    $1,%edi
428633:	0b f9                	or     %ecx,%edi
428635:	8b 4d f0             	mov    -0x10(%ebp),%ecx
428638:	c1 e2 1f             	shl    $0x1f,%edx
42863b:	d1 e9                	shr    $1,%ecx
42863d:	0b ca                	or     %edx,%ecx
42863f:	48                   	dec    %eax
428640:	89 7d f4             	mov    %edi,-0xc(%ebp)
428643:	89 4d f0             	mov    %ecx,-0x10(%ebp)
428646:	75 d1                	jne    0x428619
428648:	39 45 b0             	cmp    %eax,-0x50(%ebp)
42864b:	74 05                	je     0x428652
42864d:	66 83 4d f0 01       	orw    $0x1,-0x10(%ebp)
428652:	b8 00 80 00 00       	mov    $0x8000,%eax
428657:	8b c8                	mov    %eax,%ecx
428659:	66 39 4d f0          	cmp    %cx,-0x10(%ebp)
42865d:	77 11                	ja     0x428670
42865f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
428662:	81 e1 ff ff 01 00    	and    $0x1ffff,%ecx
428668:	81 f9 00 80 01 00    	cmp    $0x18000,%ecx
42866e:	75 34                	jne    0x4286a4
428670:	83 7d f2 ff          	cmpl   $0xffffffff,-0xe(%ebp)
428674:	75 2b                	jne    0x4286a1
428676:	83 65 f2 00          	andl   $0x0,-0xe(%ebp)
42867a:	83 7d f6 ff          	cmpl   $0xffffffff,-0xa(%ebp)
42867e:	75 1c                	jne    0x42869c
428680:	83 65 f6 00          	andl   $0x0,-0xa(%ebp)
428684:	b9 ff ff 00 00       	mov    $0xffff,%ecx
428689:	66 39 4d fa          	cmp    %cx,-0x6(%ebp)
42868d:	75 07                	jne    0x428696
42868f:	66 89 45 fa          	mov    %ax,-0x6(%ebp)
428693:	46                   	inc    %esi
428694:	eb 0e                	jmp    0x4286a4
428696:	66 ff 45 fa          	incw   -0x6(%ebp)
42869a:	eb 08                	jmp    0x4286a4
42869c:	ff 45 f6             	incl   -0xa(%ebp)
42869f:	eb 03                	jmp    0x4286a4
4286a1:	ff 45 f2             	incl   -0xe(%ebp)
4286a4:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
4286a9:	66 3b f0             	cmp    %ax,%si
4286ac:	72 23                	jb     0x4286d1
4286ae:	33 c0                	xor    %eax,%eax
4286b0:	33 c9                	xor    %ecx,%ecx
4286b2:	66 39 45 a4          	cmp    %ax,-0x5c(%ebp)
4286b6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4286b9:	0f 94 c1             	sete   %cl
4286bc:	89 45 e0             	mov    %eax,-0x20(%ebp)