40f295:	68 54 1f 40 00       	push   $0x401f54
40f29a:	e8 f1 7c ff ff       	call   0x406f90
40f29f:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f2a3:	74 09                	je     0x40f2ae
40f2a5:	ff 75 fc             	push   -0x4(%ebp)
40f2a8:	ff 15 dc 62 42 00    	call   *0x4262dc
40f2ae:	8b c6                	mov    %esi,%eax
40f2b0:	5f                   	pop    %edi
40f2b1:	5e                   	pop    %esi
40f2b2:	c9                   	leave
40f2b3:	c2 04 00             	ret    $0x4
40f2b6:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f2b9:	ba 35 01 00 00       	mov    $0x135,%edx
40f2be:	68 54 1f 40 00       	push   $0x401f54
40f2c3:	e8 13 7d ff ff       	call   0x406fdb
40f2c8:	cc                   	int3
40f2c9:	8b ff                	mov    %edi,%edi
40f2cb:	55                   	push   %ebp
40f2cc:	8b ec                	mov    %esp,%ebp
40f2ce:	81 ec 1c 02 00 00    	sub    $0x21c,%esp
40f2d4:	a1 10 42 42 00       	mov    0x424210,%eax
40f2d9:	33 c5                	xor    %ebp,%eax
40f2db:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f2de:	83 a5 f4 fd ff ff 00 	andl   $0x0,-0x20c(%ebp)
40f2e5:	33 c0                	xor    %eax,%eax
40f2e7:	21 85 f0 fd ff ff    	and    %eax,-0x210(%ebp)
40f2ed:	53                   	push   %ebx
40f2ee:	56                   	push   %esi
40f2ef:	57                   	push   %edi
40f2f0:	66 89 85 f8 fd ff ff 	mov    %ax,-0x208(%ebp)
40f2f7:	bf 00 01 00 00       	mov    $0x100,%edi
40f2fc:	8d 85 f0 fd ff ff    	lea    -0x210(%ebp),%eax
40f302:	8b d9                	mov    %ecx,%ebx
40f304:	50                   	push   %eax
40f305:	57                   	push   %edi
40f306:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40f30c:	50                   	push   %eax
40f30d:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f310:	e8 4b 02 00 00       	call   0x40f560
40f315:	8b f0                	mov    %eax,%esi
40f317:	85 f6                	test   %esi,%esi
40f319:	0f 88 01 01 00 00    	js     0x40f420
40f31f:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40f325:	8d 8d f4 fd ff ff    	lea    -0x20c(%ebp),%ecx
40f32b:	3b c7                	cmp    %edi,%eax
40f32d:	0f 87 83 00 00 00    	ja     0x40f3b6
40f333:	48                   	dec    %eax
40f334:	50                   	push   %eax
40f335:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
40f33b:	50                   	push   %eax
40f33c:	e8 11 01 00 00       	call   0x40f452
40f341:	8b f0                	mov    %eax,%esi
40f343:	85 f6                	test   %esi,%esi
40f345:	79 2f                	jns    0x40f376
40f347:	56                   	push   %esi
40f348:	68 54 1f 40 00       	push   $0x401f54
40f34d:	6a 6e                	push   $0x6e
40f34f:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f352:	5a                   	pop    %edx
40f353:	e8 38 7c ff ff       	call   0x406f90
40f358:	83 bd f4 fd ff ff 00 	cmpl   $0x0,-0x20c(%ebp)
40f35f:	0f 84 bb 00 00 00    	je     0x40f420
40f365:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40f36b:	ff 15 dc 62 42 00    	call   *0x4262dc
40f371:	e9 aa 00 00 00       	jmp    0x40f420
40f376:	8b b5 f4 fd ff ff    	mov    -0x20c(%ebp),%esi
40f37c:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40f382:	3b d8                	cmp    %eax,%ebx
40f384:	74 0a                	je     0x40f390
40f386:	56                   	push   %esi
40f387:	8b cb                	mov    %ebx,%ecx
40f389:	e8 a4 ee ff ff       	call   0x40e232
40f38e:	33 f6                	xor    %esi,%esi
40f390:	85 f6                	test   %esi,%esi
40f392:	74 07                	je     0x40f39b
40f394:	56                   	push   %esi
40f395:	ff 15 dc 62 42 00    	call   *0x4262dc
40f39b:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f39e:	e8 f4 01 00 00       	call   0x40f597
40f3a3:	33 c0                	xor    %eax,%eax
40f3a5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f3a8:	5f                   	pop    %edi
40f3a9:	5e                   	pop    %esi
40f3aa:	33 cd                	xor    %ebp,%ecx
40f3ac:	5b                   	pop    %ebx
40f3ad:	e8 be 24 01 00       	call   0x421870
40f3b2:	c9                   	leave
40f3b3:	c2 48 00             	ret    $0x48
40f3b6:	48                   	dec    %eax
40f3b7:	50                   	push   %eax
40f3b8:	6a 00                	push   $0x0
40f3ba:	e8 93 00 00 00       	call   0x40f452
40f3bf:	8b f0                	mov    %eax,%esi
40f3c1:	85 f6                	test   %esi,%esi
40f3c3:	79 0a                	jns    0x40f3cf
40f3c5:	56                   	push   %esi
40f3c6:	68 54 1f 40 00       	push   $0x401f54
40f3cb:	6a 74                	push   $0x74
40f3cd:	eb 80                	jmp    0x40f34f
40f3cf:	8b b5 f4 fd ff ff    	mov    -0x20c(%ebp),%esi
40f3d5:	8d 85 ec fd ff ff    	lea    -0x214(%ebp),%eax
40f3db:	83 a5 ec fd ff ff 00 	andl   $0x0,-0x214(%ebp)
40f3e2:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f3e5:	50                   	push   %eax
40f3e6:	ff b5 f0 fd ff ff    	push   -0x210(%ebp)
40f3ec:	56                   	push   %esi
40f3ed:	e8 6e 01 00 00       	call   0x40f560
40f3f2:	8b f8                	mov    %eax,%edi
40f3f4:	85 ff                	test   %edi,%edi
40f3f6:	79 37                	jns    0x40f42f
40f3f8:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f3fb:	57                   	push   %edi
40f3fc:	68 54 1f 40 00       	push   $0x401f54
40f401:	6a 77                	push   $0x77
40f403:	5a                   	pop    %edx
40f404:	e8 87 7b ff ff       	call   0x406f90
40f409:	83 bd f4 fd ff ff 00 	cmpl   $0x0,-0x20c(%ebp)
40f410:	74 0c                	je     0x40f41e
40f412:	ff b5 f4 fd ff ff    	push   -0x20c(%ebp)
40f418:	ff 15 dc 62 42 00    	call   *0x4262dc
40f41e:	8b f7                	mov    %edi,%esi
40f420:	8d 4d 08             	lea    0x8(%ebp),%ecx
40f423:	e8 6f 01 00 00       	call   0x40f597
40f428:	8b c6                	mov    %esi,%eax
40f42a:	e9 76 ff ff ff       	jmp    0x40f3a5
40f42f:	8b 85 f0 fd ff ff    	mov    -0x210(%ebp),%eax
40f435:	3b 85 ec fd ff ff    	cmp    -0x214(%ebp),%eax
40f43b:	0f 84 3b ff ff ff    	je     0x40f37c
40f441:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f444:	68 54 1f 40 00       	push   $0x401f54
40f449:	6a 7a                	push   $0x7a
40f44b:	5a                   	pop    %edx
40f44c:	e8 8a 7b ff ff       	call   0x406fdb
40f451:	cc                   	int3
40f452:	8b ff                	mov    %edi,%edi
40f454:	55                   	push   %ebp
40f455:	8b ec                	mov    %esp,%ebp
40f457:	51                   	push   %ecx
40f458:	51                   	push   %ecx
40f459:	8b 55 08             	mov    0x8(%ebp),%edx
40f45c:	56                   	push   %esi
40f45d:	57                   	push   %edi
40f45e:	ff 75 0c             	push   0xc(%ebp)
40f461:	8b f9                	mov    %ecx,%edi
40f463:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40f466:	e8 78 06 00 00       	call   0x40fae3
40f46b:	8b f0                	mov    %eax,%esi
40f46d:	3b fe                	cmp    %esi,%edi
40f46f:	74 0c                	je     0x40f47d
40f471:	ff 36                	push   (%esi)
40f473:	8b cf                	mov    %edi,%ecx
40f475:	e8 b8 ed ff ff       	call   0x40e232
40f47a:	83 26 00             	andl   $0x0,(%esi)
40f47d:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f481:	74 09                	je     0x40f48c
40f483:	ff 75 fc             	push   -0x4(%ebp)
40f486:	ff 15 dc 62 42 00    	call   *0x4262dc
40f48c:	8b 07                	mov    (%edi),%eax
40f48e:	f7 d8                	neg    %eax
40f490:	5f                   	pop    %edi
40f491:	1b c0                	sbb    %eax,%eax
40f493:	25 f2 ff f8 7f       	and    $0x7ff8fff2,%eax
40f498:	05 0e 00 07 80       	add    $0x8007000e,%eax
40f49d:	5e                   	pop    %esi
40f49e:	c9                   	leave
40f49f:	c2 08 00             	ret    $0x8
40f4a2:	cc                   	int3
40f4a3:	cc                   	int3
40f4a4:	cc                   	int3
40f4a5:	cc                   	int3
40f4a6:	cc                   	int3
40f4a7:	cc                   	int3
40f4a8:	cc                   	int3
40f4a9:	cc                   	int3
40f4aa:	cc                   	int3
40f4ab:	cc                   	int3
40f4ac:	cc                   	int3
40f4ad:	cc                   	int3
40f4ae:	cc                   	int3
40f4af:	cc                   	int3
40f4b0:	8b ff                	mov    %edi,%edi
40f4b2:	55                   	push   %ebp
40f4b3:	8b ec                	mov    %esp,%ebp
40f4b5:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40f4b9:	56                   	push   %esi
40f4ba:	8b f1                	mov    %ecx,%esi
40f4bc:	c7 06 34 10 40 00    	movl   $0x401034,(%esi)
40f4c2:	74 0a                	je     0x40f4ce
40f4c4:	6a 08                	push   $0x8
40f4c6:	56                   	push   %esi
40f4c7:	e8 62 28 01 00       	call   0x421d2e
40f4cc:	59                   	pop    %ecx
40f4cd:	59                   	pop    %ecx
40f4ce:	8b c6                	mov    %esi,%eax
40f4d0:	5e                   	pop    %esi
40f4d1:	5d                   	pop    %ebp
40f4d2:	c2 04 00             	ret    $0x4
40f4d5:	cc                   	int3
40f4d6:	cc                   	int3
40f4d7:	cc                   	int3
40f4d8:	cc                   	int3
40f4d9:	cc                   	int3
40f4da:	cc                   	int3
40f4db:	cc                   	int3
40f4dc:	cc                   	int3
40f4dd:	cc                   	int3
40f4de:	cc                   	int3
40f4df:	cc                   	int3
40f4e0:	8b ff                	mov    %edi,%edi
40f4e2:	55                   	push   %ebp
40f4e3:	8b ec                	mov    %esp,%ebp
40f4e5:	8b 55 08             	mov    0x8(%ebp),%edx
40f4e8:	c7 02 5c 10 40 00    	movl   $0x40105c,(%edx)
40f4ee:	8b 41 04             	mov    0x4(%ecx),%eax
40f4f1:	89 42 04             	mov    %eax,0x4(%edx)
40f4f4:	5d                   	pop    %ebp
40f4f5:	c2 04 00             	ret    $0x4
40f4f8:	cc                   	int3
40f4f9:	cc                   	int3
40f4fa:	cc                   	int3
40f4fb:	cc                   	int3
40f4fc:	cc                   	int3
40f4fd:	cc                   	int3
40f4fe:	cc                   	int3
40f4ff:	cc                   	int3
40f500:	8b ff                	mov    %edi,%edi
40f502:	55                   	push   %ebp
40f503:	8b ec                	mov    %esp,%ebp
40f505:	8b 45 10             	mov    0x10(%ebp),%eax
40f508:	56                   	push   %esi
40f509:	57                   	push   %edi
40f50a:	8b 38                	mov    (%eax),%edi
40f50c:	8b 45 0c             	mov    0xc(%ebp),%eax
40f50f:	8b 30                	mov    (%eax),%esi
40f511:	8b 45 08             	mov    0x8(%ebp),%eax
40f514:	56                   	push   %esi
40f515:	ff 30                	push   (%eax)
40f517:	8b 41 04             	mov    0x4(%ecx),%eax
40f51a:	ff 30                	push   (%eax)
40f51c:	ff 15 6c 90 42 00    	call   *0x42906c
40f522:	0f b7 c0             	movzwl %ax,%eax
40f525:	66 85 c0             	test   %ax,%ax
40f528:	79 12                	jns    0x40f53c
40f52a:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f52d:	68 20 1f 40 00       	push   $0x401f20
40f532:	6a 17                	push   $0x17
40f534:	5a                   	pop    %edx
40f535:	e8 73 7a ff ff       	call   0x406fad
40f53a:	eb 09                	jmp    0x40f545
40f53c:	74 03                	je     0x40f541
40f53e:	98                   	cwtl
40f53f:	8b f0                	mov    %eax,%esi
40f541:	89 37                	mov    %esi,(%edi)
40f543:	33 c0                	xor    %eax,%eax
40f545:	5f                   	pop    %edi
40f546:	5e                   	pop    %esi
40f547:	5d                   	pop    %ebp
40f548:	c2 0c 00             	ret    $0xc
40f54b:	8b ff                	mov    %edi,%edi
40f54d:	55                   	push   %ebp
40f54e:	8b ec                	mov    %esp,%ebp
40f550:	8b 55 08             	mov    0x8(%ebp),%edx
40f553:	8b 02                	mov    (%edx),%eax
40f555:	89 01                	mov    %eax,(%ecx)
40f557:	8b c1                	mov    %ecx,%eax
40f559:	83 22 00             	andl   $0x0,(%edx)
40f55c:	5d                   	pop    %ebp
40f55d:	c2 04 00             	ret    $0x4
40f560:	8b ff                	mov    %edi,%edi
40f562:	55                   	push   %ebp
40f563:	8b ec                	mov    %esp,%ebp
40f565:	56                   	push   %esi
40f566:	57                   	push   %edi
40f567:	8b 79 40             	mov    0x40(%ecx),%edi
40f56a:	85 ff                	test   %edi,%edi
40f56c:	74 23                	je     0x40f591
40f56e:	8b 07                	mov    (%edi),%eax
40f570:	8b 70 10             	mov    0x10(%eax),%esi
40f573:	8d 45 10             	lea    0x10(%ebp),%eax
40f576:	50                   	push   %eax
40f577:	8d 45 0c             	lea    0xc(%ebp),%eax
40f57a:	8b ce                	mov    %esi,%ecx
40f57c:	50                   	push   %eax
40f57d:	8d 45 08             	lea    0x8(%ebp),%eax
40f580:	50                   	push   %eax
40f581:	ff 15 78 64 42 00    	call   *0x426478
40f587:	8b cf                	mov    %edi,%ecx
40f589:	ff d6                	call   *%esi
40f58b:	5f                   	pop    %edi
40f58c:	5e                   	pop    %esi
40f58d:	5d                   	pop    %ebp
40f58e:	c2 0c 00             	ret    $0xc
40f591:	e8 64 7a ff ff       	call   0x406ffa
40f596:	cc                   	int3
40f597:	8b ff                	mov    %edi,%edi
40f599:	57                   	push   %edi
40f59a:	8b 79 40             	mov    0x40(%ecx),%edi
40f59d:	85 ff                	test   %edi,%edi
40f59f:	74 13                	je     0x40f5b4
40f5a1:	8b 07                	mov    (%edi),%eax
40f5a3:	56                   	push   %esi
40f5a4:	8b 70 0c             	mov    0xc(%eax),%esi
40f5a7:	8b ce                	mov    %esi,%ecx
40f5a9:	ff 15 78 64 42 00    	call   *0x426478
40f5af:	8b cf                	mov    %edi,%ecx
40f5b1:	ff d6                	call   *%esi
40f5b3:	5e                   	pop    %esi
40f5b4:	5f                   	pop    %edi
40f5b5:	c3                   	ret
40f5b6:	8b ff                	mov    %edi,%edi
40f5b8:	55                   	push   %ebp
40f5b9:	8b ec                	mov    %esp,%ebp
40f5bb:	56                   	push   %esi
40f5bc:	8b 35 84 4d 42 00    	mov    0x424d84,%esi
40f5c2:	85 f6                	test   %esi,%esi
40f5c4:	74 12                	je     0x40f5d8
40f5c6:	ff 75 08             	push   0x8(%ebp)
40f5c9:	6a 01                	push   $0x1
40f5cb:	51                   	push   %ecx
40f5cc:	8b ce                	mov    %esi,%ecx
40f5ce:	ff 15 78 64 42 00    	call   *0x426478
40f5d4:	ff d6                	call   *%esi
40f5d6:	eb 0c                	jmp    0x40f5e4
40f5d8:	8b 35 88 4d 42 00    	mov    0x424d88,%esi
40f5de:	85 f6                	test   %esi,%esi
40f5e0:	75 e4                	jne    0x40f5c6
40f5e2:	33 c0                	xor    %eax,%eax
40f5e4:	5e                   	pop    %esi
40f5e5:	5d                   	pop    %ebp
40f5e6:	c2 04 00             	ret    $0x4
40f5e9:	8b c1                	mov    %ecx,%eax
40f5eb:	83 e8 00             	sub    $0x0,%eax
40f5ee:	0f 84 8f 00 00 00    	je     0x40f683
40f5f4:	83 e8 01             	sub    $0x1,%eax
40f5f7:	74 7f                	je     0x40f678
40f5f9:	83 e8 01             	sub    $0x1,%eax
40f5fc:	74 6b                	je     0x40f669
40f5fe:	83 e8 01             	sub    $0x1,%eax
40f601:	74 57                	je     0x40f65a
40f603:	83 e8 01             	sub    $0x1,%eax
40f606:	74 43                	je     0x40f64b
40f608:	83 e8 01             	sub    $0x1,%eax
40f60b:	74 2f                	je     0x40f63c
40f60d:	83 e8 01             	sub    $0x1,%eax
40f610:	74 1b                	je     0x40f62d
40f612:	80 e9 64             	sub    $0x64,%cl
40f615:	80 f9 31             	cmp    $0x31,%cl
40f618:	77 69                	ja     0x40f683
40f61a:	f7 da                	neg    %edx
40f61c:	0f b6 c1             	movzbl %cl,%eax