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
470ae0:	51                   	push   %ecx
470ae1:	e8 9a 05 17 00       	call   0x5e1080
470ae6:	8b 8f 58 03 00 00    	mov    0x358(%edi),%ecx
470aec:	83 c4 04             	add    $0x4,%esp
470aef:	c7 45 88 00 00 00 00 	movl   $0x0,-0x78(%ebp)
470af6:	89 41 0c             	mov    %eax,0xc(%ecx)
470af9:	83 fe 01             	cmp    $0x1,%esi
470afc:	0f 8c f4 00 00 00    	jl     0x470bf6
470b02:	6a 00                	push   $0x0
470b04:	68 65 aa 68 00       	push   $0x68aa65
470b09:	8d 4d c0             	lea    -0x40(%ebp),%ecx
470b0c:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
470b13:	c7 45 d4 0f 00 00 00 	movl   $0xf,-0x2c(%ebp)
470b1a:	c6 45 c0 00          	movb   $0x0,-0x40(%ebp)
470b1e:	e8 1d 47 fd ff       	call   0x445240
470b23:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
470b29:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
470b2d:	8b 70 74             	mov    0x74(%eax),%esi
470b30:	3b 70 78             	cmp    0x78(%eax),%esi
470b33:	0f 84 85 00 00 00    	je     0x470bbe
470b39:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
470b40:	8d 45 c0             	lea    -0x40(%ebp),%eax
470b43:	3b c6                	cmp    %esi,%eax
470b45:	74 16                	je     0x470b5d
470b47:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
470b4b:	8b c6                	mov    %esi,%eax
470b4d:	72 02                	jb     0x470b51
470b4f:	8b 06                	mov    (%esi),%eax
470b51:	ff 76 10             	push   0x10(%esi)
470b54:	8d 4d c0             	lea    -0x40(%ebp),%ecx
470b57:	50                   	push   %eax
470b58:	e8 e3 46 fd ff       	call   0x445240
470b5d:	8b 45 d0             	mov    -0x30(%ebp),%eax
470b60:	8d 4d c0             	lea    -0x40(%ebp),%ecx
470b63:	8b 55 88             	mov    -0x78(%ebp),%edx
470b66:	83 7d d4 10          	cmpl   $0x10,-0x2c(%ebp)
470b6a:	89 45 a4             	mov    %eax,-0x5c(%ebp)
470b6d:	8b 87 58 03 00 00    	mov    0x358(%edi),%eax
470b73:	0f 43 4d c0          	cmovae -0x40(%ebp),%ecx
470b77:	89 4d 80             	mov    %ecx,-0x80(%ebp)
470b7a:	8b 40 0c             	mov    0xc(%eax),%eax
470b7d:	8d 04 90             	lea    (%eax,%edx,4),%eax
470b80:	89 45 a0             	mov    %eax,-0x60(%ebp)
470b83:	85 c0                	test   %eax,%eax
470b85:	74 26                	je     0x470bad
470b87:	85 c9                	test   %ecx,%ecx
470b89:	74 22                	je     0x470bad
470b8b:	8b 7d a4             	mov    -0x5c(%ebp),%edi
470b8e:	47                   	inc    %edi
470b8f:	57                   	push   %edi
470b90:	e8 eb 04 17 00       	call   0x5e1080
470b95:	ff 75 a4             	push   -0x5c(%ebp)
470b98:	8b 4d a0             	mov    -0x60(%ebp),%ecx
470b9b:	ff 75 80             	push   -0x80(%ebp)
470b9e:	57                   	push   %edi
470b9f:	50                   	push   %eax
470ba0:	89 01                	mov    %eax,(%ecx)
470ba2:	e8 d9 79 ff ff       	call   0x468580
470ba7:	8b 7d 90             	mov    -0x70(%ebp),%edi
470baa:	83 c4 14             	add    $0x14,%esp
470bad:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
470bb3:	83 c6 18             	add    $0x18,%esi
470bb6:	ff 45 88             	incl   -0x78(%ebp)
470bb9:	3b 70 78             	cmp    0x78(%eax),%esi
470bbc:	75 82                	jne    0x470b40
470bbe:	8b 55 d4             	mov    -0x2c(%ebp),%edx
470bc1:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
470bc5:	83 fa 10             	cmp    $0x10,%edx
470bc8:	72 2c                	jb     0x470bf6
470bca:	8b 4d c0             	mov    -0x40(%ebp),%ecx
470bcd:	42                   	inc    %edx
470bce:	8b c1                	mov    %ecx,%eax
470bd0:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
470bd6:	72 14                	jb     0x470bec
470bd8:	8b 49 fc             	mov    -0x4(%ecx),%ecx
470bdb:	83 c2 23             	add    $0x23,%edx
470bde:	2b c1                	sub    %ecx,%eax
470be0:	83 c0 fc             	add    $0xfffffffc,%eax
470be3:	83 f8 1f             	cmp    $0x1f,%eax
470be6:	0f 87 1d 0b 00 00    	ja     0x471709
470bec:	52                   	push   %edx
470bed:	51                   	push   %ecx
470bee:	e8 7f 04 17 00       	call   0x5e1072
470bf3:	83 c4 08             	add    $0x8,%esp
470bf6:	8b 87 58 03 00 00    	mov    0x358(%edi),%eax
470bfc:	8b 55 88             	mov    -0x78(%ebp),%edx
470bff:	8b b5 78 ff ff ff    	mov    -0x88(%ebp),%esi
470c05:	8b 40 0c             	mov    0xc(%eax),%eax
470c08:	c7 04 90 00 00 00 00 	movl   $0x0,(%eax,%edx,4)
470c0f:	eb 0f                	jmp    0x470c20
470c11:	68 f0 16 69 00       	push   $0x6916f0
470c16:	6a 03                	push   $0x3
470c18:	e8 63 9c 00 00       	call   0x47a880
470c1d:	83 c4 08             	add    $0x8,%esp
470c20:	8b 46 24             	mov    0x24(%esi),%eax
470c23:	c7 87 50 03 00 00 00 	movl   $0x0,0x350(%edi)
470c2a:	00 00 00
470c2d:	85 c0                	test   %eax,%eax
470c2f:	0f 84 7b 0a 00 00    	je     0x4716b0
470c35:	33 c9                	xor    %ecx,%ecx
470c37:	c7 45 8c 00 00 00 00 	movl   $0x0,-0x74(%ebp)
470c3e:	40                   	inc    %eax
470c3f:	ba 04 00 00 00       	mov    $0x4,%edx
470c44:	f7 e2                	mul    %edx
470c46:	0f 90 c1             	seto   %cl
470c49:	f7 d9                	neg    %ecx
470c4b:	0b c8                	or     %eax,%ecx
470c4d:	51                   	push   %ecx
470c4e:	e8 2d 04 17 00       	call   0x5e1080
470c53:	89 87 50 03 00 00    	mov    %eax,0x350(%edi)
470c59:	83 c4 04             	add    $0x4,%esp
470c5c:	8b 4e 20             	mov    0x20(%esi),%ecx
470c5f:	89 8d 74 ff ff ff    	mov    %ecx,-0x8c(%ebp)
470c65:	8b 39                	mov    (%ecx),%edi
470c67:	89 7d 9c             	mov    %edi,-0x64(%ebp)
470c6a:	3b f9                	cmp    %ecx,%edi
470c6c:	0f 84 32 0a 00 00    	je     0x4716a4
470c72:	8b 75 90             	mov    -0x70(%ebp),%esi
470c75:	6a 08                	push   $0x8
470c77:	e8 c6 03 17 00       	call   0x5e1042
470c7c:	8b 8e 50 03 00 00    	mov    0x350(%esi),%ecx
470c82:	83 c4 04             	add    $0x4,%esp
470c85:	8b 55 8c             	mov    -0x74(%ebp),%edx
470c88:	89 04 91             	mov    %eax,(%ecx,%edx,4)
470c8b:	8d 4f 10             	lea    0x10(%edi),%ecx
470c8e:	83 79 14 10          	cmpl   $0x10,0x14(%ecx)
470c92:	89 4d 88             	mov    %ecx,-0x78(%ebp)
470c95:	72 05                	jb     0x470c9c
470c97:	8b 09                	mov    (%ecx),%ecx
470c99:	89 4d 88             	mov    %ecx,-0x78(%ebp)
470c9c:	8b 47 20             	mov    0x20(%edi),%eax
470c9f:	89 45 a4             	mov    %eax,-0x5c(%ebp)
470ca2:	8b 86 50 03 00 00    	mov    0x350(%esi),%eax
470ca8:	8b 14 90             	mov    (%eax,%edx,4),%edx
470cab:	89 55 a0             	mov    %edx,-0x60(%ebp)
470cae:	85 d2                	test   %edx,%edx
470cb0:	74 2c                	je     0x470cde
470cb2:	85 c9                	test   %ecx,%ecx
470cb4:	74 28                	je     0x470cde
470cb6:	8b 75 a4             	mov    -0x5c(%ebp),%esi
470cb9:	46                   	inc    %esi
470cba:	56                   	push   %esi
470cbb:	e8 c0 03 17 00       	call   0x5e1080
470cc0:	ff 75 a4             	push   -0x5c(%ebp)
470cc3:	8b 4d a0             	mov    -0x60(%ebp),%ecx
470cc6:	ff 75 88             	push   -0x78(%ebp)
470cc9:	56                   	push   %esi
470cca:	50                   	push   %eax
470ccb:	89 01                	mov    %eax,(%ecx)
470ccd:	e8 ae 78 ff ff       	call   0x468580
470cd2:	8b 75 90             	mov    -0x70(%ebp),%esi
470cd5:	83 c4 14             	add    $0x14,%esp
470cd8:	8b 86 50 03 00 00    	mov    0x350(%esi),%eax
470cde:	8b 55 8c             	mov    -0x74(%ebp),%edx
470ce1:	8b 4f 2c             	mov    0x2c(%edi),%ecx
470ce4:	8b 04 90             	mov    (%eax,%edx,4),%eax
470ce7:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
470cee:	85 c9                	test   %ecx,%ecx
470cf0:	0f 84 41 09 00 00    	je     0x471637
470cf6:	8d 41 01             	lea    0x1(%ecx),%eax
470cf9:	ba 04 00 00 00       	mov    $0x4,%edx
470cfe:	33 c9                	xor    %ecx,%ecx
470d00:	f7 e2                	mul    %edx
470d02:	0f 90 c1             	seto   %cl
470d05:	f7 d9                	neg    %ecx
470d07:	0b c8                	or     %eax,%ecx
470d09:	51                   	push   %ecx
470d0a:	e8 71 03 17 00       	call   0x5e1080
470d0f:	8b 8e 50 03 00 00    	mov    0x350(%esi),%ecx
470d15:	83 c4 04             	add    $0x4,%esp
470d18:	8b 55 8c             	mov    -0x74(%ebp),%edx
470d1b:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
470d1e:	33 d2                	xor    %edx,%edx
470d20:	89 55 94             	mov    %edx,-0x6c(%ebp)
470d23:	89 41 04             	mov    %eax,0x4(%ecx)