428082:	66 85 d2             	test   %dx,%dx
428085:	75 2f                	jne    0x4280b6
428087:	85 f6                	test   %esi,%esi
428089:	75 2b                	jne    0x4280b6
42808b:	85 ff                	test   %edi,%edi
42808d:	75 27                	jne    0x4280b6
42808f:	33 d2                	xor    %edx,%edx
428091:	66 3b c8             	cmp    %ax,%cx
428094:	0f 95 c0             	setne  %al
428097:	fe c8                	dec    %al
428099:	24 0d                	and    $0xd,%al
42809b:	04 20                	add    $0x20,%al
42809d:	66 89 13             	mov    %dx,(%ebx)
4280a0:	88 43 02             	mov    %al,0x2(%ebx)
4280a3:	c6 43 03 01          	movb   $0x1,0x3(%ebx)
4280a7:	c6 43 04 30          	movb   $0x30,0x4(%ebx)
4280ab:	88 53 05             	mov    %dl,0x5(%ebx)
4280ae:	33 c0                	xor    %eax,%eax
4280b0:	40                   	inc    %eax
4280b1:	e9 1e 08 00 00       	jmp    0x4288d4
4280b6:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
4280bb:	66 3b d0             	cmp    %ax,%dx
4280be:	0f 85 9f 00 00 00    	jne    0x428163
4280c4:	33 c0                	xor    %eax,%eax
4280c6:	40                   	inc    %eax
4280c7:	66 89 03             	mov    %ax,(%ebx)
4280ca:	b8 00 00 00 80       	mov    $0x80000000,%eax
4280cf:	3b f0                	cmp    %eax,%esi
4280d1:	75 04                	jne    0x4280d7
4280d3:	85 ff                	test   %edi,%edi
4280d5:	74 0f                	je     0x4280e6
4280d7:	f7 c6 00 00 00 40    	test   $0x40000000,%esi
4280dd:	75 07                	jne    0x4280e6
4280df:	68 cc cb 42 00       	push   $0x42cbcc
4280e4:	eb 51                	jmp    0x428137
4280e6:	66 85 c9             	test   %cx,%cx
4280e9:	74 13                	je     0x4280fe
4280eb:	81 fe 00 00 00 c0    	cmp    $0xc0000000,%esi
4280f1:	75 0b                	jne    0x4280fe
4280f3:	85 ff                	test   %edi,%edi
4280f5:	75 3b                	jne    0x428132
4280f7:	68 c4 cb 42 00       	push   $0x42cbc4
4280fc:	eb 0d                	jmp    0x42810b
4280fe:	3b f0                	cmp    %eax,%esi
428100:	75 30                	jne    0x428132
428102:	85 ff                	test   %edi,%edi
428104:	75 2c                	jne    0x428132
428106:	68 bc cb 42 00       	push   $0x42cbbc
42810b:	8d 43 04             	lea    0x4(%ebx),%eax
42810e:	6a 16                	push   $0x16
428110:	50                   	push   %eax
428111:	e8 47 a3 ff ff       	call   0x42245d
428116:	83 c4 0c             	add    $0xc,%esp
428119:	33 f6                	xor    %esi,%esi
42811b:	85 c0                	test   %eax,%eax
42811d:	74 0d                	je     0x42812c
42811f:	56                   	push   %esi
428120:	56                   	push   %esi
428121:	56                   	push   %esi
428122:	56                   	push   %esi
428123:	56                   	push   %esi
428124:	e8 a2 79 ff ff       	call   0x41facb
428129:	83 c4 14             	add    $0x14,%esp
42812c:	c6 43 03 05          	movb   $0x5,0x3(%ebx)
428130:	eb 2a                	jmp    0x42815c
428132:	68 b4 cb 42 00       	push   $0x42cbb4
428137:	8d 43 04             	lea    0x4(%ebx),%eax
42813a:	6a 16                	push   $0x16
42813c:	50                   	push   %eax
42813d:	e8 1b a3 ff ff       	call   0x42245d
428142:	83 c4 0c             	add    $0xc,%esp
428145:	33 f6                	xor    %esi,%esi
428147:	85 c0                	test   %eax,%eax
428149:	74 0d                	je     0x428158
42814b:	56                   	push   %esi
42814c:	56                   	push   %esi
42814d:	56                   	push   %esi
42814e:	56                   	push   %esi
42814f:	56                   	push   %esi
428150:	e8 76 79 ff ff       	call   0x41facb
428155:	83 c4 14             	add    $0x14,%esp
428158:	c6 43 03 06          	movb   $0x6,0x3(%ebx)
42815c:	33 c0                	xor    %eax,%eax
42815e:	e9 71 07 00 00       	jmp    0x4288d4
428163:	0f b7 ca             	movzwl %dx,%ecx
428166:	8b d9                	mov    %ecx,%ebx
428168:	69 c9 10 4d 00 00    	imul   $0x4d10,%ecx,%ecx
42816e:	c1 eb 08             	shr    $0x8,%ebx
428171:	8b c6                	mov    %esi,%eax
428173:	c1 e8 18             	shr    $0x18,%eax
428176:	8d 04 43             	lea    (%ebx,%eax,2),%eax
428179:	6b c0 4d             	imul   $0x4d,%eax,%eax
42817c:	8d 84 08 0c ed bc ec 	lea    -0x134312f4(%eax,%ecx,1),%eax
428183:	c1 f8 10             	sar    $0x10,%eax
428186:	0f b7 c0             	movzwl %ax,%eax
428189:	33 c9                	xor    %ecx,%ecx
42818b:	0f bf d8             	movswl %ax,%ebx
42818e:	66 89 4d e0          	mov    %cx,-0x20(%ebp)
428192:	b9 a0 02 43 00       	mov    $0x4302a0,%ecx
428197:	f7 db                	neg    %ebx
428199:	83 e9 60             	sub    $0x60,%ecx
42819c:	89 45 b4             	mov    %eax,-0x4c(%ebp)
42819f:	66 89 55 ea          	mov    %dx,-0x16(%ebp)
4281a3:	89 75 e6             	mov    %esi,-0x1a(%ebp)
4281a6:	89 7d e2             	mov    %edi,-0x1e(%ebp)
4281a9:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4281ac:	85 db                	test   %ebx,%ebx
4281ae:	0f 84 9c 02 00 00    	je     0x428450
4281b4:	7d 0d                	jge    0x4281c3
4281b6:	b8 00 04 43 00       	mov    $0x430400,%eax
4281bb:	f7 db                	neg    %ebx
4281bd:	83 e8 60             	sub    $0x60,%eax
4281c0:	89 45 9c             	mov    %eax,-0x64(%ebp)
4281c3:	85 db                	test   %ebx,%ebx
4281c5:	0f 84 85 02 00 00    	je     0x428450
4281cb:	83 45 9c 54          	addl   $0x54,-0x64(%ebp)
4281cf:	8b cb                	mov    %ebx,%ecx
4281d1:	83 e1 07             	and    $0x7,%ecx
4281d4:	c1 fb 03             	sar    $0x3,%ebx
4281d7:	85 c9                	test   %ecx,%ecx
4281d9:	0f 84 67 02 00 00    	je     0x428446
4281df:	6b c9 0c             	imul   $0xc,%ecx,%ecx
4281e2:	03 4d 9c             	add    -0x64(%ebp),%ecx
4281e5:	8b c1                	mov    %ecx,%eax
4281e7:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4281ea:	b9 00 80 00 00       	mov    $0x8000,%ecx
4281ef:	66 39 08             	cmp    %cx,(%eax)
4281f2:	72 11                	jb     0x428205
4281f4:	8b f0                	mov    %eax,%esi
4281f6:	8d 7d c4             	lea    -0x3c(%ebp),%edi
4281f9:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4281fa:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4281fb:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4281fe:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4281ff:	ff 4d c6             	decl   -0x3a(%ebp)
428202:	89 45 bc             	mov    %eax,-0x44(%ebp)
428205:	0f b7 50 0a          	movzwl 0xa(%eax),%edx
428209:	33 c9                	xor    %ecx,%ecx
42820b:	89 4d ac             	mov    %ecx,-0x54(%ebp)
42820e:	89 4d f0             	mov    %ecx,-0x10(%ebp)
428211:	89 4d f4             	mov    %ecx,-0xc(%ebp)
428214:	89 4d f8             	mov    %ecx,-0x8(%ebp)
428217:	8b 4d ea             	mov    -0x16(%ebp),%ecx
42821a:	8b f2                	mov    %edx,%esi
42821c:	33 f1                	xor    %ecx,%esi
42821e:	81 e6 00 80 00 00    	and    $0x8000,%esi
428224:	89 75 b8             	mov    %esi,-0x48(%ebp)
428227:	be ff 7f 00 00       	mov    $0x7fff,%esi
42822c:	23 ce                	and    %esi,%ecx
42822e:	23 d6                	and    %esi,%edx
428230:	8d 34 0a             	lea    (%edx,%ecx,1),%esi
428233:	0f b7 fe             	movzwl %si,%edi
428236:	be ff 7f 00 00       	mov    $0x7fff,%esi
42823b:	66 3b ce             	cmp    %si,%cx
42823e:	0f 83 ac 02 00 00    	jae    0x4284f0
428244:	66 3b d6             	cmp    %si,%dx
428247:	0f 83 a3 02 00 00    	jae    0x4284f0
42824d:	be fd bf 00 00       	mov    $0xbffd,%esi
428252:	66 3b fe             	cmp    %si,%di
428255:	0f 87 95 02 00 00    	ja     0x4284f0
42825b:	be bf 3f 00 00       	mov    $0x3fbf,%esi
428260:	66 3b fe             	cmp    %si,%di
428263:	77 10                	ja     0x428275
428265:	33 f6                	xor    %esi,%esi
428267:	89 75 e8             	mov    %esi,-0x18(%ebp)
42826a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42826d:	89 75 e0             	mov    %esi,-0x20(%ebp)
428270:	e9 d3 01 00 00       	jmp    0x428448
428275:	33 f6                	xor    %esi,%esi
428277:	66 3b ce             	cmp    %si,%cx
42827a:	75 1f                	jne    0x42829b
42827c:	47                   	inc    %edi
42827d:	f7 45 e8 ff ff ff 7f 	testl  $0x7fffffff,-0x18(%ebp)
428284:	75 15                	jne    0x42829b
428286:	39 75 e4             	cmp    %esi,-0x1c(%ebp)
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