40516c:	c3                   	ret
40516d:	8d 40 00             	lea    0x0(%eax),%eax
405170:	53                   	push   %ebx
405171:	93                   	xchg   %eax,%ebx
405172:	31 c9                	xor    %ecx,%ecx
405174:	87 4b 08             	xchg   %ecx,0x8(%ebx)
405177:	e3 07                	jecxz  0x405180
405179:	89 da                	mov    %ebx,%edx
40517b:	8b 42 0c             	mov    0xc(%edx),%eax
40517e:	ff d1                	call   *%ecx
405180:	8b 4b 10             	mov    0x10(%ebx),%ecx
405183:	e3 27                	jecxz  0x4051ac
405185:	8b 51 18             	mov    0x18(%ecx),%edx
405188:	8b 49 1c             	mov    0x1c(%ecx),%ecx
40518b:	e3 1f                	jecxz  0x4051ac
40518d:	8b 44 8a fc          	mov    -0x4(%edx,%ecx,4),%eax
405191:	8b 54 8a f8          	mov    -0x8(%edx,%ecx,4),%edx
405195:	50                   	push   %eax
405196:	52                   	push   %edx
405197:	8b 43 10             	mov    0x10(%ebx),%eax
40519a:	8d 51 fe             	lea    -0x2(%ecx),%edx
40519d:	31 c9                	xor    %ecx,%ecx
40519f:	b1 02                	mov    $0x2,%cl
4051a1:	e8 8e 00 00 00       	call   0x405234
4051a6:	5a                   	pop    %edx
4051a7:	58                   	pop    %eax
4051a8:	ff d2                	call   *%edx
4051aa:	eb d4                	jmp    0x405180
4051ac:	31 c0                	xor    %eax,%eax
4051ae:	87 43 10             	xchg   %eax,0x10(%ebx)
4051b1:	e8 5a 50 00 00       	call   0x40a210
4051b6:	5b                   	pop    %ebx
4051b7:	c3                   	ret
4051b8:	8b 15 1c 4c 40 00    	mov    0x404c1c,%edx
4051be:	33 c0                	xor    %eax,%eax
4051c0:	e8 3b 50 00 00       	call   0x40a200
4051c5:	c7 40 24 04 00 00 00 	movl   $0x4,0x24(%eax)
4051cc:	c3                   	ret
4051cd:	8d 40 00             	lea    0x0(%eax),%eax
4051d0:	53                   	push   %ebx
4051d1:	56                   	push   %esi
4051d2:	57                   	push   %edi
4051d3:	8b f2                	mov    %edx,%esi
4051d5:	8b d8                	mov    %eax,%ebx
4051d7:	8b 7b 1c             	mov    0x1c(%ebx),%edi
4051da:	3b 7b 20             	cmp    0x20(%ebx),%edi
4051dd:	7c 37                	jl     0x405216
4051df:	8b 43 24             	mov    0x24(%ebx),%eax
4051e2:	85 c0                	test   %eax,%eax
4051e4:	7f 25                	jg     0x40520b
4051e6:	8b d7                	mov    %edi,%edx
4051e8:	85 d2                	test   %edx,%edx
4051ea:	79 03                	jns    0x4051ef
4051ec:	83 c2 03             	add    $0x3,%edx
4051ef:	c1 fa 02             	sar    $0x2,%edx
4051f2:	42                   	inc    %edx
4051f3:	b8 e8 03 00 00       	mov    $0x3e8,%eax
4051f8:	e8 ab fe ff ff       	call   0x4050a8
4051fd:	8b d0                	mov    %eax,%edx
4051ff:	03 53 1c             	add    0x1c(%ebx),%edx
405202:	8b c3                	mov    %ebx,%eax
405204:	e8 c7 50 00 00       	call   0x40a2d0
405209:	eb 0b                	jmp    0x405216
40520b:	8b d7                	mov    %edi,%edx
40520d:	03 d0                	add    %eax,%edx
40520f:	8b c3                	mov    %ebx,%eax
405211:	e8 ba 50 00 00       	call   0x40a2d0
405216:	8b 43 1c             	mov    0x1c(%ebx),%eax
405219:	8b 53 18             	mov    0x18(%ebx),%edx
40521c:	89 34 82             	mov    %esi,(%edx,%eax,4)
40521f:	ff 43 1c             	incl   0x1c(%ebx)
405222:	5f                   	pop    %edi
405223:	5e                   	pop    %esi
405224:	5b                   	pop    %ebx
405225:	c3                   	ret
405226:	8b c0                	mov    %eax,%eax
405228:	b9 01 00 00 00       	mov    $0x1,%ecx
40522d:	e8 02 00 00 00       	call   0x405234
405232:	c3                   	ret
405233:	90                   	nop
405234:	85 c9                	test   %ecx,%ecx
405236:	7e 33                	jle    0x40526b
405238:	3b 50 1c             	cmp    0x1c(%eax),%edx
40523b:	7d 2e                	jge    0x40526b
40523d:	53                   	push   %ebx
40523e:	93                   	xchg   %eax,%ebx
40523f:	8d 04 11             	lea    (%ecx,%edx,1),%eax
405242:	3b 43 1c             	cmp    0x1c(%ebx),%eax
405245:	76 05                	jbe    0x40524c
405247:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
40524a:	29 d1                	sub    %edx,%ecx
40524c:	8b 43 18             	mov    0x18(%ebx),%eax
40524f:	ff 73 1c             	push   0x1c(%ebx)
405252:	29 4b 1c             	sub    %ecx,0x1c(%ebx)
405255:	89 d3                	mov    %edx,%ebx
405257:	8d 14 90             	lea    (%eax,%edx,4),%edx
40525a:	8d 04 8a             	lea    (%edx,%ecx,4),%eax
40525d:	01 cb                	add    %ecx,%ebx
40525f:	59                   	pop    %ecx
405260:	29 d9                	sub    %ebx,%ecx
405262:	c1 e1 02             	shl    $0x2,%ecx
405265:	e8 da d6 ff ff       	call   0x402944
40526a:	5b                   	pop    %ebx
40526b:	c3                   	ret
40526c:	53                   	push   %ebx
40526d:	8b d8                	mov    %eax,%ebx
40526f:	8b c3                	mov    %ebx,%eax
405271:	e8 0e 00 00 00       	call   0x405284
405276:	85 c0                	test   %eax,%eax
405278:	7c 08                	jl     0x405282
40527a:	8b d3                	mov    %ebx,%edx
40527c:	92                   	xchg   %eax,%edx
40527d:	e8 a6 ff ff ff       	call   0x405228
405282:	5b                   	pop    %ebx
405283:	c3                   	ret
405284:	57                   	push   %edi
405285:	8b 78 18             	mov    0x18(%eax),%edi
405288:	8b 48 1c             	mov    0x1c(%eax),%ecx
40528b:	57                   	push   %edi
40528c:	48                   	dec    %eax
40528d:	89 d0                	mov    %edx,%eax
40528f:	f2 af                	repnz scas %es:(%edi),%eax
405291:	5a                   	pop    %edx
405292:	74 02                	je     0x405296
405294:	89 d7                	mov    %edx,%edi
405296:	89 f8                	mov    %edi,%eax
405298:	f9                   	stc
405299:	19 d0                	sbb    %edx,%eax
40529b:	c1 f8 02             	sar    $0x2,%eax
40529e:	5f                   	pop    %edi
40529f:	c3                   	ret
4052a0:	51                   	push   %ecx
4052a1:	50                   	push   %eax
4052a2:	ff 70 1c             	push   0x1c(%eax)
4052a5:	52                   	push   %edx
4052a6:	e8 25 ff ff ff       	call   0x4051d0
4052ab:	5a                   	pop    %edx
4052ac:	58                   	pop    %eax
4052ad:	29 d0                	sub    %edx,%eax
4052af:	c1 e0 02             	shl    $0x2,%eax
4052b2:	89 c1                	mov    %eax,%ecx
4052b4:	58                   	pop    %eax
4052b5:	8b 40 18             	mov    0x18(%eax),%eax
4052b8:	8d 04 90             	lea    (%eax,%edx,4),%eax
4052bb:	7c 0a                	jl     0x4052c7
4052bd:	50                   	push   %eax
4052be:	8d 50 04             	lea    0x4(%eax),%edx
4052c1:	e8 7e d6 ff ff       	call   0x402944
4052c6:	58                   	pop    %eax
4052c7:	59                   	pop    %ecx
4052c8:	89 08                	mov    %ecx,(%eax)
4052ca:	c3                   	ret
4052cb:	90                   	nop
4052cc:	55                   	push   %ebp
4052cd:	8b ec                	mov    %esp,%ebp
4052cf:	83 c4 e0             	add    $0xffffffe0,%esp
4052d2:	53                   	push   %ebx
4052d3:	56                   	push   %esi
4052d4:	57                   	push   %edi
4052d5:	8b 7d 10             	mov    0x10(%ebp),%edi
4052d8:	8b 75 0c             	mov    0xc(%ebp),%esi
4052db:	8b 5d 08             	mov    0x8(%ebp),%ebx
4052de:	89 5d e0             	mov    %ebx,-0x20(%ebp)
4052e1:	89 75 e4             	mov    %esi,-0x1c(%ebp)
4052e4:	89 7d e8             	mov    %edi,-0x18(%ebp)
4052e7:	8b 45 14             	mov    0x14(%ebp),%eax
4052ea:	89 45 ec             	mov    %eax,-0x14(%ebp)
4052ed:	33 c0                	xor    %eax,%eax
4052ef:	89 45 fc             	mov    %eax,-0x4(%ebp)
4052f2:	85 db                	test   %ebx,%ebx
4052f4:	74 3b                	je     0x405331
4052f6:	83 3d b0 98 42 00 00 	cmpl   $0x0,0x4298b0
4052fd:	74 27                	je     0x405326
4052ff:	a1 b0 98 42 00       	mov    0x4298b0,%eax
405304:	89 45 fc             	mov    %eax,-0x4(%ebp)
405307:	a1 b0 98 42 00       	mov    0x4298b0,%eax
40530c:	89 58 1c             	mov    %ebx,0x1c(%eax)
40530f:	a1 b0 98 42 00       	mov    0x4298b0,%eax
405314:	50                   	push   %eax
405315:	6a eb                	push   $0xffffffeb
405317:	53                   	push   %ebx
405318:	e8 ef fc ff ff       	call   0x40500c
40531d:	33 c0                	xor    %eax,%eax
40531f:	a3 b0 98 42 00       	mov    %eax,0x4298b0
405324:	eb 0b                	jmp    0x405331
405326:	6a eb                	push   $0xffffffeb
405328:	53                   	push   %ebx
405329:	e8 7e fc ff ff       	call   0x404fac
40532e:	89 45 fc             	mov    %eax,-0x4(%ebp)
405331:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
405335:	74 0d                	je     0x405344
405337:	8d 55 e0             	lea    -0x20(%ebp),%edx
40533a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40533d:	8b 08                	mov    (%eax),%ecx
40533f:	ff 51 14             	call   *0x14(%ecx)
405342:	eb 24                	jmp    0x405368
405344:	83 3d 98 98 42 00 00 	cmpl   $0x0,0x429898
40534b:	74 0f                	je     0x40535c
40534d:	8d 55 e0             	lea    -0x20(%ebp),%edx
405350:	a1 98 98 42 00       	mov    0x429898,%eax
405355:	8b 08                	mov    (%eax),%ecx
405357:	ff 51 14             	call   *0x14(%ecx)
40535a:	eb 0c                	jmp    0x405368
40535c:	8b 45 14             	mov    0x14(%ebp),%eax
40535f:	50                   	push   %eax
405360:	57                   	push   %edi
405361:	56                   	push   %esi
405362:	53                   	push   %ebx
405363:	e8 0c fc ff ff       	call   0x404f74
405368:	5f                   	pop    %edi
405369:	5e                   	pop    %esi
40536a:	5b                   	pop    %ebx
40536b:	8b e5                	mov    %ebp,%esp
40536d:	5d                   	pop    %ebp
40536e:	c2 10 00             	ret    $0x10
405371:	8d 40 00             	lea    0x0(%eax),%eax
405374:	55                   	push   %ebp
405375:	8b ec                	mov    %esp,%ebp
405377:	51                   	push   %ecx
405378:	53                   	push   %ebx
405379:	56                   	push   %esi
40537a:	57                   	push   %edi
40537b:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40537f:	33 d2                	xor    %edx,%edx
405381:	55                   	push   %ebp
405382:	68 af 53 40 00       	push   $0x4053af
405387:	64 ff 32             	push   %fs:(%edx)
40538a:	64 89 22             	mov    %esp,%fs:(%edx)
40538d:	85 c0                	test   %eax,%eax
40538f:	75 0c                	jne    0x40539d
405391:	64 8f 05 00 00 00 00 	pop    %fs:0x0
405398:	83 c4 08             	add    $0x8,%esp
40539b:	eb 1c                	jmp    0x4053b9
40539d:	8b 10                	mov    (%eax),%edx
40539f:	ff 52 10             	call   *0x10(%edx)
4053a2:	88 45 ff             	mov    %al,-0x1(%ebp)
4053a5:	33 c0                	xor    %eax,%eax
4053a7:	5a                   	pop    %edx
4053a8:	59                   	pop    %ecx
4053a9:	59                   	pop    %ecx
4053aa:	64 89 10             	mov    %edx,%fs:(%eax)
4053ad:	eb 0a                	jmp    0x4053b9
4053af:	e9 28 dc ff ff       	jmp    0x402fdc
4053b4:	e8 db dd ff ff       	call   0x403194
4053b9:	8a 45 ff             	mov    -0x1(%ebp),%al
4053bc:	5f                   	pop    %edi
4053bd:	5e                   	pop    %esi
4053be:	5b                   	pop    %ebx
4053bf:	59                   	pop    %ecx
4053c0:	5d                   	pop    %ebp
4053c1:	c3                   	ret
4053c2:	8b c0                	mov    %eax,%eax
4053c4:	8b 15 58 4c 40 00    	mov    0x404c58,%edx
4053ca:	33 c0                	xor    %eax,%eax
4053cc:	e8 2f 4e 00 00       	call   0x40a200
4053d1:	c3                   	ret
4053d2:	8b c0                	mov    %eax,%eax
4053d4:	e8 8b 50 00 00       	call   0x40a464
4053d9:	8b d0                	mov    %eax,%edx
4053db:	c1 ea 13             	shr    $0x13,%edx
4053de:	66 83 e2 1f          	and    $0x1f,%dx
4053e2:	8b c8                	mov    %eax,%ecx
4053e4:	c1 e9 06             	shr    $0x6,%ecx
4053e7:	66 81 e1 e0 03       	and    $0x3e0,%cx
4053ec:	66 0b d1             	or     %cx,%dx
4053ef:	c1 e0 07             	shl    $0x7,%eax
4053f2:	66 25 00 7c          	and    $0x7c00,%ax
4053f6:	66 0b d0             	or     %ax,%dx
4053f9:	8b c2                	mov    %edx,%eax
4053fb:	c3                   	ret
4053fc:	53                   	push   %ebx
4053fd:	56                   	push   %esi
4053fe:	8b f2                	mov    %edx,%esi
405400:	8b d8                	mov    %eax,%ebx
405402:	8b c3                	mov    %ebx,%eax
405404:	8b ce                	mov    %esi,%ecx
405406:	33 d2                	xor    %edx,%edx
405408:	e8 3f 51 00 00       	call   0x40a54c
40540d:	8b c6                	mov    %esi,%eax
40540f:	e8 50 50 00 00       	call   0x40a464
405414:	89 43 21             	mov    %eax,0x21(%ebx)
405417:	5e                   	pop    %esi
405418:	5b                   	pop    %ebx
405419:	c3                   	ret
40541a:	8b c0                	mov    %eax,%eax
40541c:	53                   	push   %ebx
40541d:	56                   	push   %esi
40541e:	8b f2                	mov    %edx,%esi
405420:	8b d8                	mov    %eax,%ebx
405422:	8b 43 31             	mov    0x31(%ebx),%eax
405425:	3b f0                	cmp    %eax,%esi
405427:	74 1e                	je     0x405447
405429:	85 c0                	test   %eax,%eax
40542b:	74 10                	je     0x40543d
40542d:	8b c3                	mov    %ebx,%eax
40542f:	e8 bc 50 00 00       	call   0x40a4f0
405434:	8b 43 31             	mov    0x31(%ebx),%eax
405437:	50                   	push   %eax
405438:	e8 c3 f4 ff ff       	call   0x404900
40543d:	89 73 31             	mov    %esi,0x31(%ebx)
405440:	8b c3                	mov    %ebx,%eax
405442:	e8 a9 50 00 00       	call   0x40a4f0
405447:	5e                   	pop    %esi
405448:	5b                   	pop    %ebx
405449:	c3                   	ret
40544a:	8b c0                	mov    %eax,%eax
40544c:	3a 50 35             	cmp    0x35(%eax),%dl
40544f:	74 08                	je     0x405459
405451:	88 50 35             	mov    %dl,0x35(%eax)
405454:	e8 97 50 00 00       	call   0x40a4f0
405459:	c3                   	ret
40545a:	8b c0                	mov    %eax,%eax
40545c:	3a 50 48             	cmp    0x48(%eax),%dl
40545f:	74 08                	je     0x405469
405461:	88 50 48             	mov    %dl,0x48(%eax)
405464:	e8 87 50 00 00       	call   0x40a4f0
405469:	c3                   	ret
40546a:	8b c0                	mov    %eax,%eax
40546c:	92                   	xchg   %eax,%edx
40546d:	8b 42 19             	mov    0x19(%edx),%eax
405470:	85 c0                	test   %eax,%eax
405472:	75 0e                	jne    0x405482
405474:	52                   	push   %edx
405475:	8d 4a 31             	lea    0x31(%edx),%ecx
405478:	51                   	push   %ecx
405479:	e8 ce fa ff ff       	call   0x404f4c
40547e:	5a                   	pop    %edx
40547f:	89 42 19             	mov    %eax,0x19(%edx)
405482:	c3                   	ret
405483:	90                   	nop
405484:	53                   	push   %ebx
405485:	8b d8                	mov    %eax,%ebx
405487:	8b c3                	mov    %ebx,%eax
405489:	33 d2                	xor    %edx,%edx
40548b:	e8 98 53 00 00       	call   0x40a828
405490:	8b 43 2d             	mov    0x2d(%ebx),%eax
405493:	e8 78 4d 00 00       	call   0x40a210
405498:	8b 43 29             	mov    0x29(%ebx),%eax
40549b:	e8 70 4d 00 00       	call   0x40a210
4054a0:	8b 43 31             	mov    0x31(%ebx),%eax
4054a3:	e8 68 4d 00 00       	call   0x40a210
4054a8:	8b c3                	mov    %ebx,%eax
4054aa:	e8 71 4d 00 00       	call   0x40a220
4054af:	8b c3                	mov    %ebx,%eax
4054b1:	5b                   	pop    %ebx
4054b2:	c3                   	ret
4054b3:	90                   	nop
4054b4:	e8 a7 52 00 00       	call   0x40a760
4054b9:	c3                   	ret
4054ba:	8b c0                	mov    %eax,%eax