42c286:	0f 8e 95 00 00 00    	jle    0x42c321
42c28c:	83 f8 45             	cmp    $0x45,%eax
42c28f:	0f 8e c0 fe ff ff    	jle    0x42c155
42c295:	83 c0 9c             	add    $0xffffff9c,%eax
42c298:	e9 ad fe ff ff       	jmp    0x42c14a
42c29d:	33 c0                	xor    %eax,%eax
42c29f:	40                   	inc    %eax
42c2a0:	89 45 a8             	mov    %eax,-0x58(%ebp)
42c2a3:	8d 41 d0             	lea    -0x30(%ecx),%eax
42c2a6:	6a 09                	push   $0x9
42c2a8:	59                   	pop    %ecx
42c2a9:	66 3b c1             	cmp    %cx,%ax
42c2ac:	0f 87 02 01 00 00    	ja     0x42c3b4
42c2b2:	6a 04                	push   $0x4
42c2b4:	e9 f7 fd ff ff       	jmp    0x42c0b0
42c2b9:	8d 42 fc             	lea    -0x4(%edx),%eax
42c2bc:	89 45 b4             	mov    %eax,-0x4c(%ebp)
42c2bf:	8d 41 cf             	lea    -0x31(%ecx),%eax
42c2c2:	66 3b 45 8c          	cmp    -0x74(%ebp),%ax
42c2c6:	77 07                	ja     0x42c2cf
42c2c8:	6a 09                	push   $0x9
42c2ca:	e9 e1 fd ff ff       	jmp    0x42c0b0
42c2cf:	0f b7 c1             	movzwl %cx,%eax
42c2d2:	83 e8 2b             	sub    $0x2b,%eax
42c2d5:	74 22                	je     0x42c2f9
42c2d7:	48                   	dec    %eax
42c2d8:	48                   	dec    %eax
42c2d9:	74 10                	je     0x42c2eb
42c2db:	83 e8 03             	sub    $0x3,%eax
42c2de:	0f 85 d0 00 00 00    	jne    0x42c3b4
42c2e4:	6a 08                	push   $0x8
42c2e6:	e9 e4 fd ff ff       	jmp    0x42c0cf
42c2eb:	6a 07                	push   $0x7
42c2ed:	83 c9 ff             	or     $0xffffffff,%ecx
42c2f0:	58                   	pop    %eax
42c2f1:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
42c2f4:	e9 93 fd ff ff       	jmp    0x42c08c
42c2f9:	6a 07                	push   $0x7
42c2fb:	e9 cf fd ff ff       	jmp    0x42c0cf
42c300:	33 c0                	xor    %eax,%eax
42c302:	40                   	inc    %eax
42c303:	6a 30                	push   $0x30
42c305:	89 45 90             	mov    %eax,-0x70(%ebp)
42c308:	58                   	pop    %eax
42c309:	eb 06                	jmp    0x42c311
42c30b:	0f b7 0a             	movzwl (%edx),%ecx
42c30e:	83 c2 02             	add    $0x2,%edx
42c311:	66 3b c8             	cmp    %ax,%cx
42c314:	74 f5                	je     0x42c30b
42c316:	8d 41 cf             	lea    -0x31(%ecx),%eax
42c319:	6a 08                	push   $0x8
42c31b:	59                   	pop    %ecx
42c31c:	66 3b c1             	cmp    %cx,%ax
42c31f:	76 a7                	jbe    0x42c2c8
42c321:	83 ea 02             	sub    $0x2,%edx
42c324:	8b f3                	mov    %ebx,%esi
42c326:	8b 45 88             	mov    -0x78(%ebp),%eax
42c329:	89 10                	mov    %edx,(%eax)
42c32b:	8b 45 94             	mov    -0x6c(%ebp),%eax
42c32e:	85 c0                	test   %eax,%eax
42c330:	0f 84 9f 04 00 00    	je     0x42c7d5
42c336:	8b 45 ac             	mov    -0x54(%ebp),%eax
42c339:	83 f8 18             	cmp    $0x18,%eax
42c33c:	0f 86 d9 00 00 00    	jbe    0x42c41b
42c342:	8a 45 f7             	mov    -0x9(%ebp),%al
42c345:	3c 05                	cmp    $0x5,%al
42c347:	7c 05                	jl     0x42c34e
42c349:	fe c0                	inc    %al
42c34b:	88 45 f7             	mov    %al,-0x9(%ebp)
42c34e:	8b 4d b0             	mov    -0x50(%ebp),%ecx
42c351:	4f                   	dec    %edi
42c352:	6a 18                	push   $0x18
42c354:	41                   	inc    %ecx
42c355:	58                   	pop    %eax
42c356:	89 4d b0             	mov    %ecx,-0x50(%ebp)
42c359:	e9 c0 00 00 00       	jmp    0x42c41e
42c35e:	8d 41 cf             	lea    -0x31(%ecx),%eax
42c361:	66 3b 45 8c          	cmp    -0x74(%ebp),%ax
42c365:	0f 86 5d ff ff ff    	jbe    0x42c2c8
42c36b:	6a 30                	push   $0x30
42c36d:	58                   	pop    %eax
42c36e:	66 3b c8             	cmp    %ax,%cx
42c371:	e9 68 ff ff ff       	jmp    0x42c2de
42c376:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
42c37a:	74 22                	je     0x42c39e
42c37c:	8d 42 fe             	lea    -0x2(%edx),%eax
42c37f:	89 45 b4             	mov    %eax,-0x4c(%ebp)
42c382:	0f b7 c1             	movzwl %cx,%eax
42c385:	83 e8 2b             	sub    $0x2b,%eax
42c388:	0f 84 6b ff ff ff    	je     0x42c2f9
42c38e:	48                   	dec    %eax
42c38f:	48                   	dec    %eax
42c390:	75 22                	jne    0x42c3b4
42c392:	83 4d 9c ff          	orl    $0xffffffff,-0x64(%ebp)
42c396:	6a 07                	push   $0x7
42c398:	58                   	pop    %eax
42c399:	e9 ee fc ff ff       	jmp    0x42c08c
42c39e:	6a 0a                	push   $0xa
42c3a0:	58                   	pop    %eax
42c3a1:	83 ea 02             	sub    $0x2,%edx
42c3a4:	6a 0a                	push   $0xa
42c3a6:	59                   	pop    %ecx
42c3a7:	3b c1                	cmp    %ecx,%eax
42c3a9:	0f 85 dd fc ff ff    	jne    0x42c08c
42c3af:	e9 70 ff ff ff       	jmp    0x42c324
42c3b4:	8b 55 b4             	mov    -0x4c(%ebp),%edx
42c3b7:	e9 68 ff ff ff       	jmp    0x42c324
42c3bc:	33 c0                	xor    %eax,%eax
42c3be:	8b f3                	mov    %ebx,%esi
42c3c0:	40                   	inc    %eax
42c3c1:	89 45 90             	mov    %eax,-0x70(%ebp)
42c3c4:	eb 25                	jmp    0x42c3eb
42c3c6:	66 3b 4d a0          	cmp    -0x60(%ebp),%cx
42c3ca:	77 42                	ja     0x42c40e
42c3cc:	6b ce 0a             	imul   $0xa,%esi,%ecx
42c3cf:	8b 75 98             	mov    -0x68(%ebp),%esi
42c3d2:	0f b7 f6             	movzwl %si,%esi
42c3d5:	83 c6 d0             	add    $0xffffffd0,%esi
42c3d8:	03 f1                	add    %ecx,%esi
42c3da:	81 fe 50 14 00 00    	cmp    $0x1450,%esi
42c3e0:	7f 13                	jg     0x42c3f5
42c3e2:	0f b7 0a             	movzwl (%edx),%ecx
42c3e5:	83 c2 02             	add    $0x2,%edx
42c3e8:	89 4d 98             	mov    %ecx,-0x68(%ebp)
42c3eb:	6a 30                	push   $0x30
42c3ed:	58                   	pop    %eax
42c3ee:	66 3b c8             	cmp    %ax,%cx
42c3f1:	73 d3                	jae    0x42c3c6
42c3f3:	eb 19                	jmp    0x42c40e
42c3f5:	8b 4d 98             	mov    -0x68(%ebp),%ecx
42c3f8:	be 51 14 00 00       	mov    $0x1451,%esi
42c3fd:	6a 30                	push   $0x30
42c3ff:	58                   	pop    %eax
42c400:	eb 0c                	jmp    0x42c40e
42c402:	66 3b 4d a0          	cmp    -0x60(%ebp),%cx
42c406:	77 0b                	ja     0x42c413
42c408:	0f b7 0a             	movzwl (%edx),%ecx
42c40b:	83 c2 02             	add    $0x2,%edx
42c40e:	66 3b c8             	cmp    %ax,%cx
42c411:	73 ef                	jae    0x42c402
42c413:	83 ea 02             	sub    $0x2,%edx
42c416:	e9 0b ff ff ff       	jmp    0x42c326
42c41b:	8b 4d b0             	mov    -0x50(%ebp),%ecx
42c41e:	85 c0                	test   %eax,%eax
42c420:	0f 84 a5 03 00 00    	je     0x42c7cb
42c426:	4f                   	dec    %edi
42c427:	80 3f 00             	cmpb   $0x0,(%edi)
42c42a:	75 0b                	jne    0x42c437
42c42c:	48                   	dec    %eax
42c42d:	41                   	inc    %ecx
42c42e:	4f                   	dec    %edi
42c42f:	80 3f 00             	cmpb   $0x0,(%edi)
42c432:	74 f8                	je     0x42c42c
42c434:	89 4d b0             	mov    %ecx,-0x50(%ebp)
42c437:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
42c43a:	51                   	push   %ecx
42c43b:	50                   	push   %eax
42c43c:	8d 45 e0             	lea    -0x20(%ebp),%eax
42c43f:	50                   	push   %eax
42c440:	e8 c1 ab 00 00       	call   0x437006
42c445:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
42c448:	83 c4 0c             	add    $0xc,%esp
42c44b:	85 c9                	test   %ecx,%ecx
42c44d:	79 02                	jns    0x42c451
42c44f:	f7 de                	neg    %esi
42c451:	03 75 b0             	add    -0x50(%ebp),%esi
42c454:	8b 45 90             	mov    -0x70(%ebp),%eax
42c457:	85 c0                	test   %eax,%eax
42c459:	75 03                	jne    0x42c45e
42c45b:	03 75 18             	add    0x18(%ebp),%esi
42c45e:	8b 45 a8             	mov    -0x58(%ebp),%eax
42c461:	85 c0                	test   %eax,%eax
42c463:	75 03                	jne    0x42c468
42c465:	2b 75 1c             	sub    0x1c(%ebp),%esi
42c468:	81 fe 50 14 00 00    	cmp    $0x1450,%esi
42c46e:	0f 8f 49 03 00 00    	jg     0x42c7bd
42c474:	81 fe b0 eb ff ff    	cmp    $0xffffebb0,%esi
42c47a:	0f 8c 30 03 00 00    	jl     0x42c7b0
42c480:	ba 40 01 4c 00       	mov    $0x4c0140,%edx
42c485:	83 ea 60             	sub    $0x60,%edx
42c488:	85 f6                	test   %esi,%esi
42c48a:	0f 84 0e 03 00 00    	je     0x42c79e
42c490:	79 0a                	jns    0x42c49c
42c492:	ba a0 02 4c 00       	mov    $0x4c02a0,%edx
42c497:	f7 de                	neg    %esi
42c499:	83 ea 60             	sub    $0x60,%edx
42c49c:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
42c4a0:	0f 85 f0 02 00 00    	jne    0x42c796
42c4a6:	33 c0                	xor    %eax,%eax
42c4a8:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
42c4ac:	e9 e5 02 00 00       	jmp    0x42c796
42c4b1:	8b c6                	mov    %esi,%eax
42c4b3:	83 c2 54             	add    $0x54,%edx
42c4b6:	c1 fe 03             	sar    $0x3,%esi
42c4b9:	89 55 b0             	mov    %edx,-0x50(%ebp)
42c4bc:	89 75 ac             	mov    %esi,-0x54(%ebp)
42c4bf:	83 e0 07             	and    $0x7,%eax
42c4c2:	0f 84 ce 02 00 00    	je     0x42c796
42c4c8:	6b c8 0c             	imul   $0xc,%eax,%ecx
42c4cb:	b8 00 80 00 00       	mov    $0x8000,%eax
42c4d0:	03 ca                	add    %edx,%ecx
42c4d2:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
42c4d5:	66 39 01             	cmp    %ax,(%ecx)
42c4d8:	72 11                	jb     0x42c4eb
42c4da:	8b f1                	mov    %ecx,%esi
42c4dc:	8d 7d b8             	lea    -0x48(%ebp),%edi
42c4df:	8d 4d b8             	lea    -0x48(%ebp),%ecx
42c4e2:	89 4d 94             	mov    %ecx,-0x6c(%ebp)
42c4e5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42c4e6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42c4e7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
42c4e8:	ff 4d ba             	decl   -0x46(%ebp)
42c4eb:	0f b7 79 0a          	movzwl 0xa(%ecx),%edi
42c4ef:	8b 55 ce             	mov    -0x32(%ebp),%edx
42c4f2:	8b c7                	mov    %edi,%eax
42c4f4:	33 c2                	xor    %edx,%eax
42c4f6:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
42c4f9:	25 00 80 00 00       	and    $0x8000,%eax
42c4fe:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
42c501:	89 45 a4             	mov    %eax,-0x5c(%ebp)
42c504:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
42c509:	23 d0                	and    %eax,%edx
42c50b:	89 5d d8             	mov    %ebx,-0x28(%ebp)
42c50e:	23 f8                	and    %eax,%edi
42c510:	89 5d dc             	mov    %ebx,-0x24(%ebp)
42c513:	8d 04 17             	lea    (%edi,%edx,1),%eax
42c516:	0f b7 f0             	movzwl %ax,%esi
42c519:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
42c51e:	89 75 9c             	mov    %esi,-0x64(%ebp)
42c521:	66 3b d0             	cmp    %ax,%dx
42c524:	0f 83 49 02 00 00    	jae    0x42c773
42c52a:	66 3b f8             	cmp    %ax,%di
42c52d:	0f 83 40 02 00 00    	jae    0x42c773
42c533:	b8 fd bf 00 00       	mov    $0xbffd,%eax
42c538:	66 3b f0             	cmp    %ax,%si
42c53b:	0f 87 32 02 00 00    	ja     0x42c773
42c541:	b8 bf 3f 00 00       	mov    $0x3fbf,%eax
42c546:	66 3b f0             	cmp    %ax,%si
42c549:	77 08                	ja     0x42c553
42c54b:	89 5d cc             	mov    %ebx,-0x34(%ebp)
42c54e:	e9 37 02 00 00       	jmp    0x42c78a
42c553:	66 85 d2             	test   %dx,%dx
42c556:	75 24                	jne    0x42c57c
42c558:	46                   	inc    %esi
42c559:	f7 45 cc ff ff ff 7f 	testl  $0x7fffffff,-0x34(%ebp)
42c560:	89 75 9c             	mov    %esi,-0x64(%ebp)
42c563:	75 17                	jne    0x42c57c
42c565:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
42c569:	75 11                	jne    0x42c57c
42c56b:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
42c56f:	75 0b                	jne    0x42c57c
42c571:	33 c0                	xor    %eax,%eax
42c573:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
42c577:	e9 14 02 00 00       	jmp    0x42c790
42c57c:	66 85 ff             	test   %di,%di
42c57f:	75 16                	jne    0x42c597
42c581:	46                   	inc    %esi
42c582:	f7 41 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ecx)
42c589:	89 75 9c             	mov    %esi,-0x64(%ebp)
42c58c:	75 09                	jne    0x42c597
42c58e:	39 59 04             	cmp    %ebx,0x4(%ecx)
42c591:	75 04                	jne    0x42c597
42c593:	39 19                	cmp    %ebx,(%ecx)
42c595:	74 b4                	je     0x42c54b
42c597:	6a 05                	push   $0x5
42c599:	8b c3                	mov    %ebx,%eax
42c59b:	8d 55 d8             	lea    -0x28(%ebp),%edx
42c59e:	5f                   	pop    %edi
42c59f:	89 45 a0             	mov    %eax,-0x60(%ebp)
42c5a2:	89 7d 98             	mov    %edi,-0x68(%ebp)
42c5a5:	89 7d 88             	mov    %edi,-0x78(%ebp)
42c5a8:	85 ff                	test   %edi,%edi
42c5aa:	7e 58                	jle    0x42c604
42c5ac:	8d 75 c4             	lea    -0x3c(%ebp),%esi
42c5af:	8d 34 46             	lea    (%esi,%eax,2),%esi
42c5b2:	8d 41 08             	lea    0x8(%ecx),%eax
42c5b5:	89 45 90             	mov    %eax,-0x70(%ebp)
42c5b8:	0f b7 06             	movzwl (%esi),%eax
42c5bb:	89 45 a8             	mov    %eax,-0x58(%ebp)
42c5be:	8b 45 90             	mov    -0x70(%ebp),%eax
42c5c1:	8b 4d a8             	mov    -0x58(%ebp),%ecx
42c5c4:	89 5d 88             	mov    %ebx,-0x78(%ebp)
42c5c7:	0f b7 00             	movzwl (%eax),%eax
42c5ca:	0f af c8             	imul   %eax,%ecx
42c5cd:	89 4d a8             	mov    %ecx,-0x58(%ebp)
42c5d0:	03 4a fc             	add    -0x4(%edx),%ecx
42c5d3:	3b 4a fc             	cmp    -0x4(%edx),%ecx
42c5d6:	72 05                	jb     0x42c5dd
42c5d8:	3b 4d a8             	cmp    -0x58(%ebp),%ecx
42c5db:	73 05                	jae    0x42c5e2
42c5dd:	33 c0                	xor    %eax,%eax
42c5df:	40                   	inc    %eax
42c5e0:	eb 03                	jmp    0x42c5e5
42c5e2:	8b 45 88             	mov    -0x78(%ebp),%eax
42c5e5:	89 4a fc             	mov    %ecx,-0x4(%edx)
42c5e8:	85 c0                	test   %eax,%eax
42c5ea:	74 03                	je     0x42c5ef
42c5ec:	66 ff 02             	incw   (%edx)
42c5ef:	83 6d 90 02          	subl   $0x2,-0x70(%ebp)
42c5f3:	83 c6 02             	add    $0x2,%esi
42c5f6:	4f                   	dec    %edi
42c5f7:	85 ff                	test   %edi,%edi
42c5f9:	7f bd                	jg     0x42c5b8
42c5fb:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
42c5fe:	8b 7d 98             	mov    -0x68(%ebp),%edi
42c601:	8b 45 a0             	mov    -0x60(%ebp),%eax
42c604:	83 c2 02             	add    $0x2,%edx
42c607:	40                   	inc    %eax
42c608:	4f                   	dec    %edi
42c609:	89 45 a0             	mov    %eax,-0x60(%ebp)
42c60c:	89 7d 98             	mov    %edi,-0x68(%ebp)
42c60f:	85 ff                	test   %edi,%edi
42c611:	7f 92                	jg     0x42c5a5
42c613:	8b 75 9c             	mov    -0x64(%ebp),%esi
42c616:	8b 55 dc             	mov    -0x24(%ebp),%edx
42c619:	81 c6 02 c0 00 00    	add    $0xc002,%esi
42c61f:	8b 7d d4             	mov    -0x2c(%ebp),%edi
42c622:	89 55 b4             	mov    %edx,-0x4c(%ebp)
42c625:	66 85 f6             	test   %si,%si
42c628:	7e 3b                	jle    0x42c665
42c62a:	85 d2                	test   %edx,%edx
42c62c:	78 32                	js     0x42c660
42c62e:	8b 45 d8             	mov    -0x28(%ebp),%eax
42c631:	8b d7                	mov    %edi,%edx
42c633:	c1 ea 1f             	shr    $0x1f,%edx
42c636:	8b c8                	mov    %eax,%ecx
42c638:	03 c0                	add    %eax,%eax
42c63a:	c1 e9 1f             	shr    $0x1f,%ecx
42c63d:	0b c2                	or     %edx,%eax
42c63f:	03 ff                	add    %edi,%edi
42c641:	8b 55 b4             	mov    -0x4c(%ebp),%edx
42c644:	89 45 d8             	mov    %eax,-0x28(%ebp)
42c647:	03 d2                	add    %edx,%edx
42c649:	b8 ff ff 00 00       	mov    $0xffff,%eax
42c64e:	89 7d d4             	mov    %edi,-0x2c(%ebp)
42c651:	0b d1                	or     %ecx,%edx
42c653:	03 f0                	add    %eax,%esi
42c655:	89 55 b4             	mov    %edx,-0x4c(%ebp)
42c658:	89 55 dc             	mov    %edx,-0x24(%ebp)
42c65b:	66 85 f6             	test   %si,%si
42c65e:	7f ca                	jg     0x42c62a
42c660:	66 85 f6             	test   %si,%si
42c663:	7f 69                	jg     0x42c6ce
42c665:	b8 ff ff 00 00       	mov    $0xffff,%eax
42c66a:	03 f0                	add    %eax,%esi
42c66c:	66 85 f6             	test   %si,%si
42c66f:	79 5d                	jns    0x42c6ce
42c671:	8b 5d 8c             	mov    -0x74(%ebp),%ebx
42c674:	8b c6                	mov    %esi,%eax
42c676:	f7 d8                	neg    %eax