Borrowed from Low German laff, which is either inherited from Middle Low German *laf (seemingly not attested) or borrowed from Middle Dutch laf (early 15th century), all probably from Proto-Germanic *laba-, from Proto-Indo-European *leb- (“to hang loosely”). Compare modern Dutch laf (“cowardly”).