46c276:	5d                   	pop    %ebp
46c277:	c2 08 00             	ret    $0x8
46c27a:	55                   	push   %ebp
46c27b:	8b ec                	mov    %esp,%ebp
46c27d:	8b 45 08             	mov    0x8(%ebp),%eax
46c280:	56                   	push   %esi
46c281:	6a 00                	push   $0x0
46c283:	8b f1                	mov    %ecx,%esi
46c285:	8b 40 04             	mov    0x4(%eax),%eax
46c288:	ff 30                	push   (%eax)
46c28a:	8d 45 08             	lea    0x8(%ebp),%eax
46c28d:	50                   	push   %eax
46c28e:	e8 4c 35 00 00       	call   0x46f7df
46c293:	84 c0                	test   %al,%al
46c295:	74 21                	je     0x46c2b8
46c297:	8b 8e 94 01 00 00    	mov    0x194(%esi),%ecx
46c29d:	8b 45 08             	mov    0x8(%ebp),%eax
46c2a0:	8b 04 81             	mov    (%ecx,%eax,4),%eax
46c2a3:	8b 00                	mov    (%eax),%eax
46c2a5:	8b 40 04             	mov    0x4(%eax),%eax
46c2a8:	ff 30                	push   (%eax)
46c2aa:	ff 15 e8 f1 48 00    	call   *0x48f1e8
46c2b0:	85 c0                	test   %eax,%eax
46c2b2:	0f 95 45 08          	setne  0x8(%ebp)
46c2b6:	eb 04                	jmp    0x46c2bc
46c2b8:	c6 45 08 00          	movb   $0x0,0x8(%ebp)
46c2bc:	ff 75 08             	push   0x8(%ebp)
46c2bf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46c2c2:	e8 9c d5 f9 ff       	call   0x409863
46c2c7:	33 c0                	xor    %eax,%eax
46c2c9:	5e                   	pop    %esi
46c2ca:	5d                   	pop    %ebp
46c2cb:	c2 08 00             	ret    $0x8
46c2ce:	55                   	push   %ebp
46c2cf:	8b ec                	mov    %esp,%ebp
46c2d1:	83 e4 f8             	and    $0xfffffff8,%esp
46c2d4:	83 ec 10             	sub    $0x10,%esp
46c2d7:	56                   	push   %esi
46c2d8:	57                   	push   %edi
46c2d9:	8b f9                	mov    %ecx,%edi
46c2db:	8d 4c 24 08          	lea    0x8(%esp),%ecx
46c2df:	e8 e3 b4 f9 ff       	call   0x4077c7
46c2e4:	8b 45 08             	mov    0x8(%ebp),%eax
46c2e7:	8b 40 04             	mov    0x4(%eax),%eax
46c2ea:	8b 30                	mov    (%eax),%esi
46c2ec:	8b ce                	mov    %esi,%ecx
46c2ee:	e8 a4 d6 f9 ff       	call   0x409997
46c2f3:	8b 46 08             	mov    0x8(%esi),%eax
46c2f6:	8b 08                	mov    (%eax),%ecx
46c2f8:	e8 99 83 ff ff       	call   0x464696
46c2fd:	83 f8 ff             	cmp    $0xffffffff,%eax
46c300:	74 0d                	je     0x46c30f
46c302:	8d 4c 24 08          	lea    0x8(%esp),%ecx
46c306:	51                   	push   %ecx
46c307:	50                   	push   %eax
46c308:	e8 b4 29 00 00       	call   0x46ecc1
46c30d:	eb 10                	jmp    0x46c31f
46c30f:	8b 07                	mov    (%edi),%eax
46c311:	6a 00                	push   $0x0
46c313:	6a 01                	push   $0x1
46c315:	8b 48 04             	mov    0x4(%eax),%ecx
46c318:	03 cf                	add    %edi,%ecx
46c31a:	e8 84 a7 fe ff       	call   0x456aa3
46c31f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46c322:	8d 44 24 08          	lea    0x8(%esp),%eax
46c326:	50                   	push   %eax
46c327:	e8 70 d8 f9 ff       	call   0x409b9c
46c32c:	8d 4c 24 08          	lea    0x8(%esp),%ecx
46c330:	e8 2f 97 f9 ff       	call   0x405a64
46c335:	5f                   	pop    %edi
46c336:	33 c0                	xor    %eax,%eax
46c338:	5e                   	pop    %esi
46c339:	8b e5                	mov    %ebp,%esp
46c33b:	5d                   	pop    %ebp
46c33c:	c2 08 00             	ret    $0x8
46c33f:	55                   	push   %ebp
46c340:	8b ec                	mov    %esp,%ebp
46c342:	51                   	push   %ecx
46c343:	53                   	push   %ebx
46c344:	56                   	push   %esi
46c345:	8b 75 08             	mov    0x8(%ebp),%esi
46c348:	57                   	push   %edi
46c349:	8b f9                	mov    %ecx,%edi
46c34b:	8b 46 04             	mov    0x4(%esi),%eax
46c34e:	8b 00                	mov    (%eax),%eax
46c350:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
46c354:	75 7b                	jne    0x46c3d1
46c356:	6a 38                	push   $0x38
46c358:	e8 99 4c fb ff       	call   0x420ff6
46c35d:	59                   	pop    %ecx
46c35e:	85 c0                	test   %eax,%eax
46c360:	74 0b                	je     0x46c36d
46c362:	8b c8                	mov    %eax,%ecx
46c364:	e8 9d 95 f9 ff       	call   0x405906
46c369:	8b d8                	mov    %eax,%ebx
46c36b:	eb 02                	jmp    0x46c36f
46c36d:	33 db                	xor    %ebx,%ebx
46c36f:	83 7e 08 02          	cmpl   $0x2,0x8(%esi)
46c373:	bf 00 40 00 00       	mov    $0x4000,%edi
46c378:	72 14                	jb     0x46c38e
46c37a:	8b 46 04             	mov    0x4(%esi),%eax
46c37d:	8b 48 04             	mov    0x4(%eax),%ecx
46c380:	e8 17 d9 f9 ff       	call   0x409c9c
46c385:	83 e8 02             	sub    $0x2,%eax
46c388:	f7 d8                	neg    %eax
46c38a:	1b c0                	sbb    %eax,%eax
46c38c:	23 f8                	and    %eax,%edi
46c38e:	8b 46 04             	mov    0x4(%esi),%eax
46c391:	8b 30                	mov    (%eax),%esi
46c393:	8b ce                	mov    %esi,%ecx
46c395:	e8 fd d5 f9 ff       	call   0x409997
46c39a:	81 cf 00 80 00 00    	or     $0x8000,%edi
46c3a0:	8b cb                	mov    %ebx,%ecx
46c3a2:	57                   	push   %edi
46c3a3:	ff 76 08             	push   0x8(%esi)
46c3a6:	e8 ab 95 f9 ff       	call   0x405956
46c3ab:	84 c0                	test   %al,%al
46c3ad:	75 43                	jne    0x46c3f2
46c3af:	85 db                	test   %ebx,%ebx
46c3b1:	74 08                	je     0x46c3bb
46c3b3:	51                   	push   %ecx
46c3b4:	8b cb                	mov    %ebx,%ecx
46c3b6:	e8 5f 96 f9 ff       	call   0x405a1a
46c3bb:	8b 75 0c             	mov    0xc(%ebp),%esi
46c3be:	8b ce                	mov    %esi,%ecx
46c3c0:	e8 5b d6 f9 ff       	call   0x409a20
46c3c5:	83 0e ff             	orl    $0xffffffff,(%esi)
46c3c8:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46c3cf:	eb 5e                	jmp    0x46c42f
46c3d1:	6a 00                	push   $0x0
46c3d3:	50                   	push   %eax
46c3d4:	8d 45 fc             	lea    -0x4(%ebp),%eax
46c3d7:	50                   	push   %eax
46c3d8:	e8 02 34 00 00       	call   0x46f7df
46c3dd:	84 c0                	test   %al,%al
46c3df:	74 da                	je     0x46c3bb
46c3e1:	8b 8f 94 01 00 00    	mov    0x194(%edi),%ecx
46c3e7:	8b 45 fc             	mov    -0x4(%ebp),%eax
46c3ea:	8b 04 81             	mov    (%ecx,%eax,4),%eax
46c3ed:	8b 00                	mov    (%eax),%eax
46c3ef:	8b 58 04             	mov    0x4(%eax),%ebx
46c3f2:	8b cb                	mov    %ebx,%ecx
46c3f4:	e8 0f 93 f9 ff       	call   0x405708
46c3f9:	8b 75 0c             	mov    0xc(%ebp),%esi
46c3fc:	8b f8                	mov    %eax,%edi
46c3fe:	8b ce                	mov    %esi,%ecx
46c400:	e8 1b d6 f9 ff       	call   0x409a20
46c405:	8b 45 08             	mov    0x8(%ebp),%eax
46c408:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
46c40f:	89 3e                	mov    %edi,(%esi)
46c411:	8b 40 04             	mov    0x4(%eax),%eax
46c414:	8b 00                	mov    (%eax),%eax
46c416:	83 78 0c 04          	cmpl   $0x4,0xc(%eax)
46c41a:	75 13                	jne    0x46c42f
46c41c:	8b cb                	mov    %ebx,%ecx
46c41e:	e8 ac 99 f9 ff       	call   0x405dcf
46c423:	85 db                	test   %ebx,%ebx
46c425:	74 08                	je     0x46c42f
46c427:	51                   	push   %ecx
46c428:	8b cb                	mov    %ebx,%ecx
46c42a:	e8 eb 95 f9 ff       	call   0x405a1a
46c42f:	5f                   	pop    %edi
46c430:	5e                   	pop    %esi
46c431:	33 c0                	xor    %eax,%eax
46c433:	5b                   	pop    %ebx
46c434:	8b e5                	mov    %ebp,%esp
46c436:	5d                   	pop    %ebp
46c437:	c2 08 00             	ret    $0x8
46c43a:	55                   	push   %ebp
46c43b:	8b ec                	mov    %esp,%ebp
46c43d:	83 ec 10             	sub    $0x10,%esp
46c440:	53                   	push   %ebx
46c441:	56                   	push   %esi
46c442:	57                   	push   %edi
46c443:	8b 7d 08             	mov    0x8(%ebp),%edi
46c446:	8b d9                	mov    %ecx,%ebx
46c448:	8b 47 04             	mov    0x4(%edi),%eax
46c44b:	8b 30                	mov    (%eax),%esi
46c44d:	8b ce                	mov    %esi,%ecx
46c44f:	e8 43 d5 f9 ff       	call   0x409997
46c454:	8b 56 08             	mov    0x8(%esi),%edx
46c457:	8b 02                	mov    (%edx),%eax
46c459:	89 45 f0             	mov    %eax,-0x10(%ebp)
46c45c:	8b 42 04             	mov    0x4(%edx),%eax
46c45f:	89 45 f4             	mov    %eax,-0xc(%ebp)
46c462:	8b 42 08             	mov    0x8(%edx),%eax
46c465:	89 45 f8             	mov    %eax,-0x8(%ebp)
46c468:	8b 42 0c             	mov    0xc(%edx),%eax
46c46b:	89 45 fc             	mov    %eax,-0x4(%ebp)
46c46e:	ff 00                	incl   (%eax)
46c470:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
46c474:	76 1a                	jbe    0x46c490
46c476:	8b 47 04             	mov    0x4(%edi),%eax
46c479:	8b 48 04             	mov    0x4(%eax),%ecx
46c47c:	e8 1b d8 f9 ff       	call   0x409c9c
46c481:	83 f8 01             	cmp    $0x1,%eax
46c484:	75 0a                	jne    0x46c490
46c486:	8d 55 f0             	lea    -0x10(%ebp),%edx
46c489:	8b ca                	mov    %edx,%ecx
46c48b:	e8 1e 84 f9 ff       	call   0x4048ae
46c490:	8d 55 f0             	lea    -0x10(%ebp),%edx
46c493:	8b ca                	mov    %edx,%ecx
46c495:	e8 3b 45 fb ff       	call   0x4209d5
46c49a:	3c 01                	cmp    $0x1,%al
46c49c:	75 0e                	jne    0x46c4ac
46c49e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46c4a1:	8d 45 f0             	lea    -0x10(%ebp),%eax
46c4a4:	50                   	push   %eax
46c4a5:	e8 f2 d6 f9 ff       	call   0x409b9c
46c4aa:	eb 27                	jmp    0x46c4d3
46c4ac:	8b 47 04             	mov    0x4(%edi),%eax
46c4af:	8b 30                	mov    (%eax),%esi
46c4b1:	8b ce                	mov    %esi,%ecx
46c4b3:	e8 df d4 f9 ff       	call   0x409997
46c4b8:	ff 76 08             	push   0x8(%esi)
46c4bb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46c4be:	e8 d9 d6 f9 ff       	call   0x409b9c
46c4c3:	8b 03                	mov    (%ebx),%eax
46c4c5:	6a 00                	push   $0x0
46c4c7:	6a 01                	push   $0x1
46c4c9:	8b 48 04             	mov    0x4(%eax),%ecx
46c4cc:	03 cb                	add    %ebx,%ecx
46c4ce:	e8 d0 a5 fe ff       	call   0x456aa3
46c4d3:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46c4d6:	e8 89 95 f9 ff       	call   0x405a64
46c4db:	5f                   	pop    %edi
46c4dc:	5e                   	pop    %esi
46c4dd:	33 c0                	xor    %eax,%eax
46c4df:	5b                   	pop    %ebx
46c4e0:	8b e5                	mov    %ebp,%esp
46c4e2:	5d                   	pop    %ebp
46c4e3:	c2 08 00             	ret    $0x8
46c4e6:	55                   	push   %ebp
46c4e7:	8b ec                	mov    %esp,%ebp
46c4e9:	8b 45 08             	mov    0x8(%ebp),%eax
46c4ec:	53                   	push   %ebx
46c4ed:	56                   	push   %esi
46c4ee:	57                   	push   %edi
46c4ef:	8b 40 04             	mov    0x4(%eax),%eax
46c4f2:	33 db                	xor    %ebx,%ebx
46c4f4:	53                   	push   %ebx
46c4f5:	8b f1                	mov    %ecx,%esi
46c4f7:	ff 30                	push   (%eax)
46c4f9:	8d 45 08             	lea    0x8(%ebp),%eax
46c4fc:	50                   	push   %eax
46c4fd:	e8 dd 32 00 00       	call   0x46f7df
46c502:	84 c0                	test   %al,%al
46c504:	74 2f                	je     0x46c535
46c506:	8b 8e 94 01 00 00    	mov    0x194(%esi),%ecx
46c50c:	8b 45 08             	mov    0x8(%ebp),%eax
46c50f:	8b 75 0c             	mov    0xc(%ebp),%esi
46c512:	8b 04 81             	mov    (%ecx,%eax,4),%eax
46c515:	8b ce                	mov    %esi,%ecx
46c517:	8b 00                	mov    (%eax),%eax
46c519:	8b 40 04             	mov    0x4(%eax),%eax
46c51c:	8b 78 10             	mov    0x10(%eax),%edi
46c51f:	8b 58 14             	mov    0x14(%eax),%ebx
46c522:	e8 f9 d4 f9 ff       	call   0x409a20
46c527:	c7 46 0c 02 00 00 00 	movl   $0x2,0xc(%esi)
46c52e:	89 3e                	mov    %edi,(%esi)
46c530:	89 5e 04             	mov    %ebx,0x4(%esi)
46c533:	eb 20                	jmp    0x46c555
46c535:	8b 06                	mov    (%esi),%eax
46c537:	33 ff                	xor    %edi,%edi
46c539:	53                   	push   %ebx
46c53a:	47                   	inc    %edi
46c53b:	57                   	push   %edi
46c53c:	8b 48 04             	mov    0x4(%eax),%ecx
46c53f:	03 ce                	add    %esi,%ecx
46c541:	e8 5d a5 fe ff       	call   0x456aa3
46c546:	8b 75 0c             	mov    0xc(%ebp),%esi
46c549:	8b ce                	mov    %esi,%ecx
46c54b:	e8 d0 d4 f9 ff       	call   0x409a20
46c550:	89 7e 0c             	mov    %edi,0xc(%esi)
46c553:	89 1e                	mov    %ebx,(%esi)
46c555:	5f                   	pop    %edi
46c556:	5e                   	pop    %esi
46c557:	33 c0                	xor    %eax,%eax
46c559:	5b                   	pop    %ebx
46c55a:	5d                   	pop    %ebp
46c55b:	c2 08 00             	ret    $0x8
46c55e:	55                   	push   %ebp
46c55f:	8b ec                	mov    %esp,%ebp
46c561:	83 ec 10             	sub    $0x10,%esp
46c564:	53                   	push   %ebx
46c565:	56                   	push   %esi
46c566:	57                   	push   %edi
46c567:	8b 7d 08             	mov    0x8(%ebp),%edi
46c56a:	8b d9                	mov    %ecx,%ebx
46c56c:	8b 47 04             	mov    0x4(%edi),%eax
46c56f:	8b 30                	mov    (%eax),%esi
46c571:	8b ce                	mov    %esi,%ecx
46c573:	e8 1f d4 f9 ff       	call   0x409997
46c578:	8b 56 08             	mov    0x8(%esi),%edx
46c57b:	8b 02                	mov    (%edx),%eax
46c57d:	89 45 f0             	mov    %eax,-0x10(%ebp)
46c580:	8b 42 04             	mov    0x4(%edx),%eax
46c583:	89 45 f4             	mov    %eax,-0xc(%ebp)
46c586:	8b 42 08             	mov    0x8(%edx),%eax
46c589:	89 45 f8             	mov    %eax,-0x8(%ebp)
46c58c:	8b 42 0c             	mov    0xc(%edx),%eax
46c58f:	89 45 fc             	mov    %eax,-0x4(%ebp)
46c592:	ff 00                	incl   (%eax)
46c594:	83 7f 08 01          	cmpl   $0x1,0x8(%edi)
46c598:	76 1a                	jbe    0x46c5b4
46c59a:	8b 47 04             	mov    0x4(%edi),%eax
46c59d:	8b 48 04             	mov    0x4(%eax),%ecx
46c5a0:	e8 f7 d6 f9 ff       	call   0x409c9c
46c5a5:	83 f8 01             	cmp    $0x1,%eax
46c5a8:	75 0a                	jne    0x46c5b4
46c5aa:	8d 55 f0             	lea    -0x10(%ebp),%edx
46c5ad:	8b ca                	mov    %edx,%ecx
46c5af:	e8 fa 82 f9 ff       	call   0x4048ae
46c5b4:	8d 55 f0             	lea    -0x10(%ebp),%edx
46c5b7:	8b ca                	mov    %edx,%ecx
46c5b9:	e8 73 84 ff ff       	call   0x464a31
46c5be:	84 c0                	test   %al,%al
46c5c0:	74 06                	je     0x46c5c8
46c5c2:	8d 45 f0             	lea    -0x10(%ebp),%eax
46c5c5:	50                   	push   %eax
46c5c6:	eb 1f                	jmp    0x46c5e7
46c5c8:	8b 03                	mov    (%ebx),%eax
46c5ca:	6a 00                	push   $0x0
46c5cc:	6a 01                	push   $0x1
46c5ce:	8b 48 04             	mov    0x4(%eax),%ecx
46c5d1:	03 cb                	add    %ebx,%ecx
46c5d3:	e8 cb a4 fe ff       	call   0x456aa3
46c5d8:	8b 47 04             	mov    0x4(%edi),%eax
46c5db:	8b 30                	mov    (%eax),%esi
46c5dd:	8b ce                	mov    %esi,%ecx
46c5df:	e8 b3 d3 f9 ff       	call   0x409997
46c5e4:	ff 76 08             	push   0x8(%esi)
46c5e7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
46c5ea:	e8 ad d5 f9 ff       	call   0x409b9c
46c5ef:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46c5f2:	e8 6d 94 f9 ff       	call   0x405a64
46c5f7:	5f                   	pop    %edi
46c5f8:	5e                   	pop    %esi
46c5f9:	33 c0                	xor    %eax,%eax
46c5fb:	5b                   	pop    %ebx
46c5fc:	8b e5                	mov    %ebp,%esp
46c5fe:	5d                   	pop    %ebp
46c5ff:	c2 08 00             	ret    $0x8
46c602:	55                   	push   %ebp
46c603:	8b ec                	mov    %esp,%ebp
46c605:	83 e4 f8             	and    $0xfffffff8,%esp
46c608:	81 ec 4c 02 00 00    	sub    $0x24c,%esp
46c60e:	8b 45 08             	mov    0x8(%ebp),%eax
46c611:	53                   	push   %ebx
46c612:	56                   	push   %esi