40e0a1:	56                   	push   %esi
40e0a2:	e8 8f 82 ff ff       	call   0x406336
40e0a7:	83 c4 1c             	add    $0x1c,%esp
40e0aa:	85 c0                	test   %eax,%eax
40e0ac:	0f 85 8b 00 00 00    	jne    0x40e13d
40e0b2:	8b 7d 18             	mov    0x18(%ebp),%edi
40e0b5:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40e0b9:	75 05                	jne    0x40e0c0
40e0bb:	e8 17 05 00 00       	call   0x40e5d7
40e0c0:	8b 75 1c             	mov    0x1c(%ebp),%esi
40e0c3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40e0c6:	50                   	push   %eax
40e0c7:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e0ca:	50                   	push   %eax
40e0cb:	56                   	push   %esi
40e0cc:	ff 75 20             	push   0x20(%ebp)
40e0cf:	57                   	push   %edi
40e0d0:	e8 d7 83 ff ff       	call   0x4064ac
40e0d5:	8b f8                	mov    %eax,%edi
40e0d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e0da:	83 c4 14             	add    $0x14,%esp
40e0dd:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40e0e0:	73 5b                	jae    0x40e13d
40e0e2:	53                   	push   %ebx
40e0e3:	3b 37                	cmp    (%edi),%esi
40e0e5:	7c 47                	jl     0x40e12e
40e0e7:	3b 77 04             	cmp    0x4(%edi),%esi
40e0ea:	7f 42                	jg     0x40e12e
40e0ec:	8b 47 0c             	mov    0xc(%edi),%eax
40e0ef:	8b 4f 10             	mov    0x10(%edi),%ecx
40e0f2:	c1 e0 04             	shl    $0x4,%eax
40e0f5:	03 c1                	add    %ecx,%eax
40e0f7:	8b 48 f4             	mov    -0xc(%eax),%ecx
40e0fa:	85 c9                	test   %ecx,%ecx
40e0fc:	74 06                	je     0x40e104
40e0fe:	80 79 08 00          	cmpb   $0x0,0x8(%ecx)
40e102:	75 2a                	jne    0x40e12e
40e104:	8d 58 f0             	lea    -0x10(%eax),%ebx
40e107:	f6 03 40             	testb  $0x40,(%ebx)
40e10a:	75 22                	jne    0x40e12e
40e10c:	ff 75 24             	push   0x24(%ebp)
40e10f:	8b 75 0c             	mov    0xc(%ebp),%esi
40e112:	ff 75 20             	push   0x20(%ebp)
40e115:	6a 00                	push   $0x0
40e117:	ff 75 18             	push   0x18(%ebp)
40e11a:	ff 75 14             	push   0x14(%ebp)
40e11d:	ff 75 10             	push   0x10(%ebp)
40e120:	ff 75 08             	push   0x8(%ebp)
40e123:	e8 b7 fe ff ff       	call   0x40dfdf
40e128:	8b 75 1c             	mov    0x1c(%ebp),%esi
40e12b:	83 c4 1c             	add    $0x1c,%esp
40e12e:	ff 45 fc             	incl   -0x4(%ebp)
40e131:	8b 45 fc             	mov    -0x4(%ebp),%eax
40e134:	83 c7 14             	add    $0x14,%edi
40e137:	3b 45 f8             	cmp    -0x8(%ebp),%eax
40e13a:	72 a7                	jb     0x40e0e3
40e13c:	5b                   	pop    %ebx
40e13d:	5f                   	pop    %edi
40e13e:	5e                   	pop    %esi
40e13f:	c9                   	leave
40e140:	c3                   	ret
40e141:	8b ff                	mov    %edi,%edi
40e143:	55                   	push   %ebp
40e144:	8b ec                	mov    %esp,%ebp
40e146:	83 ec 2c             	sub    $0x2c,%esp
40e149:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40e14c:	53                   	push   %ebx
40e14d:	8b 5d 18             	mov    0x18(%ebp),%ebx
40e150:	8b 43 04             	mov    0x4(%ebx),%eax
40e153:	3d 80 00 00 00       	cmp    $0x80,%eax
40e158:	56                   	push   %esi
40e159:	57                   	push   %edi
40e15a:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40e15e:	7f 06                	jg     0x40e166
40e160:	0f be 49 08          	movsbl 0x8(%ecx),%ecx
40e164:	eb 03                	jmp    0x40e169
40e166:	8b 49 08             	mov    0x8(%ecx),%ecx
40e169:	83 f9 ff             	cmp    $0xffffffff,%ecx
40e16c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40e16f:	7c 04                	jl     0x40e175
40e171:	3b c8                	cmp    %eax,%ecx
40e173:	7c 05                	jl     0x40e17a
40e175:	e8 5d 04 00 00       	call   0x40e5d7
40e17a:	8b 75 08             	mov    0x8(%ebp),%esi
40e17d:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
40e182:	39 3e                	cmp    %edi,(%esi)
40e184:	0f 85 ba 02 00 00    	jne    0x40e444
40e18a:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40e18e:	bb 20 05 93 19       	mov    $0x19930520,%ebx
40e193:	0f 85 18 01 00 00    	jne    0x40e2b1
40e199:	8b 46 14             	mov    0x14(%esi),%eax
40e19c:	3b c3                	cmp    %ebx,%eax
40e19e:	74 12                	je     0x40e1b2
40e1a0:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e1a5:	74 0b                	je     0x40e1b2
40e1a7:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40e1ac:	0f 85 ff 00 00 00    	jne    0x40e2b1
40e1b2:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
40e1b6:	0f 85 f5 00 00 00    	jne    0x40e2b1
40e1bc:	e8 80 c8 ff ff       	call   0x40aa41
40e1c1:	83 b8 88 00 00 00 00 	cmpl   $0x0,0x88(%eax)
40e1c8:	0f 84 b5 02 00 00    	je     0x40e483
40e1ce:	e8 6e c8 ff ff       	call   0x40aa41
40e1d3:	8b b0 88 00 00 00    	mov    0x88(%eax),%esi
40e1d9:	89 75 08             	mov    %esi,0x8(%ebp)
40e1dc:	e8 60 c8 ff ff       	call   0x40aa41
40e1e1:	8b 80 8c 00 00 00    	mov    0x8c(%eax),%eax
40e1e7:	6a 01                	push   $0x1
40e1e9:	56                   	push   %esi
40e1ea:	89 45 10             	mov    %eax,0x10(%ebp)
40e1ed:	e8 66 77 00 00       	call   0x415958
40e1f2:	59                   	pop    %ecx
40e1f3:	59                   	pop    %ecx
40e1f4:	85 c0                	test   %eax,%eax
40e1f6:	75 05                	jne    0x40e1fd
40e1f8:	e8 da 03 00 00       	call   0x40e5d7
40e1fd:	39 3e                	cmp    %edi,(%esi)
40e1ff:	75 26                	jne    0x40e227
40e201:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40e205:	75 20                	jne    0x40e227
40e207:	8b 46 14             	mov    0x14(%esi),%eax
40e20a:	3b c3                	cmp    %ebx,%eax
40e20c:	74 0e                	je     0x40e21c
40e20e:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e213:	74 07                	je     0x40e21c
40e215:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40e21a:	75 0b                	jne    0x40e227
40e21c:	83 7e 1c 00          	cmpl   $0x0,0x1c(%esi)
40e220:	75 05                	jne    0x40e227
40e222:	e8 b0 03 00 00       	call   0x40e5d7
40e227:	e8 15 c8 ff ff       	call   0x40aa41
40e22c:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
40e233:	74 7c                	je     0x40e2b1
40e235:	e8 07 c8 ff ff       	call   0x40aa41
40e23a:	8b b8 94 00 00 00    	mov    0x94(%eax),%edi
40e240:	e8 fc c7 ff ff       	call   0x40aa41
40e245:	ff 75 08             	push   0x8(%ebp)
40e248:	33 f6                	xor    %esi,%esi
40e24a:	89 b0 94 00 00 00    	mov    %esi,0x94(%eax)
40e250:	e8 19 f9 ff ff       	call   0x40db6e
40e255:	59                   	pop    %ecx
40e256:	84 c0                	test   %al,%al
40e258:	75 4f                	jne    0x40e2a9
40e25a:	33 db                	xor    %ebx,%ebx
40e25c:	39 1f                	cmp    %ebx,(%edi)
40e25e:	7e 1d                	jle    0x40e27d
40e260:	8b 47 04             	mov    0x4(%edi),%eax
40e263:	8b 4c 03 04          	mov    0x4(%ebx,%eax,1),%ecx
40e267:	68 9c b8 42 00       	push   $0x42b89c
40e26c:	e8 de 74 ff ff       	call   0x40574f
40e271:	84 c0                	test   %al,%al
40e273:	75 0d                	jne    0x40e282
40e275:	46                   	inc    %esi
40e276:	83 c3 10             	add    $0x10,%ebx
40e279:	3b 37                	cmp    (%edi),%esi
40e27b:	7c e3                	jl     0x40e260
40e27d:	e8 09 03 00 00       	call   0x40e58b
40e282:	6a 01                	push   $0x1
40e284:	ff 75 08             	push   0x8(%ebp)
40e287:	e8 64 f8 ff ff       	call   0x40daf0
40e28c:	59                   	pop    %ecx
40e28d:	59                   	pop    %ecx
40e28e:	68 e8 cb 41 00       	push   $0x41cbe8
40e293:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
40e296:	e8 37 f6 ff ff       	call   0x40d8d2
40e29b:	68 14 99 42 00       	push   $0x429914
40e2a0:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40e2a3:	50                   	push   %eax
40e2a4:	e8 09 84 ff ff       	call   0x4066b2
40e2a9:	8b 75 08             	mov    0x8(%ebp),%esi
40e2ac:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
40e2b1:	39 3e                	cmp    %edi,(%esi)
40e2b3:	0f 85 88 01 00 00    	jne    0x40e441
40e2b9:	83 7e 10 03          	cmpl   $0x3,0x10(%esi)
40e2bd:	0f 85 7e 01 00 00    	jne    0x40e441
40e2c3:	8b 46 14             	mov    0x14(%esi),%eax
40e2c6:	3b c3                	cmp    %ebx,%eax
40e2c8:	74 12                	je     0x40e2dc
40e2ca:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e2cf:	74 0b                	je     0x40e2dc
40e2d1:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40e2d6:	0f 85 65 01 00 00    	jne    0x40e441
40e2dc:	8b 7d 18             	mov    0x18(%ebp),%edi
40e2df:	83 7f 0c 00          	cmpl   $0x0,0xc(%edi)
40e2e3:	0f 86 bf 00 00 00    	jbe    0x40e3a8
40e2e9:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40e2ec:	50                   	push   %eax
40e2ed:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e2f0:	50                   	push   %eax
40e2f1:	ff 75 f8             	push   -0x8(%ebp)
40e2f4:	ff 75 20             	push   0x20(%ebp)
40e2f7:	57                   	push   %edi
40e2f8:	e8 af 81 ff ff       	call   0x4064ac
40e2fd:	83 c4 14             	add    $0x14,%esp
40e300:	8b f8                	mov    %eax,%edi
40e302:	8b 45 f0             	mov    -0x10(%ebp),%eax
40e305:	3b 45 e4             	cmp    -0x1c(%ebp),%eax
40e308:	0f 83 97 00 00 00    	jae    0x40e3a5
40e30e:	8b 45 f8             	mov    -0x8(%ebp),%eax
40e311:	39 07                	cmp    %eax,(%edi)
40e313:	0f 8f 81 00 00 00    	jg     0x40e39a
40e319:	3b 47 04             	cmp    0x4(%edi),%eax
40e31c:	7f 7c                	jg     0x40e39a
40e31e:	8b 47 10             	mov    0x10(%edi),%eax
40e321:	89 45 f4             	mov    %eax,-0xc(%ebp)
40e324:	8b 47 0c             	mov    0xc(%edi),%eax
40e327:	89 45 e8             	mov    %eax,-0x18(%ebp)
40e32a:	85 c0                	test   %eax,%eax
40e32c:	7e 6c                	jle    0x40e39a
40e32e:	8b 46 1c             	mov    0x1c(%esi),%eax
40e331:	8b 40 0c             	mov    0xc(%eax),%eax
40e334:	8d 58 04             	lea    0x4(%eax),%ebx
40e337:	8b 00                	mov    (%eax),%eax
40e339:	89 45 ec             	mov    %eax,-0x14(%ebp)
40e33c:	85 c0                	test   %eax,%eax
40e33e:	7e 23                	jle    0x40e363
40e340:	ff 76 1c             	push   0x1c(%esi)
40e343:	8b 03                	mov    (%ebx),%eax
40e345:	50                   	push   %eax
40e346:	ff 75 f4             	push   -0xc(%ebp)
40e349:	89 45 e0             	mov    %eax,-0x20(%ebp)
40e34c:	e8 d1 f5 ff ff       	call   0x40d922
40e351:	83 c4 0c             	add    $0xc,%esp
40e354:	85 c0                	test   %eax,%eax
40e356:	75 1a                	jne    0x40e372
40e358:	ff 4d ec             	decl   -0x14(%ebp)
40e35b:	83 c3 04             	add    $0x4,%ebx
40e35e:	39 45 ec             	cmp    %eax,-0x14(%ebp)
40e361:	7f dd                	jg     0x40e340
40e363:	ff 4d e8             	decl   -0x18(%ebp)
40e366:	83 45 f4 10          	addl   $0x10,-0xc(%ebp)
40e36a:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40e36e:	7f be                	jg     0x40e32e
40e370:	eb 28                	jmp    0x40e39a
40e372:	ff 75 24             	push   0x24(%ebp)
40e375:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40e378:	ff 75 20             	push   0x20(%ebp)
40e37b:	c6 45 ff 01          	movb   $0x1,-0x1(%ebp)
40e37f:	ff 75 e0             	push   -0x20(%ebp)
40e382:	ff 75 18             	push   0x18(%ebp)
40e385:	ff 75 14             	push   0x14(%ebp)
40e388:	ff 75 10             	push   0x10(%ebp)
40e38b:	56                   	push   %esi
40e38c:	8b 75 0c             	mov    0xc(%ebp),%esi
40e38f:	e8 4b fc ff ff       	call   0x40dfdf
40e394:	8b 75 08             	mov    0x8(%ebp),%esi
40e397:	83 c4 1c             	add    $0x1c,%esp
40e39a:	ff 45 f0             	incl   -0x10(%ebp)
40e39d:	83 c7 14             	add    $0x14,%edi
40e3a0:	e9 5d ff ff ff       	jmp    0x40e302
40e3a5:	8b 7d 18             	mov    0x18(%ebp),%edi
40e3a8:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40e3ac:	74 0a                	je     0x40e3b8
40e3ae:	6a 01                	push   $0x1
40e3b0:	56                   	push   %esi
40e3b1:	e8 3a f7 ff ff       	call   0x40daf0
40e3b6:	59                   	pop    %ecx
40e3b7:	59                   	pop    %ecx
40e3b8:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40e3bc:	0f 85 ae 00 00 00    	jne    0x40e470
40e3c2:	8b 07                	mov    (%edi),%eax
40e3c4:	25 ff ff ff 1f       	and    $0x1fffffff,%eax
40e3c9:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40e3ce:	0f 82 9c 00 00 00    	jb     0x40e470
40e3d4:	8b 7f 1c             	mov    0x1c(%edi),%edi
40e3d7:	85 ff                	test   %edi,%edi
40e3d9:	0f 84 91 00 00 00    	je     0x40e470
40e3df:	56                   	push   %esi
40e3e0:	e8 89 f7 ff ff       	call   0x40db6e
40e3e5:	59                   	pop    %ecx
40e3e6:	84 c0                	test   %al,%al
40e3e8:	0f 85 82 00 00 00    	jne    0x40e470
40e3ee:	e8 4e c6 ff ff       	call   0x40aa41
40e3f3:	e8 49 c6 ff ff       	call   0x40aa41
40e3f8:	e8 44 c6 ff ff       	call   0x40aa41
40e3fd:	89 b0 88 00 00 00    	mov    %esi,0x88(%eax)
40e403:	e8 39 c6 ff ff       	call   0x40aa41
40e408:	83 7d 24 00          	cmpl   $0x0,0x24(%ebp)
40e40c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e40f:	89 88 8c 00 00 00    	mov    %ecx,0x8c(%eax)
40e415:	56                   	push   %esi
40e416:	75 05                	jne    0x40e41d
40e418:	ff 75 0c             	push   0xc(%ebp)
40e41b:	eb 03                	jmp    0x40e420
40e41d:	ff 75 24             	push   0x24(%ebp)
40e420:	e8 54 7e ff ff       	call   0x406279
40e425:	8b 75 18             	mov    0x18(%ebp),%esi
40e428:	6a ff                	push   $0xffffffff
40e42a:	56                   	push   %esi
40e42b:	ff 75 14             	push   0x14(%ebp)
40e42e:	ff 75 0c             	push   0xc(%ebp)
40e431:	e8 94 f5 ff ff       	call   0x40d9ca
40e436:	83 c4 10             	add    $0x10,%esp
40e439:	ff 76 1c             	push   0x1c(%esi)
40e43c:	e8 a8 f7 ff ff       	call   0x40dbe9
40e441:	8b 5d 18             	mov    0x18(%ebp),%ebx
40e444:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
40e448:	76 26                	jbe    0x40e470
40e44a:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
40e44e:	0f 85 29 fe ff ff    	jne    0x40e27d
40e454:	ff 75 24             	push   0x24(%ebp)
40e457:	ff 75 20             	push   0x20(%ebp)
40e45a:	ff 75 f8             	push   -0x8(%ebp)
40e45d:	53                   	push   %ebx
40e45e:	ff 75 14             	push   0x14(%ebp)
40e461:	ff 75 10             	push   0x10(%ebp)
40e464:	ff 75 0c             	push   0xc(%ebp)
40e467:	56                   	push   %esi
40e468:	e8 e0 fb ff ff       	call   0x40e04d
40e46d:	83 c4 20             	add    $0x20,%esp
40e470:	e8 cc c5 ff ff       	call   0x40aa41
40e475:	83 b8 94 00 00 00 00 	cmpl   $0x0,0x94(%eax)
40e47c:	74 05                	je     0x40e483
40e47e:	e8 54 01 00 00       	call   0x40e5d7
40e483:	5f                   	pop    %edi
40e484:	5e                   	pop    %esi
40e485:	5b                   	pop    %ebx
40e486:	c9                   	leave
40e487:	c3                   	ret
40e488:	8b ff                	mov    %edi,%edi
40e48a:	55                   	push   %ebp
40e48b:	8b ec                	mov    %esp,%ebp
40e48d:	56                   	push   %esi
40e48e:	ff 75 08             	push   0x8(%ebp)
40e491:	8b f1                	mov    %ecx,%esi
40e493:	e8 7a 6a ff ff       	call   0x404f12
40e498:	c7 06 e0 cb 41 00    	movl   $0x41cbe0,(%esi)
40e49e:	8b c6                	mov    %esi,%eax
40e4a0:	5e                   	pop    %esi
40e4a1:	5d                   	pop    %ebp
40e4a2:	c2 04 00             	ret    $0x4
40e4a5:	8b ff                	mov    %edi,%edi
40e4a7:	55                   	push   %ebp
40e4a8:	8b ec                	mov    %esp,%ebp
40e4aa:	53                   	push   %ebx
40e4ab:	56                   	push   %esi
40e4ac:	57                   	push   %edi
40e4ad:	e8 8f c5 ff ff       	call   0x40aa41
40e4b2:	83 b8 0c 02 00 00 00 	cmpl   $0x0,0x20c(%eax)
40e4b9:	8b 45 18             	mov    0x18(%ebp),%eax
40e4bc:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e4bf:	bf 63 73 6d e0       	mov    $0xe06d7363,%edi
40e4c4:	be ff ff ff 1f       	mov    $0x1fffffff,%esi
40e4c9:	bb 22 05 93 19       	mov    $0x19930522,%ebx
40e4ce:	75 20                	jne    0x40e4f0
40e4d0:	8b 11                	mov    (%ecx),%edx
40e4d2:	3b d7                	cmp    %edi,%edx
40e4d4:	74 1a                	je     0x40e4f0
40e4d6:	81 fa 26 00 00 80    	cmp    $0x80000026,%edx
40e4dc:	74 12                	je     0x40e4f0