40c17a:	e8 77 40 03 00       	call   0x4401f6
40c17f:	8b 10                	mov    (%eax),%edx
40c181:	8b c8                	mov    %eax,%ecx
40c183:	ff 52 0c             	call   *0xc(%edx)
40c186:	83 c0 10             	add    $0x10,%eax
40c189:	89 45 0c             	mov    %eax,0xc(%ebp)
40c18c:	8d 46 01             	lea    0x1(%esi),%eax
40c18f:	50                   	push   %eax
40c190:	56                   	push   %esi
40c191:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c194:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40c197:	e8 ae 4f ff ff       	call   0x40114a
40c19c:	50                   	push   %eax
40c19d:	ff 75 f0             	push   -0x10(%ebp)
40c1a0:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c1a6:	6a ff                	push   $0xffffffff
40c1a8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c1ab:	e8 77 4f ff ff       	call   0x401127
40c1b0:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c1b3:	e8 9e 0c 06 00       	call   0x46ce56
40c1b8:	ff 75 10             	push   0x10(%ebp)
40c1bb:	8b f0                	mov    %eax,%esi
40c1bd:	53                   	push   %ebx
40c1be:	ff 15 ac 03 4b 00    	call   *0x4b03ac
40c1c4:	50                   	push   %eax
40c1c5:	56                   	push   %esi
40c1c6:	ff 15 84 04 4b 00    	call   *0x4b0484
40c1cc:	56                   	push   %esi
40c1cd:	89 45 10             	mov    %eax,0x10(%ebp)
40c1d0:	ff 15 08 05 4b 00    	call   *0x4b0508
40c1d6:	39 5d 10             	cmp    %ebx,0x10(%ebp)
40c1d9:	7d 14                	jge    0x40c1ef
40c1db:	6a ff                	push   $0xffffffff
40c1dd:	53                   	push   %ebx
40c1de:	68 11 f1 00 00       	push   $0xf111
40c1e3:	e8 d5 96 04 00       	call   0x4558bd
40c1e8:	8b cf                	mov    %edi,%ecx
40c1ea:	e8 db 97 04 00       	call   0x4559ca
40c1ef:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40c1f2:	83 c1 f0             	add    $0xfffffff0,%ecx
40c1f5:	e8 58 51 ff ff       	call   0x401352
40c1fa:	eb 59                	jmp    0x40c255
40c1fc:	8d 45 0c             	lea    0xc(%ebp),%eax
40c1ff:	50                   	push   %eax
40c200:	53                   	push   %ebx
40c201:	ff 15 ac 03 4b 00    	call   *0x4b03ac
40c207:	50                   	push   %eax
40c208:	ff 75 10             	push   0x10(%ebp)
40c20b:	ff 15 88 04 4b 00    	call   *0x4b0488
40c211:	85 c0                	test   %eax,%eax
40c213:	7c 40                	jl     0x40c255
40c215:	8b 7d 0c             	mov    0xc(%ebp),%edi
40c218:	3b fb                	cmp    %ebx,%edi
40c21a:	74 27                	je     0x40c243
40c21c:	57                   	push   %edi
40c21d:	ff 15 90 03 4b 00    	call   *0x4b0390
40c223:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40c227:	8b c6                	mov    %esi,%eax
40c229:	83 c0 03             	add    $0x3,%eax
40c22c:	83 e0 fc             	and    $0xfffffffc,%eax
40c22f:	e8 bc a4 00 00       	call   0x4166f0
40c234:	8b c4                	mov    %esp,%eax
40c236:	ff 75 ec             	push   -0x14(%ebp)
40c239:	56                   	push   %esi
40c23a:	57                   	push   %edi
40c23b:	50                   	push   %eax
40c23c:	e8 ae a1 ff ff       	call   0x4063ef
40c241:	8b d8                	mov    %eax,%ebx
40c243:	ff 75 0c             	push   0xc(%ebp)
40c246:	ff 15 08 05 4b 00    	call   *0x4b0508
40c24c:	53                   	push   %ebx
40c24d:	ff 75 f0             	push   -0x10(%ebp)
40c250:	e8 de 4f 04 00       	call   0x451233
40c255:	8d 65 e0             	lea    -0x20(%ebp),%esp
40c258:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c25b:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c262:	5f                   	pop    %edi
40c263:	5e                   	pop    %esi
40c264:	5b                   	pop    %ebx
40c265:	c9                   	leave
40c266:	c2 0c 00             	ret    $0xc
40c269:	b8 21 31 48 00       	mov    $0x483121,%eax
40c26e:	e8 09 ba 00 00       	call   0x417c7c
40c273:	81 ec 8c 00 00 00    	sub    $0x8c,%esp
40c279:	a1 40 8b 4a 00       	mov    0x4a8b40,%eax
40c27e:	53                   	push   %ebx
40c27f:	56                   	push   %esi
40c280:	57                   	push   %edi
40c281:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c284:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c28a:	8b 7d 08             	mov    0x8(%ebp),%edi
40c28d:	ff 75 0c             	push   0xc(%ebp)
40c290:	8b cf                	mov    %edi,%ecx
40c292:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
40c298:	e8 fb 9a 04 00       	call   0x455d98
40c29d:	8b 4f 04             	mov    0x4(%edi),%ecx
40c2a0:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
40c2a6:	50                   	push   %eax
40c2a7:	ff 75 0c             	push   0xc(%ebp)
40c2aa:	e8 51 48 03 00       	call   0x440b00
40c2af:	83 3f 00             	cmpl   $0x0,(%edi)
40c2b2:	0f 84 a8 00 00 00    	je     0x40c360
40c2b8:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40c2be:	ff 15 cc 07 4b 00    	call   *0x4b07cc
40c2c4:	8b f0                	mov    %eax,%esi
40c2c6:	e8 2b 3f 03 00       	call   0x4401f6
40c2cb:	8b 10                	mov    (%eax),%edx
40c2cd:	8b c8                	mov    %eax,%ecx
40c2cf:	ff 52 0c             	call   *0xc(%edx)
40c2d2:	83 c0 10             	add    $0x10,%eax
40c2d5:	89 45 0c             	mov    %eax,0xc(%ebp)
40c2d8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c2dc:	8d 46 01             	lea    0x1(%esi),%eax
40c2df:	50                   	push   %eax
40c2e0:	56                   	push   %esi
40c2e1:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c2e4:	e8 61 4e ff ff       	call   0x40114a
40c2e9:	50                   	push   %eax
40c2ea:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40c2f0:	ff 15 d0 07 4b 00    	call   *0x4b07d0
40c2f6:	6a ff                	push   $0xffffffff
40c2f8:	8d 4d 0c             	lea    0xc(%ebp),%ecx
40c2fb:	e8 27 4e ff ff       	call   0x401127
40c300:	8b 5d 0c             	mov    0xc(%ebp),%ebx
40c303:	85 db                	test   %ebx,%ebx
40c305:	75 04                	jne    0x40c30b
40c307:	33 c0                	xor    %eax,%eax
40c309:	eb 28                	jmp    0x40c333
40c30b:	53                   	push   %ebx
40c30c:	ff 15 88 03 4b 00    	call   *0x4b0388
40c312:	8b f0                	mov    %eax,%esi
40c314:	46                   	inc    %esi
40c315:	8d 04 36             	lea    (%esi,%esi,1),%eax
40c318:	83 c0 03             	add    $0x3,%eax
40c31b:	83 e0 fc             	and    $0xfffffffc,%eax
40c31e:	e8 cd a3 00 00       	call   0x4166f0
40c323:	8b c4                	mov    %esp,%eax
40c325:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
40c32b:	56                   	push   %esi
40c32c:	53                   	push   %ebx
40c32d:	50                   	push   %eax
40c32e:	e8 85 a0 ff ff       	call   0x4063b8
40c333:	ff 75 10             	push   0x10(%ebp)
40c336:	50                   	push   %eax
40c337:	ff 15 28 0b 4b 00    	call   *0x4b0b28
40c33d:	85 c0                	test   %eax,%eax
40c33f:	7d 15                	jge    0x40c356
40c341:	6a ff                	push   $0xffffffff
40c343:	6a 00                	push   $0x0
40c345:	68 1a f1 00 00       	push   $0xf11a
40c34a:	e8 6e 95 04 00       	call   0x4558bd
40c34f:	8b cf                	mov    %edi,%ecx
40c351:	e8 74 96 04 00       	call   0x4559ca
40c356:	8d 4b f0             	lea    -0x10(%ebx),%ecx
40c359:	e8 f4 4f ff ff       	call   0x401352
40c35e:	eb 52                	jmp    0x40c3b2
40c360:	6a 40                	push   $0x40
40c362:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
40c368:	50                   	push   %eax
40c369:	ff 75 10             	push   0x10(%ebp)
40c36c:	ff 15 34 0b 4b 00    	call   *0x4b0b34
40c372:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
40c378:	50                   	push   %eax
40c379:	ff 15 90 03 4b 00    	call   *0x4b0390
40c37f:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40c383:	8b c6                	mov    %esi,%eax
40c385:	83 c0 03             	add    $0x3,%eax
40c388:	83 e0 fc             	and    $0xfffffffc,%eax
40c38b:	e8 60 a3 00 00       	call   0x4166f0
40c390:	8b c4                	mov    %esp,%eax
40c392:	ff b5 68 ff ff ff    	push   -0x98(%ebp)
40c398:	8d 8d 70 ff ff ff    	lea    -0x90(%ebp),%ecx
40c39e:	56                   	push   %esi
40c39f:	51                   	push   %ecx
40c3a0:	50                   	push   %eax
40c3a1:	e8 49 a0 ff ff       	call   0x4063ef
40c3a6:	50                   	push   %eax
40c3a7:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
40c3ad:	e8 81 4e 04 00       	call   0x451233
40c3b2:	8d a5 5c ff ff ff    	lea    -0xa4(%ebp),%esp
40c3b8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c3bb:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c3c2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c3c5:	e8 14 b8 00 00       	call   0x417bde
40c3ca:	5f                   	pop    %edi
40c3cb:	5e                   	pop    %esi
40c3cc:	5b                   	pop    %ebx
40c3cd:	c9                   	leave
40c3ce:	c2 0c 00             	ret    $0xc
40c3d1:	b8 33 31 48 00       	mov    $0x483133,%eax
40c3d6:	e8 a1 b8 00 00       	call   0x417c7c
40c3db:	51                   	push   %ecx
40c3dc:	56                   	push   %esi
40c3dd:	8b f1                	mov    %ecx,%esi
40c3df:	89 75 f0             	mov    %esi,-0x10(%ebp)
40c3e2:	e8 0f 3e 03 00       	call   0x4401f6
40c3e7:	50                   	push   %eax
40c3e8:	8b ce                	mov    %esi,%ecx
40c3ea:	e8 81 4f ff ff       	call   0x401370
40c3ef:	ff 75 08             	push   0x8(%ebp)
40c3f2:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c3f6:	8b ce                	mov    %esi,%ecx
40c3f8:	e8 b9 4f ff ff       	call   0x4013b6
40c3fd:	84 c0                	test   %al,%al
40c3ff:	75 0a                	jne    0x40c40b
40c401:	ff 75 08             	push   0x8(%ebp)
40c404:	8b ce                	mov    %esi,%ecx
40c406:	e8 2c a8 ff ff       	call   0x406c37
40c40b:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c40e:	8b c6                	mov    %esi,%eax
40c410:	5e                   	pop    %esi
40c411:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c418:	c9                   	leave
40c419:	c2 04 00             	ret    $0x4
40c41c:	b8 45 31 48 00       	mov    $0x483145,%eax
40c421:	e8 56 b8 00 00       	call   0x417c7c
40c426:	51                   	push   %ecx
40c427:	53                   	push   %ebx
40c428:	56                   	push   %esi
40c429:	57                   	push   %edi
40c42a:	8b f9                	mov    %ecx,%edi
40c42c:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c432:	ff 75 08             	push   0x8(%ebp)
40c435:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c438:	8b d8                	mov    %eax,%ebx
40c43a:	e8 55 4e ff ff       	call   0x401294
40c43f:	8b 45 f0             	mov    -0x10(%ebp),%eax
40c442:	33 f6                	xor    %esi,%esi
40c444:	3b c6                	cmp    %esi,%eax
40c446:	89 75 fc             	mov    %esi,-0x4(%ebp)
40c449:	89 45 08             	mov    %eax,0x8(%ebp)
40c44c:	75 04                	jne    0x40c452
40c44e:	33 c0                	xor    %eax,%eax
40c450:	eb 27                	jmp    0x40c479
40c452:	50                   	push   %eax
40c453:	ff 15 88 03 4b 00    	call   *0x4b0388
40c459:	8b f0                	mov    %eax,%esi
40c45b:	46                   	inc    %esi
40c45c:	8d 04 36             	lea    (%esi,%esi,1),%eax
40c45f:	83 c0 03             	add    $0x3,%eax
40c462:	83 e0 fc             	and    $0xfffffffc,%eax
40c465:	e8 86 a2 00 00       	call   0x4166f0
40c46a:	8b c4                	mov    %esp,%eax
40c46c:	53                   	push   %ebx
40c46d:	56                   	push   %esi
40c46e:	ff 75 08             	push   0x8(%ebp)
40c471:	50                   	push   %eax
40c472:	e8 41 9f ff ff       	call   0x4063b8
40c477:	33 f6                	xor    %esi,%esi
40c479:	57                   	push   %edi
40c47a:	ff 75 0c             	push   0xc(%ebp)
40c47d:	ff 75 10             	push   0x10(%ebp)
40c480:	50                   	push   %eax
40c481:	ff 15 80 04 4b 00    	call   *0x4b0480
40c487:	3b c6                	cmp    %esi,%eax
40c489:	7d 44                	jge    0x40c4cf
40c48b:	3d 05 00 02 80       	cmp    $0x80020005,%eax
40c490:	75 05                	jne    0x40c497
40c492:	89 77 04             	mov    %esi,0x4(%edi)
40c495:	eb 0e                	jmp    0x40c4a5
40c497:	3d 0a 00 02 80       	cmp    $0x8002000a,%eax
40c49c:	75 1f                	jne    0x40c4bd
40c49e:	c7 47 04 00 00 00 80 	movl   $0x80000000,0x4(%edi)
40c4a5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c4a8:	83 c1 f0             	add    $0xfffffff0,%ecx
40c4ab:	89 37                	mov    %esi,(%edi)
40c4ad:	c7 47 08 01 00 00 00 	movl   $0x1,0x8(%edi)
40c4b4:	e8 99 4e ff ff       	call   0x401352
40c4b9:	33 c0                	xor    %eax,%eax
40c4bb:	eb 23                	jmp    0x40c4e0
40c4bd:	3d 0e 00 07 80       	cmp    $0x8007000e,%eax
40c4c2:	75 05                	jne    0x40c4c9
40c4c4:	e8 4e 8f 02 00       	call   0x435417
40c4c9:	50                   	push   %eax
40c4ca:	e8 72 6e 06 00       	call   0x473341
40c4cf:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c4d2:	83 c1 f0             	add    $0xfffffff0,%ecx
40c4d5:	89 77 08             	mov    %esi,0x8(%edi)
40c4d8:	e8 75 4e ff ff       	call   0x401352
40c4dd:	33 c0                	xor    %eax,%eax
40c4df:	40                   	inc    %eax
40c4e0:	8d 65 e4             	lea    -0x1c(%ebp),%esp
40c4e3:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40c4e6:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40c4ed:	5f                   	pop    %edi
40c4ee:	5e                   	pop    %esi
40c4ef:	5b                   	pop    %ebx
40c4f0:	c9                   	leave
40c4f1:	c2 0c 00             	ret    $0xc
40c4f4:	b8 5f 31 48 00       	mov    $0x48315f,%eax
40c4f9:	e8 7e b7 00 00       	call   0x417c7c
40c4fe:	83 ec 18             	sub    $0x18,%esp
40c501:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40c505:	53                   	push   %ebx
40c506:	56                   	push   %esi
40c507:	57                   	push   %edi
40c508:	8b f1                	mov    %ecx,%esi
40c50a:	ff 15 fc 70 4a 00    	call   *0x4a70fc
40c510:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c513:	e8 de 3c 03 00       	call   0x4401f6
40c518:	8b 10                	mov    (%eax),%edx
40c51a:	8b c8                	mov    %eax,%ecx
40c51c:	ff 52 0c             	call   *0xc(%edx)
40c51f:	8d 78 10             	lea    0x10(%eax),%edi
40c522:	89 7d f0             	mov    %edi,-0x10(%ebp)
40c525:	8b 46 08             	mov    0x8(%esi),%eax
40c528:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40c52c:	83 f8 02             	cmp    $0x2,%eax
40c52f:	75 11                	jne    0x40c542
40c531:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c534:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c537:	50                   	push   %eax
40c538:	e8 95 4b ff ff       	call   0x4010d2
40c53d:	e9 97 00 00 00       	jmp    0x40c5d9
40c542:	83 f8 01             	cmp    $0x1,%eax
40c545:	75 21                	jne    0x40c568
40c547:	68 98 f0 00 00       	push   $0xf098
40c54c:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40c54f:	e8 aa 4c ff ff       	call   0x4011fe
40c554:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c557:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c55a:	50                   	push   %eax
40c55b:	e8 72 4b ff ff       	call   0x4010d2
40c560:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40c563:	83 c1 f0             	add    $0xfffffff0,%ecx
40c566:	eb 74                	jmp    0x40c5dc
40c568:	8d 45 dc             	lea    -0x24(%ebp),%eax
40c56b:	50                   	push   %eax
40c56c:	e8 43 de ff ff       	call   0x40a3b4
40c571:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40c574:	50                   	push   %eax
40c575:	ff 75 0c             	push   0xc(%ebp)
40c578:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40c57c:	ff 75 10             	push   0x10(%ebp)
40c57f:	ff 76 04             	push   0x4(%esi)
40c582:	ff 36                	push   (%esi)
40c584:	ff 15 7c 04 4b 00    	call   *0x4b047c
40c58a:	50                   	push   %eax
40c58b:	e8 04 d8 ff ff       	call   0x409d94
40c590:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40c593:	85 db                	test   %ebx,%ebx
40c595:	66 c7 45 dc 08 00    	movw   $0x8,-0x24(%ebp)
40c59b:	75 04                	jne    0x40c5a1
40c59d:	33 c0                	xor    %eax,%eax
40c59f:	eb 25                	jmp    0x40c5c6
40c5a1:	53                   	push   %ebx
40c5a2:	ff 15 90 03 4b 00    	call   *0x4b0390
40c5a8:	8d 74 00 02          	lea    0x2(%eax,%eax,1),%esi
40c5ac:	8b c6                	mov    %esi,%eax
40c5ae:	83 c0 03             	add    $0x3,%eax