Tab = [ 0x579696BF, 0x4BEAFE7D, 0x0DFEDBEDB, 0x0D09651A1, 0x0CC640A12, 0x0E43BD628, 0x73828557, 0x7BAA8F67, 0x1F3C7178, 0x4A3BE530, 0x0DCEA641F, 0x260448F1, 0x7FD87A9A, 0x0DA49A1F6, 0x0F1BF0FCD, 0x87C3AF1B, 0x0B4B71BDF, 0x0BFEDEC67, 0x9F9FCAE4, 0x0A4785992, 0x0AE68D75B, 0x7E642D42, 0x800B9B91, 0x0F5F4EE08, 0x6D7F275A, 0x0A6F58543, 0x7B11B592, 0x193F52BA, 0x5B9C1BC1, 0x0E75D9628, 0x6D96FB11, 0x0E20D5601, 0x88BD660B, 0x3587ADF5, 0x2EECBACE, 0x0D6FDEB6D, 0x0FBFD39CC, 0x5537A76B, 0x3ECB4264, 0x0D9327DD5, 0x6932FDA4, 0x7D29DCB1, 0x8C212734, 0x8206D7C9, 0x0A0A13BC2, 0x0A3642CB6, 0x313FC16E, 0x89B2AFBE, 0x58375842, 0x0CAAA45F3, 0x0C176563F, 0x627F983, 0x3C56CABE, 0x0D9A2021, 0x0B75B39D6, 0x76AA83C6, 0x0C7951720, 0x0F6383774, 0x0DC394A38, 0x711DCD0F, 0x0F5F22CB0, 0x0EDB2E9B9, 0x240688C5, 0x7C43C31B, 0x39136434, 0x748A4F15, 0x0D4D5EC95, 0x0EA04CABD, 0x0A0ECB0EB, 0x0C068FE16, 0x5C7B4551, 0x48424558, 0x11BA0975, 0x292B93D, 0x0D518BD96, 0x24E924F6, 0x8ED74195, 0x888D2A30, 0x0BBA23F04, 0x0FD528A5B, 0x4FE3D941, 0x3C7680DB, 0x4D096C9D, 0x68BB39AF, 0x75C5434C, 0x1E66DC6E, 0x0C0239DB9, 0x58249C71, 0x911A7982, 0x58DF30FA, 0x18DBF7A0, 0x2D6530D3, 0x9E5D4C5F, 0x9AFA6D96, 0x0AD5A8FFF, 0x866AB894, 0x11F31787, 0x3D78F28C, 0x1DA79F15, 0x0F8483BD4, 0x187B8F23, 0x0FFEAE65F, 0x6DD92CCC, 0x3EF3687, 0x924EF0A4, 0x36F4A751, 0x45A8FEE, 0x6710C2D9, 0x0EF84873, 0x9BB7F830, 0x0FB4C0F63, 0x0A239BE92, 0x748A78F1, 0x0D4E5F800, 0x3208C1C5, 0x1F061152, 0x0A7047912, 0x0F875418, 0x0A5276298, 0x0E3DE4ED2, 0x1241EB8, 0x9C13B7E, 0x3F2BE41E, 0x2312017B, 0x0FDCC38DE, 0x73B4B2CC, 0x86AFCDFA, 0x6558CD8E, 0x3029211B, 0x0CB132380, 0x732EB7F7, 0x9943EDAC, 0x9AB2BA28, 0x0F1D84378, 0x0C94BA52C, 0x43D0CA0E, 0x0DF71491A, 0x2ED6DC21, 0x2022787B, 0x766586DB, 0x8DACCA37, 0x81F70B4C, 0x0C7011D9B, 0x132FB, 0x0C1B571F, 0x5163EA30, 0x0BFF73870, 0x0D6154FAC, 0x203BCFBD, 0x23435381, 0x68C4F291, 0x0BE570DE7, 0x0DFE2047F, 0x7B384D92, 0x961884A6, 0x0B87C90ED, 0x0D2D0AC20, 0x7432A660, 0x9214AFA1, 0x0A373F0A7, 0x0B18811BB, 0x0D29822CC, 0x58F354B, 0x28AC58FD, 0x22A6B93F, 0x3FA6CC1A, 0x56F4402F, 0x0F411CF33, 0x17A585E, 0x2D6EEE0, 0x166B242C, 0x36BB3675, 0x0D9C5B9A, 0x1BA6F6A1, 0x7BEF17B1, 0x0D66036DB, 0x75A75A6C, 0x0CAB9BDB5, 0x5CCBC2DE, 0x0B30B456B, 0x8B5698B8, 0x8CB1F993, 0x9DDF1EF5, 0x0B1682064, 0x0EFF9299C, 0x365F23A7, 0x74E53BAF, 0x813B05B4, 0x89155B87, 0x926AADDA, 0x8AEAB73D, 0x0BB6D9016, 0x99AAAC30, 0x0AAFFF446, 0x0B11B1BC9, 0x9D7A385F, 0x0EEDF7EA9, 0x2F6BA7A9, 0x71AABCE7, 0x0B1C9C529, 0x0ED5B3059, 0x2ADA6ADC, 0x5B21FA3D, 0x0C9304716, 0x0F4CD530, 0x11D57F46, 0x4D5DA2FC, 0x0B683D52C, 0x6454924C, 0x2D1A2F6D, 0x7791EC5B, 0x0A9F04613, 0x0C4E3BD02, 0x2D1CE8E, 0x3B8BD2D2, 0x38E9FC83, 0x41106627, 0x2E6423F, 0x0B32862B2, 0x0F21B5529, 0x0CDC5A977, 0x20EA0858, 0x9EF2F37C, 0x0F37F0DD1, 0x4581161B, 0x0EC6B745, 0x0D20E3C9F, 0x0F29F2DF1, 0x6DD38813, 0x5DDE9965, 0x0F2365117, 0x246AD3D1, 0x6FD0510B, 0x0BEFC293, 0x0C6304307, 0x0AC50F1A, 0x0F122AF8, 0x9078BB89, 0x31CFDC65, 0x0DBB60851, 0x0E9FE391F, 0x0BD0027CD, 0x0CCC47D23, 0x0A148A52D, 0x6032A948, 0x9ABCBF19, 0x4CF9A569, 0x0C9D8F4AB, 0x9CEFEF6A, 0x97547156, 0x0F630E813, 0x0A81AC30A, 0x3F7AAB3E, 0x950E5F92, 0x0C64DBBE8, 0x0F1599899] # note: that's wrong Tab_s = Tab.map { |i| (i << 1) & 0xffffffff } def iter(sum) 256.times { |i| Tab[i] ^= sum sum ^= Tab_s[i] } end iter 0 key = "\023Fel".unpack('L').first offset = (ARGV[0] || 133).to_i offset.downto(0) { |t| key ^= Tab[t] ^ Tab[t+1] } bla = [key].pack('L') (0..254).each { |t| key ^= Tab[t] ^ Tab[t+1] bla << [key].pack('L') } File.open('rdata.clear', 'w') { |fd| fd.write bla }