406111:	5b                   	pop    %ebx
406112:	8b 06                	mov    (%esi),%eax
406114:	0f b7 04 41          	movzwl (%ecx,%eax,2),%eax
406118:	89 45 fc             	mov    %eax,-0x4(%ebp)
40611b:	0f b7 c0             	movzwl %ax,%eax
40611e:	83 f8 2e             	cmp    $0x2e,%eax
406121:	0f 84 7a 01 00 00    	je     0x4062a1
406127:	83 f8 2b             	cmp    $0x2b,%eax
40612a:	0f 84 a3 81 03 00    	je     0x43e2d3
406130:	83 f8 2d             	cmp    $0x2d,%eax
406133:	0f 84 9a 81 03 00    	je     0x43e2d3
406139:	83 f8 2f             	cmp    $0x2f,%eax
40613c:	0f 8e a2 00 00 00    	jle    0x4061e4
406142:	83 f8 39             	cmp    $0x39,%eax
406145:	0f 8f 87 00 00 00    	jg     0x4061d2
40614b:	83 e3 ef             	and    $0xffffffef,%ebx
40614e:	83 cb 20             	or     $0x20,%ebx
406151:	8a 45 17             	mov    0x17(%ebp),%al
406154:	f6 c3 20             	test   $0x20,%bl
406157:	74 1c                	je     0x406175
406159:	8b 06                	mov    (%esi),%eax
40615b:	0f b7 0c 41          	movzwl (%ecx,%eax,2),%ecx
40615f:	40                   	inc    %eax
406160:	51                   	push   %ecx
406161:	8b cf                	mov    %edi,%ecx
406163:	89 06                	mov    %eax,(%esi)
406165:	e8 1a 19 00 00       	call   0x407a84
40616a:	8b 4d 08             	mov    0x8(%ebp),%ecx
40616d:	83 e3 df             	and    $0xffffffdf,%ebx
406170:	8b 55 0c             	mov    0xc(%ebp),%edx
406173:	eb 9d                	jmp    0x406112
406175:	f6 c3 10             	test   $0x10,%bl
406178:	0f 85 71 01 00 00    	jne    0x4062ef
40617e:	84 c0                	test   %al,%al
406180:	0f 85 2d 01 00 00    	jne    0x4062b3
406186:	ff 37                	push   (%edi)
406188:	e8 46 d6 01 00       	call   0x4237d3
40618d:	59                   	pop    %ecx
40618e:	33 c9                	xor    %ecx,%ecx
406190:	8b f8                	mov    %eax,%edi
406192:	66 83 7d 18 4a       	cmpw   $0x4a,0x18(%ebp)
406197:	8b da                	mov    %edx,%ebx
406199:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
40619e:	0f 84 a8 00 00 00    	je     0x40624c
4061a4:	3b d9                	cmp    %ecx,%ebx
4061a6:	0f 8f 6c 01 00 00    	jg     0x406318
4061ac:	7c 08                	jl     0x4061b6
4061ae:	3b f8                	cmp    %eax,%edi
4061b0:	0f 87 62 01 00 00    	ja     0x406318
4061b6:	6a 05                	push   $0x5
4061b8:	8b 75 10             	mov    0x10(%ebp),%esi
4061bb:	8b ce                	mov    %esi,%ecx
4061bd:	e8 50 fd ff ff       	call   0x405f12
4061c2:	89 3e                	mov    %edi,(%esi)
4061c4:	89 5e 04             	mov    %ebx,0x4(%esi)
4061c7:	b0 01                	mov    $0x1,%al
4061c9:	5f                   	pop    %edi
4061ca:	5e                   	pop    %esi
4061cb:	5b                   	pop    %ebx
4061cc:	8b e5                	mov    %ebp,%esp
4061ce:	5d                   	pop    %ebp
4061cf:	c2 14 00             	ret    $0x14
4061d2:	83 f8 45             	cmp    $0x45,%eax
4061d5:	0f 84 c9 80 03 00    	je     0x43e2a4
4061db:	83 f8 65             	cmp    $0x65,%eax
4061de:	0f 84 c0 80 03 00    	je     0x43e2a4
4061e4:	83 e0 df             	and    $0xffffffdf,%eax
4061e7:	83 f8 41             	cmp    $0x41,%eax
4061ea:	7d 10                	jge    0x4061fc
4061ec:	66 83 7d fc 5f       	cmpw   $0x5f,-0x4(%ebp)
4061f1:	0f 85 5a ff ff ff    	jne    0x406151
4061f7:	e9 be 80 03 00       	jmp    0x43e2ba
4061fc:	83 f8 5a             	cmp    $0x5a,%eax
4061ff:	7f eb                	jg     0x4061ec
406201:	e9 b4 80 03 00       	jmp    0x43e2ba
406206:	0f b7 44 51 02       	movzwl 0x2(%ecx,%edx,2),%eax
40620b:	83 f8 78             	cmp    $0x78,%eax
40620e:	74 09                	je     0x406219
406210:	83 f8 58             	cmp    $0x58,%eax
406213:	0f 85 f2 fe ff ff    	jne    0x40610b
406219:	8b 5d 14             	mov    0x14(%ebp),%ebx
40621c:	8d 42 02             	lea    0x2(%edx),%eax
40621f:	89 06                	mov    %eax,(%esi)
406221:	33 ff                	xor    %edi,%edi
406223:	8b 16                	mov    (%esi),%edx
406225:	6a 30                	push   $0x30
406227:	0f b7 04 51          	movzwl (%ecx,%edx,2),%eax
40622b:	59                   	pop    %ecx
40622c:	66 3b c1             	cmp    %cx,%ax
40622f:	72 25                	jb     0x406256
406231:	6a 39                	push   $0x39
406233:	59                   	pop    %ecx
406234:	66 3b c1             	cmp    %cx,%ax
406237:	77 1d                	ja     0x406256
406239:	50                   	push   %eax
40623a:	8d 42 01             	lea    0x1(%edx),%eax
40623d:	8b cb                	mov    %ebx,%ecx
40623f:	89 06                	mov    %eax,(%esi)
406241:	e8 3e 18 00 00       	call   0x407a84
406246:	8b 4d 08             	mov    0x8(%ebp),%ecx
406249:	47                   	inc    %edi
40624a:	eb d7                	jmp    0x406223
40624c:	b8 00 00 00 80       	mov    $0x80000000,%eax
406251:	e9 4e ff ff ff       	jmp    0x4061a4
406256:	83 f8 61             	cmp    $0x61,%eax
406259:	0f 83 29 80 03 00    	jae    0x43e288
40625f:	6a 41                	push   $0x41
406261:	59                   	pop    %ecx
406262:	66 3b c1             	cmp    %cx,%ax
406265:	0f 83 2b 80 03 00    	jae    0x43e296
40626b:	8b 0b                	mov    (%ebx),%ecx
40626d:	8d 55 f8             	lea    -0x8(%ebp),%edx
406270:	6a 10                	push   $0x10
406272:	e8 84 99 01 00       	call   0x41fbfb
406277:	59                   	pop    %ecx
406278:	84 c0                	test   %al,%al
40627a:	74 73                	je     0x4062ef
40627c:	8b 75 10             	mov    0x10(%ebp),%esi
40627f:	8b ce                	mov    %esi,%ecx
406281:	83 ff 08             	cmp    $0x8,%edi
406284:	0f 8f 80 00 00 00    	jg     0x40630a
40628a:	6a 05                	push   $0x5
40628c:	e8 81 fc ff ff       	call   0x405f12
406291:	8b 45 f8             	mov    -0x8(%ebp),%eax
406294:	89 06                	mov    %eax,(%esi)
406296:	8b 45 fc             	mov    -0x4(%ebp),%eax
406299:	89 46 04             	mov    %eax,0x4(%esi)
40629c:	e9 26 ff ff ff       	jmp    0x4061c7
4062a1:	f6 c3 02             	test   $0x2,%bl
4062a4:	74 03                	je     0x4062a9
4062a6:	6a 25                	push   $0x25
4062a8:	5b                   	pop    %ebx
4062a9:	b0 01                	mov    $0x1,%al
4062ab:	88 45 17             	mov    %al,0x17(%ebp)
4062ae:	e9 a1 fe ff ff       	jmp    0x406154
4062b3:	ba 80 fb 48 00       	mov    $0x48fb80,%edx
4062b8:	8b cf                	mov    %edi,%ecx
4062ba:	e8 68 aa 01 00       	call   0x420d27
4062bf:	84 c0                	test   %al,%al
4062c1:	75 4e                	jne    0x406311
4062c3:	8b 75 10             	mov    0x10(%ebp),%esi
4062c6:	8b ce                	mov    %esi,%ecx
4062c8:	6a 20                	push   $0x20
4062ca:	e8 43 fc ff ff       	call   0x405f12
4062cf:	ff 37                	push   (%edi)
4062d1:	e8 a3 dc 01 00       	call   0x423f79
4062d6:	dd 1e                	fstpl  (%esi)
4062d8:	59                   	pop    %ecx
4062d9:	e9 e9 fe ff ff       	jmp    0x4061c7
4062de:	66 83 7d 18 33       	cmpw   $0x33,0x18(%ebp)
4062e3:	75 11                	jne    0x4062f6
4062e5:	0f b7 44 41 02       	movzwl 0x2(%ecx,%eax,2),%eax
4062ea:	66 3b c2             	cmp    %dx,%ax
4062ed:	76 11                	jbe    0x406300
4062ef:	32 c0                	xor    %al,%al
4062f1:	e9 d3 fe ff ff       	jmp    0x4061c9
4062f6:	85 c0                	test   %eax,%eax
4062f8:	0f 85 f1 fd ff ff    	jne    0x4060ef
4062fe:	eb e5                	jmp    0x4062e5
406300:	66 3b c3             	cmp    %bx,%ax
406303:	72 ea                	jb     0x4062ef
406305:	e9 e5 fd ff ff       	jmp    0x4060ef
40630a:	6a 10                	push   $0x10
40630c:	e9 7b ff ff ff       	jmp    0x40628c
406311:	8b 45 0c             	mov    0xc(%ebp),%eax
406314:	89 06                	mov    %eax,(%esi)
406316:	eb d7                	jmp    0x4062ef
406318:	6a 10                	push   $0x10
40631a:	e9 99 fe ff ff       	jmp    0x4061b8
40631f:	55                   	push   %ebp
406320:	8b ec                	mov    %esp,%ebp
406322:	51                   	push   %ecx
406323:	8b 4d 14             	mov    0x14(%ebp),%ecx
406326:	53                   	push   %ebx
406327:	56                   	push   %esi
406328:	57                   	push   %edi
406329:	e8 be 1b 00 00       	call   0x407eec
40632e:	8b 75 10             	mov    0x10(%ebp),%esi
406331:	33 c9                	xor    %ecx,%ecx
406333:	8b 7d 0c             	mov    0xc(%ebp),%edi
406336:	8b 1e                	mov    (%esi),%ebx
406338:	0f b7 14 5f          	movzwl (%edi,%ebx,2),%edx
40633c:	8d 43 01             	lea    0x1(%ebx),%eax
40633f:	89 55 10             	mov    %edx,0x10(%ebp)
406342:	89 06                	mov    %eax,(%esi)
406344:	66 39 0c 47          	cmp    %cx,(%edi,%eax,2)
406348:	0f 84 96 7f 03 00    	je     0x43e2e4
40634e:	8b 0e                	mov    (%esi),%ecx
406350:	0f b7 04 4f          	movzwl (%edi,%ecx,2),%eax
406354:	66 3b c2             	cmp    %dx,%ax
406357:	74 1e                	je     0x406377
406359:	8b 4d 14             	mov    0x14(%ebp),%ecx
40635c:	50                   	push   %eax
40635d:	e8 22 17 00 00       	call   0x407a84
406362:	ff 06                	incl   (%esi)
406364:	8b 06                	mov    (%esi),%eax
406366:	33 c9                	xor    %ecx,%ecx
406368:	66 39 0c 47          	cmp    %cx,(%edi,%eax,2)
40636c:	0f 84 72 7f 03 00    	je     0x43e2e4
406372:	8b 55 10             	mov    0x10(%ebp),%edx
406375:	eb d7                	jmp    0x40634e
406377:	66 39 54 4f 02       	cmp    %dx,0x2(%edi,%ecx,2)
40637c:	74 0c                	je     0x40638a
40637e:	ff 06                	incl   (%esi)
406380:	33 c0                	xor    %eax,%eax
406382:	5f                   	pop    %edi
406383:	5e                   	pop    %esi
406384:	5b                   	pop    %ebx
406385:	59                   	pop    %ecx
406386:	5d                   	pop    %ebp
406387:	c2 10 00             	ret    $0x10
40638a:	8b 4d 14             	mov    0x14(%ebp),%ecx
40638d:	50                   	push   %eax
40638e:	e8 f1 16 00 00       	call   0x407a84
406393:	83 06 02             	addl   $0x2,(%esi)
406396:	eb cc                	jmp    0x406364
406398:	cc                   	int3
406399:	cc                   	int3
40639a:	cc                   	int3
40639b:	cc                   	int3
40639c:	cc                   	int3
40639d:	cc                   	int3
40639e:	cc                   	int3
40639f:	cc                   	int3
4063a0:	55                   	push   %ebp
4063a1:	8b ec                	mov    %esp,%ebp
4063a3:	83 ec 28             	sub    $0x28,%esp
4063a6:	53                   	push   %ebx
4063a7:	56                   	push   %esi
4063a8:	83 c8 ff             	or     $0xffffffff,%eax
4063ab:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4063ae:	57                   	push   %edi
4063af:	66 89 45 f0          	mov    %ax,-0x10(%ebp)
4063b3:	33 ff                	xor    %edi,%edi
4063b5:	33 c0                	xor    %eax,%eax
4063b7:	89 7d f8             	mov    %edi,-0x8(%ebp)
4063ba:	6a 64                	push   $0x64
4063bc:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
4063c0:	e8 b1 17 00 00       	call   0x407b76
4063c5:	8b 4d 10             	mov    0x10(%ebp),%ecx
4063c8:	e8 13 12 00 00       	call   0x4075e0
4063cd:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4063d0:	66 39 3b             	cmp    %di,(%ebx)
4063d3:	0f 84 f1 01 00 00    	je     0x4065ca
4063d9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
4063e0:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
4063e4:	83 f8 20             	cmp    $0x20,%eax
4063e7:	0f 84 f2 00 00 00    	je     0x4064df
4063ed:	83 f8 09             	cmp    $0x9,%eax
4063f0:	0f 84 e9 00 00 00    	je     0x4064df
4063f6:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
4063fa:	89 7d f8             	mov    %edi,-0x8(%ebp)
4063fd:	66 85 c0             	test   %ax,%ax
406400:	0f 84 c4 01 00 00    	je     0x4065ca
406406:	8b f0                	mov    %eax,%esi
406408:	66 89 7d f2          	mov    %di,-0xe(%ebp)
40640c:	83 fe 30             	cmp    $0x30,%esi
40640f:	73 6d                	jae    0x40647e
406411:	83 fe 2e             	cmp    $0x2e,%esi
406414:	74 6d                	je     0x406483
406416:	83 fe 41             	cmp    $0x41,%esi
406419:	0f 83 c6 00 00 00    	jae    0x4064e5
40641f:	83 fe 61             	cmp    $0x61,%esi
406422:	0f 83 d9 01 00 00    	jae    0x406601
406428:	83 fe 5f             	cmp    $0x5f,%esi
40642b:	0f 84 d9 01 00 00    	je     0x40660a
406431:	8b c6                	mov    %esi,%eax
406433:	83 f8 24             	cmp    $0x24,%eax
406436:	0f 84 b7 00 00 00    	je     0x4064f3
40643c:	83 f8 3d             	cmp    $0x3d,%eax
40643f:	0f 84 01 02 00 00    	je     0x406646
406445:	83 e8 1a             	sub    $0x1a,%eax
406448:	83 f8 44             	cmp    $0x44,%eax
40644b:	0f 87 ce 7f 03 00    	ja     0x43e41f
406451:	0f b6 80 54 69 40 00 	movzbl 0x406954(%eax),%eax
406458:	ff 24 85 08 69 40 00 	jmp    *0x406908(,%eax,4)
40645f:	6a 4f                	push   $0x4f
406461:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406464:	e8 a9 fa ff ff       	call   0x405f12
406469:	8b 4d 10             	mov    0x10(%ebp),%ecx
40646c:	8d 45 e8             	lea    -0x18(%ebp),%eax
40646f:	50                   	push   %eax
406470:	e8 fa 11 00 00       	call   0x40766f
406475:	47                   	inc    %edi
406476:	89 7d f8             	mov    %edi,-0x8(%ebp)
406479:	e9 41 01 00 00       	jmp    0x4065bf
40647e:	83 fe 39             	cmp    $0x39,%esi
406481:	77 8e                	ja     0x406411
406483:	8b 7d 10             	mov    0x10(%ebp),%edi
406486:	b8 40 00 00 00       	mov    $0x40,%eax
40648b:	89 45 0c             	mov    %eax,0xc(%ebp)
40648e:	8b 4f 08             	mov    0x8(%edi),%ecx
406491:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406494:	85 c9                	test   %ecx,%ecx
406496:	74 0e                	je     0x4064a6
406498:	8b 47 04             	mov    0x4(%edi),%eax
40649b:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
40649f:	0f b7 40 08          	movzwl 0x8(%eax),%eax
4064a3:	89 45 0c             	mov    %eax,0xc(%ebp)
4064a6:	50                   	push   %eax
4064a7:	8d 45 d8             	lea    -0x28(%ebp),%eax
4064aa:	50                   	push   %eax
4064ab:	8d 45 e8             	lea    -0x18(%ebp),%eax
4064ae:	50                   	push   %eax
4064af:	8d 45 f8             	lea    -0x8(%ebp),%eax
4064b2:	50                   	push   %eax
4064b3:	53                   	push   %ebx
4064b4:	e8 13 fc ff ff       	call   0x4060cc
4064b9:	3c 01                	cmp    $0x1,%al
4064bb:	0f 85 c0 03 00 00    	jne    0x406881
4064c1:	66 83 7d 0c 4a       	cmpw   $0x4a,0xc(%ebp)
4064c6:	0f 84 5f 03 00 00    	je     0x40682b
4064cc:	8d 45 e8             	lea    -0x18(%ebp),%eax
4064cf:	8b cf                	mov    %edi,%ecx
4064d1:	50                   	push   %eax
4064d2:	e8 98 11 00 00       	call   0x40766f
4064d7:	8b 7d f8             	mov    -0x8(%ebp),%edi
4064da:	e9 e0 00 00 00       	jmp    0x4065bf
4064df:	47                   	inc    %edi
4064e0:	e9 fb fe ff ff       	jmp    0x4063e0
4064e5:	83 fe 5a             	cmp    $0x5a,%esi
4064e8:	0f 87 31 ff ff ff    	ja     0x40641f
4064ee:	e9 17 01 00 00       	jmp    0x40660a
4064f3:	ff 75 10             	push   0x10(%ebp)
4064f6:	e8 a5 fa ff ff       	call   0x405fa0
4064fb:	85 c0                	test   %eax,%eax
4064fd:	0f 88 ff 03 00 00    	js     0x406902
406503:	83 fe 24             	cmp    $0x24,%esi
406506:	0f 85 b9 02 00 00    	jne    0x4067c5
40650c:	b8 33 00 00 00       	mov    $0x33,%eax
406511:	50                   	push   %eax
406512:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406515:	e8 f8 f9 ff ff       	call   0x405f12
40651a:	47                   	inc    %edi
40651b:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40651e:	89 7d f8             	mov    %edi,-0x8(%ebp)
406521:	e8 c6 19 00 00       	call   0x407eec
406526:	0f b7 34 7b          	movzwl (%ebx,%edi,2),%esi
40652a:	66 83 fe 5a          	cmp    $0x5a,%si
40652e:	76 3e                	jbe    0x40656e
406530:	66 83 fe 61          	cmp    $0x61,%si
406534:	72 40                	jb     0x406576
406536:	66 83 fe 7a          	cmp    $0x7a,%si
40653a:	77 3a                	ja     0x406576
40653c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40653f:	8b 01                	mov    (%ecx),%eax
406541:	83 f8 01             	cmp    $0x1,%eax
406544:	0f 8f 71 7e 03 00    	jg     0x43e3bb
40654a:	8b 45 dc             	mov    -0x24(%ebp),%eax
40654d:	8d 4d d8             	lea    -0x28(%ebp),%ecx