7c58a6:	57                   	push   %edi
7c58a7:	83 7a 14 10          	cmpl   $0x10,0x14(%edx)
7c58ab:	8b d9                	mov    %ecx,%ebx
7c58ad:	8b 7a 10             	mov    0x10(%edx),%edi
7c58b0:	72 02                	jb     0x7c58b4
7c58b2:	8b 12                	mov    (%edx),%edx
7c58b4:	33 c9                	xor    %ecx,%ecx
7c58b6:	be c5 9d 1c 81       	mov    $0x811c9dc5,%esi
7c58bb:	85 ff                	test   %edi,%edi
7c58bd:	74 12                	je     0x7c58d1
7c58bf:	90                   	nop
7c58c0:	0f b6 04 0a          	movzbl (%edx,%ecx,1),%eax
7c58c4:	41                   	inc    %ecx
7c58c5:	33 c6                	xor    %esi,%eax
7c58c7:	69 f0 93 01 00 01    	imul   $0x1000193,%eax,%esi
7c58cd:	3b cf                	cmp    %edi,%ecx
7c58cf:	72 ef                	jb     0x7c58c0
7c58d1:	8b 43 18             	mov    0x18(%ebx),%eax
7c58d4:	5f                   	pop    %edi
7c58d5:	23 c6                	and    %esi,%eax
7c58d7:	5e                   	pop    %esi
7c58d8:	5b                   	pop    %ebx
7c58d9:	c2 04 00             	ret    $0x4
7c58dc:	cc                   	int3
7c58dd:	cc                   	int3
7c58de:	cc                   	int3
7c58df:	cc                   	int3
7c58e0:	cc                   	int3
7c58e1:	cc                   	int3
7c58e2:	cc                   	int3
7c58e3:	cc                   	int3
7c58e4:	cc                   	int3
7c58e5:	cc                   	int3
7c58e6:	cc                   	int3
7c58e7:	cc                   	int3
7c58e8:	cc                   	int3
7c58e9:	cc                   	int3
7c58ea:	cc                   	int3
7c58eb:	cc                   	int3
7c58ec:	cc                   	int3
7c58ed:	cc                   	int3
7c58ee:	cc                   	int3
7c58ef:	cc                   	int3
7c58f0:	8b 51 04             	mov    0x4(%ecx),%edx
7c58f3:	b8 c6 71 1c 07       	mov    $0x71c71c6,%eax
7c58f8:	56                   	push   %esi
7c58f9:	8b 74 24 08          	mov    0x8(%esp),%esi
7c58fd:	2b c2                	sub    %edx,%eax
7c58ff:	3b c6                	cmp    %esi,%eax
7c5901:	72 0a                	jb     0x7c590d
7c5903:	8d 04 32             	lea    (%edx,%esi,1),%eax
7c5906:	89 41 04             	mov    %eax,0x4(%ecx)
7c5909:	5e                   	pop    %esi
7c590a:	c2 04 00             	ret    $0x4
7c590d:	68 0c 61 bd 00       	push   $0xbd610c
7c5912:	e8 ff 3e c6 ff       	call   0x429816
7c5917:	cc                   	int3
7c5918:	cc                   	int3
7c5919:	cc                   	int3
7c591a:	cc                   	int3
7c591b:	cc                   	int3
7c591c:	cc                   	int3
7c591d:	cc                   	int3
7c591e:	cc                   	int3
7c591f:	cc                   	int3
7c5920:	cc                   	int3
7c5921:	cc                   	int3
7c5922:	cc                   	int3
7c5923:	cc                   	int3
7c5924:	cc                   	int3
7c5925:	cc                   	int3
7c5926:	cc                   	int3
7c5927:	cc                   	int3
7c5928:	cc                   	int3
7c5929:	cc                   	int3
7c592a:	cc                   	int3
7c592b:	cc                   	int3
7c592c:	cc                   	int3
7c592d:	cc                   	int3
7c592e:	cc                   	int3
7c592f:	cc                   	int3
7c5930:	51                   	push   %ecx
7c5931:	53                   	push   %ebx
7c5932:	8b d9                	mov    %ecx,%ebx
7c5934:	55                   	push   %ebp
7c5935:	8b 6c 24 10          	mov    0x10(%esp),%ebp
7c5939:	56                   	push   %esi
7c593a:	8b 43 14             	mov    0x14(%ebx),%eax
7c593d:	2b 43 0c             	sub    0xc(%ebx),%eax
7c5940:	57                   	push   %edi
7c5941:	8d 3c 6d 00 00 00 00 	lea    0x0(,%ebp,2),%edi
7c5948:	c1 f8 02             	sar    $0x2,%eax
7c594b:	3b c7                	cmp    %edi,%eax
7c594d:	73 11                	jae    0x7c5960
7c594f:	81 ff ff ff ff 3f    	cmp    $0x3fffffff,%edi
7c5955:	77 3d                	ja     0x7c5994
7c5957:	57                   	push   %edi
7c5958:	8d 4b 0c             	lea    0xc(%ebx),%ecx
7c595b:	e8 58 e2 c6 ff       	call   0x433bb8
7c5960:	8b 43 04             	mov    0x4(%ebx),%eax
7c5963:	8d 4b 0c             	lea    0xc(%ebx),%ecx
7c5966:	89 44 24 18          	mov    %eax,0x18(%esp)
7c596a:	8b 43 0c             	mov    0xc(%ebx),%eax
7c596d:	89 43 10             	mov    %eax,0x10(%ebx)
7c5970:	8d 44 24 18          	lea    0x18(%esp),%eax
7c5974:	50                   	push   %eax
7c5975:	57                   	push   %edi
7c5976:	ff 73 0c             	push   0xc(%ebx)
7c5979:	8d 44 24 1c          	lea    0x1c(%esp),%eax
7c597d:	50                   	push   %eax
7c597e:	e8 8b 13 c7 ff       	call   0x436d0e
7c5983:	5f                   	pop    %edi
7c5984:	5e                   	pop    %esi
7c5985:	8d 45 ff             	lea    -0x1(%ebp),%eax
7c5988:	89 6b 1c             	mov    %ebp,0x1c(%ebx)
7c598b:	5d                   	pop    %ebp
7c598c:	89 43 18             	mov    %eax,0x18(%ebx)
7c598f:	5b                   	pop    %ebx
7c5990:	59                   	pop    %ecx
7c5991:	c2 04 00             	ret    $0x4
7c5994:	68 58 20 bd 00       	push   $0xbd2058
7c5999:	e8 78 3e c6 ff       	call   0x429816
7c599e:	cc                   	int3
7c599f:	cc                   	int3
7c59a0:	cc                   	int3
7c59a1:	cc                   	int3
7c59a2:	cc                   	int3
7c59a3:	cc                   	int3
7c59a4:	cc                   	int3
7c59a5:	cc                   	int3
7c59a6:	cc                   	int3
7c59a7:	cc                   	int3
7c59a8:	cc                   	int3
7c59a9:	cc                   	int3
7c59aa:	cc                   	int3
7c59ab:	cc                   	int3
7c59ac:	cc                   	int3
7c59ad:	cc                   	int3
7c59ae:	cc                   	int3
7c59af:	cc                   	int3
7c59b0:	cc                   	int3
7c59b1:	cc                   	int3
7c59b2:	cc                   	int3
7c59b3:	cc                   	int3
7c59b4:	cc                   	int3
7c59b5:	cc                   	int3
7c59b6:	cc                   	int3
7c59b7:	cc                   	int3
7c59b8:	cc                   	int3
7c59b9:	cc                   	int3
7c59ba:	cc                   	int3
7c59bb:	cc                   	int3
7c59bc:	cc                   	int3
7c59bd:	cc                   	int3
7c59be:	cc                   	int3
7c59bf:	cc                   	int3
7c59c0:	8b 44 24 0c          	mov    0xc(%esp),%eax
7c59c4:	8b 51 0c             	mov    0xc(%ecx),%edx
7c59c7:	56                   	push   %esi
7c59c8:	8d 34 c5 00 00 00 00 	lea    0x0(,%eax,8),%esi
7c59cf:	8b 04 32             	mov    (%edx,%esi,1),%eax
7c59d2:	03 d6                	add    %esi,%edx
7c59d4:	3b 41 04             	cmp    0x4(%ecx),%eax
7c59d7:	75 15                	jne    0x7c59ee
7c59d9:	8b 44 24 08          	mov    0x8(%esp),%eax
7c59dd:	89 02                	mov    %eax,(%edx)
7c59df:	8b 49 0c             	mov    0xc(%ecx),%ecx
7c59e2:	8b 44 24 08          	mov    0x8(%esp),%eax
7c59e6:	89 44 0e 04          	mov    %eax,0x4(%esi,%ecx,1)
7c59ea:	5e                   	pop    %esi
7c59eb:	c2 0c 00             	ret    $0xc
7c59ee:	3b 44 24 0c          	cmp    0xc(%esp),%eax
7c59f2:	75 0a                	jne    0x7c59fe
7c59f4:	8b 44 24 08          	mov    0x8(%esp),%eax
7c59f8:	89 02                	mov    %eax,(%edx)
7c59fa:	5e                   	pop    %esi
7c59fb:	c2 0c 00             	ret    $0xc
7c59fe:	8b 42 04             	mov    0x4(%edx),%eax
7c5a01:	8b 00                	mov    (%eax),%eax
7c5a03:	89 42 04             	mov    %eax,0x4(%edx)
7c5a06:	3b 44 24 08          	cmp    0x8(%esp),%eax
7c5a0a:	74 0e                	je     0x7c5a1a
7c5a0c:	8b 49 0c             	mov    0xc(%ecx),%ecx
7c5a0f:	8b 44 31 04          	mov    0x4(%ecx,%esi,1),%eax
7c5a13:	8b 40 04             	mov    0x4(%eax),%eax
7c5a16:	89 44 31 04          	mov    %eax,0x4(%ecx,%esi,1)
7c5a1a:	5e                   	pop    %esi
7c5a1b:	c2 0c 00             	ret    $0xc
7c5a1e:	cc                   	int3
7c5a1f:	cc                   	int3
7c5a20:	cc                   	int3
7c5a21:	cc                   	int3
7c5a22:	cc                   	int3
7c5a23:	cc                   	int3
7c5a24:	cc                   	int3
7c5a25:	cc                   	int3
7c5a26:	cc                   	int3
7c5a27:	cc                   	int3
7c5a28:	cc                   	int3
7c5a29:	cc                   	int3
7c5a2a:	cc                   	int3
7c5a2b:	cc                   	int3
7c5a2c:	cc                   	int3
7c5a2d:	cc                   	int3
7c5a2e:	cc                   	int3
7c5a2f:	cc                   	int3
7c5a30:	cc                   	int3
7c5a31:	cc                   	int3
7c5a32:	cc                   	int3
7c5a33:	cc                   	int3
7c5a34:	cc                   	int3
7c5a35:	cc                   	int3
7c5a36:	cc                   	int3
7c5a37:	cc                   	int3
7c5a38:	cc                   	int3
7c5a39:	cc                   	int3
7c5a3a:	cc                   	int3
7c5a3b:	cc                   	int3
7c5a3c:	cc                   	int3
7c5a3d:	cc                   	int3
7c5a3e:	cc                   	int3
7c5a3f:	cc                   	int3
7c5a40:	55                   	push   %ebp
7c5a41:	8b ec                	mov    %esp,%ebp
7c5a43:	6a ff                	push   $0xffffffff
7c5a45:	68 10 78 b9 00       	push   $0xb97810
7c5a4a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
7c5a50:	50                   	push   %eax
7c5a51:	83 ec 18             	sub    $0x18,%esp
7c5a54:	53                   	push   %ebx
7c5a55:	56                   	push   %esi
7c5a56:	57                   	push   %edi
7c5a57:	a1 24 f6 d5 00       	mov    0xd5f624,%eax
7c5a5c:	33 c5                	xor    %ebp,%eax
7c5a5e:	50                   	push   %eax
7c5a5f:	8d 45 f4             	lea    -0xc(%ebp),%eax
7c5a62:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
7c5a68:	89 65 f0             	mov    %esp,-0x10(%ebp)
7c5a6b:	8b d9                	mov    %ecx,%ebx
7c5a6d:	89 5d e0             	mov    %ebx,-0x20(%ebp)
7c5a70:	8b 45 0c             	mov    0xc(%ebp),%eax
7c5a73:	8b f8                	mov    %eax,%edi
7c5a75:	8b 33                	mov    (%ebx),%esi
7c5a77:	2b fe                	sub    %esi,%edi
7c5a79:	c1 ff 02             	sar    $0x2,%edi
7c5a7c:	89 7d dc             	mov    %edi,-0x24(%ebp)
7c5a7f:	8b 7d 10             	mov    0x10(%ebp),%edi
7c5a82:	85 ff                	test   %edi,%edi
7c5a84:	0f 84 e5 01 00 00    	je     0x7c5c6f
7c5a8a:	8b 53 04             	mov    0x4(%ebx),%edx
7c5a8d:	8b 4b 08             	mov    0x8(%ebx),%ecx
7c5a90:	2b ca                	sub    %edx,%ecx
7c5a92:	89 55 10             	mov    %edx,0x10(%ebp)
7c5a95:	c1 f9 02             	sar    $0x2,%ecx
7c5a98:	3b cf                	cmp    %edi,%ecx
7c5a9a:	0f 83 fb 00 00 00    	jae    0x7c5b9b
7c5aa0:	2b d6                	sub    %esi,%edx
7c5aa2:	b9 ff ff ff 3f       	mov    $0x3fffffff,%ecx
7c5aa7:	c1 fa 02             	sar    $0x2,%edx
7c5aaa:	8b c1                	mov    %ecx,%eax
7c5aac:	2b c2                	sub    %edx,%eax
7c5aae:	3b c7                	cmp    %edi,%eax
7c5ab0:	73 0a                	jae    0x7c5abc
7c5ab2:	68 58 20 bd 00       	push   $0xbd2058
7c5ab7:	e8 5a 3d c6 ff       	call   0x429816
7c5abc:	8d 04 3a             	lea    (%edx,%edi,1),%eax
7c5abf:	8b 53 08             	mov    0x8(%ebx),%edx
7c5ac2:	89 45 10             	mov    %eax,0x10(%ebp)
7c5ac5:	2b d6                	sub    %esi,%edx
7c5ac7:	c1 fa 02             	sar    $0x2,%edx
7c5aca:	8b c2                	mov    %edx,%eax
7c5acc:	d1 e8                	shr    $1,%eax
7c5ace:	2b c8                	sub    %eax,%ecx
7c5ad0:	03 c2                	add    %edx,%eax
7c5ad2:	89 4d ec             	mov    %ecx,-0x14(%ebp)
7c5ad5:	33 c9                	xor    %ecx,%ecx
7c5ad7:	39 55 ec             	cmp    %edx,-0x14(%ebp)
7c5ada:	0f 43 c8             	cmovae %eax,%ecx
7c5add:	8b 45 10             	mov    0x10(%ebp),%eax
7c5ae0:	3b c8                	cmp    %eax,%ecx
7c5ae2:	0f 43 c1             	cmovae %ecx,%eax
7c5ae5:	8b cb                	mov    %ebx,%ecx
7c5ae7:	50                   	push   %eax
7c5ae8:	89 45 10             	mov    %eax,0x10(%ebp)
7c5aeb:	89 45 e8             	mov    %eax,-0x18(%ebp)
7c5aee:	e8 53 71 c6 ff       	call   0x42cc46
7c5af3:	ff 75 0c             	push   0xc(%ebp)
7c5af6:	8b f0                	mov    %eax,%esi
7c5af8:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
7c5aff:	8b 45 0c             	mov    0xc(%ebp),%eax
7c5b02:	2b 03                	sub    (%ebx),%eax
7c5b04:	c1 f8 02             	sar    $0x2,%eax
7c5b07:	53                   	push   %ebx
7c5b08:	ff 75 14             	push   0x14(%ebp)
7c5b0b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
7c5b0e:	8d 0c 86             	lea    (%esi,%eax,4),%ecx
7c5b11:	89 45 ec             	mov    %eax,-0x14(%ebp)
7c5b14:	57                   	push   %edi
7c5b15:	51                   	push   %ecx
7c5b16:	e8 98 53 c7 ff       	call   0x43aeb3
7c5b1b:	83 c4 14             	add    $0x14,%esp
7c5b1e:	51                   	push   %ecx
7c5b1f:	ff 75 0c             	push   0xc(%ebp)
7c5b22:	53                   	push   %ebx
7c5b23:	56                   	push   %esi
7c5b24:	ff 75 0c             	push   0xc(%ebp)
7c5b27:	ff 33                	push   (%ebx)
7c5b29:	e8 47 b6 c5 ff       	call   0x421175
7c5b2e:	8b 45 ec             	mov    -0x14(%ebp),%eax
7c5b31:	83 c4 18             	add    $0x18,%esp
7c5b34:	03 c7                	add    %edi,%eax
7c5b36:	51                   	push   %ecx
7c5b37:	ff 75 0c             	push   0xc(%ebp)
7c5b3a:	8d 04 86             	lea    (%esi,%eax,4),%eax
7c5b3d:	53                   	push   %ebx
7c5b3e:	50                   	push   %eax
7c5b3f:	ff 73 04             	push   0x4(%ebx)
7c5b42:	ff 75 0c             	push   0xc(%ebp)
7c5b45:	e8 2b b6 c5 ff       	call   0x421175
7c5b4a:	8b 0b                	mov    (%ebx),%ecx
7c5b4c:	83 c4 18             	add    $0x18,%esp
7c5b4f:	8b 43 04             	mov    0x4(%ebx),%eax
7c5b52:	2b c1                	sub    %ecx,%eax
7c5b54:	c1 f8 02             	sar    $0x2,%eax
7c5b57:	03 f8                	add    %eax,%edi
7c5b59:	85 c9                	test   %ecx,%ecx
7c5b5b:	74 11                	je     0x7c5b6e
7c5b5d:	8b 43 08             	mov    0x8(%ebx),%eax
7c5b60:	2b c1                	sub    %ecx,%eax
7c5b62:	c1 f8 02             	sar    $0x2,%eax
7c5b65:	50                   	push   %eax
7c5b66:	51                   	push   %ecx
7c5b67:	8b cb                	mov    %ebx,%ecx
7c5b69:	e8 79 0c c6 ff       	call   0x4267e7
7c5b6e:	8b 45 10             	mov    0x10(%ebp),%eax
7c5b71:	8d 04 86             	lea    (%esi,%eax,4),%eax
7c5b74:	89 43 08             	mov    %eax,0x8(%ebx)
7c5b77:	8d 04 be             	lea    (%esi,%edi,4),%eax
7c5b7a:	89 43 04             	mov    %eax,0x4(%ebx)
7c5b7d:	89 33                	mov    %esi,(%ebx)
7c5b7f:	e9 eb 00 00 00       	jmp    0x7c5c6f
7c5b84:	ff 75 e8             	push   -0x18(%ebp)
7c5b87:	8b 4d e0             	mov    -0x20(%ebp),%ecx
7c5b8a:	ff 75 e4             	push   -0x1c(%ebp)
7c5b8d:	e8 55 0c c6 ff       	call   0x4267e7
7c5b92:	6a 00                	push   $0x0
7c5b94:	6a 00                	push   $0x0
7c5b96:	e8 f4 7d c5 ff       	call   0x41d98f
7c5b9b:	8b ca                	mov    %edx,%ecx
7c5b9d:	2b c8                	sub    %eax,%ecx