4081f4:	50                   	push   %eax
4081f5:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
4081fb:	0f be c2             	movsbl %dl,%eax
4081fe:	ff b5 e8 fd ff ff    	push   -0x218(%ebp)
408204:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40820a:	50                   	push   %eax
40820b:	ff b5 a0 fd ff ff    	push   -0x260(%ebp)
408211:	8d 85 80 fd ff ff    	lea    -0x280(%ebp),%eax
408217:	53                   	push   %ebx
408218:	50                   	push   %eax
408219:	ff 35 18 2e 41 00    	push   0x412e18
40821f:	ff d6                	call   *%esi
408221:	ff d0                	call   *%eax
408223:	8b bd f0 fd ff ff    	mov    -0x210(%ebp),%edi
408229:	83 c4 1c             	add    $0x1c,%esp
40822c:	81 e7 80 00 00 00    	and    $0x80,%edi
408232:	74 1d                	je     0x408251
408234:	83 bd e8 fd ff ff 00 	cmpl   $0x0,-0x218(%ebp)
40823b:	75 14                	jne    0x408251
40823d:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
408243:	50                   	push   %eax
408244:	53                   	push   %ebx
408245:	ff 35 24 2e 41 00    	push   0x412e24
40824b:	ff d6                	call   *%esi
40824d:	ff d0                	call   *%eax
40824f:	59                   	pop    %ecx
408250:	59                   	pop    %ecx
408251:	80 bd ef fd ff ff 67 	cmpb   $0x67,-0x211(%ebp)
408258:	75 18                	jne    0x408272
40825a:	85 ff                	test   %edi,%edi
40825c:	75 14                	jne    0x408272
40825e:	8d 85 a4 fd ff ff    	lea    -0x25c(%ebp),%eax
408264:	50                   	push   %eax
408265:	53                   	push   %ebx
408266:	ff 35 20 2e 41 00    	push   0x412e20
40826c:	ff d6                	call   *%esi
40826e:	ff d0                	call   *%eax
408270:	59                   	pop    %ecx
408271:	59                   	pop    %ecx
408272:	80 3b 2d             	cmpb   $0x2d,(%ebx)
408275:	75 11                	jne    0x408288
408277:	81 8d f0 fd ff ff 00 	orl    $0x100,-0x210(%ebp)
40827e:	01 00 00
408281:	43                   	inc    %ebx
408282:	89 9d e0 fd ff ff    	mov    %ebx,-0x220(%ebp)
408288:	53                   	push   %ebx
408289:	e9 c1 fd ff ff       	jmp    0x40804f
40828e:	c7 85 e8 fd ff ff 08 	movl   $0x8,-0x218(%ebp)
408295:	00 00 00
408298:	89 8d b4 fd ff ff    	mov    %ecx,-0x24c(%ebp)
40829e:	eb 2a                	jmp    0x4082ca
4082a0:	83 e8 73             	sub    $0x73,%eax
4082a3:	0f 84 6e fc ff ff    	je     0x407f17
4082a9:	48                   	dec    %eax
4082aa:	48                   	dec    %eax
4082ab:	0f 84 58 fe ff ff    	je     0x408109
4082b1:	83 e8 03             	sub    $0x3,%eax
4082b4:	0f 85 bb 01 00 00    	jne    0x408475
4082ba:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
4082c0:	c7 85 b4 fd ff ff 27 	movl   $0x27,-0x24c(%ebp)
4082c7:	00 00 00
4082ca:	f6 85 f0 fd ff ff 80 	testb  $0x80,-0x210(%ebp)
4082d1:	c7 85 d8 fd ff ff 10 	movl   $0x10,-0x228(%ebp)
4082d8:	00 00 00
4082db:	0f 84 32 fe ff ff    	je     0x408113
4082e1:	8a 85 b4 fd ff ff    	mov    -0x24c(%ebp),%al
4082e7:	04 51                	add    $0x51,%al
4082e9:	c6 85 d4 fd ff ff 30 	movb   $0x30,-0x22c(%ebp)
4082f0:	88 85 d5 fd ff ff    	mov    %al,-0x22b(%ebp)
4082f6:	c7 85 cc fd ff ff 02 	movl   $0x2,-0x234(%ebp)
4082fd:	00 00 00
408300:	e9 0e fe ff ff       	jmp    0x408113
408305:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40830b:	0f 85 14 fe ff ff    	jne    0x408125
408311:	83 c7 04             	add    $0x4,%edi
408314:	f6 c1 20             	test   $0x20,%cl
408317:	74 18                	je     0x408331
408319:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
40831f:	f6 c1 40             	test   $0x40,%cl
408322:	74 06                	je     0x40832a
408324:	0f bf 47 fc          	movswl -0x4(%edi),%eax
408328:	eb 04                	jmp    0x40832e
40832a:	0f b7 47 fc          	movzwl -0x4(%edi),%eax
40832e:	99                   	cltd
40832f:	eb 13                	jmp    0x408344
408331:	8b 47 fc             	mov    -0x4(%edi),%eax
408334:	f6 c1 40             	test   $0x40,%cl
408337:	74 03                	je     0x40833c
408339:	99                   	cltd
40833a:	eb 02                	jmp    0x40833e
40833c:	33 d2                	xor    %edx,%edx
40833e:	89 bd e4 fd ff ff    	mov    %edi,-0x21c(%ebp)
408344:	f6 c1 40             	test   $0x40,%cl
408347:	74 1a                	je     0x408363
408349:	85 d2                	test   %edx,%edx
40834b:	7f 16                	jg     0x408363
40834d:	7c 04                	jl     0x408353
40834f:	85 c0                	test   %eax,%eax
408351:	73 10                	jae    0x408363
408353:	f7 d8                	neg    %eax
408355:	13 d6                	adc    %esi,%edx
408357:	f7 da                	neg    %edx
408359:	81 8d f0 fd ff ff 00 	orl    $0x100,-0x210(%ebp)
408360:	01 00 00
408363:	f7 85 f0 fd ff ff 00 	testl  $0x9000,-0x210(%ebp)
40836a:	90 00 00
40836d:	8b fa                	mov    %edx,%edi
40836f:	8b d8                	mov    %eax,%ebx
408371:	75 02                	jne    0x408375
408373:	33 ff                	xor    %edi,%edi
408375:	39 b5 e8 fd ff ff    	cmp    %esi,-0x218(%ebp)
40837b:	7d 0c                	jge    0x408389
40837d:	c7 85 e8 fd ff ff 01 	movl   $0x1,-0x218(%ebp)
408384:	00 00 00
408387:	eb 1a                	jmp    0x4083a3
408389:	83 a5 f0 fd ff ff f7 	andl   $0xfffffff7,-0x210(%ebp)
408390:	b8 00 02 00 00       	mov    $0x200,%eax
408395:	39 85 e8 fd ff ff    	cmp    %eax,-0x218(%ebp)
40839b:	7e 06                	jle    0x4083a3
40839d:	89 85 e8 fd ff ff    	mov    %eax,-0x218(%ebp)
4083a3:	8b c3                	mov    %ebx,%eax
4083a5:	0b c7                	or     %edi,%eax
4083a7:	75 06                	jne    0x4083af
4083a9:	21 b5 cc fd ff ff    	and    %esi,-0x234(%ebp)
4083af:	8d 75 f3             	lea    -0xd(%ebp),%esi
4083b2:	8b 85 e8 fd ff ff    	mov    -0x218(%ebp),%eax
4083b8:	ff 8d e8 fd ff ff    	decl   -0x218(%ebp)
4083be:	85 c0                	test   %eax,%eax
4083c0:	7f 06                	jg     0x4083c8
4083c2:	8b c3                	mov    %ebx,%eax
4083c4:	0b c7                	or     %edi,%eax
4083c6:	74 2d                	je     0x4083f5
4083c8:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
4083ce:	99                   	cltd
4083cf:	52                   	push   %edx
4083d0:	50                   	push   %eax
4083d1:	57                   	push   %edi
4083d2:	53                   	push   %ebx
4083d3:	e8 98 29 00 00       	call   0x40ad70
4083d8:	83 c1 30             	add    $0x30,%ecx
4083db:	89 9d a0 fd ff ff    	mov    %ebx,-0x260(%ebp)
4083e1:	8b d8                	mov    %eax,%ebx
4083e3:	8b fa                	mov    %edx,%edi
4083e5:	83 f9 39             	cmp    $0x39,%ecx
4083e8:	7e 06                	jle    0x4083f0
4083ea:	03 8d b4 fd ff ff    	add    -0x24c(%ebp),%ecx
4083f0:	88 0e                	mov    %cl,(%esi)
4083f2:	4e                   	dec    %esi
4083f3:	eb bd                	jmp    0x4083b2
4083f5:	8d 45 f3             	lea    -0xd(%ebp),%eax
4083f8:	2b c6                	sub    %esi,%eax
4083fa:	46                   	inc    %esi
4083fb:	f7 85 f0 fd ff ff 00 	testl  $0x200,-0x210(%ebp)
408402:	02 00 00
408405:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
40840b:	89 b5 e0 fd ff ff    	mov    %esi,-0x220(%ebp)
408411:	74 62                	je     0x408475
408413:	85 c0                	test   %eax,%eax
408415:	74 07                	je     0x40841e
408417:	8b ce                	mov    %esi,%ecx
408419:	80 39 30             	cmpb   $0x30,(%ecx)
40841c:	74 57                	je     0x408475
40841e:	ff 8d e0 fd ff ff    	decl   -0x220(%ebp)
408424:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
40842a:	c6 01 30             	movb   $0x30,(%ecx)
40842d:	40                   	inc    %eax
40842e:	eb 3f                	jmp    0x40846f
408430:	49                   	dec    %ecx
408431:	66 39 30             	cmp    %si,(%eax)
408434:	74 07                	je     0x40843d
408436:	83 c0 02             	add    $0x2,%eax
408439:	85 c9                	test   %ecx,%ecx
40843b:	75 f3                	jne    0x408430
40843d:	2b 85 e0 fd ff ff    	sub    -0x220(%ebp),%eax
408443:	d1 f8                	sar    $1,%eax
408445:	eb 28                	jmp    0x40846f
408447:	85 ff                	test   %edi,%edi
408449:	75 0b                	jne    0x408456
40844b:	a1 e0 2d 41 00       	mov    0x412de0,%eax
408450:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
408456:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
40845c:	eb 07                	jmp    0x408465
40845e:	49                   	dec    %ecx
40845f:	80 38 00             	cmpb   $0x0,(%eax)
408462:	74 05                	je     0x408469
408464:	40                   	inc    %eax
408465:	85 c9                	test   %ecx,%ecx
408467:	75 f5                	jne    0x40845e
408469:	2b 85 e0 fd ff ff    	sub    -0x220(%ebp),%eax
40846f:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
408475:	83 bd bc fd ff ff 00 	cmpl   $0x0,-0x244(%ebp)
40847c:	0f 85 b8 01 00 00    	jne    0x40863a
408482:	8b 8d f0 fd ff ff    	mov    -0x210(%ebp),%ecx
408488:	f6 c1 40             	test   $0x40,%cl
40848b:	74 35                	je     0x4084c2
40848d:	f7 c1 00 01 00 00    	test   $0x100,%ecx
408493:	74 09                	je     0x40849e
408495:	c6 85 d4 fd ff ff 2d 	movb   $0x2d,-0x22c(%ebp)
40849c:	eb 1a                	jmp    0x4084b8
40849e:	f6 c1 01             	test   $0x1,%cl
4084a1:	74 09                	je     0x4084ac
4084a3:	c6 85 d4 fd ff ff 2b 	movb   $0x2b,-0x22c(%ebp)
4084aa:	eb 0c                	jmp    0x4084b8
4084ac:	f6 c1 02             	test   $0x2,%cl
4084af:	74 11                	je     0x4084c2
4084b1:	c6 85 d4 fd ff ff 20 	movb   $0x20,-0x22c(%ebp)
4084b8:	c7 85 cc fd ff ff 01 	movl   $0x1,-0x234(%ebp)
4084bf:	00 00 00
4084c2:	8b 85 c8 fd ff ff    	mov    -0x238(%ebp),%eax
4084c8:	2b 85 d8 fd ff ff    	sub    -0x228(%ebp),%eax
4084ce:	2b 85 cc fd ff ff    	sub    -0x234(%ebp),%eax
4084d4:	89 85 a0 fd ff ff    	mov    %eax,-0x260(%ebp)
4084da:	f6 c1 0c             	test   $0xc,%cl
4084dd:	75 25                	jne    0x408504
4084df:	8b f8                	mov    %eax,%edi
4084e1:	eb 1d                	jmp    0x408500
4084e3:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
4084e9:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
4084ef:	b0 20                	mov    $0x20,%al
4084f1:	4f                   	dec    %edi
4084f2:	e8 94 46 00 00       	call   0x40cb8b
4084f7:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
4084fe:	74 04                	je     0x408504
408500:	85 ff                	test   %edi,%edi
408502:	7f df                	jg     0x4084e3
408504:	ff b5 cc fd ff ff    	push   -0x234(%ebp)
40850a:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
408510:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx
408516:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
40851c:	50                   	push   %eax
40851d:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
408523:	e8 32 f5 ff ff       	call   0x407a5a
408528:	f6 85 f0 fd ff ff 08 	testb  $0x8,-0x210(%ebp)
40852f:	59                   	pop    %ecx
408530:	59                   	pop    %ecx
408531:	74 2e                	je     0x408561
408533:	f6 85 f0 fd ff ff 04 	testb  $0x4,-0x210(%ebp)
40853a:	75 25                	jne    0x408561
40853c:	8b bd a0 fd ff ff    	mov    -0x260(%ebp),%edi
408542:	eb 19                	jmp    0x40855d
408544:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
40854a:	8b cb                	mov    %ebx,%ecx
40854c:	b0 30                	mov    $0x30,%al
40854e:	4f                   	dec    %edi
40854f:	e8 37 46 00 00       	call   0x40cb8b
408554:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
40855b:	74 04                	je     0x408561
40855d:	85 ff                	test   %edi,%edi
40855f:	7f e3                	jg     0x408544
408561:	83 bd c4 fd ff ff 00 	cmpl   $0x0,-0x23c(%ebp)
408568:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
40856e:	74 75                	je     0x4085e5
408570:	85 c0                	test   %eax,%eax
408572:	7e 71                	jle    0x4085e5
408574:	8b b5 e0 fd ff ff    	mov    -0x220(%ebp),%esi
40857a:	89 85 98 fd ff ff    	mov    %eax,-0x268(%ebp)
408580:	0f b7 06             	movzwl (%esi),%eax
408583:	ff 8d 98 fd ff ff    	decl   -0x268(%ebp)
408589:	50                   	push   %eax
40858a:	6a 06                	push   $0x6
40858c:	8d 45 f4             	lea    -0xc(%ebp),%eax
40858f:	50                   	push   %eax
408590:	8d 85 90 fd ff ff    	lea    -0x270(%ebp),%eax
408596:	50                   	push   %eax
408597:	83 c6 02             	add    $0x2,%esi
40859a:	e8 63 56 00 00       	call   0x40dc02
40859f:	83 c4 10             	add    $0x10,%esp
4085a2:	85 c0                	test   %eax,%eax
4085a4:	75 36                	jne    0x4085dc
4085a6:	39 85 90 fd ff ff    	cmp    %eax,-0x270(%ebp)
4085ac:	74 2e                	je     0x4085dc
4085ae:	ff b5 90 fd ff ff    	push   -0x270(%ebp)
4085b4:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
4085ba:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx
4085c0:	8d 45 f4             	lea    -0xc(%ebp),%eax
4085c3:	50                   	push   %eax
4085c4:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
4085ca:	e8 8b f4 ff ff       	call   0x407a5a
4085cf:	83 bd 98 fd ff ff 00 	cmpl   $0x0,-0x268(%ebp)
4085d6:	59                   	pop    %ecx
4085d7:	59                   	pop    %ecx
4085d8:	75 a6                	jne    0x408580
4085da:	eb 23                	jmp    0x4085ff
4085dc:	83 8d dc fd ff ff ff 	orl    $0xffffffff,-0x224(%ebp)
4085e3:	eb 1a                	jmp    0x4085ff
4085e5:	8b bd 94 fd ff ff    	mov    -0x26c(%ebp),%edi
4085eb:	50                   	push   %eax
4085ec:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
4085f2:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
4085f8:	e8 5d f4 ff ff       	call   0x407a5a
4085fd:	59                   	pop    %ecx
4085fe:	59                   	pop    %ecx
4085ff:	83 bd dc fd ff ff 00 	cmpl   $0x0,-0x224(%ebp)
408606:	7c 32                	jl     0x40863a
408608:	f6 85 f0 fd ff ff 04 	testb  $0x4,-0x210(%ebp)
40860f:	74 29                	je     0x40863a
408611:	8b bd a0 fd ff ff    	mov    -0x260(%ebp),%edi
408617:	eb 1d                	jmp    0x408636
408619:	8b 8d d0 fd ff ff    	mov    -0x230(%ebp),%ecx
40861f:	8d b5 dc fd ff ff    	lea    -0x224(%ebp),%esi
408625:	b0 20                	mov    $0x20,%al
408627:	4f                   	dec    %edi
408628:	e8 5e 45 00 00       	call   0x40cb8b
40862d:	83 bd dc fd ff ff ff 	cmpl   $0xffffffff,-0x224(%ebp)
408634:	74 04                	je     0x40863a
408636:	85 ff                	test   %edi,%edi
408638:	7f df                	jg     0x408619
40863a:	83 bd b8 fd ff ff 00 	cmpl   $0x0,-0x248(%ebp)
408641:	74 13                	je     0x408656
408643:	ff b5 b8 fd ff ff    	push   -0x248(%ebp)
408649:	e8 1d 99 ff ff       	call   0x401f6b
40864e:	83 a5 b8 fd ff ff 00 	andl   $0x0,-0x248(%ebp)
408655:	59                   	pop    %ecx
408656:	8b 9d c0 fd ff ff    	mov    -0x240(%ebp),%ebx
40865c:	8a 03                	mov    (%ebx),%al
40865e:	88 85 ef fd ff ff    	mov    %al,-0x211(%ebp)
408664:	84 c0                	test   %al,%al
408666:	74 13                	je     0x40867b
408668:	8b 8d 8c fd ff ff    	mov    -0x274(%ebp),%ecx
40866e:	8b bd e4 fd ff ff    	mov    -0x21c(%ebp),%edi
408674:	8a d0                	mov    %al,%dl
408676:	e9 72 f5 ff ff       	jmp    0x407bed
40867b:	80 bd b0 fd ff ff 00 	cmpb   $0x0,-0x250(%ebp)
408682:	74 0a                	je     0x40868e
408684:	8b 85 ac fd ff ff    	mov    -0x254(%ebp),%eax
40868a:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40868e:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
408694:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408697:	5f                   	pop    %edi
408698:	5e                   	pop    %esi
408699:	33 cd                	xor    %ebp,%ecx
40869b:	5b                   	pop    %ebx
40869c:	e8 03 97 ff ff       	call   0x401da4
4086a1:	c9                   	leave
4086a2:	c3                   	ret
4086a3:	90                   	nop
4086a4:	3e 7e 40             	jle,pt 0x4086e7
4086a7:	00 3d 7c 40 00 6d    	add    %bh,0x6d00407c
4086ad:	7c 40                	jl     0x4086ef
4086af:	00 cb                	add    %cl,%bl
4086b1:	7c 40                	jl     0x4086f3
4086b3:	00 17                	add    %dl,(%edi)
4086b5:	7d 40                	jge    0x4086f7
4086b7:	00 22                	add    %ah,(%edx)
4086b9:	7d 40                	jge    0x4086fb
4086bb:	00 68 7d             	add    %ch,0x7d(%eax)
4086be:	40                   	inc    %eax
4086bf:	00 98 7e 40 00 83    	add    %bl,-0x7cffbf82(%eax)
4086c5:	25 fc 45 41 00       	and    $0x4145fc,%eax
4086ca:	00 c3                	add    %al,%bl