40d07e:	57                   	push   %edi
40d07f:	8b da                	mov    %edx,%ebx
40d081:	8b f0                	mov    %eax,%esi
40d083:	8b d3                	mov    %ebx,%edx
40d085:	8b c6                	mov    %esi,%eax
40d087:	e8 24 00 00 00       	call   0x40d0b0
40d08c:	8b f0                	mov    %eax,%esi
40d08e:	8b fe                	mov    %esi,%edi
40d090:	84 db                	test   %bl,%bl
40d092:	74 16                	je     0x40d0aa
40d094:	85 f6                	test   %esi,%esi
40d096:	74 12                	je     0x40d0aa
40d098:	8b fe                	mov    %esi,%edi
40d09a:	46                   	inc    %esi
40d09b:	8b d3                	mov    %ebx,%edx
40d09d:	8b c6                	mov    %esi,%eax
40d09f:	e8 0c 00 00 00       	call   0x40d0b0
40d0a4:	8b f0                	mov    %eax,%esi
40d0a6:	85 f6                	test   %esi,%esi
40d0a8:	75 ee                	jne    0x40d098
40d0aa:	8b c7                	mov    %edi,%eax
40d0ac:	5f                   	pop    %edi
40d0ad:	5e                   	pop    %esi
40d0ae:	5b                   	pop    %ebx
40d0af:	c3                   	ret
40d0b0:	53                   	push   %ebx
40d0b1:	56                   	push   %esi
40d0b2:	57                   	push   %edi
40d0b3:	8b da                	mov    %edx,%ebx
40d0b5:	8b f0                	mov    %eax,%esi
40d0b7:	8b d3                	mov    %ebx,%edx
40d0b9:	8b c6                	mov    %esi,%eax
40d0bb:	e8 c8 c2 ff ff       	call   0x409388
40d0c0:	8b f8                	mov    %eax,%edi
40d0c2:	85 ff                	test   %edi,%edi
40d0c4:	74 24                	je     0x40d0ea
40d0c6:	8b d7                	mov    %edi,%edx
40d0c8:	2b d6                	sub    %esi,%edx
40d0ca:	8b c6                	mov    %esi,%eax
40d0cc:	e8 7f fb ff ff       	call   0x40cc50
40d0d1:	2c 01                	sub    $0x1,%al
40d0d3:	72 15                	jb     0x40d0ea
40d0d5:	74 02                	je     0x40d0d9
40d0d7:	eb 01                	jmp    0x40d0da
40d0d9:	47                   	inc    %edi
40d0da:	47                   	inc    %edi
40d0db:	8b d3                	mov    %ebx,%edx
40d0dd:	8b c7                	mov    %edi,%eax
40d0df:	e8 a4 c2 ff ff       	call   0x409388
40d0e4:	8b f8                	mov    %eax,%edi
40d0e6:	85 ff                	test   %edi,%edi
40d0e8:	75 dc                	jne    0x40d0c6
40d0ea:	8b c7                	mov    %edi,%eax
40d0ec:	5f                   	pop    %edi
40d0ed:	5e                   	pop    %esi
40d0ee:	5b                   	pop    %ebx
40d0ef:	c3                   	ret
40d0f0:	55                   	push   %ebp
40d0f1:	8b ec                	mov    %esp,%ebp
40d0f3:	51                   	push   %ecx
40d0f4:	53                   	push   %ebx
40d0f5:	56                   	push   %esi
40d0f6:	57                   	push   %edi
40d0f7:	8b 7d 08             	mov    0x8(%ebp),%edi
40d0fa:	83 c7 ec             	add    $0xffffffec,%edi
40d0fd:	57                   	push   %edi
40d0fe:	6a 00                	push   $0x0
40d100:	e8 73 98 ff ff       	call   0x406978
40d105:	33 f6                	xor    %esi,%esi
40d107:	eb 2a                	jmp    0x40d133
40d109:	0f b6 44 37 06       	movzbl 0x6(%edi,%esi,1),%eax
40d10e:	0f b6 5c 37 07       	movzbl 0x7(%edi,%esi,1),%ebx
40d113:	2a d8                	sub    %al,%bl
40d115:	72 19                	jb     0x40d130
40d117:	43                   	inc    %ebx
40d118:	88 45 ff             	mov    %al,-0x1(%ebp)
40d11b:	0f b6 45 ff          	movzbl -0x1(%ebp),%eax
40d11f:	0f b6 c0             	movzbl %al,%eax
40d122:	0f ab 05 0c 08 46 00 	bts    %eax,0x46080c
40d129:	fe 45 ff             	incb   -0x1(%ebp)
40d12c:	fe cb                	dec    %bl
40d12e:	75 eb                	jne    0x40d11b
40d130:	83 c6 02             	add    $0x2,%esi
40d133:	83 fe 0c             	cmp    $0xc,%esi
40d136:	7d 0b                	jge    0x40d143
40d138:	0f b6 44 37 06       	movzbl 0x6(%edi,%esi,1),%eax
40d13d:	0a 44 37 07          	or     0x7(%edi,%esi,1),%al
40d141:	75 c6                	jne    0x40d109
40d143:	5f                   	pop    %edi
40d144:	5e                   	pop    %esi
40d145:	5b                   	pop    %ebx
40d146:	59                   	pop    %ecx
40d147:	5d                   	pop    %ebp
40d148:	c3                   	ret
40d149:	8d 40 00             	lea    0x0(%eax),%eax
40d14c:	55                   	push   %ebp
40d14d:	8b ec                	mov    %esp,%ebp
40d14f:	83 c4 ec             	add    $0xffffffec,%esp
40d152:	53                   	push   %ebx
40d153:	56                   	push   %esi
40d154:	57                   	push   %edi
40d155:	be c8 08 47 00       	mov    $0x4708c8,%esi
40d15a:	c7 06 09 04 00 00    	movl   $0x409,(%esi)
40d160:	c7 46 04 09 00 00 00 	movl   $0x9,0x4(%esi)
40d167:	c7 46 08 01 00 00 00 	movl   $0x1,0x8(%esi)
40d16e:	e8 6d 98 ff ff       	call   0x4069e0
40d173:	85 c0                	test   %eax,%eax
40d175:	74 02                	je     0x40d179
40d177:	89 06                	mov    %eax,(%esi)
40d179:	66 85 c0             	test   %ax,%ax
40d17c:	74 16                	je     0x40d194
40d17e:	8b d0                	mov    %eax,%edx
40d180:	66 81 e2 ff 03       	and    $0x3ff,%dx
40d185:	0f b7 d2             	movzwl %dx,%edx
40d188:	89 56 04             	mov    %edx,0x4(%esi)
40d18b:	0f b7 c0             	movzwl %ax,%eax
40d18e:	c1 e8 0a             	shr    $0xa,%eax
40d191:	89 46 08             	mov    %eax,0x8(%esi)
40d194:	56                   	push   %esi
40d195:	be f0 d1 40 00       	mov    $0x40d1f0,%esi
40d19a:	bf 0c 08 46 00       	mov    $0x46080c,%edi
40d19f:	b9 08 00 00 00       	mov    $0x8,%ecx
40d1a4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40d1a6:	5e                   	pop    %esi
40d1a7:	83 3d c8 07 46 00 04 	cmpl   $0x4,0x4607c8
40d1ae:	7e 0f                	jle    0x40d1bf
40d1b0:	83 3d c4 07 46 00 02 	cmpl   $0x2,0x4607c4
40d1b7:	75 06                	jne    0x40d1bf
40d1b9:	c6 46 0d 01          	movb   $0x1,0xd(%esi)
40d1bd:	eb 0f                	jmp    0x40d1ce
40d1bf:	6a 4a                	push   $0x4a
40d1c1:	e8 ea 9d ff ff       	call   0x406fb0
40d1c6:	85 c0                	test   %eax,%eax
40d1c8:	0f 95 c0             	setne  %al
40d1cb:	88 46 0d             	mov    %al,0xd(%esi)
40d1ce:	6a 2a                	push   $0x2a
40d1d0:	e8 db 9d ff ff       	call   0x406fb0
40d1d5:	85 c0                	test   %eax,%eax
40d1d7:	0f 95 c3             	setne  %bl
40d1da:	88 5e 0c             	mov    %bl,0xc(%esi)
40d1dd:	84 db                	test   %bl,%bl
40d1df:	74 07                	je     0x40d1e8
40d1e1:	55                   	push   %ebp
40d1e2:	e8 09 ff ff ff       	call   0x40d0f0
40d1e7:	59                   	pop    %ecx
40d1e8:	5f                   	pop    %edi
40d1e9:	5e                   	pop    %esi
40d1ea:	5b                   	pop    %ebx
40d1eb:	8b e5                	mov    %ebp,%esp
40d1ed:	5d                   	pop    %ebp
40d1ee:	c3                   	ret
40d20f:	00 55 8b             	add    %dl,-0x75(%ebp)
40d212:	ec                   	in     (%dx),%al
40d213:	b9 08 00 00 00       	mov    $0x8,%ecx
40d218:	6a 00                	push   $0x0
40d21a:	6a 00                	push   $0x0
40d21c:	49                   	dec    %ecx
40d21d:	75 f9                	jne    0x40d218
40d21f:	53                   	push   %ebx
40d220:	33 c0                	xor    %eax,%eax
40d222:	55                   	push   %ebp
40d223:	68 db d4 40 00       	push   $0x40d4db
40d228:	64 ff 30             	push   %fs:(%eax)
40d22b:	64 89 20             	mov    %esp,%fs:(%eax)
40d22e:	e8 19 ff ff ff       	call   0x40d14c
40d233:	e8 e4 e8 ff ff       	call   0x40bb1c
40d238:	80 3d d4 08 47 00 00 	cmpb   $0x0,0x4708d4
40d23f:	74 05                	je     0x40d246
40d241:	e8 ae ea ff ff       	call   0x40bcf4
40d246:	e8 95 97 ff ff       	call   0x4069e0
40d24b:	8b d8                	mov    %eax,%ebx
40d24d:	8d 45 f0             	lea    -0x10(%ebp),%eax
40d250:	50                   	push   %eax
40d251:	33 c9                	xor    %ecx,%ecx
40d253:	ba 14 00 00 00       	mov    $0x14,%edx
40d258:	8b c3                	mov    %ebx,%eax
40d25a:	e8 09 e8 ff ff       	call   0x40ba68
40d25f:	8b 55 f0             	mov    -0x10(%ebp),%edx
40d262:	b8 08 08 47 00       	mov    $0x470808,%eax
40d267:	e8 08 75 ff ff       	call   0x404774
40d26c:	8d 45 ec             	lea    -0x14(%ebp),%eax
40d26f:	50                   	push   %eax
40d270:	b9 f0 d4 40 00       	mov    $0x40d4f0,%ecx
40d275:	ba 1b 00 00 00       	mov    $0x1b,%edx
40d27a:	8b c3                	mov    %ebx,%eax
40d27c:	e8 e7 e7 ff ff       	call   0x40ba68
40d281:	8b 45 ec             	mov    -0x14(%ebp),%eax
40d284:	33 d2                	xor    %edx,%edx
40d286:	e8 31 ba ff ff       	call   0x408cbc
40d28b:	a2 0c 08 47 00       	mov    %al,0x47080c
40d290:	8d 45 e8             	lea    -0x18(%ebp),%eax
40d293:	50                   	push   %eax
40d294:	b9 f0 d4 40 00       	mov    $0x40d4f0,%ecx
40d299:	ba 1c 00 00 00       	mov    $0x1c,%edx
40d29e:	8b c3                	mov    %ebx,%eax
40d2a0:	e8 c3 e7 ff ff       	call   0x40ba68
40d2a5:	8b 45 e8             	mov    -0x18(%ebp),%eax
40d2a8:	33 d2                	xor    %edx,%edx
40d2aa:	e8 0d ba ff ff       	call   0x408cbc
40d2af:	a2 0d 08 47 00       	mov    %al,0x47080d
40d2b4:	b1 2c                	mov    $0x2c,%cl
40d2b6:	ba 0f 00 00 00       	mov    $0xf,%edx
40d2bb:	8b c3                	mov    %ebx,%eax
40d2bd:	e8 f2 e7 ff ff       	call   0x40bab4
40d2c2:	a2 0e 08 47 00       	mov    %al,0x47080e
40d2c7:	b1 2e                	mov    $0x2e,%cl
40d2c9:	ba 0e 00 00 00       	mov    $0xe,%edx
40d2ce:	8b c3                	mov    %ebx,%eax
40d2d0:	e8 df e7 ff ff       	call   0x40bab4
40d2d5:	a2 0f 08 47 00       	mov    %al,0x47080f
40d2da:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40d2dd:	50                   	push   %eax
40d2de:	b9 f0 d4 40 00       	mov    $0x40d4f0,%ecx
40d2e3:	ba 19 00 00 00       	mov    $0x19,%edx
40d2e8:	8b c3                	mov    %ebx,%eax
40d2ea:	e8 79 e7 ff ff       	call   0x40ba68
40d2ef:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d2f2:	33 d2                	xor    %edx,%edx
40d2f4:	e8 c3 b9 ff ff       	call   0x408cbc
40d2f9:	a2 10 08 47 00       	mov    %al,0x470810
40d2fe:	b1 2f                	mov    $0x2f,%cl
40d300:	ba 1d 00 00 00       	mov    $0x1d,%edx
40d305:	8b c3                	mov    %ebx,%eax
40d307:	e8 a8 e7 ff ff       	call   0x40bab4
40d30c:	a2 11 08 47 00       	mov    %al,0x470811
40d311:	8d 45 dc             	lea    -0x24(%ebp),%eax
40d314:	50                   	push   %eax
40d315:	b9 fc d4 40 00       	mov    $0x40d4fc,%ecx
40d31a:	ba 1f 00 00 00       	mov    $0x1f,%edx
40d31f:	8b c3                	mov    %ebx,%eax
40d321:	e8 42 e7 ff ff       	call   0x40ba68
40d326:	8b 45 dc             	mov    -0x24(%ebp),%eax
40d329:	8d 55 e0             	lea    -0x20(%ebp),%edx
40d32c:	e8 73 ea ff ff       	call   0x40bda4
40d331:	8b 55 e0             	mov    -0x20(%ebp),%edx
40d334:	b8 14 08 47 00       	mov    $0x470814,%eax
40d339:	e8 36 74 ff ff       	call   0x404774
40d33e:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40d341:	50                   	push   %eax
40d342:	b9 0c d5 40 00       	mov    $0x40d50c,%ecx
40d347:	ba 20 00 00 00       	mov    $0x20,%edx
40d34c:	8b c3                	mov    %ebx,%eax
40d34e:	e8 15 e7 ff ff       	call   0x40ba68
40d353:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40d356:	8d 55 d8             	lea    -0x28(%ebp),%edx
40d359:	e8 46 ea ff ff       	call   0x40bda4
40d35e:	8b 55 d8             	mov    -0x28(%ebp),%edx
40d361:	b8 18 08 47 00       	mov    $0x470818,%eax
40d366:	e8 09 74 ff ff       	call   0x404774
40d36b:	b1 3a                	mov    $0x3a,%cl
40d36d:	ba 1e 00 00 00       	mov    $0x1e,%edx
40d372:	8b c3                	mov    %ebx,%eax
40d374:	e8 3b e7 ff ff       	call   0x40bab4
40d379:	a2 1c 08 47 00       	mov    %al,0x47081c
40d37e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40d381:	50                   	push   %eax
40d382:	b9 24 d5 40 00       	mov    $0x40d524,%ecx
40d387:	ba 28 00 00 00       	mov    $0x28,%edx
40d38c:	8b c3                	mov    %ebx,%eax
40d38e:	e8 d5 e6 ff ff       	call   0x40ba68
40d393:	8b 55 d0             	mov    -0x30(%ebp),%edx
40d396:	b8 20 08 47 00       	mov    $0x470820,%eax
40d39b:	e8 d4 73 ff ff       	call   0x404774
40d3a0:	8d 45 cc             	lea    -0x34(%ebp),%eax
40d3a3:	50                   	push   %eax
40d3a4:	b9 30 d5 40 00       	mov    $0x40d530,%ecx
40d3a9:	ba 29 00 00 00       	mov    $0x29,%edx
40d3ae:	8b c3                	mov    %ebx,%eax
40d3b0:	e8 b3 e6 ff ff       	call   0x40ba68
40d3b5:	8b 55 cc             	mov    -0x34(%ebp),%edx
40d3b8:	b8 24 08 47 00       	mov    $0x470824,%eax
40d3bd:	e8 b2 73 ff ff       	call   0x404774
40d3c2:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d3c5:	e8 56 73 ff ff       	call   0x404720
40d3ca:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d3cd:	e8 4e 73 ff ff       	call   0x404720
40d3d2:	8d 45 c8             	lea    -0x38(%ebp),%eax
40d3d5:	50                   	push   %eax
40d3d6:	b9 f0 d4 40 00       	mov    $0x40d4f0,%ecx
40d3db:	ba 25 00 00 00       	mov    $0x25,%edx
40d3e0:	8b c3                	mov    %ebx,%eax
40d3e2:	e8 81 e6 ff ff       	call   0x40ba68
40d3e7:	8b 45 c8             	mov    -0x38(%ebp),%eax
40d3ea:	33 d2                	xor    %edx,%edx
40d3ec:	e8 cb b8 ff ff       	call   0x408cbc
40d3f1:	85 c0                	test   %eax,%eax
40d3f3:	75 0f                	jne    0x40d404
40d3f5:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d3f8:	ba 3c d5 40 00       	mov    $0x40d53c,%edx
40d3fd:	e8 b6 73 ff ff       	call   0x4047b8
40d402:	eb 0d                	jmp    0x40d411
40d404:	8d 45 fc             	lea    -0x4(%ebp),%eax
40d407:	ba 48 d5 40 00       	mov    $0x40d548,%edx
40d40c:	e8 a7 73 ff ff       	call   0x4047b8
40d411:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40d414:	50                   	push   %eax
40d415:	b9 f0 d4 40 00       	mov    $0x40d4f0,%ecx
40d41a:	ba 23 00 00 00       	mov    $0x23,%edx
40d41f:	8b c3                	mov    %ebx,%eax
40d421:	e8 42 e6 ff ff       	call   0x40ba68
40d426:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40d429:	33 d2                	xor    %edx,%edx
40d42b:	e8 8c b8 ff ff       	call   0x408cbc
40d430:	85 c0                	test   %eax,%eax
40d432:	75 3f                	jne    0x40d473
40d434:	8d 45 c0             	lea    -0x40(%ebp),%eax
40d437:	50                   	push   %eax
40d438:	b9 f0 d4 40 00       	mov    $0x40d4f0,%ecx
40d43d:	ba 05 10 00 00       	mov    $0x1005,%edx
40d442:	8b c3                	mov    %ebx,%eax
40d444:	e8 1f e6 ff ff       	call   0x40ba68
40d449:	8b 45 c0             	mov    -0x40(%ebp),%eax
40d44c:	33 d2                	xor    %edx,%edx
40d44e:	e8 69 b8 ff ff       	call   0x408cbc
40d453:	85 c0                	test   %eax,%eax
40d455:	75 0f                	jne    0x40d466
40d457:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d45a:	ba 54 d5 40 00       	mov    $0x40d554,%edx
40d45f:	e8 54 73 ff ff       	call   0x4047b8
40d464:	eb 0d                	jmp    0x40d473
40d466:	8d 45 f8             	lea    -0x8(%ebp),%eax
40d469:	ba 64 d5 40 00       	mov    $0x40d564,%edx
40d46e:	e8 45 73 ff ff       	call   0x4047b8
40d473:	ff 75 f8             	push   -0x8(%ebp)
40d476:	ff 75 fc             	push   -0x4(%ebp)
40d479:	68 74 d5 40 00       	push   $0x40d574
40d47e:	ff 75 f4             	push   -0xc(%ebp)
40d481:	b8 28 08 47 00       	mov    $0x470828,%eax
40d486:	ba 04 00 00 00       	mov    $0x4,%edx
40d48b:	e8 14 76 ff ff       	call   0x404aa4
40d490:	ff 75 f8             	push   -0x8(%ebp)
40d493:	ff 75 fc             	push   -0x4(%ebp)
40d496:	68 80 d5 40 00       	push   $0x40d580
40d49b:	ff 75 f4             	push   -0xc(%ebp)
40d49e:	b8 2c 08 47 00       	mov    $0x47082c,%eax
40d4a3:	ba 04 00 00 00       	mov    $0x4,%edx
40d4a8:	e8 f7 75 ff ff       	call   0x404aa4
40d4ad:	b1 2c                	mov    $0x2c,%cl
40d4af:	ba 0c 00 00 00       	mov    $0xc,%edx
40d4b4:	8b c3                	mov    %ebx,%eax
40d4b6:	e8 f9 e5 ff ff       	call   0x40bab4
40d4bb:	a2 d6 08 47 00       	mov    %al,0x4708d6
40d4c0:	33 c0                	xor    %eax,%eax
40d4c2:	5a                   	pop    %edx
40d4c3:	59                   	pop    %ecx
40d4c4:	59                   	pop    %ecx
40d4c5:	64 89 10             	mov    %edx,%fs:(%eax)
40d4c8:	68 e2 d4 40 00       	push   $0x40d4e2
40d4cd:	8d 45 c0             	lea    -0x40(%ebp),%eax
40d4d0:	ba 10 00 00 00       	mov    $0x10,%edx