-  //raw fsk demod no manchester decoding no start bit finding just get binary from wave
-  //set defaults
-  int idx=0; 
-  //something in graphbuffer
-  if (GraphTraceLen < 65) return 0;
-  uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
-  uint32_t BitLen = getFromGraphBuf(BitStream);
-  //get binary from fsk wave
-  idx = IOdemodFSK(BitStream,BitLen); 
-  if (idx<0){
-    //PrintAndLog("Error demoding fsk");
-    return 0;
-  }
-  if (idx==0){
-    //PrintAndLog("IO Prox Data not found - FSK Data:");
-    //if (BitLen > 92) printBitStream(BitStream,92);
-    return 0;
-  }
-    //Index map
-    //0           10          20          30          40          50          60
-    //|           |           |           |           |           |           |
-    //01234567 8 90123456 7 89012345 6 78901234 5 67890123 4 56789012 3 45678901 23
-    //-----------------------------------------------------------------------------
-    //00000000 0 11110000 1 facility 1 version* 1 code*one 1 code*two 1 ???????? 11
-    //
-    //XSF(version)facility:codeone+codetwo (raw)
-    //Handle the data
-  if (idx+64>BitLen) return 0;
-  PrintAndLog("%d%d%d%d%d%d%d%d %d",BitStream[idx],    BitStream[idx+1],  BitStream[idx+2], BitStream[idx+3], BitStream[idx+4], BitStream[idx+5], BitStream[idx+6], BitStream[idx+7], BitStream[idx+8]);
-  PrintAndLog("%d%d%d%d%d%d%d%d %d",BitStream[idx+9],  BitStream[idx+10], BitStream[idx+11],BitStream[idx+12],BitStream[idx+13],BitStream[idx+14],BitStream[idx+15],BitStream[idx+16],BitStream[idx+17]);       
-  PrintAndLog("%d%d%d%d%d%d%d%d %d facility",BitStream[idx+18], BitStream[idx+19], BitStream[idx+20],BitStream[idx+21],BitStream[idx+22],BitStream[idx+23],BitStream[idx+24],BitStream[idx+25],BitStream[idx+26]);
-  PrintAndLog("%d%d%d%d%d%d%d%d %d version",BitStream[idx+27], BitStream[idx+28], BitStream[idx+29],BitStream[idx+30],BitStream[idx+31],BitStream[idx+32],BitStream[idx+33],BitStream[idx+34],BitStream[idx+35]);
-  PrintAndLog("%d%d%d%d%d%d%d%d %d code1",BitStream[idx+36], BitStream[idx+37], BitStream[idx+38],BitStream[idx+39],BitStream[idx+40],BitStream[idx+41],BitStream[idx+42],BitStream[idx+43],BitStream[idx+44]);
-  PrintAndLog("%d%d%d%d%d%d%d%d %d code2",BitStream[idx+45], BitStream[idx+46], BitStream[idx+47],BitStream[idx+48],BitStream[idx+49],BitStream[idx+50],BitStream[idx+51],BitStream[idx+52],BitStream[idx+53]);
-  PrintAndLog("%d%d%d%d%d%d%d%d %d%d checksum",BitStream[idx+54],BitStream[idx+55],BitStream[idx+56],BitStream[idx+57],BitStream[idx+58],BitStream[idx+59],BitStream[idx+60],BitStream[idx+61],BitStream[idx+62],BitStream[idx+63]);
-
-  uint32_t code = bytebits_to_byte(BitStream+idx,32);
-  uint32_t code2 = bytebits_to_byte(BitStream+idx+32,32); 
-  uint8_t version = bytebits_to_byte(BitStream+idx+27,8); //14,4
-  uint8_t facilitycode = bytebits_to_byte(BitStream+idx+18,8) ;
-  uint16_t number = (bytebits_to_byte(BitStream+idx+36,8)<<8)|(bytebits_to_byte(BitStream+idx+45,8)); //36,9
-          
-  PrintAndLog("XSF(%02d)%02x:%05d (%08x%08x)",version,facilitycode,number,code,code2);    
-  setGraphBuf(BitStream,BitLen);
-  return 1;
+       if (GraphTraceLen < 65) {
+               PrintAndLog("data samples size is too small");
+               return 0;
+       }
+
+       //raw fsk demod no manchester decoding no start bit finding just get binary from wave
+       //set defaults
+       int idx = 0; 
+       uint8_t bits[MAX_GRAPH_TRACE_LEN] = {0x00};
+       uint32_t bitlen = GetFromGraphBuf(bits);
+
+       //get binary from fsk wave
+       idx = IOdemodFSK(bits, bitlen); 
+  
+       if (idx == 0) {
+               return 0;
+       }
+       if (idx == -1) {
+               PrintAndLog("data samples size is too small");
+               return 0;
+       }
+       if (idx == -2) {
+               PrintAndLog("Data samples has too much noice");
+               return 0;
+       }
+       if (idx == -3){
+               PrintAndLog("No good demod");
+               return 0;
+       }
+  
+       if (idx+64 > bitlen) return 0;
+  
+       //Index map
+       //0           10          20          30          40          50          60
+       //|           |           |           |           |           |           |
+       //01234567 8 90123456 7 89012345 6 78901234 5 67890123 4 56789012 3 45678901 23
+       //-----------------------------------------------------------------------------
+       //00000000 0 11110000 1 facility 1 version* 1 code*one 1 code*two 1 ???????? 11
+       //
+       //XSF(version)facility:codeone+codetwo (raw)
+       //Handle the data
+
+       PrintAndLog("%d%d%d%d%d%d%d%d %d",                      bits[idx]   , bits[idx+1],  bits[idx+2], bits[idx+3], bits[idx+4], bits[idx+5], bits[idx+6], bits[idx+7], bits[idx+8]);
+       PrintAndLog("%d%d%d%d%d%d%d%d %d",                      bits[idx+9] , bits[idx+10], bits[idx+11], bits[idx+12], bits[idx+13], bits[idx+14], bits[idx+15], bits[idx+16], bits[idx+17]);       
+       PrintAndLog("%d%d%d%d%d%d%d%d %d facility", bits[idx+18], bits[idx+19], bits[idx+20], bits[idx+21], bits[idx+22], bits[idx+23], bits[idx+24], bits[idx+25], bits[idx+26]);
+       PrintAndLog("%d%d%d%d%d%d%d%d %d version",      bits[idx+27], bits[idx+28], bits[idx+29], bits[idx+30], bits[idx+31], bits[idx+32], bits[idx+33], bits[idx+34], bits[idx+35]);
+       PrintAndLog("%d%d%d%d%d%d%d%d %d code1",        bits[idx+36], bits[idx+37], bits[idx+38], bits[idx+39], bits[idx+40], bits[idx+41], bits[idx+42], bits[idx+43], bits[idx+44]);
+       PrintAndLog("%d%d%d%d%d%d%d%d %d code2",        bits[idx+45], bits[idx+46], bits[idx+47], bits[idx+48], bits[idx+49], bits[idx+50], bits[idx+51], bits[idx+52], bits[idx+53]);
+       PrintAndLog("%d%d%d%d%d%d%d%d %d%d checksum", bits[idx+54], bits[idx+55], bits[idx+56], bits[idx+57], bits[idx+58], bits[idx+59], bits[idx+60], bits[idx+61], bits[idx+62], bits[idx+63]);
+
+       uint32_t code = bytebits_to_byte(bits+idx,32);
+       uint32_t code2 = bytebits_to_byte(bits+idx+32,32); 
+       uint8_t version = bytebits_to_byte(bits+idx+27,8); //14,4
+       uint8_t facilitycode = bytebits_to_byte(bits+idx+18,8) ;
+       uint16_t number = (bytebits_to_byte(bits+idx+36,8)<<8)|(bytebits_to_byte(bits+idx+45,8)); //36,9
+                 
+       PrintAndLog("XSF(%02d)%02x:%05d (%08x%08x)", version, facilitycode, number, code, code2);    
+       SetGraphBuf(bits, bitlen);
+       return 1;