40f0e5:	ff 15 68 c1 42 00    	call   *0x42c168
40f0eb:	c6 03 01             	movb   $0x1,(%ebx)
40f0ee:	5e                   	pop    %esi
40f0ef:	5f                   	pop    %edi
40f0f0:	5b                   	pop    %ebx
40f0f1:	c9                   	leave
40f0f2:	c2 08 00             	ret    $0x8
40f0f5:	6a 0c                	push   $0xc
40f0f7:	b8 ed 86 42 00       	mov    $0x4286ed,%eax
40f0fc:	e8 67 8f 01 00       	call   0x428068
40f101:	8b f9                	mov    %ecx,%edi
40f103:	8b 47 08             	mov    0x8(%edi),%eax
40f106:	2b 07                	sub    (%edi),%eax
40f108:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f10b:	3b c3                	cmp    %ebx,%eax
40f10d:	73 6c                	jae    0x40f17b
40f10f:	c6 45 e8 00          	movb   $0x0,-0x18(%ebp)
40f113:	ff 15 18 c2 42 00    	call   *0x42c218
40f119:	8b f0                	mov    %eax,%esi
40f11b:	89 75 ec             	mov    %esi,-0x14(%ebp)
40f11e:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f122:	83 e3 c0             	and    $0xffffffc0,%ebx
40f125:	83 c3 40             	add    $0x40,%ebx
40f128:	33 c9                	xor    %ecx,%ecx
40f12a:	8b d3                	mov    %ebx,%edx
40f12c:	e8 ae e3 ff ff       	call   0x40d4df
40f131:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f134:	85 c0                	test   %eax,%eax
40f136:	75 0b                	jne    0x40f143
40f138:	56                   	push   %esi
40f139:	ff 15 70 c1 42 00    	call   *0x42c170
40f13f:	32 c0                	xor    %al,%al
40f141:	eb 3a                	jmp    0x40f17d
40f143:	8b 77 04             	mov    0x4(%edi),%esi
40f146:	2b 37                	sub    (%edi),%esi
40f148:	56                   	push   %esi
40f149:	ff 37                	push   (%edi)
40f14b:	53                   	push   %ebx
40f14c:	50                   	push   %eax
40f14d:	ff 15 60 c3 42 00    	call   *0x42c360
40f153:	83 c4 10             	add    $0x10,%esp
40f156:	8d 4f 0c             	lea    0xc(%edi),%ecx
40f159:	ff 75 f0             	push   -0x10(%ebp)
40f15c:	e8 f8 37 00 00       	call   0x412959
40f161:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40f164:	ff 75 ec             	push   -0x14(%ebp)
40f167:	89 0f                	mov    %ecx,(%edi)
40f169:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
40f16c:	89 47 04             	mov    %eax,0x4(%edi)
40f16f:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
40f172:	89 47 08             	mov    %eax,0x8(%edi)
40f175:	ff 15 70 c1 42 00    	call   *0x42c170
40f17b:	b0 01                	mov    $0x1,%al
40f17d:	e8 b4 8e 01 00       	call   0x428036
40f182:	c2 04 00             	ret    $0x4
40f185:	8b ff                	mov    %edi,%edi
40f187:	55                   	push   %ebp
40f188:	8b ec                	mov    %esp,%ebp
40f18a:	8b 41 04             	mov    0x4(%ecx),%eax
40f18d:	2b 01                	sub    (%ecx),%eax
40f18f:	8b 51 08             	mov    0x8(%ecx),%edx
40f192:	2b 11                	sub    (%ecx),%edx
40f194:	03 45 08             	add    0x8(%ebp),%eax
40f197:	3b c2                	cmp    %edx,%eax
40f199:	73 04                	jae    0x40f19f
40f19b:	b0 01                	mov    $0x1,%al
40f19d:	eb 11                	jmp    0x40f1b0
40f19f:	8d 04 12             	lea    (%edx,%edx,1),%eax
40f1a2:	39 45 08             	cmp    %eax,0x8(%ebp)
40f1a5:	72 03                	jb     0x40f1aa
40f1a7:	8b 45 08             	mov    0x8(%ebp),%eax
40f1aa:	50                   	push   %eax
40f1ab:	e8 45 ff ff ff       	call   0x40f0f5
40f1b0:	5d                   	pop    %ebp
40f1b1:	c2 04 00             	ret    $0x4
40f1b4:	8b ff                	mov    %edi,%edi
40f1b6:	55                   	push   %ebp
40f1b7:	8b ec                	mov    %esp,%ebp
40f1b9:	56                   	push   %esi
40f1ba:	57                   	push   %edi
40f1bb:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f1be:	8b f1                	mov    %ecx,%esi
40f1c0:	57                   	push   %edi
40f1c1:	e8 bf ff ff ff       	call   0x40f185
40f1c6:	84 c0                	test   %al,%al
40f1c8:	74 23                	je     0x40f1ed
40f1ca:	8b 56 04             	mov    0x4(%esi),%edx
40f1cd:	8b 4e 08             	mov    0x8(%esi),%ecx
40f1d0:	2b ca                	sub    %edx,%ecx
40f1d2:	3b 56 08             	cmp    0x8(%esi),%edx
40f1d5:	57                   	push   %edi
40f1d6:	ff 75 08             	push   0x8(%ebp)
40f1d9:	1b c0                	sbb    %eax,%eax
40f1db:	23 c1                	and    %ecx,%eax
40f1dd:	50                   	push   %eax
40f1de:	52                   	push   %edx
40f1df:	ff 15 60 c3 42 00    	call   *0x42c360
40f1e5:	83 c4 10             	add    $0x10,%esp
40f1e8:	b0 01                	mov    $0x1,%al
40f1ea:	01 7e 04             	add    %edi,0x4(%esi)
40f1ed:	5f                   	pop    %edi
40f1ee:	5e                   	pop    %esi
40f1ef:	5d                   	pop    %ebp
40f1f0:	c2 08 00             	ret    $0x8
40f1f3:	cc                   	int3
40f1f4:	cc                   	int3
40f1f5:	cc                   	int3
40f1f6:	cc                   	int3
40f1f7:	cc                   	int3
40f1f8:	cc                   	int3
40f1f9:	cc                   	int3
40f1fa:	cc                   	int3
40f1fb:	cc                   	int3
40f1fc:	cc                   	int3
40f1fd:	cc                   	int3
40f1fe:	cc                   	int3
40f1ff:	cc                   	int3
40f200:	c2 00 00             	ret    $0x0
40f203:	cc                   	int3
40f204:	cc                   	int3
40f205:	cc                   	int3
40f206:	cc                   	int3
40f207:	cc                   	int3
40f208:	cc                   	int3
40f209:	cc                   	int3
40f20a:	cc                   	int3
40f20b:	cc                   	int3
40f20c:	cc                   	int3
40f20d:	cc                   	int3
40f20e:	cc                   	int3
40f20f:	cc                   	int3
40f210:	8b ff                	mov    %edi,%edi
40f212:	55                   	push   %ebp
40f213:	8b ec                	mov    %esp,%ebp
40f215:	83 e4 f8             	and    $0xfffffff8,%esp
40f218:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
40f21c:	75 1e                	jne    0x40f23c
40f21e:	83 79 0c 01          	cmpl   $0x1,0xc(%ecx)
40f222:	75 0a                	jne    0x40f22e
40f224:	ff 75 0c             	push   0xc(%ebp)
40f227:	e8 2f 00 00 00       	call   0x40f25b
40f22c:	eb 0e                	jmp    0x40f23c
40f22e:	83 79 0c 02          	cmpl   $0x2,0xc(%ecx)
40f232:	75 08                	jne    0x40f23c
40f234:	ff 75 0c             	push   0xc(%ebp)
40f237:	e8 00 01 00 00       	call   0x40f33c
40f23c:	8b e5                	mov    %ebp,%esp
40f23e:	5d                   	pop    %ebp
40f23f:	c2 08 00             	ret    $0x8
40f242:	8b ff                	mov    %edi,%edi
40f244:	51                   	push   %ecx
40f245:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
40f249:	c7 01 ac 10 40 00    	movl   $0x4010ac,(%ecx)
40f24f:	74 08                	je     0x40f259
40f251:	8b 49 04             	mov    0x4(%ecx),%ecx
40f254:	e8 82 76 ff ff       	call   0x4068db
40f259:	59                   	pop    %ecx
40f25a:	c3                   	ret
40f25b:	8b ff                	mov    %edi,%edi
40f25d:	55                   	push   %ebp
40f25e:	8b ec                	mov    %esp,%ebp
40f260:	83 ec 48             	sub    $0x48,%esp
40f263:	56                   	push   %esi
40f264:	8b 71 04             	mov    0x4(%ecx),%esi
40f267:	83 3e 02             	cmpl   $0x2,(%esi)
40f26a:	0f 86 c7 00 00 00    	jbe    0x40f337
40f270:	68 00 20 00 00       	push   $0x2000
40f275:	6a 00                	push   $0x0
40f277:	8b ce                	mov    %esi,%ecx
40f279:	e8 7e 77 ff ff       	call   0x4069fc
40f27e:	84 c0                	test   %al,%al
40f280:	0f 84 b1 00 00 00    	je     0x40f337
40f286:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f289:	ba 30 62 40 00       	mov    $0x406230,%edx
40f28e:	83 65 bc 00          	andl   $0x0,-0x44(%ebp)
40f292:	c7 45 b8 00 00 00 01 	movl   $0x1000000,-0x48(%ebp)
40f299:	8b 41 40             	mov    0x40(%ecx),%eax
40f29c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f29f:	8b 41 3c             	mov    0x3c(%ecx),%eax
40f2a2:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f2a5:	8b 41 38             	mov    0x38(%ecx),%eax
40f2a8:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f2ab:	8b 41 34             	mov    0x34(%ecx),%eax
40f2ae:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2b1:	8b 41 30             	mov    0x30(%ecx),%eax
40f2b4:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f2b7:	8b 41 2c             	mov    0x2c(%ecx),%eax
40f2ba:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f2bd:	8b 41 28             	mov    0x28(%ecx),%eax
40f2c0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f2c3:	8b 41 10             	mov    0x10(%ecx),%eax
40f2c6:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f2c9:	8b 41 0c             	mov    0xc(%ecx),%eax
40f2cc:	89 45 dc             	mov    %eax,-0x24(%ebp)
40f2cf:	8b 01                	mov    (%ecx),%eax
40f2d1:	89 45 d8             	mov    %eax,-0x28(%ebp)
40f2d4:	8b 41 44             	mov    0x44(%ecx),%eax
40f2d7:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40f2da:	8b 41 20             	mov    0x20(%ecx),%eax
40f2dd:	89 45 d0             	mov    %eax,-0x30(%ebp)
40f2e0:	8b 41 1c             	mov    0x1c(%ecx),%eax
40f2e3:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f2e6:	8b 41 04             	mov    0x4(%ecx),%eax
40f2e9:	89 45 c8             	mov    %eax,-0x38(%ebp)
40f2ec:	8d 45 b8             	lea    -0x48(%ebp),%eax
40f2ef:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40f2f2:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f2f5:	50                   	push   %eax
40f2f6:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f2f9:	50                   	push   %eax
40f2fa:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f2fd:	50                   	push   %eax
40f2fe:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f301:	50                   	push   %eax
40f302:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f305:	50                   	push   %eax
40f306:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f309:	50                   	push   %eax
40f30a:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40f30d:	50                   	push   %eax
40f30e:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f311:	50                   	push   %eax
40f312:	8d 45 dc             	lea    -0x24(%ebp),%eax
40f315:	50                   	push   %eax
40f316:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f319:	50                   	push   %eax
40f31a:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40f31d:	50                   	push   %eax
40f31e:	8d 45 d0             	lea    -0x30(%ebp),%eax
40f321:	50                   	push   %eax
40f322:	8d 45 cc             	lea    -0x34(%ebp),%eax
40f325:	50                   	push   %eax
40f326:	8d 45 c8             	lea    -0x38(%ebp),%eax
40f329:	50                   	push   %eax
40f32a:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40f32d:	50                   	push   %eax
40f32e:	51                   	push   %ecx
40f32f:	51                   	push   %ecx
40f330:	8b ce                	mov    %esi,%ecx
40f332:	e8 fa 76 ff ff       	call   0x406a31
40f337:	5e                   	pop    %esi
40f338:	c9                   	leave
40f339:	c2 04 00             	ret    $0x4
40f33c:	8b ff                	mov    %edi,%edi
40f33e:	55                   	push   %ebp
40f33f:	8b ec                	mov    %esp,%ebp
40f341:	83 ec 50             	sub    $0x50,%esp
40f344:	56                   	push   %esi
40f345:	8b 71 04             	mov    0x4(%ecx),%esi
40f348:	83 3e 02             	cmpl   $0x2,(%esi)
40f34b:	0f 86 cf 00 00 00    	jbe    0x40f420
40f351:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f354:	ba fa 60 40 00       	mov    $0x4060fa,%edx
40f359:	83 65 b4 00          	andl   $0x0,-0x4c(%ebp)
40f35d:	c7 45 b0 00 00 00 01 	movl   $0x1000000,-0x50(%ebp)
40f364:	8b 41 18             	mov    0x18(%ecx),%eax
40f367:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f36a:	8b 41 24             	mov    0x24(%ecx),%eax
40f36d:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f370:	8b 41 08             	mov    0x8(%ecx),%eax
40f373:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f376:	8b 41 40             	mov    0x40(%ecx),%eax
40f379:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f37c:	8b 41 3c             	mov    0x3c(%ecx),%eax
40f37f:	89 45 ec             	mov    %eax,-0x14(%ebp)
40f382:	8b 41 38             	mov    0x38(%ecx),%eax
40f385:	89 45 e8             	mov    %eax,-0x18(%ebp)
40f388:	8b 41 34             	mov    0x34(%ecx),%eax
40f38b:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40f38e:	8b 41 30             	mov    0x30(%ecx),%eax
40f391:	89 45 e0             	mov    %eax,-0x20(%ebp)
40f394:	8b 41 2c             	mov    0x2c(%ecx),%eax
40f397:	89 45 dc             	mov    %eax,-0x24(%ebp)
40f39a:	8b 41 28             	mov    0x28(%ecx),%eax
40f39d:	89 45 d8             	mov    %eax,-0x28(%ebp)
40f3a0:	8b 41 10             	mov    0x10(%ecx),%eax
40f3a3:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40f3a6:	8b 41 0c             	mov    0xc(%ecx),%eax
40f3a9:	89 45 d0             	mov    %eax,-0x30(%ebp)
40f3ac:	8b 01                	mov    (%ecx),%eax
40f3ae:	89 45 cc             	mov    %eax,-0x34(%ebp)
40f3b1:	8b 41 44             	mov    0x44(%ecx),%eax
40f3b4:	89 45 c8             	mov    %eax,-0x38(%ebp)
40f3b7:	8b 41 20             	mov    0x20(%ecx),%eax
40f3ba:	89 45 c4             	mov    %eax,-0x3c(%ebp)
40f3bd:	8b 41 1c             	mov    0x1c(%ecx),%eax
40f3c0:	89 45 c0             	mov    %eax,-0x40(%ebp)
40f3c3:	8b 41 04             	mov    0x4(%ecx),%eax
40f3c6:	89 45 bc             	mov    %eax,-0x44(%ebp)
40f3c9:	8d 45 b0             	lea    -0x50(%ebp),%eax
40f3cc:	89 45 b8             	mov    %eax,-0x48(%ebp)
40f3cf:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f3d2:	50                   	push   %eax
40f3d3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f3d6:	50                   	push   %eax
40f3d7:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f3da:	50                   	push   %eax
40f3db:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f3de:	50                   	push   %eax
40f3df:	8d 45 ec             	lea    -0x14(%ebp),%eax
40f3e2:	50                   	push   %eax
40f3e3:	8d 45 e8             	lea    -0x18(%ebp),%eax
40f3e6:	50                   	push   %eax
40f3e7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40f3ea:	50                   	push   %eax
40f3eb:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f3ee:	50                   	push   %eax
40f3ef:	8d 45 dc             	lea    -0x24(%ebp),%eax
40f3f2:	50                   	push   %eax
40f3f3:	8d 45 d8             	lea    -0x28(%ebp),%eax
40f3f6:	50                   	push   %eax
40f3f7:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40f3fa:	50                   	push   %eax
40f3fb:	8d 45 d0             	lea    -0x30(%ebp),%eax
40f3fe:	50                   	push   %eax
40f3ff:	8d 45 cc             	lea    -0x34(%ebp),%eax
40f402:	50                   	push   %eax
40f403:	8d 45 c8             	lea    -0x38(%ebp),%eax
40f406:	50                   	push   %eax
40f407:	8d 45 c4             	lea    -0x3c(%ebp),%eax
40f40a:	50                   	push   %eax
40f40b:	8d 45 c0             	lea    -0x40(%ebp),%eax
40f40e:	50                   	push   %eax
40f40f:	8d 45 bc             	lea    -0x44(%ebp),%eax
40f412:	50                   	push   %eax
40f413:	8d 45 b8             	lea    -0x48(%ebp),%eax
40f416:	50                   	push   %eax
40f417:	51                   	push   %ecx
40f418:	51                   	push   %ecx
40f419:	8b ce                	mov    %esi,%ecx
40f41b:	e8 b5 77 ff ff       	call   0x406bd5
40f420:	5e                   	pop    %esi
40f421:	c9                   	leave
40f422:	c2 04 00             	ret    $0x4
40f425:	cc                   	int3
40f426:	cc                   	int3
40f427:	cc                   	int3
40f428:	cc                   	int3
40f429:	cc                   	int3
40f42a:	cc                   	int3
40f42b:	cc                   	int3
40f42c:	cc                   	int3
40f42d:	cc                   	int3
40f42e:	cc                   	int3
40f42f:	cc                   	int3
40f430:	8b ff                	mov    %edi,%edi
40f432:	55                   	push   %ebp
40f433:	8b ec                	mov    %esp,%ebp
40f435:	a1 80 b6 42 00       	mov    0x42b680,%eax
40f43a:	56                   	push   %esi