409138:	0b c7                	or     %edi,%eax
40913a:	74 2d                	je     0x409169
40913c:	8b 85 e0 fb ff ff    	mov    -0x420(%ebp),%eax
409142:	99                   	cltd
409143:	52                   	push   %edx
409144:	50                   	push   %eax
409145:	57                   	push   %edi
409146:	53                   	push   %ebx
409147:	e8 24 1c 00 00       	call   0x40ad70
40914c:	83 c1 30             	add    $0x30,%ecx
40914f:	89 9d 8c fb ff ff    	mov    %ebx,-0x474(%ebp)
409155:	8b d8                	mov    %eax,%ebx
409157:	8b fa                	mov    %edx,%edi
409159:	83 f9 39             	cmp    $0x39,%ecx
40915c:	7e 06                	jle    0x409164
40915e:	03 8d ac fb ff ff    	add    -0x454(%ebp),%ecx
409164:	88 0e                	mov    %cl,(%esi)
409166:	4e                   	dec    %esi
409167:	eb bd                	jmp    0x409126
409169:	8d 85 fb fd ff ff    	lea    -0x205(%ebp),%eax
40916f:	2b c6                	sub    %esi,%eax
409171:	46                   	inc    %esi
409172:	f7 85 f8 fb ff ff 00 	testl  $0x200,-0x408(%ebp)
409179:	02 00 00
40917c:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
409182:	89 b5 f0 fb ff ff    	mov    %esi,-0x410(%ebp)
409188:	74 5e                	je     0x4091e8
40918a:	85 c0                	test   %eax,%eax
40918c:	74 07                	je     0x409195
40918e:	8b c6                	mov    %esi,%eax
409190:	80 38 30             	cmpb   $0x30,(%eax)
409193:	74 53                	je     0x4091e8
409195:	ff 8d f0 fb ff ff    	decl   -0x410(%ebp)
40919b:	8b 85 f0 fb ff ff    	mov    -0x410(%ebp),%eax
4091a1:	ff 85 ec fb ff ff    	incl   -0x414(%ebp)
4091a7:	c6 00 30             	movb   $0x30,(%eax)
4091aa:	eb 3c                	jmp    0x4091e8
4091ac:	85 db                	test   %ebx,%ebx
4091ae:	75 0b                	jne    0x4091bb
4091b0:	a1 e4 2d 41 00       	mov    0x412de4,%eax
4091b5:	89 85 f0 fb ff ff    	mov    %eax,-0x410(%ebp)
4091bb:	8b 85 f0 fb ff ff    	mov    -0x410(%ebp),%eax
4091c1:	c7 85 d0 fb ff ff 01 	movl   $0x1,-0x430(%ebp)
4091c8:	00 00 00
4091cb:	eb 09                	jmp    0x4091d6
4091cd:	4f                   	dec    %edi
4091ce:	66 83 38 00          	cmpw   $0x0,(%eax)
4091d2:	74 06                	je     0x4091da
4091d4:	03 c1                	add    %ecx,%eax
4091d6:	85 ff                	test   %edi,%edi
4091d8:	75 f3                	jne    0x4091cd
4091da:	2b 85 f0 fb ff ff    	sub    -0x410(%ebp),%eax
4091e0:	d1 f8                	sar    $1,%eax
4091e2:	89 85 ec fb ff ff    	mov    %eax,-0x414(%ebp)
4091e8:	83 bd b0 fb ff ff 00 	cmpl   $0x0,-0x450(%ebp)
4091ef:	0f 85 a8 01 00 00    	jne    0x40939d
4091f5:	8b 85 f8 fb ff ff    	mov    -0x408(%ebp),%eax
4091fb:	a8 40                	test   $0x40,%al
4091fd:	74 2b                	je     0x40922a
4091ff:	a9 00 01 00 00       	test   $0x100,%eax
409204:	74 04                	je     0x40920a
409206:	6a 2d                	push   $0x2d
409208:	eb 0e                	jmp    0x409218
40920a:	a8 01                	test   $0x1,%al
40920c:	74 04                	je     0x409212
40920e:	6a 2b                	push   $0x2b
409210:	eb 06                	jmp    0x409218
409212:	a8 02                	test   $0x2,%al
409214:	74 14                	je     0x40922a
409216:	6a 20                	push   $0x20
409218:	59                   	pop    %ecx
409219:	66 89 8d cc fb ff ff 	mov    %cx,-0x434(%ebp)
409220:	c7 85 dc fb ff ff 01 	movl   $0x1,-0x424(%ebp)
409227:	00 00 00
40922a:	8b bd d8 fb ff ff    	mov    -0x428(%ebp),%edi
409230:	2b bd ec fb ff ff    	sub    -0x414(%ebp),%edi
409236:	2b bd dc fb ff ff    	sub    -0x424(%ebp),%edi
40923c:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
409242:	a8 0c                	test   $0xc,%al
409244:	75 24                	jne    0x40926a
409246:	eb 1e                	jmp    0x409266
409248:	8b 85 d4 fb ff ff    	mov    -0x42c(%ebp),%eax
40924e:	6a 20                	push   $0x20
409250:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
409256:	4f                   	dec    %edi
409257:	e8 26 b3 ff ff       	call   0x404582
40925c:	83 bd e8 fb ff ff ff 	cmpl   $0xffffffff,-0x418(%ebp)
409263:	59                   	pop    %ecx
409264:	74 04                	je     0x40926a
409266:	85 ff                	test   %edi,%edi
409268:	7f de                	jg     0x409248
40926a:	ff b5 dc fb ff ff    	push   -0x424(%ebp)
409270:	8b bd 9c fb ff ff    	mov    -0x464(%ebp),%edi
409276:	8b 9d d4 fb ff ff    	mov    -0x42c(%ebp),%ebx
40927c:	8d 85 cc fb ff ff    	lea    -0x434(%ebp),%eax
409282:	50                   	push   %eax
409283:	8d 85 e8 fb ff ff    	lea    -0x418(%ebp),%eax
409289:	e8 87 f5 ff ff       	call   0x408815
40928e:	f6 85 f8 fb ff ff 08 	testb  $0x8,-0x408(%ebp)
409295:	59                   	pop    %ecx
409296:	59                   	pop    %ecx
409297:	74 2f                	je     0x4092c8
409299:	f6 85 f8 fb ff ff 04 	testb  $0x4,-0x408(%ebp)
4092a0:	75 26                	jne    0x4092c8
4092a2:	8b bd e0 fb ff ff    	mov    -0x420(%ebp),%edi
4092a8:	eb 1a                	jmp    0x4092c4
4092aa:	6a 30                	push   $0x30
4092ac:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
4092b2:	8b c3                	mov    %ebx,%eax
4092b4:	4f                   	dec    %edi
4092b5:	e8 c8 b2 ff ff       	call   0x404582
4092ba:	83 bd e8 fb ff ff ff 	cmpl   $0xffffffff,-0x418(%ebp)
4092c1:	59                   	pop    %ecx
4092c2:	74 04                	je     0x4092c8
4092c4:	85 ff                	test   %edi,%edi
4092c6:	7f e2                	jg     0x4092aa
4092c8:	83 bd d0 fb ff ff 00 	cmpl   $0x0,-0x430(%ebp)
4092cf:	75 6b                	jne    0x40933c
4092d1:	8b 9d ec fb ff ff    	mov    -0x414(%ebp),%ebx
4092d7:	85 db                	test   %ebx,%ebx
4092d9:	7e 61                	jle    0x40933c
4092db:	8b bd f0 fb ff ff    	mov    -0x410(%ebp),%edi
4092e1:	8d 85 b4 fb ff ff    	lea    -0x44c(%ebp),%eax
4092e7:	50                   	push   %eax
4092e8:	8b 85 b4 fb ff ff    	mov    -0x44c(%ebp),%eax
4092ee:	ff b0 ac 00 00 00    	push   0xac(%eax)
4092f4:	8d 85 a4 fb ff ff    	lea    -0x45c(%ebp),%eax
4092fa:	57                   	push   %edi
4092fb:	50                   	push   %eax
4092fc:	4b                   	dec    %ebx
4092fd:	e8 e9 18 00 00       	call   0x40abeb
409302:	83 c4 10             	add    $0x10,%esp
409305:	89 85 8c fb ff ff    	mov    %eax,-0x474(%ebp)
40930b:	85 c0                	test   %eax,%eax
40930d:	7e 24                	jle    0x409333
40930f:	ff b5 a4 fb ff ff    	push   -0x45c(%ebp)
409315:	8b 85 d4 fb ff ff    	mov    -0x42c(%ebp),%eax
40931b:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
409321:	e8 5c b2 ff ff       	call   0x404582
409326:	03 bd 8c fb ff ff    	add    -0x474(%ebp),%edi
40932c:	59                   	pop    %ecx
40932d:	85 db                	test   %ebx,%ebx
40932f:	7f b0                	jg     0x4092e1
409331:	eb 2e                	jmp    0x409361
409333:	83 8d e8 fb ff ff ff 	orl    $0xffffffff,-0x418(%ebp)
40933a:	eb 25                	jmp    0x409361
40933c:	ff b5 ec fb ff ff    	push   -0x414(%ebp)
409342:	8b bd 9c fb ff ff    	mov    -0x464(%ebp),%edi
409348:	ff b5 f0 fb ff ff    	push   -0x410(%ebp)
40934e:	8b 9d d4 fb ff ff    	mov    -0x42c(%ebp),%ebx
409354:	8d 85 e8 fb ff ff    	lea    -0x418(%ebp),%eax
40935a:	e8 b6 f4 ff ff       	call   0x408815
40935f:	59                   	pop    %ecx
409360:	59                   	pop    %ecx
409361:	83 bd e8 fb ff ff 00 	cmpl   $0x0,-0x418(%ebp)
409368:	7c 33                	jl     0x40939d
40936a:	f6 85 f8 fb ff ff 04 	testb  $0x4,-0x408(%ebp)
409371:	74 2a                	je     0x40939d
409373:	8b bd e0 fb ff ff    	mov    -0x420(%ebp),%edi
409379:	eb 1e                	jmp    0x409399
40937b:	8b 85 d4 fb ff ff    	mov    -0x42c(%ebp),%eax
409381:	6a 20                	push   $0x20
409383:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
409389:	4f                   	dec    %edi
40938a:	e8 f3 b1 ff ff       	call   0x404582
40938f:	83 bd e8 fb ff ff ff 	cmpl   $0xffffffff,-0x418(%ebp)
409396:	59                   	pop    %ecx
409397:	74 04                	je     0x40939d
409399:	85 ff                	test   %edi,%edi
40939b:	7f de                	jg     0x40937b
40939d:	83 bd a8 fb ff ff 00 	cmpl   $0x0,-0x458(%ebp)
4093a4:	74 13                	je     0x4093b9
4093a6:	ff b5 a8 fb ff ff    	push   -0x458(%ebp)
4093ac:	e8 ba 8b ff ff       	call   0x401f6b
4093b1:	83 a5 a8 fb ff ff 00 	andl   $0x0,-0x458(%ebp)
4093b8:	59                   	pop    %ecx
4093b9:	8b bd a0 fb ff ff    	mov    -0x460(%ebp),%edi
4093bf:	8b 9d e4 fb ff ff    	mov    -0x41c(%ebp),%ebx
4093c5:	0f b7 07             	movzwl (%edi),%eax
4093c8:	33 f6                	xor    %esi,%esi
4093ca:	89 85 e0 fb ff ff    	mov    %eax,-0x420(%ebp)
4093d0:	66 3b c6             	cmp    %si,%ax
4093d3:	74 07                	je     0x4093dc
4093d5:	8b d0                	mov    %eax,%edx
4093d7:	e9 71 f5 ff ff       	jmp    0x40894d
4093dc:	39 b5 c4 fb ff ff    	cmp    %esi,-0x43c(%ebp)
4093e2:	74 0d                	je     0x4093f1
4093e4:	83 bd c4 fb ff ff 07 	cmpl   $0x7,-0x43c(%ebp)
4093eb:	0f 85 01 f5 ff ff    	jne    0x4088f2
4093f1:	80 bd c0 fb ff ff 00 	cmpb   $0x0,-0x440(%ebp)
4093f8:	74 0a                	je     0x409404
4093fa:	8b 85 bc fb ff ff    	mov    -0x444(%ebp),%eax
409400:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
409404:	8b 85 e8 fb ff ff    	mov    -0x418(%ebp),%eax
40940a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40940d:	5f                   	pop    %edi
40940e:	5e                   	pop    %esi
40940f:	33 cd                	xor    %ebp,%ecx
409411:	5b                   	pop    %ebx
409412:	e8 8d 89 ff ff       	call   0x401da4
409417:	c9                   	leave
409418:	c3                   	ret
409419:	8d 49 00             	lea    0x0(%ecx),%ecx
40941c:	b3 8b                	mov    $0x8b,%bl
40941e:	40                   	inc    %eax
40941f:	00 b3 89 40 00 e5    	add    %dh,-0x1affbf77(%ebx)
409425:	89 40 00             	mov    %eax,0x0(%eax)
409428:	40                   	inc    %eax
409429:	8a 40 00             	mov    0x0(%eax),%al
40942c:	8c 8a 40 00 98 8a    	mov    %cs,-0x7567ffc0(%edx)
409432:	40                   	inc    %eax
409433:	00 de                	add    %bl,%dh
409435:	8a 40 00             	mov    0x0(%eax),%al
409438:	d5 8b                	aad    $0x8b
40943a:	40                   	inc    %eax
40943b:	00 8b ff 55 8b ec    	add    %cl,-0x1374aa01(%ebx)
409441:	83 ec 10             	sub    $0x10,%esp
409444:	53                   	push   %ebx
409445:	8b 5d 10             	mov    0x10(%ebp),%ebx
409448:	85 db                	test   %ebx,%ebx
40944a:	75 07                	jne    0x409453
40944c:	33 c0                	xor    %eax,%eax
40944e:	e9 06 01 00 00       	jmp    0x409559
409453:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
409457:	75 1a                	jne    0x409473
409459:	e8 c9 ac ff ff       	call   0x404127
40945e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409464:	e8 1e 98 ff ff       	call   0x402c87
409469:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40946e:	e9 e6 00 00 00       	jmp    0x409559
409473:	56                   	push   %esi
409474:	8b 75 0c             	mov    0xc(%ebp),%esi
409477:	85 f6                	test   %esi,%esi
409479:	75 1a                	jne    0x409495
40947b:	e8 a7 ac ff ff       	call   0x404127
409480:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409486:	e8 fc 97 ff ff       	call   0x402c87
40948b:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
409490:	e9 c3 00 00 00       	jmp    0x409558
409495:	57                   	push   %edi
409496:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
40949b:	3b df                	cmp    %edi,%ebx
40949d:	76 15                	jbe    0x4094b4
40949f:	e8 83 ac ff ff       	call   0x404127
4094a4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4094aa:	e8 d8 97 ff ff       	call   0x402c87
4094af:	e9 8f 00 00 00       	jmp    0x409543
4094b4:	ff 75 14             	push   0x14(%ebp)
4094b7:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4094ba:	e8 26 8b ff ff       	call   0x401fe5
4094bf:	8b 45 f0             	mov    -0x10(%ebp),%eax
4094c2:	8b 40 10             	mov    0x10(%eax),%eax
4094c5:	85 c0                	test   %eax,%eax
4094c7:	75 4a                	jne    0x409513
4094c9:	8b 55 08             	mov    0x8(%ebp),%edx
4094cc:	2b d6                	sub    %esi,%edx
4094ce:	0f b7 04 32          	movzwl (%edx,%esi,1),%eax
4094d2:	83 f8 41             	cmp    $0x41,%eax
4094d5:	72 0d                	jb     0x4094e4
4094d7:	83 f8 5a             	cmp    $0x5a,%eax
4094da:	77 08                	ja     0x4094e4
4094dc:	83 c0 20             	add    $0x20,%eax
4094df:	0f b7 c8             	movzwl %ax,%ecx
4094e2:	eb 02                	jmp    0x4094e6
4094e4:	8b c8                	mov    %eax,%ecx
4094e6:	0f b7 06             	movzwl (%esi),%eax
4094e9:	83 f8 41             	cmp    $0x41,%eax
4094ec:	72 0b                	jb     0x4094f9
4094ee:	83 f8 5a             	cmp    $0x5a,%eax
4094f1:	77 06                	ja     0x4094f9
4094f3:	83 c0 20             	add    $0x20,%eax
4094f6:	0f b7 c0             	movzwl %ax,%eax
4094f9:	83 c6 02             	add    $0x2,%esi
4094fc:	4b                   	dec    %ebx
4094fd:	74 0a                	je     0x409509
4094ff:	66 85 c9             	test   %cx,%cx
409502:	74 05                	je     0x409509
409504:	66 3b c8             	cmp    %ax,%cx
409507:	74 c5                	je     0x4094ce
409509:	0f b7 d0             	movzwl %ax,%edx
40950c:	0f b7 c1             	movzwl %cx,%eax
40950f:	2b c2                	sub    %edx,%eax
409511:	eb 37                	jmp    0x40954a
409513:	53                   	push   %ebx
409514:	56                   	push   %esi
409515:	53                   	push   %ebx
409516:	ff 75 08             	push   0x8(%ebp)
409519:	68 01 10 00 00       	push   $0x1001
40951e:	50                   	push   %eax
40951f:	e8 fb 46 00 00       	call   0x40dc1f
409524:	83 c4 18             	add    $0x18,%esp
409527:	85 c0                	test   %eax,%eax
409529:	75 1c                	jne    0x409547
40952b:	e8 f7 ab ff ff       	call   0x404127
409530:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
409534:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40953a:	74 07                	je     0x409543
40953c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40953f:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
409543:	8b c7                	mov    %edi,%eax
409545:	eb 10                	jmp    0x409557
409547:	83 c0 fe             	add    $0xfffffffe,%eax
40954a:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
40954e:	74 07                	je     0x409557
409550:	8b 4d f8             	mov    -0x8(%ebp),%ecx
409553:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
409557:	5f                   	pop    %edi
409558:	5e                   	pop    %esi
409559:	5b                   	pop    %ebx
40955a:	c9                   	leave
40955b:	c3                   	ret
40955c:	8b ff                	mov    %edi,%edi
40955e:	55                   	push   %ebp
40955f:	8b ec                	mov    %esp,%ebp
409561:	83 3d 54 32 41 00 00 	cmpl   $0x0,0x413254
409568:	56                   	push   %esi
409569:	0f 85 91 00 00 00    	jne    0x409600
40956f:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
409573:	75 1a                	jne    0x40958f
409575:	e8 ad ab ff ff       	call   0x404127
40957a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409580:	e8 02 97 ff ff       	call   0x402c87
409585:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40958a:	e9 84 00 00 00       	jmp    0x409613
40958f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409592:	85 c9                	test   %ecx,%ecx
409594:	74 df                	je     0x409575
409596:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40959b:	39 75 10             	cmp    %esi,0x10(%ebp)
40959e:	76 14                	jbe    0x4095b4
4095a0:	e8 82 ab ff ff       	call   0x404127
4095a5:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4095ab:	e8 d7 96 ff ff       	call   0x402c87
4095b0:	8b c6                	mov    %esi,%eax
4095b2:	eb 5f                	jmp    0x409613
4095b4:	8b 75 08             	mov    0x8(%ebp),%esi
4095b7:	2b f1                	sub    %ecx,%esi
4095b9:	0f b7 04 0e          	movzwl (%esi,%ecx,1),%eax
4095bd:	83 f8 41             	cmp    $0x41,%eax
4095c0:	72 0d                	jb     0x4095cf
4095c2:	83 f8 5a             	cmp    $0x5a,%eax
4095c5:	77 08                	ja     0x4095cf
4095c7:	83 c0 20             	add    $0x20,%eax
4095ca:	0f b7 d0             	movzwl %ax,%edx
4095cd:	eb 02                	jmp    0x4095d1
4095cf:	8b d0                	mov    %eax,%edx
4095d1:	0f b7 01             	movzwl (%ecx),%eax
4095d4:	83 f8 41             	cmp    $0x41,%eax
4095d7:	72 0b                	jb     0x4095e4
4095d9:	83 f8 5a             	cmp    $0x5a,%eax