MCPcopy Create free account
hub / github.com/abbeycode/UnrarKit / ReadData

Method ReadData

Libraries/unrar/rarvm.cpp:72–105  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

70
71
72uint RarVM::ReadData(BitInput &Inp)
73{
74 uint Data=Inp.fgetbits();
75 switch(Data&0xc000)
76 {
77 case 0:
78 Inp.faddbits(6);
79 return (Data>>10)&0xf;
80 case 0x4000:
81 if ((Data&0x3c00)==0)
82 {
83 Data=0xffffff00|((Data>>2)&0xff);
84 Inp.faddbits(14);
85 }
86 else
87 {
88 Data=(Data>>6)&0xff;
89 Inp.faddbits(10);
90 }
91 return Data;
92 case 0x8000:
93 Inp.faddbits(2);
94 Data=Inp.fgetbits();
95 Inp.faddbits(16);
96 return Data;
97 default:
98 Inp.faddbits(2);
99 Data=(Inp.fgetbits()<<16);
100 Inp.faddbits(16);
101 Data|=Inp.fgetbits();
102 Inp.faddbits(16);
103 return Data;
104 }
105}
106
107
108void RarVM::SetMemory(size_t Pos,byte *Data,size_t DataSize)

Callers

nothing calls this directly

Calls 2

fgetbitsMethod · 0.80
faddbitsMethod · 0.80

Tested by

no test coverage detected