int hdSurEncCryptLookup_D2_0F_11(unsigned char Value, unsigned char AddrInd) {
  static const unsigned char lookup[] = {
      0x94, 0xB2, 0xA9, 0x79, 0xC4, 0xC7, 0x0D, 0x36, 0x6F, 0x24, 0x11, 0xD1,
      0xDB, 0x59, 0xD2, 0xA5, 0xE1, 0x00, 0xD4, 0x97, 0xA3, 0x2B, 0x11, 0xFA,
      0x5F, 0xF1, 0xC1, 0x44, 0xBF, 0x9B, 0x5A, 0xC8, 0xF1, 0xE1, 0x99, 0x82,
      0x0E, 0xB2, 0x01, 0x09, 0x0C, 0xC8, 0xB3, 0x3B, 0xD1, 0x80, 0x50, 0xE8,
      0xF5, 0x52, 0x4C, 0xE6, 0x82, 0xAC, 0x58, 0x40, 0xD4, 0x71, 0x87, 0x52,
      0x06, 0xEA, 0xA6, 0x27, 0xB7, 0xFE, 0x6C, 0x49, 0x47, 0x3B, 0x70, 0x6C,
      0xEB, 0xCD, 0xC5, 0x0B, 0x8C, 0x31, 0x29, 0x42, 0x4E, 0x10, 0x2B, 0x2D,
      0x46, 0xEC, 0x39, 0xA3, 0x90, 0x4B, 0x25, 0x60, 0x9C, 0x62, 0xD4, 0x20,
      0xF6, 0x16, 0xA8, 0x9C, 0xE4, 0x20, 0xED, 0xC7, 0xBA, 0x5E, 0xB6, 0x4E,
      0x03, 0x15, 0xA6, 0xF6, 0x23, 0x98, 0x32, 0xC0, 0xAE, 0xA3, 0xFD, 0xD3,
      0x7F, 0xF8, 0xED, 0xF0, 0x29, 0x29, 0x12, 0xB3, 0xB7, 0x58, 0xAD, 0xA2,
      0x58, 0x2C, 0x70, 0x1B, 0xA4, 0x25, 0xE8, 0xA5, 0x43, 0xF1, 0xB9, 0x8F,
      0x1E, 0x3B, 0x10, 0xDF, 0x52, 0xFE, 0x58, 0x29, 0xAD, 0x3F, 0x99, 0x4D,
      0xDF, 0xD2, 0x08, 0x06, 0xA1, 0x1C, 0x66, 0x29, 0x26, 0x80, 0x52, 0x8A,
      0x5A, 0x73, 0xE7, 0xDF, 0xC1, 0xC4, 0x47, 0x82, 0xAB, 0x5C, 0x32, 0xAE,
      0x96, 0x04, 0x2B, 0xC3, 0x2D, 0x5A, 0xD2, 0xB0, 0x64, 0x88, 0x97, 0xBF,
      0x7E, 0x99, 0x60, 0xCC, 0x63, 0x76, 0x66, 0xE9, 0x9A, 0x3D, 0xBB, 0xF7,
      0x7F, 0xE4, 0x7C, 0x3F, 0xB8, 0x4D, 0x10, 0x8D, 0x2A, 0xEA, 0x3C, 0xD3,
      0x03, 0x74, 0xE6, 0x46, 0xC0, 0x29, 0xAE, 0xB0, 0x79, 0xBE, 0xCB, 0x18,
      0x34, 0xBE, 0x5A, 0xE9, 0x19, 0x8F, 0xA3, 0x8F, 0xD6, 0x6A, 0x6C, 0x88,
      0x1E, 0x21, 0x08, 0x15, 0xC4, 0xE7, 0xE6, 0xBA, 0x97, 0x9C, 0x4F, 0x89,
      0x9F, 0x1A, 0x67, 0x4F, 0xC0, 0xD5, 0x72, 0x51, 0x16, 0xB4, 0xD3, 0x8A,
      0x1F, 0xE3, 0x92, 0x02, 0x7F, 0x59, 0x56, 0x8F, 0x07, 0x8D, 0xC1, 0xC2,
      0x42, 0x69, 0x3C, 0xA6, 0xBF, 0x3D, 0xDF, 0x0D, 0xAA, 0x4F, 0x7E, 0x80,
      0x07, 0x11, 0xE2, 0x94, 0x19, 0x9B, 0x16, 0x26, 0x1A, 0x46, 0x09, 0x0D,
      0xB5, 0xB8, 0x8E, 0x01, 0x9C, 0xFE, 0x09, 0xB3, 0x60, 0xC2, 0xAE, 0x50,
      0x3C, 0x68, 0x75, 0x4A, 0x57, 0xD8, 0x4F, 0xD7, 0xA2, 0x76, 0x2C, 0xC1,
      0xA2, 0x23, 0xBC, 0x54, 0x2A, 0xDD, 0xF3, 0xDD, 0xA7, 0x34, 0xF7, 0x5C,
      0xF4, 0x86, 0x23, 0x48, 0x7C, 0x3F, 0x05, 0x40, 0x0E, 0xB0, 0xE5, 0xEB,
      0x3E, 0xDF, 0x6A, 0x83, 0x65, 0xA0, 0xB2, 0x06, 0xD1, 0x40, 0x79, 0x0D,
      0xDE, 0x95, 0x84, 0x96, 0x87, 0x6F, 0xCE, 0x48, 0x24, 0x13, 0x0B, 0xF5,
      0xC7, 0xF5, 0xA8, 0x7F, 0x2E, 0xC7, 0xE1, 0xBA, 0xAE, 0x2B, 0xF7, 0xF0,
      0x8E, 0xF7, 0x54, 0x0B, 0xF0, 0xD2, 0x41, 0x81, 0x68, 0x3B, 0x1E, 0x35,
      0xAB, 0xD9, 0x2B, 0x46, 0x57, 0xE8, 0x53, 0xDF, 0xDE, 0x10, 0xEF, 0xCB,
      0x4C, 0xE0, 0x52, 0x18, 0x2C, 0x4E, 0xB9, 0x20, 0xE9, 0x7E, 0x85, 0xDF,
      0x75, 0x32, 0xE6, 0x10, 0xE9, 0x9C, 0x7B, 0x2E, 0x4C, 0xDA, 0x46, 0xE6,
      0xCC, 0x77, 0x36, 0x1D, 0x4A, 0x15, 0xF5, 0x32, 0x18, 0x6B, 0x7E, 0xAA,
      0xCC, 0x97, 0xCC, 0xD1, 0x2F, 0xE5, 0x58, 0x03, 0x35, 0x35, 0x3D, 0xA0,
      0x2B, 0x13, 0x3A, 0x65, 0xFF, 0x24, 0x72, 0xCF, 0xA7, 0x6D, 0x52, 0x55,
      0xF6, 0xC2, 0x30, 0x23, 0x7D, 0x9B, 0x9E, 0xB0, 0x94, 0x02, 0xAD, 0x60,
      0x8A, 0x9F, 0xBC, 0xC8, 0xE4, 0x2B, 0x92, 0x96, 0xF5, 0xAE, 0x04, 0xA4,
      0x33, 0x0C, 0x90, 0x67, 0xF0, 0xB9, 0x1E, 0x7E, 0xBE, 0x02, 0x18, 0xB2,
      0x03, 0xB6, 0x40, 0xBF, 0x05, 0xE3, 0x76, 0x98, 0x21, 0x38, 0xC9, 0x5F,
      0xD3, 0x51, 0x8B, 0x43, 0x0B, 0x1A, 0x0B, 0xF9, 0x3C, 0x21, 0x6C, 0x3D,
      0xB8, 0xA0, 0x57, 0xCA, 0x68, 0xCD, 0x1E, 0xD2, 0x2C, 0x50, 0xEE, 0xC0,
      0xDF, 0x25, 0x88, 0x52, 0x37, 0xE1, 0x44, 0xC6, 0x76, 0x3B, 0x91, 0x95,
      0x86, 0x76, 0x87, 0x49, 0x21, 0x93, 0x44, 0x0A, 0x52, 0xB9, 0x2D, 0x2B,
      0xE3, 0x1D, 0xB0, 0xE4, 0x98, 0xC6, 0xEE, 0x3D, 0x96, 0x53, 0x4B, 0xFF,
      0x39, 0x00, 0xD5, 0x42, 0x7E, 0xE1, 0x4C, 0x6F, 0xD5, 0xB7, 0xE6, 0x99,
      0x2A, 0x5B, 0x67, 0xEE, 0x3E, 0xBA, 0xF7, 0xEC, 0x43, 0x2A, 0x1C, 0xB6,
      0xB5, 0x04, 0x26, 0x59, 0xB1, 0x4C, 0x17, 0xCC, 0x83, 0xB9, 0x00, 0x3E,
      0x36, 0x91, 0x90, 0xF7, 0x5E, 0x38, 0xDC, 0xE4, 0x15, 0xC7, 0x67, 0xF0,
      0xCA, 0xC8, 0xD2, 0x91, 0x5D, 0x74, 0xAC, 0x97, 0x56, 0x36, 0x1A, 0x82,
      0x0A, 0xAA, 0xB4, 0x4E, 0xBF, 0x29, 0x5C, 0xBF, 0x58, 0xB3, 0x97, 0xF9,
      0xEB, 0x7C, 0x85, 0xB4, 0xA5, 0x13, 0x2F, 0xD1, 0xDE, 0x1C, 0xEC, 0x97,
      0xDD, 0xE2, 0x39, 0xE4, 0xFB, 0x0A, 0x02, 0xE0, 0xC3, 0xBA, 0x39, 0x79,
      0xAA, 0x1C, 0x37, 0x75, 0x25, 0x54, 0xBE, 0x85, 0x74, 0x2C, 0xFA, 0x0C,
      0xFA, 0x50, 0xF6, 0xBE, 0x9F, 0x2A, 0x53, 0x7C, 0x27, 0x46, 0x68, 0x2D,
      0x74, 0x2B, 0x46, 0xDA, 0xF5, 0x07, 0x95, 0x09, 0x6A, 0x91, 0xB7, 0xB1,
      0x34, 0x07, 0x5F, 0xEA, 0xBE, 0x0F, 0x87, 0x28, 0x68, 0x97, 0x43, 0x77,
      0xD5, 0x38, 0x2B, 0x11, 0x11, 0x4F, 0xD9, 0x75, 0x5E, 0xE1, 0x06, 0xA0,
      0x3B, 0xAC, 0x32, 0xFE, 0xBF, 0x73, 0x59, 0x5B, 0xA2, 0xA8, 0x7E, 0x10,
      0x4C, 0x6E, 0x78, 0xF0, 0x4A, 0x4E, 0x95, 0xD6, 0xDD, 0x05, 0x7A, 0xBB,
      0xF1, 0xEB, 0xA8, 0xA4, 0x5D, 0x91, 0xF0, 0xED, 0xDB, 0xB8, 0x01, 0x41,
      0xF8, 0x97, 0x7F, 0xC3, 0x91, 0x53, 0xBF, 0xE9, 0xEA, 0x33, 0x1F, 0xDC,
      0xA6, 0xE6, 0x8D, 0xCB, 0x75, 0xD0, 0x69, 0xD0, 0xA4, 0x59, 0xA5, 0x02,
      0xFC, 0x60, 0x0D, 0x6A, 0xA0, 0x05, 0x1A, 0x54, 0x8A, 0xA7, 0x57, 0xA3,
      0xF0, 0x90, 0x8A, 0xD5, 0x6F, 0x1E, 0x2E, 0x10, 0x9A, 0x93, 0x2B, 0x51,
      0x2C, 0xFD, 0x99, 0xE5, 0x9B, 0x5D, 0xB2, 0xA7, 0x37, 0x99, 0x26, 0x35,
      0xCA, 0xDD, 0x22, 0x19, 0x59, 0x2A, 0xB0, 0x99, 0x23, 0xDF, 0xA7, 0xA9,
      0x85, 0x12, 0xCF, 0xBF, 0xFC, 0x74, 0x80, 0x87, 0xE1, 0x97, 0xD0, 0xF9,
      0xEF, 0x5F, 0x1B, 0x45, 0xF7, 0x76, 0xDB, 0x66, 0x39, 0x05, 0x43, 0x06,
      0xA9, 0x9F, 0x2E, 0x14, 0x9F, 0x1C, 0x0C, 0x1F, 0xD5, 0xD9, 0xA4, 0x8D,
      0x18, 0x6F, 0x08, 0x53, 0x0B, 0x92, 0x9A, 0x0C, 0xEA, 0x4C, 0xE4, 0x1D,
      0x9E, 0x9A, 0x51, 0xB8, 0x7E, 0x2D, 0xE7, 0x3C, 0xFF, 0x84, 0x5C, 0xBF,
      0x8F, 0x8C, 0x89, 0x09, 0x1B, 0x7E, 0x4B, 0xE7, 0x85, 0xEC, 0x04, 0xB5,
      0x20, 0x18, 0x1E, 0x55, 0xD5, 0x5B, 0xAC, 0xC6, 0x25, 0x5A, 0xA1, 0x81,
      0xC1, 0x31, 0x9C, 0xF5, 0xB5, 0x54, 0x07, 0x65, 0x0A, 0x5B, 0x90, 0x06,
      0x4F, 0x84, 0xB2, 0x7F, 0xD1, 0xAD, 0x16, 0x81, 0x25, 0xAF, 0xAF, 0xE2,
      0x03, 0xA9, 0x1F, 0x13, 0x02, 0x5D, 0x54, 0x89, 0xCD, 0x44, 0x51, 0xEB,
      0xA4, 0x2B, 0xBD, 0x47, 0xB0, 0xB6, 0x27, 0x1D, 0x9B, 0x14, 0x6F, 0xBF,
      0xCD, 0x59, 0xBC, 0x0A, 0x37, 0xA8, 0x74, 0x7D, 0x16, 0x90, 0x28, 0xD5,
      0x94, 0xC3, 0xE4, 0x23, 0xC4, 0x98, 0x91, 0xCE, 0x55, 0xBD, 0x21, 0x3B,
      0x84, 0xBD, 0x44, 0x3C, 0xF9, 0xCD, 0x37, 0x43, 0x4A, 0xC6, 0x8C, 0x23,
      0x04, 0x28, 0x63, 0x7A, 0x03, 0x85, 0xD2, 0x46, 0x93, 0xCA, 0xFE, 0xC3,
      0x83, 0x0B, 0x13, 0xCC, 0x5D, 0xCB, 0xBA, 0xCA, 0x68, 0xAB, 0x05, 0xF7,
      0xEC, 0x4A, 0x9C, 0x0F, 0xD5, 0xC4, 0x5A, 0xA5, 0xA0, 0x04, 0x41, 0x6A,
      0xF6, 0xEF, 0x16, 0x9B, 0x69, 0x38, 0xF6, 0x2D, 0xAA, 0xEB, 0x2D, 0xE2,
      0x82, 0xA2, 0x9F, 0x6F, 0xBD, 0x2A, 0xE3, 0x66, 0x6B, 0x21, 0xDA, 0x56,
      0xAD, 0x82, 0x2B, 0x93, 0xF3, 0x25, 0xEA, 0xFC, 0xFD, 0xFD, 0x1B, 0xA9,
      0xFC, 0xB8, 0xC6, 0x98, 0x45, 0xF2, 0x70, 0x03, 0x4A, 0x9C, 0x60, 0x82,
      0x65, 0xB6, 0x68, 0x4C, 0xE7, 0x41, 0x10, 0x9D, 0x59, 0x40, 0x03, 0x02,
      0x07, 0x12, 0x33, 0xAF, 0x79, 0xE1, 0xC4, 0xEB, 0xB8, 0xCE, 0x6A, 0x90,
      0x72, 0x61, 0x5D, 0x56, 0xC7, 0x59, 0x31, 0xCB, 0x45, 0x2D, 0x42, 0x9F,
      0x10, 0x1D, 0x09, 0x63, 0x59, 0x8C, 0x6C, 0xDB, 0x11, 0xCF, 0xA1, 0xDF,
      0x5F, 0x4D, 0xDF, 0xB4, 0xC3, 0x82, 0xEE, 0x58, 0x16, 0xB4, 0x74, 0xFA,
      0xBE, 0x11, 0x9C, 0x1E, 0x98, 0x29, 0xDE, 0xE3, 0xE5, 0x9E, 0xCF, 0xD7,
      0x91, 0x0A, 0xA3, 0xA4, 0x42, 0xA1, 0x95, 0x09, 0x9E, 0x16, 0xD5, 0xA8,
      0x24, 0x56, 0x5B, 0x23, 0xC8, 0x56, 0x4C, 0xCB, 0x89, 0x18, 0x69, 0xEB,
      0x0C, 0x1F, 0xC0, 0x41, 0x5C, 0x63, 0x04, 0x68, 0xB2, 0x0F, 0x3F, 0x88,
      0x36, 0xDD, 0x23, 0x4D, 0x4C, 0xC0, 0x81, 0xE3, 0xE9, 0xAD, 0xE0, 0x27,
      0xD5, 0xE5, 0x46, 0xEB, 0xFF, 0x32, 0xA2, 0xB7, 0x14, 0x64, 0x0B, 0x6D,
      0x1B, 0xE5, 0xD8, 0xAE, 0x9D, 0xE8, 0x55, 0xB9, 0x52, 0x70, 0x59, 0xB8,
      0x72, 0x92, 0x69, 0x37, 0x95, 0x61, 0x0A, 0xE5, 0xF6, 0x55, 0x97, 0x1D,
      0xBF, 0xF7, 0x29, 0x77, 0x0F, 0x72, 0x80, 0xB2, 0x7E, 0x56, 0xBF, 0xFD,
      0xE9, 0xF5, 0x9B, 0x62, 0xE9, 0xBD, 0x0B, 0xC2, 0x07, 0x55, 0x31, 0x4C,
      0x57, 0x3A, 0x05, 0xB9, 0x27, 0x41, 0x4A, 0xC3, 0xEC, 0x72, 0x20, 0xB3,
      0x0C, 0xF9, 0xD9, 0x3A, 0x14, 0x6A, 0x03, 0x44, 0x6A, 0xF1, 0x41, 0x55,
      0x7F, 0x81, 0xC2, 0x04, 0xA8, 0x05, 0xB9, 0x49, 0x2E, 0x43, 0xC4, 0x00,
      0x87, 0x86, 0x04, 0xAC, 0xAF, 0x73, 0x78, 0x0E, 0xA4, 0x43, 0x5B, 0x36,
      0xA2, 0x8F, 0x9C, 0xF7, 0x66, 0x4A, 0x5A, 0x09, 0x6B, 0xAA, 0x69, 0x6F,
      0xB1, 0x20, 0x0D, 0x56, 0x85, 0x0A, 0x5E, 0x06, 0xBF, 0xE2, 0x32, 0xB4,
      0x5C, 0x46, 0x33, 0x0D, 0x27, 0xA3, 0x6B, 0xE1, 0xB2, 0x6A, 0x7D, 0x4A,
      0xA7, 0x81, 0x0F, 0x2B, 0x16, 0x7C, 0x51, 0xD6, 0xC0, 0x3D, 0xB9, 0xFE,
      0xB4, 0x66, 0xC4, 0xB6, 0x54, 0x53, 0x67, 0xDA, 0x70, 0x96, 0x9A, 0x0A,
      0x07, 0x1A, 0x26, 0xBA, 0x85, 0x50, 0xF5, 0x27, 0x53, 0x9C, 0x3A, 0x94,
      0x0A, 0x7D, 0xDB, 0xE1, 0xC3, 0xE3, 0x6A, 0x3E, 0x9E, 0xD5, 0x13, 0x0A,
      0xA3, 0xD2, 0x21, 0x75, 0x79, 0x17, 0x26, 0xAC, 0x48, 0x5F, 0x3D, 0xE1,
      0x7D, 0xA4, 0xB1, 0x56, 0x0F, 0x92, 0x2C, 0x60, 0xE6, 0xCB, 0x87, 0x35,
      0xB8, 0x75, 0xC3, 0xA2, 0x03, 0x50, 0x4B, 0xA2, 0x6E, 0x01, 0xE1, 0xDD,
      0x87, 0xA5, 0x33, 0xC6, 0x2F, 0xA2, 0x41, 0xFC, 0x72, 0x98, 0xA2, 0x69,
      0x4C, 0x3F, 0xF0, 0x53, 0xF5, 0x41, 0x2B, 0x23, 0x24, 0x3B, 0xCE, 0x9D,
      0x39, 0x31, 0x17, 0x08, 0xE1, 0x3F, 0x5F, 0xFB, 0x00, 0xFA, 0xF1, 0xE3,
      0xE1, 0x7B, 0x0C, 0xDF, 0x8D, 0xA2, 0xC4, 0xCD, 0x62, 0x3D, 0xAE, 0xC7,
      0x48, 0x09, 0x1C, 0x66, 0xCB, 0x0E, 0x23, 0xE8, 0x1B, 0x9F, 0x1B, 0xCB,
      0xF8, 0x14, 0xC3, 0x34, 0x91, 0x32, 0x2B, 0x39, 0x1C, 0xBA, 0x1C, 0xA0,
      0x19, 0xF2, 0x57, 0x9D, 0x78, 0x00, 0x55, 0x1F, 0x15, 0x12, 0x9A, 0xA2,
      0xF2, 0xC2, 0xB7, 0x4E, 0xEA, 0x46, 0x01, 0xC2, 0xE9, 0x76, 0xBF, 0xDE,
      0xCF, 0x8B, 0xC7, 0x50, 0x80, 0xEE, 0x46, 0x91, 0x93, 0x1E, 0x5C, 0x48,
      0x5D, 0xC8, 0xC8, 0x63, 0xD1, 0x89, 0x02, 0x29, 0xE9, 0x90, 0x9F, 0x0B,
      0x0A, 0x1A, 0x44, 0x17, 0xE7, 0x4E, 0xAD, 0x58, 0x55, 0xF8, 0x38, 0xF6,
      0x4F, 0xD8, 0x1C, 0x7E, 0x25, 0x9B, 0x59, 0x16, 0xBC, 0x65, 0x24, 0xC5,
      0xA7, 0x56, 0xE5, 0x20, 0x3F, 0xD9, 0x27, 0xE0, 0x32, 0x24, 0xE1, 0x7B,
      0xE1, 0x32, 0xEA, 0xF4, 0xFE, 0xD9, 0xA5, 0xFF, 0x35, 0xAE, 0xA9, 0x1B,
      0x38, 0x28, 0x6A, 0xC0, 0x1A, 0x42, 0xD9, 0x5E, 0x14, 0x2C, 0xC2, 0x2D,
      0x9B, 0x94, 0x5B, 0xCF, 0x83, 0x30, 0xB9, 0x06, 0xAF, 0x4B, 0xD7, 0xF6,
      0x38, 0x7C, 0xFF, 0xB4, 0xA5, 0x1A, 0xA0, 0xE9, 0xF3, 0x01, 0xE3, 0x97,
      0xC4, 0xA9, 0x57, 0xF5, 0xB9, 0x96, 0xA7, 0xA3, 0xB8, 0x10, 0x0E, 0xFB,
      0x1D, 0x39, 0x44, 0x16, 0x97, 0x94, 0x3E, 0x5F, 0xAF, 0x0F, 0xE3, 0x99,
      0xDC, 0xA0, 0xE9, 0x8D, 0x26, 0x2B, 0xD9, 0xAE, 0xEC, 0x4C, 0x4F, 0x09,
      0x86, 0x7E, 0x7B, 0xC3, 0xE3, 0xC6, 0x17, 0xAE, 0x30, 0x9C, 0x31, 0xD1,
      0x84, 0x47, 0xAF, 0xCB, 0xEA, 0x69, 0x2A, 0x08, 0x3E, 0x13, 0x00, 0xDE,
      0xF6, 0x4A, 0x42, 0xD3, 0xBE, 0x33, 0xD9, 0x50, 0x6B, 0x8D, 0x59, 0x12,
      0x1A, 0xD3, 0xA7, 0x7C, 0x0A, 0xE7, 0x87, 0x47, 0xCA, 0xAA, 0x33, 0xFD,
      0xC1, 0xF6, 0x28, 0xC1, 0x62, 0xA2, 0x4C, 0x79, 0x83, 0x48, 0x86, 0x0E,
      0xA4, 0x67, 0x34, 0x95, 0xAE, 0x7D, 0xD6, 0xEE, 0x91, 0x05, 0x35, 0x91,
      0xE8, 0x34, 0x39, 0xA3, 0xE5, 0xE6, 0x80, 0x53, 0x76, 0x1F, 0x94, 0xA0,
      0xF6, 0xA5, 0x41, 0x79, 0x82, 0xD3, 0xB0, 0x1F, 0xCE, 0xE1, 0x86, 0x64,
      0x65, 0x0C, 0x8D, 0xD6, 0xFA, 0xC1, 0x10, 0x6C, 0x07, 0xD5, 0xF0, 0x77,
      0x65, 0xB9, 0x0C, 0xBD, 0xAE, 0x2D, 0x62, 0x6C, 0x42, 0x7E, 0x2A, 0xBE,
      0x5F, 0xC1, 0x17, 0x3B, 0x07, 0xFF, 0x5E, 0xD7, 0x31, 0x52, 0x26, 0x2F,
      0x9F, 0x12, 0xD8, 0x2E, 0xA3, 0xF5, 0xB5, 0xD2, 0xFC, 0x6E, 0x08, 0x1F,
      0xC8, 0x93, 0xA1, 0xEB, 0xF9, 0x13, 0x1D, 0x1F, 0x98, 0x5E, 0xB0, 0x0C,
      0x65, 0x6C, 0xAE, 0x07, 0x78, 0xF8, 0x12, 0xD2, 0xD1, 0x1E, 0x77, 0x5C,
      0x24, 0x62, 0xE5, 0x94, 0xD6, 0x6A, 0x8E, 0xD0, 0x72, 0x59, 0xDA, 0x48,
      0x38, 0x2F, 0x31, 0x75, 0x0C, 0x52, 0xF0, 0x0C, 0x8F, 0x5C, 0xE9, 0x5E,
      0x5A, 0x94, 0xE8, 0xD2, 0x80, 0xF8, 0x4F, 0xE7, 0xAA, 0x6C, 0xBE, 0x47,
      0xFB, 0xDD, 0x57, 0x0A, 0xD8, 0x5E, 0xCC, 0x0D, 0x8F, 0x42, 0x5E, 0xDC,
      0x5D, 0x95, 0x95, 0x60, 0x9B, 0x6F, 0x05, 0x5E, 0x08, 0x45, 0x91, 0xE4,
      0xB8, 0x06, 0xB1, 0xF2, 0xC0, 0xD7, 0xE3, 0x47, 0xB7, 0x38, 0x08, 0xA8,
      0x58, 0xE4, 0x55, 0xFC, 0xE2, 0x37, 0x1F, 0x38, 0xA2, 0x18, 0x9E, 0xC2,
      0x0F, 0x90, 0x14, 0x20, 0x50, 0xD1, 0xD0, 0xAB, 0x36, 0x7F, 0xAA, 0x03,
      0x1C, 0xE6, 0x0A, 0xF9, 0x8E, 0x41, 0xDB, 0x32, 0x1C, 0x68, 0xA0, 0xA0,
      0xED, 0x4A, 0xF4, 0x4B, 0x09, 0xD0, 0xF0, 0x01, 0x8B, 0x17, 0x44, 0xE1,
      0xEA, 0xC5, 0x9D, 0x3B, 0x37, 0x7A, 0x68, 0xF1, 0x78, 0x46, 0xCF, 0xB6,
      0x57, 0xDB, 0x4B, 0x5C, 0x03, 0xE1, 0x9D, 0xC0, 0x37, 0x55, 0x8D, 0x03,
      0xFB, 0x6A, 0x00, 0x82, 0x19, 0xD1, 0xC0, 0x76, 0x97, 0xEE, 0xC9, 0xAD,
      0x0D, 0x72, 0x0B, 0xE9, 0xA8, 0x09, 0x92, 0x03, 0xA4, 0xAA, 0x2C, 0xCF,
      0xFD, 0xDE, 0x86, 0xD0, 0x06, 0x4A, 0xAE, 0x7E, 0xC1, 0xB8, 0x2A, 0x4E,
      0x9F, 0xA3, 0x5E, 0x8C, 0x12, 0x40, 0x74, 0x38, 0xE7, 0xEA, 0xB0, 0x51,
      0xC2, 0xB9, 0x6D, 0x4A, 0x50, 0xBF, 0x59, 0x9C, 0x05, 0xB2, 0x42, 0xE2,
      0x0F, 0x71, 0x44, 0xDB, 0x97, 0x0B, 0xD0, 0xDB, 0x44, 0x1F, 0x9A, 0x3B,
      0x18, 0x2A, 0x7B, 0xD9, 0x03, 0x83, 0x0B, 0xCF, 0x27, 0x20, 0x43, 0xA6,
      0x42, 0xED, 0x89, 0x63, 0xDB, 0x2D, 0x27, 0xC2, 0x3B, 0xE6, 0x0D, 0x3E,
      0xB6, 0x96, 0x33, 0x70, 0xA6, 0xF3, 0xF5, 0x56, 0xEA, 0xEB, 0xF1, 0xE7,
      0xD8, 0xCB, 0x04, 0x48, 0x99, 0x4C, 0x00, 0xA4, 0x2A, 0xA5, 0x8A, 0xF1,
      0x58, 0xD5, 0x17, 0x4C, 0xC5, 0x88, 0x06, 0x8F, 0xA6, 0x67, 0xA6, 0x14,
      0xC7, 0xB9, 0xE0, 0x86, 0xAC, 0x67, 0xFD, 0xB3, 0x5B, 0x3E, 0xDF, 0x03,
      0xFD, 0xC8, 0xC4, 0x4A, 0x32, 0x78, 0x6B, 0xD1, 0xC1, 0xE2, 0x36, 0x9D,
      0x0B, 0xF2, 0x54, 0x25, 0xB8, 0xB7, 0xB2, 0x10, 0x7A, 0xA6, 0x79, 0x52,
      0xC2, 0xEE, 0x98, 0xA5, 0x3D, 0xF0, 0x07, 0x8D, 0x25, 0xC3, 0xAC, 0xFD,
      0xCF, 0x83, 0x98, 0x80, 0x56, 0x95, 0xC4, 0x14, 0xA2, 0xA5, 0x93, 0xFE,
      0x24, 0x59, 0x44, 0x73, 0xDF, 0xD6, 0x47, 0xDA, 0x22, 0x3A, 0x82, 0xC5,
      0xD1, 0x59, 0x40, 0x9D, 0x0C, 0x1A, 0xB7, 0x79, 0x45, 0x9A, 0xF8, 0x6D,
      0x5A, 0x5C, 0xC2, 0x80, 0xFC, 0xAA, 0x8A, 0xA4, 0xFE, 0x68, 0x61, 0x7D,
      0xFE, 0x2C, 0x36, 0xE3, 0xE0, 0x59, 0x28, 0x40, 0x79, 0xAD, 0x2D, 0x28,
      0x12, 0x30, 0xFC, 0x56, 0x2E, 0x1D, 0xEC, 0x48, 0x3A, 0xF0, 0xC5, 0x6C,
      0x31, 0xE0, 0x2E, 0xB3, 0x91, 0x70, 0xB9, 0x9E, 0xBD, 0xE7, 0x96, 0x58,
      0xCB, 0xBC, 0x1C, 0xE4, 0xC7, 0x78, 0xC7, 0x1E, 0x39, 0xDB, 0xB8, 0x77,
      0x50, 0xB7, 0x65, 0x20, 0x04, 0x16, 0x8B, 0xFC, 0x66, 0xC4, 0x6D, 0x05,
      0x8C, 0x3C, 0xB6, 0x32, 0x2F, 0xDE, 0xC3, 0x6F, 0xFC, 0x82, 0x06, 0x02,
      0x87, 0x47, 0xFD, 0xD8, 0xDA, 0x75, 0xE0, 0x4E, 0x8C, 0x40, 0x00, 0xB2,
      0x9B, 0x35, 0x78, 0xA4, 0x61, 0x64, 0x96, 0x62, 0x37, 0xF6, 0x3E, 0x39,
      0xFA, 0x14, 0x5B, 0xC4, 0x70, 0x17, 0xDC, 0x0C, 0x9E, 0x31, 0x82, 0x2C,
      0x63, 0xCC, 0x8A, 0x43, 0x7C, 0x69, 0x12, 0x05, 0x18, 0xA3, 0x62, 0xCC,
      0xA2, 0x13, 0x96, 0x25, 0xA6, 0x1B, 0xF2, 0x10, 0xC8, 0x73, 0x4F, 0xCB,
      0x80, 0xCA, 0xAF, 0x73, 0xC9, 0x78, 0xB1, 0xAE, 0x87, 0xB8, 0xDF, 0x50,
      0xD3, 0x55, 0x1E, 0x3A, 0x81, 0xF6, 0x84, 0xD6, 0x57, 0x36, 0xCF, 0x38,
      0xB7, 0xBC, 0xBC, 0x1E, 0x48, 0x62, 0x9F, 0x0F, 0x0C, 0xE5, 0xF0, 0x63,
      0x33, 0xE6, 0x59, 0x6B, 0x1E, 0xE6, 0x1C, 0x8A, 0xF9, 0xDD, 0x6B, 0xA3,
      0xDC, 0x02, 0x4A, 0x2F, 0x8C, 0x6A, 0x8D, 0x16, 0x7E, 0x2F, 0xF1, 0x75,
      0xD5, 0x15, 0x93, 0x07, 0x27, 0xD9, 0x6F, 0x1A, 0x5D, 0x43, 0xF3, 0x47,
      0xC4, 0xED, 0xAD, 0x05, 0x9F, 0xEC, 0x8F, 0xD0, 0xBE, 0xB5, 0x58, 0xF4,
      0xF6, 0xBE, 0x08, 0x73, 0x96, 0x19, 0x05, 0x25, 0xEC, 0x3D, 0x26, 0xF4,
      0x93, 0xDB, 0x9F, 0x56, 0x48, 0x4C, 0xBC, 0xD0, 0x02, 0x59, 0xD1, 0x40,
      0x4C, 0xA6, 0x06, 0x41, 0xE8, 0x7D, 0x47, 0xAE, 0x3A, 0x9E, 0x1A, 0x71,
      0x52, 0xD4, 0x67, 0xC1, 0x14, 0x7E, 0x40, 0x6F, 0x1C, 0x75, 0x30, 0x7B,
      0x70, 0x3A, 0xE0, 0x37, 0xB7, 0x41, 0x7F, 0xCB, 0x4A, 0xBA, 0xA7, 0xCE,
      0x56, 0x54, 0xC5, 0x46, 0x65, 0x6F, 0xB4, 0xB6, 0xF0, 0x57, 0xCE, 0x2E,
      0x4F, 0xA9, 0xF0, 0x14, 0x50, 0xC3, 0x30, 0xC5, 0xBA, 0xE1, 0x5E, 0xD6,
      0xDC, 0xC5, 0x78, 0x55, 0x32, 0xAA, 0xCB, 0x29, 0x35, 0x81, 0x46, 0x5E,
      0x92, 0xE7, 0xDE, 0xCC, 0x92, 0x29, 0x86, 0xE0, 0x8F, 0x91, 0x3C, 0x74,
      0x97, 0x79, 0x63, 0x97, 0x4A, 0xCC, 0x88, 0xB5, 0xA3, 0x7A, 0xF0, 0xF0,
      0x33, 0x87, 0xCD, 0xBD};
  unsigned char b =
      Value ^ hdSurEncBasicCrypt_D2_0F_11(
                  Value, lookup[(((AddrInd * 2) + 0) * 256) + Value]);
  return (Value ^ hdSurEncBasicCrypt_D2_0F_11(
                      b, lookup[(((AddrInd * 2) + 1) * 256) + b]));
}


x86 assembly (clang, -O0):
<hdSurEncCryptLookup_D2_0F_11>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
mov    %sil,%al
mov    %dil,%cl
mov    %cl,-0x1(%rbp)
mov    %al,-0x2(%rbp)
movzbl -0x1(%rbp),%eax
mov    %eax,-0xc(%rbp)
movzbl -0x1(%rbp),%edi
movzbl -0x2(%rbp),%eax
shl    $0x1,%eax
add    $0x0,%eax
shl    $0x8,%eax
movzbl -0x1(%rbp),%ecx
add    %ecx,%eax
movslq %eax,%rcx
lea    0xeb4(%rip),%rax
movzbl (%rax,%rcx,1),%esi
mov    $0x0,%al
call   1030 <hdSurEncBasicCrypt_D2_0F_11@plt>
mov    %eax,%ecx
mov    -0xc(%rbp),%eax
xor    %ecx,%eax
mov    %al,-0x3(%rbp)
movzbl -0x1(%rbp),%eax
mov    %eax,-0x8(%rbp)
movzbl -0x3(%rbp),%edi
movzbl -0x2(%rbp),%eax
shl    $0x1,%eax
add    $0x1,%eax
shl    $0x8,%eax
movzbl -0x3(%rbp),%ecx
add    %ecx,%eax
movslq %eax,%rcx
lea    0xe77(%rip),%rax
movzbl (%rax,%rcx,1),%esi
mov    $0x0,%al
call   1030 <hdSurEncBasicCrypt_D2_0F_11@plt>
mov    %eax,%ecx
mov    -0x8(%rbp),%eax
xor    %ecx,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<hdSurEncCryptLookup_D2_0F_11>:
push   %r15
push   %r14
push   %rbx
mov    %esi,%ebx
mov    %edi,%r14d
shl    $0x9,%ebx
lea    (%rbx,%r14,1),%eax
lea    0xed8(%rip),%r15
movzbl (%rax,%r15,1),%esi
xor    %eax,%eax
call   1030 <hdSurEncBasicCrypt_D2_0F_11@plt>
xor    %r14d,%eax
movzbl %al,%edi
or     %edi,%ebx
movzbl 0x100(%rbx,%r15,1),%esi
xor    %eax,%eax
call   1030 <hdSurEncBasicCrypt_D2_0F_11@plt>
xor    %r14d,%eax
pop    %rbx
pop    %r14
pop    %r15
ret

LLVM IR (-O0):
@hdSurEncCryptLookup_D2_0F_11.lookup = internal constant [2560 x i8] c"\94\B2\A9y\C4\C7\0D6o$\11\D1\DBY\D2\A5\E1\00\D4\97\A3+\11\FA_\F1\C1D\BF\9BZ\C8\F1\E1\99\82\0E\B2\01\09\0C\C8\B3;\D1\80P\E8\F5RL\E6\82\ACX@\D4q\87R\06\EA\A6'\B7\FElIG;pl\EB\CD\C5\0B\8C1)BN\10+-F\EC9\A3\90K%`\9Cb\D4 \F6\16\A8\9C\E4 \ED\C7\BA^\B6N\03\15\A6\F6#\982\C0\AE\A3\FD\D3\7F\F8\ED\F0))\12\B3\B7X\AD\A2X,p\1B\A4%\E8\A5C\F1\B9\8F\1E;\10\DFR\FEX)\AD?\99M\DF\D2\08\06\A1\1Cf)&\80R\8AZs\E7\DF\C1\C4G\82\AB\\2\AE\96\04+\C3-Z\D2\B0d\88\97\BF~\99`\CCcvf\E9\9A=\BB\F7\7F\E4|?\B8M\10\8D*\EA<\D3\03t\E6F\C0)\AE\B0y\BE\CB\184\BEZ\E9\19\8F\A3\8F\D6jl\88\1E!\08\15\C4\E7\E6\BA\97\9CO\89\9F\1AgO\C0\D5rQ\16\B4\D3\8A\1F\E3\92\02\7FYV\8F\07\8D\C1\C2Bi<\A6\BF=\DF\0D\AAO~\80\07\11\E2\94\19\9B\16&\1AF\09\0D\B5\B8\8E\01\9C\FE\09\B3`\C2\AEP<huJW\D8O\D7\A2v,\C1\A2#\BCT*\DD\F3\DD\A74\F7\\\F4\86#H|?\05@\0E\B0\E5\EB>\DFj\83e\A0\B2\06\D1@y\0D\DE\95\84\96\87o\CEH$\13\0B\F5\C7\F5\A8\7F.\C7\E1\BA\AE+\F7\F0\8E\F7T\0B\F0\D2A\81h;\1E5\AB\D9+FW\E8S\DF\DE\10\EF\CBL\E0R\18,N\B9 \E9~\85\DFu2\E6\10\E9\9C{.L\DAF\E6\CCw6\1DJ\15\F52\18k~\AA\CC\97\CC\D1/\E5X\0355=\A0+\13:e\FF$r\CF\A7mRU\F6\C20#}\9B\9E\B0\94\02\AD`\8A\9F\BC\C8\E4+\92\96\F5\AE\04\A43\0C\90g\F0\B9\1E~\BE\02\18\B2\03\B6@\BF\05\E3v\98!8\C9_\D3Q\8BC\0B\1A\0B\F9<!l=\B8\A0W\CAh\CD\1E\D2,P\EE\C0\DF%\88R7\E1D\C6v;\91\95\86v\87I!\93D\0AR\B9-+\E3\1D\B0\E4\98\C6\EE=\96SK\FF9\00\D5B~\E1Lo\D5\B7\E6\99*[g\EE>\BA\F7\ECC*\1C\B6\B5\04&Y\B1L\17\CC\83\B9\00>6\91\90\F7^8\DC\E4\15\C7g\F0\CA\C8\D2\91]t\AC\97V6\1A\82\0A\AA\B4N\BF)\\\BFX\B3\97\F9\EB|\85\B4\A5\13/\D1\DE\1C\EC\97\DD\E29\E4\FB\0A\02\E0\C3\BA9y\AA\1C7u%T\BE\85t,\FA\0C\FAP\F6\BE\9F*S|'Fh-t+F\DA\F5\07\95\09j\91\B7\B14\07_\EA\BE\0F\87(h\97Cw\D58+\11\11O\D9u^\E1\06\A0;\AC2\FE\BFsY[\A2\A8~\10Lnx\F0JN\95\D6\DD\05z\BB\F1\EB\A8\A4]\91\F0\ED\DB\B8\01A\F8\97\7F\C3\91S\BF\E9\EA3\1F\DC\A6\E6\8D\CBu\D0i\D0\A4Y\A5\02\FC`\0Dj\A0\05\1AT\8A\A7W\A3\F0\90\8A\D5o\1E.\10\9A\93+Q,\FD\99\E5\9B]\B2\A77\99&5\CA\DD\22\19Y*\B0\99#\DF\A7\A9\85\12\CF\BF\FCt\80\87\E1\97\D0\F9\EF_\1BE\F7v\DBf9\05C\06\A9\9F.\14\9F\1C\0C\1F\D5\D9\A4\8D\18o\08S\0B\92\9A\0C\EAL\E4\1D\9E\9AQ\B8~-\E7<\FF\84\\\BF\8F\8C\89\09\1B~K\E7\85\EC\04\B5 \18\1EU\D5[\AC\C6%Z\A1\81\C11\9C\F5\B5T\07e\0A[\90\06O\84\B2\7F\D1\AD\16\81%\AF\AF\E2\03\A9\1F\13\02]T\89\CDDQ\EB\A4+\BDG\B0\B6'\1D\9B\14o\BF\CDY\BC\0A7\A8t}\16\90(\D5\94\C3\E4#\C4\98\91\CEU\BD!;\84\BDD<\F9\CD7CJ\C6\8C#\04(cz\03\85\D2F\93\CA\FE\C3\83\0B\13\CC]\CB\BA\CAh\AB\05\F7\ECJ\9C\0F\D5\C4Z\A5\A0\04Aj\F6\EF\16\9Bi8\F6-\AA\EB-\E2\82\A2\9Fo\BD*\E3fk!\DAV\AD\82+\93\F3%\EA\FC\FD\FD\1B\A9\FC\B8\C6\98E\F2p\03J\9C`\82e\B6hL\E7A\10\9DY@\03\02\07\123\AFy\E1\C4\EB\B8\CEj\90ra]V\C7Y1\CBE-B\9F\10\1D\09cY\8Cl\DB\11\CF\A1\DF_M\DF\B4\C3\82\EEX\16\B4t\FA\BE\11\9C\1E\98)\DE\E3\E5\9E\CF\D7\91\0A\A3\A4B\A1\95\09\9E\16\D5\A8$V[#\C8VL\CB\89\18i\EB\0C\1F\C0A\\c\04h\B2\0F?\886\DD#ML\C0\81\E3\E9\AD\E0'\D5\E5F\EB\FF2\A2\B7\14d\0Bm\1B\E5\D8\AE\9D\E8U\B9RpY\B8r\92i7\95a\0A\E5\F6U\97\1D\BF\F7)w\0Fr\80\B2~V\BF\FD\E9\F5\9Bb\E9\BD\0B\C2\07U1LW:\05\B9'AJ\C3\ECr \B3\0C\F9\D9:\14j\03Dj\F1AU\7F\81\C2\04\A8\05\B9I.C\C4\00\87\86\04\AC\AFsx\0E\A4C[6\A2\8F\9C\F7fJZ\09k\AAio\B1 \0DV\85\0A^\06\BF\E22\B4\\F3\0D'\A3k\E1\B2j}J\A7\81\0F+\16|Q\D6\C0=\B9\FE\B4f\C4\B6TSg\DAp\96\9A\0A\07\1A&\BA\85P\F5'S\9C:\94\0A}\DB\E1\C3\E3j>\9E\D5\13\0A\A3\D2!uy\17&\ACH_=\E1}\A4\B1V\0F\92,`\E6\CB\875\B8u\C3\A2\03PK\A2n\01\E1\DD\87\A53\C6/\A2A\FCr\98\A2iL?\F0S\F5A+#$;\CE\9D91\17\08\E1?_\FB\00\FA\F1\E3\E1{\0C\DF\8D\A2\C4\CDb=\AE\C7H\09\1Cf\CB\0E#\E8\1B\9F\1B\CB\F8\14\C34\912+9\1C\BA\1C\A0\19\F2W\9Dx\00U\1F\15\12\9A\A2\F2\C2\B7N\EAF\01\C2\E9v\BF\DE\CF\8B\C7P\80\EEF\91\93\1E\\H]\C8\C8c\D1\89\02)\E9\90\9F\0B\0A\1AD\17\E7N\ADXU\F88\F6O\D8\1C~%\9BY\16\BCe$\C5\A7V\E5 ?\D9'\E02$\E1{\E12\EA\F4\FE\D9\A5\FF5\AE\A9\1B8(j\C0\1AB\D9^\14,\C2-\9B\94[\CF\830\B9\06\AFK\D7\F68|\FF\B4\A5\1A\A0\E9\F3\01\E3\97\C4\A9W\F5\B9\96\A7\A3\B8\10\0E\FB\1D9D\16\97\94>_\AF\0F\E3\99\DC\A0\E9\8D&+\D9\AE\ECLO\09\86~{\C3\E3\C6\17\AE0\9C1\D1\84G\AF\CB\EAi*\08>\13\00\DE\F6JB\D3\BE3\D9Pk\8DY\12\1A\D3\A7|\0A\E7\87G\CA\AA3\FD\C1\F6(\C1b\A2Ly\83H\86\0E\A4g4\95\AE}\D6\EE\91\055\91\E849\A3\E5\E6\80Sv\1F\94\A0\F6\A5Ay\82\D3\B0\1F\CE\E1\86de\0C\8D\D6\FA\C1\10l\07\D5\F0we\B9\0C\BD\AE-blB~*\BE_\C1\17;\07\FF^\D71R&/\9F\12\D8.\A3\F5\B5\D2\FCn\08\1F\C8\93\A1\EB\F9\13\1D\1F\98^\B0\0Cel\AE\07x\F8\12\D2\D1\1Ew\\$b\E5\94\D6j\8E\D0rY\DAH8/1u\0CR\F0\0C\8F\\\E9^Z\94\E8\D2\80\F8O\E7\AAl\BEG\FB\DDW\0A\D8^\CC\0D\8FB^\DC]\95\95`\9Bo\05^\08E\91\E4\B8\06\B1\F2\C0\D7\E3G\B78\08\A8X\E4U\FC\E27\1F8\A2\18\9E\C2\0F\90\14 P\D1\D0\AB6\7F\AA\03\1C\E6\0A\F9\8EA\DB2\1Ch\A0\A0\EDJ\F4K\09\D0\F0\01\8B\17D\E1\EA\C5\9D;7zh\F1xF\CF\B6W\DBK\\\03\E1\9D\C07U\8D\03\FBj\00\82\19\D1\C0v\97\EE\C9\AD\0Dr\0B\E9\A8\09\92\03\A4\AA,\CF\FD\DE\86\D0\06J\AE~\C1\B8*N\9F\A3^\8C\12@t8\E7\EA\B0Q\C2\B9mJP\BFY\9C\05\B2B\E2\0FqD\DB\97\0B\D0\DBD\1F\9A;\18*{\D9\03\83\0B\CF' C\A6B\ED\89c\DB-'\C2;\E6\0D>\B6\963p\A6\F3\F5V\EA\EB\F1\E7\D8\CB\04H\99L\00\A4*\A5\8A\F1X\D5\17L\C5\88\06\8F\A6g\A6\14\C7\B9\E0\86\ACg\FD\B3[>\DF\03\FD\C8\C4J2xk\D1\C1\E26\9D\0B\F2T%\B8\B7\B2\10z\A6yR\C2\EE\98\A5=\F0\07\8D%\C3\AC\FD\CF\83\98\80V\95\C4\14\A2\A5\93\FE$YDs\DF\D6G\DA\22:\82\C5\D1Y@\9D\0C\1A\B7yE\9A\F8mZ\\\C2\80\FC\AA\8A\A4\FEha}\FE,6\E3\E0Y(@y\AD-(\120\FCV.\1D\ECH:\F0\C5l1\E0.\B3\91p\B9\9E\BD\E7\96X\CB\BC\1C\E4\C7x\C7\1E9\DB\B8wP\B7e \04\16\8B\FCf\C4m\05\8C<\B62/\DE\C3o\FC\82\06\02\87G\FD\D8\DAu\E0N\8C@\00\B2\9B5x\A4ad\96b7\F6>9\FA\14[\C4p\17\DC\0C\9E1\82,c\CC\8AC|i\12\05\18\A3b\CC\A2\13\96%\A6\1B\F2\10\C8sO\CB\80\CA\AFs\C9x\B1\AE\87\B8\DFP\D3U\1E:\81\F6\84\D6W6\CF8\B7\BC\BC\1EHb\9F\0F\0C\E5\F0c3\E6Yk\1E\E6\1C\8A\F9\DDk\A3\DC\02J/\8Cj\8D\16~/\F1u\D5\15\93\07'\D9o\1A]C\F3G\C4\ED\AD\05\9F\EC\8F\D0\BE\B5X\F4\F6\BE\08s\96\19\05%\EC=&\F4\93\DB\9FVHL\BC\D0\02Y\D1@L\A6\06A\E8}G\AE:\9E\1AqR\D4g\C1\14~@o\1Cu0{p:\E07\B7A\7F\CBJ\BA\A7\CEVT\C5Feo\B4\B6\F0W\CE.O\A9\F0\14P\C30\C5\BA\E1^\D6\DC\C5xU2\AA\CB)5\81F^\92\E7\DE\CC\92)\86\E0\8F\91<t\97yc\97J\CC\88\B5\A3z\F0\F03\87\CD\BD"
define i32 @hdSurEncCryptLookup_D2_0F_11(i8 zeroext %0, i8 zeroext %1) {
%3 = alloca i8
%4 = alloca i8
%5 = alloca i8
store i8 %0, i8* %3
store i8 %1, i8* %4
%6 = load i8, i8* %3
%7 = zext i8 %6 to i32
%8 = load i8, i8* %3
%9 = zext i8 %8 to i32
%10 = load i8, i8* %4
%11 = zext i8 %10 to i32
%12 = mul nsw i32 %11, 2
%13 = add nsw i32 %12, 0
%14 = mul nsw i32 %13, 256
%15 = load i8, i8* %3
%16 = zext i8 %15 to i32
%17 = add nsw i32 %14, %16
%18 = sext i32 %17 to i64
%19 = getelementptr inbounds [2560 x i8], [2560 x i8]* @hdSurEncCryptLookup_D2_0F_11.lookup, i64 0, i64 %18
%20 = load i8, i8* %19
%21 = zext i8 %20 to i32
%22 = call i32 (i32, i32, ...) bitcast (i32 (...)* @hdSurEncBasicCrypt_D2_0F_11 to i32 (i32, i32, ...)*)(i32 %9, i32 %21)
%23 = xor i32 %7, %22
%24 = trunc i32 %23 to i8
store i8 %24, i8* %5
%25 = load i8, i8* %3
%26 = zext i8 %25 to i32
%27 = load i8, i8* %5
%28 = zext i8 %27 to i32
%29 = load i8, i8* %4
%30 = zext i8 %29 to i32
%31 = mul nsw i32 %30, 2
%32 = add nsw i32 %31, 1
%33 = mul nsw i32 %32, 256
%34 = load i8, i8* %5
%35 = zext i8 %34 to i32
%36 = add nsw i32 %33, %35
%37 = sext i32 %36 to i64
%38 = getelementptr inbounds [2560 x i8], [2560 x i8]* @hdSurEncCryptLookup_D2_0F_11.lookup, i64 0, i64 %37
%39 = load i8, i8* %38
%40 = zext i8 %39 to i32
%41 = call i32 (i32, i32, ...) bitcast (i32 (...)* @hdSurEncBasicCrypt_D2_0F_11 to i32 (i32, i32, ...)*)(i32 %28, i32 %40)
%42 = xor i32 %26, %41
ret i32 %42
}

LLVM IR (-O2):
@hdSurEncCryptLookup_D2_0F_11.lookup = internal unnamed_addr constant [2560 x i8] c"\94\B2\A9y\C4\C7\0D6o$\11\D1\DBY\D2\A5\E1\00\D4\97\A3+\11\FA_\F1\C1D\BF\9BZ\C8\F1\E1\99\82\0E\B2\01\09\0C\C8\B3;\D1\80P\E8\F5RL\E6\82\ACX@\D4q\87R\06\EA\A6'\B7\FElIG;pl\EB\CD\C5\0B\8C1)BN\10+-F\EC9\A3\90K%`\9Cb\D4 \F6\16\A8\9C\E4 \ED\C7\BA^\B6N\03\15\A6\F6#\982\C0\AE\A3\FD\D3\7F\F8\ED\F0))\12\B3\B7X\AD\A2X,p\1B\A4%\E8\A5C\F1\B9\8F\1E;\10\DFR\FEX)\AD?\99M\DF\D2\08\06\A1\1Cf)&\80R\8AZs\E7\DF\C1\C4G\82\AB\\2\AE\96\04+\C3-Z\D2\B0d\88\97\BF~\99`\CCcvf\E9\9A=\BB\F7\7F\E4|?\B8M\10\8D*\EA<\D3\03t\E6F\C0)\AE\B0y\BE\CB\184\BEZ\E9\19\8F\A3\8F\D6jl\88\1E!\08\15\C4\E7\E6\BA\97\9CO\89\9F\1AgO\C0\D5rQ\16\B4\D3\8A\1F\E3\92\02\7FYV\8F\07\8D\C1\C2Bi<\A6\BF=\DF\0D\AAO~\80\07\11\E2\94\19\9B\16&\1AF\09\0D\B5\B8\8E\01\9C\FE\09\B3`\C2\AEP<huJW\D8O\D7\A2v,\C1\A2#\BCT*\DD\F3\DD\A74\F7\\\F4\86#H|?\05@\0E\B0\E5\EB>\DFj\83e\A0\B2\06\D1@y\0D\DE\95\84\96\87o\CEH$\13\0B\F5\C7\F5\A8\7F.\C7\E1\BA\AE+\F7\F0\8E\F7T\0B\F0\D2A\81h;\1E5\AB\D9+FW\E8S\DF\DE\10\EF\CBL\E0R\18,N\B9 \E9~\85\DFu2\E6\10\E9\9C{.L\DAF\E6\CCw6\1DJ\15\F52\18k~\AA\CC\97\CC\D1/\E5X\0355=\A0+\13:e\FF$r\CF\A7mRU\F6\C20#}\9B\9E\B0\94\02\AD`\8A\9F\BC\C8\E4+\92\96\F5\AE\04\A43\0C\90g\F0\B9\1E~\BE\02\18\B2\03\B6@\BF\05\E3v\98!8\C9_\D3Q\8BC\0B\1A\0B\F9<!l=\B8\A0W\CAh\CD\1E\D2,P\EE\C0\DF%\88R7\E1D\C6v;\91\95\86v\87I!\93D\0AR\B9-+\E3\1D\B0\E4\98\C6\EE=\96SK\FF9\00\D5B~\E1Lo\D5\B7\E6\99*[g\EE>\BA\F7\ECC*\1C\B6\B5\04&Y\B1L\17\CC\83\B9\00>6\91\90\F7^8\DC\E4\15\C7g\F0\CA\C8\D2\91]t\AC\97V6\1A\82\0A\AA\B4N\BF)\\\BFX\B3\97\F9\EB|\85\B4\A5\13/\D1\DE\1C\EC\97\DD\E29\E4\FB\0A\02\E0\C3\BA9y\AA\1C7u%T\BE\85t,\FA\0C\FAP\F6\BE\9F*S|'Fh-t+F\DA\F5\07\95\09j\91\B7\B14\07_\EA\BE\0F\87(h\97Cw\D58+\11\11O\D9u^\E1\06\A0;\AC2\FE\BFsY[\A2\A8~\10Lnx\F0JN\95\D6\DD\05z\BB\F1\EB\A8\A4]\91\F0\ED\DB\B8\01A\F8\97\7F\C3\91S\BF\E9\EA3\1F\DC\A6\E6\8D\CBu\D0i\D0\A4Y\A5\02\FC`\0Dj\A0\05\1AT\8A\A7W\A3\F0\90\8A\D5o\1E.\10\9A\93+Q,\FD\99\E5\9B]\B2\A77\99&5\CA\DD\22\19Y*\B0\99#\DF\A7\A9\85\12\CF\BF\FCt\80\87\E1\97\D0\F9\EF_\1BE\F7v\DBf9\05C\06\A9\9F.\14\9F\1C\0C\1F\D5\D9\A4\8D\18o\08S\0B\92\9A\0C\EAL\E4\1D\9E\9AQ\B8~-\E7<\FF\84\\\BF\8F\8C\89\09\1B~K\E7\85\EC\04\B5 \18\1EU\D5[\AC\C6%Z\A1\81\C11\9C\F5\B5T\07e\0A[\90\06O\84\B2\7F\D1\AD\16\81%\AF\AF\E2\03\A9\1F\13\02]T\89\CDDQ\EB\A4+\BDG\B0\B6'\1D\9B\14o\BF\CDY\BC\0A7\A8t}\16\90(\D5\94\C3\E4#\C4\98\91\CEU\BD!;\84\BDD<\F9\CD7CJ\C6\8C#\04(cz\03\85\D2F\93\CA\FE\C3\83\0B\13\CC]\CB\BA\CAh\AB\05\F7\ECJ\9C\0F\D5\C4Z\A5\A0\04Aj\F6\EF\16\9Bi8\F6-\AA\EB-\E2\82\A2\9Fo\BD*\E3fk!\DAV\AD\82+\93\F3%\EA\FC\FD\FD\1B\A9\FC\B8\C6\98E\F2p\03J\9C`\82e\B6hL\E7A\10\9DY@\03\02\07\123\AFy\E1\C4\EB\B8\CEj\90ra]V\C7Y1\CBE-B\9F\10\1D\09cY\8Cl\DB\11\CF\A1\DF_M\DF\B4\C3\82\EEX\16\B4t\FA\BE\11\9C\1E\98)\DE\E3\E5\9E\CF\D7\91\0A\A3\A4B\A1\95\09\9E\16\D5\A8$V[#\C8VL\CB\89\18i\EB\0C\1F\C0A\\c\04h\B2\0F?\886\DD#ML\C0\81\E3\E9\AD\E0'\D5\E5F\EB\FF2\A2\B7\14d\0Bm\1B\E5\D8\AE\9D\E8U\B9RpY\B8r\92i7\95a\0A\E5\F6U\97\1D\BF\F7)w\0Fr\80\B2~V\BF\FD\E9\F5\9Bb\E9\BD\0B\C2\07U1LW:\05\B9'AJ\C3\ECr \B3\0C\F9\D9:\14j\03Dj\F1AU\7F\81\C2\04\A8\05\B9I.C\C4\00\87\86\04\AC\AFsx\0E\A4C[6\A2\8F\9C\F7fJZ\09k\AAio\B1 \0DV\85\0A^\06\BF\E22\B4\\F3\0D'\A3k\E1\B2j}J\A7\81\0F+\16|Q\D6\C0=\B9\FE\B4f\C4\B6TSg\DAp\96\9A\0A\07\1A&\BA\85P\F5'S\9C:\94\0A}\DB\E1\C3\E3j>\9E\D5\13\0A\A3\D2!uy\17&\ACH_=\E1}\A4\B1V\0F\92,`\E6\CB\875\B8u\C3\A2\03PK\A2n\01\E1\DD\87\A53\C6/\A2A\FCr\98\A2iL?\F0S\F5A+#$;\CE\9D91\17\08\E1?_\FB\00\FA\F1\E3\E1{\0C\DF\8D\A2\C4\CDb=\AE\C7H\09\1Cf\CB\0E#\E8\1B\9F\1B\CB\F8\14\C34\912+9\1C\BA\1C\A0\19\F2W\9Dx\00U\1F\15\12\9A\A2\F2\C2\B7N\EAF\01\C2\E9v\BF\DE\CF\8B\C7P\80\EEF\91\93\1E\\H]\C8\C8c\D1\89\02)\E9\90\9F\0B\0A\1AD\17\E7N\ADXU\F88\F6O\D8\1C~%\9BY\16\BCe$\C5\A7V\E5 ?\D9'\E02$\E1{\E12\EA\F4\FE\D9\A5\FF5\AE\A9\1B8(j\C0\1AB\D9^\14,\C2-\9B\94[\CF\830\B9\06\AFK\D7\F68|\FF\B4\A5\1A\A0\E9\F3\01\E3\97\C4\A9W\F5\B9\96\A7\A3\B8\10\0E\FB\1D9D\16\97\94>_\AF\0F\E3\99\DC\A0\E9\8D&+\D9\AE\ECLO\09\86~{\C3\E3\C6\17\AE0\9C1\D1\84G\AF\CB\EAi*\08>\13\00\DE\F6JB\D3\BE3\D9Pk\8DY\12\1A\D3\A7|\0A\E7\87G\CA\AA3\FD\C1\F6(\C1b\A2Ly\83H\86\0E\A4g4\95\AE}\D6\EE\91\055\91\E849\A3\E5\E6\80Sv\1F\94\A0\F6\A5Ay\82\D3\B0\1F\CE\E1\86de\0C\8D\D6\FA\C1\10l\07\D5\F0we\B9\0C\BD\AE-blB~*\BE_\C1\17;\07\FF^\D71R&/\9F\12\D8.\A3\F5\B5\D2\FCn\08\1F\C8\93\A1\EB\F9\13\1D\1F\98^\B0\0Cel\AE\07x\F8\12\D2\D1\1Ew\\$b\E5\94\D6j\8E\D0rY\DAH8/1u\0CR\F0\0C\8F\\\E9^Z\94\E8\D2\80\F8O\E7\AAl\BEG\FB\DDW\0A\D8^\CC\0D\8FB^\DC]\95\95`\9Bo\05^\08E\91\E4\B8\06\B1\F2\C0\D7\E3G\B78\08\A8X\E4U\FC\E27\1F8\A2\18\9E\C2\0F\90\14 P\D1\D0\AB6\7F\AA\03\1C\E6\0A\F9\8EA\DB2\1Ch\A0\A0\EDJ\F4K\09\D0\F0\01\8B\17D\E1\EA\C5\9D;7zh\F1xF\CF\B6W\DBK\\\03\E1\9D\C07U\8D\03\FBj\00\82\19\D1\C0v\97\EE\C9\AD\0Dr\0B\E9\A8\09\92\03\A4\AA,\CF\FD\DE\86\D0\06J\AE~\C1\B8*N\9F\A3^\8C\12@t8\E7\EA\B0Q\C2\B9mJP\BFY\9C\05\B2B\E2\0FqD\DB\97\0B\D0\DBD\1F\9A;\18*{\D9\03\83\0B\CF' C\A6B\ED\89c\DB-'\C2;\E6\0D>\B6\963p\A6\F3\F5V\EA\EB\F1\E7\D8\CB\04H\99L\00\A4*\A5\8A\F1X\D5\17L\C5\88\06\8F\A6g\A6\14\C7\B9\E0\86\ACg\FD\B3[>\DF\03\FD\C8\C4J2xk\D1\C1\E26\9D\0B\F2T%\B8\B7\B2\10z\A6yR\C2\EE\98\A5=\F0\07\8D%\C3\AC\FD\CF\83\98\80V\95\C4\14\A2\A5\93\FE$YDs\DF\D6G\DA\22:\82\C5\D1Y@\9D\0C\1A\B7yE\9A\F8mZ\\\C2\80\FC\AA\8A\A4\FEha}\FE,6\E3\E0Y(@y\AD-(\120\FCV.\1D\ECH:\F0\C5l1\E0.\B3\91p\B9\9E\BD\E7\96X\CB\BC\1C\E4\C7x\C7\1E9\DB\B8wP\B7e \04\16\8B\FCf\C4m\05\8C<\B62/\DE\C3o\FC\82\06\02\87G\FD\D8\DAu\E0N\8C@\00\B2\9B5x\A4ad\96b7\F6>9\FA\14[\C4p\17\DC\0C\9E1\82,c\CC\8AC|i\12\05\18\A3b\CC\A2\13\96%\A6\1B\F2\10\C8sO\CB\80\CA\AFs\C9x\B1\AE\87\B8\DFP\D3U\1E:\81\F6\84\D6W6\CF8\B7\BC\BC\1EHb\9F\0F\0C\E5\F0c3\E6Yk\1E\E6\1C\8A\F9\DDk\A3\DC\02J/\8Cj\8D\16~/\F1u\D5\15\93\07'\D9o\1A]C\F3G\C4\ED\AD\05\9F\EC\8F\D0\BE\B5X\F4\F6\BE\08s\96\19\05%\EC=&\F4\93\DB\9FVHL\BC\D0\02Y\D1@L\A6\06A\E8}G\AE:\9E\1AqR\D4g\C1\14~@o\1Cu0{p:\E07\B7A\7F\CBJ\BA\A7\CEVT\C5Feo\B4\B6\F0W\CE.O\A9\F0\14P\C30\C5\BA\E1^\D6\DC\C5xU2\AA\CB)5\81F^\92\E7\DE\CC\92)\86\E0\8F\91<t\97yc\97J\CC\88\B5\A3z\F0\F03\87\CD\BD"
define i32 @hdSurEncCryptLookup_D2_0F_11(i8 zeroext %0, i8 zeroext %1) {
%3 = zext i8 %0 to i32
%4 = zext i8 %1 to i32
%5 = shl nuw nsw i32 %4, 9
%6 = or i32 %5, %3
%7 = zext i32 %6 to i64
%8 = getelementptr inbounds [2560 x i8], [2560 x i8]* @hdSurEncCryptLookup_D2_0F_11.lookup, i64 0, i64 %7
%9 = load i8, i8* %8
%10 = zext i8 %9 to i32
%11 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @hdSurEncBasicCrypt_D2_0F_11 to i32 (i32, i32, ...)*)(i32 %3, i32 %10)
%12 = trunc i32 %11 to i8
%13 = xor i8 %12, %0
%14 = zext i8 %13 to i32
%15 = or i32 %5, %14
%16 = or i32 %15, 256
%17 = zext i32 %16 to i64
%18 = getelementptr inbounds [2560 x i8], [2560 x i8]* @hdSurEncCryptLookup_D2_0F_11.lookup, i64 0, i64 %17
%19 = load i8, i8* %18
%20 = zext i8 %19 to i32
%21 = tail call i32 (i32, i32, ...) bitcast (i32 (...)* @hdSurEncBasicCrypt_D2_0F_11 to i32 (i32, i32, ...)*)(i32 %14, i32 %20)
%22 = xor i32 %21, %3
ret i32 %22
}