5f5730:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
5f5733:	83 c6 04             	add    $0x4,%esi
5f5736:	8b 3e                	mov    (%esi),%edi
5f5738:	3b 39                	cmp    (%ecx),%edi
5f573a:	75 0d                	jne    0x5f5749
5f573c:	48                   	dec    %eax
5f573d:	83 ee 04             	sub    $0x4,%esi
5f5740:	83 e9 04             	sub    $0x4,%ecx
5f5743:	3b c2                	cmp    %edx,%eax
5f5745:	7d ef                	jge    0x5f5736
5f5747:	eb 02                	jmp    0x5f574b
5f5749:	73 01                	jae    0x5f574c
5f574b:	42                   	inc    %edx
5f574c:	85 d2                	test   %edx,%edx
5f574e:	0f 84 e9 02 00 00    	je     0x5f5a3d
5f5754:	8b 45 0c             	mov    0xc(%ebp),%eax
5f5757:	8b 5d cc             	mov    -0x34(%ebp),%ebx
5f575a:	8b 34 98             	mov    (%eax,%ebx,4),%esi
5f575d:	8b 4c 98 fc          	mov    -0x4(%eax,%ebx,4),%ecx
5f5761:	0f bd c6             	bsr    %esi,%eax
5f5764:	89 75 d0             	mov    %esi,-0x30(%ebp)
5f5767:	89 4d e0             	mov    %ecx,-0x20(%ebp)
5f576a:	74 09                	je     0x5f5775
5f576c:	bf 1f 00 00 00       	mov    $0x1f,%edi
5f5771:	2b f8                	sub    %eax,%edi
5f5773:	eb 05                	jmp    0x5f577a
5f5775:	bf 20 00 00 00       	mov    $0x20,%edi
5f577a:	b8 20 00 00 00       	mov    $0x20,%eax
5f577f:	89 7d f4             	mov    %edi,-0xc(%ebp)
5f5782:	2b c7                	sub    %edi,%eax
5f5784:	89 45 d4             	mov    %eax,-0x2c(%ebp)
5f5787:	85 ff                	test   %edi,%edi
5f5789:	74 27                	je     0x5f57b2
5f578b:	8b c1                	mov    %ecx,%eax
5f578d:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5f5790:	d3 e8                	shr    %cl,%eax
5f5792:	8b cf                	mov    %edi,%ecx
5f5794:	d3 65 e0             	shll   %cl,-0x20(%ebp)
5f5797:	d3 e6                	shl    %cl,%esi
5f5799:	0b f0                	or     %eax,%esi
5f579b:	89 75 d0             	mov    %esi,-0x30(%ebp)
5f579e:	83 fb 02             	cmp    $0x2,%ebx
5f57a1:	76 0f                	jbe    0x5f57b2
5f57a3:	8b 75 0c             	mov    0xc(%ebp),%esi
5f57a6:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5f57a9:	8b 44 9e f8          	mov    -0x8(%esi,%ebx,4),%eax
5f57ad:	d3 e8                	shr    %cl,%eax
5f57af:	09 45 e0             	or     %eax,-0x20(%ebp)
5f57b2:	33 f6                	xor    %esi,%esi
5f57b4:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
5f57bb:	83 c2 ff             	add    $0xffffffff,%edx
5f57be:	89 55 e8             	mov    %edx,-0x18(%ebp)
5f57c1:	0f 88 2e 02 00 00    	js     0x5f59f5
5f57c7:	8d 04 1a             	lea    (%edx,%ebx,1),%eax
5f57ca:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f57cd:	89 45 c8             	mov    %eax,-0x38(%ebp)
5f57d0:	8d 4b 04             	lea    0x4(%ebx),%ecx
5f57d3:	8d 0c 91             	lea    (%ecx,%edx,4),%ecx
5f57d6:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
5f57d9:	8d 4b fc             	lea    -0x4(%ebx),%ecx
5f57dc:	8d 0c 81             	lea    (%ecx,%eax,4),%ecx
5f57df:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
5f57e2:	3b 45 f8             	cmp    -0x8(%ebp),%eax
5f57e5:	77 05                	ja     0x5f57ec
5f57e7:	8b 41 08             	mov    0x8(%ecx),%eax
5f57ea:	eb 02                	jmp    0x5f57ee
5f57ec:	33 c0                	xor    %eax,%eax
5f57ee:	8b 51 04             	mov    0x4(%ecx),%edx
5f57f1:	8b 09                	mov    (%ecx),%ecx
5f57f3:	89 45 b8             	mov    %eax,-0x48(%ebp)
5f57f6:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
5f57fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f5800:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5f5803:	85 ff                	test   %edi,%edi
5f5805:	74 49                	je     0x5f5850
5f5807:	8b f9                	mov    %ecx,%edi
5f5809:	8b c2                	mov    %edx,%eax
5f580b:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5f580e:	33 f6                	xor    %esi,%esi
5f5810:	8b 55 fc             	mov    -0x4(%ebp),%edx
5f5813:	d3 ef                	shr    %cl,%edi
5f5815:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f5818:	e8 73 ca fe ff       	call   0x5e2290
5f581d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5f5820:	0b f2                	or     %edx,%esi
5f5822:	0b f8                	or     %eax,%edi
5f5824:	8b c6                	mov    %esi,%eax
5f5826:	8b 75 ec             	mov    -0x14(%ebp),%esi
5f5829:	8b d7                	mov    %edi,%edx
5f582b:	d3 e6                	shl    %cl,%esi
5f582d:	83 7d c8 03          	cmpl   $0x3,-0x38(%ebp)
5f5831:	89 45 fc             	mov    %eax,-0x4(%ebp)
5f5834:	89 75 ec             	mov    %esi,-0x14(%ebp)
5f5837:	72 17                	jb     0x5f5850
5f5839:	8b 45 cc             	mov    -0x34(%ebp),%eax
5f583c:	03 45 e8             	add    -0x18(%ebp),%eax
5f583f:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
5f5842:	8b 44 83 f8          	mov    -0x8(%ebx,%eax,4),%eax
5f5846:	d3 e8                	shr    %cl,%eax
5f5848:	0b f0                	or     %eax,%esi
5f584a:	8b 45 fc             	mov    -0x4(%ebp),%eax
5f584d:	89 75 ec             	mov    %esi,-0x14(%ebp)
5f5850:	53                   	push   %ebx
5f5851:	6a 00                	push   $0x0
5f5853:	ff 75 d0             	push   -0x30(%ebp)
5f5856:	50                   	push   %eax
5f5857:	52                   	push   %edx
5f5858:	e8 23 c6 fe ff       	call   0x5e1e80
5f585d:	89 5d dc             	mov    %ebx,-0x24(%ebp)
5f5860:	5b                   	pop    %ebx
5f5861:	90                   	nop
5f5862:	8b d8                	mov    %eax,%ebx
5f5864:	33 f6                	xor    %esi,%esi
5f5866:	8b c2                	mov    %edx,%eax
5f5868:	89 5d fc             	mov    %ebx,-0x4(%ebp)
5f586b:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f586e:	8b f9                	mov    %ecx,%edi
5f5870:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5f5873:	89 45 c0             	mov    %eax,-0x40(%ebp)
5f5876:	89 75 dc             	mov    %esi,-0x24(%ebp)
5f5879:	85 c0                	test   %eax,%eax
5f587b:	75 05                	jne    0x5f5882
5f587d:	83 fb ff             	cmp    $0xffffffff,%ebx
5f5880:	76 2a                	jbe    0x5f58ac
5f5882:	6a 00                	push   $0x0
5f5884:	ff 75 d0             	push   -0x30(%ebp)
5f5887:	83 c3 01             	add    $0x1,%ebx
5f588a:	83 d0 ff             	adc    $0xffffffff,%eax
5f588d:	50                   	push   %eax
5f588e:	53                   	push   %ebx
5f588f:	e8 6c c2 fe ff       	call   0x5e1b00
5f5894:	03 f8                	add    %eax,%edi
5f5896:	13 f2                	adc    %edx,%esi
5f5898:	83 cb ff             	or     $0xffffffff,%ebx
5f589b:	33 c0                	xor    %eax,%eax
5f589d:	89 75 dc             	mov    %esi,-0x24(%ebp)
5f58a0:	89 5d fc             	mov    %ebx,-0x4(%ebp)
5f58a3:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5f58a6:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f58a9:	89 45 c0             	mov    %eax,-0x40(%ebp)
5f58ac:	85 f6                	test   %esi,%esi
5f58ae:	77 50                	ja     0x5f5900
5f58b0:	72 05                	jb     0x5f58b7
5f58b2:	83 ff ff             	cmp    $0xffffffff,%edi
5f58b5:	77 49                	ja     0x5f5900
5f58b7:	50                   	push   %eax
5f58b8:	53                   	push   %ebx
5f58b9:	33 c9                	xor    %ecx,%ecx
5f58bb:	8b f7                	mov    %edi,%esi
5f58bd:	0b 4d ec             	or     -0x14(%ebp),%ecx
5f58c0:	6a 00                	push   $0x0
5f58c2:	ff 75 e0             	push   -0x20(%ebp)
5f58c5:	89 4d fc             	mov    %ecx,-0x4(%ebp)
5f58c8:	e8 33 c2 fe ff       	call   0x5e1b00
5f58cd:	3b d6                	cmp    %esi,%edx
5f58cf:	72 29                	jb     0x5f58fa
5f58d1:	77 05                	ja     0x5f58d8
5f58d3:	3b 45 fc             	cmp    -0x4(%ebp),%eax
5f58d6:	76 22                	jbe    0x5f58fa
5f58d8:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f58db:	83 c3 ff             	add    $0xffffffff,%ebx
5f58de:	89 5d bc             	mov    %ebx,-0x44(%ebp)
5f58e1:	83 d0 ff             	adc    $0xffffffff,%eax
5f58e4:	03 7d d0             	add    -0x30(%ebp),%edi
5f58e7:	89 45 f0             	mov    %eax,-0x10(%ebp)
5f58ea:	83 55 dc 00          	adcl   $0x0,-0x24(%ebp)
5f58ee:	89 45 c0             	mov    %eax,-0x40(%ebp)
5f58f1:	75 0a                	jne    0x5f58fd
5f58f3:	83 ff ff             	cmp    $0xffffffff,%edi
5f58f6:	76 bf                	jbe    0x5f58b7
5f58f8:	eb 03                	jmp    0x5f58fd
5f58fa:	8b 45 f0             	mov    -0x10(%ebp),%eax
5f58fd:	89 5d fc             	mov    %ebx,-0x4(%ebp)
5f5900:	85 c0                	test   %eax,%eax
5f5902:	75 08                	jne    0x5f590c
5f5904:	85 db                	test   %ebx,%ebx
5f5906:	0f 84 b3 00 00 00    	je     0x5f59bf
5f590c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5f590f:	33 ff                	xor    %edi,%edi
5f5911:	33 f6                	xor    %esi,%esi
5f5913:	85 c9                	test   %ecx,%ecx
5f5915:	74 55                	je     0x5f596c
5f5917:	8b 45 0c             	mov    0xc(%ebp),%eax
5f591a:	8b 5d c4             	mov    -0x3c(%ebp),%ebx
5f591d:	83 c0 04             	add    $0x4,%eax
5f5920:	89 45 dc             	mov    %eax,-0x24(%ebp)
5f5923:	89 4d ec             	mov    %ecx,-0x14(%ebp)
5f5926:	8b 00                	mov    (%eax),%eax
5f5928:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f592b:	8b 45 c0             	mov    -0x40(%ebp),%eax
5f592e:	f7 65 f8             	mull   -0x8(%ebp)
5f5931:	8b c8                	mov    %eax,%ecx
5f5933:	8b 45 bc             	mov    -0x44(%ebp),%eax
5f5936:	f7 65 f8             	mull   -0x8(%ebp)
5f5939:	03 d1                	add    %ecx,%edx
5f593b:	03 f8                	add    %eax,%edi
5f593d:	8b 03                	mov    (%ebx),%eax
5f593f:	8b cf                	mov    %edi,%ecx
5f5941:	13 f2                	adc    %edx,%esi
5f5943:	8b fe                	mov    %esi,%edi
5f5945:	33 f6                	xor    %esi,%esi
5f5947:	3b c1                	cmp    %ecx,%eax
5f5949:	73 05                	jae    0x5f5950
5f594b:	83 c7 01             	add    $0x1,%edi
5f594e:	13 f6                	adc    %esi,%esi
5f5950:	2b c1                	sub    %ecx,%eax
5f5952:	89 03                	mov    %eax,(%ebx)
5f5954:	83 c3 04             	add    $0x4,%ebx
5f5957:	8b 45 dc             	mov    -0x24(%ebp),%eax
5f595a:	83 c0 04             	add    $0x4,%eax
5f595d:	83 6d ec 01          	subl   $0x1,-0x14(%ebp)
5f5961:	89 45 dc             	mov    %eax,-0x24(%ebp)
5f5964:	75 c0                	jne    0x5f5926
5f5966:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5f5969:	8b 4d cc             	mov    -0x34(%ebp),%ecx
5f596c:	33 c0                	xor    %eax,%eax
5f596e:	3b c6                	cmp    %esi,%eax
5f5970:	77 46                	ja     0x5f59b8
5f5972:	72 05                	jb     0x5f5979
5f5974:	39 7d b8             	cmp    %edi,-0x48(%ebp)
5f5977:	73 3f                	jae    0x5f59b8
5f5979:	85 c9                	test   %ecx,%ecx
5f597b:	74 34                	je     0x5f59b1
5f597d:	8b 75 0c             	mov    0xc(%ebp),%esi
5f5980:	33 db                	xor    %ebx,%ebx
5f5982:	8b 55 c4             	mov    -0x3c(%ebp),%edx
5f5985:	83 c6 04             	add    $0x4,%esi
5f5988:	8b f9                	mov    %ecx,%edi
5f598a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
5f5990:	8b 0a                	mov    (%edx),%ecx
5f5992:	8d 76 04             	lea    0x4(%esi),%esi
5f5995:	33 c0                	xor    %eax,%eax
5f5997:	8d 52 04             	lea    0x4(%edx),%edx
5f599a:	03 4e fc             	add    -0x4(%esi),%ecx
5f599d:	13 c0                	adc    %eax,%eax
5f599f:	03 cb                	add    %ebx,%ecx
5f59a1:	89 4a fc             	mov    %ecx,-0x4(%edx)
5f59a4:	83 d0 00             	adc    $0x0,%eax
5f59a7:	8b d8                	mov    %eax,%ebx
5f59a9:	83 ef 01             	sub    $0x1,%edi
5f59ac:	75 e2                	jne    0x5f5990
5f59ae:	8b 5d fc             	mov    -0x4(%ebp),%ebx
5f59b1:	83 c3 ff             	add    $0xffffffff,%ebx
5f59b4:	83 55 f0 ff          	adcl   $0xffffffff,-0x10(%ebp)
5f59b8:	8b 45 c8             	mov    -0x38(%ebp),%eax
5f59bb:	48                   	dec    %eax
5f59bc:	89 45 f8             	mov    %eax,-0x8(%ebp)
5f59bf:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5f59c2:	33 c0                	xor    %eax,%eax
5f59c4:	8b 55 e8             	mov    -0x18(%ebp),%edx
5f59c7:	03 c3                	add    %ebx,%eax
5f59c9:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
5f59cc:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f59cf:	83 d6 00             	adc    $0x0,%esi
5f59d2:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
5f59d6:	4a                   	dec    %edx
5f59d7:	8b 7d f4             	mov    -0xc(%ebp),%edi
5f59da:	83 e9 04             	sub    $0x4,%ecx
5f59dd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5f59e0:	8b 45 c8             	mov    -0x38(%ebp),%eax
5f59e3:	48                   	dec    %eax
5f59e4:	89 55 e8             	mov    %edx,-0x18(%ebp)
5f59e7:	89 45 c8             	mov    %eax,-0x38(%ebp)
5f59ea:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
5f59ed:	85 d2                	test   %edx,%edx
5f59ef:	0f 89 ed fd ff ff    	jns    0x5f57e2
5f59f5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5f59f8:	8b 5d 08             	mov    0x8(%ebp),%ebx
5f59fb:	41                   	inc    %ecx
5f59fc:	8b c1                	mov    %ecx,%eax
5f59fe:	3b 03                	cmp    (%ebx),%eax
5f5a00:	73 1c                	jae    0x5f5a1e
5f5a02:	8d 53 04             	lea    0x4(%ebx),%edx
5f5a05:	8d 14 82             	lea    (%edx,%eax,4),%edx
5f5a08:	eb 06                	jmp    0x5f5a10
5f5a0a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
5f5a10:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
5f5a16:	8d 52 04             	lea    0x4(%edx),%edx
5f5a19:	40                   	inc    %eax
5f5a1a:	3b 03                	cmp    (%ebx),%eax
5f5a1c:	72 f2                	jb     0x5f5a10
5f5a1e:	89 0b                	mov    %ecx,(%ebx)
5f5a20:	85 c9                	test   %ecx,%ecx
5f5a22:	74 0d                	je     0x5f5a31
5f5a24:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
5f5a28:	75 07                	jne    0x5f5a31
5f5a2a:	83 c1 ff             	add    $0xffffffff,%ecx
5f5a2d:	89 0b                	mov    %ecx,(%ebx)
5f5a2f:	75 f3                	jne    0x5f5a24
5f5a31:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5f5a34:	8b d6                	mov    %esi,%edx
5f5a36:	5f                   	pop    %edi
5f5a37:	5e                   	pop    %esi
5f5a38:	5b                   	pop    %ebx
5f5a39:	8b e5                	mov    %ebp,%esp
5f5a3b:	5d                   	pop    %ebp
5f5a3c:	c3                   	ret
5f5a3d:	5f                   	pop    %edi
5f5a3e:	5e                   	pop    %esi
5f5a3f:	33 c0                	xor    %eax,%eax
5f5a41:	33 d2                	xor    %edx,%edx
5f5a43:	5b                   	pop    %ebx
5f5a44:	8b e5                	mov    %ebp,%esp
5f5a46:	5d                   	pop    %ebp
5f5a47:	c3                   	ret
5f5a48:	8b 51 10             	mov    0x10(%ecx),%edx
5f5a4b:	8b 41 08             	mov    0x8(%ecx),%eax
5f5a4e:	83 c2 01             	add    $0x1,%edx
5f5a51:	56                   	push   %esi
5f5a52:	8b 71 14             	mov    0x14(%ecx),%esi
5f5a55:	83 d6 00             	adc    $0x0,%esi
5f5a58:	89 51 10             	mov    %edx,0x10(%ecx)
5f5a5b:	0b 41 0c             	or     0xc(%ecx),%eax
5f5a5e:	89 71 14             	mov    %esi,0x14(%ecx)
5f5a61:	74 0c                	je     0x5f5a6f
5f5a63:	3b 71 0c             	cmp    0xc(%ecx),%esi
5f5a66:	77 13                	ja     0x5f5a7b
5f5a68:	72 05                	jb     0x5f5a6f
5f5a6a:	3b 51 08             	cmp    0x8(%ecx),%edx
5f5a6d:	77 0c                	ja     0x5f5a7b
5f5a6f:	8b 09                	mov    (%ecx),%ecx
5f5a71:	e8 09 00 00 00       	call   0x5f5a7f
5f5a76:	83 f8 ff             	cmp    $0xffffffff,%eax
5f5a79:	75 02                	jne    0x5f5a7d
5f5a7b:	32 c0                	xor    %al,%al
5f5a7d:	5e                   	pop    %esi
5f5a7e:	c3                   	ret
5f5a7f:	8b d1                	mov    %ecx,%edx
5f5a81:	8b 4a 08             	mov    0x8(%edx),%ecx
5f5a84:	3b 4a 04             	cmp    0x4(%edx),%ecx
5f5a87:	75 04                	jne    0x5f5a8d
5f5a89:	83 c8 ff             	or     $0xffffffff,%eax
5f5a8c:	c3                   	ret
5f5a8d:	0f b6 01             	movzbl (%ecx),%eax
5f5a90:	41                   	inc    %ecx
5f5a91:	89 4a 08             	mov    %ecx,0x8(%edx)
5f5a94:	c3                   	ret
5f5a95:	8d 41 20             	lea    0x20(%ecx),%eax
5f5a98:	33 d2                	xor    %edx,%edx
5f5a9a:	3b c1                	cmp    %ecx,%eax
5f5a9c:	56                   	push   %esi
5f5a9d:	1b f6                	sbb    %esi,%esi
5f5a9f:	83 e6 e0             	and    $0xffffffe0,%esi
5f5aa2:	83 c6 20             	add    $0x20,%esi
5f5aa5:	3b c8                	cmp    %eax,%ecx
5f5aa7:	77 08                	ja     0x5f5ab1
5f5aa9:	f6 11                	notb   (%ecx)
5f5aab:	41                   	inc    %ecx
5f5aac:	42                   	inc    %edx
5f5aad:	3b d6                	cmp    %esi,%edx