function AdminDrawProcess() OnlyDrawer OnlyDrawProcess {
                uint StepCount = drawCheckStep;
                if (games[CurrentGameId].checkedTickets < games[CurrentGameId].ticketsCount) {
                        for (uint a = games[CurrentGameId].checkedTickets; a <= games[CurrentGameId].ticketsCount; a++) {
                                if (StepCount == 0) {
                                        break;
                                }
                                for (uint b = 0; b < 5; b++) {
                                        for (uint c = 0; c < 5; c++) {
                                                if (uint8(uint40(games[CurrentGameId].tickets[a].numbers) / (256 ** b)) == games[CurrentGameId].winningNumbers[c]) {
                                                        games[CurrentGameId].tickets[a].hits += 1;
                                                }
                                        }
                                }
                                games[CurrentGameId].checkedTickets += 1;
                                StepCount -= 1;
                        }
                }
                if (games[CurrentGameId].checkedTickets >= games[CurrentGameId].ticketsCount) {
                        
                        for (a = 0; a < games[CurrentGameId].ticketsCount; a++) {
                                if (games[CurrentGameId].tickets[a].hits == 3) {
                                        games[CurrentGameId].hits[3].count += 1;
                                } else if (games[CurrentGameId].tickets[a].hits == 4) {
                                        games[CurrentGameId].hits[4].count += 1;
                                } else if (games[CurrentGameId].tickets[a].hits == 5) {
                                        games[CurrentGameId].hits[5].count += 1;
                                }
                        }
                        if (games[CurrentGameId].hits[3].count > 0) {
                                games[CurrentGameId].hits[3].prize = games[CurrentGameId].prizePot * hit3p / 100 / games[CurrentGameId].hits[3].count;
                        }
                        if (games[CurrentGameId].hits[4].count > 0) {
                                games[CurrentGameId].hits[4].prize = games[CurrentGameId].prizePot * hit4p / 100 / games[CurrentGameId].hits[4].count;
                        }
                        if (games[CurrentGameId].hits[5].count > 0) {
                                games[CurrentGameId].hits[5].prize = games[CurrentGameId].jackpot / games[CurrentGameId].hits[5].count;
                        }
                        uint NextJackpot;
                        if (games[CurrentGameId].hits[5].count == 0) {
                                NextJackpot = games[CurrentGameId].prizePot * hit5p / 100 + games[CurrentGameId].jackpot;
                        } else {
                                NextJackpot = defaultJackpot;
                        }
                        games[CurrentGameId].drawStatus = drawStatus_.Done;
                        CreateNewDraw(NextJackpot, games[CurrentGameId].nextHashOfSecretKey);
                }
        }