40c10b:	e8 48 81 ff ff       	call   0x404258
40c110:	3b 04 24             	cmp    (%esp),%eax
40c113:	7d 0f                	jge    0x40c124
40c115:	8b c6                	mov    %esi,%eax
40c117:	e8 3c 81 ff ff       	call   0x404258
40c11c:	89 04 24             	mov    %eax,(%esp)
40c11f:	eb 03                	jmp    0x40c124
40c121:	89 1c 24             	mov    %ebx,(%esp)
40c124:	8b 04 24             	mov    (%esp),%eax
40c127:	59                   	pop    %ecx
40c128:	5a                   	pop    %edx
40c129:	5e                   	pop    %esi
40c12a:	5b                   	pop    %ebx
40c12b:	c3                   	ret
40c12c:	53                   	push   %ebx
40c12d:	8b d8                	mov    %eax,%ebx
40c12f:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c136:	74 0a                	je     0x40c142
40c138:	53                   	push   %ebx
40c139:	e8 06 a3 ff ff       	call   0x406444
40c13e:	2b c3                	sub    %ebx,%eax
40c140:	5b                   	pop    %ebx
40c141:	c3                   	ret
40c142:	b8 01 00 00 00       	mov    $0x1,%eax
40c147:	5b                   	pop    %ebx
40c148:	c3                   	ret
40c149:	8d 40 00             	lea    0x0(%eax),%eax
40c14c:	50                   	push   %eax
40c14d:	e8 f2 a2 ff ff       	call   0x406444
40c152:	c3                   	ret
40c153:	90                   	nop
40c154:	53                   	push   %ebx
40c155:	56                   	push   %esi
40c156:	8b f2                	mov    %edx,%esi
40c158:	8b d8                	mov    %eax,%ebx
40c15a:	b8 01 00 00 00       	mov    $0x1,%eax
40c15f:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c166:	74 22                	je     0x40c18a
40c168:	8a 54 33 ff          	mov    -0x1(%ebx,%esi,1),%dl
40c16c:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c172:	0f a3 15 0c 31 46 00 	bt     %edx,0x46310c
40c179:	73 0f                	jae    0x40c18a
40c17b:	8b c3                	mov    %ebx,%eax
40c17d:	e8 d6 82 ff ff       	call   0x404458
40c182:	03 c6                	add    %esi,%eax
40c184:	48                   	dec    %eax
40c185:	e8 a2 ff ff ff       	call   0x40c12c
40c18a:	5e                   	pop    %esi
40c18b:	5b                   	pop    %ebx
40c18c:	c3                   	ret
40c18d:	8d 40 00             	lea    0x0(%eax),%eax
40c190:	53                   	push   %ebx
40c191:	56                   	push   %esi
40c192:	8b da                	mov    %edx,%ebx
40c194:	8b f0                	mov    %eax,%esi
40c196:	8d 43 01             	lea    0x1(%ebx),%eax
40c199:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c1a0:	74 24                	je     0x40c1c6
40c1a2:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c1a6:	81 e2 ff 00 00 00    	and    $0xff,%edx
40c1ac:	0f a3 15 0c 31 46 00 	bt     %edx,0x46310c
40c1b3:	73 11                	jae    0x40c1c6
40c1b5:	8b c6                	mov    %esi,%eax
40c1b7:	e8 9c 82 ff ff       	call   0x404458
40c1bc:	03 c3                	add    %ebx,%eax
40c1be:	48                   	dec    %eax
40c1bf:	e8 68 ff ff ff       	call   0x40c12c
40c1c4:	03 c3                	add    %ebx,%eax
40c1c6:	5e                   	pop    %esi
40c1c7:	5b                   	pop    %ebx
40c1c8:	c3                   	ret
40c1c9:	8d 40 00             	lea    0x0(%eax),%eax
40c1cc:	53                   	push   %ebx
40c1cd:	56                   	push   %esi
40c1ce:	8b da                	mov    %edx,%ebx
40c1d0:	8b f0                	mov    %eax,%esi
40c1d2:	85 db                	test   %ebx,%ebx
40c1d4:	7e 1f                	jle    0x40c1f5
40c1d6:	8b c6                	mov    %esi,%eax
40c1d8:	e8 7b 80 ff ff       	call   0x404258
40c1dd:	3b d8                	cmp    %eax,%ebx
40c1df:	7f 14                	jg     0x40c1f5
40c1e1:	80 7c 1e ff 5c       	cmpb   $0x5c,-0x1(%esi,%ebx,1)
40c1e6:	75 0d                	jne    0x40c1f5
40c1e8:	8b d3                	mov    %ebx,%edx
40c1ea:	8b c6                	mov    %esi,%eax
40c1ec:	e8 2b fd ff ff       	call   0x40bf1c
40c1f1:	84 c0                	test   %al,%al
40c1f3:	74 05                	je     0x40c1fa
40c1f5:	33 c0                	xor    %eax,%eax
40c1f7:	5e                   	pop    %esi
40c1f8:	5b                   	pop    %ebx
40c1f9:	c3                   	ret
40c1fa:	b0 01                	mov    $0x1,%al
40c1fc:	5e                   	pop    %esi
40c1fd:	5b                   	pop    %ebx
40c1fe:	c3                   	ret
40c1ff:	90                   	nop
40c200:	53                   	push   %ebx
40c201:	56                   	push   %esi
40c202:	57                   	push   %edi
40c203:	55                   	push   %ebp
40c204:	8b f9                	mov    %ecx,%edi
40c206:	8b f2                	mov    %edx,%esi
40c208:	8b e8                	mov    %eax,%ebp
40c20a:	33 db                	xor    %ebx,%ebx
40c20c:	85 ff                	test   %edi,%edi
40c20e:	7e 2d                	jle    0x40c23d
40c210:	8b c6                	mov    %esi,%eax
40c212:	e8 41 80 ff ff       	call   0x404258
40c217:	3b f8                	cmp    %eax,%edi
40c219:	7f 22                	jg     0x40c23d
40c21b:	8b d7                	mov    %edi,%edx
40c21d:	8b c6                	mov    %esi,%eax
40c21f:	e8 f8 fc ff ff       	call   0x40bf1c
40c224:	84 c0                	test   %al,%al
40c226:	75 15                	jne    0x40c23d
40c228:	8b c5                	mov    %ebp,%eax
40c22a:	e8 29 82 ff ff       	call   0x404458
40c22f:	8a 54 3e ff          	mov    -0x1(%esi,%edi,1),%dl
40c233:	e8 58 c5 ff ff       	call   0x408790
40c238:	85 c0                	test   %eax,%eax
40c23a:	0f 95 c3             	setne  %bl
40c23d:	8b c3                	mov    %ebx,%eax
40c23f:	5d                   	pop    %ebp
40c240:	5f                   	pop    %edi
40c241:	5e                   	pop    %esi
40c242:	5b                   	pop    %ebx
40c243:	c3                   	ret
40c244:	53                   	push   %ebx
40c245:	56                   	push   %esi
40c246:	57                   	push   %edi
40c247:	55                   	push   %ebp
40c248:	8b f2                	mov    %edx,%esi
40c24a:	8b d8                	mov    %eax,%ebx
40c24c:	33 ff                	xor    %edi,%edi
40c24e:	8b c3                	mov    %ebx,%eax
40c250:	e8 03 82 ff ff       	call   0x404458
40c255:	50                   	push   %eax
40c256:	8b c6                	mov    %esi,%eax
40c258:	e8 fb 81 ff ff       	call   0x404458
40c25d:	8b e8                	mov    %eax,%ebp
40c25f:	8b c5                	mov    %ebp,%eax
40c261:	5a                   	pop    %edx
40c262:	e8 a1 00 00 00       	call   0x40c308
40c267:	8b d8                	mov    %eax,%ebx
40c269:	85 db                	test   %ebx,%ebx
40c26b:	74 05                	je     0x40c272
40c26d:	8b fb                	mov    %ebx,%edi
40c26f:	2b fd                	sub    %ebp,%edi
40c271:	47                   	inc    %edi
40c272:	8b c7                	mov    %edi,%eax
40c274:	5d                   	pop    %ebp
40c275:	5f                   	pop    %edi
40c276:	5e                   	pop    %esi
40c277:	5b                   	pop    %ebx
40c278:	c3                   	ret
40c279:	8d 40 00             	lea    0x0(%eax),%eax
40c27c:	53                   	push   %ebx
40c27d:	56                   	push   %esi
40c27e:	57                   	push   %edi
40c27f:	55                   	push   %ebp
40c280:	8b fa                	mov    %edx,%edi
40c282:	8b f0                	mov    %eax,%esi
40c284:	80 3d 4c e7 46 00 00 	cmpb   $0x0,0x46e74c
40c28b:	74 6d                	je     0x40c2fa
40c28d:	8b c6                	mov    %esi,%eax
40c28f:	e8 c4 7f ff ff       	call   0x404258
40c294:	8b e8                	mov    %eax,%ebp
40c296:	8b c7                	mov    %edi,%eax
40c298:	8b d5                	mov    %ebp,%edx
40c29a:	e8 45 83 ff ff       	call   0x4045e4
40c29f:	bb 01 00 00 00       	mov    $0x1,%ebx
40c2a4:	3b eb                	cmp    %ebx,%ebp
40c2a6:	7c 5b                	jl     0x40c303
40c2a8:	8b c7                	mov    %edi,%eax
40c2aa:	e8 01 82 ff ff       	call   0x4044b0
40c2af:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c2b3:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40c2b7:	8a 44 1e ff          	mov    -0x1(%esi,%ebx,1),%al
40c2bb:	25 ff 00 00 00       	and    $0xff,%eax
40c2c0:	0f a3 05 0c 31 46 00 	bt     %eax,0x46310c
40c2c7:	73 12                	jae    0x40c2db
40c2c9:	43                   	inc    %ebx
40c2ca:	8b c7                	mov    %edi,%eax
40c2cc:	e8 df 81 ff ff       	call   0x4044b0
40c2d1:	8a 54 1e ff          	mov    -0x1(%esi,%ebx,1),%dl
40c2d5:	88 54 18 ff          	mov    %dl,-0x1(%eax,%ebx,1)
40c2d9:	eb 18                	jmp    0x40c2f3
40c2db:	8b 07                	mov    (%edi),%eax
40c2dd:	8a 44 18 ff          	mov    -0x1(%eax,%ebx,1),%al
40c2e1:	04 bf                	add    $0xbf,%al
40c2e3:	2c 1a                	sub    $0x1a,%al
40c2e5:	73 0c                	jae    0x40c2f3
40c2e7:	8b c7                	mov    %edi,%eax
40c2e9:	e8 c2 81 ff ff       	call   0x4044b0
40c2ee:	80 44 18 ff 20       	addb   $0x20,-0x1(%eax,%ebx,1)
40c2f3:	43                   	inc    %ebx
40c2f4:	3b eb                	cmp    %ebx,%ebp
40c2f6:	7d b0                	jge    0x40c2a8
40c2f8:	eb 09                	jmp    0x40c303
40c2fa:	8b d7                	mov    %edi,%edx
40c2fc:	8b c6                	mov    %esi,%eax
40c2fe:	e8 a1 b9 ff ff       	call   0x407ca4
40c303:	5d                   	pop    %ebp
40c304:	5f                   	pop    %edi
40c305:	5e                   	pop    %esi
40c306:	5b                   	pop    %ebx
40c307:	c3                   	ret
40c308:	53                   	push   %ebx
40c309:	56                   	push   %esi
40c30a:	57                   	push   %edi
40c30b:	55                   	push   %ebp
40c30c:	83 c4 f8             	add    $0xfffffff8,%esp
40c30f:	8b ea                	mov    %edx,%ebp
40c311:	8b f0                	mov    %eax,%esi
40c313:	33 db                	xor    %ebx,%ebx
40c315:	85 f6                	test   %esi,%esi
40c317:	0f 84 81 00 00 00    	je     0x40c39e
40c31d:	80 3e 00             	cmpb   $0x0,(%esi)
40c320:	74 7c                	je     0x40c39e
40c322:	85 ed                	test   %ebp,%ebp
40c324:	74 78                	je     0x40c39e
40c326:	80 7d 00 00          	cmpb   $0x0,0x0(%ebp)
40c32a:	74 72                	je     0x40c39e
40c32c:	8b c6                	mov    %esi,%eax
40c32e:	e8 d9 c2 ff ff       	call   0x40860c
40c333:	89 04 24             	mov    %eax,(%esp)
40c336:	8b c5                	mov    %ebp,%eax
40c338:	e8 cf c2 ff ff       	call   0x40860c
40c33d:	8b f8                	mov    %eax,%edi
40c33f:	8b d5                	mov    %ebp,%edx
40c341:	8b c6                	mov    %esi,%eax
40c343:	e8 5c c4 ff ff       	call   0x4087a4
40c348:	8b d8                	mov    %eax,%ebx
40c34a:	eb 3f                	jmp    0x40c38b
40c34c:	8b d3                	mov    %ebx,%edx
40c34e:	2b d6                	sub    %esi,%edx
40c350:	8b c6                	mov    %esi,%eax
40c352:	e8 e9 fb ff ff       	call   0x40bf40
40c357:	88 44 24 04          	mov    %al,0x4(%esp)
40c35b:	80 7c 24 04 02       	cmpb   $0x2,0x4(%esp)
40c360:	74 15                	je     0x40c377
40c362:	57                   	push   %edi
40c363:	55                   	push   %ebp
40c364:	57                   	push   %edi
40c365:	53                   	push   %ebx
40c366:	6a 00                	push   $0x0
40c368:	68 00 04 00 00       	push   $0x400
40c36d:	e8 22 9c ff ff       	call   0x405f94
40c372:	83 f8 02             	cmp    $0x2,%eax
40c375:	74 27                	je     0x40c39e
40c377:	80 7c 24 04 01       	cmpb   $0x1,0x4(%esp)
40c37c:	75 01                	jne    0x40c37f
40c37e:	43                   	inc    %ebx
40c37f:	43                   	inc    %ebx
40c380:	8b d5                	mov    %ebp,%edx
40c382:	8b c3                	mov    %ebx,%eax
40c384:	e8 1b c4 ff ff       	call   0x4087a4
40c389:	8b d8                	mov    %eax,%ebx
40c38b:	85 db                	test   %ebx,%ebx
40c38d:	74 0d                	je     0x40c39c
40c38f:	8b c3                	mov    %ebx,%eax
40c391:	2b c6                	sub    %esi,%eax
40c393:	8b 14 24             	mov    (%esp),%edx
40c396:	2b d0                	sub    %eax,%edx
40c398:	3b fa                	cmp    %edx,%edi
40c39a:	76 b0                	jbe    0x40c34c
40c39c:	33 db                	xor    %ebx,%ebx
40c39e:	8b c3                	mov    %ebx,%eax
40c3a0:	59                   	pop    %ecx
40c3a1:	5a                   	pop    %edx
40c3a2:	5d                   	pop    %ebp
40c3a3:	5f                   	pop    %edi
40c3a4:	5e                   	pop    %esi
40c3a5:	5b                   	pop    %ebx
40c3a6:	c3                   	ret
40c3a7:	90                   	nop
40c3a8:	53                   	push   %ebx
40c3a9:	56                   	push   %esi
40c3aa:	8b da                	mov    %edx,%ebx
40c3ac:	8b d3                	mov    %ebx,%edx
40c3ae:	e8 1d 00 00 00       	call   0x40c3d0
40c3b3:	8b f0                	mov    %eax,%esi
40c3b5:	84 db                	test   %bl,%bl
40c3b7:	74 12                	je     0x40c3cb
40c3b9:	85 c0                	test   %eax,%eax
40c3bb:	74 0e                	je     0x40c3cb
40c3bd:	8b f0                	mov    %eax,%esi
40c3bf:	40                   	inc    %eax
40c3c0:	8b d3                	mov    %ebx,%edx
40c3c2:	e8 09 00 00 00       	call   0x40c3d0
40c3c7:	85 c0                	test   %eax,%eax
40c3c9:	75 f2                	jne    0x40c3bd
40c3cb:	8b c6                	mov    %esi,%eax
40c3cd:	5e                   	pop    %esi
40c3ce:	5b                   	pop    %ebx
40c3cf:	c3                   	ret
40c3d0:	53                   	push   %ebx
40c3d1:	56                   	push   %esi
40c3d2:	57                   	push   %edi
40c3d3:	8b da                	mov    %edx,%ebx
40c3d5:	8b f0                	mov    %eax,%esi
40c3d7:	8b d3                	mov    %ebx,%edx
40c3d9:	8b c6                	mov    %esi,%eax
40c3db:	e8 b0 c3 ff ff       	call   0x408790
40c3e0:	8b f8                	mov    %eax,%edi
40c3e2:	85 ff                	test   %edi,%edi
40c3e4:	74 24                	je     0x40c40a
40c3e6:	8b d7                	mov    %edi,%edx
40c3e8:	2b d6                	sub    %esi,%edx
40c3ea:	8b c6                	mov    %esi,%eax
40c3ec:	e8 4f fb ff ff       	call   0x40bf40
40c3f1:	2c 01                	sub    $0x1,%al
40c3f3:	72 15                	jb     0x40c40a
40c3f5:	74 02                	je     0x40c3f9
40c3f7:	eb 01                	jmp    0x40c3fa
40c3f9:	47                   	inc    %edi
40c3fa:	47                   	inc    %edi
40c3fb:	8b d3                	mov    %ebx,%edx
40c3fd:	8b c7                	mov    %edi,%eax
40c3ff:	e8 8c c3 ff ff       	call   0x408790
40c404:	8b f8                	mov    %eax,%edi
40c406:	85 ff                	test   %edi,%edi
40c408:	75 dc                	jne    0x40c3e6
40c40a:	8b c7                	mov    %edi,%eax
40c40c:	5f                   	pop    %edi
40c40d:	5e                   	pop    %esi
40c40e:	5b                   	pop    %ebx
40c40f:	c3                   	ret
40c410:	55                   	push   %ebp
40c411:	8b ec                	mov    %esp,%ebp
40c413:	83 c4 f4             	add    $0xfffffff4,%esp
40c416:	53                   	push   %ebx
40c417:	33 d2                	xor    %edx,%edx
40c419:	89 55 f4             	mov    %edx,-0xc(%ebp)
40c41c:	33 d2                	xor    %edx,%edx
40c41e:	55                   	push   %ebp
40c41f:	68 74 c4 40 00       	push   $0x40c474
40c424:	64 ff 32             	push   %fs:(%edx)
40c427:	64 89 22             	mov    %esp,%fs:(%edx)
40c42a:	6a 07                	push   $0x7
40c42c:	8d 55 f9             	lea    -0x7(%ebp),%edx
40c42f:	52                   	push   %edx
40c430:	68 04 10 00 00       	push   $0x1004
40c435:	50                   	push   %eax
40c436:	e8 31 9c ff ff       	call   0x40606c
40c43b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c43e:	8d 55 f9             	lea    -0x7(%ebp),%edx
40c441:	b9 07 00 00 00       	mov    $0x7,%ecx