FreeBSD porting and IMSI bugfix
diff --git a/sgsnemu/sgsnemu.c b/sgsnemu/sgsnemu.c
index ecf8ee8..53a1cc0 100644
--- a/sgsnemu/sgsnemu.c
+++ b/sgsnemu/sgsnemu.c
@@ -374,7 +374,9 @@
     printf("Invalid IMSI\n");
     return -1;
   }
-  options.imsi  = ((uint64_t) (args_info.imsi_arg[ 0]-48));
+
+  options.imsi  = 0xf000000000000000;
+  options.imsi |= ((uint64_t) (args_info.imsi_arg[ 0]-48));
   options.imsi |= ((uint64_t) (args_info.imsi_arg[ 1]-48)) <<  4;
   options.imsi |= ((uint64_t) (args_info.imsi_arg[ 2]-48)) <<  8;
   options.imsi |= ((uint64_t) (args_info.imsi_arg[ 3]-48)) << 12;
@@ -655,6 +657,8 @@
     i64 = i64 / 10;
   }
 
+  *dst |= 0xf000000000000000;
+
   return 0;
 
 }