47e417:	85 c9                	test   %ecx,%ecx
47e419:	74 05                	je     0x47e420
47e41b:	83 c1 fe             	add    $0xfffffffe,%ecx
47e41e:	eb 08                	jmp    0x47e428
47e420:	8b 8d e0 f6 ff ff    	mov    -0x920(%ebp),%ecx
47e426:	f7 d1                	not    %ecx
47e428:	ff b5 ac f6 ff ff    	push   -0x954(%ebp)
47e42e:	8b 85 b4 f6 ff ff    	mov    -0x94c(%ebp),%eax
47e434:	ff b5 d8 f6 ff ff    	push   -0x928(%ebp)
47e43a:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
47e441:	50                   	push   %eax
47e442:	51                   	push   %ecx
47e443:	52                   	push   %edx
47e444:	56                   	push   %esi
47e445:	e8 85 dd ff ff       	call   0x47c1cf
47e44a:	83 c4 18             	add    $0x18,%esp
47e44d:	eb 37                	jmp    0x47e486
47e44f:	8b 85 a4 f6 ff ff    	mov    -0x95c(%ebp),%eax
47e455:	3b 85 a8 f6 ff ff    	cmp    -0x958(%ebp),%eax
47e45b:	ff b5 ac f6 ff ff    	push   -0x954(%ebp)
47e461:	0f 95 c0             	setne  %al
47e464:	0f b6 c0             	movzbl %al,%eax
47e467:	50                   	push   %eax
47e468:	8b 85 b4 f6 ff ff    	mov    -0x94c(%ebp),%eax
47e46e:	0f b6 80 08 03 00 00 	movzbl 0x308(%eax),%eax
47e475:	50                   	push   %eax
47e476:	51                   	push   %ecx
47e477:	8d 85 2c fe ff ff    	lea    -0x1d4(%ebp),%eax
47e47d:	50                   	push   %eax
47e47e:	e8 a5 e0 ff ff       	call   0x47c528
47e483:	83 c4 14             	add    $0x14,%esp
47e486:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47e489:	5f                   	pop    %edi
47e48a:	5e                   	pop    %esi
47e48b:	33 cd                	xor    %ebp,%ecx
47e48d:	5b                   	pop    %ebx
47e48e:	e8 37 b5 fe ff       	call   0x4699ca
47e493:	c9                   	leave
47e494:	c3                   	ret
47e495:	8b ff                	mov    %edi,%edi
47e497:	55                   	push   %ebp
47e498:	8b ec                	mov    %esp,%ebp
47e49a:	51                   	push   %ecx
47e49b:	51                   	push   %ecx
47e49c:	8b 45 0c             	mov    0xc(%ebp),%eax
47e49f:	8b 4d 08             	mov    0x8(%ebp),%ecx
47e4a2:	53                   	push   %ebx
47e4a3:	56                   	push   %esi
47e4a4:	33 db                	xor    %ebx,%ebx
47e4a6:	57                   	push   %edi
47e4a7:	33 ff                	xor    %edi,%edi
47e4a9:	8d 71 08             	lea    0x8(%ecx),%esi
47e4ac:	8b d7                	mov    %edi,%edx
47e4ae:	38 50 04             	cmp    %dl,0x4(%eax)
47e4b1:	8b 41 04             	mov    0x4(%ecx),%eax
47e4b4:	0f 94 c3             	sete   %bl
47e4b7:	89 55 fc             	mov    %edx,-0x4(%ebp)
47e4ba:	4b                   	dec    %ebx
47e4bb:	83 c0 08             	add    $0x8,%eax
47e4be:	83 e3 1d             	and    $0x1d,%ebx
47e4c1:	03 c1                	add    %ecx,%eax
47e4c3:	83 c3 17             	add    $0x17,%ebx
47e4c6:	89 45 f8             	mov    %eax,-0x8(%ebp)
47e4c9:	03 19                	add    (%ecx),%ebx
47e4cb:	3b f0                	cmp    %eax,%esi
47e4cd:	74 36                	je     0x47e505
47e4cf:	8b 4d 0c             	mov    0xc(%ebp),%ecx
47e4d2:	e8 34 05 00 00       	call   0x47ea0b
47e4d7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
47e4da:	3b ca                	cmp    %edx,%ecx
47e4dc:	77 21                	ja     0x47e4ff
47e4de:	72 04                	jb     0x47e4e4
47e4e0:	3b f8                	cmp    %eax,%edi
47e4e2:	77 1b                	ja     0x47e4ff
47e4e4:	0f b6 06             	movzbl (%esi),%eax
47e4e7:	46                   	inc    %esi
47e4e8:	0f a4 f9 04          	shld   $0x4,%edi,%ecx
47e4ec:	99                   	cltd
47e4ed:	c1 e7 04             	shl    $0x4,%edi
47e4f0:	03 f8                	add    %eax,%edi
47e4f2:	13 ca                	adc    %edx,%ecx
47e4f4:	83 eb 04             	sub    $0x4,%ebx
47e4f7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47e4fa:	3b 75 f8             	cmp    -0x8(%ebp),%esi
47e4fd:	75 d0                	jne    0x47e4cf
47e4ff:	8b 4d 08             	mov    0x8(%ebp),%ecx
47e502:	8b 55 fc             	mov    -0x4(%ebp),%edx
47e505:	b0 01                	mov    $0x1,%al
47e507:	eb 0c                	jmp    0x47e515
47e509:	84 c0                	test   %al,%al
47e50b:	74 10                	je     0x47e51d
47e50d:	8a 06                	mov    (%esi),%al
47e50f:	46                   	inc    %esi
47e510:	84 c0                	test   %al,%al
47e512:	0f 94 c0             	sete   %al
47e515:	88 45 fc             	mov    %al,-0x4(%ebp)
47e518:	3b 75 f8             	cmp    -0x8(%ebp),%esi
47e51b:	75 ec                	jne    0x47e509
47e51d:	ff 75 0c             	push   0xc(%ebp)
47e520:	0f b6 81 08 03 00 00 	movzbl 0x308(%ecx),%eax
47e527:	ff 75 fc             	push   -0x4(%ebp)
47e52a:	50                   	push   %eax
47e52b:	53                   	push   %ebx
47e52c:	52                   	push   %edx
47e52d:	57                   	push   %edi
47e52e:	e8 9c dc ff ff       	call   0x47c1cf
47e533:	83 c4 18             	add    $0x18,%esp
47e536:	5f                   	pop    %edi
47e537:	5e                   	pop    %esi
47e538:	5b                   	pop    %ebx
47e539:	c9                   	leave
47e53a:	c3                   	ret
47e53b:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
47e53f:	74 09                	je     0x47e54a
47e541:	83 c8 ff             	or     $0xffffffff,%eax
47e544:	ba ff ff 0f 00       	mov    $0xfffff,%edx
47e549:	c3                   	ret
47e54a:	b8 ff ff 7f 00       	mov    $0x7fffff,%eax
47e54f:	33 d2                	xor    %edx,%edx
47e551:	c3                   	ret
47e552:	cc                   	int3
47e553:	cc                   	int3
47e554:	cc                   	int3
47e555:	cc                   	int3
47e556:	cc                   	int3
47e557:	cc                   	int3
47e558:	cc                   	int3
47e559:	cc                   	int3
47e55a:	cc                   	int3
47e55b:	cc                   	int3
47e55c:	cc                   	int3
47e55d:	cc                   	int3
47e55e:	cc                   	int3
47e55f:	cc                   	int3
47e560:	8b ff                	mov    %edi,%edi
47e562:	55                   	push   %ebp
47e563:	8b ec                	mov    %esp,%ebp
47e565:	81 ec 20 02 00 00    	sub    $0x220,%esp
47e56b:	8b 4d 08             	mov    0x8(%ebp),%ecx
47e56e:	53                   	push   %ebx
47e56f:	56                   	push   %esi
47e570:	57                   	push   %edi
47e571:	8b 01                	mov    (%ecx),%eax
47e573:	89 45 f8             	mov    %eax,-0x8(%ebp)
47e576:	85 c0                	test   %eax,%eax
47e578:	0f 84 82 04 00 00    	je     0x47ea00
47e57e:	8b 7d 0c             	mov    0xc(%ebp),%edi
47e581:	8b 37                	mov    (%edi),%esi
47e583:	89 75 ec             	mov    %esi,-0x14(%ebp)
47e586:	85 f6                	test   %esi,%esi
47e588:	0f 84 72 04 00 00    	je     0x47ea00
47e58e:	48                   	dec    %eax
47e58f:	89 45 f4             	mov    %eax,-0xc(%ebp)
47e592:	83 c6 ff             	add    $0xffffffff,%esi
47e595:	0f 85 3e 01 00 00    	jne    0x47e6d9
47e59b:	8b 5f 04             	mov    0x4(%edi),%ebx
47e59e:	83 fb 01             	cmp    $0x1,%ebx
47e5a1:	75 3b                	jne    0x47e5de
47e5a3:	8b 55 08             	mov    0x8(%ebp),%edx
47e5a6:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
47e5ac:	8b 71 04             	mov    0x4(%ecx),%esi
47e5af:	83 c1 04             	add    $0x4,%ecx
47e5b2:	6a 00                	push   $0x0
47e5b4:	50                   	push   %eax
47e5b5:	68 cc 01 00 00       	push   $0x1cc
47e5ba:	51                   	push   %ecx
47e5bb:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
47e5c2:	00 00 00
47e5c5:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
47e5cb:	e8 0b bc ff ff       	call   0x47a1db
47e5d0:	83 c4 10             	add    $0x10,%esp
47e5d3:	8b c6                	mov    %esi,%eax
47e5d5:	33 d2                	xor    %edx,%edx
47e5d7:	5f                   	pop    %edi
47e5d8:	5e                   	pop    %esi
47e5d9:	5b                   	pop    %ebx
47e5da:	8b e5                	mov    %ebp,%esp
47e5dc:	5d                   	pop    %ebp
47e5dd:	c3                   	ret
47e5de:	85 c0                	test   %eax,%eax
47e5e0:	75 48                	jne    0x47e62a
47e5e2:	8b 79 04             	mov    0x4(%ecx),%edi
47e5e5:	8d 71 04             	lea    0x4(%ecx),%esi
47e5e8:	50                   	push   %eax
47e5e9:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
47e5ef:	89 01                	mov    %eax,(%ecx)
47e5f1:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
47e5f7:	50                   	push   %eax
47e5f8:	68 cc 01 00 00       	push   $0x1cc
47e5fd:	56                   	push   %esi
47e5fe:	e8 d8 bb ff ff       	call   0x47a1db
47e603:	33 d2                	xor    %edx,%edx
47e605:	8b c7                	mov    %edi,%eax
47e607:	f7 f3                	div    %ebx
47e609:	83 c4 10             	add    $0x10,%esp
47e60c:	33 c0                	xor    %eax,%eax
47e60e:	3b c2                	cmp    %edx,%eax
47e610:	89 16                	mov    %edx,(%esi)
47e612:	8b 55 08             	mov    0x8(%ebp),%edx
47e615:	8b c7                	mov    %edi,%eax
47e617:	1b c9                	sbb    %ecx,%ecx
47e619:	f7 d9                	neg    %ecx
47e61b:	5f                   	pop    %edi
47e61c:	89 0a                	mov    %ecx,(%edx)
47e61e:	33 d2                	xor    %edx,%edx
47e620:	f7 f3                	div    %ebx
47e622:	5e                   	pop    %esi
47e623:	33 d2                	xor    %edx,%edx
47e625:	5b                   	pop    %ebx
47e626:	8b e5                	mov    %ebp,%esp
47e628:	5d                   	pop    %ebp
47e629:	c3                   	ret
47e62a:	33 ff                	xor    %edi,%edi
47e62c:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
47e633:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
47e63a:	89 7d ec             	mov    %edi,-0x14(%ebp)
47e63d:	83 f8 ff             	cmp    $0xffffffff,%eax
47e640:	74 4a                	je     0x47e68c
47e642:	40                   	inc    %eax
47e643:	8d 04 81             	lea    (%ecx,%eax,4),%eax
47e646:	89 45 e8             	mov    %eax,-0x18(%ebp)
47e649:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
47e650:	6a 00                	push   $0x0
47e652:	53                   	push   %ebx
47e653:	33 f6                	xor    %esi,%esi
47e655:	0b 30                	or     (%eax),%esi
47e657:	57                   	push   %edi
47e658:	56                   	push   %esi
47e659:	e8 02 bd fe ff       	call   0x46a360
47e65e:	6a 00                	push   $0x0
47e660:	33 c9                	xor    %ecx,%ecx
47e662:	03 c1                	add    %ecx,%eax
47e664:	53                   	push   %ebx
47e665:	13 4d f4             	adc    -0xc(%ebp),%ecx
47e668:	57                   	push   %edi
47e669:	56                   	push   %esi
47e66a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
47e66d:	89 45 f4             	mov    %eax,-0xc(%ebp)
47e670:	e8 5b 73 01 00       	call   0x4959d0
47e675:	8b f8                	mov    %eax,%edi
47e677:	89 55 ec             	mov    %edx,-0x14(%ebp)
47e67a:	8b 45 e8             	mov    -0x18(%ebp),%eax
47e67d:	83 e8 04             	sub    $0x4,%eax
47e680:	83 6d f8 01          	subl   $0x1,-0x8(%ebp)
47e684:	89 45 e8             	mov    %eax,-0x18(%ebp)
47e687:	75 c7                	jne    0x47e650
47e689:	8b 4d 08             	mov    0x8(%ebp),%ecx
47e68c:	6a 00                	push   $0x0
47e68e:	8d 85 e4 fd ff ff    	lea    -0x21c(%ebp),%eax
47e694:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
47e69b:	00 00 00
47e69e:	50                   	push   %eax
47e69f:	8d 71 04             	lea    0x4(%ecx),%esi
47e6a2:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
47e6a8:	68 cc 01 00 00       	push   $0x1cc
47e6ad:	56                   	push   %esi
47e6ae:	e8 28 bb ff ff       	call   0x47a1db
47e6b3:	8b 45 ec             	mov    -0x14(%ebp),%eax
47e6b6:	83 c4 10             	add    $0x10,%esp
47e6b9:	8b 55 08             	mov    0x8(%ebp),%edx
47e6bc:	33 c9                	xor    %ecx,%ecx
47e6be:	3b c8                	cmp    %eax,%ecx
47e6c0:	89 3e                	mov    %edi,(%esi)
47e6c2:	1b c9                	sbb    %ecx,%ecx
47e6c4:	f7 d9                	neg    %ecx
47e6c6:	89 42 08             	mov    %eax,0x8(%edx)
47e6c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
47e6cc:	41                   	inc    %ecx
47e6cd:	5f                   	pop    %edi
47e6ce:	5e                   	pop    %esi
47e6cf:	89 0a                	mov    %ecx,(%edx)
47e6d1:	8b 55 fc             	mov    -0x4(%ebp),%edx
47e6d4:	5b                   	pop    %ebx
47e6d5:	8b e5                	mov    %ebp,%esp
47e6d7:	5d                   	pop    %ebp
47e6d8:	c3                   	ret
47e6d9:	3b f0                	cmp    %eax,%esi
47e6db:	0f 87 1f 03 00 00    	ja     0x47ea00
47e6e1:	8b d0                	mov    %eax,%edx
47e6e3:	8b d8                	mov    %eax,%ebx
47e6e5:	2b d6                	sub    %esi,%edx
47e6e7:	3b da                	cmp    %edx,%ebx
47e6e9:	7c 1f                	jl     0x47e70a
47e6eb:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
47e6ee:	83 c1 04             	add    $0x4,%ecx
47e6f1:	46                   	inc    %esi
47e6f2:	8d 34 b7             	lea    (%edi,%esi,4),%esi
47e6f5:	8b 3e                	mov    (%esi),%edi
47e6f7:	3b 39                	cmp    (%ecx),%edi
47e6f9:	75 0d                	jne    0x47e708
47e6fb:	48                   	dec    %eax
47e6fc:	83 ee 04             	sub    $0x4,%esi
47e6ff:	83 e9 04             	sub    $0x4,%ecx
47e702:	3b c2                	cmp    %edx,%eax
47e704:	7d ef                	jge    0x47e6f5
47e706:	eb 02                	jmp    0x47e70a
47e708:	73 01                	jae    0x47e70b
47e70a:	42                   	inc    %edx
47e70b:	85 d2                	test   %edx,%edx
47e70d:	0f 84 ed 02 00 00    	je     0x47ea00
47e713:	8b 7d ec             	mov    -0x14(%ebp),%edi
47e716:	8b 75 0c             	mov    0xc(%ebp),%esi
47e719:	8b 44 be fc          	mov    -0x4(%esi,%edi,4),%eax
47e71d:	8b 1c be             	mov    (%esi,%edi,4),%ebx
47e720:	89 45 e0             	mov    %eax,-0x20(%ebp)
47e723:	0f bd c3             	bsr    %ebx,%eax
47e726:	89 5d d0             	mov    %ebx,-0x30(%ebp)
47e729:	74 09                	je     0x47e734
47e72b:	b9 1f 00 00 00       	mov    $0x1f,%ecx
47e730:	2b c8                	sub    %eax,%ecx
47e732:	eb 05                	jmp    0x47e739
47e734:	b9 20 00 00 00       	mov    $0x20,%ecx
47e739:	b8 20 00 00 00       	mov    $0x20,%eax
47e73e:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
47e741:	2b c1                	sub    %ecx,%eax
47e743:	89 45 d4             	mov    %eax,-0x2c(%ebp)
47e746:	85 c9                	test   %ecx,%ecx
47e748:	74 2d                	je     0x47e777
47e74a:	8b 45 e0             	mov    -0x20(%ebp),%eax
47e74d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47e750:	d3 e8                	shr    %cl,%eax
47e752:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
47e755:	d3 e3                	shl    %cl,%ebx
47e757:	0b d8                	or     %eax,%ebx
47e759:	89 5d d0             	mov    %ebx,-0x30(%ebp)
47e75c:	8b 5d e0             	mov    -0x20(%ebp),%ebx
47e75f:	d3 e3                	shl    %cl,%ebx
47e761:	89 5d e0             	mov    %ebx,-0x20(%ebp)
47e764:	83 ff 02             	cmp    $0x2,%edi
47e767:	76 0e                	jbe    0x47e777
47e769:	8b 44 be f8          	mov    -0x8(%esi,%edi,4),%eax
47e76d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
47e770:	d3 e8                	shr    %cl,%eax
47e772:	0b d8                	or     %eax,%ebx
47e774:	89 5d e0             	mov    %ebx,-0x20(%ebp)
47e777:	8d 5a ff             	lea    -0x1(%edx),%ebx
47e77a:	c7 45 b4 00 00 00 00 	movl   $0x0,-0x4c(%ebp)
47e781:	33 f6                	xor    %esi,%esi
47e783:	89 5d b0             	mov    %ebx,-0x50(%ebp)
47e786:	85 db                	test   %ebx,%ebx
47e788:	0f 88 31 02 00 00    	js     0x47e9bf
47e78e:	8b 55 08             	mov    0x8(%ebp),%edx
47e791:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
47e794:	89 45 c8             	mov    %eax,-0x38(%ebp)
47e797:	8d 4a 04             	lea    0x4(%edx),%ecx
47e79a:	8d 0c 99             	lea    (%ecx,%ebx,4),%ecx
47e79d:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
47e7a0:	8d 4a fc             	lea    -0x4(%edx),%ecx
47e7a3:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
47e7a6:	89 4d e8             	mov    %ecx,-0x18(%ebp)