How well can you read
Visual Basic? I can't paste all of the code here, nor am I willing to explain it all here, but if you were to privately contact me, I'd be glad to go over virtually everything with you.
[code]' Copyright (C) 2005 Eric Evans (RVictim87@GMail.com)
Option Explicit
Private m_War2KeyTable(255) As Byte
Private m_War3KeyTable(255) As Byte
Private m_War3TranslateTable(479) As Byte
Private blnWar2KeyTable As Boolean
Private blnWar3KeyTable As Boolean
Private blnWar3TranslateTable As Boolean
Private Sub InitWar2KeyTable()
m_War2KeyTable(0) = &HFF
m_War2KeyTable(1) = &HFF
m_War2KeyTable(2) = &HFF
m_War2KeyTable(3) = &HFF
m_War2KeyTable(4) = &HFF
m_War2KeyTable(5) = &HFF
m_War2KeyTable(6) = &HFF
m_War2KeyTable(7) = &HFF
m_War2KeyTable(
= &HFF
m_War2KeyTable(9) = &HFF
m_War2KeyTable(10) = &HFF
m_War2KeyTable(11) = &HFF
m_War2KeyTable(12) = &HFF
m_War2KeyTable(13) = &HFF
m_War2KeyTable(14) = &HFF
m_War2KeyTable(15) = &HFF
m_War2KeyTable(16) = &HFF
m_War2KeyTable(17) = &HFF
m_War2KeyTable(18) = &HFF
m_War2KeyTable(19) = &HFF
m_War2KeyTable(20) = &HFF
m_War2KeyTable(21) = &HFF
m_War2KeyTable(22) = &HFF
m_War2KeyTable(23) = &HFF
m_War2KeyTable(24) = &HFF
m_War2KeyTable(25) = &HFF
m_War2KeyTable(26) = &HFF
m_War2KeyTable(27) = &HFF
m_War2KeyTable(28) = &HFF
m_War2KeyTable(29) = &HFF
m_War2KeyTable(30) = &HFF
m_War2KeyTable(31) = &HFF
m_War2KeyTable(32) = &HFF
m_War2KeyTable(33) = &HFF
m_War2KeyTable(34) = &HFF
m_War2KeyTable(35) = &HFF
m_War2KeyTable(36) = &HFF
m_War2KeyTable(37) = &HFF
m_War2KeyTable(38) = &HFF
m_War2KeyTable(39) = &HFF
m_War2KeyTable(40) = &HFF
m_War2KeyTable(41) = &HFF
m_War2KeyTable(42) = &HFF
m_War2KeyTable(43) = &HFF
m_War2KeyTable(44) = &HFF
m_War2KeyTable(45) = &HFF
m_War2KeyTable(46) = &HFF
m_War2KeyTable(47) = &HFF
m_War2KeyTable(48) = &HFF
m_War2KeyTable(49) = &HFF
m_War2KeyTable(50) = &H0
m_War2KeyTable(51) = &HFF
m_War2KeyTable(52) = &H1
m_War2KeyTable(53) = &HFF
m_War2KeyTable(54) = &H2
m_War2KeyTable(55) = &H3
m_War2KeyTable(56) = &H4
m_War2KeyTable(57) = &H5
m_War2KeyTable(58) = &HFF
m_War2KeyTable(59) = &HFF
m_War2KeyTable(60) = &HFF
m_War2KeyTable(61) = &HFF
m_War2KeyTable(62) = &HFF
m_War2KeyTable(63) = &HFF
m_War2KeyTable(64) = &HFF
m_War2KeyTable(65) = &HFF
m_War2KeyTable(66) = &H6
m_War2KeyTable(67) = &H7
m_War2KeyTable(68) = &H8
m_War2KeyTable(69) = &H9
m_War2KeyTable(70) = &HA
m_War2KeyTable(71) = &HB
m_War2KeyTable(72) = &HC
m_War2KeyTable(73) = &HFF
m_War2KeyTable(74) = &HD
m_War2KeyTable(75) = &HE
m_War2KeyTable(76) = &HFF
m_War2KeyTable(77) = &HF
m_War2KeyTable(78) = &H10
m_War2KeyTable(79) = &HFF
m_War2KeyTable(80) = &H11
m_War2KeyTable(81) = &HFF
m_War2KeyTable(82) = &H12
m_War2KeyTable(83) = &HFF
m_War2KeyTable(84) = &H13
m_War2KeyTable(85) = &HFF
m_War2KeyTable(86) = &H14
m_War2KeyTable(87) = &H15
m_War2KeyTable(88) = &H16
m_War2KeyTable(89) = &HFF
m_War2KeyTable(90) = &H17
m_War2KeyTable(91) = &HFF
m_War2KeyTable(92) = &HFF
m_War2KeyTable(93) = &HFF
m_War2KeyTable(94) = &HFF
m_War2KeyTable(95) = &HFF
m_War2KeyTable(96) = &HFF
m_War2KeyTable(97) = &HFF
m_War2KeyTable(98) = &H6
m_War2KeyTable(99) = &H7
m_War2KeyTable(100) = &H8
m_War2KeyTable(101) = &H9
m_War2KeyTable(102) = &HA
m_War2KeyTable(103) = &HB
m_War2KeyTable(104) = &HC
m_War2KeyTable(105) = &HFF
m_War2KeyTable(106) = &HD
m_War2KeyTable(107) = &HE
m_War2KeyTable(108) = &HFF
m_War2KeyTable(109) = &HF
m_War2KeyTable(110) = &H10
m_War2KeyTable(111) = &HFF
m_War2KeyTable(112) = &H11
m_War2KeyTable(113) = &HFF
m_War2KeyTable(114) = &H12
m_War2KeyTable(115) = &HFF
m_War2KeyTable(116) = &H13
m_War2KeyTable(117) = &HFF
m_War2KeyTable(118) = &H14
m_War2KeyTable(119) = &H15
m_War2KeyTable(120) = &H16
m_War2KeyTable(121) = &HFF
m_War2KeyTable(122) = &H17
m_War2KeyTable(123) = &HFF
m_War2KeyTable(124) = &HFF
m_War2KeyTable(125) = &HFF
m_War2KeyTable(126) = &HFF
m_War2KeyTable(127) = &HFF
m_War2KeyTable(128) = &HFF
m_War2KeyTable(129) = &HFF
m_War2KeyTable(130) = &HFF
m_War2KeyTable(131) = &HFF
m_War2KeyTable(132) = &HFF
m_War2KeyTable(133) = &HFF
m_War2KeyTable(134) = &HFF
m_War2KeyTable(135) = &HFF
m_War2KeyTable(136) = &HFF
m_War2KeyTable(137) = &HFF
m_War2KeyTable(138) = &HFF
m_War2KeyTable(139) = &HFF
m_War2KeyTable(140) = &HFF
m_War2KeyTable(141) = &HFF
m_War2KeyTable(142) = &HFF
m_War2KeyTable(143) = &HFF
m_War2KeyTable(144) = &HFF
m_War2KeyTable(145) = &HFF
m_War2KeyTable(146) = &HFF
m_War2KeyTable(147) = &HFF
m_War2KeyTable(148) = &HFF
m_War2KeyTable(149) = &HFF
m_War2KeyTable(150) = &HFF
m_War2KeyTable(151) = &HFF
m_War2KeyTable(152) = &HFF
m_War2KeyTable(153) = &HFF
m_War2KeyTable(154) = &HFF
m_War2KeyTable(155) = &HFF
m_War2KeyTable(156) = &HFF
m_War2KeyTable(157) = &HFF
m_War2KeyTable(158) = &HFF
m_War2KeyTable(159) = &HFF
m_War2KeyTable(160) = &HFF
m_War2KeyTable(161) = &HFF
m_War2KeyTable(162) = &HFF
m_War2KeyTable(163) = &HFF
m_War2KeyTable(164) = &HFF
m_War2KeyTable(165) = &HFF
m_War2KeyTable(166) = &HFF
m_War2KeyTable(167) = &HFF
m_War2KeyTable(168) = &HFF
m_War2KeyTable(169) = &HFF
m_War2KeyTable(170) = &HFF
m_War2KeyTable(171) = &HFF
m_War2KeyTable(172) = &HFF
m_War2KeyTable(173) = &HFF
m_War2KeyTable(174) = &HFF
m_War2KeyTable(175) = &HFF
m_War2KeyTable(176) = &HFF
m_War2KeyTable(177) = &HFF
m_War2KeyTable(178) = &HFF
m_War2KeyTable(179) = &HFF
m_War2KeyTable(180) = &HFF
m_War2KeyTable(181) = &HFF
m_War2KeyTable(182) = &HFF
m_War2KeyTable(183) = &HFF
m_War2KeyTable(184) = &HFF
m_War2KeyTable(185) = &HFF
m_War2KeyTable(186) = &HFF
m_War2KeyTable(187) = &HFF
m_War2KeyTable(188) = &HFF
m_War2KeyTable(189) = &HFF
m_War2KeyTable(190) = &HFF
m_War2KeyTable(191) = &HFF
m_War2KeyTable(192) = &HFF
m_War2KeyTable(193) = &HFF
m_War2KeyTable(194) = &HFF
m_War2KeyTable(195) = &HFF
m_War2KeyTable(196) = &HFF
m_War2KeyTable(197) = &HFF
m_War2KeyTable(198) = &HFF
m_War2KeyTable(199) = &HFF
m_War2KeyTable(200) = &HFF
m_War2KeyTable(201) = &HFF
m_War2KeyTable(202) = &HFF
m_War2KeyTable(203) = &HFF
m_War2KeyTable(204) = &HFF
m_War2KeyTable(205) = &HFF
m_War2KeyTable(206) = &HFF
m_War2KeyTable(207) = &HFF
m_War2KeyTable(208) = &HFF
m_War2KeyTable(209) = &HFF
m_War2KeyTable(210) = &HFF
m_War2KeyTable(211) = &HFF
m_War2KeyTable(212) = &HFF
m_War2KeyTable(213) = &HFF
m_War2KeyTable(214) = &HFF
m_War2KeyTable(215) = &HFF
m_War2KeyTable(216) = &HFF
m_War2KeyTable(217) = &HFF
m_War2KeyTable(218) = &HFF
m_War2KeyTable(219) = &HFF
m_War2KeyTable(220) = &HFF
m_War2KeyTable(221) = &HFF
m_War2KeyTable(222) = &HFF
m_War2KeyTable(223) = &HFF
m_War2KeyTable(224) = &HFF
m_War2KeyTable(225) = &HFF
m_War2KeyTable(226) = &HFF
m_War2KeyTable(227) = &HFF
m_War2KeyTable(228) = &HFF
m_War2KeyTable(229) = &HFF
m_War2KeyTable(230) = &HFF
m_War2KeyTable(231) = &HFF
m_War2KeyTable(232) = &HFF
m_War2KeyTable(233) = &HFF
m_War2KeyTable(234) = &HFF
m_War2KeyTable(235) = &HFF
m_War2KeyTable(236) = &HFF
m_War2KeyTable(237) = &HFF
m_War2KeyTable(238) = &HFF
m_War2KeyTable(239) = &HFF
m_War2KeyTable(240) = &HFF
m_War2KeyTable(241) = &HFF
m_War2KeyTable(242) = &HFF
m_War2KeyTable(243) = &HFF
m_War2KeyTable(244) = &HFF
m_War2KeyTable(245) = &HFF
m_War2KeyTable(246) = &HFF
m_War2KeyTable(247) = &HFF
m_War2KeyTable(248) = &HFF
m_War2KeyTable(249) = &HFF
m_War2KeyTable(250) = &HFF
m_War2KeyTable(251) = &HFF
m_War2KeyTable(252) = &HFF
m_War2KeyTable(253) = &HFF
m_War2KeyTable(254) = &HFF
m_War2KeyTable(255) = &HFF
blnWar2KeyTable = True
End Sub
Private Sub InitWar3KeyTable()
m_War3KeyTable(0) = &HFF
m_War3KeyTable(1) = &HFF
m_War3KeyTable(2) = &HFF
m_War3KeyTable(3) = &HFF
m_War3KeyTable(4) = &HFF
m_War3KeyTable(5) = &HFF
m_War3KeyTable(6) = &HFF
m_War3KeyTable(7) = &HFF
m_War3KeyTable(
= &HFF
m_War3KeyTable(9) = &HFF
m_War3KeyTable(10) = &HFF
m_War3KeyTable(11) = &HFF
m_War3KeyTable(12) = &HFF
m_War3KeyTable(13) = &HFF
m_War3KeyTable(14) = &HFF
m_War3KeyTable(15) = &HFF
m_War3KeyTable(16) = &HFF
m_War3KeyTable(17) = &HFF
m_War3KeyTable(18) = &HFF
m_War3KeyTable(19) = &HFF
m_War3KeyTable(20) = &HFF
m_War3KeyTable(21) = &HFF
m_War3KeyTable(22) = &HFF
m_War3KeyTable(23) = &HFF
m_War3KeyTable(24) = &HFF
m_War3KeyTable(25) = &HFF
m_War3KeyTable(26) = &HFF
m_War3KeyTable(27) = &HFF
m_War3KeyTable(28) = &HFF
m_War3KeyTable(29) = &HFF
m_War3KeyTable(30) = &HFF
m_War3KeyTable(31) = &HFF
m_War3KeyTable(32) = &HFF
m_War3KeyTable(33) = &HFF
m_War3KeyTable(34) = &HFF
m_War3KeyTable(35) = &HFF
m_War3KeyTable(36) = &HFF
m_War3KeyTable(37) = &HFF
m_War3KeyTable(38) = &HFF
m_War3KeyTable(39) = &HFF
m_War3KeyTable(40) = &HFF
m_War3KeyTable(41) = &HFF
m_War3KeyTable(42) = &HFF
m_War3KeyTable(43) = &HFF
m_War3KeyTable(44) = &HFF
m_War3KeyTable(45) = &HFF
m_War3KeyTable(46) = &HFF
m_War3KeyTable(47) = &HFF
m_War3KeyTable(48) = &HFF
m_War3KeyTable(49) = &HFF
m_War3KeyTable(50) = &H0
m_War3KeyTable(51) = &HFF
m_War3KeyTable(52) = &H1
m_War3KeyTable(53) = &HFF
m_War3KeyTable(54) = &H2
m_War3KeyTable(55) = &H3
m_War3KeyTable(56) = &H4
m_War3KeyTable(57) = &H5
m_War3KeyTable(58) = &HFF
m_War3KeyTable(59) = &HFF
m_War3KeyTable(60) = &HFF
m_War3KeyTable(61) = &HFF
m_War3KeyTable(62) = &HFF
m_War3KeyTable(63) = &HFF
m_War3KeyTable(64) = &HFF
m_War3KeyTable(65) = &HFF
m_War3KeyTable(66) = &H6
m_War3KeyTable(67) = &H7
m_War3KeyTable(68) = &H8
m_War3KeyTable(69) = &H9
m_War3KeyTable(70) = &HA
m_War3KeyTable(71) = &HB
m_War3KeyTable(72) = &HC
m_War3KeyTable(73) = &HFF
m_War3KeyTable(74) = &HD
m_War3KeyTable(75) = &HE
m_War3KeyTable(76) = &HFF
m_War3KeyTable(77) = &HF
m_War3KeyTable(78) = &H10
m_War3KeyTable(79) = &HFF
m_War3KeyTable(80) = &H11
m_War3KeyTable(81) = &HFF
m_War3KeyTable(82) = &H12
m_War3KeyTable(83) = &HFF
m_War3KeyTable(84) = &H13
m_War3KeyTable(85) = &HFF
m_War3KeyTable(86) = &H14
m_War3KeyTable(87) = &H15
m_War3KeyTable(88) = &H16
m_War3KeyTable(89) = &H17
m_War3KeyTable(90) = &H18
m_War3KeyTable(91) = &HFF
m_War3KeyTable(92) = &HFF
m_War3KeyTable(93) = &HFF
m_War3KeyTable(94) = &HFF
m_War3KeyTable(95) = &HFF
m_War3KeyTable(96) = &HFF
m_War3KeyTable(97) = &HFF
m_War3KeyTable(98) = &H6
m_War3KeyTable(99) = &H7
m_War3KeyTable(100) = &H8
m_War3KeyTable(101) = &H9
m_War3KeyTable(102) = &HA
m_War3KeyTable(103) = &HB
m_War3KeyTable(104) = &HC
m_War3KeyTable(105) = &HFF
m_War3KeyTable(106) = &HD
m_War3KeyTable(107) = &HE
m_War3KeyTable(108) = &HFF
m_War3KeyTable(109) = &HF
m_War3KeyTable(110) = &H10
m_War3KeyTable(111) = &HFF
m_War3KeyTable(112) = &H11
m_War3KeyTable(113) = &HFF
m_War3KeyTable(114) = &H12
m_War3KeyTable(115) = &HFF
m_War3KeyTable(116) = &H13
m_War3KeyTable(117) = &HFF
m_War3KeyTable(118) = &H14
m_War3KeyTable(119) = &H15
m_War3KeyTable(120) = &H16
m_War3KeyTable(121) = &H17
m_War3KeyTable(122) = &H18
m_War3KeyTable(123) = &HFF
m_War3KeyTable(124) = &HFF
m_War3KeyTable(125) = &HFF
m_War3KeyTable(126) = &HFF
m_War3KeyTable(127) = &HFF
m_War3KeyTable(128) = &HFF
m_War3KeyTable(129) = &HFF
m_War3KeyTable(130) = &HFF
m_War3KeyTable(131) = &HFF
m_War3KeyTable(132) = &HFF
m_War3KeyTable(133) = &HFF
m_War3KeyTable(134) = &HFF
m_War3KeyTable(135) = &HFF
m_War3KeyTable(136) = &HFF
m_War3KeyTable(137) = &HFF
m_War3KeyTable(138) = &HFF
m_War3KeyTable(139) = &HFF
m_War3KeyTable(140) = &HFF
m_War3KeyTable(141) = &HFF
m_War3KeyTable(142) = &HFF
m_War3KeyTable(143) = &HFF
m_War3KeyTable(144) = &HFF
m_War3KeyTable(145) = &HFF
m_War3KeyTable(146) = &HFF
m_War3KeyTable(147) = &HFF
m_War3KeyTable(148) = &HFF
m_War3KeyTable(149) = &HFF
m_War3KeyTable(150) = &HFF
m_War3KeyTable(151) = &HFF
m_War3KeyTable(152) = &HFF
m_War3KeyTable(153) = &HFF
m_War3KeyTable(154) = &HFF
m_War3KeyTable(155) = &HFF
m_War3KeyTable(156) = &HFF
m_War3KeyTable(157) = &HFF
m_War3KeyTable(158) = &HFF
m_War3KeyTable(159) = &HFF
m_War3KeyTable(160) = &HFF
m_War3KeyTable(161) = &HFF
m_War3KeyTable(162) = &HFF
m_War3KeyTable(163) = &HFF
m_War3KeyTable(164) = &HFF
m_War3KeyTable(165) = &HFF
m_War3KeyTable(166) = &HFF
m_War3KeyTable(167) = &HFF
m_War3KeyTable(168) = &HFF
m_War3KeyTable(169) = &HFF
m_War3KeyTable(170) = &HFF
m_War3KeyTable(171) = &HFF
m_War3KeyTable(172) = &HFF
m_War3KeyTable(173) = &HFF
m_War3KeyTable(174) = &HFF
m_War3KeyTable(175) = &HFF
m_War3KeyTable(176) = &HFF
m_War3KeyTable(177) = &HFF
m_War3KeyTable(178) = &HFF
m_War3KeyTable(179) = &HFF
m_War3KeyTable(180) = &HFF
m_War3KeyTable(181) = &HFF
m_War3KeyTable(182) = &HFF
m_War3KeyTable(183) = &HFF
m_War3KeyTable(184) = &HFF
m_War3KeyTable(185) = &HFF
m_War3KeyTable(186) = &HFF
m_War3KeyTable(187) = &HFF
m_War3KeyTable(188) = &HFF
m_War3KeyTable(189) = &HFF
m_War3KeyTable(190) = &HFF
m_War3KeyTable(191) = &HFF
m_War3KeyTable(192) = &HFF
m_War3KeyTable(193) = &HFF
m_War3KeyTable(194) = &HFF
m_War3KeyTable(195) = &HFF
m_War3KeyTable(196) = &HFF
m_War3KeyTable(197) = &HFF
m_War3KeyTable(198) = &HFF
m_War3KeyTable(199) = &HFF
m_War3KeyTable(200) = &HFF
m_War3KeyTable(201) = &HFF
m_War3KeyTable(202) = &HFF
m_War3KeyTable(203) = &HFF
m_War3KeyTable(204) = &HFF
m_War3KeyTable(205) = &HFF
m_War3KeyTable(206) = &HFF
m_War3KeyTable(207) = &HFF
m_War3KeyTable(208) = &HFF
m_War3KeyTable(209) = &HFF
m_War3KeyTable(210) = &HFF
m_War3KeyTable(211) = &HFF
m_War3KeyTable(212) = &HFF
m_War3KeyTable(213) = &HFF
m_War3KeyTable(214) = &HFF
m_War3KeyTable(215) = &HFF
m_War3KeyTable(216) = &HFF
m_War3KeyTable(217) = &HFF
m_War3KeyTable(218) = &HFF
m_War3KeyTable(219) = &HFF
m_War3KeyTable(220) = &HFF
m_War3KeyTable(221) = &HFF
m_War3KeyTable(222) = &HFF
m_War3KeyTable(223) = &HFF
m_War3KeyTable(224) = &HFF
m_War3KeyTable(225) = &HFF
m_War3KeyTable(226) = &HFF
m_War3KeyTable(227) = &HFF
m_War3KeyTable(228) = &HFF
m_War3KeyTable(229) = &HFF
m_War3KeyTable(230) = &HFF
m_War3KeyTable(231) = &HFF
m_War3KeyTable(232) = &HFF
m_War3KeyTable(233) = &HFF
m_War3KeyTable(234) = &HFF
m_War3KeyTable(235) = &HFF
m_War3KeyTable(236) = &HFF
m_War3KeyTable(237) = &HFF
m_War3KeyTable(238) = &HFF
m_War3KeyTable(239) = &HFF
m_War3KeyTable(240) = &HFF
m_War3KeyTable(241) = &HFF
m_War3KeyTable(242) = &HFF
m_War3KeyTable(243) = &HFF
m_War3KeyTable(244) = &HFF
m_War3KeyTable(245) = &HFF
m_War3KeyTable(246) = &HFF
m_War3KeyTable(247) = &HFF
m_War3KeyTable(248) = &HFF
m_War3KeyTable(249) = &HFF
m_War3KeyTable(250) = &HFF
m_War3KeyTable(251) = &HFF
m_War3KeyTable(252) = &H20
m_War3KeyTable(253) = &H39
m_War3KeyTable(254) = &H43
m_War3KeyTable(255) = &H0
blnWar3KeyTable = True
End Sub
Private Sub InitWar3TranslateTable()
m_War3TranslateTable(0) = &H9
m_War3TranslateTable(1) = &H4
m_War3TranslateTable(2) = &H7
m_War3TranslateTable(3) = &HF
m_War3TranslateTable(4) = &HD
m_War3TranslateTable(5) = &HA
m_War3TranslateTable(6) = &H3
m_War3TranslateTable(7) = &HB
m_War3TranslateTable(
= &H1
m_War3TranslateTable(9) = &H2
m_War3TranslateTable(10) = &HC
m_War3TranslateTable(11) = &H8
m_War3TranslateTable(12) = &H6
m_War3TranslateTable(13) = &HE
m_War3TranslateTable(14) = &H5
m_War3TranslateTable(15) = &H0
m_War3TranslateTable(16) = &H9
m_War3TranslateTable(17) = &HB
m_War3TranslateTable(18) = &H5
m_War3TranslateTable(19) = &H4
m_War3TranslateTable(20) = &H8
m_War3TranslateTable(21) = &HF
m_War3TranslateTable(22) = &H1
m_War3TranslateTable(23) = &HE
m_War3TranslateTable(24) = &H7
m_War3TranslateTable(25) = &H0
m_War3TranslateTable(26) = &H3
m_War3TranslateTable(27) = &H2
m_War3TranslateTable(28) = &HA
m_War3TranslateTable(29) = &H6
m_War3TranslateTable(30) = &HD
m_War3TranslateTable(31) = &HC
m_War3TranslateTable(32) = &HC
m_War3TranslateTable(33) = &HE
m_War3TranslateTable(34) = &H1
m_War3TranslateTable(35) = &H4
m_War3TranslateTable(36) = &H9
m_War3TranslateTable(37) = &HF
m_War3TranslateTable(38) = &HA
m_War3TranslateTable(39) = &HB
m_War3TranslateTable(40) = &HD
m_War3TranslateTable(41) = &H6
m_War3TranslateTable(42) = &H0
m_War3TranslateTable(43) = &H8
m_War3TranslateTable(44) = &H7
m_War3TranslateTable(45) = &H2
m_War3TranslateTable(46) = &H5
m_War3TranslateTable(47) = &H3
m_War3TranslateTable(48) = &HB
m_War3TranslateTable(49) = &H2
m_War3TranslateTable(50) = &H5
m_War3TranslateTable(51) = &HE
m_War3TranslateTable(52) = &HD
m_War3TranslateTable(53) = &H3
m_War3TranslateTable(54) = &H9
m_War3TranslateTable(55) = &H0
m_War3TranslateTable(56) = &H1
m_War3TranslateTable(57) = &HF
m_War3TranslateTable(58) = &H7
m_War3TranslateTable(59) = &HC
m_War3TranslateTable(60) = &HA
m_War3TranslateTable(61) = &H6
m_War3TranslateTable(62) = &H4
m_War3TranslateTable(63) = &H8
m_War3TranslateTable(64) = &H6
m_War3TranslateTable(65) = &H2
m_War3TranslateTable(66) = &H4
m_War3TranslateTable(67) = &H5
m_War3TranslateTable(68) = &HB
m_War3TranslateTable(69) = &H8
m_War3TranslateTable(70) = &HC
m_War3TranslateTable(71) = &HE
m_War3TranslateTable(72) = &HD
m_War3TranslateTable(73) = &HF
m_War3TranslateTable(74) = &H7
m_War3TranslateTable(75) = &H1
m_War3TranslateTable(76) = &HA
m_War3TranslateTable(77) = &H0
m_War3TranslateTable(78) = &H3
m_War3TranslateTable(79) = &H9
m_War3TranslateTable(80) = &H5
m_War3TranslateTable(81) = &H4
m_War3TranslateTable(82) = &HE
m_War3TranslateTable(83) = &HC
m_War3TranslateTable(84) = &H7
m_War3TranslateTable(85) = &H6
m_War3TranslateTable(86) = &HD
m_War3TranslateTable(87) = &HA
m_War3TranslateTable(88) = &HF
m_War3TranslateTable(89) = &H2
m_War3TranslateTable(90) = &H9
m_War3TranslateTable(91) = &H1
m_War3TranslateTable(92) = &H0
m_War3TranslateTable(93) = &HB
m_War3TranslateTable(94) = &H8
m_War3TranslateTable(95) = &H3
m_War3TranslateTable(96) = &HC
m_War3TranslateTable(97) = &H7
m_War3TranslateTable(98) = &H8
m_War3TranslateTable(99) = &HF
m_War3TranslateTable(100) = &HB
m_War3TranslateTable(101) = &H0
m_War3TranslateTable(102) = &H5
m_War3TranslateTable(103) = &H9
m_War3TranslateTable(104) = &HD
m_War3TranslateTable(105) = &HA
m_War3TranslateTable(106) = &H6
m_War3TranslateTable(107) = &HE
m_War3TranslateTable(108) = &H2
m_War3TranslateTable(109) = &H4
m_War3TranslateTable(110) = &H3
m_War3TranslateTable(111) = &H1
m_War3TranslateTable(112) = &H3
m_War3TranslateTable(113) = &HA
m_War3TranslateTable(114) = &HE
m_War3TranslateTable(115) = &H8
m_War3TranslateTable(116) = &H1
m_War3TranslateTable(117) = &HB
m_War3TranslateTable(118) = &H5
m_War3TranslateTable(119) = &H4
m_War3TranslateTable(120) = &H2
m_War3TranslateTable(121) = &HF
m_War3TranslateTable(122) = &HD
m_War3TranslateTable(123) = &HC
m_War3TranslateTable(124) = &H6
m_War3TranslateTable(125) = &H7
m_War3TranslateTable(126) = &H9
m_War3TranslateTable(127) = &H0
m_War3TranslateTable(128) = &HC
m_War3TranslateTable(129) = &HD
m_War3TranslateTable(130) = &H1
m_War3TranslateTable(131) = &HF
m_War3TranslateTable(132) = &H8
m_War3TranslateTable(133) = &HE
m_War3TranslateTable(134) = &H5
m_War3TranslateTable(135) = &HB
m_War3TranslateTable(136) = &H3
m_War3TranslateTable(137) = &HA
m_War3TranslateTable(138) = &H9
m_War3TranslateTable(139) = &H0
m_War3TranslateTable(140) = &H7
m_War3TranslateTable(141) = &H2
m_War3TranslateTable(142) = &H4
m_War3TranslateTable(143) = &H6
m_War3TranslateTable(144) = &HD
m_War3TranslateTable(145) = &HA
m_War3TranslateTable(146) = &H7
m_War3TranslateTable(147) = &HE
m_War3TranslateTable(148) = &H1
m_War3TranslateTable(149) = &H6
m_War3TranslateTable(150) = &HB
m_War3TranslateTable(151) = &H8
m_War3TranslateTable(152) = &HF
m_War3TranslateTable(153) = &HC
m_War3TranslateTable(154) = &H5
m_War3TranslateTable(155) = &H2
m_War3TranslateTable(156) = &H3
m_War3TranslateTable(157) = &H0
m_War3TranslateTable(158) = &H4
m_War3TranslateTable(159) = &H9
m_War3TranslateTable(160) = &H3
m_War3TranslateTable(161) = &HE
m_War3TranslateTable(162) = &H7
m_War3TranslateTable(163) = &H5
m_War3TranslateTable(164) = &HB
m_War3TranslateTable(165) = &HF
m_War3TranslateTable(166) = &H8
m_War3TranslateTable(167) = &HC
m_War3TranslateTable(168) = &H1
m_War3TranslateTable(169) = &HA
m_War3TranslateTable(170) = &H4
m_War3TranslateTable(171) = &HD
m_War3TranslateTable(172) = &H0
m_War3TranslateTable(173) = &H6
m_War3TranslateTable(174) = &H9
m_War3TranslateTable(175) = &H2
m_War3TranslateTable(176) = &HB
m_War3TranslateTable(177) = &H6
m_War3TranslateTable(178) = &H9
m_War3TranslateTable(179) = &H4
m_War3TranslateTable(180) = &H1
m_War3TranslateTable(181) = &H8
m_War3TranslateTable(182) = &HA
m_War3TranslateTable(183) = &HD
m_War3TranslateTable(184) = &H7
m_War3TranslateTable(185) = &HE
m_War3TranslateTable(186) = &H0
m_War3TranslateTable(187) = &HC
m_War3TranslateTable(188) = &HF
m_War3TranslateTable(189) = &H2
m_War3TranslateTable(190) = &H3
m_War3TranslateTable(191) = &H5
m_War3TranslateTable(192) = &HC
m_War3TranslateTable(193) = &H7
m_War3TranslateTable(194) = &H8
m_War3TranslateTable(195) = &HD
m_War3TranslateTable(196) = &H3
m_War3TranslateTable(197) = &HB
m_War3TranslateTable(198) = &H0
m_War3TranslateTable(199) = &HE
m_War3TranslateTable(200) = &H6
m_War3TranslateTable(201) = &HF
m_War3TranslateTable(202) = &H9
m_War3TranslateTable(203) = &H4
m_War3TranslateTable(204) = &HA
m_War3TranslateTable(205) = &H1
m_War3TranslateTable(206) = &H5
m_War3TranslateTable(207) = &H2
m_War3TranslateTable(208) = &HC
m_War3TranslateTable(209) = &H6
m_War3TranslateTable(210) = &HD
m_War3TranslateTable(211) = &H9
m_War3TranslateTable(212) = &HB
m_War3TranslateTable(213) = &H0
m_War3TranslateTable(214) = &H1
m_War3TranslateTable(215) = &H2
m_War3TranslateTable(216) = &HF
m_War3TranslateTable(217) = &H7
m_War3TranslateTable(218) = &H3
m_War3TranslateTable(219) = &H4
m_War3TranslateTable(220) = &HA
m_War3TranslateTable(221) = &HE
m_War3TranslateTable(222) = &H8
m_War3TranslateTable(223) = &H5
m_War3TranslateTable(224) = &H3
m_War3TranslateTable(225) = &H6
m_War3TranslateTable(226) = &H1
m_War3TranslateTable(227) = &H5
m_War3TranslateTable(228) = &HB
m_War3TranslateTable(229) = &HC
m_War3TranslateTable(230) = &H8
m_War3TranslateTable(231) = &H0
m_War3TranslateTable(232) = &HF
m_War3TranslateTable(233) = &HE
m_War3TranslateTable(234) = &H9
m_War3TranslateTable(235) = &H4
m_War3TranslateTable(236) = &H7
m_War3TranslateTable(237) = &HA
m_War3TranslateTable(238) = &HD
m_War3TranslateTable(239) = &H2
m_War3TranslateTable(240) = &HA
m_War3TranslateTable(241) = &H7
m_War3TranslateTable(242) = &HB
m_War3TranslateTable(243) = &HF
m_War3TranslateTable(244) = &H2
m_War3TranslateTable(245) = &H8
m_War3TranslateTable(246) = &H0
m_War3TranslateTable(247) = &HD
m_War3TranslateTable(248) = &HE
m_War3TranslateTable(249) = &HC
m_War3TranslateTable(250) = &H1
m_War3TranslateTable(251) = &H6
m_War3TranslateTable(252) = &H9
m_War3TranslateTable(253) = &H3
m_War3TranslateTable(254) = &H5
m_War3TranslateTable(255) = &H4
m_War3TranslateTable(256) = &HA
m_War3TranslateTable(257) = &HB
m_War3TranslateTable(258) = &HD
m_War3TranslateTable(259) = &H4
m_War3TranslateTable(260) = &H3
m_War3TranslateTable(261) = &H8
m_War3TranslateTable(262) = &H5
m_War3TranslateTable(263) = &H9
m_War3TranslateTable(264) = &H1
m_War3TranslateTable(265) = &H0
m_War3TranslateTable(266) = &HF
m_War3TranslateTable(267) = &HC
m_War3TranslateTable(268) = &H7
m_War3TranslateTable(269) = &HE
m_War3TranslateTable(270) = &H2
m_War3TranslateTable(271) = &H6
m_War3TranslateTable(272) = &HB
m_War3TranslateTable(273) = &H4
m_War3TranslateTable(274) = &HD
m_War3TranslateTable(275) = &HF
m_War3TranslateTable(276) = &H1
m_War3TranslateTable(277) = &H6
m_War3TranslateTable(278) = &H3
m_War3TranslateTable(279) = &HE
m_War3TranslateTable(280) = &H7
m_War3TranslateTable(281) = &HA
m_War3TranslateTable(282) = &HC
m_War3TranslateTable(283) = &H8
m_War3TranslateTable(284) = &H9
m_War3TranslateTable(285) = &H2
m_War3TranslateTable(286) = &H5
m_War3TranslateTable(287) = &H0
m_War3TranslateTable(288) = &H9
m_War3TranslateTable(289) = &H6
m_War3TranslateTable(290) = &H7
m_War3TranslateTable(291) = &H0
m_War3TranslateTable(292) = &H1
m_War3TranslateTable(293) = &HA
m_War3TranslateTable(294) = &HD
m_War3TranslateTable(295) = &H2
m_War3TranslateTable(296) = &H3
m_War3TranslateTable(297) = &HE
m_War3TranslateTable(298) = &HF
m_War3TranslateTable(299) = &HC
m_War3TranslateTable(300) = &H5
m_War3TranslateTable(301) = &HB
m_War3TranslateTable(302) = &H4
m_War3TranslateTable(303) = &H8
m_War3TranslateTable(304) = &HD
m_War3TranslateTable(305) = &HE
m_War3TranslateTable(306) = &H5
m_War3TranslateTable(307) = &H6
m_War3TranslateTable(308) = &H1
m_War3TranslateTable(309) = &H9
m_War3TranslateTable(310) = &H8
m_War3TranslateTable(311) = &HC
m_War3TranslateTable(312) = &H2
m_War3TranslateTable(313) = &HF
m_War3TranslateTable(314) = &H3
m_War3TranslateTable(315) = &H7
m_War3TranslateTable(316) = &HB
m_War3TranslateTable(317) = &H4
m_War3TranslateTable(318) = &H0
m_War3TranslateTable(319) = &HA
m_War3TranslateTable(320) = &H9
m_War3TranslateTable(321) = &HF
m_War3TranslateTable(322) = &H4
m_War3TranslateTable(323) = &H0
m_War3TranslateTable(324) = &H1
m_War3TranslateTable(325) = &H6
m_War3TranslateTable(326) = &HA
m_War3TranslateTable(327) = &HE
m_War3TranslateTable(328) = &H2
m_War3TranslateTable(329) = &H3
m_War3TranslateTable(330) = &H7
m_War3TranslateTable(331) = &HD
m_War3TranslateTable(332) = &H5
m_War3TranslateTable(333) = &HB
m_War3TranslateTable(334) = &H8
m_War3TranslateTable(335) = &HC
m_War3TranslateTable(336) = &H3
m_War3TranslateTable(337) = &HE
m_War3TranslateTable(338) = &H1
m_War3TranslateTable(339) = &HA
m_War3TranslateTable(340) = &H2
m_War3TranslateTable(341) = &HC
m_War3TranslateTable(342) = &H8
m_War3TranslateTable(343) = &H4
m_War3TranslateTable(344) = &HB
m_War3TranslateTable(345) = &H7
m_War3TranslateTable(346) = &HD
m_War3TranslateTable(347) = &H0
m_War3TranslateTable(348) = &HF
m_War3TranslateTable(349) = &H6
m_War3TranslateTable(350) = &H9
m_War3TranslateTable(351) = &H5
m_War3TranslateTable(352) = &H7
m_War3TranslateTable(353) = &H2
m_War3TranslateTable(354) = &HC
m_War3TranslateTable(355) = &H6
m_War3TranslateTable(356) = &HA
m_War3TranslateTable(357) = &H8
m_War3TranslateTable(358) = &HB
m_War3TranslateTable(359) = &H0
m_War3TranslateTable(360) = &HF
m_War3TranslateTable(361) = &H4
m_War3TranslateTable(362) = &H3
m_War3TranslateTable(363) = &HE
m_War3TranslateTable(364) = &H9
m_War3TranslateTable(365) = &H1
m_War3TranslateTable(366) = &HD
m_War3TranslateTable(367) = &H5
m_War3TranslateTable(368) = &HC
m_War3TranslateTable(369) = &H4
m_War3TranslateTable(370) = &H5
m_War3TranslateTable(371) = &H9
m_War3TranslateTable(372) = &HA
m_War3TranslateTable(373) = &H2
m_War3TranslateTable(374) = &H8
m_War3TranslateTable(375) = &HD
m_War3TranslateTable(376) = &H3
m_War3TranslateTable(377) = &HF
m_War3TranslateTable(378) = &H1
m_War3TranslateTable(379) = &HE
m_War3TranslateTable(380) = &H6
m_War3TranslateTable(381) = &H7
m_War3TranslateTable(382) = &HB
m_War3TranslateTable(383) = &H0
m_War3TranslateTable(384) = &HA
m_War3TranslateTable(385) = &H8
m_War3TranslateTable(386) = &HE
m_War3TranslateTable(387) = &HD
m_War3TranslateTable(388) = &H9
m_War3TranslateTable(389) = &HF
m_War3TranslateTable(390) = &H3
m_War3TranslateTable(391) = &H0
m_War3TranslateTable(392) = &H4
m_War3TranslateTable(393) = &H6
m_War3TranslateTable(394) = &H1
m_War3TranslateTable(395) = &HC
m_War3TranslateTable(396) = &H7
m_War3TranslateTable(397) = &HB
m_War3TranslateTable(398) = &H2
m_War3TranslateTable(399) = &H5
m_War3TranslateTable(400) = &H3
m_War3TranslateTable(401) = &HC
m_War3TranslateTable(402) = &H4
m_War3TranslateTable(403) = &HA
m_War3TranslateTable(404) = &H2
m_War3TranslateTable(405) = &HF
m_War3TranslateTable(406) = &HD
m_War3TranslateTable(407) = &HE
m_War3TranslateTable(408) = &H7
m_War3TranslateTable(409) = &H0
m_War3TranslateTable(410) = &H5
m_War3TranslateTable(411) = &H8
m_War3TranslateTable(412) = &H1
m_War3TranslateTable(413) = &H6
m_War3TranslateTable(414) = &HB
m_War3TranslateTable(415) = &H9
m_War3TranslateTable(416) = &HA
m_War3TranslateTable(417) = &HC
m_War3TranslateTable(418) = &H1
m_War3TranslateTable(419) = &H0
m_War3TranslateTable(420) = &H9
m_War3TranslateTable(421) = &HE
m_War3TranslateTable(422) = &HD
m_War3TranslateTable(423) = &HB
m_War3TranslateTable(424) = &H3
m_War3TranslateTable(425) = &H7
m_War3TranslateTable(426) = &HF
m_War3TranslateTable(427) = &H8
m_War3TranslateTable(428) = &H5
m_War3TranslateTable(429) = &H2
m_War3TranslateTable(430) = &H4
m_War3TranslateTable(431) = &H6
m_War3TranslateTable(432) = &HE
m_War3TranslateTable(433) = &HA
m_War3TranslateTable(434) = &H1
m_War3TranslateTable(435) = &H8
m_War3TranslateTable(436) = &H7
m_War3TranslateTable(437) = &H6
m_War3TranslateTable(438) = &H5
m_War3TranslateTable(439) = &HC
m_War3TranslateTable(440) = &H2
m_War3TranslateTable(441) = &HF
m_War3TranslateTable(442) = &H0
m_War3TranslateTable(443) = &HD
m_War3TranslateTable(444) = &H3
m_War3TranslateTable(445) = &HB
m_War3TranslateTable(446) = &H4
m_War3TranslateTable(447) = &H9
m_War3TranslateTable(448) = &H3
m_War3TranslateTable(449) = &H8
m_War3TranslateTable(450) = &HE
m_War3TranslateTable(451) = &H0
m_War3TranslateTable(452) = &H7
m_War3TranslateTable(453) = &H9
m_War3TranslateTable(454) = &HF
m_War3TranslateTable(455) = &HC
m_War3TranslateTable(456) = &H1
m_War3TranslateTable(457) = &H6
m_War3TranslateTable(458) = &HD
m_War3TranslateTable(459) = &H2
m_War3TranslateTable(460) = &H5
m_War3TranslateTable(461) = &HA
m_War3TranslateTable(462) = &HB
m_War3TranslateTable(463) = &H4
m_War3TranslateTable(464) = &H3
m_War3TranslateTable(465) = &HA
m_War3TranslateTable(466) = &HC
m_War3TranslateTable(467) = &H4
m_War3TranslateTable(468) = &HD
m_War3TranslateTable(469) = &HB
m_War3TranslateTable(470) = &H9
m_War3TranslateTable(471) = &HE
m_War3TranslateTable(472) = &HF
m_War3TranslateTable(473) = &H6
m_War3TranslateTable(474) = &H1
m_War3TranslateTable(475) = &H7
m_War3TranslateTable(476) = &H2
m_War3TranslateTable(477) = &H0
m_War3TranslateTable(478) = &H5
m_War3TranslateTable(479) = &H8
blnWar3TranslateTable = True
End Sub
' WARNING: Before attempting to decode a CD-Key, make sure that the CD-Key contains no dashes or spaces
Public Function RunCDKeyDecode(ByVal strKey As String, ByRef lngGmeID As Long, ByRef lngPubVal As Long, ByRef lngPrivVal As Long) As Long
strKey = UCase$(strKey)
Select Case Len(strKey)
Case 13: RunCDKeyDecode = DecodeStarCraftKey(strKey, lngGmeID, lngPubVal, lngPrivVal, True)
Case 16: RunCDKeyDecode = DecodeWarCraft2Key(strKey, lngGmeID, lngPubVal, lngPrivVal, True)
Case 26: RunCDKeyDecode = DecodeWarCraft3Key(strKey, lngGmeID, lngPubVal, lngPrivVal, True)
Case Else: Exit Function
End Select
End Function
Private Function DecodeStarCraftKey(ByVal strKey As String, ByRef lngGmeID As Long, ByRef lngPubVal As Long, ByRef lngPrivVal As Long, ByVal blnVerifyKey As Boolean) As Long
Dim arrKey(0 To 12) As String
Dim i As Integer
Dim eax As Long
Dim ebx As Long
Dim ecx As Long
Dim edx As Long
Dim edi As Long
Dim esi As Long
Dim al As Byte
Dim bl As Byte
Dim cl As Byte
Dim dl As Byte
' Check CD-Key length
If (Len(strKey) <> 13) Then
Exit Function
End If
' Store CD-Key in array
For i = 0 To 12
arrKey(i) = Mid$(strKey, (i + 1), 1)
Next i
' CD-Key verification
If (blnVerifyKey = True) Then
eax = 3
For ecx = 0 To 11 Step 1
edx = arrKey(ecx)
If ((Asc(edx) < Asc("0")) Or _
(Asc(edx) > Asc("9"))) Then
Exit Function
End If
edx = (Asc(edx) - Asc("0"))
' esi = (eax + eax)
' Optimization:
esi = modGlobals.LShift(eax, 1)
edx = (edx Xor esi)
eax = (eax + edx)
Next ecx
eax = ((eax Mod &HA) + Asc("0"))
If (eax <> Asc(arrKey(12))) Then
Exit Function
End If
End If
' CD-Key shuffling
esi = 11
ecx = &HC2
Do:
eax = ecx
edx = (eax Mod &HC)
bl = arrKey(esi)
dl = arrKey(edx)
arrKey(esi) = dl
arrKey(edx) = bl
' Decrease loop counters
ecx = (ecx - &H11)
esi = (esi - 1)
Loop Until (ecx < &H7)
edx = &H13AC9741
ecx = 11
Do:
al = arrKey(ecx)
If (Asc(al) > Asc("7")) Then
dl = ((ecx And 1) Xor al)
arrKey(ecx) = dl
ElseIf (Asc(al) < Asc("A")) Then
dl = (edx And &HFF)
dl = ((dl And 7) Xor al)
edx = modGlobals.RShift(edx, 3)
arrKey(ecx) = dl
End If
ecx = (ecx - 1)
Loop Until (ecx < 0)
strKey = Join(arrKey(), vbNullString)
lngGmeID = Val(Left$(strKey, 2))
lngPubVal = Val(Mid$(strKey, 3, 7))
lngPrivVal = Val(Mid$(strKey, 10, 3))
DecodeStarCraftKey = 1
Erase arrKey()
End Function
Private Function DecodeWarCraft2Key(ByVal strKey As String, ByRef lngGmeID As Long, ByRef lngPubVal As Long, ByRef lngPrivVal As Long, ByVal blnVerifyKey As Boolean) As Long
Dim arrKey(0 To 15) As String
Dim lngChecksum As Long
Dim i As Integer
Dim eax As Long
Dim ebx As Long
Dim ecx As Long
Dim edx As Long
Dim edi As Long
Dim esi As Long
Dim al As Byte
Dim bl As Byte
Dim cl As Byte
Dim dl As Byte
' Initialize key table
If (blnWar2KeyTable = False) Then
Call InitWar2KeyTable
End If
' Check CD-Key length
If (Len(strKey) <> 16) Then
Exit Function
End If
' Store CD-Key in array
For i = 0 To 15
arrKey(i) = Mid$(strKey, (i + 1), 1)
Next i
ebx = 1
Do:
eax = m_War2KeyTable(Asc(arrKey(ecx)))
' esi = (eax + (eax * 2))
' Optimization:
esi = (eax + modGlobals.LShift(eax, 1))
eax = m_War2KeyTable(Asc(arrKey(ecx + 1)))
' esi = (eax + (esi *
)
' Optimization:
esi = (eax + modGlobals.LShift(esi, 3))
If (esi >= 256) Then
esi = (esi - 256)
lngChecksum = (lngChecksum Or ebx)
End If
eax = modGlobals.RShift(esi, 4)
arrKey(ecx) = GetHexVal(eax)
arrKey(ecx + 1) = GetHexVal(esi)
ebx = modGlobals.LShift(ebx, 1)
' Increase loop counter
ecx = (ecx + 2)
Loop Until (ecx = 16)
ecx = 0
If (blnVerifyKey = True) Then
eax = 3
Do:
edx = GetNumVal(arrKey(ecx))
' esi = (eax + eax)
' Optimization:
esi = modGlobals.LShift(eax, 1)
edx = (edx Xor esi)
eax = (eax + edx)
ecx = (ecx + 1)
Loop Until (ecx = 16)
eax = (eax And &HFF)
If (eax <> lngChecksum) Then
Exit Function
End If
End If
' Shuffle
edi = (7 - 16)
esi = 15
Do:
dl = Asc(arrKey(esi))
ecx = ((esi + edi) And &HF)
bl = Asc(arrKey(ecx))
arrKey(esi) = Chr$(bl)
arrKey(ecx) = Chr$(dl)
esi = (esi - 1)
Loop Until (esi < 0)
ecx = &H13AC9741
ebx = 15
Do:
al = Asc(UCase$(arrKey(ebx)))
If (al <= Asc("7")) Then
dl = (ecx And &HFF)
dl = ((dl And 7) Xor al)
ecx = modGlobals.RShift(ecx, 3)
arrKey(ebx) = Chr$(dl)
ElseIf (al < Asc("A")) Then
dl = ((ebx And 1) Xor al)
arrKey(ebx) = Chr$(dl)
End If
ebx = (ebx - 1)
Loop Until (ebx < 0)
strKey = Join(arrKey(), vbNullString)
lngGmeID = Val(Left$(strKey, 2))
lngPubVal = Val("&H" & Mid$(strKey, 3, 6))
lngPrivVal = Val("&H" & Mid$(strKey, 9))
DecodeWarCraft2Key = 1
Erase arrKey()
End Function
' To do:<