46f146:	89 84 24 a4 00 00 00 	mov    %eax,0xa4(%esp)
46f14d:	66 39 18             	cmp    %bx,(%eax)
46f150:	75 bf                	jne    0x46f111
46f152:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46f155:	8d 44 24 58          	lea    0x58(%esp),%eax
46f159:	50                   	push   %eax
46f15a:	e8 3d aa f9 ff       	call   0x409b9c
46f15f:	8d 4c 24 58          	lea    0x58(%esp),%ecx
46f163:	e8 fc 68 f9 ff       	call   0x405a64
46f168:	eb 2c                	jmp    0x46f196
46f16a:	ff 15 bc f0 48 00    	call   *0x48f0bc
46f170:	85 c0                	test   %eax,%eax
46f172:	74 11                	je     0x46f185
46f174:	ff b4 24 a4 00 00 00 	push   0xa4(%esp)
46f17b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46f17e:	e8 75 aa f9 ff       	call   0x409bf8
46f183:	eb 11                	jmp    0x46f196
46f185:	33 c0                	xor    %eax,%eax
46f187:	50                   	push   %eax
46f188:	8b 03                	mov    (%ebx),%eax
46f18a:	6a 01                	push   $0x1
46f18c:	8b 48 04             	mov    0x4(%eax),%ecx
46f18f:	03 cb                	add    %ebx,%ecx
46f191:	e8 0d 79 fe ff       	call   0x456aa3
46f196:	8b 44 24 10          	mov    0x10(%esp),%eax
46f19a:	ff 08                	decl   (%eax)
46f19c:	75 11                	jne    0x46f1af
46f19e:	50                   	push   %eax
46f19f:	e8 c8 1e fb ff       	call   0x42106c
46f1a4:	59                   	pop    %ecx
46f1a5:	ff 74 24 0c          	push   0xc(%esp)
46f1a9:	e8 be 1e fb ff       	call   0x42106c
46f1ae:	59                   	pop    %ecx
46f1af:	8b 44 24 30          	mov    0x30(%esp),%eax
46f1b3:	ff 08                	decl   (%eax)
46f1b5:	75 11                	jne    0x46f1c8
46f1b7:	50                   	push   %eax
46f1b8:	e8 af 1e fb ff       	call   0x42106c
46f1bd:	59                   	pop    %ecx
46f1be:	ff 74 24 2c          	push   0x2c(%esp)
46f1c2:	e8 a5 1e fb ff       	call   0x42106c
46f1c7:	59                   	pop    %ecx
46f1c8:	8d 4c 24 38          	lea    0x38(%esp),%ecx
46f1cc:	e8 93 68 f9 ff       	call   0x405a64
46f1d1:	8d 4c 24 14          	lea    0x14(%esp),%ecx
46f1d5:	e8 8a 68 f9 ff       	call   0x405a64
46f1da:	8d 4c 24 68          	lea    0x68(%esp),%ecx
46f1de:	e8 81 68 f9 ff       	call   0x405a64
46f1e3:	8d 4c 24 48          	lea    0x48(%esp),%ecx
46f1e7:	e8 78 68 f9 ff       	call   0x405a64
46f1ec:	8d 4c 24 78          	lea    0x78(%esp),%ecx
46f1f0:	e8 6f 68 f9 ff       	call   0x405a64
46f1f5:	5f                   	pop    %edi
46f1f6:	5e                   	pop    %esi
46f1f7:	33 c0                	xor    %eax,%eax
46f1f9:	5b                   	pop    %ebx
46f1fa:	8b e5                	mov    %ebp,%esp
46f1fc:	5d                   	pop    %ebp
46f1fd:	c2 10 00             	ret    $0x10
46f200:	55                   	push   %ebp
46f201:	8b ec                	mov    %esp,%ebp
46f203:	81 ec 5c 02 00 00    	sub    $0x25c,%esp
46f209:	53                   	push   %ebx
46f20a:	56                   	push   %esi
46f20b:	57                   	push   %edi
46f20c:	8b 3d 04 f2 48 00    	mov    0x48f204,%edi
46f212:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f218:	50                   	push   %eax
46f219:	ff 75 08             	push   0x8(%ebp)
46f21c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46f21f:	32 db                	xor    %bl,%bl
46f221:	ff d7                	call   *%edi
46f223:	8b f0                	mov    %eax,%esi
46f225:	83 fe ff             	cmp    $0xffffffff,%esi
46f228:	74 71                	je     0x46f29b
46f22a:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f230:	68 80 fb 48 00       	push   $0x48fb80
46f235:	50                   	push   %eax
46f236:	e8 51 45 fb ff       	call   0x42378c
46f23b:	59                   	pop    %ecx
46f23c:	59                   	pop    %ecx
46f23d:	85 c0                	test   %eax,%eax
46f23f:	74 48                	je     0x46f289
46f241:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f247:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f24c:	50                   	push   %eax
46f24d:	e8 3a 45 fb ff       	call   0x42378c
46f252:	59                   	pop    %ecx
46f253:	59                   	pop    %ecx
46f254:	85 c0                	test   %eax,%eax
46f256:	74 31                	je     0x46f289
46f258:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f25e:	50                   	push   %eax
46f25f:	ff 15 00 f2 48 00    	call   *0x48f200
46f265:	8b c8                	mov    %eax,%ecx
46f267:	8b 45 10             	mov    0x10(%ebp),%eax
46f26a:	0b 4d 0c             	or     0xc(%ebp),%ecx
46f26d:	f7 d0                	not    %eax
46f26f:	23 c8                	and    %eax,%ecx
46f271:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f277:	51                   	push   %ecx
46f278:	50                   	push   %eax
46f279:	ff 15 d0 f2 48 00    	call   *0x48f2d0
46f27f:	85 c0                	test   %eax,%eax
46f281:	0f 84 c7 00 00 00    	je     0x46f34e
46f287:	b3 01                	mov    $0x1,%bl
46f289:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f28f:	50                   	push   %eax
46f290:	56                   	push   %esi
46f291:	ff 15 18 f2 48 00    	call   *0x48f218
46f297:	85 c0                	test   %eax,%eax
46f299:	75 8f                	jne    0x46f22a
46f29b:	56                   	push   %esi
46f29c:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f2a2:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
46f2a6:	0f 84 97 00 00 00    	je     0x46f343
46f2ac:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f2b2:	50                   	push   %eax
46f2b3:	68 98 a5 4b 00       	push   $0x4ba598
46f2b8:	ff d7                	call   *%edi
46f2ba:	8b f0                	mov    %eax,%esi
46f2bc:	83 fe ff             	cmp    $0xffffffff,%esi
46f2bf:	74 79                	je     0x46f33a
46f2c1:	8b 3d 08 f2 48 00    	mov    0x48f208,%edi
46f2c7:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46f2ca:	f6 85 a8 fd ff ff 10 	testb  $0x10,-0x258(%ebp)
46f2d1:	74 55                	je     0x46f328
46f2d3:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f2d9:	68 80 fb 48 00       	push   $0x48fb80
46f2de:	50                   	push   %eax
46f2df:	e8 a8 44 fb ff       	call   0x42378c
46f2e4:	59                   	pop    %ecx
46f2e5:	59                   	pop    %ecx
46f2e6:	85 c0                	test   %eax,%eax
46f2e8:	74 3e                	je     0x46f328
46f2ea:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f2f0:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f2f5:	50                   	push   %eax
46f2f6:	e8 91 44 fb ff       	call   0x42378c
46f2fb:	59                   	pop    %ecx
46f2fc:	59                   	pop    %ecx
46f2fd:	85 c0                	test   %eax,%eax
46f2ff:	74 27                	je     0x46f328
46f301:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f307:	50                   	push   %eax
46f308:	ff d7                	call   *%edi
46f30a:	ff 75 14             	push   0x14(%ebp)
46f30d:	8b cb                	mov    %ebx,%ecx
46f30f:	ff 75 10             	push   0x10(%ebp)
46f312:	ff 75 0c             	push   0xc(%ebp)
46f315:	ff 75 08             	push   0x8(%ebp)
46f318:	e8 e3 fe ff ff       	call   0x46f200
46f31d:	84 c0                	test   %al,%al
46f31f:	74 38                	je     0x46f359
46f321:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f326:	ff d7                	call   *%edi
46f328:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f32e:	50                   	push   %eax
46f32f:	56                   	push   %esi
46f330:	ff 15 18 f2 48 00    	call   *0x48f218
46f336:	85 c0                	test   %eax,%eax
46f338:	75 90                	jne    0x46f2ca
46f33a:	b3 01                	mov    $0x1,%bl
46f33c:	56                   	push   %esi
46f33d:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f343:	8a c3                	mov    %bl,%al
46f345:	5f                   	pop    %edi
46f346:	5e                   	pop    %esi
46f347:	5b                   	pop    %ebx
46f348:	8b e5                	mov    %ebp,%esp
46f34a:	5d                   	pop    %ebp
46f34b:	c2 10 00             	ret    $0x10
46f34e:	56                   	push   %esi
46f34f:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f355:	32 c0                	xor    %al,%al
46f357:	eb ec                	jmp    0x46f345
46f359:	33 db                	xor    %ebx,%ebx
46f35b:	eb df                	jmp    0x46f33c
46f35d:	55                   	push   %ebp
46f35e:	8b ec                	mov    %esp,%ebp
46f360:	81 ec 5c 02 00 00    	sub    $0x25c,%esp
46f366:	53                   	push   %ebx
46f367:	56                   	push   %esi
46f368:	57                   	push   %edi
46f369:	8b 3d 04 f2 48 00    	mov    0x48f204,%edi
46f36f:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f375:	50                   	push   %eax
46f376:	ff 75 08             	push   0x8(%ebp)
46f379:	89 4d fc             	mov    %ecx,-0x4(%ebp)
46f37c:	32 db                	xor    %bl,%bl
46f37e:	ff d7                	call   *%edi
46f380:	8b f0                	mov    %eax,%esi
46f382:	83 fe ff             	cmp    $0xffffffff,%esi
46f385:	74 5c                	je     0x46f3e3
46f387:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f38d:	68 80 fb 48 00       	push   $0x48fb80
46f392:	50                   	push   %eax
46f393:	e8 f4 43 fb ff       	call   0x42378c
46f398:	59                   	pop    %ecx
46f399:	59                   	pop    %ecx
46f39a:	85 c0                	test   %eax,%eax
46f39c:	74 33                	je     0x46f3d1
46f39e:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f3a4:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f3a9:	50                   	push   %eax
46f3aa:	e8 dd 43 fb ff       	call   0x42378c
46f3af:	59                   	pop    %ecx
46f3b0:	59                   	pop    %ecx
46f3b1:	85 c0                	test   %eax,%eax
46f3b3:	74 1c                	je     0x46f3d1
46f3b5:	ff 75 10             	push   0x10(%ebp)
46f3b8:	8b 55 0c             	mov    0xc(%ebp),%edx
46f3bb:	8d 8d d4 fd ff ff    	lea    -0x22c(%ebp),%ecx
46f3c1:	e8 fb 51 ff ff       	call   0x4645c1
46f3c6:	59                   	pop    %ecx
46f3c7:	84 c0                	test   %al,%al
46f3c9:	0f 84 c7 00 00 00    	je     0x46f496
46f3cf:	b3 01                	mov    $0x1,%bl
46f3d1:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f3d7:	50                   	push   %eax
46f3d8:	56                   	push   %esi
46f3d9:	ff 15 18 f2 48 00    	call   *0x48f218
46f3df:	85 c0                	test   %eax,%eax
46f3e1:	75 a4                	jne    0x46f387
46f3e3:	56                   	push   %esi
46f3e4:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f3ea:	80 7d 14 00          	cmpb   $0x0,0x14(%ebp)
46f3ee:	0f 84 97 00 00 00    	je     0x46f48b
46f3f4:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f3fa:	50                   	push   %eax
46f3fb:	68 98 a5 4b 00       	push   $0x4ba598
46f400:	ff d7                	call   *%edi
46f402:	8b f0                	mov    %eax,%esi
46f404:	83 fe ff             	cmp    $0xffffffff,%esi
46f407:	74 79                	je     0x46f482
46f409:	8b 3d 08 f2 48 00    	mov    0x48f208,%edi
46f40f:	8b 5d fc             	mov    -0x4(%ebp),%ebx
46f412:	f6 85 a8 fd ff ff 10 	testb  $0x10,-0x258(%ebp)
46f419:	74 55                	je     0x46f470
46f41b:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f421:	68 80 fb 48 00       	push   $0x48fb80
46f426:	50                   	push   %eax
46f427:	e8 60 43 fb ff       	call   0x42378c
46f42c:	59                   	pop    %ecx
46f42d:	59                   	pop    %ecx
46f42e:	85 c0                	test   %eax,%eax
46f430:	74 3e                	je     0x46f470
46f432:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f438:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f43d:	50                   	push   %eax
46f43e:	e8 49 43 fb ff       	call   0x42378c
46f443:	59                   	pop    %ecx
46f444:	59                   	pop    %ecx
46f445:	85 c0                	test   %eax,%eax
46f447:	74 27                	je     0x46f470
46f449:	8d 85 d4 fd ff ff    	lea    -0x22c(%ebp),%eax
46f44f:	50                   	push   %eax
46f450:	ff d7                	call   *%edi
46f452:	ff 75 14             	push   0x14(%ebp)
46f455:	8b cb                	mov    %ebx,%ecx
46f457:	ff 75 10             	push   0x10(%ebp)
46f45a:	ff 75 0c             	push   0xc(%ebp)
46f45d:	ff 75 08             	push   0x8(%ebp)
46f460:	e8 f8 fe ff ff       	call   0x46f35d
46f465:	84 c0                	test   %al,%al
46f467:	74 38                	je     0x46f4a1
46f469:	68 a0 a5 4b 00       	push   $0x4ba5a0
46f46e:	ff d7                	call   *%edi
46f470:	8d 85 a8 fd ff ff    	lea    -0x258(%ebp),%eax
46f476:	50                   	push   %eax
46f477:	56                   	push   %esi
46f478:	ff 15 18 f2 48 00    	call   *0x48f218
46f47e:	85 c0                	test   %eax,%eax
46f480:	75 90                	jne    0x46f412
46f482:	b3 01                	mov    $0x1,%bl
46f484:	56                   	push   %esi
46f485:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f48b:	8a c3                	mov    %bl,%al
46f48d:	5f                   	pop    %edi
46f48e:	5e                   	pop    %esi
46f48f:	5b                   	pop    %ebx
46f490:	8b e5                	mov    %ebp,%esp
46f492:	5d                   	pop    %ebp
46f493:	c2 10 00             	ret    $0x10
46f496:	56                   	push   %esi
46f497:	ff 15 ec f3 48 00    	call   *0x48f3ec
46f49d:	32 c0                	xor    %al,%al
46f49f:	eb ec                	jmp    0x46f48d
46f4a1:	33 db                	xor    %ebx,%ebx
46f4a3:	eb df                	jmp    0x46f484
46f4a5:	55                   	push   %ebp
46f4a6:	8b ec                	mov    %esp,%ebp
46f4a8:	83 e4 f8             	and    $0xfffffff8,%esp
46f4ab:	83 ec 18             	sub    $0x18,%esp
46f4ae:	56                   	push   %esi
46f4af:	8b 75 08             	mov    0x8(%ebp),%esi
46f4b2:	57                   	push   %edi
46f4b3:	8b f9                	mov    %ecx,%edi
46f4b5:	8b 46 04             	mov    0x4(%esi),%eax
46f4b8:	8b 00                	mov    (%eax),%eax
46f4ba:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
46f4be:	75 5a                	jne    0x46f51a
46f4c0:	6a 38                	push   $0x38
46f4c2:	e8 2f 1b fb ff       	call   0x420ff6
46f4c7:	59                   	pop    %ecx
46f4c8:	85 c0                	test   %eax,%eax
46f4ca:	74 0b                	je     0x46f4d7
46f4cc:	8b c8                	mov    %eax,%ecx
46f4ce:	e8 33 64 f9 ff       	call   0x405906
46f4d3:	8b f8                	mov    %eax,%edi
46f4d5:	eb 02                	jmp    0x46f4d9
46f4d7:	33 ff                	xor    %edi,%edi
46f4d9:	8b 46 04             	mov    0x4(%esi),%eax
46f4dc:	8b 30                	mov    (%eax),%esi
46f4de:	8b ce                	mov    %esi,%ecx
46f4e0:	e8 b2 a4 f9 ff       	call   0x409997
46f4e5:	6a 01                	push   $0x1
46f4e7:	ff 76 08             	push   0x8(%esi)
46f4ea:	8b cf                	mov    %edi,%ecx
46f4ec:	e8 65 64 f9 ff       	call   0x405956
46f4f1:	84 c0                	test   %al,%al
46f4f3:	75 50                	jne    0x46f545
46f4f5:	85 ff                	test   %edi,%edi
46f4f7:	74 08                	je     0x46f501
46f4f9:	51                   	push   %ecx
46f4fa:	8b cf                	mov    %edi,%ecx
46f4fc:	e8 19 65 f9 ff       	call   0x405a1a
46f501:	8b 75 0c             	mov    0xc(%ebp),%esi
46f504:	8b ce                	mov    %esi,%ecx
46f506:	e8 15 a5 f9 ff       	call   0x409a20
46f50b:	83 26 00             	andl   $0x0,(%esi)
46f50e:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46f515:	e9 3a 01 00 00       	jmp    0x46f654
46f51a:	6a 00                	push   $0x0
46f51c:	50                   	push   %eax
46f51d:	8d 44 24 14          	lea    0x14(%esp),%eax
46f521:	50                   	push   %eax
46f522:	e8 b8 02 00 00       	call   0x46f7df
46f527:	84 c0                	test   %al,%al
46f529:	74 d6                	je     0x46f501
46f52b:	8b 8f 94 01 00 00    	mov    0x194(%edi),%ecx
46f531:	8b 44 24 0c          	mov    0xc(%esp),%eax
46f535:	8b 04 81             	mov    (%ecx,%eax,4),%eax
46f538:	8b 00                	mov    (%eax),%eax
46f53a:	8b 78 04             	mov    0x4(%eax),%edi
46f53d:	f6 47 28 03          	testb  $0x3,0x28(%edi)
46f541:	75 05                	jne    0x46f548
46f543:	eb bc                	jmp    0x46f501
46f545:	8b 75 08             	mov    0x8(%ebp),%esi
46f548:	8b 46 04             	mov    0x4(%esi),%eax