4706a4:	f7 e9                	imul   %ecx
4706a6:	c1 fa 05             	sar    $0x5,%edx
4706a9:	8b c2                	mov    %edx,%eax
4706ab:	c1 e8 1f             	shr    $0x1f,%eax
4706ae:	03 c2                	add    %edx,%eax
4706b0:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4706b3:	0f 86 55 10 00 00    	jbe    0x47170e
4706b9:	8b 45 84             	mov    -0x7c(%ebp),%eax
4706bc:	8b 56 58             	mov    0x58(%esi),%edx
4706bf:	8d 48 30             	lea    0x30(%eax),%ecx
4706c2:	03 ca                	add    %edx,%ecx
4706c4:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4706c7:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4706cb:	72 05                	jb     0x4706d2
4706cd:	8b 09                	mov    (%ecx),%ecx
4706cf:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4706d2:	8b 54 02 40          	mov    0x40(%edx,%eax,1),%edx
4706d6:	8b 45 90             	mov    -0x70(%ebp),%eax
4706d9:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
4706dc:	89 55 98             	mov    %edx,-0x68(%ebp)
4706df:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
4706e5:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4706e8:	8b 4d 88             	mov    -0x78(%ebp),%ecx
4706eb:	8b 40 08             	mov    0x8(%eax),%eax
4706ee:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4706f1:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4706f4:	83 c0 0c             	add    $0xc,%eax
4706f7:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
4706fd:	74 28                	je     0x470727
4706ff:	85 c9                	test   %ecx,%ecx
470701:	74 24                	je     0x470727
470703:	8d 7a 01             	lea    0x1(%edx),%edi
470706:	57                   	push   %edi
470707:	e8 74 09 17 00       	call   0x5e1080
47070c:	ff 75 98             	push   -0x68(%ebp)
47070f:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
470715:	ff 75 9c             	push   -0x64(%ebp)
470718:	57                   	push   %edi
470719:	50                   	push   %eax
47071a:	89 01                	mov    %eax,(%ecx)
47071c:	e8 5f 7e ff ff       	call   0x468580
470721:	8b 7e 5c             	mov    0x5c(%esi),%edi
470724:	83 c4 14             	add    $0x14,%esp
470727:	8b cf                	mov    %edi,%ecx
470729:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
47072e:	2b 4e 58             	sub    0x58(%esi),%ecx
470731:	f7 e9                	imul   %ecx
470733:	c1 fa 05             	sar    $0x5,%edx
470736:	8b c2                	mov    %edx,%eax
470738:	c1 e8 1f             	shr    $0x1f,%eax
47073b:	03 c2                	add    %edx,%eax
47073d:	3b 45 8c             	cmp    -0x74(%ebp),%eax
470740:	0f 86 c8 0f 00 00    	jbe    0x47170e
470746:	8b 45 84             	mov    -0x7c(%ebp),%eax
470749:	8b 56 58             	mov    0x58(%esi),%edx
47074c:	8d 48 48             	lea    0x48(%eax),%ecx
47074f:	03 ca                	add    %edx,%ecx
470751:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
470754:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
470758:	72 05                	jb     0x47075f
47075a:	8b 09                	mov    (%ecx),%ecx
47075c:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
47075f:	8b 54 02 58          	mov    0x58(%edx,%eax,1),%edx
470763:	8b 45 90             	mov    -0x70(%ebp),%eax
470766:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
470769:	89 55 98             	mov    %edx,-0x68(%ebp)
47076c:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
470772:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470775:	8b 4d 88             	mov    -0x78(%ebp),%ecx
470778:	8b 40 08             	mov    0x8(%eax),%eax
47077b:	8b 04 08             	mov    (%eax,%ecx,1),%eax
47077e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
470781:	83 c0 04             	add    $0x4,%eax
470784:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
47078a:	74 28                	je     0x4707b4
47078c:	85 c9                	test   %ecx,%ecx
47078e:	74 24                	je     0x4707b4
470790:	8d 7a 01             	lea    0x1(%edx),%edi
470793:	57                   	push   %edi
470794:	e8 e7 08 17 00       	call   0x5e1080
470799:	ff 75 98             	push   -0x68(%ebp)
47079c:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
4707a2:	ff 75 9c             	push   -0x64(%ebp)
4707a5:	57                   	push   %edi
4707a6:	50                   	push   %eax
4707a7:	89 01                	mov    %eax,(%ecx)
4707a9:	e8 d2 7d ff ff       	call   0x468580
4707ae:	8b 7e 5c             	mov    0x5c(%esi),%edi
4707b1:	83 c4 14             	add    $0x14,%esp
4707b4:	8b cf                	mov    %edi,%ecx
4707b6:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
4707bb:	2b 4e 58             	sub    0x58(%esi),%ecx
4707be:	f7 e9                	imul   %ecx
4707c0:	c1 fa 05             	sar    $0x5,%edx
4707c3:	8b c2                	mov    %edx,%eax
4707c5:	c1 e8 1f             	shr    $0x1f,%eax
4707c8:	03 c2                	add    %edx,%eax
4707ca:	3b 45 8c             	cmp    -0x74(%ebp),%eax
4707cd:	0f 86 3b 0f 00 00    	jbe    0x47170e
4707d3:	8b 45 84             	mov    -0x7c(%ebp),%eax
4707d6:	8b 56 58             	mov    0x58(%esi),%edx
4707d9:	8d 48 78             	lea    0x78(%eax),%ecx
4707dc:	03 ca                	add    %edx,%ecx
4707de:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4707e1:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
4707e5:	72 05                	jb     0x4707ec
4707e7:	8b 09                	mov    (%ecx),%ecx
4707e9:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
4707ec:	8b 94 02 88 00 00 00 	mov    0x88(%edx,%eax,1),%edx
4707f3:	8b 45 90             	mov    -0x70(%ebp),%eax
4707f6:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
4707f9:	89 55 98             	mov    %edx,-0x68(%ebp)
4707fc:	8b 80 4c 03 00 00    	mov    0x34c(%eax),%eax
470802:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470805:	8b 4d 88             	mov    -0x78(%ebp),%ecx
470808:	8b 40 08             	mov    0x8(%eax),%eax
47080b:	8b 04 08             	mov    (%eax,%ecx,1),%eax
47080e:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
470811:	83 c0 14             	add    $0x14,%eax
470814:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
47081a:	74 28                	je     0x470844
47081c:	85 c9                	test   %ecx,%ecx
47081e:	74 24                	je     0x470844
470820:	8d 7a 01             	lea    0x1(%edx),%edi
470823:	57                   	push   %edi
470824:	e8 57 08 17 00       	call   0x5e1080
470829:	ff 75 98             	push   -0x68(%ebp)
47082c:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
470832:	ff 75 9c             	push   -0x64(%ebp)
470835:	57                   	push   %edi
470836:	50                   	push   %eax
470837:	89 01                	mov    %eax,(%ecx)
470839:	e8 42 7d ff ff       	call   0x468580
47083e:	8b 7e 5c             	mov    0x5c(%esi),%edi
470841:	83 c4 14             	add    $0x14,%esp
470844:	8b 4e 58             	mov    0x58(%esi),%ecx
470847:	b8 31 0c c3 30       	mov    $0x30c30c31,%eax
47084c:	2b f9                	sub    %ecx,%edi
47084e:	f7 ef                	imul   %edi
470850:	c1 fa 05             	sar    $0x5,%edx
470853:	8b c2                	mov    %edx,%eax
470855:	c1 e8 1f             	shr    $0x1f,%eax
470858:	03 c2                	add    %edx,%eax
47085a:	3b 45 8c             	cmp    -0x74(%ebp),%eax
47085d:	0f 86 ab 0e 00 00    	jbe    0x47170e
470863:	8b 45 84             	mov    -0x7c(%ebp),%eax
470866:	81 c1 90 00 00 00    	add    $0x90,%ecx
47086c:	03 c8                	add    %eax,%ecx
47086e:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
470871:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
470875:	72 05                	jb     0x47087c
470877:	8b 09                	mov    (%ecx),%ecx
470879:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
47087c:	8b 56 58             	mov    0x58(%esi),%edx
47087f:	8b 7d 90             	mov    -0x70(%ebp),%edi
470882:	8b 4d 94             	mov    -0x6c(%ebp),%ecx
470885:	8b 94 02 a0 00 00 00 	mov    0xa0(%edx,%eax,1),%edx
47088c:	8b 87 4c 03 00 00    	mov    0x34c(%edi),%eax
470892:	89 55 98             	mov    %edx,-0x68(%ebp)
470895:	8b 04 08             	mov    (%eax,%ecx,1),%eax
470898:	8b 4d 88             	mov    -0x78(%ebp),%ecx
47089b:	8b 40 08             	mov    0x8(%eax),%eax
47089e:	8b 04 08             	mov    (%eax,%ecx,1),%eax
4708a1:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
4708a4:	83 c0 18             	add    $0x18,%eax
4708a7:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
4708ad:	74 28                	je     0x4708d7
4708af:	85 c9                	test   %ecx,%ecx
4708b1:	74 24                	je     0x4708d7
4708b3:	8d 7a 01             	lea    0x1(%edx),%edi
4708b6:	57                   	push   %edi
4708b7:	e8 c4 07 17 00       	call   0x5e1080
4708bc:	ff 75 98             	push   -0x68(%ebp)
4708bf:	8b 8d 7c ff ff ff    	mov    -0x84(%ebp),%ecx
4708c5:	ff 75 9c             	push   -0x64(%ebp)
4708c8:	57                   	push   %edi
4708c9:	50                   	push   %eax
4708ca:	89 01                	mov    %eax,(%ecx)
4708cc:	e8 af 7c ff ff       	call   0x468580
4708d1:	8b 7d 90             	mov    -0x70(%ebp),%edi
4708d4:	83 c4 14             	add    $0x14,%esp
4708d7:	8b 45 8c             	mov    -0x74(%ebp),%eax
4708da:	81 45 84 a8 00 00 00 	addl   $0xa8,-0x7c(%ebp)
4708e1:	40                   	inc    %eax
4708e2:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4708e5:	89 45 8c             	mov    %eax,-0x74(%ebp)
4708e8:	3b c1                	cmp    %ecx,%eax
4708ea:	0f 82 c3 fb ff ff    	jb     0x4704b3
4708f0:	8b 55 94             	mov    -0x6c(%ebp),%edx
4708f3:	eb 03                	jmp    0x4708f8
4708f5:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
4708f8:	8b 87 4c 03 00 00    	mov    0x34c(%edi),%eax
4708fe:	8b 04 10             	mov    (%eax,%edx,1),%eax
470901:	8b 40 08             	mov    0x8(%eax),%eax
470904:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
47090b:	8b 46 08             	mov    0x8(%esi),%eax
47090e:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
470912:	74 20                	je     0x470934
470914:	8b 46 04             	mov    0x4(%esi),%eax
470917:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
47091b:	75 13                	jne    0x470930
47091d:	0f 1f 00             	nopl   (%eax)
470920:	3b 70 08             	cmp    0x8(%eax),%esi
470923:	75 0b                	jne    0x470930
470925:	8b f0                	mov    %eax,%esi
470927:	8b 40 04             	mov    0x4(%eax),%eax
47092a:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
47092e:	74 f0                	je     0x470920
470930:	8b f0                	mov    %eax,%esi
470932:	eb 18                	jmp    0x47094c
470934:	8b f0                	mov    %eax,%esi
470936:	8b 0e                	mov    (%esi),%ecx
470938:	80 79 0d 00          	cmpb   $0x0,0xd(%ecx)
47093c:	75 0e                	jne    0x47094c
47093e:	66 90                	xchg   %ax,%ax
470940:	8b 01                	mov    (%ecx),%eax
470942:	8b f1                	mov    %ecx,%esi
470944:	8b c8                	mov    %eax,%ecx
470946:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
47094a:	74 f4                	je     0x470940
47094c:	83 c2 04             	add    $0x4,%edx
47094f:	89 55 94             	mov    %edx,-0x6c(%ebp)
470952:	3b 75 80             	cmp    -0x80(%ebp),%esi
470955:	0f 85 d5 f9 ff ff    	jne    0x470330
47095b:	8b 87 4c 03 00 00    	mov    0x34c(%edi),%eax
470961:	8b 4d a0             	mov    -0x60(%ebp),%ecx
470964:	8d 97 54 03 00 00    	lea    0x354(%edi),%edx
47096a:	c7 04 88 00 00 00 00 	movl   $0x0,(%eax,%ecx,4)
470971:	8d 45 08             	lea    0x8(%ebp),%eax
470974:	83 7d 1c 10          	cmpl   $0x10,0x1c(%ebp)
470978:	8b 4d 18             	mov    0x18(%ebp),%ecx
47097b:	0f 43 45 08          	cmovae 0x8(%ebp),%eax
47097f:	89 45 80             	mov    %eax,-0x80(%ebp)
470982:	89 4d a0             	mov    %ecx,-0x60(%ebp)
470985:	85 d2                	test   %edx,%edx
470987:	74 23                	je     0x4709ac
470989:	85 c0                	test   %eax,%eax
47098b:	74 1f                	je     0x4709ac
47098d:	8d 71 01             	lea    0x1(%ecx),%esi
470990:	56                   	push   %esi
470991:	e8 ea 06 17 00       	call   0x5e1080
470996:	ff 75 a0             	push   -0x60(%ebp)
470999:	89 87 54 03 00 00    	mov    %eax,0x354(%edi)
47099f:	ff 75 80             	push   -0x80(%ebp)
4709a2:	56                   	push   %esi
4709a3:	50                   	push   %eax
4709a4:	e8 d7 7b ff ff       	call   0x468580
4709a9:	83 c4 14             	add    $0x14,%esp
4709ac:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
4709b2:	8b c6                	mov    %esi,%eax
4709b4:	89 75 a4             	mov    %esi,-0x5c(%ebp)
4709b7:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
4709bb:	72 05                	jb     0x4709c2
4709bd:	8b 06                	mov    (%esi),%eax
4709bf:	89 45 a4             	mov    %eax,-0x5c(%ebp)
4709c2:	8b 56 10             	mov    0x10(%esi),%edx
4709c5:	8d 8f 48 03 00 00    	lea    0x348(%edi),%ecx
4709cb:	89 55 a0             	mov    %edx,-0x60(%ebp)
4709ce:	85 c9                	test   %ecx,%ecx
4709d0:	74 29                	je     0x4709fb
4709d2:	85 c0                	test   %eax,%eax
4709d4:	74 25                	je     0x4709fb
4709d6:	8d 72 01             	lea    0x1(%edx),%esi
4709d9:	56                   	push   %esi
4709da:	e8 a1 06 17 00       	call   0x5e1080
4709df:	ff 75 a0             	push   -0x60(%ebp)
4709e2:	89 87 48 03 00 00    	mov    %eax,0x348(%edi)
4709e8:	ff 75 a4             	push   -0x5c(%ebp)
4709eb:	56                   	push   %esi
4709ec:	50                   	push   %eax
4709ed:	e8 8e 7b ff ff       	call   0x468580
4709f2:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
4709f8:	83 c4 14             	add    $0x14,%esp
4709fb:	6a 10                	push   $0x10
4709fd:	e8 40 06 17 00       	call   0x5e1042
470a02:	89 87 58 03 00 00    	mov    %eax,0x358(%edi)
470a08:	83 c4 04             	add    $0x4,%esp
470a0b:	8a 4e 40             	mov    0x40(%esi),%cl
470a0e:	88 08                	mov    %cl,(%eax)
470a10:	8b 8f 58 03 00 00    	mov    0x358(%edi),%ecx
470a16:	8a 46 41             	mov    0x41(%esi),%al
470a19:	88 41 01             	mov    %al,0x1(%ecx)
470a1c:	8d 46 44             	lea    0x44(%esi),%eax
470a1f:	83 78 14 10          	cmpl   $0x10,0x14(%eax)
470a23:	89 45 a4             	mov    %eax,-0x5c(%ebp)
470a26:	72 05                	jb     0x470a2d
470a28:	8b 00                	mov    (%eax),%eax
470a2a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
470a2d:	8b 8f 58 03 00 00    	mov    0x358(%edi),%ecx
470a33:	8b 76 54             	mov    0x54(%esi),%esi
470a36:	89 75 80             	mov    %esi,-0x80(%ebp)
470a39:	8d 51 04             	lea    0x4(%ecx),%edx
470a3c:	89 55 a0             	mov    %edx,-0x60(%ebp)
470a3f:	85 d2                	test   %edx,%edx
470a41:	74 26                	je     0x470a69
470a43:	85 c0                	test   %eax,%eax
470a45:	74 22                	je     0x470a69
470a47:	46                   	inc    %esi
470a48:	56                   	push   %esi
470a49:	e8 32 06 17 00       	call   0x5e1080
470a4e:	ff 75 80             	push   -0x80(%ebp)
470a51:	8b 4d a0             	mov    -0x60(%ebp),%ecx
470a54:	ff 75 a4             	push   -0x5c(%ebp)
470a57:	56                   	push   %esi
470a58:	50                   	push   %eax
470a59:	89 01                	mov    %eax,(%ecx)
470a5b:	e8 20 7b ff ff       	call   0x468580
470a60:	8b 8f 58 03 00 00    	mov    0x358(%edi),%ecx
470a66:	83 c4 14             	add    $0x14,%esp
470a69:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
470a6f:	83 7e 70 10          	cmpl   $0x10,0x70(%esi)
470a73:	8d 46 5c             	lea    0x5c(%esi),%eax
470a76:	89 45 a4             	mov    %eax,-0x5c(%ebp)
470a79:	72 05                	jb     0x470a80
470a7b:	8b 00                	mov    (%eax),%eax
470a7d:	89 45 a4             	mov    %eax,-0x5c(%ebp)
470a80:	8b 56 6c             	mov    0x6c(%esi),%edx
470a83:	83 c1 08             	add    $0x8,%ecx
470a86:	89 55 80             	mov    %edx,-0x80(%ebp)
470a89:	89 4d a0             	mov    %ecx,-0x60(%ebp)
470a8c:	74 28                	je     0x470ab6
470a8e:	85 c0                	test   %eax,%eax
470a90:	74 24                	je     0x470ab6
470a92:	8d 72 01             	lea    0x1(%edx),%esi
470a95:	56                   	push   %esi
470a96:	e8 e5 05 17 00       	call   0x5e1080
470a9b:	ff 75 80             	push   -0x80(%ebp)
470a9e:	8b 4d a0             	mov    -0x60(%ebp),%ecx
470aa1:	ff 75 a4             	push   -0x5c(%ebp)
470aa4:	56                   	push   %esi
470aa5:	50                   	push   %eax
470aa6:	89 01                	mov    %eax,(%ecx)
470aa8:	e8 d3 7a ff ff       	call   0x468580
470aad:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
470ab3:	83 c4 14             	add    $0x14,%esp
470ab6:	8b 4e 78             	mov    0x78(%esi),%ecx
470ab9:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
470abe:	2b 4e 74             	sub    0x74(%esi),%ecx
470ac1:	f7 e9                	imul   %ecx
470ac3:	33 c9                	xor    %ecx,%ecx
470ac5:	c1 fa 02             	sar    $0x2,%edx
470ac8:	8b f2                	mov    %edx,%esi
470aca:	c1 ee 1f             	shr    $0x1f,%esi
470acd:	03 f2                	add    %edx,%esi
470acf:	ba 04 00 00 00       	mov    $0x4,%edx
470ad4:	8d 46 01             	lea    0x1(%esi),%eax
470ad7:	f7 e2                	mul    %edx
470ad9:	0f 90 c1             	seto   %cl
470adc:	f7 d9                	neg    %ecx
470ade:	0b c8                	or     %eax,%ecx