unzip static method
Implementation
static Map<String,dynamic> unzip(Uint8List data) {
final Map<String,dynamic> files = {};
int e = data.length - 22;
for (; b4(data, e) != 0x6054B50; --e) {
if (e == 0 || data.length - e > 65558){
throw 'invalid zip file';
}
}
int c = b2(data, e + 8);
if (c == 0){
return {};
}
int o = b4(data, e + 16);
bool z = o == 4294967295;
if (z) {
e = b4(data, e - 12);
if (b4(data, e) != 0x6064B50){
throw 'invalid zip file';
}
c = b4(data, e + 32);
o = b4(data, e + 48);
}
for (int i = 0; i < c; ++i) {
final _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);
o = no;
if (c_2 == 0){
files[fn] = slc(data, b, b + sc);
}
else if (c_2 == 8){
files[fn] = inflt(data.sublist(b, b + sc), Uint8List(su));
}
else{
throw 'unknown compression type $c_2';
}
}
return files;
}