415f7e:	89 45 b4             	mov    %eax,-0x4c(%ebp)
415f81:	8b f3                	mov    %ebx,%esi
415f83:	8b 45 24             	mov    0x24(%ebp),%eax
415f86:	8b 00                	mov    (%eax),%eax
415f88:	8b 80 84 00 00 00    	mov    0x84(%eax),%eax
415f8e:	8b 00                	mov    (%eax),%eax
415f90:	3a 10                	cmp    (%eax),%dl
415f92:	0f 84 49 ff ff ff    	je     0x415ee1
415f98:	80 fa 2b             	cmp    $0x2b,%dl
415f9b:	0f 84 74 ff ff ff    	je     0x415f15
415fa1:	80 fa 2d             	cmp    $0x2d,%dl
415fa4:	0f 84 6b ff ff ff    	je     0x415f15
415faa:	e9 45 ff ff ff       	jmp    0x415ef4
415faf:	33 c0                	xor    %eax,%eax
415fb1:	40                   	inc    %eax
415fb2:	89 45 9c             	mov    %eax,-0x64(%ebp)
415fb5:	89 45 a8             	mov    %eax,-0x58(%ebp)
415fb8:	8b 45 b4             	mov    -0x4c(%ebp),%eax
415fbb:	85 c0                	test   %eax,%eax
415fbd:	75 17                	jne    0x415fd6
415fbf:	80 fa 30             	cmp    $0x30,%dl
415fc2:	75 15                	jne    0x415fd9
415fc4:	8b 45 ac             	mov    -0x54(%ebp),%eax
415fc7:	8a 11                	mov    (%ecx),%dl
415fc9:	48                   	dec    %eax
415fca:	41                   	inc    %ecx
415fcb:	80 fa 30             	cmp    $0x30,%dl
415fce:	74 f7                	je     0x415fc7
415fd0:	89 45 ac             	mov    %eax,-0x54(%ebp)
415fd3:	8b 45 b4             	mov    -0x4c(%ebp),%eax
415fd6:	80 fa 30             	cmp    $0x30,%dl
415fd9:	7c 25                	jl     0x416000
415fdb:	8b 75 ac             	mov    -0x54(%ebp),%esi
415fde:	80 fa 39             	cmp    $0x39,%dl
415fe1:	7f 15                	jg     0x415ff8
415fe3:	83 f8 19             	cmp    $0x19,%eax
415fe6:	73 08                	jae    0x415ff0
415fe8:	80 ea 30             	sub    $0x30,%dl
415feb:	40                   	inc    %eax
415fec:	88 17                	mov    %dl,(%edi)
415fee:	47                   	inc    %edi
415fef:	4e                   	dec    %esi
415ff0:	8a 11                	mov    (%ecx),%dl
415ff2:	41                   	inc    %ecx
415ff3:	80 fa 30             	cmp    $0x30,%dl
415ff6:	7d e6                	jge    0x415fde
415ff8:	89 75 ac             	mov    %esi,-0x54(%ebp)
415ffb:	89 45 b4             	mov    %eax,-0x4c(%ebp)
415ffe:	8b f3                	mov    %ebx,%esi
416000:	80 fa 2b             	cmp    $0x2b,%dl
416003:	0f 84 0c ff ff ff    	je     0x415f15
416009:	80 fa 2d             	cmp    $0x2d,%dl
41600c:	0f 84 03 ff ff ff    	je     0x415f15
416012:	80 fa 43             	cmp    $0x43,%dl
416015:	7e 15                	jle    0x41602c
416017:	80 fa 45             	cmp    $0x45,%dl
41601a:	0f 8e ee fe ff ff    	jle    0x415f0e
416020:	80 ea 64             	sub    $0x64,%dl
416023:	80 fa 01             	cmp    $0x1,%dl
416026:	0f 86 e2 fe ff ff    	jbe    0x415f0e
41602c:	49                   	dec    %ecx
41602d:	e9 02 01 00 00       	jmp    0x416134
416032:	33 c0                	xor    %eax,%eax
416034:	40                   	inc    %eax
416035:	80 ea 30             	sub    $0x30,%dl
416038:	89 45 a8             	mov    %eax,-0x58(%ebp)
41603b:	80 fa 09             	cmp    $0x9,%dl
41603e:	0f 87 02 ff ff ff    	ja     0x415f46
416044:	6a 04                	push   $0x4
416046:	e9 2f fe ff ff       	jmp    0x415e7a
41604b:	8d 41 fe             	lea    -0x2(%ecx),%eax
41604e:	89 45 b0             	mov    %eax,-0x50(%ebp)
416051:	8d 42 cf             	lea    -0x31(%edx),%eax
416054:	3c 08                	cmp    $0x8,%al
416056:	77 07                	ja     0x41605f
416058:	6a 09                	push   $0x9
41605a:	e9 1b fe ff ff       	jmp    0x415e7a
41605f:	0f be c2             	movsbl %dl,%eax
416062:	83 e8 2b             	sub    $0x2b,%eax
416065:	74 22                	je     0x416089
416067:	48                   	dec    %eax
416068:	48                   	dec    %eax
416069:	74 10                	je     0x41607b
41606b:	83 e8 03             	sub    $0x3,%eax
41606e:	0f 85 d2 fe ff ff    	jne    0x415f46
416074:	6a 08                	push   $0x8
416076:	e9 16 fe ff ff       	jmp    0x415e91
41607b:	6a 07                	push   $0x7
41607d:	83 ca ff             	or     $0xffffffff,%edx
416080:	58                   	pop    %eax
416081:	89 55 a0             	mov    %edx,-0x60(%ebp)
416084:	e9 d5 fd ff ff       	jmp    0x415e5e
416089:	6a 07                	push   $0x7
41608b:	e9 01 fe ff ff       	jmp    0x415e91
416090:	33 c0                	xor    %eax,%eax
416092:	40                   	inc    %eax
416093:	89 45 a4             	mov    %eax,-0x5c(%ebp)
416096:	eb 03                	jmp    0x41609b
416098:	8a 11                	mov    (%ecx),%dl
41609a:	41                   	inc    %ecx
41609b:	80 fa 30             	cmp    $0x30,%dl
41609e:	74 f8                	je     0x416098
4160a0:	80 ea 31             	sub    $0x31,%dl
4160a3:	80 fa 08             	cmp    $0x8,%dl
4160a6:	0f 87 84 00 00 00    	ja     0x416130
4160ac:	eb aa                	jmp    0x416058
4160ae:	8d 42 cf             	lea    -0x31(%edx),%eax
4160b1:	3c 08                	cmp    $0x8,%al
4160b3:	76 a3                	jbe    0x416058
4160b5:	80 fa 30             	cmp    $0x30,%dl
4160b8:	eb b4                	jmp    0x41606e
4160ba:	39 5d 20             	cmp    %ebx,0x20(%ebp)
4160bd:	74 22                	je     0x4160e1
4160bf:	8d 41 ff             	lea    -0x1(%ecx),%eax
4160c2:	89 45 b0             	mov    %eax,-0x50(%ebp)
4160c5:	0f be c2             	movsbl %dl,%eax
4160c8:	83 e8 2b             	sub    $0x2b,%eax
4160cb:	74 bc                	je     0x416089
4160cd:	48                   	dec    %eax
4160ce:	48                   	dec    %eax
4160cf:	0f 85 71 fe ff ff    	jne    0x415f46
4160d5:	83 4d a0 ff          	orl    $0xffffffff,-0x60(%ebp)
4160d9:	6a 07                	push   $0x7
4160db:	58                   	pop    %eax
4160dc:	e9 7d fd ff ff       	jmp    0x415e5e
4160e1:	6a 0a                	push   $0xa
4160e3:	58                   	pop    %eax
4160e4:	49                   	dec    %ecx
4160e5:	83 f8 0a             	cmp    $0xa,%eax
4160e8:	0f 85 70 fd ff ff    	jne    0x415e5e
4160ee:	eb 41                	jmp    0x416131
4160f0:	33 c0                	xor    %eax,%eax
4160f2:	40                   	inc    %eax
4160f3:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4160f6:	8b f3                	mov    %ebx,%esi
4160f8:	eb 1b                	jmp    0x416115
4160fa:	80 fa 39             	cmp    $0x39,%dl
4160fd:	7f 2c                	jg     0x41612b
4160ff:	6b f6 0a             	imul   $0xa,%esi,%esi
416102:	0f be c2             	movsbl %dl,%eax
416105:	83 c6 d0             	add    $0xffffffd0,%esi
416108:	03 f0                	add    %eax,%esi
41610a:	81 fe 50 14 00 00    	cmp    $0x1450,%esi
416110:	7f 0a                	jg     0x41611c
416112:	8a 11                	mov    (%ecx),%dl
416114:	41                   	inc    %ecx
416115:	80 fa 30             	cmp    $0x30,%dl
416118:	7d e0                	jge    0x4160fa
41611a:	eb 0f                	jmp    0x41612b
41611c:	be 51 14 00 00       	mov    $0x1451,%esi
416121:	eb 08                	jmp    0x41612b
416123:	80 fa 39             	cmp    $0x39,%dl
416126:	7f 08                	jg     0x416130
416128:	8a 11                	mov    (%ecx),%dl
41612a:	41                   	inc    %ecx
41612b:	80 fa 30             	cmp    $0x30,%dl
41612e:	7d f3                	jge    0x416123
416130:	49                   	dec    %ecx
416131:	8b 45 b4             	mov    -0x4c(%ebp),%eax
416134:	8b 55 98             	mov    -0x68(%ebp),%edx
416137:	89 0a                	mov    %ecx,(%edx)
416139:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
41613c:	85 c9                	test   %ecx,%ecx
41613e:	0f 84 b9 03 00 00    	je     0x4164fd
416144:	83 f8 18             	cmp    $0x18,%eax
416147:	76 19                	jbe    0x416162
416149:	8a 45 f7             	mov    -0x9(%ebp),%al
41614c:	3c 05                	cmp    $0x5,%al
41614e:	7c 05                	jl     0x416155
416150:	fe c0                	inc    %al
416152:	88 45 f7             	mov    %al,-0x9(%ebp)
416155:	8b 4d ac             	mov    -0x54(%ebp),%ecx
416158:	4f                   	dec    %edi
416159:	6a 18                	push   $0x18
41615b:	41                   	inc    %ecx
41615c:	58                   	pop    %eax
41615d:	89 4d ac             	mov    %ecx,-0x54(%ebp)
416160:	eb 03                	jmp    0x416165
416162:	8b 4d ac             	mov    -0x54(%ebp),%ecx
416165:	85 c0                	test   %eax,%eax
416167:	0f 84 86 03 00 00    	je     0x4164f3
41616d:	4f                   	dec    %edi
41616e:	38 1f                	cmp    %bl,(%edi)
416170:	75 0a                	jne    0x41617c
416172:	48                   	dec    %eax
416173:	41                   	inc    %ecx
416174:	4f                   	dec    %edi
416175:	38 1f                	cmp    %bl,(%edi)
416177:	74 f9                	je     0x416172
416179:	89 4d ac             	mov    %ecx,-0x54(%ebp)
41617c:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
41617f:	51                   	push   %ecx
416180:	50                   	push   %eax
416181:	8d 45 e0             	lea    -0x20(%ebp),%eax
416184:	50                   	push   %eax
416185:	e8 cb 13 00 00       	call   0x417555
41618a:	8b 55 a0             	mov    -0x60(%ebp),%edx
41618d:	83 c4 0c             	add    $0xc,%esp
416190:	85 d2                	test   %edx,%edx
416192:	79 02                	jns    0x416196
416194:	f7 de                	neg    %esi
416196:	8b 45 a4             	mov    -0x5c(%ebp),%eax
416199:	03 75 ac             	add    -0x54(%ebp),%esi
41619c:	85 c0                	test   %eax,%eax
41619e:	75 03                	jne    0x4161a3
4161a0:	03 75 18             	add    0x18(%ebp),%esi
4161a3:	8b 45 a8             	mov    -0x58(%ebp),%eax
4161a6:	85 c0                	test   %eax,%eax
4161a8:	75 03                	jne    0x4161ad
4161aa:	2b 75 1c             	sub    0x1c(%ebp),%esi
4161ad:	81 fe 50 14 00 00    	cmp    $0x1450,%esi
4161b3:	0f 8f 2c 03 00 00    	jg     0x4164e5
4161b9:	81 fe b0 eb ff ff    	cmp    $0xffffebb0,%esi
4161bf:	0f 8c 11 03 00 00    	jl     0x4164d6
4161c5:	b8 40 14 42 00       	mov    $0x421440,%eax
4161ca:	83 e8 60             	sub    $0x60,%eax
4161cd:	85 f6                	test   %esi,%esi
4161cf:	0f 84 ef 02 00 00    	je     0x4164c4
4161d5:	79 0a                	jns    0x4161e1
4161d7:	b8 a0 15 42 00       	mov    $0x4215a0,%eax
4161dc:	f7 de                	neg    %esi
4161de:	83 e8 60             	sub    $0x60,%eax
4161e1:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4161e4:	0f 85 d2 02 00 00    	jne    0x4164bc
4161ea:	33 c9                	xor    %ecx,%ecx
4161ec:	66 89 4d c4          	mov    %cx,-0x3c(%ebp)
4161f0:	e9 c7 02 00 00       	jmp    0x4164bc
4161f5:	8b ce                	mov    %esi,%ecx
4161f7:	83 c0 54             	add    $0x54,%eax
4161fa:	c1 fe 03             	sar    $0x3,%esi
4161fd:	89 45 b4             	mov    %eax,-0x4c(%ebp)
416200:	89 75 ac             	mov    %esi,-0x54(%ebp)
416203:	83 e1 07             	and    $0x7,%ecx
416206:	0f 84 b0 02 00 00    	je     0x4164bc
41620c:	6b c9 0c             	imul   $0xc,%ecx,%ecx
41620f:	03 c8                	add    %eax,%ecx
416211:	b8 00 80 00 00       	mov    $0x8000,%eax
416216:	89 4d b0             	mov    %ecx,-0x50(%ebp)
416219:	66 39 01             	cmp    %ax,(%ecx)
41621c:	72 11                	jb     0x41622f
41621e:	8b f1                	mov    %ecx,%esi
416220:	8d 7d b8             	lea    -0x48(%ebp),%edi
416223:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416224:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416225:	8d 4d b8             	lea    -0x48(%ebp),%ecx
416228:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416229:	ff 4d ba             	decl   -0x46(%ebp)
41622c:	89 4d b0             	mov    %ecx,-0x50(%ebp)
41622f:	0f b7 79 0a          	movzwl 0xa(%ecx),%edi
416233:	8b 55 ce             	mov    -0x32(%ebp),%edx
416236:	8b c7                	mov    %edi,%eax
416238:	33 c2                	xor    %edx,%eax
41623a:	25 00 80 00 00       	and    $0x8000,%eax
41623f:	89 45 a0             	mov    %eax,-0x60(%ebp)
416242:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
416247:	23 d0                	and    %eax,%edx
416249:	23 f8                	and    %eax,%edi
41624b:	89 5d 88             	mov    %ebx,-0x78(%ebp)
41624e:	8d 04 17             	lea    (%edi,%edx,1),%eax
416251:	0f b7 f0             	movzwl %ax,%esi
416254:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
416259:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
41625c:	89 5d d8             	mov    %ebx,-0x28(%ebp)
41625f:	89 5d dc             	mov    %ebx,-0x24(%ebp)
416262:	89 75 a4             	mov    %esi,-0x5c(%ebp)
416265:	66 3b d0             	cmp    %ax,%dx
416268:	0f 83 2b 02 00 00    	jae    0x416499
41626e:	66 3b f8             	cmp    %ax,%di
416271:	0f 83 22 02 00 00    	jae    0x416499
416277:	b8 fd bf 00 00       	mov    $0xbffd,%eax
41627c:	66 3b f0             	cmp    %ax,%si
41627f:	0f 87 14 02 00 00    	ja     0x416499
416285:	b8 bf 3f 00 00       	mov    $0x3fbf,%eax
41628a:	66 3b f0             	cmp    %ax,%si
41628d:	77 08                	ja     0x416297
41628f:	89 5d cc             	mov    %ebx,-0x34(%ebp)
416292:	e9 19 02 00 00       	jmp    0x4164b0
416297:	66 85 d2             	test   %dx,%dx
41629a:	75 24                	jne    0x4162c0
41629c:	46                   	inc    %esi
41629d:	f7 45 cc ff ff ff 7f 	testl  $0x7fffffff,-0x34(%ebp)
4162a4:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4162a7:	75 17                	jne    0x4162c0
4162a9:	83 7d c8 00          	cmpl   $0x0,-0x38(%ebp)
4162ad:	75 11                	jne    0x4162c0
4162af:	83 7d c4 00          	cmpl   $0x0,-0x3c(%ebp)
4162b3:	75 0b                	jne    0x4162c0
4162b5:	33 c0                	xor    %eax,%eax
4162b7:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
4162bb:	e9 f6 01 00 00       	jmp    0x4164b6
4162c0:	66 85 ff             	test   %di,%di
4162c3:	75 16                	jne    0x4162db
4162c5:	46                   	inc    %esi
4162c6:	f7 41 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ecx)
4162cd:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4162d0:	75 09                	jne    0x4162db
4162d2:	39 59 04             	cmp    %ebx,0x4(%ecx)
4162d5:	75 04                	jne    0x4162db
4162d7:	39 19                	cmp    %ebx,(%ecx)
4162d9:	74 b4                	je     0x41628f
4162db:	6a 05                	push   $0x5
4162dd:	8b c3                	mov    %ebx,%eax
4162df:	5f                   	pop    %edi
4162e0:	89 45 90             	mov    %eax,-0x70(%ebp)
4162e3:	8d 55 d8             	lea    -0x28(%ebp),%edx
4162e6:	89 7d 98             	mov    %edi,-0x68(%ebp)
4162e9:	89 7d a8             	mov    %edi,-0x58(%ebp)
4162ec:	85 ff                	test   %edi,%edi
4162ee:	7e 5c                	jle    0x41634c
4162f0:	8d 75 c4             	lea    -0x3c(%ebp),%esi
4162f3:	8d 34 46             	lea    (%esi,%eax,2),%esi
4162f6:	8d 41 08             	lea    0x8(%ecx),%eax
4162f9:	89 45 9c             	mov    %eax,-0x64(%ebp)
4162fc:	8b cf                	mov    %edi,%ecx
4162fe:	0f b7 00             	movzwl (%eax),%eax
416301:	89 45 a8             	mov    %eax,-0x58(%ebp)
416304:	0f b7 06             	movzwl (%esi),%eax
416307:	8b 7d a8             	mov    -0x58(%ebp),%edi
41630a:	0f af f8             	imul   %eax,%edi
41630d:	89 7d a8             	mov    %edi,-0x58(%ebp)
416310:	03 7a fc             	add    -0x4(%edx),%edi
416313:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
416316:	3b 7a fc             	cmp    -0x4(%edx),%edi
416319:	72 05                	jb     0x416320
41631b:	3b 7d a8             	cmp    -0x58(%ebp),%edi
41631e:	73 05                	jae    0x416325
416320:	33 c0                	xor    %eax,%eax
416322:	40                   	inc    %eax
416323:	eb 03                	jmp    0x416328
416325:	8b 45 84             	mov    -0x7c(%ebp),%eax
416328:	89 7a fc             	mov    %edi,-0x4(%edx)
41632b:	85 c0                	test   %eax,%eax
41632d:	74 03                	je     0x416332
41632f:	66 ff 02             	incw   (%edx)
416332:	8b 45 9c             	mov    -0x64(%ebp),%eax
416335:	83 e8 02             	sub    $0x2,%eax
416338:	83 c6 02             	add    $0x2,%esi
41633b:	49                   	dec    %ecx
41633c:	89 45 9c             	mov    %eax,-0x64(%ebp)
41633f:	85 c9                	test   %ecx,%ecx
416341:	7f bb                	jg     0x4162fe
416343:	8b 4d b0             	mov    -0x50(%ebp),%ecx
416346:	8b 7d 98             	mov    -0x68(%ebp),%edi
416349:	8b 45 90             	mov    -0x70(%ebp),%eax
41634c:	83 c2 02             	add    $0x2,%edx
41634f:	40                   	inc    %eax
416350:	4f                   	dec    %edi
416351:	89 45 90             	mov    %eax,-0x70(%ebp)
416354:	89 7d 98             	mov    %edi,-0x68(%ebp)
416357:	85 ff                	test   %edi,%edi