# Vm-2 This vm challenge takes two values at a time from memory the first value acts as a opcode and second one as operands, the vm-function totally has 22 switch cases Binary takes an unsigned 32-bit integer as input and does some checks inside the vm-function and returns 4 if it has passed all the conditions `inst` is the instruction array `values` is the array which has our input along with zeros (length 280) each byte of the input is in values[18],values[19],values[20],values[21] Implementing the function in python ```py from z3 import * inst=[0x14,0x00,0x01,0x0f,0x04,0x15,0x0f,0x0e,0x53,0x14,0x01,0x14,0x02,0x14,0x03,0x14,0x04,0x01,0x08,0x13,0x01,0x09,0x37,0x01,0x0a,0x01,0x01,0x0b,0xf0,0x01,0x0c,0x0f,0x01,0x0d,0x90,0x01,0x07,0xad,0x15,0x27,0x0e,0x2c,0x03,0xea,0x07,0x19,0x01,0x07,0xe9,0x15,0x17,0x0e,0x37,0x03,0xea,0x07,0x48,0x07,0x49,0x01,0x07,0xcb,0x15,0x47,0x0e,0x44,0x03,0xea,0x07,0x3d,0x07,0x3c,0x07,0x39,0x01,0x07,0x16,0x15,0x37,0x0e,0x53,0x03,0xea,0x16,0x0e] num = [BitVec('a%s'%i,32) for i in range(4)] values=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xef,0xbe,0xad,0xde,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00] s=Solver() values[280]=0 print('i=0') while(values[280]<=85): i = values[280] v25 = inst[i] v26 = inst[i+1] print('\n#v25==%d,v26==%d'%(v25,v26)) print('values[280]=%d'%(i)) if v25==1: print('values[%d]=inst[%d+2]'%(v26,i)) print('values[280]+=1') values[v26]=inst[i+2] values[280]+=1 elif v25==2: print('values[%d] = values[%d]'%(v26>>4,v26&0xf)) values[v26>>4] = values[v26&0xf] elif v25==3: print('values[%d] += values[%d]'%(v26>>4,v26&0xf)) values[v26>>4] += values[v26&0xf] elif v25==4: print('values[%d] -= values[%d]'%(v26>>4,v26&0xf)) values[v26>>4] -= values[v26&0xf] elif v25==5: print('values[%d] *= values[%d] & 0xff'%(v26>>4,v26&0xf)) values[v26>>4] *= values[v26&0xf] & 0xff elif v25==6: print('values[%d] //= values[%d] &0xff '%(v26>>4,v26&0xf)) values[v26>>4] //= values[v26&0xf] & 0xff elif v25==7: print('values[%d] ^= values[%d] &0xff '%(v26>>4,v26&0xf)) values[v26>>4] ^= values[v26&0xf] & 0xff elif v25==8: values[v26>>4] |= values[v26&0xf] & 0xff print('values[%d] |= values[%d] &0xff '%(v26>>4,v26&0xf)) elif v25==9: print('values[%d] &= values[%d] &0xff '%(v26>>4,v26&0xf)) values[v26>>4] &= values[v26&0xf] & 0xff elif v25==10: print('values[%d] = (values[%d]==0)'%(v26>>4,v26&0xf)) values[v26>>4] = (values[v26&0xf]==0) elif v25==11: print('values[%d] <<= values[%d] &0xff '%(v26>>4,v26&0xf)) values[v26>>4] <<= values[v26&0xf] & 0xff elif v25==12: print('values[%d] >>= values[%d] &0xff '%(v26>>4,v26&0xf)) values[v26>>4] >>= values[v26&0xf] & 0xff elif v25==13: if values[15]: print('values[280]=%d'%(v26-2)) i = v26-2 values[280]=i elif v25==14: if values[15]==0: print('values[280]=%d'%(v26-2)) i = v26-2 values[280]=i elif v25==15: if values[16]: print('values[280]=%d'%(v26-2)) i = v26-2 values[280]=i elif v25==16: if values[16]==0: print('values[280]=%d'%(v26-2)) i = v26-2 values[280]=i elif v25==17: if values[17]: print('values[280]=%d'%(v26-2)) i = v26-2 values[280]=i elif v25==18: if values[17]==0: print('values[280]=%d'%(v26-2)) i = v26-2 values[280]=i elif v25==19: print('k = values[276]#%d'%(values[276])) print('values[k+18] = values[%d]'%(v26)) print('values[276]+=1') k = values[276] values[k+18] = values[v26] values[276]+=1 elif v25==20: print('k = values[276]#%d'%(values[276])) print('values[%d] = values[k+18]'%(v26)) print('values[276]-=1') k = values[276] values[v26] = values[k+18] values[276]-=1 elif v25==21: print(values) print('#Check') print('v26=%d'%(v26)) v27 = values[v26>>4] &0xff v28 = values[v26&0xf] &0xff print('v27 = values[v26>>4] &0xff') print('v28 = values[v26&0xf] &0xff') for j in range(3): values[j+15]=0 if v27==v28: values[15]=1 elif v27-v28<0: if v27-v28<=0: values[17]=1 else: values[16]=1 values[15]=1 #hunch elif v25==22: print('#Done') print(values[v26]) break values[280]+=2 ``` when we look at the instructions, after an opcode value of 21 we have another opcode 14 So the switch case 21 sets `values[15]` according to the input and it is then compared in case 14 If we set `values[15]` by adding the line `values[15]=1` at the end of switch case 21, irrespective of input it returns 4 Redirecting the above output and going through instructions we get 4 equations each one for a byte Since we don't know what values in the array keeps changing we print out the `values` array every time it enters switch 21 (Check part) and take the necessary values ```py inst=[0x14,0x00,0x01,0x0f,0x04,0x15,0x0f,0x0e,0x53,0x14,0x01,0x14,0x02,0x14,0x03,0x14,0x04,0x01,0x08,0x13,0x01,0x09,0x37,0x01,0x0a,0x01,0x01,0x0b,0xf0,0x01,0x0c,0x0f,0x01,0x0d,0x90,0x01,0x07,0xad,0x15,0x27,0x0e,0x2c,0x03,0xea,0x07,0x19,0x01,0x07,0xe9,0x15,0x17,0x0e,0x37,0x03,0xea,0x07,0x48,0x07,0x49,0x01,0x07,0xcb,0x15,0x47,0x0e,0x44,0x03,0xea,0x07,0x3d,0x07,0x3c,0x07,0x39,0x01,0x07,0x16,0x15,0x37,0x0e,0x53,0x03,0xea,0x16,0x0e] values=[0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0,0,0,4,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00] i=0 #v25==20,v26==0 values[280]=0 k = values[276]#4 values[0] = values[k+18] values[276]-=1 #v25==1,v26==15 values[280]=2 values[15]=inst[2+2] values[280]+=1 #v25==21,v26==15 values[280]=5 [4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 239, 190, 173, 222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 5] #Check v26=15 v27 = values[v26>>4] &0xff v28 = values[v26&0xf] &0xff #v25==14,v26==83 values[280]=7 #v25==20,v26==1 values[280]=9 k = values[276]#3 values[1] = values[k+18] values[276]-=1 #v25==20,v26==2 values[280]=11 k = values[276]#2 values[2] = values[k+18] values[276]-=1 #v25==20,v26==3 values[280]=13 k = values[276]#1 values[3] = values[k+18] values[276]-=1 #v25==20,v26==4 values[280]=15 k = values[276]#0 values[4] = values[k+18] values[276]-=1 #v25==1,v26==8 values[280]=17 values[8]=inst[17+2] values[280]+=1 #v25==1,v26==9 values[280]=20 values[9]=inst[20+2] values[280]+=1 #v25==1,v26==10 values[280]=23 values[10]=inst[23+2] values[280]+=1 #v25==1,v26==11 values[280]=26 values[11]=inst[26+2] values[280]+=1 #v25==1,v26==12 values[280]=29 values[12]=inst[29+2] values[280]+=1 #v25==1,v26==13 values[280]=32 values[13]=inst[32+2] values[280]+=1 #v25==1,v26==7 values[280]=35 values[7]=inst[35+2] values[280]+=1 #v25==21,v26==39 values[280]=38 [4, 222, 173, 190, 239, 0, 0, 173, 19, 55, 1, 240, 15, 144, 0, 1, 0, 0, 239, 190, 173, 222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 38] #Check v26=39 v27 = values[v26>>4] &0xff v28 = values[v26&0xf] &0xff #v25==14,v26==44 values[280]=40 #v25==3,v26==234 values[280]=42 values[14] += values[10] #v25==7,v26==25 values[280]=44 values[1] ^= values[9] &0xff #v25==1,v26==7 values[280]=46 values[7]=inst[46+2] values[280]+=1 #v25==21,v26==23 values[280]=49 [4, 233, 173, 190, 239, 0, 0, 233, 19, 55, 1, 240, 15, 144, 1, 1, 0, 0, 239, 190, 173, 222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 49] #Check v26=23 v27 = values[v26>>4] &0xff v28 = values[v26&0xf] &0xff #v25==14,v26==55 values[280]=51 #v25==3,v26==234 values[280]=53 values[14] += values[10] #v25==7,v26==72 values[280]=55 values[4] ^= values[8] &0xff #v25==7,v26==73 values[280]=57 values[4] ^= values[9] &0xff #v25==1,v26==7 values[280]=59 values[7]=inst[59+2] values[280]+=1 #v25==21,v26==71 values[280]=62 [4, 233, 173, 190, 203, 0, 0, 203, 19, 55, 1, 240, 15, 144, 2, 1, 0, 0, 239, 190, 173, 222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 62] #Check v26=71 v27 = values[v26>>4] &0xff v28 = values[v26&0xf] &0xff #v25==14,v26==68 values[280]=64 #v25==3,v26==234 values[280]=66 values[14] += values[10] #v25==7,v26==61 values[280]=68 values[3] ^= values[13] &0xff #v25==7,v26==60 values[280]=70 values[3] ^= values[12] &0xff #v25==7,v26==57 values[280]=72 values[3] ^= values[9] &0xff #v25==1,v26==7 values[280]=74 values[7]=inst[74+2] values[280]+=1 #v25==21,v26==55 values[280]=77 [4, 233, 173, 22, 203, 0, 0, 22, 19, 55, 1, 240, 15, 144, 3, 1, 0, 0, 239, 190, 173, 222, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 77] #Check v26=55 v27 = values[v26>>4] &0xff v28 = values[v26&0xf] &0xff #v25==14,v26==83 values[280]=79 #v25==3,v26==234 values[280]=81 values[14] += values[10] #v25==22,v26==14 values[280]=83 #Done 4 ``` The equations from the above script are ```py values[1]=values[21] values[2]=values[22] values[3]=values[23] values[4]=values[24] values[1] = inst[48]^values[9] values[2] = inst[47] values[3] = inst[76]^values[12]^values[13]^values[9] values[4] = inst[61]^values[9]^values[8] password = hex(values[4])+hex(values[3])+hex(values[2])+hex(values[1]) password = int(password,16) # 0xdeadbeef print(password) ``` ###### Password: 3735928559 ###### tags: `vm`