409099:	8b 5d 08             	mov    0x8(%ebp),%ebx
40909c:	8b 5b ec             	mov    -0x14(%ebx),%ebx
40909f:	c6 43 3c 00          	movb   $0x0,0x3c(%ebx)
4090a3:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
4090a7:	8b 45 08             	mov    0x8(%ebp),%eax
4090aa:	8d 50 f2             	lea    -0xe(%eax),%edx
4090ad:	8b 45 08             	mov    0x8(%ebp),%eax
4090b0:	8b 40 e8             	mov    -0x18(%eax),%eax
4090b3:	b9 0e 00 00 00       	mov    $0xe,%ecx
4090b8:	e8 a3 d9 ff ff       	call   0x406a60
4090bd:	83 f8 0e             	cmp    $0xe,%eax
4090c0:	0f 85 d3 02 00 00    	jne    0x409399
4090c6:	33 ff                	xor    %edi,%edi
4090c8:	33 c0                	xor    %eax,%eax
4090ca:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090cd:	8b 45 08             	mov    0x8(%ebp),%eax
4090d0:	66 81 78 f2 42 4d    	cmpw   $0x4d42,-0xe(%eax)
4090d6:	74 15                	je     0x4090ed
4090d8:	8b 45 08             	mov    0x8(%ebp),%eax
4090db:	8b 50 e4             	mov    -0x1c(%eax),%edx
4090de:	8b 45 08             	mov    0x8(%ebp),%eax
4090e1:	8b 40 e8             	mov    -0x18(%eax),%eax
4090e4:	33 c9                	xor    %ecx,%ecx
4090e6:	e8 65 da ff ff       	call   0x406b50
4090eb:	eb 12                	jmp    0x4090ff
4090ed:	8b 45 08             	mov    0x8(%ebp),%eax
4090f0:	8b 78 fc             	mov    -0x4(%eax),%edi
4090f3:	83 ef 0e             	sub    $0xe,%edi
4090f6:	8b 45 08             	mov    0x8(%ebp),%eax
4090f9:	8b 40 f4             	mov    -0xc(%eax),%eax
4090fc:	89 45 f8             	mov    %eax,-0x8(%ebp)
4090ff:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
409106:	c7 45 ec 28 00 00 00 	movl   $0x28,-0x14(%ebp)
40910d:	8b 45 ec             	mov    -0x14(%ebp),%eax
409110:	05 00 04 00 00       	add    $0x400,%eax
409115:	e8 c2 18 00 00       	call   0x40a9dc
40911a:	8b f0                	mov    %eax,%esi
40911c:	89 73 3d             	mov    %esi,0x3d(%ebx)
40911f:	8b d6                	mov    %esi,%edx
409121:	8b 45 08             	mov    0x8(%ebp),%eax
409124:	8b 40 e8             	mov    -0x18(%eax),%eax
409127:	b9 04 00 00 00       	mov    $0x4,%ecx
40912c:	e8 2f d9 ff ff       	call   0x406a60
409131:	83 f8 04             	cmp    $0x4,%eax
409134:	0f 85 5f 02 00 00    	jne    0x409399
40913a:	8b 73 3d             	mov    0x3d(%ebx),%esi
40913d:	8b 06                	mov    (%esi),%eax
40913f:	3b 45 ec             	cmp    -0x14(%ebp),%eax
409142:	75 24                	jne    0x409168
409144:	8b 4d ec             	mov    -0x14(%ebp),%ecx
409147:	83 e9 04             	sub    $0x4,%ecx
40914a:	8d 56 04             	lea    0x4(%esi),%edx
40914d:	8b 45 08             	mov    0x8(%ebp),%eax
409150:	8b 40 e8             	mov    -0x18(%eax),%eax
409153:	e8 08 d9 ff ff       	call   0x406a60
409158:	8b 55 ec             	mov    -0x14(%ebp),%edx
40915b:	83 ea 04             	sub    $0x4,%edx
40915e:	3b c2                	cmp    %edx,%eax
409160:	0f 85 33 02 00 00    	jne    0x409399
409166:	eb 5c                	jmp    0x4091c4
409168:	83 f8 0c             	cmp    $0xc,%eax
40916b:	0f 85 28 02 00 00    	jne    0x409399
409171:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
409178:	c7 45 ec 0c 00 00 00 	movl   $0xc,-0x14(%ebp)
40917f:	8b 75 ec             	mov    -0x14(%ebp),%esi
409182:	83 ee 04             	sub    $0x4,%esi
409185:	8b ce                	mov    %esi,%ecx
409187:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40918a:	8b 45 08             	mov    0x8(%ebp),%eax
40918d:	8b 40 e8             	mov    -0x18(%eax),%eax
409190:	e8 cb d8 ff ff       	call   0x406a60
409195:	3b c6                	cmp    %esi,%eax
409197:	0f 85 fc 01 00 00    	jne    0x409399
40919d:	8b 43 3d             	mov    0x3d(%ebx),%eax
4091a0:	c7 00 28 00 00 00    	movl   $0x28,(%eax)
4091a6:	0f b7 55 e4          	movzwl -0x1c(%ebp),%edx
4091aa:	89 50 04             	mov    %edx,0x4(%eax)
4091ad:	0f b7 55 e6          	movzwl -0x1a(%ebp),%edx
4091b1:	89 50 08             	mov    %edx,0x8(%eax)
4091b4:	66 8b 55 e8          	mov    -0x18(%ebp),%dx
4091b8:	66 89 50 0c          	mov    %dx,0xc(%eax)
4091bc:	66 8b 55 ea          	mov    -0x16(%ebp),%dx
4091c0:	66 89 50 0e          	mov    %dx,0xe(%eax)
4091c4:	8b 73 3d             	mov    0x3d(%ebx),%esi
4091c7:	0f b7 46 0e          	movzwl 0xe(%esi),%eax
4091cb:	0f b7 56 0c          	movzwl 0xc(%esi),%edx
4091cf:	f7 ea                	imul   %edx
4091d1:	e8 92 34 00 00       	call   0x40c668
4091d6:	88 43 49             	mov    %al,0x49(%ebx)
4091d9:	8b 43 3d             	mov    0x3d(%ebx),%eax
4091dc:	8b 40 04             	mov    0x4(%eax),%eax
4091df:	89 43 1c             	mov    %eax,0x1c(%ebx)
4091e2:	8b 43 3d             	mov    0x3d(%ebx),%eax
4091e5:	8b 40 08             	mov    0x8(%eax),%eax
4091e8:	99                   	cltd
4091e9:	33 c2                	xor    %edx,%eax
4091eb:	2b c2                	sub    %edx,%eax
4091ed:	89 43 18             	mov    %eax,0x18(%ebx)
4091f0:	8b c3                	mov    %ebx,%eax
4091f2:	e8 3d 3c 00 00       	call   0x40ce34
4091f7:	8b f0                	mov    %eax,%esi
4091f9:	0f af 73 18          	imul   0x18(%ebx),%esi
4091fd:	89 73 45             	mov    %esi,0x45(%ebx)
409200:	56                   	push   %esi
409201:	6a 40                	push   $0x40
409203:	e8 18 b6 ff ff       	call   0x404820
409208:	89 43 41             	mov    %eax,0x41(%ebx)
40920b:	33 f6                	xor    %esi,%esi
40920d:	8b 53 3d             	mov    0x3d(%ebx),%edx
409210:	66 8b 42 0e          	mov    0xe(%edx),%ax
409214:	66 83 f8 08          	cmp    $0x8,%ax
409218:	77 1e                	ja     0x409238
40921a:	8b 4a 20             	mov    0x20(%edx),%ecx
40921d:	85 c9                	test   %ecx,%ecx
40921f:	76 07                	jbe    0x409228
409221:	8b f1                	mov    %ecx,%esi
409223:	c1 e6 02             	shl    $0x2,%esi
409226:	eb 25                	jmp    0x40924d
409228:	8b c8                	mov    %eax,%ecx
40922a:	b8 01 00 00 00       	mov    $0x1,%eax
40922f:	d3 e0                	shl    %cl,%eax
409231:	8b f0                	mov    %eax,%esi
409233:	c1 e6 02             	shl    $0x2,%esi
409236:	eb 15                	jmp    0x40924d
409238:	8a 43 49             	mov    0x49(%ebx),%al
40923b:	2c 05                	sub    $0x5,%al
40923d:	74 09                	je     0x409248
40923f:	8b 43 3d             	mov    0x3d(%ebx),%eax
409242:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
409246:	75 05                	jne    0x40924d
409248:	be 0c 00 00 00       	mov    $0xc,%esi
40924d:	85 ff                	test   %edi,%edi
40924f:	76 22                	jbe    0x409273
409251:	2b 7d ec             	sub    -0x14(%ebp),%edi
409254:	3b f7                	cmp    %edi,%esi
409256:	74 1b                	je     0x409273
409258:	8a 43 49             	mov    0x49(%ebx),%al
40925b:	04 fc                	add    $0xfc,%al
40925d:	2c 02                	sub    $0x2,%al
40925f:	73 04                	jae    0x409265
409261:	85 ff                	test   %edi,%edi
409263:	75 0e                	jne    0x409273
409265:	8b d7                	mov    %edi,%edx
409267:	b8 00 04 00 00       	mov    $0x400,%eax
40926c:	e8 37 be ff ff       	call   0x4050a8
409271:	8b f0                	mov    %eax,%esi
409273:	85 f6                	test   %esi,%esi
409275:	74 5b                	je     0x4092d2
409277:	3b f7                	cmp    %edi,%esi
409279:	77 02                	ja     0x40927d
40927b:	2b fe                	sub    %esi,%edi
40927d:	83 7d f4 04          	cmpl   $0x4,-0xc(%ebp)
409281:	75 1d                	jne    0x4092a0
409283:	8b 43 3d             	mov    0x3d(%ebx),%eax
409286:	8d 50 28             	lea    0x28(%eax),%edx
409289:	8b 45 08             	mov    0x8(%ebp),%eax
40928c:	8b 40 e8             	mov    -0x18(%eax),%eax
40928f:	8b ce                	mov    %esi,%ecx
409291:	e8 ca d7 ff ff       	call   0x406a60
409296:	3b c6                	cmp    %esi,%eax
409298:	0f 85 fb 00 00 00    	jne    0x409399
40929e:	eb 32                	jmp    0x4092d2
4092a0:	8b 43 3d             	mov    0x3d(%ebx),%eax
4092a3:	83 c0 28             	add    $0x28,%eax
4092a6:	89 45 f0             	mov    %eax,-0x10(%ebp)
4092a9:	85 f6                	test   %esi,%esi
4092ab:	76 25                	jbe    0x4092d2
4092ad:	8b 55 f0             	mov    -0x10(%ebp),%edx
4092b0:	8b 45 08             	mov    0x8(%ebp),%eax
4092b3:	8b 40 e8             	mov    -0x18(%eax),%eax
4092b6:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4092b9:	e8 a2 d7 ff ff       	call   0x406a60
4092be:	3b 45 f4             	cmp    -0xc(%ebp),%eax
4092c1:	0f 85 d2 00 00 00    	jne    0x409399
4092c7:	2b 75 f4             	sub    -0xc(%ebp),%esi
4092ca:	83 45 f0 04          	addl   $0x4,-0x10(%ebp)
4092ce:	85 f6                	test   %esi,%esi
4092d0:	77 db                	ja     0x4092ad
4092d2:	85 ff                	test   %edi,%edi
4092d4:	76 0f                	jbe    0x4092e5
4092d6:	8b 45 08             	mov    0x8(%ebp),%eax
4092d9:	8b 40 e8             	mov    -0x18(%eax),%eax
4092dc:	b1 01                	mov    $0x1,%cl
4092de:	8b d7                	mov    %edi,%edx
4092e0:	e8 6b d8 ff ff       	call   0x406b50
4092e5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
4092e9:	74 0f                	je     0x4092fa
4092eb:	8b 45 08             	mov    0x8(%ebp),%eax
4092ee:	8b 40 e8             	mov    -0x18(%eax),%eax
4092f1:	e8 5e d7 ff ff       	call   0x406a54
4092f6:	85 c0                	test   %eax,%eax
4092f8:	77 08                	ja     0x409302
4092fa:	8b 43 45             	mov    0x45(%ebx),%eax
4092fd:	89 45 f8             	mov    %eax,-0x8(%ebp)
409300:	eb 25                	jmp    0x409327
409302:	8b 45 08             	mov    0x8(%ebp),%eax
409305:	8b 40 e8             	mov    -0x18(%eax),%eax
409308:	e8 47 d7 ff ff       	call   0x406a54
40930d:	50                   	push   %eax
40930e:	8b 45 08             	mov    0x8(%ebp),%eax
409311:	8b 40 e8             	mov    -0x18(%eax),%eax
409314:	e8 27 d7 ff ff       	call   0x406a40
409319:	5a                   	pop    %edx
40931a:	2b d0                	sub    %eax,%edx
40931c:	8b 43 45             	mov    0x45(%ebx),%eax
40931f:	e8 84 bd ff ff       	call   0x4050a8
409324:	89 45 f8             	mov    %eax,-0x8(%ebp)
409327:	8b 53 45             	mov    0x45(%ebx),%edx
40932a:	8b 45 f8             	mov    -0x8(%ebp),%eax
40932d:	e8 76 bd ff ff       	call   0x4050a8
409332:	8b f0                	mov    %eax,%esi
409334:	8b 7b 45             	mov    0x45(%ebx),%edi
409337:	3b f7                	cmp    %edi,%esi
409339:	7d 26                	jge    0x409361
40933b:	8b 45 08             	mov    0x8(%ebp),%eax
40933e:	8b 40 e8             	mov    -0x18(%eax),%eax
409341:	e8 fa d6 ff ff       	call   0x406a40
409346:	2b fe                	sub    %esi,%edi
409348:	3b c7                	cmp    %edi,%eax
40934a:	72 15                	jb     0x409361
40934c:	8b d6                	mov    %esi,%edx
40934e:	2b 53 45             	sub    0x45(%ebx),%edx
409351:	8b 45 08             	mov    0x8(%ebp),%eax
409354:	8b 40 e8             	mov    -0x18(%eax),%eax
409357:	b1 01                	mov    $0x1,%cl
409359:	e8 f2 d7 ff ff       	call   0x406b50
40935e:	8b 73 45             	mov    0x45(%ebx),%esi
409361:	8b 43 45             	mov    0x45(%ebx),%eax
409364:	3b f0                	cmp    %eax,%esi
409366:	7e 02                	jle    0x40936a
409368:	8b f0                	mov    %eax,%esi
40936a:	8b 53 41             	mov    0x41(%ebx),%edx
40936d:	8b 45 08             	mov    0x8(%ebp),%eax
409370:	8b 40 e8             	mov    -0x18(%eax),%eax
409373:	8b ce                	mov    %esi,%ecx
409375:	e8 e6 d6 ff ff       	call   0x406a60
40937a:	3b c6                	cmp    %esi,%eax
40937c:	75 1b                	jne    0x409399
40937e:	3b 75 f8             	cmp    -0x8(%ebp),%esi
409381:	7d 12                	jge    0x409395
409383:	8b 55 f8             	mov    -0x8(%ebp),%edx
409386:	2b d6                	sub    %esi,%edx
409388:	8b 45 08             	mov    0x8(%ebp),%eax
40938b:	8b 40 e8             	mov    -0x18(%eax),%eax
40938e:	b1 01                	mov    $0x1,%cl
409390:	e8 bb d7 ff ff       	call   0x406b50
409395:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
409399:	8a 45 ff             	mov    -0x1(%ebp),%al
40939c:	5f                   	pop    %edi
40939d:	5e                   	pop    %esi
40939e:	5b                   	pop    %ebx
40939f:	8b e5                	mov    %ebp,%esp
4093a1:	5d                   	pop    %ebp
4093a2:	c3                   	ret
4093a3:	90                   	nop
4093a4:	55                   	push   %ebp
4093a5:	8b ec                	mov    %esp,%ebp
4093a7:	83 c4 e4             	add    $0xffffffe4,%esp
4093aa:	89 55 e8             	mov    %edx,-0x18(%ebp)
4093ad:	89 45 ec             	mov    %eax,-0x14(%ebp)
4093b0:	8b 45 ec             	mov    -0x14(%ebp),%eax
4093b3:	e8 e8 33 00 00       	call   0x40c7a0
4093b8:	8b 45 e8             	mov    -0x18(%ebp),%eax
4093bb:	e8 80 d6 ff ff       	call   0x406a40
4093c0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4093c3:	55                   	push   %ebp
4093c4:	e8 c7 fc ff ff       	call   0x409090
4093c9:	59                   	pop    %ecx
4093ca:	84 c0                	test   %al,%al
4093cc:	75 15                	jne    0x4093e3
4093ce:	8b 45 e8             	mov    -0x18(%ebp),%eax
4093d1:	33 c9                	xor    %ecx,%ecx
4093d3:	8b 55 e4             	mov    -0x1c(%ebp),%edx
4093d6:	e8 75 d7 ff ff       	call   0x406b50
4093db:	8b 45 ec             	mov    -0x14(%ebp),%eax
4093de:	e8 bd 33 00 00       	call   0x40c7a0
4093e3:	8b e5                	mov    %ebp,%esp
4093e5:	5d                   	pop    %ebp
4093e6:	c3                   	ret
4093e7:	90                   	nop
4093e8:	53                   	push   %ebx
4093e9:	56                   	push   %esi
4093ea:	89 c3                	mov    %eax,%ebx
4093ec:	89 d6                	mov    %edx,%esi
4093ee:	e8 6d 37 00 00       	call   0x40cb60
4093f3:	0f 84 8c 00 00 00    	je     0x409485
4093f9:	89 f0                	mov    %esi,%eax
4093fb:	e8 40 d6 ff ff       	call   0x406a40
409400:	50                   	push   %eax
409401:	89 d8                	mov    %ebx,%eax
409403:	31 d2                	xor    %edx,%edx
409405:	e8 ae 00 00 00       	call   0x4094b8
40940a:	31 c0                	xor    %eax,%eax
40940c:	8b 53 3d             	mov    0x3d(%ebx),%edx
40940f:	0f b7 4a 0e          	movzwl 0xe(%edx),%ecx
409413:	80 f9 08             	cmp    $0x8,%cl
409416:	7f 04                	jg     0x40941c
409418:	b0 04                	mov    $0x4,%al
40941a:	d3 e0                	shl    %cl,%eax
40941c:	50                   	push   %eax
40941d:	8d 48 36             	lea    0x36(%eax),%ecx
409420:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
409424:	74 03                	je     0x409429
409426:	83 c1 4a             	add    $0x4a,%ecx
409429:	51                   	push   %ecx
40942a:	6a 00                	push   $0x0
40942c:	03 4b 45             	add    0x45(%ebx),%ecx
40942f:	51                   	push   %ecx
409430:	66 b9 42 4d          	mov    $0x4d42,%cx
409434:	66 51                	push   %cx
409436:	31 c9                	xor    %ecx,%ecx
409438:	89 e2                	mov    %esp,%edx
40943a:	b1 0e                	mov    $0xe,%cl
40943c:	51                   	push   %ecx
40943d:	89 f0                	mov    %esi,%eax
40943f:	e8 20 d6 ff ff       	call   0x406a64
409444:	59                   	pop    %ecx
409445:	83 c4 0e             	add    $0xe,%esp
409448:	31 c8                	xor    %ecx,%eax
40944a:	59                   	pop    %ecx
40944b:	75 2d                	jne    0x40947a
40944d:	8b 53 3d             	mov    0x3d(%ebx),%edx
409450:	83 7a 10 00          	cmpl   $0x0,0x10(%edx)
409454:	74 03                	je     0x409459
409456:	83 c1 4a             	add    $0x4a,%ecx
409459:	83 c1 28             	add    $0x28,%ecx
40945c:	51                   	push   %ecx
40945d:	89 f0                	mov    %esi,%eax
40945f:	e8 00 d6 ff ff       	call   0x406a64
409464:	59                   	pop    %ecx
409465:	31 c8                	xor    %ecx,%eax
409467:	75 11                	jne    0x40947a
409469:	8b 4b 45             	mov    0x45(%ebx),%ecx
40946c:	8b 53 41             	mov    0x41(%ebx),%edx
40946f:	89 f0                	mov    %esi,%eax
409471:	51                   	push   %ecx
409472:	e8 ed d5 ff ff       	call   0x406a64
409477:	59                   	pop    %ecx
409478:	31 c8                	xor    %ecx,%eax
40947a:	5a                   	pop    %edx
40947b:	74 08                	je     0x409485
40947d:	96                   	xchg   %eax,%esi
40947e:	31 c9                	xor    %ecx,%ecx
409480:	e8 cb d6 ff ff       	call   0x406b50
409485:	5e                   	pop    %esi
409486:	5b                   	pop    %ebx
409487:	c3                   	ret
409488:	53                   	push   %ebx
409489:	56                   	push   %esi
40948a:	57                   	push   %edi