40c289:	74 2e                	je     0x40c2b9
40c28b:	54                   	push   %esp
40c28c:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40c290:	8b d3                	mov    %ebx,%edx
40c292:	4a                   	dec    %edx
40c293:	8b c6                	mov    %esi,%eax
40c295:	e8 36 ff ff ff       	call   0x40c1d0
40c29a:	4b                   	dec    %ebx
40c29b:	3b 5c 24 04          	cmp    0x4(%esp),%ebx
40c29f:	7f 0c                	jg     0x40c2ad
40c2a1:	8b c6                	mov    %esi,%eax
40c2a3:	e8 d4 7f ff ff       	call   0x40427c
40c2a8:	3b 04 24             	cmp    (%esp),%eax
40c2ab:	7f 07                	jg     0x40c2b4
40c2ad:	33 c0                	xor    %eax,%eax
40c2af:	89 04 24             	mov    %eax,(%esp)
40c2b2:	eb 08                	jmp    0x40c2bc
40c2b4:	ff 04 24             	incl   (%esp)
40c2b7:	eb 03                	jmp    0x40c2bc
40c2b9:	89 1c 24             	mov    %ebx,(%esp)
40c2bc:	8b 04 24             	mov    (%esp),%eax
40c2bf:	59                   	pop    %ecx
40c2c0:	5a                   	pop    %edx
40c2c1:	5e                   	pop    %esi
40c2c2:	5b                   	pop    %ebx
40c2c3:	c3                   	ret
40c2c4:	53                   	push   %ebx
40c2c5:	56                   	push   %esi
40c2c6:	83 c4 f8             	add    $0xfffffff8,%esp
40c2c9:	8b da                	mov    %edx,%ebx
40c2cb:	8b f0                	mov    %eax,%esi
40c2cd:	33 c0                	xor    %eax,%eax
40c2cf:	89 04 24             	mov    %eax,(%esp)
40c2d2:	85 db                	test   %ebx,%ebx
40c2d4:	7e 46                	jle    0x40c31c
40c2d6:	8b c6                	mov    %esi,%eax
40c2d8:	e8 9f 7f ff ff       	call   0x40427c
40c2dd:	3b d8                	cmp    %eax,%ebx
40c2df:	7e 09                	jle    0x40c2ea
40c2e1:	8b c6                	mov    %esi,%eax
40c2e3:	e8 94 7f ff ff       	call   0x40427c
40c2e8:	8b d8                	mov    %eax,%ebx
40c2ea:	80 3d 4c 97 46 00 00 	cmpb   $0x0,0x46974c
40c2f1:	74 26                	je     0x40c319
40c2f3:	54                   	push   %esp
40c2f4:	8d 4c 24 08          	lea    0x8(%esp),%ecx
40c2f8:	8b d3                	mov    %ebx,%edx
40c2fa:	8b c6                	mov    %esi,%eax
40c2fc:	e8 cf fe ff ff       	call   0x40c1d0
40c301:	8b c6                	mov    %esi,%eax
40c303:	e8 74 7f ff ff       	call   0x40427c
40c308:	3b 04 24             	cmp    (%esp),%eax
40c30b:	7d 0f                	jge    0x40c31c
40c30d:	8b c6                	mov    %esi,%eax
40c30f:	e8 68 7f ff ff       	call   0x40427c
40c314:	89 04 24             	mov    %eax,(%esp)
40c317:	eb 03                	jmp    0x40c31c
40c319:	89 1c 24             	mov    %ebx,(%esp)
40c31c:	8b 04 24             	mov    (%esp),%eax
40c31f:	59                   	pop    %ecx
40c320:	5a                   	pop    %edx
40c321:	5e                   	pop    %esi
40c322:	5b                   	pop    %ebx
40c323:	c3                   	ret
40c324:	53                   	push   %ebx
40c325:	8b d8                	mov    %eax,%ebx
40c327:	80 3d 4c 97 46 00 00 	cmpb   $0x0,0x46974c
40c32e:	74 0a                	je     0x40c33a
40c330:	53                   	push   %ebx
40c331:	e8 22 a1 ff ff       	call   0x406458
40c336:	2b c3                	sub    %ebx,%eax
40c338:	5b                   	pop    %ebx
40c339:	c3                   	ret
40c33a:	b8 01 00 00 00       	mov    $0x1,%eax
40c33f:	5b                   	pop    %ebx
40c340:	c3                   	ret
40c341:	8d 40 00             	lea    0x0(%eax),%eax
40c344:	50                   	push   %eax
40c345:	e8 0e a1 ff ff       	call   0x406458
40c34a:	c3                   	ret
40c34b:	90                   	nop
40c34c:	53                   	push   %ebx
40c34d:	56                   	push   %esi
40c34e:	8b f2                	mov    %edx,%esi
40c350:	8b d8                	mov    %eax,%ebx
40c352:	b8 01 00 00 00       	mov    $0x1,%eax
40c357:	80 3d 4c 97 46 00 00 	cmpb   $0x0,0x46974c
40c35e:	74 22                	je     0x40c382
40c360:	8a 54 33 ff          	mov    -0x1(%ebx,%esi,1),%dl
40c364:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c36a:	0f a3 15 0c d1 45 00 	bt     %edx,0x45d10c
40c371:	73 0f                	jae    0x40c382
40c373:	8b c3                	mov    %ebx,%eax
40c375:	e8 02 81 ff ff       	call   0x40447c
40c37a:	03 c6                	add    %esi,%eax
40c37c:	48                   	dec    %eax
40c37d:	e8 a2 ff ff ff       	call   0x40c324
40c382:	5e                   	pop    %esi
40c383:	5b                   	pop    %ebx
40c384:	c3                   	ret
40c385:	8d 40 00             	lea    0x0(%eax),%eax
40c388:	53                   	push   %ebx
40c389:	56                   	push   %esi
40c38a:	8b da                	mov    %edx,%ebx
40c38c:	8b f0                	mov    %eax,%esi
40c38e:	8d 43 01             	lea    0x1(%ebx),%eax
40c391:	80 3d 4c 97 46 00 00 	cmpb   $0x0,0x46974c
40c398:	74 24                	je     0x40c3be
40c39a:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c39e:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c3a4:	0f a3 15 0c d1 45 00 	bt     %edx,0x45d10c
40c3ab:	73 11                	jae    0x40c3be
40c3ad:	8b c6                	mov    %esi,%eax
40c3af:	e8 c8 80 ff ff       	call   0x40447c
40c3b4:	03 c3                	add    %ebx,%eax
40c3b6:	48                   	dec    %eax
40c3b7:	e8 68 ff ff ff       	call   0x40c324
40c3bc:	03 c3                	add    %ebx,%eax
40c3be:	5e                   	pop    %esi
40c3bf:	5b                   	pop    %ebx
40c3c0:	c3                   	ret
40c3c1:	8d 40 00             	lea    0x0(%eax),%eax
40c3c4:	53                   	push   %ebx
40c3c5:	56                   	push   %esi
40c3c6:	8b da                	mov    %edx,%ebx
40c3c8:	8b f0                	mov    %eax,%esi
40c3ca:	85 db                	test   %ebx,%ebx
40c3cc:	7e 1f                	jle    0x40c3ed
40c3ce:	8b c6                	mov    %esi,%eax
40c3d0:	e8 a7 7e ff ff       	call   0x40427c
40c3d5:	3b d8                	cmp    %eax,%ebx
40c3d7:	7f 14                	jg     0x40c3ed
40c3d9:	80 7c 1e ff 5c       	cmpb   $0x5c,-0x1(%esi,%ebx,1)
40c3de:	75 0d                	jne    0x40c3ed
40c3e0:	8b d3                	mov    %ebx,%edx
40c3e2:	8b c6                	mov    %esi,%eax
40c3e4:	e8 2b fd ff ff       	call   0x40c114
40c3e9:	84 c0                	test   %al,%al
40c3eb:	74 05                	je     0x40c3f2
40c3ed:	33 c0                	xor    %eax,%eax
40c3ef:	5e                   	pop    %esi
40c3f0:	5b                   	pop    %ebx
40c3f1:	c3                   	ret
40c3f2:	b0 01                	mov    $0x1,%al
40c3f4:	5e                   	pop    %esi
40c3f5:	5b                   	pop    %ebx
40c3f6:	c3                   	ret
40c3f7:	90                   	nop
40c3f8:	53                   	push   %ebx
40c3f9:	56                   	push   %esi
40c3fa:	57                   	push   %edi
40c3fb:	55                   	push   %ebp
40c3fc:	8b f9                	mov    %ecx,%edi
40c3fe:	8b f2                	mov    %edx,%esi
40c400:	8b e8                	mov    %eax,%ebp
40c402:	33 db                	xor    %ebx,%ebx
40c404:	85 ff                	test   %edi,%edi
40c406:	7e 2d                	jle    0x40c435
40c408:	8b c6                	mov    %esi,%eax
40c40a:	e8 6d 7e ff ff       	call   0x40427c
40c40f:	3b f8                	cmp    %eax,%edi
40c411:	7f 22                	jg     0x40c435
40c413:	8b d7                	mov    %edi,%edx
40c415:	8b c6                	mov    %esi,%eax
40c417:	e8 f8 fc ff ff       	call   0x40c114
40c41c:	84 c0                	test   %al,%al
40c41e:	75 15                	jne    0x40c435
40c420:	8b c5                	mov    %ebp,%eax
40c422:	e8 55 80 ff ff       	call   0x40447c
40c427:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
40c42b:	e8 7c c3 ff ff       	call   0x4087ac
40c430:	85 c0                	test   %eax,%eax
40c432:	0f 95 c3             	setne  %bl
40c435:	8b c3                	mov    %ebx,%eax
40c437:	5d                   	pop    %ebp
40c438:	5f                   	pop    %edi
40c439:	5e                   	pop    %esi
40c43a:	5b                   	pop    %ebx
40c43b:	c3                   	ret
40c43c:	53                   	push   %ebx
40c43d:	56                   	push   %esi
40c43e:	57                   	push   %edi
40c43f:	55                   	push   %ebp
40c440:	8b f2                	mov    %edx,%esi
40c442:	8b d8                	mov    %eax,%ebx
40c444:	33 ff                	xor    %edi,%edi
40c446:	8b c3                	mov    %ebx,%eax
40c448:	e8 2f 80 ff ff       	call   0x40447c
40c44d:	50                   	push   %eax
40c44e:	8b c6                	mov    %esi,%eax
40c450:	e8 27 80 ff ff       	call   0x40447c
40c455:	8b e8                	mov    %eax,%ebp
40c457:	8b c5                	mov    %ebp,%eax
40c459:	5a                   	pop    %edx
40c45a:	e8 a1 00 00 00       	call   0x40c500
40c45f:	8b d8                	mov    %eax,%ebx
40c461:	85 db                	test   %ebx,%ebx
40c463:	74 05                	je     0x40c46a
40c465:	8b fb                	mov    %ebx,%edi
40c467:	2b fd                	sub    %ebp,%edi
40c469:	47                   	inc    %edi
40c46a:	8b c7                	mov    %edi,%eax
40c46c:	5d                   	pop    %ebp
40c46d:	5f                   	pop    %edi
40c46e:	5e                   	pop    %esi
40c46f:	5b                   	pop    %ebx
40c470:	c3                   	ret
40c471:	8d 40 00             	lea    0x0(%eax),%eax
40c474:	53                   	push   %ebx
40c475:	56                   	push   %esi
40c476:	57                   	push   %edi
40c477:	55                   	push   %ebp
40c478:	8b fa                	mov    %edx,%edi
40c47a:	8b f0                	mov    %eax,%esi
40c47c:	80 3d 4c 97 46 00 00 	cmpb   $0x0,0x46974c
40c483:	74 6d                	je     0x40c4f2
40c485:	8b c6                	mov    %esi,%eax
40c487:	e8 f0 7d ff ff       	call   0x40427c
40c48c:	8b e8                	mov    %eax,%ebp
40c48e:	8b c7                	mov    %edi,%eax
40c490:	8b d5                	mov    %ebp,%edx
40c492:	e8 71 81 ff ff       	call   0x404608
40c497:	bb 01 00 00 00       	mov    $0x1,%ebx
40c49c:	3b eb                	cmp    %ebx,%ebp
40c49e:	7c 5b                	jl     0x40c4fb
40c4a0:	8b c7                	mov    %edi,%eax
40c4a2:	e8 2d 80 ff ff       	call   0x4044d4
40c4a7:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c4ab:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40c4af:	8a 44 1e ff          	mov    -0x1(%esi,%ebx,1),%al
40c4b3:	25 ff 00 00 00       	and    $0xff,%eax
40c4b8:	0f a3 05 0c d1 45 00 	bt     %eax,0x45d10c
40c4bf:	73 12                	jae    0x40c4d3
40c4c1:	43                   	inc    %ebx
40c4c2:	8b c7                	mov    %edi,%eax
40c4c4:	e8 0b 80 ff ff       	call   0x4044d4
40c4c9:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c4cd:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40c4d1:	eb 18                	jmp    0x40c4eb
40c4d3:	8b 07                	mov    (%edi),%eax
40c4d5:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
40c4d9:	04 bf                	add    $0xbf,%al
40c4db:	2c 1a                	sub    $0x1a,%al
40c4dd:	73 0c                	jae    0x40c4eb
40c4df:	8b c7                	mov    %edi,%eax
40c4e1:	e8 ee 7f ff ff       	call   0x4044d4
40c4e6:	80 44 18 ff 20       	addb   $0x20,-0x1(%eax,%ebx,1)
40c4eb:	43                   	inc    %ebx
40c4ec:	3b eb                	cmp    %ebx,%ebp
40c4ee:	7d b0                	jge    0x40c4a0
40c4f0:	eb 09                	jmp    0x40c4fb
40c4f2:	8b d7                	mov    %edi,%edx
40c4f4:	8b c6                	mov    %esi,%eax
40c4f6:	e8 c5 b7 ff ff       	call   0x407cc0
40c4fb:	5d                   	pop    %ebp
40c4fc:	5f                   	pop    %edi
40c4fd:	5e                   	pop    %esi
40c4fe:	5b                   	pop    %ebx
40c4ff:	c3                   	ret
40c500:	53                   	push   %ebx
40c501:	56                   	push   %esi
40c502:	57                   	push   %edi
40c503:	55                   	push   %ebp
40c504:	83 c4 f8             	add    $0xfffffff8,%esp
40c507:	8b ea                	mov    %edx,%ebp
40c509:	8b f0                	mov    %eax,%esi
40c50b:	33 db                	xor    %ebx,%ebx
40c50d:	85 f6                	test   %esi,%esi
40c50f:	0f 84 81 00 00 00    	je     0x40c596
40c515:	80 3e 00             	cmpb   $0x0,(%esi)
40c518:	74 7c                	je     0x40c596
40c51a:	85 ed                	test   %ebp,%ebp
40c51c:	74 78                	je     0x40c596
40c51e:	80 7d 00 00          	cmpb   $0x0,0x0(%ebp)
40c522:	74 72                	je     0x40c596
40c524:	8b c6                	mov    %esi,%eax
40c526:	e8 fd c0 ff ff       	call   0x408628
40c52b:	89 04 24             	mov    %eax,(%esp)
40c52e:	8b c5                	mov    %ebp,%eax
40c530:	e8 f3 c0 ff ff       	call   0x408628
40c535:	8b f8                	mov    %eax,%edi
40c537:	8b d5                	mov    %ebp,%edx
40c539:	8b c6                	mov    %esi,%eax
40c53b:	e8 80 c2 ff ff       	call   0x4087c0
40c540:	8b d8                	mov    %eax,%ebx
40c542:	eb 3f                	jmp    0x40c583
40c544:	8b d3                	mov    %ebx,%edx
40c546:	2b d6                	sub    %esi,%edx
40c548:	8b c6                	mov    %esi,%eax
40c54a:	e8 e9 fb ff ff       	call   0x40c138
40c54f:	88 44 24 04          	mov    %al,0x4(%esp)
40c553:	80 7c 24 04 02       	cmpb   $0x2,0x4(%esp)
40c558:	74 15                	je     0x40c56f
40c55a:	57                   	push   %edi
40c55b:	55                   	push   %ebp
40c55c:	57                   	push   %edi
40c55d:	53                   	push   %ebx
40c55e:	6a 00                	push   $0x0
40c560:	68 00 04 00 00       	push   $0x400
40c565:	e8 4e 9a ff ff       	call   0x405fb8
40c56a:	83 f8 02             	cmp    $0x2,%eax
40c56d:	74 27                	je     0x40c596
40c56f:	80 7c 24 04 01       	cmpb   $0x1,0x4(%esp)
40c574:	75 01                	jne    0x40c577
40c576:	43                   	inc    %ebx
40c577:	43                   	inc    %ebx
40c578:	8b d5                	mov    %ebp,%edx
40c57a:	8b c3                	mov    %ebx,%eax
40c57c:	e8 3f c2 ff ff       	call   0x4087c0
40c581:	8b d8                	mov    %eax,%ebx
40c583:	85 db                	test   %ebx,%ebx
40c585:	74 0d                	je     0x40c594
40c587:	8b c3                	mov    %ebx,%eax
40c589:	2b c6                	sub    %esi,%eax
40c58b:	8b 14 24             	mov    (%esp),%edx
40c58e:	2b d0                	sub    %eax,%edx
40c590:	3b fa                	cmp    %edx,%edi
40c592:	76 b0                	jbe    0x40c544
40c594:	33 db                	xor    %ebx,%ebx
40c596:	8b c3                	mov    %ebx,%eax
40c598:	59                   	pop    %ecx
40c599:	5a                   	pop    %edx
40c59a:	5d                   	pop    %ebp
40c59b:	5f                   	pop    %edi
40c59c:	5e                   	pop    %esi
40c59d:	5b                   	pop    %ebx
40c59e:	c3                   	ret
40c59f:	90                   	nop
40c5a0:	53                   	push   %ebx
40c5a1:	56                   	push   %esi
40c5a2:	8b da                	mov    %edx,%ebx
40c5a4:	8b d3                	mov    %ebx,%edx
40c5a6:	e8 1d 00 00 00       	call   0x40c5c8
40c5ab:	8b f0                	mov    %eax,%esi
40c5ad:	84 db                	test   %bl,%bl
40c5af:	74 12                	je     0x40c5c3
40c5b1:	85 c0                	test   %eax,%eax
40c5b3:	74 0e                	je     0x40c5c3
40c5b5:	8b f0                	mov    %eax,%esi
40c5b7:	40                   	inc    %eax
40c5b8:	8b d3                	mov    %ebx,%edx
40c5ba:	e8 09 00 00 00       	call   0x40c5c8
40c5bf:	85 c0                	test   %eax,%eax
40c5c1:	75 f2                	jne    0x40c5b5
40c5c3:	8b c6                	mov    %esi,%eax
40c5c5:	5e                   	pop    %esi
40c5c6:	5b                   	pop    %ebx
40c5c7:	c3                   	ret
40c5c8:	53                   	push   %ebx
40c5c9:	56                   	push   %esi