49c346:	f7 e9                	imul   %ecx
49c348:	d1 fa                	sar    $1,%edx
49c34a:	8b c2                	mov    %edx,%eax
49c34c:	c1 e8 1f             	shr    $0x1f,%eax
49c34f:	03 c2                	add    %edx,%eax
49c351:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
49c354:	c1 e1 02             	shl    $0x2,%ecx
49c357:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
49c35d:	72 12                	jb     0x49c371
49c35f:	8b 56 fc             	mov    -0x4(%esi),%edx
49c362:	83 c1 23             	add    $0x23,%ecx
49c365:	2b f2                	sub    %edx,%esi
49c367:	8d 46 fc             	lea    -0x4(%esi),%eax
49c36a:	83 f8 1f             	cmp    $0x1f,%eax
49c36d:	77 2f                	ja     0x49c39e
49c36f:	8b f2                	mov    %edx,%esi
49c371:	51                   	push   %ecx
49c372:	56                   	push   %esi
49c373:	e8 dd 4e 13 00       	call   0x5d1255
49c378:	83 c4 08             	add    $0x8,%esp
49c37b:	5e                   	pop    %esi
49c37c:	8b 4d 08             	mov    0x8(%ebp),%ecx
49c37f:	8b 45 0c             	mov    0xc(%ebp),%eax
49c382:	89 0f                	mov    %ecx,(%edi)
49c384:	8d 04 40             	lea    (%eax,%eax,2),%eax
49c387:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c38a:	89 47 04             	mov    %eax,0x4(%edi)
49c38d:	8b 45 10             	mov    0x10(%ebp),%eax
49c390:	8d 04 40             	lea    (%eax,%eax,2),%eax
49c393:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c396:	89 47 08             	mov    %eax,0x8(%edi)
49c399:	5f                   	pop    %edi
49c39a:	5d                   	pop    %ebp
49c39b:	c2 0c 00             	ret    $0xc
49c39e:	e8 4d 9e 13 00       	call   0x5d61f0
49c3a3:	cc                   	int3
49c3a4:	cc                   	int3
49c3a5:	cc                   	int3
49c3a6:	cc                   	int3
49c3a7:	cc                   	int3
49c3a8:	cc                   	int3
49c3a9:	cc                   	int3
49c3aa:	cc                   	int3
49c3ab:	cc                   	int3
49c3ac:	cc                   	int3
49c3ad:	cc                   	int3
49c3ae:	cc                   	int3
49c3af:	cc                   	int3
49c3b0:	55                   	push   %ebp
49c3b1:	8b ec                	mov    %esp,%ebp
49c3b3:	53                   	push   %ebx
49c3b4:	8b 5d 08             	mov    0x8(%ebp),%ebx
49c3b7:	56                   	push   %esi
49c3b8:	8b f1                	mov    %ecx,%esi
49c3ba:	57                   	push   %edi
49c3bb:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
49c3c1:	0f 87 85 00 00 00    	ja     0x49c44c
49c3c7:	8b 56 08             	mov    0x8(%esi),%edx
49c3ca:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
49c3cf:	8b 0e                	mov    (%esi),%ecx
49c3d1:	2b d1                	sub    %ecx,%edx
49c3d3:	c1 fa 02             	sar    $0x2,%edx
49c3d6:	8b fa                	mov    %edx,%edi
49c3d8:	d1 ef                	shr    $1,%edi
49c3da:	2b c7                	sub    %edi,%eax
49c3dc:	3b d0                	cmp    %eax,%edx
49c3de:	76 07                	jbe    0x49c3e7
49c3e0:	bf ff ff ff 3f       	mov    $0x3fffffff,%edi
49c3e5:	eb 07                	jmp    0x49c3ee
49c3e7:	03 fa                	add    %edx,%edi
49c3e9:	3b fb                	cmp    %ebx,%edi
49c3eb:	0f 42 fb             	cmovb  %ebx,%edi
49c3ee:	85 c9                	test   %ecx,%ecx
49c3f0:	74 3b                	je     0x49c42d
49c3f2:	c1 e2 02             	shl    $0x2,%edx
49c3f5:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
49c3fb:	72 12                	jb     0x49c40f
49c3fd:	8b 59 fc             	mov    -0x4(%ecx),%ebx
49c400:	83 c2 23             	add    $0x23,%edx
49c403:	2b cb                	sub    %ebx,%ecx
49c405:	8d 41 fc             	lea    -0x4(%ecx),%eax
49c408:	83 f8 1f             	cmp    $0x1f,%eax
49c40b:	77 3a                	ja     0x49c447
49c40d:	8b cb                	mov    %ebx,%ecx
49c40f:	52                   	push   %edx
49c410:	51                   	push   %ecx
49c411:	e8 3f 4e 13 00       	call   0x5d1255
49c416:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
49c41c:	83 c4 08             	add    $0x8,%esp
49c41f:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
49c426:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
49c42d:	57                   	push   %edi
49c42e:	8b ce                	mov    %esi,%ecx
49c430:	e8 9b ce fc ff       	call   0x4692d0
49c435:	89 06                	mov    %eax,(%esi)
49c437:	89 46 04             	mov    %eax,0x4(%esi)
49c43a:	8d 04 b8             	lea    (%eax,%edi,4),%eax
49c43d:	5f                   	pop    %edi
49c43e:	89 46 08             	mov    %eax,0x8(%esi)
49c441:	5e                   	pop    %esi
49c442:	5b                   	pop    %ebx
49c443:	5d                   	pop    %ebp
49c444:	c2 04 00             	ret    $0x4
49c447:	e8 a4 9d 13 00       	call   0x5d61f0
49c44c:	e8 4f 03 fc ff       	call   0x45c7a0
49c451:	cc                   	int3
49c452:	cc                   	int3
49c453:	cc                   	int3
49c454:	cc                   	int3
49c455:	cc                   	int3
49c456:	cc                   	int3
49c457:	cc                   	int3
49c458:	cc                   	int3
49c459:	cc                   	int3
49c45a:	cc                   	int3
49c45b:	cc                   	int3
49c45c:	cc                   	int3
49c45d:	cc                   	int3
49c45e:	cc                   	int3
49c45f:	cc                   	int3
49c460:	55                   	push   %ebp
49c461:	8b ec                	mov    %esp,%ebp
49c463:	51                   	push   %ecx
49c464:	ff 75 0c             	push   0xc(%ebp)
49c467:	ff 75 08             	push   0x8(%ebp)
49c46a:	e8 21 cf fc ff       	call   0x469390
49c46f:	83 c4 0c             	add    $0xc,%esp
49c472:	5d                   	pop    %ebp
49c473:	c2 08 00             	ret    $0x8
49c476:	cc                   	int3
49c477:	cc                   	int3
49c478:	cc                   	int3
49c479:	cc                   	int3
49c47a:	cc                   	int3
49c47b:	cc                   	int3
49c47c:	cc                   	int3
49c47d:	cc                   	int3
49c47e:	cc                   	int3
49c47f:	cc                   	int3
49c480:	55                   	push   %ebp
49c481:	8b ec                	mov    %esp,%ebp
49c483:	51                   	push   %ecx
49c484:	ff 75 0c             	push   0xc(%ebp)
49c487:	ff 75 08             	push   0x8(%ebp)
49c48a:	e8 a1 c6 fd ff       	call   0x478b30
49c48f:	83 c4 0c             	add    $0xc,%esp
49c492:	5d                   	pop    %ebp
49c493:	c2 08 00             	ret    $0x8
49c496:	cc                   	int3
49c497:	cc                   	int3
49c498:	cc                   	int3
49c499:	cc                   	int3
49c49a:	cc                   	int3
49c49b:	cc                   	int3
49c49c:	cc                   	int3
49c49d:	cc                   	int3
49c49e:	cc                   	int3
49c49f:	cc                   	int3
49c4a0:	55                   	push   %ebp
49c4a1:	8b ec                	mov    %esp,%ebp
49c4a3:	83 ec 08             	sub    $0x8,%esp
49c4a6:	8b 45 08             	mov    0x8(%ebp),%eax
49c4a9:	53                   	push   %ebx
49c4aa:	56                   	push   %esi
49c4ab:	8b d9                	mov    %ecx,%ebx
49c4ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
49c4b0:	57                   	push   %edi
49c4b1:	8d 4d 08             	lea    0x8(%ebp),%ecx
49c4b4:	e8 a7 1e fe ff       	call   0x47e360
49c4b9:	8b 55 fc             	mov    -0x4(%ebp),%edx
49c4bc:	8b 02                	mov    (%edx),%eax
49c4be:	8b 7a 08             	mov    0x8(%edx),%edi
49c4c1:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c4c5:	75 18                	jne    0x49c4df
49c4c7:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
49c4cb:	74 04                	je     0x49c4d1
49c4cd:	8b f8                	mov    %eax,%edi
49c4cf:	eb 0e                	jmp    0x49c4df
49c4d1:	8b 4d 08             	mov    0x8(%ebp),%ecx
49c4d4:	8b 79 08             	mov    0x8(%ecx),%edi
49c4d7:	3b ca                	cmp    %edx,%ecx
49c4d9:	0f 85 8b 00 00 00    	jne    0x49c56a
49c4df:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
49c4e3:	8b 72 04             	mov    0x4(%edx),%esi
49c4e6:	75 03                	jne    0x49c4eb
49c4e8:	89 77 04             	mov    %esi,0x4(%edi)
49c4eb:	8b 03                	mov    (%ebx),%eax
49c4ed:	39 50 04             	cmp    %edx,0x4(%eax)
49c4f0:	75 05                	jne    0x49c4f7
49c4f2:	89 78 04             	mov    %edi,0x4(%eax)
49c4f5:	eb 0b                	jmp    0x49c502
49c4f7:	39 16                	cmp    %edx,(%esi)
49c4f9:	75 04                	jne    0x49c4ff
49c4fb:	89 3e                	mov    %edi,(%esi)
49c4fd:	eb 03                	jmp    0x49c502
49c4ff:	89 7e 08             	mov    %edi,0x8(%esi)
49c502:	8b 03                	mov    (%ebx),%eax
49c504:	39 10                	cmp    %edx,(%eax)
49c506:	75 2b                	jne    0x49c533
49c508:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
49c50c:	74 04                	je     0x49c512
49c50e:	8b d6                	mov    %esi,%edx
49c510:	eb 1c                	jmp    0x49c52e
49c512:	8b 0f                	mov    (%edi),%ecx
49c514:	8b d7                	mov    %edi,%edx
49c516:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
49c51a:	75 12                	jne    0x49c52e
49c51c:	0f 1f 40 00          	nopl   0x0(%eax)
49c520:	8b 01                	mov    (%ecx),%eax
49c522:	8b d1                	mov    %ecx,%edx
49c524:	8b c8                	mov    %eax,%ecx
49c526:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c52a:	74 f4                	je     0x49c520
49c52c:	8b 03                	mov    (%ebx),%eax
49c52e:	89 10                	mov    %edx,(%eax)
49c530:	8b 55 fc             	mov    -0x4(%ebp),%edx
49c533:	8b 03                	mov    (%ebx),%eax
49c535:	39 50 08             	cmp    %edx,0x8(%eax)
49c538:	75 2b                	jne    0x49c565
49c53a:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
49c53e:	74 0a                	je     0x49c54a
49c540:	8b ce                	mov    %esi,%ecx
49c542:	89 48 08             	mov    %ecx,0x8(%eax)
49c545:	8a 52 0c             	mov    0xc(%edx),%dl
49c548:	eb 7c                	jmp    0x49c5c6
49c54a:	8b 47 08             	mov    0x8(%edi),%eax
49c54d:	8b cf                	mov    %edi,%ecx
49c54f:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c553:	75 0b                	jne    0x49c560
49c555:	8b c8                	mov    %eax,%ecx
49c557:	8b 41 08             	mov    0x8(%ecx),%eax
49c55a:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c55e:	74 f5                	je     0x49c555
49c560:	8b 03                	mov    (%ebx),%eax
49c562:	89 48 08             	mov    %ecx,0x8(%eax)
49c565:	8a 52 0c             	mov    0xc(%edx),%dl
49c568:	eb 5c                	jmp    0x49c5c6
49c56a:	89 48 04             	mov    %ecx,0x4(%eax)
49c56d:	8b 02                	mov    (%edx),%eax
49c56f:	89 01                	mov    %eax,(%ecx)
49c571:	3b 4a 08             	cmp    0x8(%edx),%ecx
49c574:	75 04                	jne    0x49c57a
49c576:	8b f1                	mov    %ecx,%esi
49c578:	eb 1a                	jmp    0x49c594
49c57a:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
49c57e:	8b 71 04             	mov    0x4(%ecx),%esi
49c581:	75 03                	jne    0x49c586
49c583:	89 77 04             	mov    %esi,0x4(%edi)
49c586:	89 3e                	mov    %edi,(%esi)
49c588:	8b 42 08             	mov    0x8(%edx),%eax
49c58b:	89 41 08             	mov    %eax,0x8(%ecx)
49c58e:	8b 42 08             	mov    0x8(%edx),%eax
49c591:	89 48 04             	mov    %ecx,0x4(%eax)
49c594:	8b 03                	mov    (%ebx),%eax
49c596:	39 50 04             	cmp    %edx,0x4(%eax)
49c599:	75 05                	jne    0x49c5a0
49c59b:	89 48 04             	mov    %ecx,0x4(%eax)
49c59e:	eb 0e                	jmp    0x49c5ae
49c5a0:	8b 42 04             	mov    0x4(%edx),%eax
49c5a3:	39 10                	cmp    %edx,(%eax)
49c5a5:	75 04                	jne    0x49c5ab
49c5a7:	89 08                	mov    %ecx,(%eax)
49c5a9:	eb 03                	jmp    0x49c5ae
49c5ab:	89 48 08             	mov    %ecx,0x8(%eax)
49c5ae:	8b 42 04             	mov    0x4(%edx),%eax
49c5b1:	8a 51 0c             	mov    0xc(%ecx),%dl
49c5b4:	89 41 04             	mov    %eax,0x4(%ecx)
49c5b7:	8b 45 fc             	mov    -0x4(%ebp),%eax
49c5ba:	8a 40 0c             	mov    0xc(%eax),%al
49c5bd:	88 41 0c             	mov    %al,0xc(%ecx)
49c5c0:	8b 45 fc             	mov    -0x4(%ebp),%eax
49c5c3:	88 50 0c             	mov    %dl,0xc(%eax)
49c5c6:	80 fa 01             	cmp    $0x1,%dl
49c5c9:	0f 85 46 01 00 00    	jne    0x49c715
49c5cf:	8b 03                	mov    (%ebx),%eax
49c5d1:	3b 78 04             	cmp    0x4(%eax),%edi
49c5d4:	0f 84 37 01 00 00    	je     0x49c711
49c5da:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
49c5e0:	80 7f 0c 01          	cmpb   $0x1,0xc(%edi)
49c5e4:	89 75 f8             	mov    %esi,-0x8(%ebp)
49c5e7:	0f 85 24 01 00 00    	jne    0x49c711
49c5ed:	8b 0e                	mov    (%esi),%ecx
49c5ef:	3b f9                	cmp    %ecx,%edi
49c5f1:	0f 85 a2 00 00 00    	jne    0x49c699
49c5f7:	8b 4e 08             	mov    0x8(%esi),%ecx
49c5fa:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
49c5fe:	75 43                	jne    0x49c643
49c600:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
49c604:	8b 4e 08             	mov    0x8(%esi),%ecx
49c607:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
49c60b:	8b 01                	mov    (%ecx),%eax
49c60d:	89 46 08             	mov    %eax,0x8(%esi)
49c610:	8b 01                	mov    (%ecx),%eax
49c612:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c616:	75 03                	jne    0x49c61b
49c618:	89 70 04             	mov    %esi,0x4(%eax)
49c61b:	8b 46 04             	mov    0x4(%esi),%eax
49c61e:	89 41 04             	mov    %eax,0x4(%ecx)
49c621:	8b 03                	mov    (%ebx),%eax
49c623:	3b 70 04             	cmp    0x4(%eax),%esi
49c626:	75 05                	jne    0x49c62d
49c628:	89 48 04             	mov    %ecx,0x4(%eax)
49c62b:	eb 0e                	jmp    0x49c63b
49c62d:	8b 46 04             	mov    0x4(%esi),%eax
49c630:	3b 30                	cmp    (%eax),%esi
49c632:	75 04                	jne    0x49c638
49c634:	89 08                	mov    %ecx,(%eax)
49c636:	eb 03                	jmp    0x49c63b
49c638:	89 48 08             	mov    %ecx,0x8(%eax)
49c63b:	89 31                	mov    %esi,(%ecx)
49c63d:	89 4e 04             	mov    %ecx,0x4(%esi)
49c640:	8b 4e 08             	mov    0x8(%esi),%ecx
49c643:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
49c647:	0f 85 b1 00 00 00    	jne    0x49c6fe
49c64d:	8b 11                	mov    (%ecx),%edx
49c64f:	80 7a 0c 01          	cmpb   $0x1,0xc(%edx)
49c653:	75 0d                	jne    0x49c662
49c655:	8b 41 08             	mov    0x8(%ecx),%eax
49c658:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
49c65c:	0f 84 98 00 00 00    	je     0x49c6fa
49c662:	8b 41 08             	mov    0x8(%ecx),%eax
49c665:	80 78 0c 01          	cmpb   $0x1,0xc(%eax)
49c669:	75 13                	jne    0x49c67e
49c66b:	c6 42 0c 01          	movb   $0x1,0xc(%edx)
49c66f:	c6 41 0c 00          	movb   $0x0,0xc(%ecx)
49c673:	51                   	push   %ecx
49c674:	8b cb                	mov    %ebx,%ecx
49c676:	e8 e5 0b 00 00       	call   0x49d260
49c67b:	8b 4e 08             	mov    0x8(%esi),%ecx
49c67e:	8a 46 0c             	mov    0xc(%esi),%al
49c681:	88 41 0c             	mov    %al,0xc(%ecx)
49c684:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
49c688:	8b 41 08             	mov    0x8(%ecx),%eax
49c68b:	8b cb                	mov    %ebx,%ecx
49c68d:	56                   	push   %esi
49c68e:	c6 40 0c 01          	movb   $0x1,0xc(%eax)
49c692:	e8 d9 0a 00 00       	call   0x49d170
49c697:	eb 78                	jmp    0x49c711
49c699:	80 79 0c 00          	cmpb   $0x0,0xc(%ecx)
49c69d:	75 44                	jne    0x49c6e3
49c69f:	c6 41 0c 01          	movb   $0x1,0xc(%ecx)
49c6a3:	8b 0e                	mov    (%esi),%ecx
49c6a5:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
49c6a9:	8b 41 08             	mov    0x8(%ecx),%eax
49c6ac:	89 06                	mov    %eax,(%esi)
49c6ae:	8b 41 08             	mov    0x8(%ecx),%eax
49c6b1:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c6b5:	75 03                	jne    0x49c6ba
49c6b7:	89 70 04             	mov    %esi,0x4(%eax)
49c6ba:	8b 46 04             	mov    0x4(%esi),%eax