40f012:	43                   	inc    %ebx
40f013:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f016:	03 d9                	add    %ecx,%ebx
40f018:	83 c0 04             	add    $0x4,%eax
40f01b:	42                   	inc    %edx
40f01c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f01f:	3b d6                	cmp    %esi,%edx
40f021:	75 dd                	jne    0x40f000
40f023:	8b 55 f4             	mov    -0xc(%ebp),%edx
40f026:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f029:	33 db                	xor    %ebx,%ebx
40f02b:	6a 01                	push   $0x1
40f02d:	ff 75 fc             	push   -0x4(%ebp)
40f030:	52                   	push   %edx
40f031:	e8 3b c5 ff ff       	call   0x40b571
40f036:	8b f0                	mov    %eax,%esi
40f038:	83 c4 0c             	add    $0xc,%esp
40f03b:	85 f6                	test   %esi,%esi
40f03d:	75 13                	jne    0x40f052
40f03f:	83 ce ff             	or     $0xffffffff,%esi
40f042:	89 75 f8             	mov    %esi,-0x8(%ebp)
40f045:	e9 85 00 00 00       	jmp    0x40f0cf
40f04a:	8b 7d d8             	mov    -0x28(%ebp),%edi
40f04d:	e9 84 00 00 00       	jmp    0x40f0d6
40f052:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f055:	89 7d f8             	mov    %edi,-0x8(%ebp)
40f058:	8d 04 86             	lea    (%esi,%eax,4),%eax
40f05b:	8b c8                	mov    %eax,%ecx
40f05d:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f060:	8b c7                	mov    %edi,%eax
40f062:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40f065:	3b 45 dc             	cmp    -0x24(%ebp),%eax
40f068:	74 5b                	je     0x40f0c5
40f06a:	8b d6                	mov    %esi,%edx
40f06c:	2b d7                	sub    %edi,%edx
40f06e:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40f071:	8b 00                	mov    (%eax),%eax
40f073:	8b d0                	mov    %eax,%edx
40f075:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f078:	8d 42 01             	lea    0x1(%edx),%eax
40f07b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f07e:	8a 02                	mov    (%edx),%al
40f080:	42                   	inc    %edx
40f081:	84 c0                	test   %al,%al
40f083:	75 f9                	jne    0x40f07e
40f085:	2b 55 f0             	sub    -0x10(%ebp),%edx
40f088:	8d 42 01             	lea    0x1(%edx),%eax
40f08b:	50                   	push   %eax
40f08c:	ff 75 ec             	push   -0x14(%ebp)
40f08f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f092:	8b 45 e8             	mov    -0x18(%ebp),%eax
40f095:	2b c1                	sub    %ecx,%eax
40f097:	03 45 fc             	add    -0x4(%ebp),%eax
40f09a:	50                   	push   %eax
40f09b:	51                   	push   %ecx
40f09c:	e8 90 47 00 00       	call   0x413831
40f0a1:	83 c4 10             	add    $0x10,%esp
40f0a4:	85 c0                	test   %eax,%eax
40f0a6:	75 72                	jne    0x40f11a
40f0a8:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f0ab:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40f0ae:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40f0b1:	89 0c 02             	mov    %ecx,(%edx,%eax,1)
40f0b4:	83 c0 04             	add    $0x4,%eax
40f0b7:	03 4d f0             	add    -0x10(%ebp),%ecx
40f0ba:	89 4d f4             	mov    %ecx,-0xc(%ebp)
40f0bd:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f0c0:	3b 45 dc             	cmp    -0x24(%ebp),%eax
40f0c3:	75 ac                	jne    0x40f071
40f0c5:	8b 45 0c             	mov    0xc(%ebp),%eax
40f0c8:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40f0cb:	89 30                	mov    %esi,(%eax)
40f0cd:	8b f3                	mov    %ebx,%esi
40f0cf:	53                   	push   %ebx
40f0d0:	e8 6e fc ff ff       	call   0x40ed43
40f0d5:	59                   	pop    %ecx
40f0d6:	8b 45 dc             	mov    -0x24(%ebp),%eax
40f0d9:	8b d7                	mov    %edi,%edx
40f0db:	2b c2                	sub    %edx,%eax
40f0dd:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40f0e0:	83 c0 03             	add    $0x3,%eax
40f0e3:	c1 e8 02             	shr    $0x2,%eax
40f0e6:	39 55 dc             	cmp    %edx,-0x24(%ebp)
40f0e9:	1b c9                	sbb    %ecx,%ecx
40f0eb:	f7 d1                	not    %ecx
40f0ed:	23 c8                	and    %eax,%ecx
40f0ef:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40f0f2:	74 18                	je     0x40f10c
40f0f4:	8b f1                	mov    %ecx,%esi
40f0f6:	ff 37                	push   (%edi)
40f0f8:	e8 46 fc ff ff       	call   0x40ed43
40f0fd:	43                   	inc    %ebx
40f0fe:	8d 7f 04             	lea    0x4(%edi),%edi
40f101:	59                   	pop    %ecx
40f102:	3b de                	cmp    %esi,%ebx
40f104:	75 f0                	jne    0x40f0f6
40f106:	8b 7d d8             	mov    -0x28(%ebp),%edi
40f109:	8b 75 f8             	mov    -0x8(%ebp),%esi
40f10c:	57                   	push   %edi
40f10d:	e8 31 fc ff ff       	call   0x40ed43
40f112:	59                   	pop    %ecx
40f113:	5f                   	pop    %edi
40f114:	5b                   	pop    %ebx
40f115:	8b c6                	mov    %esi,%eax
40f117:	5e                   	pop    %esi
40f118:	c9                   	leave
40f119:	c3                   	ret
40f11a:	53                   	push   %ebx
40f11b:	53                   	push   %ebx
40f11c:	53                   	push   %ebx
40f11d:	53                   	push   %ebx
40f11e:	53                   	push   %ebx
40f11f:	e8 02 fb ff ff       	call   0x40ec26
40f124:	cc                   	int3
40f125:	8b ff                	mov    %edi,%edi
40f127:	55                   	push   %ebp
40f128:	8b ec                	mov    %esp,%ebp
40f12a:	51                   	push   %ecx
40f12b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f12e:	8d 51 01             	lea    0x1(%ecx),%edx
40f131:	8a 01                	mov    (%ecx),%al
40f133:	41                   	inc    %ecx
40f134:	84 c0                	test   %al,%al
40f136:	75 f9                	jne    0x40f131
40f138:	57                   	push   %edi
40f139:	8b 7d 10             	mov    0x10(%ebp),%edi
40f13c:	2b ca                	sub    %edx,%ecx
40f13e:	8b c7                	mov    %edi,%eax
40f140:	41                   	inc    %ecx
40f141:	f7 d0                	not    %eax
40f143:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f146:	3b c8                	cmp    %eax,%ecx
40f148:	76 06                	jbe    0x40f150
40f14a:	6a 0c                	push   $0xc
40f14c:	58                   	pop    %eax
40f14d:	5f                   	pop    %edi
40f14e:	c9                   	leave
40f14f:	c3                   	ret
40f150:	53                   	push   %ebx
40f151:	56                   	push   %esi
40f152:	8d 5f 01             	lea    0x1(%edi),%ebx
40f155:	03 d9                	add    %ecx,%ebx
40f157:	6a 01                	push   $0x1
40f159:	53                   	push   %ebx
40f15a:	e8 87 fb ff ff       	call   0x40ece6
40f15f:	8b f0                	mov    %eax,%esi
40f161:	59                   	pop    %ecx
40f162:	59                   	pop    %ecx
40f163:	85 ff                	test   %edi,%edi
40f165:	74 12                	je     0x40f179
40f167:	57                   	push   %edi
40f168:	ff 75 0c             	push   0xc(%ebp)
40f16b:	53                   	push   %ebx
40f16c:	56                   	push   %esi
40f16d:	e8 bf 46 00 00       	call   0x413831
40f172:	83 c4 10             	add    $0x10,%esp
40f175:	85 c0                	test   %eax,%eax
40f177:	75 50                	jne    0x40f1c9
40f179:	ff 75 fc             	push   -0x4(%ebp)
40f17c:	2b df                	sub    %edi,%ebx
40f17e:	8d 04 3e             	lea    (%esi,%edi,1),%eax
40f181:	ff 75 08             	push   0x8(%ebp)
40f184:	53                   	push   %ebx
40f185:	50                   	push   %eax
40f186:	e8 a6 46 00 00       	call   0x413831
40f18b:	83 c4 10             	add    $0x10,%esp
40f18e:	85 c0                	test   %eax,%eax
40f190:	75 37                	jne    0x40f1c9
40f192:	8b 5d 14             	mov    0x14(%ebp),%ebx
40f195:	8b cb                	mov    %ebx,%ecx
40f197:	e8 84 03 00 00       	call   0x40f520
40f19c:	33 ff                	xor    %edi,%edi
40f19e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f1a1:	85 c0                	test   %eax,%eax
40f1a3:	74 0c                	je     0x40f1b1
40f1a5:	56                   	push   %esi
40f1a6:	e8 98 fb ff ff       	call   0x40ed43
40f1ab:	8b 75 fc             	mov    -0x4(%ebp),%esi
40f1ae:	59                   	pop    %ecx
40f1af:	eb 0b                	jmp    0x40f1bc
40f1b1:	8b 43 04             	mov    0x4(%ebx),%eax
40f1b4:	89 30                	mov    %esi,(%eax)
40f1b6:	8b f7                	mov    %edi,%esi
40f1b8:	83 43 04 04          	addl   $0x4,0x4(%ebx)
40f1bc:	57                   	push   %edi
40f1bd:	e8 81 fb ff ff       	call   0x40ed43
40f1c2:	59                   	pop    %ecx
40f1c3:	8b c6                	mov    %esi,%eax
40f1c5:	5e                   	pop    %esi
40f1c6:	5b                   	pop    %ebx
40f1c7:	eb 84                	jmp    0x40f14d
40f1c9:	33 ff                	xor    %edi,%edi
40f1cb:	57                   	push   %edi
40f1cc:	57                   	push   %edi
40f1cd:	57                   	push   %edi
40f1ce:	57                   	push   %edi
40f1cf:	57                   	push   %edi
40f1d0:	e8 51 fa ff ff       	call   0x40ec26
40f1d5:	cc                   	int3
40f1d6:	8b ff                	mov    %edi,%edi
40f1d8:	55                   	push   %ebp
40f1d9:	8b ec                	mov    %esp,%ebp
40f1db:	81 ec 98 02 00 00    	sub    $0x298,%esp
40f1e1:	a1 18 60 42 00       	mov    0x426018,%eax
40f1e6:	33 c5                	xor    %ebp,%eax
40f1e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f1eb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f1ee:	8b 55 10             	mov    0x10(%ebp),%edx
40f1f1:	53                   	push   %ebx
40f1f2:	57                   	push   %edi
40f1f3:	8b 7d 08             	mov    0x8(%ebp),%edi
40f1f6:	89 95 a4 fd ff ff    	mov    %edx,-0x25c(%ebp)
40f1fc:	3b cf                	cmp    %edi,%ecx
40f1fe:	74 23                	je     0x40f223
40f200:	8a 01                	mov    (%ecx),%al
40f202:	3c 2f                	cmp    $0x2f,%al
40f204:	74 17                	je     0x40f21d
40f206:	3c 5c                	cmp    $0x5c,%al
40f208:	74 13                	je     0x40f21d
40f20a:	3c 3a                	cmp    $0x3a,%al
40f20c:	74 0f                	je     0x40f21d
40f20e:	51                   	push   %ecx
40f20f:	57                   	push   %edi
40f210:	e8 6b 46 00 00       	call   0x413880
40f215:	59                   	pop    %ecx
40f216:	59                   	pop    %ecx
40f217:	8b c8                	mov    %eax,%ecx
40f219:	3b cf                	cmp    %edi,%ecx
40f21b:	75 e3                	jne    0x40f200
40f21d:	8b 95 a4 fd ff ff    	mov    -0x25c(%ebp),%edx
40f223:	8a 01                	mov    (%ecx),%al
40f225:	88 85 ab fd ff ff    	mov    %al,-0x255(%ebp)
40f22b:	3c 3a                	cmp    $0x3a,%al
40f22d:	75 20                	jne    0x40f24f
40f22f:	8d 47 01             	lea    0x1(%edi),%eax
40f232:	3b c8                	cmp    %eax,%ecx
40f234:	74 13                	je     0x40f249
40f236:	52                   	push   %edx
40f237:	33 db                	xor    %ebx,%ebx
40f239:	53                   	push   %ebx
40f23a:	53                   	push   %ebx
40f23b:	57                   	push   %edi
40f23c:	e8 e4 fe ff ff       	call   0x40f125
40f241:	83 c4 10             	add    $0x10,%esp
40f244:	e9 d6 01 00 00       	jmp    0x40f41f
40f249:	8a 85 ab fd ff ff    	mov    -0x255(%ebp),%al
40f24f:	33 db                	xor    %ebx,%ebx
40f251:	3c 2f                	cmp    $0x2f,%al
40f253:	74 0a                	je     0x40f25f
40f255:	3c 5c                	cmp    $0x5c,%al
40f257:	74 06                	je     0x40f25f
40f259:	3c 3a                	cmp    $0x3a,%al
40f25b:	8a c3                	mov    %bl,%al
40f25d:	75 02                	jne    0x40f261
40f25f:	b0 01                	mov    $0x1,%al
40f261:	2b cf                	sub    %edi,%ecx
40f263:	0f b6 c0             	movzbl %al,%eax
40f266:	41                   	inc    %ecx
40f267:	89 9d 68 fd ff ff    	mov    %ebx,-0x298(%ebp)
40f26d:	f7 d8                	neg    %eax
40f26f:	89 9d 6c fd ff ff    	mov    %ebx,-0x294(%ebp)
40f275:	56                   	push   %esi
40f276:	1b c0                	sbb    %eax,%eax
40f278:	89 9d 70 fd ff ff    	mov    %ebx,-0x290(%ebp)
40f27e:	23 c1                	and    %ecx,%eax
40f280:	89 9d 74 fd ff ff    	mov    %ebx,-0x28c(%ebp)
40f286:	89 85 88 fd ff ff    	mov    %eax,-0x278(%ebp)
40f28c:	89 9d 78 fd ff ff    	mov    %ebx,-0x288(%ebp)
40f292:	88 9d 7c fd ff ff    	mov    %bl,-0x284(%ebp)
40f298:	e8 90 01 00 00       	call   0x40f42d
40f29d:	50                   	push   %eax
40f29e:	8d 85 68 fd ff ff    	lea    -0x298(%ebp),%eax
40f2a4:	50                   	push   %eax
40f2a5:	57                   	push   %edi
40f2a6:	e8 6e fc ff ff       	call   0x40ef19
40f2ab:	83 c4 0c             	add    $0xc,%esp
40f2ae:	8d 8d ac fd ff ff    	lea    -0x254(%ebp),%ecx
40f2b4:	f7 d8                	neg    %eax
40f2b6:	1b c0                	sbb    %eax,%eax
40f2b8:	53                   	push   %ebx
40f2b9:	53                   	push   %ebx
40f2ba:	53                   	push   %ebx
40f2bb:	51                   	push   %ecx
40f2bc:	f7 d0                	not    %eax
40f2be:	23 85 70 fd ff ff    	and    -0x290(%ebp),%eax
40f2c4:	53                   	push   %ebx
40f2c5:	50                   	push   %eax
40f2c6:	ff 15 a0 c0 41 00    	call   *0x41c0a0
40f2cc:	8b f0                	mov    %eax,%esi
40f2ce:	83 fe ff             	cmp    $0xffffffff,%esi
40f2d1:	75 18                	jne    0x40f2eb
40f2d3:	ff b5 a4 fd ff ff    	push   -0x25c(%ebp)
40f2d9:	53                   	push   %ebx
40f2da:	53                   	push   %ebx
40f2db:	57                   	push   %edi
40f2dc:	e8 44 fe ff ff       	call   0x40f125
40f2e1:	83 c4 10             	add    $0x10,%esp
40f2e4:	8b d8                	mov    %eax,%ebx
40f2e6:	e9 1c 01 00 00       	jmp    0x40f407
40f2eb:	8b 85 a4 fd ff ff    	mov    -0x25c(%ebp),%eax
40f2f1:	8b 48 04             	mov    0x4(%eax),%ecx
40f2f4:	2b 08                	sub    (%eax),%ecx
40f2f6:	c1 f9 02             	sar    $0x2,%ecx
40f2f9:	89 8d 84 fd ff ff    	mov    %ecx,-0x27c(%ebp)
40f2ff:	89 9d 8c fd ff ff    	mov    %ebx,-0x274(%ebp)
40f305:	89 9d 90 fd ff ff    	mov    %ebx,-0x270(%ebp)
40f30b:	89 9d 94 fd ff ff    	mov    %ebx,-0x26c(%ebp)
40f311:	89 9d 98 fd ff ff    	mov    %ebx,-0x268(%ebp)
40f317:	89 9d 9c fd ff ff    	mov    %ebx,-0x264(%ebp)
40f31d:	88 9d a0 fd ff ff    	mov    %bl,-0x260(%ebp)
40f323:	e8 05 01 00 00       	call   0x40f42d
40f328:	50                   	push   %eax
40f329:	8d 85 ab fd ff ff    	lea    -0x255(%ebp),%eax
40f32f:	50                   	push   %eax
40f330:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
40f336:	50                   	push   %eax
40f337:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40f33d:	50                   	push   %eax
40f33e:	e8 07 fb ff ff       	call   0x40ee4a
40f343:	83 c4 10             	add    $0x10,%esp
40f346:	f7 d8                	neg    %eax
40f348:	1b c0                	sbb    %eax,%eax
40f34a:	f7 d0                	not    %eax
40f34c:	23 85 94 fd ff ff    	and    -0x26c(%ebp),%eax
40f352:	80 38 2e             	cmpb   $0x2e,(%eax)
40f355:	75 11                	jne    0x40f368
40f357:	8a 48 01             	mov    0x1(%eax),%cl
40f35a:	84 c9                	test   %cl,%cl
40f35c:	74 2a                	je     0x40f388
40f35e:	80 f9 2e             	cmp    $0x2e,%cl
40f361:	75 05                	jne    0x40f368
40f363:	38 58 02             	cmp    %bl,0x2(%eax)
40f366:	74 20                	je     0x40f388
40f368:	ff b5 a4 fd ff ff    	push   -0x25c(%ebp)
40f36e:	ff b5 88 fd ff ff    	push   -0x278(%ebp)
40f374:	57                   	push   %edi
40f375:	50                   	push   %eax
40f376:	e8 aa fd ff ff       	call   0x40f125
40f37b:	83 c4 10             	add    $0x10,%esp
40f37e:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
40f384:	85 c0                	test   %eax,%eax
40f386:	75 5c                	jne    0x40f3e4
40f388:	38 9d a0 fd ff ff    	cmp    %bl,-0x260(%ebp)
40f38e:	74 0c                	je     0x40f39c
40f390:	ff b5 94 fd ff ff    	push   -0x26c(%ebp)
40f396:	e8 a8 f9 ff ff       	call   0x40ed43
40f39b:	59                   	pop    %ecx
40f39c:	8d 85 ac fd ff ff    	lea    -0x254(%ebp),%eax
40f3a2:	50                   	push   %eax
40f3a3:	56                   	push   %esi