1.Pool difficulty is 65536 -> 32 bit integer value?? (so the target is : 0,0000152587890625) ?
2.Founded hash is : 85cdec00a2626745c0b524b1f87f041a05bd4cb8885a9e209d06ebe0620ce9cb -> 256 bit hexadecimal number ??
You compare it with "target" not with difficulty. The target value is already found inside the block header you would hash as a 32 bit integer.
First you take the first 23 bits from the target (target & 0x007fffff) then you compute the 256 bit integer value of that target by computing masked_value * 2^(8*(last_8bits - 3))
For example
0x1b0404cb
turns into:
00000000000404CB000000000000000000000000000000000000000000000000
or as integer
1653206561150525499452195696179626311675293455763937233695932416
Then you have to convert the block header hash to a 256-bit integer using the little endian notation.
85cdec00a2626745c0b524b1f87f041a05bd4cb8885a9e209d06ebe0620ce9cb
turns into
60521441339092913078694912492755153710004602299172835061887865089033946065355
Now you compare the two integers (6052.... <= 16532...) if the comparison returns true then it is a valid hash and the block can be published otherwise it is rejected.
In c# you can use System.Numerics.BigInteger class