40f1ee:	8d 43 2f             	lea    0x2f(%ebx),%eax
40f1f1:	50                   	push   %eax
40f1f2:	6a 53                	push   $0x53
40f1f4:	56                   	push   %esi
40f1f5:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f1f8:	6a 00                	push   $0x0
40f1fa:	50                   	push   %eax
40f1fb:	e8 8f e2 ff ff       	call   0x40d48f
40f200:	83 c4 3c             	add    $0x3c,%esp
40f203:	0b c7                	or     %edi,%eax
40f205:	74 24                	je     0x40f22b
40f207:	53                   	push   %ebx
40f208:	e8 9d fd ff ff       	call   0x40efaa
40f20d:	53                   	push   %ebx
40f20e:	e8 0d 5e ff ff       	call   0x405020
40f213:	ff 75 f8             	push   -0x8(%ebp)
40f216:	e8 05 5e ff ff       	call   0x405020
40f21b:	ff 75 fc             	push   -0x4(%ebp)
40f21e:	e8 fd 5d ff ff       	call   0x405020
40f223:	83 c4 10             	add    $0x10,%esp
40f226:	e9 51 fe ff ff       	jmp    0x40f07c
40f22b:	8b 43 1c             	mov    0x1c(%ebx),%eax
40f22e:	eb 12                	jmp    0x40f242
40f230:	8a 08                	mov    (%eax),%cl
40f232:	80 f9 30             	cmp    $0x30,%cl
40f235:	7c 12                	jl     0x40f249
40f237:	80 f9 39             	cmp    $0x39,%cl
40f23a:	7f 0d                	jg     0x40f249
40f23c:	80 e9 30             	sub    $0x30,%cl
40f23f:	88 08                	mov    %cl,(%eax)
40f241:	40                   	inc    %eax
40f242:	80 38 00             	cmpb   $0x0,(%eax)
40f245:	75 e9                	jne    0x40f230
40f247:	eb 23                	jmp    0x40f26c
40f249:	80 f9 3b             	cmp    $0x3b,%cl
40f24c:	75 f3                	jne    0x40f241
40f24e:	8b f0                	mov    %eax,%esi
40f250:	8d 7e 01             	lea    0x1(%esi),%edi
40f253:	8a 0f                	mov    (%edi),%cl
40f255:	88 0e                	mov    %cl,(%esi)
40f257:	8b f7                	mov    %edi,%esi
40f259:	80 3e 00             	cmpb   $0x0,(%esi)
40f25c:	75 f2                	jne    0x40f250
40f25e:	eb e2                	jmp    0x40f242
40f260:	6a 0c                	push   $0xc
40f262:	59                   	pop    %ecx
40f263:	be 80 b9 42 00       	mov    $0x42b980,%esi
40f268:	8b fb                	mov    %ebx,%edi
40f26a:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40f26c:	8b 45 08             	mov    0x8(%ebp),%eax
40f26f:	8b 75 08             	mov    0x8(%ebp),%esi
40f272:	05 bc 00 00 00       	add    $0xbc,%eax
40f277:	8b 08                	mov    (%eax),%ecx
40f279:	8b 09                	mov    (%ecx),%ecx
40f27b:	89 0b                	mov    %ecx,(%ebx)
40f27d:	8b 08                	mov    (%eax),%ecx
40f27f:	8b 49 04             	mov    0x4(%ecx),%ecx
40f282:	89 4b 04             	mov    %ecx,0x4(%ebx)
40f285:	8b 00                	mov    (%eax),%eax
40f287:	8b 40 08             	mov    0x8(%eax),%eax
40f28a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40f28d:	89 43 08             	mov    %eax,0x8(%ebx)
40f290:	33 c0                	xor    %eax,%eax
40f292:	40                   	inc    %eax
40f293:	33 ff                	xor    %edi,%edi
40f295:	89 01                	mov    %eax,(%ecx)
40f297:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40f29a:	74 05                	je     0x40f2a1
40f29c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f29f:	89 01                	mov    %eax,(%ecx)
40f2a1:	8b 86 b8 00 00 00    	mov    0xb8(%esi),%eax
40f2a7:	3b c7                	cmp    %edi,%eax
40f2a9:	74 07                	je     0x40f2b2
40f2ab:	50                   	push   %eax
40f2ac:	ff 15 78 a0 41 00    	call   *0x41a078
40f2b2:	8b 86 b0 00 00 00    	mov    0xb0(%esi),%eax
40f2b8:	3b c7                	cmp    %edi,%eax
40f2ba:	74 23                	je     0x40f2df
40f2bc:	50                   	push   %eax
40f2bd:	ff 15 78 a0 41 00    	call   *0x41a078
40f2c3:	85 c0                	test   %eax,%eax
40f2c5:	75 18                	jne    0x40f2df
40f2c7:	ff b6 bc 00 00 00    	push   0xbc(%esi)
40f2cd:	e8 4e 5d ff ff       	call   0x405020
40f2d2:	ff b6 b0 00 00 00    	push   0xb0(%esi)
40f2d8:	e8 43 5d ff ff       	call   0x405020
40f2dd:	59                   	pop    %ecx
40f2de:	59                   	pop    %ecx
40f2df:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f2e2:	89 86 b8 00 00 00    	mov    %eax,0xb8(%esi)
40f2e8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f2eb:	89 86 b0 00 00 00    	mov    %eax,0xb0(%esi)
40f2f1:	89 9e bc 00 00 00    	mov    %ebx,0xbc(%esi)
40f2f7:	33 c0                	xor    %eax,%eax
40f2f9:	5f                   	pop    %edi
40f2fa:	5e                   	pop    %esi
40f2fb:	5b                   	pop    %ebx
40f2fc:	c9                   	leave
40f2fd:	c3                   	ret
40f2fe:	2d a4 03 00 00       	sub    $0x3a4,%eax
40f303:	74 22                	je     0x40f327
40f305:	83 e8 04             	sub    $0x4,%eax
40f308:	74 17                	je     0x40f321
40f30a:	83 e8 0d             	sub    $0xd,%eax
40f30d:	74 0c                	je     0x40f31b
40f30f:	48                   	dec    %eax
40f310:	74 03                	je     0x40f315
40f312:	33 c0                	xor    %eax,%eax
40f314:	c3                   	ret
40f315:	b8 04 04 00 00       	mov    $0x404,%eax
40f31a:	c3                   	ret
40f31b:	b8 12 04 00 00       	mov    $0x412,%eax
40f320:	c3                   	ret
40f321:	b8 04 08 00 00       	mov    $0x804,%eax
40f326:	c3                   	ret
40f327:	b8 11 04 00 00       	mov    $0x411,%eax
40f32c:	c3                   	ret
40f32d:	8b ff                	mov    %edi,%edi
40f32f:	56                   	push   %esi
40f330:	57                   	push   %edi
40f331:	8b f0                	mov    %eax,%esi
40f333:	68 01 01 00 00       	push   $0x101
40f338:	33 ff                	xor    %edi,%edi
40f33a:	8d 46 1c             	lea    0x1c(%esi),%eax
40f33d:	57                   	push   %edi
40f33e:	50                   	push   %eax
40f33f:	e8 bc b3 ff ff       	call   0x40a700
40f344:	33 c0                	xor    %eax,%eax
40f346:	0f b7 c8             	movzwl %ax,%ecx
40f349:	8b c1                	mov    %ecx,%eax
40f34b:	89 7e 04             	mov    %edi,0x4(%esi)
40f34e:	89 7e 08             	mov    %edi,0x8(%esi)
40f351:	89 7e 0c             	mov    %edi,0xc(%esi)
40f354:	c1 e1 10             	shl    $0x10,%ecx
40f357:	0b c1                	or     %ecx,%eax
40f359:	8d 7e 10             	lea    0x10(%esi),%edi
40f35c:	ab                   	stos   %eax,%es:(%edi)
40f35d:	ab                   	stos   %eax,%es:(%edi)
40f35e:	ab                   	stos   %eax,%es:(%edi)
40f35f:	b9 c0 b9 42 00       	mov    $0x42b9c0,%ecx
40f364:	83 c4 0c             	add    $0xc,%esp
40f367:	8d 46 1c             	lea    0x1c(%esi),%eax
40f36a:	2b ce                	sub    %esi,%ecx
40f36c:	bf 01 01 00 00       	mov    $0x101,%edi
40f371:	8a 14 01             	mov    (%ecx,%eax,1),%dl
40f374:	88 10                	mov    %dl,(%eax)
40f376:	40                   	inc    %eax
40f377:	4f                   	dec    %edi
40f378:	75 f7                	jne    0x40f371
40f37a:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
40f380:	be 00 01 00 00       	mov    $0x100,%esi
40f385:	8a 14 08             	mov    (%eax,%ecx,1),%dl
40f388:	88 10                	mov    %dl,(%eax)
40f38a:	40                   	inc    %eax
40f38b:	4e                   	dec    %esi
40f38c:	75 f7                	jne    0x40f385
40f38e:	5f                   	pop    %edi
40f38f:	5e                   	pop    %esi
40f390:	c3                   	ret
40f391:	8b ff                	mov    %edi,%edi
40f393:	55                   	push   %ebp
40f394:	8b ec                	mov    %esp,%ebp
40f396:	81 ec 1c 05 00 00    	sub    $0x51c,%esp
40f39c:	a1 68 b2 42 00       	mov    0x42b268,%eax
40f3a1:	33 c5                	xor    %ebp,%eax
40f3a3:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f3a6:	53                   	push   %ebx
40f3a7:	57                   	push   %edi
40f3a8:	8d 85 e8 fa ff ff    	lea    -0x518(%ebp),%eax
40f3ae:	50                   	push   %eax
40f3af:	ff 76 04             	push   0x4(%esi)
40f3b2:	ff 15 bc a0 41 00    	call   *0x41a0bc
40f3b8:	bf 00 01 00 00       	mov    $0x100,%edi
40f3bd:	85 c0                	test   %eax,%eax
40f3bf:	0f 84 fb 00 00 00    	je     0x40f4c0
40f3c5:	33 c0                	xor    %eax,%eax
40f3c7:	88 84 05 fc fe ff ff 	mov    %al,-0x104(%ebp,%eax,1)
40f3ce:	40                   	inc    %eax
40f3cf:	3b c7                	cmp    %edi,%eax
40f3d1:	72 f4                	jb     0x40f3c7
40f3d3:	8a 85 ee fa ff ff    	mov    -0x512(%ebp),%al
40f3d9:	c6 85 fc fe ff ff 20 	movb   $0x20,-0x104(%ebp)
40f3e0:	84 c0                	test   %al,%al
40f3e2:	74 2e                	je     0x40f412
40f3e4:	8d 9d ef fa ff ff    	lea    -0x511(%ebp),%ebx
40f3ea:	0f b6 c8             	movzbl %al,%ecx
40f3ed:	0f b6 03             	movzbl (%ebx),%eax
40f3f0:	3b c8                	cmp    %eax,%ecx
40f3f2:	77 16                	ja     0x40f40a
40f3f4:	2b c1                	sub    %ecx,%eax
40f3f6:	40                   	inc    %eax
40f3f7:	50                   	push   %eax
40f3f8:	8d 94 0d fc fe ff ff 	lea    -0x104(%ebp,%ecx,1),%edx
40f3ff:	6a 20                	push   $0x20
40f401:	52                   	push   %edx
40f402:	e8 f9 b2 ff ff       	call   0x40a700
40f407:	83 c4 0c             	add    $0xc,%esp
40f40a:	43                   	inc    %ebx
40f40b:	8a 03                	mov    (%ebx),%al
40f40d:	43                   	inc    %ebx
40f40e:	84 c0                	test   %al,%al
40f410:	75 d8                	jne    0x40f3ea
40f412:	6a 00                	push   $0x0
40f414:	ff 76 0c             	push   0xc(%esi)
40f417:	8d 85 fc fa ff ff    	lea    -0x504(%ebp),%eax
40f41d:	ff 76 04             	push   0x4(%esi)
40f420:	50                   	push   %eax
40f421:	57                   	push   %edi
40f422:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40f428:	50                   	push   %eax
40f429:	6a 01                	push   $0x1
40f42b:	6a 00                	push   $0x0
40f42d:	e8 1b e0 ff ff       	call   0x40d44d
40f432:	33 db                	xor    %ebx,%ebx
40f434:	53                   	push   %ebx
40f435:	ff 76 04             	push   0x4(%esi)
40f438:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
40f43e:	57                   	push   %edi
40f43f:	50                   	push   %eax
40f440:	57                   	push   %edi
40f441:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40f447:	50                   	push   %eax
40f448:	57                   	push   %edi
40f449:	ff 76 0c             	push   0xc(%esi)
40f44c:	53                   	push   %ebx
40f44d:	e8 db 8b ff ff       	call   0x40802d
40f452:	83 c4 44             	add    $0x44,%esp
40f455:	53                   	push   %ebx
40f456:	ff 76 04             	push   0x4(%esi)
40f459:	8d 85 fc fc ff ff    	lea    -0x304(%ebp),%eax
40f45f:	57                   	push   %edi
40f460:	50                   	push   %eax
40f461:	57                   	push   %edi
40f462:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40f468:	50                   	push   %eax
40f469:	68 00 02 00 00       	push   $0x200
40f46e:	ff 76 0c             	push   0xc(%esi)
40f471:	53                   	push   %ebx
40f472:	e8 b6 8b ff ff       	call   0x40802d
40f477:	83 c4 24             	add    $0x24,%esp
40f47a:	33 c0                	xor    %eax,%eax
40f47c:	0f b7 8c 45 fc fa ff 	movzwl -0x504(%ebp,%eax,2),%ecx
40f483:	ff
40f484:	f6 c1 01             	test   $0x1,%cl
40f487:	74 0e                	je     0x40f497
40f489:	80 4c 06 1d 10       	orb    $0x10,0x1d(%esi,%eax,1)
40f48e:	8a 8c 05 fc fd ff ff 	mov    -0x204(%ebp,%eax,1),%cl
40f495:	eb 11                	jmp    0x40f4a8
40f497:	f6 c1 02             	test   $0x2,%cl
40f49a:	74 15                	je     0x40f4b1
40f49c:	80 4c 06 1d 20       	orb    $0x20,0x1d(%esi,%eax,1)
40f4a1:	8a 8c 05 fc fc ff ff 	mov    -0x304(%ebp,%eax,1),%cl
40f4a8:	88 8c 06 1d 01 00 00 	mov    %cl,0x11d(%esi,%eax,1)
40f4af:	eb 08                	jmp    0x40f4b9
40f4b1:	c6 84 06 1d 01 00 00 	movb   $0x0,0x11d(%esi,%eax,1)
40f4b8:	00
40f4b9:	40                   	inc    %eax
40f4ba:	3b c7                	cmp    %edi,%eax
40f4bc:	72 be                	jb     0x40f47c
40f4be:	eb 56                	jmp    0x40f516
40f4c0:	8d 86 1d 01 00 00    	lea    0x11d(%esi),%eax
40f4c6:	c7 85 e4 fa ff ff 9f 	movl   $0xffffff9f,-0x51c(%ebp)
40f4cd:	ff ff ff
40f4d0:	33 c9                	xor    %ecx,%ecx
40f4d2:	29 85 e4 fa ff ff    	sub    %eax,-0x51c(%ebp)
40f4d8:	8b 95 e4 fa ff ff    	mov    -0x51c(%ebp),%edx
40f4de:	8d 84 0e 1d 01 00 00 	lea    0x11d(%esi,%ecx,1),%eax
40f4e5:	03 d0                	add    %eax,%edx
40f4e7:	8d 5a 20             	lea    0x20(%edx),%ebx
40f4ea:	83 fb 19             	cmp    $0x19,%ebx
40f4ed:	77 0c                	ja     0x40f4fb
40f4ef:	80 4c 0e 1d 10       	orb    $0x10,0x1d(%esi,%ecx,1)
40f4f4:	8a d1                	mov    %cl,%dl
40f4f6:	80 c2 20             	add    $0x20,%dl
40f4f9:	eb 0f                	jmp    0x40f50a
40f4fb:	83 fa 19             	cmp    $0x19,%edx
40f4fe:	77 0e                	ja     0x40f50e
40f500:	80 4c 0e 1d 20       	orb    $0x20,0x1d(%esi,%ecx,1)
40f505:	8a d1                	mov    %cl,%dl
40f507:	80 ea 20             	sub    $0x20,%dl
40f50a:	88 10                	mov    %dl,(%eax)
40f50c:	eb 03                	jmp    0x40f511
40f50e:	c6 00 00             	movb   $0x0,(%eax)
40f511:	41                   	inc    %ecx
40f512:	3b cf                	cmp    %edi,%ecx
40f514:	72 c2                	jb     0x40f4d8
40f516:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f519:	5f                   	pop    %edi
40f51a:	33 cd                	xor    %ebp,%ecx
40f51c:	5b                   	pop    %ebx
40f51d:	e8 04 71 ff ff       	call   0x406626
40f522:	c9                   	leave
40f523:	c3                   	ret
40f524:	6a 0c                	push   $0xc
40f526:	68 90 99 42 00       	push   $0x429990
40f52b:	e8 ac ae ff ff       	call   0x40a3dc
40f530:	e8 0c b5 ff ff       	call   0x40aa41
40f535:	8b f8                	mov    %eax,%edi
40f537:	a1 a0 b7 42 00       	mov    0x42b7a0,%eax
40f53c:	85 47 70             	test   %eax,0x70(%edi)
40f53f:	74 1d                	je     0x40f55e
40f541:	83 7f 6c 00          	cmpl   $0x0,0x6c(%edi)
40f545:	74 17                	je     0x40f55e
40f547:	8b 77 68             	mov    0x68(%edi),%esi
40f54a:	85 f6                	test   %esi,%esi
40f54c:	75 08                	jne    0x40f556
40f54e:	6a 20                	push   $0x20
40f550:	e8 47 d1 ff ff       	call   0x40c69c
40f555:	59                   	pop    %ecx
40f556:	8b c6                	mov    %esi,%eax
40f558:	e8 c4 ae ff ff       	call   0x40a421
40f55d:	c3                   	ret
40f55e:	6a 0d                	push   $0xd
40f560:	e8 7f a3 ff ff       	call   0x4098e4
40f565:	59                   	pop    %ecx
40f566:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f56a:	8b 77 68             	mov    0x68(%edi),%esi
40f56d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40f570:	3b 35 e8 bd 42 00    	cmp    0x42bde8,%esi
40f576:	74 36                	je     0x40f5ae
40f578:	85 f6                	test   %esi,%esi
40f57a:	74 1a                	je     0x40f596
40f57c:	56                   	push   %esi
40f57d:	ff 15 78 a0 41 00    	call   *0x41a078
40f583:	85 c0                	test   %eax,%eax
40f585:	75 0f                	jne    0x40f596
40f587:	81 fe c0 b9 42 00    	cmp    $0x42b9c0,%esi
40f58d:	74 07                	je     0x40f596
40f58f:	56                   	push   %esi
40f590:	e8 8b 5a ff ff       	call   0x405020
40f595:	59                   	pop    %ecx
40f596:	a1 e8 bd 42 00       	mov    0x42bde8,%eax
40f59b:	89 47 68             	mov    %eax,0x68(%edi)
40f59e:	8b 35 e8 bd 42 00    	mov    0x42bde8,%esi
40f5a4:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40f5a7:	56                   	push   %esi
40f5a8:	ff 15 74 a0 41 00    	call   *0x41a074
40f5ae:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40f5b5:	e8 05 00 00 00       	call   0x40f5bf
40f5ba:	eb 8e                	jmp    0x40f54a
40f5bc:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40f5bf:	6a 0d                	push   $0xd
40f5c1:	e8 44 a2 ff ff       	call   0x40980a
40f5c6:	59                   	pop    %ecx
40f5c7:	c3                   	ret
40f5c8:	8b ff                	mov    %edi,%edi
40f5ca:	55                   	push   %ebp
40f5cb:	8b ec                	mov    %esp,%ebp
40f5cd:	83 ec 10             	sub    $0x10,%esp
40f5d0:	53                   	push   %ebx