Well, lets see...
Assuming that the length() method runs in constant time (ie: it doesn't work like strlen()). Your method frequencyMap is o(m), and anagram calls it twice. anagram is called n-m times. Total complexity is on the order of o(2*m*n). With m << n, 'big o' is O(n).
I can suggest a couple of optimizations. First you are re-generating the frequency map for string b at every call to anagram. Do it once at the beginning of ana_check. You can have an anagram method that takes a string and a frequency map instead of two strings.
The other thing I would do is to remove the length checks from anagram. Yes, it's a safety feature, but you already know the strings you passed in are the same size. And anyway, if they are different lengths the frequency maps will still not match, so the function is correct.
A trickier optimization would be to modify string a's frequency map instead of re-doing it every time. For the first substring, you do it as usual. But then you move ahead one character, subtracting the first character from the map and adding the new one. Sure, if m is <= 3 it won't make a difference, but anything larger than that would be a win.