Announcement

Collapse

Forum Guidelines

This forum is for finished source code that is working properly. If you have questions about this or any other source code, please post it in one of the Discussion Forums, not here.
See more
See less

License Quantity Shareware code

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • License Quantity Shareware code

    So rather than go with a time limited I came up with this idea based on licenses since a lot of the software I make is now working with 50 or moreservers/computers at a time.

    If I want my filepush to push out to say, 200 servers I will have to purchase 200 licenses (at $5.00 a pop you can make some mon ey on it.).

    THe LoadKey function is a piece of code written from another piece of code that took random space noise to seed the randomizing code that generated it - it is fairly extensive - and it's just an idea for you to play with.

    Unfortunately you'll have to reverse engineer how to read the licenses by your application, should be easy en ough.
    I took my license reading capaiblity out when my company gave me a payraise (I wrote this at home on MY company time)..

    Code:
    #Compile Exe
    #Dim All
    #Include "Win32api.inc"
    #Include "COMMCTRL.INC"
    '#Resource "resource\filepush.pbr"
    
    %PROGRAM = 1024
    
    %INTEXTBOX      = %WM_USER + 200
    %OUTTEXTBOX     = %WM_USER + 201
    %GENERATE       = %WM_USER + 202
    %EXIT           = %WM_USER + 203
    
    %IDLABELUSER    = %WM_USER + 204
    %IDTEXTUSER     = %WM_USER + 205
    %IDLABELCOMPANY = %WM_USER + 206
    %IDTEXTCOMPANY  = %WM_USER + 207
    %IDLABELCOMP    = %WM_USER + 208
    %IDTEXTCOMP     = %WM_USER + 209
    %IDLABELPROD    = %WM_USER + 210
    %IDTEXTPROD     = %WM_USER + 211
    
    %IDCOPYTOCLIP   = %WM_USER + 212
    
    %IDLABELLICENSE = %WM_USER + 213
    %IDTEXTLICENSE  = %WM_USER + 214
    
    Global g_hIcon  As Long
    Global g_szCCS  As String
    
    
    Declare CallBack Function DialogProc() As Long
    Declare Function CopyToClipboard(sText As String) As Long
    Declare Function CrunchLicenseInfo(ByVal sInput As String) As String
    
    Declare Function CvtNvtByte(ByVal x As Long) As Long
    Declare Function Base64Dec Alias "Base64Dec"(ByVal lpStringIn As Dword, _
                       ByVal lpStringOut As Dword, ByVal OutBuffSiz As Dword) As Long
    Declare Function Base64Enc Alias "Base64Enc"(ByVal lpStringIn As Dword, _
                       ByVal lpStringOut As Dword, ByVal InLen As Dword, _
                       ByVal OutBuffSiz As Dword)  As Long
    Declare Function EnDeCrypt Alias "EnDeCrypt"(InString As Asciiz, Passwd As Asciiz, _
                       OutString As Asciiz, ByVal nLen As Dword)  As Long
    
    Declare Function NCryptString Alias "NCryptString" (StringIn As String, Pw As String) As String
    Declare Function LoadKey Lib "CCS.DLL"(KeyNum As Long) As String
    
    '============================================<WINMAIN>==================================================================
    Function WinMain (ByVal hInstance     As Long, _
                      ByVal hPrevInstance As Long, _
                      ByVal lpCmdLine     As Asciiz Ptr, _
                      ByVal iCmdShow      As Long) As Long
    
    
    Local szClassName   As Asciiz * 16
    Local windclass     As WndClassEx
    Local hDlg          As Long
    
    g_szCCS     = "Computer Creations Software"
    
    LoadIcon(hInstance, ByVal %PROGRAM)
    
    windclass.cbSize        = SizeOf(windclass)
    windclass.style         = %CS_HREDRAW Or %CS_VREDRAW
    windclass.lpfnWndProc   = CodePtr( DialogProc )
    windclass.cbClsExtra    = 0
    windclass.cbWndExtra    = 0
    windclass.hInstance     = hInstance
    windclass.hIcon         = g_hIcon
    windclass.hCursor       = LoadCursor( %NULL, ByVal %IDC_ARROW )
    windclass.hbrBackground = GetStockObject( %HOLLOW_BRUSH )
    windclass.lpszMenuName  = %NULL
    windclass.lpszClassName = VarPtr( szClassName )
    windclass.hIconSm       = g_hIcon
    RegisterClassEx windclass
    
    %DIALOG_WIDTH  = 250
    %DIALOG_HEIGHT = 230
    %LABEL_WIDTH = 230
    %PROGRESS_WIDTH = 250
    
    Dialog New 0, "License Generator for " & g_szCCS,,, %DIALOG_WIDTH,%DIALOG_HEIGHT,%WS_MINIMIZEBOX Or %WS_CAPTION Or %WS_SYSMENU To hDlg
    
    Control Add Label, hDlg,-1,"Paste license info:",5,5,100,10
    Control Add TextBox, hDlg,%INTEXTBOX,"",5,15,220,12
    
    Control Add Label, hDlg,%IDLABELUSER,"Username:",5,35,35,10
    Control Add TextBox, hDlg,%IDTEXTUSER,"",5,45,220,12
    
    Control Add Label, hDlg,%IDLABELCOMPANY,"Company:",5,60,35,10
    Control Add TextBox, hDlg,%IDTEXTCOMPANY,"",5,70,220,12
    
    Control Add Label, hDlg,%IDLABELCOMP,"Computer Name:",5,85,100,10
    Control Add TextBox, hDlg,%IDTEXTCOMP,"",5,95,220,12
    
    Control Add Label, hDlg,%IDLABELPROD,"Product:",5,110,100,10
    Control Add TextBox, hDlg,%IDTEXTPROD,"",5,120,220,12
    
    Control Add Label, hDlg,%IDLABELLICENSE,"Licenses Requested: ",5,135,100,10
    Control Add TextBox, hDlg,%IDTEXTLICENSE,"",5,145,220,12
    
    
    Control Add Label, hDlg,-1,"Out to customer:",5,160,100,10
    Control Add TextBox, hDlg,%OUTTEXTBOX,"",5,170,220,35
    
    
    Control Add Button, hDlg,%IDCOPYTOCLIP,"&Copy to clipboard",5,210,70,14
    Control Add Button, hDlg,%GENERATE,"&Generate",80,210,70,14
    Control Add Button, hDlg,%EXIT,"E&xit",155,210,70,14
    Dialog Show Modal hDlg Call DialogProc
    
    End Function
    
    '------------------------------------------------------------------------------------------
    CallBack Function DialogProc() As Long
    Local lResult       As Long
    Local sTmp          As String
    Local zTmp          As Asciiz * 128
    Local OutBuff       As Asciiz * 128
    Static LicenseInfo   As String
    Local wKey          As String
    Local wRegProd      As String
    Local wRegUser      As String
    Local wRegComp      As String
    Local wRegCompany   As String
    Local wRegLicense   As String
    
    Static hTest As Long
    
    'My gen # is
    'INPUT:
    
    'OUTPUT:
    
    Select Case CbMsg
        Case %WM_SIZE
        Case %WM_INITDIALOG
            Control Handle CbHndl, %INTEXTBOX To hTest
    '        Call SAutoComplete(ByVal hTest, ByVal %FALSE)
    
        Case %WM_COMMAND
          Select Case LoWrd(CbWParam)
              Case %IDCOPYTOCLIP
                  Call CopyToClipboard(LicenseInfo)
    
              Case %EXIT
                  Dialog End CbHndl,%TRUE
    
              Case %GENERATE
                  Control Get Text CbHndl,%INTEXTBOX To LicenseInfo
                  LicenseInfo = Trim$(LicenseInfo)
                  wKey = LoadKey(Val(Left$(LicenseInfo,3)))
                  LicenseInfo = Right$(LicenseInfo,Len(Licenseinfo) - 3)
                  zTmp = LicenseInfo
                  lResult = Base64Dec(ByVal VarPtr(zTmp), ByVal VarPtr(OutBuff), ByVal SizeOf(zTmp))
                  LicenseInfo = Trim$(OutBuff)
                  LicenseInfo = NCryptString(LicenseInfo,wKey)
                  wRegProd = Parse$(LicenseInfo,"|",1)
                  wRegComp = Parse$(LicenseInfo,"|",2)
                  wRegUser = Parse$(LicenseInfo,"|",3)
                  wRegCompany = Parse$(LicenseInfo,"|",4)
                  wRegLicense = Parse$(LicenseInfo,"|",-1)
                  Control Set Text CbHndl,%IDTEXTUSER,wRegUser
                  Control Set Text CbHndl,%IDTEXTCOMPANY,wRegCompany
                  Control Set Text CbHndl,%IDTEXTCOMP,wRegComp
                  Control Set Text CbHndl,%IDTEXTPROD,wRegProd
                  Control Set Text CbHndl,%IDTEXTLICENSE,wRegLicense
                  LicenseInfo = wRegComp & "|" & wRegLicense'Computer name|LicenseNumbers
                  LicenseInfo = CrunchLicenseInfo(LicenseInfo)
                  Control Set Text CbHndl,%OUTTEXTBOX, LicenseInfo
    
                  'basically At this point we just gave them what they gave me, so now regen With different key Or ???
          End Select
    End Select
    End Function
    
    '--------------------------------------------------------------
    Function CrunchLicenseInfo(ByVal sInput As String) As String
    Local wKey          As String
    Local wKeyNum       As Long
    Local zTmp          As Asciiz * 128
    Local OutBuff       As Asciiz * 128
    Local lResult       As Long
    Local zLen          As Long
    
    wKeyNum = Val(Mid$(Time$,5,1) & Mid$(Time$,7,2))
    wKey = loadkey(wKeyNum) 'Load a new Key
    sInput = NCryptString(sInput,wKey)
    zTmp = sInput
    zLen = Len(zTmp)
    lResult = Base64Enc(ByVal VarPtr(zTmp),ByVal VarPtr(OutBuff), ByVal zLen, ByVal SizeOf(OutBuff))
    Function = Format$(wKeyNum) & OutBuff
    End Function
    '------------------------------------------------------------------------------------------
    Function CopyToClipboard(sText As String) As Long
    Local lpMem As Asciiz Ptr
    Local hMem  As Dword
    
    ' Allocate global memory block
    hMem  = GlobalAlloc(%GHND, Len(sText) + 1)
    ' lock it and get pointer to memory location
    lpMem = GlobalLock(hMem)
    ' copy text into memory object
    @lpMem = sText
    ' unlock the memory object
    GlobalUnlock hMem
    ' add text to the clipboard
    OpenClipboard 0
    EmptyClipboard
    SetClipboardData %CF_TEXT, hMem
    CloseClipboard
    GlobalFree hMem
    End Function
    '--------------------------------------------------------------
    '------------------------------------------------------------------------------------------
    '======================================================================================================================
    
    ' ---------------------------------------------------------
    '  Local Function Called by Base64Dec
    ' ---------------------------------------------------------
    Function CvtNvtByte(ByVal x As Long) As Long
    
       Local rtn As Long
    
       ! push eax              ; save eax since we alter it
       ! push ebx              ; save ebx since we alter it
    
       ! mov eax, x            ; get byte into eax
       ! and eax, 255          ; clear other bytes
       ! cmp eax, 64           ; see if its an upper case letter
       ! jle CvtNvtCheck47     ; if not check to see if its = 43
       ! cmp eax, 91           ; can't be bigger than 90
       ! jge CvtNvtCheck96     ; otherwize not what we thought
       ! sub eax, 65           ; subtract 65 from the original
       ! mov rtn, eax          ; return that value to caller
       ! jmp CvtNvtDone        ; leave the function
    
       CvtNvtCheck96:
       ! cmp eax, 96           ; looking for lower case letters
       ! jle CvtNvtRtn63       ; return 63
       ! cmp eax, 123          ; see if we're less then 123
       ! jge CvtNvtRtn63       ; return 63
       ! sub eax, 71           ; subtract 71 and
       ! mov rtn, eax          ; return it to the caller
       ! jmp CvtNvtDone        ; leave the function
    
       CvtNvtCheck47:
       ! cmp eax, 47           ; see if its a /, 0-9
       ! jle CvtNvtCheck43     ; see if its a + next
       ! cmp eax, 58           ; no more than 57 acceptable
       ! jge CvtNvtRtn63       ; return 63
       ! add eax, 4            ; add 4 to eax
       ! mov rtn, eax          ; return it to the caller
       ! jmp CvtNvtDone        ; leave the function
    
       CvtNvtCheck43:
       ! cmp eax, 43           ; see if its a + sign
       ! jne CvtNvtRtn63       ; if not do next check
       ! mov ebx, 62           ; return value 62
       ! mov rtn, ebx          ; to the caller
       ! jmp CvtNvtDone        ; exit function
    
       CvtNvtRtn63:
       ! mov ebx, 63           ; return 63 for any other bytes
       ! mov rtn, ebx          ; not specified
    
       CvtNvtDone:
       ! pop ebx               ; restore original ebx
       ! pop eax               ; restore original eax
    
       Function = rtn          ' Pass Return Value to caller
    
    End Function
    
    ' ---------------------------------------------------------
    ' BASE64 Decoding Routine: Returns 1 on Error
    '                                  0 for Success
    '
    ' Args:  Pointr to Input Buffer, Pointer to Output Buffer,
    '        Output Buffer's Size.
    ' ---------------------------------------------------------
    Function Base64Dec Alias "Base64Dec"(ByVal lpStringIn As Dword, _
                       ByVal lpStringOut As Dword, ByVal OutBuffSiz As Dword)  As Long
    
       Local rtn As Long
    
       ! push ebx              ; save ebx
       ! push esi              ; save esi
       ! push edi              ; save edi
       ! mov esi, lpStringIn   ; input buffer address
       ! and esi, esi          ; null ptr check
       ! jz Base64DecDone      ; exit function
       ! mov edi, lpStringOut  ; output buffer address
       ! and edi, edi          ; null ptr check
       ! jz Base64DecDone      ; exit function
    
       ! xor ebx, ebx          ; zero ebx
       ! xor ecx, ecx          ; zero ecx
       ! xor edx, edx          ; zero edx
    
       Base64DecLoop:
       ! xor eax, eax          ; zero eax register
       ! mov bl, [esi]         ; get character from input
       ! cmp bl, 0             ; see if it's a null terminator
       ! je Base64DecDone      ; if so then exit function
       ! push ebx              ; parameter for next call
       ! call CvtNvtByte       ; call the function
       ! shl al, 2             ; shift bits in result left by 2
       ! mov ecx, eax          ; save it to ecx
       ! mov bl, [esi+1]       ; get next char from input
       ! push ebx              ; parameter for call
       ! call CvtNvtByte       ; call function
       ! shr al, 4             ; shift result bits right by 4
       ! or ecx, eax           ; or result 1 with result 2
       ! mov edx, ecx          ; save ecx to edx
       ! mov bl, [esi+2]       ; get third letter
       ! cmp bl, 61            ; see if its an = sign
       ! je Base64DecBC1       ; append it to the output buffer
       ! mov bl, [esi+1]       ; get second letter
       ! push ebx              ; paramter for call
       ! call CvtNvtByte       ; call function
       ! shl al, 4             ; shift result left by 4
       ! mov ecx, eax          ; save the result in ecx
       ! mov bl, [esi+2]       ; get the 3rd char from input
       ! push ebx              ; set it as parameter for call
       ! call CvtNvtByte       ; call the function
       ! shr al, 2             ; shift the result right by 2
       ! or ecx, eax           ; or reslult 2 with result 3
       ! mov dh, cl            ; save it in dh
       ! mov bl, [esi+3]       ; get 4th char from input
       ! cmp bl, 61            ; see if its an = sign
       ! je Base64DecBC2       ; append it to the output buffer
       ! mov bl, [esi+2]       ; get 3rd char
       ! push ebx              ; set it as param for call
       ! call CvtNvtByte       ; call the function
       ! shl al, 6             ; shift result left 6
       ! mov ecx, eax          ; save it to ecx
       ! mov bl, [esi+3]       ; get the 4th char
       ! push ebx              ; set it as parameter for call
       ! call CvtNvtByte       ; call the function
       ! or ecx, eax           ; or it with the modified third
       ! jmp Base64DecBC3      ; process the output
    
       Base64DecBC1:
       ! mov [edi], dl         ; write byte to output
       ! inc edi               ; update the pointer
       ! mov eax, 1            ; set an error code
       ! cmp edi, OutBuffSiz   ; see if we're out of buffer space
       ! je Base64DecDone      ; if so exit
       ! add esi, 4            ; prepare for next block
       ! jmp Base64DecLoop     ; go back for more
    
       Base64DecBC2:
       ! mov [edi], dl         ; write byte to output
       ! inc edi               ; update the pointer
       ! mov eax, 1            ; set an error code
       ! cmp edi, OutBuffSiz   ; see if we're out of buffer space
       ! je Base64DecDone      ; if so exit
       ! shr edx, 8            ; move dh to dl
       ! jmp Base64DecBC1      ; process the last char
    
       Base64DecBC3:
       ! mov eax, edx          ; copy edx to eax
       ! shr edx, 8            ; move dh to dl
       ! mov dh, cl            ; copy cl to dh
       ! mov [edi], al         ; write byte to output
       ! inc edi               ; move pointer up 1
       ! mov eax, 1            ; set an error code
       ! cmp edi, OutBuffSiz   ; see if we're out of buffer space
       ! je Base64DecDone      ; if so exit
       ! jmp Base64DecBC2      ; process remaining 2 bytes
    
    
       Base64DecDone:
       ! pop edi               ; restore edi
       ! pop esi               ; restore esi
       ! pop ebx               ; restore ebx
       ! cmp eax, 1            ; see if we have an error
       ! je Base64DecError
       ! jmp Base64DecExit
    
       Base64DecError:
       ! mov rtn, eax          ; save our return value in rtn
       Function = rtn          ' and return it to caller.
    
       Base64DecExit:
    
    End Function
    
    ' ---------------------------------------------------------
    ' BASE64 Encoding Routine: Returns 0 for success,
    '                             Non-Zero for Error Code
    '
    ' Args:  Pointr to Input Buffer, Pointer to Output Buffer,
    '        In Sring Len, Output Buffer's Size.
    '
    ' Note: In String Len is used rather than looking for the
    '       zero terminator so that Binary Data can be encoded!
    '
    ' Err Codes:  1 = OutPut Buffer Null Ptr Error
    '             2 = InPut Buffer Null Ptr Error
    '             4 = OutPut Buffer Too Short!
    ' ---------------------------------------------------------
    Function Base64Enc Alias "Base64Enc"(ByVal lpStringIn As Dword, _
                       ByVal lpStringOut As Dword, ByVal InLen As Dword, ByVal OutBuffSiz As Dword) As Long
    
       Local rtn As Long
       ! push ebx              ; save ebx
       ! push esi              ; save esi
       ! push edi              ; save edi
       ! mov ecx, lpStringOut  ; pointer to output buffer
       ! push ecx              ; save the address in case of err
       ! mov eax, 1            ; Null pointer error code
       ! and ecx, ecx          ; check for null pointer
       ! jz Base64EncDone      ; if so get out
       ! mov edi, lpStringIn   ; pointer to input buffer
       ! mov eax, 2            ; Null pointer error code
       ! and edi, edi          ; see if its a null pointer
       ! jz Base64EncDone      ; if so get out
       ! xor esi, esi          ; zero esi
       ! mov edx, InLen        ; edx contains Instr Len
       ! lea ebx, Base64_Nvt   ; load translation table to ebx
    
       Base64EncTop:
       ! xor eax, eax          ; error code 0
       ! cmp edx, 0            ; see if we're at the end
       ! je Base64EncDone      ; if so then exit function
       ! mov al, [edi]         ; get character into al
       ! shr al, 2             ; Shift Right 2 bits
       ! xlatb                 ; translate the character
       ! mov [ecx], al         ; save it
       ! inc ecx               ; move pointer up 1
       ! pop eax               ; get original address of output
       ! push eax              ; save it again
       ! mov esi, ecx          ; get current Output pos
       ! sub esi, eax          ; get current output len
       ! mov eax, 4            ; error code into eax
       ! add esi, 4            ; translate it to len
       ! cmp esi, OutBuffSiz   ; see if we've reached the limit
       ! jge Base64EncDone     ; if so exit with an error
       ! mov al, [edi+1]       ; read char2 into al
       ! mov ah, [edi]         ; read char1 into ah
       ! shr ax, 4             ; shift it all r by 4
       ! and al, &H3F          ; and the low byte w/0x3F
       ! xlatb                 ; translate the low bit
       ! mov [ecx], al         ; save it
       ! inc ecx               ; move pointer up 1
       ! cmp edx, 1            ; see which position we are in
       ! jne Base64EncSec2     ; jump to section 2
       ! mov al, 61            ; append the == to end
       ! mov [ecx], al         ; save it once
       ! inc ecx               ; move the pointer up
       ! mov [ecx], al         ; save it once more
       ! mov al, 61            ; 2nd = sign
       ! inc ecx               ; up the pointer again
       ! xor eax, eax          ; return error code 0
       ! jmp Base64EncDone     ; exit the function
    
       Base64EncSec2:
       ! mov al, [edi+2]       ; read the 3rd char into al
       ! mov ah, [edi+1]       ; read the 2nd char into ah
       ! shr ax, 6             ; shift it all right 6 bits
       ! and al, &H3F          ; and the low byte w/0x3F
       ! xlatb                 ; translate the char
       ! mov [ecx], al         ; save it to output buffer
       ! inc ecx               ; move output buff ptr up
       ! cmp edx, 2            ; see if were at pos 2
       ! jne Base64EncSec3     ; if not jump to section 3
       ! mov al, 61            ; otherwise add an = to end
       ! mov [ecx], al         ; save it
       ! inc ecx               ; update the pointer
       ! xor eax, eax          ; return error code 0
       ! jmp Base64EncDone     ; exit the function
    
       Base64EncSec3:
       ! mov al, [edi+2]       ; read 3rd char into al
       ! and al, &H3F          ; and it with 0x3F
       ! xlatb                 ; translate it
       ! mov [ecx], al         ; save it
       ! inc ecx               ; update output pointer
       ! add edi, 3            ; prepare for next block of chars
       ! sub edx, 3            ; move input string pointer down
       ! jmp Base64EncTop      ; go back to the top for next block
    
       Base64_Nvt:
       ! db 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90
       ! db 97, 98, 99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122
       ! db 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 43, 47
    
       Base64EncDone:
       ! pop esi               ; recall original output addr (ecx)
       ! cmp eax, 0            ; see if an error got us here
       ! jne Base64Error       ; yep so handle it
       ! mov [ecx], al         ; save null terminator
       ! mov rtn, eax          ; return error code
       ! jmp Base64ExitProc    ; exit the proceedure
    
       Base64Error:
       ! mov rtn, eax          ; return error code
       ! and eax, 3            ; see if it was a null ptr error
       ! jnz Base64ExitProc    ; exit directly
       ! xor eax, eax          ; zero eax
       ! mov [esi], al         ; write a null terminator
    
       Base64ExitProc:
       ! pop edi               ; restore edi
       ! pop esi               ; restore esi
       ! pop ebx               ; restore ebx
    
       Function = rtn          ' return code to caller
    
    End Function
    
    ' ---------------------------------------------------------
    ' RC4 Encrypt/Decrypt Routine: Returns 1 on Error,
    '                                      0 for Success
    '
    '  nLen = Input String Len. NOTE: Buffer Lengths Must Be
    '  equal to or greater than this size.  We want To be able
    '  to encrypt Ascii Zero's so we can't look for These for
    '  the end of the string mark as you normally would with
    '  this type of data.
    '
    ' NOTE: If you are calling from PB you are better off using
    ' the wrapper function below to use BASIC Strings.
    ' ---------------------------------------------------------
    
    Function EnDeCrypt Alias "EnDeCrypt"(InString As Asciiz, Passwd As Asciiz, OutString As Asciiz, ByVal nLen As Dword)  As Long
    
       Local S   As Asciiz * 256
       Local K   As Asciiz * 256
       Local rtn As Long
    
       ! push ebx                 ; save ebx
       ! push esi                 ; save esi
       ! push edi                 ; save edi
       ! mov esi, InString        ; Input String Address
       ! and esi, esi             ; null pointer check
       ! jz EnDeCryptDone         ; exit function
       ! mov edi, OutString       ; Output String Address
       ! and edi, edi             ; null pointer check
       ! jz EnDeCryptDone         ; exit function
       ! mov edx, Passwd          ; Password String Address
       ! and edx, edx             ; null pointer check
       ! jz EnDeCryptDone         ; exit function
    
       ! push esi                 ; save it for temp use
       ! push edi                 ; save it for temp use
       ! push edx                 ; save original pw address
       ! xor eax, eax             ; zero eax
       ! lea esi, S               ; address of S
       ! lea edi, K               ; address of K
    
       EnDeCryptInitS:
       ! mov [esi+eax], al        ; store char in S
       ! mov bl, [edx]            ; get byte from password
       ! cmp bl, 0                ; see if its a null terminator
       ! je EnDeCryptFixPw        ; if so adjust it
       ! mov [edi+eax], bl        ; store char in K
       ! inc edx                  ; increment pw pointer
       ! inc eax                  ; increment ascii pointer
       ! cmp eax, 256             ; see if we're done
       ! jl EnDeCryptInitS        ; get next character
       ! jmp EnDeCryptCreateTable ; go to next step
    
       EnDeCryptFixPw:
       ! pop edx                  ; get starting address of pw
       ! push edx                 ; save it again
       ! mov bl, [edx]            ; get first char again
       ! mov [edi+eax], bl        ; store it in K
       ! inc edx                  ; increment pw pointer
       ! inc eax                  ; increment ascii pointer
       ! cmp eax, 256             ; see if we're done
       ! jl EnDeCryptInitS        ; get next character
    
       EnDeCryptCreateTable:
       ! xor ecx, ecx             ; zero ecx
       ! xor edx, edx             ; zero edx
    
       EnDeCryptTableLoop:
       ! mov al, [esi+ecx]        ; get S char into al
       ! mov ah, [edi+ecx]        ; get K char into ah
       ! add al, ah               ; add them together
       ! mov ah, dl               ; dl to ah
       ! add al, ah               ; add them together
       ! mov edx, eax             ; save it to edx
       ! and edx, 255             ; filter off high bits
       ! mov bl, [esi+ecx]        ; get S char to bl
       ! mov al, [esi+edx]        ; get K char to al
       ! mov [esi+ecx], al        ; swap the values
       ! mov [esi+edx], bl        ; swap the values
       ! inc ecx                  ; increment counter
       ! cmp ecx, 256             ; see if we're done
       ! jl EnDeCryptTableLoop    ; get next character
    
       ! pop edx                  ; restore password address
       ! pop edi                  ; restore Output address
       ! pop esi                  ; restore Input address
       ! xor eax, eax             ; zero eax
       ! xor ebx, ebx             ; zero ebx
       ! xor ecx, ecx             ; zero ecx
       ! xor edx, edx             ; zero edx
    
       EnDeCryptMainLoop:
       ! mov eax, 1234            ; normal exit code checked on exit
       ! cmp edx, nLen            ; See if we've reached the end yet
       ! jge EnDeCryptDone        ; if so we're done
       ! mov al, [esi+edx]        ; get char from input
       ! inc ch                   ; increment ch
       ! and ch, 255              ; range 0-255
       ! push esi                 ; save esi
       ! lea esi, S               ; address of S
       ! push eax                 ; save eax
       ! push ebx                 ; save ebx
       ! xor eax, eax             ; zero eax
       ! mov ah, ch               ; get ch
       ! shr eax, 8               ; move to al
       ! mov ebx, eax             ; copy it to ebx
       ! mov al, [esi+ebx]        ; get byte
       ! add cl, al               ; add them up
       ! and cl, 255              ; range 0-255
       ! pop ebx                  ; restore ebx
       ! xor eax, eax             ; zero eax
       ! mov al, cl               ; cl to al
       ! mov bl, [esi+eax]        ; swap table bytes
       ! mov al, ch               ; ch to al
       ! mov bh, [esi+eax]        ; swap table bytes
       ! mov [esi+eax], bl        ; swap table bytes
       ! mov al, cl               ; cl to al
       ! mov [esi+eax], bh        ; swap table bytes
       ! pop eax                  ; restore eax
       ! add bl, bh               ; add the bytes together
       ! and ebx, 255             ; range 0-255
       ! mov bh, [esi+ebx]        ; get xor Var
       ! shr ebx, 8               ; move it to bl
       ! xor al, bl               ; xor the value
       ! mov [edi+edx], al        ; store the encrypted char
       ! pop esi                  ; restore input address
       ! inc edx                  ; increment character counter
       ! jmp EnDeCryptMainLoop    ; get next character
    
       EnDeCryptDone:
       ! cmp eax, 1234            ; see if our normal exit code
       ! je EnDeCryptExitLab      ; got us here, if so exit
       ! mov eax, 1               ; if not return error code
       ! mov rtn, eax             ; to caller
    
       EnDeCryptExitLab:
       ! pop edi                  ; restore edi
       ! pop esi                  ; restore esi
       ! pop ebx                  ; restore ebx
    
       Function = rtn
    
    End Function
    
    Function NCryptString Alias "NCryptString" (StringIn As String, Pw As String)Export As String
    
       Local pBuff As String
       Local oBuff As String
    
       pBuff = Pw & Chr$(0)              ' pad pw with a chr 0
       oBuff  = Space$(Len(StringIn))    ' set outbuff len
    
       ! push ebx                ; save ebx
       ! mov eax, StringIn       ; Get Input Buffer Handle to eax
       ! mov eax, [eax]          ; get address of data
       ! and eax, eax            ; null pointer check
       ! jz CryptStrDone         ; leave the function
    
       ! lea ebx, pBuff          ; pBuff's handle to ebx
       ! mov ebx, [ebx]          ; pBuff's address to ebx
       ! lea ecx, oBuff          ; oBuff's handle to ecx
       ! mov ecx, [ecx]          ; oBuff's address to ecx
       ! mov edx, [eax-4]        ; StringIn's Length to edx
    
       ! push edx                ; last parameter for call
       ! push ecx                ; 3rd parameter for call
       ! push ebx                ; 2nd parameter for call
       ! push eax                ; 1st paramter for call
       ! call EnDeCrypt          ; call the master function
    
       ! cmp eax, 0              ; make sure there were no errors
       ! jne CryptStrDone        ; if so then exit
    
       Function = oBuff          ' set output
    
       CryptStrDone:
       ! pop ebx                 ; restore ebx
    
    End Function
    '------------------------------------------------------------------------------------------
    '------------------------------------------------------------------------------------------
    '------------------------------------------------------------------------------------------
    '------------------------------------------------------------------------------------------
    '------------------------------------------------------------------------------------------
    Scott Turchin
    MCSE, MCP+I
    http://www.tngbbs.com
    ----------------------
    True Karate-do is this: that in daily life, one's mind and body be trained and developed in a spirit of humility; and that in critical times, one be devoted utterly to the cause of justice. -Gichin Funakoshi

  • #2
    LoadKey:

    Code:
    '================================================================================================================
    '----------------------------------------------------------------------------------------------------------------
    
    Function LoadKey(KeyNum As Long)Export As String
    Select Case KeyNum
            Case 1
                Function = "4221452623254149513129315C4F5135"
            Case 2
                Function = "5F4C214D405D47534F2C214C25473721"
            Case 3
                Function = "50365B243E332E473651393D5E53583C"
            Case 4
                Function = "365D51244E364C4B42463D3151233537"
            Case 5
                Function = "21513953345528235E2F4B3E52527242"
            Case 6
                Function = "48524343362A504A39464B2B245B4D26"
            Case 7
                Function = "3229255349535226275642414E585F40"
            Case 8
                Function = "5F493657254F21242A463F5535373941"
            Case 9
                Function = "555F4B52232E582C3B5D3F3941542C5E"
            Case 10
                Function = "4937452930523A502F2C354F5C5C2944"
            Case 11
                Function = "55295C5239534925334C614A472C2E23"
            Case 12
                Function = "415B27595328274344373234213C394E"
            Case 13
                Function = "4B53365858585E595E3039334F422B42"
            Case 14
                Function = "56514B323B5A28512929574556325859"
            Case 15
                Function = "4F6E50582941462D4C2F4C5656425752"
            Case 16
                Function = "2841442F4A2B4A48422638284D33334A"
            Case 17
                Function = "2D483B27235D423D49442647415C4249"
            Case 18
                Function = "3E4E34542836463A37254525362B2823"
            Case 19
                Function = "473C254C314E2B2D4152372E5F4C2F48"
            Case 20
                Function = "432F3F572E5A3E354D373D554E443627"
            Case 21
                Function = "3B5A2F5E3E394E584028334A55303A52"
            Case 22
                Function = "3124535A234D27584225542A40265D3E"
            Case 23
                Function = "455F3B5A475C4F295052432451514D25"
            Case 24
                Function = "3A5E3F585D505A3547385D265E55455B"
            Case 25
                Function = "2C21512F392E4F3C5B4B34595C203C52"
            Case 26
                Function = "204D482F402E313D5228583857243833"
            Case 27
                Function = "29354E583B5C2E364B3A502948554533"
            Case 28
                Function = "3C2B2C5742244F4C542E3839475F245A"
            Case 29
                Function = "42374E5B5929475A2139493E2D243645"
            Case 30
                Function = "28452C4C4C5C2759255B31355E252B38"
            Case 31
                Function = "345743302753426D555351404227476D"
            Case 32
                Function = "303B2A542933534526325D3F47205544"
            Case 33
                Function = "5A2C2C3928255A5E554C4F5444265640"
            Case 34
                Function = "475E58502C365D41432C56463348203C"
            Case 35
                Function = "2E4329372820372B59522E4C33294A40"
            Case 36
                Function = "5A4E47573340524D333334574E374348"
            Case 37
                Function = "59325A2E4B385E49564F3B23503C4855"
            Case 38
                Function = "545B51565B5E5E364548592C33462479"
            Case 39
                Function = "4A2944374B545D57555E3D32522E3138"
            Case 40
                Function = "4D2450213D3127444E3E315D363B523F"
            Case 41
                Function = "2F3C352644264028525A545C5C555029"
            Case 42
                Function = "29445F2F5A585E594050535C3E562D48"
            Case 43
                Function = "3250357C4B435C3F272B5F4B4E452B23"
            Case 44
                Function = "483D505B3E464B253A2543505F3F4040"
            Case 45
                Function = "41302A5F33455933474251445440272B"
            Case 46
                Function = "2C5633585725453E5E343B285C2A5049"
            Case 47
                Function = "21535E2D353754574A532A2F4A233540"
            Case 48
                Function = "36305541492D3A3F24382125255E2F3B"
            Case 49
                Function = "44454F4D2831524625402C5E30205333"
            Case 50
                Function = "2F3D5E544C2953592949545659714254"
            Case 51
                Function = "382A3E244B3F4C5645485E2C552B4720"
            Case 52
                Function = "48342D58285D3265373D3B2A37493D4F"
            Case 53
                Function = "555B364A582E2043312B4E392F3E4327"
            Case 54
                Function = "264B35584D2A553E5B30445E2F394D3C"
            Case 55
                Function = "5047335D3B495923463F232624574740"
            Case 56
                Function = "2329243D4235343143374A58595D4854"
            Case 57
                Function = "273A413858314A2D393E542C56553C5B"
            Case 58
                Function = "5D212E46492E295720445C35505F5043"
            Case 59
                Function = "5B2821594C5E264A204D3E5143323352"
            Case 60
                Function = "48594C403859533D48264B4034493454"
            Case 61
                Function = "4C2B412F36302E21444746332F2F354B"
            Case 62
                Function = "5C4257325E3E365E353C55302E3C4C31"
            Case 63
                Function = "3B28214F5B3F3E3B553C584D242E2139"
            Case 64
                Function = "405255564D3E4327373B283A5B2B543F"
            Case 65
                Function = "3A54232B3B5933365D4D542633585C45"
            Case 66
                Function = "5221573056395B2F3E5142414F5F4E3C"
            Case 67
                Function = "51442B31295A204D3B513E4224412943"
            Case 68
                Function = "455B32303E2A264F4A284A4F25503A4E"
            Case 69
                Function = "2E495B243F25345053483837472E3A28"
            Case 70
                Function = "36415E5C384445395C335F425028204F"
            Case 71
                Function = "463D39332F3125545E4E462F34373849"
            Case 72
                Function = "3827582D4B3356374F354E4558415B20"
            Case 73
                Function = "3055555C5E4827374F344A4341575C6B"
            Case 74
                Function = "27245327593246444B3538292B46572B"
            Case 75
                Function = "4A3649562E43563721394F49495B3121"
            Case 76
                Function = "4B5438463629262E553A34332F435726"
            Case 77
                Function = "404F554F334147504F5A2A234C4D2833"
            Case 78
                Function = "5E263B2C385C383A32487C5A3C485421"
            Case 79
                Function = "252C4F2F2B213F3D362D243E5244263E"
            Case 80
                Function = "43525E4C44553E265A4E2744554D432B"
            Case 81
                Function = "34422327382B4D2126303C2F56202342"
            Case 82
                Function = "4950325223274E533C443F465545574E"
            Case 83
                Function = "3C564D524D4B295F36532E28244A3D21"
            Case 84
                Function = "314136535F395D25494731354D4C3758"
            Case 85
                Function = "504C50245829425E2D4A5F524E5E4C30"
            Case 86
                Function = "235258375F59453A385F3553373A3F34"
            Case 87
                Function = "50242C3E375C3A5342475321523E483F"
            Case 88
                Function = "424E3E2829343149515B4A3F37332A27"
            Case 89
                Function = "475530582B345951352146493851302D"
            Case 90
                Function = "2640572A21434131535C4939354B2629"
            Case 91
                Function = "5825362728245D243640504E3E492325"
            Case 92
                Function = "4C4E4C42483B2B272F52492633254032"
            Case 93
                Function = "243053533020585B365155264442365E"
            Case 94
                Function = "3431315B2D433427355D472F3C5F3944"
            Case 95
                Function = "2C4F592F3F3E3921344D3C2C355F3030"
            Case 96
                Function = "5040632A5652562D2A50635C5623445B"
            Case 97
                Function = "504753424E35354F413F3A465E3C2E2B"
            Case 98
                Function = "4321362B3A624F274F394D552E5B4939"
            Case 99
                Function = "432146592046315D334E5C4D4E34502A"
            Case 100
                Function = "3845344D33365B275F5E383B3C313824"
            Case 101
                Function = "33252B392F2D335E3131582424563546"
            Case 102
                Function = "274B375D2C3035434C535C335E4F3928"
            Case 103
                Function = "532D542B4E2F51242E405B4040563439"
            Case 104
                Function = "285B3355484D205E4E4937445F375531"
            Case 105
                Function = "593E3B5F512B4D415A48402625503B47"
            Case 106
                Function = "5F2332524C393E4B344C27465926272B"
            Case 107
                Function = "5D36502C3155412C453B42504A545937"
            Case 108
                Function = "3A3D4A36483C33543D45285D514F4947"
            Case 109
                Function = "543F2B492343364D4E4F42202E2A252A"
            Case 110
                Function = "4057363D4E28572826333335384E363D"
            Case 111
                Function = "243750492D4D463449273C4C37532F54"
            Case 112
                Function = "265A5A245D364C5B352045383E285B4A"
            Case 113
                Function = "584F3F334B2A59433B382B3D235C5620"
            Case 114
                Function = "3C293021443721445B49383544394B42"
            Case 115
                Function = "34444B4254375F265856523D5B387945"
            Case 116
                Function = "21504A3436532C2C523E3A3F502F5A47"
            Case 117
                Function = "5B5E543132342E522837355F5C5D433C"
            Case 118
                Function = "464B4B273949342C4E522C4D42555342"
            Case 119
                Function = "5A385F4C5E3C473C26262A3454353035"
            Case 120
                Function = "3C56394F3B4A4542263B245E5E353540"
            Case 121
                Function = "20452E31392E354A4F2B5D5134232F45"
            Case 122
                Function = "5C543320324F42512A2826474C352C45"
            Case 123
                Function = "413433242A2B324F44363C363A5A4C38"
            Case 124
                Function = "2B314027294D332F303C484124324E34"
            Case 125
                Function = "5E403E554C4223335827435B503C5942"
            Case 126
                Function = "5D532C5C432B373C312C2B313C523729"
            Case 127
                Function = "4D5D37503155542538445F28265C283C"
            Case 128
                Function = "55533853252448454E4B434F4D49275E"
            Case 129
                Function = "454E4629564838245A36363A5B585A42"
            Case 130
                Function = "315746285E3B4E55432C4D2133565056"
            Case 131
                Function = "5435252E2931214E2A3A44434D59422D"
            Case 132
                Function = "5B315935585836382C443F27292E4529"
            Case 133
                Function = "5A2F234A41365F4C5A46564056324549"
            Case 134
                Function = "3F354E48362D4F3D242746395A45485F"
            Case 135
                Function = "415E30492E2941474D4127215E425740"
            Case 136
                Function = "21363F545B4E424D37293E282A353E58"
            Case 137
                Function = "5C2C482A48505545543E5F3A4C26455F"
            Case 138
                Function = "2550493524353E3D552839573F433353"
            Case 139
                Function = "285544242C405C48353349474837205A"
            Case 140
                Function = "54342F39304633274120334553423E2D"
            Case 141
                Function = "41462C522B2A595C3B352B5E3F595048"
            Case 142
                Function = "4F36365D3A2A2D3359522A5735573B47"
            Case 143
                Function = "37273F2355452E59344E2B4C59444A5B"
            Case 144
                Function = "3A5A5B33555158422E5B345B3C32455D"
            Case 145
                Function = "262D533F564420324B2F25505A544557"
            Case 146
                Function = "344756593159414E504B4835415B4D48"
            Case 147
                Function = "55213A4C39272E3F2C302A513E2E3F51"
            Case 148
                Function = "2A383F402F26585A424B54573E584A29"
            Case 149
                Function = "4931574A593C26315D4B464653514533"
            Case 150
                Function = "5D465E49255E3A535F553E4F5D3D2B54"
            Case 151
                Function = "3F373D3C4733232B3D3621594F283031"
            Case 152
                Function = "3A2325353934242654313C344E4E2F4E"
            Case 153
                Function = "402D5C405F3E364D45303126433F5546"
            Case 154
                Function = "48284A23425726334A23305C40542925"
            Case 155
                Function = "532939285B574B49315D3B3354262038"
            Case 156
                Function = "44233256214440443A3F292D52415D51"
            Case 157
                Function = "51335C42405C37415F4C5E3D3C203C3E"
            Case 158
                Function = "504C382B30204D3D2F37575C50445352"
            Case 159
                Function = "4633404B4846314C315A33383934333B"
            Case 160
                Function = "445F5E2344514B562E3F3B3C2E31354C"
            Case 161
                Function = "534224373B335C545254572333312C5C"
            Case 162
                Function = "564130254D3037353142543B283D3D55"
            Case 163
                Function = "5256534744475032254D2929343B512F"
            Case 164
                Function = "5D4759314632202A5C59285D35412F5C"
            Case 165
                Function = "26293C294B36412344363D332A43292A"
            Case 166
                Function = "352B3E4C5B44232A58542A4D4E39505C"
            Case 167
                Function = "5D3A3D3D3C5947304A58424628444D5E"
            Case 168
                Function = "562B4D5741453433303D3237484D4656"
            Case 169
                Function = "554259354A27264D48324D3B27335C59"
            Case 170
                Function = "2F5D4456583536374E4D4C33215E5028"
            Case 171
                Function = "335F52395B27343F27215F5439574B4A"
            Case 172
                Function = "452E34243F292039582346475D424C4E"
            Case 173
                Function = "5D3D4153393553203F41532854463336"
            Case 174
                Function = "4C2F4741372525484C484B5034314949"
            Case 175
                Function = "562F443E48445355462C523A5F543E57"
            Case 176
                Function = "55484325502F502A3320475E29525F26"
            Case 177
                Function = "3C453B564E5D5B2B3B36235E42484F29"
            Case 178
                Function = "344B3941455A565C5B2028663D415D2B"
            Case 179
                Function = "202832555C28545B5B4E2A364C5D5748"
            Case 180
                Function = "564051533F29313E264650464A535751"
            Case 181
                Function = "41554129252E5B5C593B2E2832393156"
            Case 182
                Function = "5621264347455F4142464A4636583549"
            Case 183
                Function = "47512E27392A46364A3249204E212629"
            Case 184
                Function = "503B572B5643402E5B583F7553292B34"
            Case 185
                Function = "212E372F3826535C36552E3F40552025"
            Case 186
                Function = "5B49444F39273655294D36482A425F3B"
            Case 187
                Function = "53505F4F3E5A34484B5E532F5B4F3A53"
            Case 188
                Function = "4336472735573C27273C413F3D535626"
            Case 189
                Function = "2F3A283F434F5C2F4A5A3A3550574543"
            Case 190
                Function = "4E5E4250312D493A2C312F4E362E4F41"
            Case 191
                Function = "425C5D525C505E3C56255F3C42425A45"
            Case 192
                Function = "503C26594E3B203F3C5D3B41325B4430"
            Case 193
                Function = "412D56305C3E49473A5F34285C2B3529"
            Case 194
                Function = "282F255B284B314453565A3D5A5E4454"
            Case 195
                Function = "5D2558315D4D2A285C2549494947534F"
            Case 196
                Function = "4948263B5457345F4F375B2F3B572828"
            Case 197
                Function = "352B5C2D33394349594D5340275A5950"
            Case 198
                Function = "234635343B572F4020555A323021272E"
            Case 199
                Function = "312321532632243E4D4A253F353C2327"
            Case 200
                Function = "545A40373B275E44382B53474E305F5B"
            Case 201
                Function = "273B50385749384F243539575638543D"
            Case 202
                Function = "23345E4B314D5C5A28303B53504F213B"
            Case 203
                Function = "4320443B2434584A582032323B3E252D"
            Case 204
                Function = "5B2E2B20542D373E4746412B564D4C36"
            Case 205
                Function = "293B565133255A2C293D442A4C4B4624"
            Case 206
                Function = "484E43482E445B5257263725274D3229"
            Case 207
                Function = "5D5A2C5539322D323D493E5A49415052"
            Case 208
                Function = "2F5D3926352F55454035383A58294243"
            Case 209
                Function = "4052434140365825253E365E524A5727"
            Case 210
                Function = "444A585F3D3541384E47503527435E2B"
            Case 211
                Function = "2421422F3A5F2858324B4140212F3F23"
            Case 212
                Function = "534A434E483A3F20482A2A3A5E3A4A52"
            Case 213
                Function = "493A3C5440213631572451215C405958"
            Case 214
                Function = "4329302E324355212C5D324B2C4C5339"
            Case 215
                Function = "463B274450264B3C375749592F354F34"
            Case 216
                Function = "485F2741323C21344229335F42235259"
            Case 217
                Function = "393738362C36354C542A393121553947"
            Case 218
                Function = "514F4A204C4A2E20262A552443333D56"
            Case 219
                Function = "254F49414F2E7426554F2F4724472958"
            Case 220
                Function = "2D375557435950384F3D43312E292A32"
            Case 221
                Function = "3532255B4C395A4D5D4523204D324A42"
            Case 222
                Function = "3A3E4A20443E4E5D28445D2E285D2738"
            Case 223
                Function = "5853322D2C43233D535C235E332A5B37"
            Case 224
                Function = "21593C593B3C26312534434350243D38"
            Case 225
                Function = "52473C4B394124574A2C4C2F21355A35"
            Case 226
                Function = "2457444D26555C5A3C435D34264D4E3F"
            Case 227
                Function = "534233462D5E4D444729473928422E54"
            Case 228
                Function = "595F244D41383A39345B475055434D25"
            Case 229
                Function = "3628524E444054435D3521315F262332"
            Case 230
                Function = "2D5D2B435C5C3F51395B294E53285C23"
            Case 231
                Function = "59203F4B2729582A264C554F4E4F364C"
            Case 232
                Function = "3C5D42413F3837515A2D5C5C33425144"
            Case 233
                Function = "2E453E5A37324C434D2A53244021262E"
            Case 234
                Function = "21335E433552324557492A32205F2D5E"
            Case 235
                Function = "555C4326353D4E4744352A4B2B415D41"
            Case 236
                Function = "2A5233492628243B303A3B502639543E"
            Case 237
                Function = "5F4759442144262A3C265441305B2A32"
            Case 238
                Function = "2A323C4256534A292A4641523A5C6F42"
            Case 239
                Function = "41522A364952322C5B56482050452F23"
            Case 240
                Function = "363C5A232C344E5B3B595F372C434E21"
            Case 241
                Function = "2F3851513C492F5F4E4D412A203E204B"
            Case 242
                Function = "4B552C4A20393E58475B542C4B3B3035"
            Case 243
                Function = "2049335726234E26345857202F472A30"
            Case 244
                Function = "4941502C2C395D27425B52394826484F"
            Case 245
                Function = "373C3232545346214240574154553E4B"
            Case 246
                Function = "372B50563E2F2B4D535A43495F3F2A31"
            Case 247
                Function = "4F2F382637333F565552425A50412139"
            Case 248
                Function = "4E372559314B3350494E3C5921553E4D"
            Case 249
                Function = "364C3F233B42295123205F2E5B4B2141"
            Case 250
                Function = "524E365B5A334C2F582D2A295E4F5249"
            Case 251
                Function = "233B2A4F42395A3C512A2E2C47492052"
            Case 252
                Function = "3C462A292B235C554D452B29453B5C27"
            Case 253
                Function = "4E272F434F485F39335226502B5E5D28"
            Case 254
                Function = "3E5F5E3F234B44512A2B3E202E5B342F"
            Case 255
                Function = "444A4425402D3A20304944303F27344C"
            Case 256
                Function = "533A4F5349585B413D42585E314C3458"
            Case 257
                Function = "352D5E3A3E5F492B33324541453C303B"
            Case 258
                Function = "4B3F433939335F584632462B3E2E2634"
            Case 259
                Function = "5B264E392B403A4C46324E2D3C3E2F41"
            Case 260
                Function = "2523404636362C3D4A2D4246552A485E"
            Case 261
                Function = "4F244B554E5551202A492D2544294643"
            Case 262
                Function = "423C45413A38252C4628552A2A592926"
            Case 263
                Function = "592F5552545B533C524F5A293D2F412E"
            Case 264
                Function = "3F2829414C5B4B3D4149484942435241"
            Case 265
                Function = "5C58545E494D5A3F414853572545494D"
            Case 266
                Function = "52533D40303C2420345A23344C20243B"
            Case 267
                Function = "2D4B294E2B544E3A2A3323435E48324B"
            Case 268
                Function = "235F4754565535412E5D202954252659"
            Case 269
                Function = "3B3A2F4B522C32333E33235B484A5E53"
            Case 270
                Function = "315959525B4821443830294143375347"
            Case 271
                Function = "2C2E2C30434B53295851375741575348"
            Case 272
                Function = "4435484B5B5C3034354D414A53395B3D"
            Case 273
                Function = "32554C302057553A513C4339442F2C55"
            Case 274
                Function = "5123483423585C594F58503E53555A45"
            Case 275
                Function = "2A5A4648532A294A5441375F59405E56"
            Case 276
                Function = "3921555443413A3C4E56442F5A2C5728"
            Case 277
                Function = "4E4F355C435542562B3D5D5C27373338"
            Case 278
                Function = "5F2747555339253220524B28383A2145"
            Case 279
                Function = "4A3E514950282C2E3C5B525042382827"
            Case 280
                Function = "26524D4A5E592B4B2B5B473C20583C51"
            Case 281
                Function = "3B5E4D544E50382F353C362958485B50"
            Case 282
                Function = "495144215C2F594F5E535A574E585957"
            Case 283
                Function = "5723253E484F4C4D23483F353D4D4723"
            Case 284
                Function = "32532B532D323B245B5C5C3A37523658"
            Case 285
                Function = "5B41724F59522F5B2E3C4B2453582625"
            Case 286
                Function = "3E3B3A4C2A3F243F3A315E415E5E4D28"
            Case 287
                Function = "2A2F504F3345512A3F423A415056474E"
            Case 288
                Function = "3D4C28363929295D372B2D42592C2B5F"
            Case 289
                Function = "34553D3F45553E423932512B5E5D693E"
            Case 290
                Function = "204C2C383845475F4C5C5D56202D4920"
            Case 291
                Function = "5F375A335524273E4C40423828555430"
            Case 292
                Function = "4B3A525B5B365D265956415C3D2A4753"
            Case 293
                Function = "254621203841452E415C39413854303B"
            Case 294
                Function = "2E39433F2E3B534A3A2F3C592052304B"
            Case 295
                Function = "573A4636204E513F4B43525D362D274F"
            Case 296
                Function = "265E3C2A3C5B74413237565D46582321"
            Case 297
                Function = "38524D31263C265350514A4835252930"
            Case 298
                Function = "2E2E303436402E4323253049375E6256"
            Case 299
                Function = "455024342537415E305D5E49483C5D58"
            Case 300
                Function = "39402D2A26443242343A3F3946302747"
            Case 301
                Function = "40355D5D3B3E343D2C4442203A4A5340"
            Case 302
                Function = "4D56375946573C332425264F50234858"
            Case 303
                Function = "362441493F322F48393D205C56584E28"
            Case 304
                Function = "2E3E462E343D34524B3A473F54544E26"
            Case 305
                Function = "21283849574226373E45334F5F203C3F"
            Case 306
                Function = "2928464A274A593E5F243C5D31312650"
            Case 307
                Function = "2134293B3D44495E465D4B232F323540"
            Case 308
                Function = "3F273A3426542F3455325E4A593D2432"
            Case 309
                Function = "24382D562A2E29442E3627335C525958"
            Case 310
                Function = "57234F2B5D41392B5A5A40212B3D4857"
            Case 311
                Function = "565E3E36323E4C3A335C3C342C23242F"
            Case 312
                Function = "4C5C2D5A34262F334A215E2C4B29353E"
            Case 313
                Function = "54384A3F375349562A33475D47564727"
            Case 314
                Function = "4C494F5E5E34373E3925593D295A5A4E"
            Case 315
                Function = "4C48322C53525C2C284454544F462A24"
            Case 316
                Function = "5B2531402A4051463B203456465F2A40"
            Case 317
                Function = "30322138234D28395F474C3B50582C4C"
            Case 318
                Function = "3C3F41373458302E3B3D2058353C402E"
            Case 319
                Function = "203945524C23532150445D54545B2536"
            Case 320
                Function = "2629593E274C28404F3C5C213B3D2B25"
            Case 321
                Function = "3950594B4C4B485A47264358573F2631"
            Case 322
                Function = "5B3857313F4837293132513833555F20"
            Case 323
                Function = "493E3737284F4B312A522C3950452950"
            Case 324
                Function = "5156485B2C2A2B555E562A5B5F4A5339"
            Case 325
                Function = "40483358514655562F3143553E2C2446"
            Case 326
                Function = "2D5D5B51273A4B592E24472B4D523A2A"
            Case 327
                Function = "5B5D423E39253F355E4D3A2045334D5A"
            Case 328
                Function = "4F2D57283742364D4D2A45435C3A4150"
            Case 329
                Function = "414D21463C3C235949382B29562C294A"
            Case 330
                Function = "554D2D3C5B4A3658585547512131455B"
            Case 331
                Function = "405B2E382D5843505A3C3C404E51504E"
            Case 332
                Function = "555340502B4251524A41305740274A46"
            Case 333
                Function = "47405137552F275833554A3E563F3854"
            Case 334
                Function = "26575840463E4C332C27272E53512D38"
            Case 335
                Function = "564F5B4855563B475C4F443F3B475351"
            Case 336
                Function = "3F31365A2132535E4D594A2B51392449"
            Case 337
                Function = "31413A3A564B294D572628303259376B"
            Case 338
                Function = "533428462E2C3944412545525A5A4436"
            Case 339
                Function = "5F4652423343453023382A4E21593A55"
            Case 340
                Function = "543B25483A4D294E514A2E344644323B"
            Case 341
                Function = "2C3950372F4A2B29485859335B305032"
            Case 342
                Function = "5B2A552E495C363F5253395441382439"
            Case 343
                Function = "3646425643273C4B424A5B453D3E5E4D"
            Case 344
                Function = "46423033254E2E2E5455393E47492642"
            Case 345
                Function = "3944345041555E353C4831385835324D"
            Case 346
                Function = "434F3237243350425F213A4C425B3F45"
            Case 347
                Function = "34535F5620525A5753245A5C30243323"
            Case 348
                Function = "295332522A4A4E5E255334312B434B2F"
            Case 349
                Function = "54584A26422A3038393A212D494E2B46"
            Case 350
                Function = "5D524F3F36513D412B2A4E4420465143"
            Case 351
                Function = "374D4E4E233B512C2026433020382043"
            Case 352
                Function = "4D383151465A3A40273640372B27375B"
            Case 353
                Function = "445F2527395650323825534625463E4B"
            Case 354
                Function = "5B562A32434F43382C30212E46203E33"
            Case 355
                Function = "5D2B5D4C5D233E37215F5D253C4F434F"
            Case 356
                Function = "2E23242A4F24204E55493C455836585F"
            Case 357
                Function = "5A36473B4A4140534F5D324D4E585A51"
            Case 358
                Function = "364637302A31365A3B2F463D5A42405C"
            Case 359
                Function = "67433C4E3D415367295A205F3E56394D"
            Case 360
                Function = "43425351432E5E4C2F234A2F215A294F"
            Case 361
                Function = "2C345C554046534F2A415F4539255B42"
            Case 362
                Function = "4F20235E2B3C2E455838425737242858"
            Case 363
                Function = "3153303E2F425E5D582E3744595B323F"
            Case 364
                Function = "4A3B33294E45535B3150273C482F3E26"
            Case 365
                Function = "4B5D3F41262551413754375F54324E58"
            Case 366
                Function = "292731352C503F47573F5C4D3C384D2B"
            Case 367
                Function = "2E443F33322745323938342D4A325F3D"
            Case 368
                Function = "28255E335A5D23325E47455F5234415A"
            Case 369
                Function = "7C2D52397C2D354A5F3951202C26424B"
            Case 370
                Function = "5D442A312C4A5940434A55505549304E"
            Case 371
                Function = "465A50352A474E433D204A5A38373E3F"
            Case 372
                Function = "405D234C3E375B53213744325A563429"
            Case 373
                Function = "33564F45373E3C36254D525B27552547"
            Case 374
                Function = "233F2D20505F4431584D2F3C31203146"
            Case 375
                Function = "303038333C434D325A4D5C2D4D502649"
            Case 376
                Function = "564246493F4E58312A5C262D29394B52"
            Case 377
                Function = "5C36433B30293A29402C323F595F2C56"
            Case 378
                Function = "4653444C334C58262A233B3650433D5F"
            Case 379
                Function = "46444C5C21523E41273F575E5C453C52"
            Case 380
                Function = "424F573A4C5F5F4B41433E4E4325412D"
            Case 381
                Function = "38255F45344D2B282C4B3A335F4B4521"
            Case 382
                Function = "4D2D213B35552945425325485B3D2929"
            Case 383
                Function = "3D295F5C434A5D2B3C332C42534F5B5E"
            Case 384
                Function = "272D21575F2B25485226395842282626"
            Case 385
                Function = "3E3B325E5B5240285656485B58283B46"
            Case 386
                Function = "4735284730415F445634293936353231"
            Case 387
                Function = "3D4841212F35494750265344563A2D3C"
            Case 388
                Function = "383D283F5944332C57364F545455275E"
            Case 389
                Function = "2E4B335A5F455E325247495E415F464E"
            Case 390
                Function = "48705E56262C3741202E3A2724573B40"
            Case 391
                Function = "5247312B3E473E3A424B204C3E304C20"
            Case 392
                Function = "3659715D2E495F37523F41333558285C"
            Case 393
                Function = "404E252955244F4A2B575B2F5D5E3B25"
            Case 394
                Function = "2954232D262B343142452F475C3F4A3C"
            Case 395
                Function = "4F3F434A4D342E2C4B5F422E584E4F39"
            Case 396
                Function = "342D4D2F4548445F2E263E283B3C3C26"
            Case 397
                Function = "4A483B2350205E375D44203B233C514A"
            Case 398
                Function = "37535B402B3E43594F4E583F55204A44"
            Case 399
                Function = "592D384F323B2D315A362D59415D365B"
            Case 400
                Function = "464C39522C5A5C26245D4D4723313928"
            Case 401
                Function = "40384E202A3A5A3630564321564E4057"
            Case 402
                Function = "36334F432C4B4F3C363E5925422A213E"
            Case 403
                Function = "525B3F2E38565D5D5545545D3D44404F"
            Case 404
                Function = "5A325038425958304D45242924432E50"
            Case 405
                Function = "2847523D532043262755455F283D2F44"
            Case 406
                Function = "383134444F5E59434543383F5F3A473C"
            Case 407
                Function = "48483154403E46435F475E473439374D"
            Case 408
                Function = "393A582E542F4E5E30594746565C424A"
            Case 409
                Function = "35293F4E40494C312736332B31463630"
            Case 410
                Function = "475C2C524D433646293630405D364351"
            Case 411
                Function = "4D574657655B3C4035365D445037472D"
            Case 412
                Function = "3C394D3855392A3921253150534D5634"
            Case 413
                Function = "3B4436372A56584542483326435E5C23"
            Case 414
                Function = "5E3C5D25472B253F36542B413B2B4634"
            Case 415
                Function = "234B57585D5C2E242D4D364F2551295B"
            Case 416
                Function = "5E534C5C45235C243942403D4636562A"
            Case 417
                Function = "205A454A29553C595E2C495F393F3340"
            Case 418
                Function = "504231384B2A7A4856397A522B304046"
            Case 419
                Function = "4524363050412B215B2C38552A555933"
            Case 420
                Function = "424B5125524A202F3D43412751484830"
            Case 421
                Function = "31352B31392056542858235F3C2B3E2A"
            Case 422
                Function = "263D465930542B4C55452B5A2D5A4B33"
            Case 423
                Function = "5520395A2D4228425D50425C4D3D5C32"
            Case 424
                Function = "5627232B5250372C282C3D4D3131304A"
            Case 425
                Function = "4F515A405F233052424C4A27313A435B"
            Case 426
                Function = "48323F2F49394637473C202727435B2E"
            Case 427
                Function = "4F2952503A3A35472929284254232A20"
            Case 428
                Function = "4C5A423B2E5E265E3D2D343B24354F4E"
            Case 429
                Function = "4A323525482D35495C33504E4B563231"
            Case 430
                Function = "2A262D48364335544F4425514C2F295A"
            Case 431
                Function = "3C385D405E21334A553A523E454F375D"
            Case 432
                Function = "3C2A4554412A52522A5A23293B524644"
            Case 433
                Function = "2731364E5920585A5B46343C43324E59"
            Case 434
                Function = "44482B4B4B44263E5931242E464F5C54"
            Case 435
                Function = "5A5C4C212F464F44292C49593A472039"
            Case 436
                Function = "49454349485A38354355262445394C42"
            Case 437
                Function = "4E2B3746272F2D332D5735245536313D"
            Case 438
                Function = "5E3F4E4B422A43305124303635275826"
            Case 439
                Function = "2144522948552C273D275A2E4966344E"
            Case 440
                Function = "433B4A3545552A492955584334303227"
            Case 441
                Function = "5340365A2F5421443C59213F5F3A5634"
            Case 442
                Function = "554C593E59373C5C50503D4F3F5D373E"
            Case 443
                Function = "374E5658312926534164304A48545733"
            Case 444
                Function = "572F5A56554750242B4536274D5C585D"
            Case 445
                Function = "5555505F4E2C29472459233E4F2A3C44"
            Case 446
                Function = "3C5D5359405D293D4C43362A205B4241"
            Case 447
                Function = "442E213F5E443D4A37285B2D255B454E"
            Case 448
                Function = "312E44264A215737542A2E4C51514337"
            Case 449
                Function = "5B27402A2525263B33234F424B5E4251"
            Case 450
                Function = "3B2D2E4738292A3A572140403543383F"
            Case 451
                Function = "5A4B5833245457365426583851425E2F"
            Case 452
                Function = "353E352653325C45484C235156494B3A"
            Case 453
                Function = "4E575A44494353344B31262D2F27234B"
            Case 454
                Function = "32305D5425405F5E3B33243D2F464655"
            Case 455
                Function = "2932343C3D40493357363C51545C2434"
            Case 456
                Function = "5E3F3D5F2E432C464D2953503C443757"
            Case 457
                Function = "55473B4E592E5B3F485F5D4D5E234A56"
            Case 458
                Function = "562F5653283A5324243D55442E5B4343"
            Case 459
                Function = "4C4B203B29573A28362F3045545F394D"
            Case 460
                Function = "57323D292E292A362A44493B2E233336"
            Case 461
                Function = "255E3F48502B584A294D383E52383346"
            Case 462
                Function = "5E4356274747305B3849263C234F432B"
            Case 463
                Function = "282F2B323E4D30334B2633594C58575A"
            Case 464
                Function = "3F525928474B38373D2E2334494A4B4A"
            Case 465
                Function = "523D313E5F2B5638505C59353A40523F"
            Case 466
                Function = "442B3D4C3E334D20675E59562B493E27"
            Case 467
                Function = "44413F473A4E4B5B3D554443255C675D"
            Case 468
                Function = "5C472E474A5E594251332C5440215955"
            Case 469
                Function = "432C5F40523D204C495B24562D55542D"
            Case 470
                Function = "284C4E28594F2B2F4E39573F2830433F"
            Case 471
                Function = "3721424B493B372526294D3C5348204B"
            Case 472
                Function = "422952432A29385826572F2D3B242038"
            Case 473
                Function = "5D2E394E2E5A23493B2633252335234F"
            Case 474
                Function = "4B29392D574B39275053563426213E30"
            Case 475
                Function = "425530253F26342B4023304029434338"
            Case 476
                Function = "4E394A5E472D2B203D354D36214B4B2C"
            Case 477
                Function = "3A5757244438583E363A5C5C3F475D27"
            Case 478
                Function = "513D46515C5B40484F417D203D51333E"
            Case 479
                Function = "542A502054493C325443393B3741582B"
            Case 480
                Function = "2E4C5738464237205E2F44432A2A3138"
            Case 481
                Function = "3A37422835384121335D2426592A3F4C"
            Case 482
                Function = "345E434024573B212E562C324855353E"
            Case 483
                Function = "2126582D545D3B426C3F4A4048504A2D"
            Case 484
                Function = "2C262429503538214D572C48435C5129"
            Case 485
                Function = "2850302D4941335E3F2E2347263C2743"
            Case 486
                Function = "474E482C364D5B5E4D2F48303E252356"
            Case 487
                Function = "5D363026473D532D4B2D2346572E5A33"
            Case 488
                Function = "2D3C24215E4D552A3D24284D354B4A34"
            Case 489
                Function = "263158375E443C2120433B3531313C4A"
            Case 490
                Function = "442A244E4A2D525D414C4C3041545E57"
            Case 491
                Function = "393F43332D3C49523F554D24352A3552"
            Case 492
                Function = "433D545C4E273E33395C425137453635"
            Case 493
                Function = "23582B30505D37512E303F51235B5126"
            Case 494
                Function = "3C5F5E24334D2C2D3C554F2D5D4D3F5F"
            Case 495
                Function = "3D35362D3C3E3D2C5C50552625434457"
            Case 496
                Function = "47343B39372139345D463F2023304442"
            Case 497
                Function = "415124582C233B484448213A4B3D5D39"
            Case 498
                Function = "483C46384940482844315121305F4B47"
            Case 499
                Function = "5B4E504F462B2E4D41533D2B2951565C"
            Case 500
                Function = "3B505E3F36334E53272144503558595E"
            Case 501
                Function = "2737555B3B4F572D29424B42362E582B"
            Case 502
                Function = "23494254353D2633573A393B33393E29"
            Case 503
                Function = "274D4635465436415A365E354E573A57"
            Case 504
                Function = "515D42363A274258455556423E4E2447"
            Case 505
                Function = "3E4F4542524F5C3C423C2A485C2A333A"
            Case 506
                Function = "38525E495A512B255A312F30353C562B"
            Case 507
                Function = "294A3239543F5348243A374C333E4454"
            Case 508
                Function = "2B395D575C2648544A423B4B58335B25"
            Case 509
                Function = "444D3E423C3C344827342B4242304735"
            Case 510
                Function = "5C4D2056305B3B3A2E28245D352D3B26"
            Case 511
                Function = "3829465F545A542B2E2942323D5B2D5C"
            Case 512
                Function = "404B5C3A2141393225242E405F475A55"
            Case 513
                Function = "4D5C2E2F532F3F443F215454574F3734"
            Case 514
                Function = "445A394C372C574629472621254B365F"
            Case 515
                Function = "4C272B3253285C2C5D245426385B5729"
            Case 516
                Function = "31404743243D5625495F4A3324342F5C"
            Case 517
                Function = "56534C5A23533640554C315C322E4B36"
            Case 518
                Function = "382D49344D3E49313045204E392D3A2D"
            Case 519
                Function = "285E552E3B47522A24513A3E2D54403B"
            Case 520
                Function = "72514136265A3630392B5D272A583B4D"
            Case 521
                Function = "3F4C574D3B2E3D2D403F245755335944"
            Case 522
                Function = "5E2325452B5B59303C395C4E51415D45"
            Case 523
                Function = "42583C26522B2E2E385249202A443B2C"
            Case 524
                Function = "4C21574438543B5D4C392B354C2E2B3A"
            Case 525
                Function = "2D2630375131493D42515C5A33532D5E"
            Case 526
                Function = "2C284E405D55504458364A56202B3A5B"
            Case 527
                Function = "2E395E4C494E2325445C2D5A4E482E27"
            Case 528
                Function = "553434555D23312C4C265C3248505F4C"
            Case 529
                Function = "393A5E524E5D5E415738234F4840564A"
            Case 530
                Function = "2F59315F32232E3C32435C294530582F"
            Case 531
                Function = "282D413E34564E3A2B5545323245503D"
            Case 532
                Function = "5D5D44414A5A4F3720215721554F2F26"
            Case 533
                Function = "4C245F46272D2B5F30542B5436213334"
            Case 534
                Function = "542D4936323E5D59283B29403E2E5723"
            Case 535
                Function = "555C26424B5D572E254B5A452044532F"
            Case 536
                Function = "4E412F3A3F56265F3756285E3F4C324B"
            Case 537
                Function = "2B494A504E30482630204E59252D2B4B"
            Case 538
                Function = "3F3B3155592D20353647393440565159"
            Case 539
                Function = "563843522A545B35562C543C23364B41"
            Case 540
                Function = "46544858414A26562526452348214354"
            Case 541
                Function = "482C44204855314C425D5C2A5B20394D"
            Case 542
                Function = "35332D38455A36543C492C3521565F5E"
            Case 543
                Function = "2D2D2F353242242035592B5F3756394B"
            Case 544
                Function = "4E562A465D23483F5F4840594C2D5957"
            Case 545
                Function = "205448482A3F3F47203C3E463857443F"
            Case 546
                Function = "4F2A534D303C4C3E39375D584D40203D"
            Case 547
                Function = "3041594F232E313E7A452B3536333831"
            Case 548
                Function = "3C2B4C3F4057554640245F212345512F"
            Case 549
                Function = "2F2F30455C275A58372C5F412B5A2451"
            Case 550
                Function = "37382C342148493920375825265F5C23"
            Case 551
                Function = "5F5C3024385E29564732213C5F304C54"
            Case 552
                Function = "283F242E2D444441322E555C56335A29"
            Case 553
                Function = "5A492F3829495A5C20435C3720215921"
            Case 554
                Function = "34445454472B23584933404D442E505A"
            Case 555
                Function = "422A43364E4A4F534229235453294647"
            Case 556
                Function = "435D5A2D235C4D4754283945522C4E20"
            Case 557
                Function = "3737342C4A3B2C2A3F4B315335443146"
            Case 558
                Function = "432559483B592E47564E5946404A3057"
            Case 559
                Function = "3849532033452B584D56572F502F4F58"
            Case 560
                Function = "4F2E5041552C3B3B2D582430265D3655"
            Case 561
                Function = "5F4F43233743574321445C523940455D"
            Case 562
                Function = "33205D4C54354724216C5933592C4444"
            Case 563
                Function = "4A2F5B505A453C4C3E342E2126295737"
            Case 564
                Function = "5C372149592E593243272C38342B314D"
            Case 565
                Function = "282E2F454B44333B284D5A59285F5D59"
            Case 566
                Function = "59284D2D255B4B52215A5C2A5041273F"
            Case 567
                Function = "442D285A5647302D4D464F44272A2843"
            Case 568
                Function = "21293D5F4A2E5E563D29462F32355040"
            Case 569
                Function = "4B3C28292A2341293238233F445B3054"
            Case 570
                Function = "363A5B435632322E3E264B4D47383B51"
            Case 571
                Function = "464A592024545A2C3E4A552446272720"
            Case 572
                Function = "202D5D3832552E4154523153494A464F"
            Case 573
                Function = "4A5E3248304F244B424E343124412557"
            Case 574
                Function = "375236255C453B2059365F264B253536"
            Case 575
                Function = "5C3440323B664F5E403B34363A494928"
            Case 576
                Function = "322A3C414131323D452E585E3A575F32"
            Case 577
                Function = "5D3D54574329532C4B5827295C36435D"
            Case 578
                Function = "57213E35304D3C574F513A332F3E5F4D"
            Case 579
                Function = "554F3F53355B54564C24332F47253F25"
            Case 580
                Function = "4E38334849374F305C3931373D532A31"
            Case 581
                Function = "4E3B334642383137402E58275A572E2B"
            Case 582
                Function = "372928555E52313227304A5054285729"
            Case 583
                Function = "43264A475C394821442E303F38462F23"
            Case 584
                Function = "423D495F2C3A2431312B53322E4C332E"
            Case 585
                Function = "3B2F5F31394F3D30442F523E41375A2B"
            Case 586
                Function = "4C2D2B34475130574C2F5C4E514D423C"
            Case 587
                Function = "4533283D292336424F442041293B2C52"
            Case 588
                Function = "54272D3742283B41433A3151544A235A"
            Case 589
                Function = "3F4D395E483F4E315B2823352C31585F"
            Case 590
                Function = "3C5844594637283C51353C383927484D"
            Case 591
                Function = "563D572644554E4C3158475C4243202D"
            Case 592
                Function = "312921325B352C49263624212D2D2C3F"
            Case 593
                Function = "442B294D473D284E2D523D4E393F253D"
            Case 594
                Function = "264A31302E3D26342C57403D5D4E413E"
            Case 595
                Function = "3B24434855573C5A555B653B54492529"
            Case 596
                Function = "49335D553833494E493D2746403C4635"
            Case 597
                Function = "524327465150412E313F553358482829"
            Case 598
                Function = "5F53504B3A414E3A554C344E2C3C3B3D"
            Case 599
                Function = "345E5E5931526F432957583038293F27"
            Case 600
                Function = "595E334E27442A514437505E48534151"
            Case 601
                Function = "325147253A5235322047522C4D4A572A"
            Case 602
                Function = "5D403F3F2D234F4E2F23442859253943"
            Case 603
                Function = "423C5D353F344C3F464B5D30483F322D"
            Case 604
                Function = "205E5A20472E26522A504F474C362336"
            Case 605
                Function = "274146423F522F353C4C5E28353C522C"
            Case 606
                Function = "53344D2A3A532A52303B3434335F213C"
            Case 607
                Function = "544F2B385E57265F4A524A263353415D"
            Case 608
                Function = "3B4A244A4F332E5E41585842563E5341"
            Case 609
                Function = "4828475D5D3F5927273A2D4B50213E35"
            Case 610
                Function = "3E5A44262421383D485C5A292E4B3B3C"
            Case 611
                Function = "434C3F364E233732334341363D50482C"
            Case 612
                Function = "35243C514D312A5A5A5A3F26294B4849"
            Case 613
                Function = "5C2D5153293F4F473C5F28562B453036"
            Case 614
                Function = "2B5F4A314320373547593E5F423C4D28"
            Case 615
                Function = "533A533F555C57444239402F5B265731"
            Case 616
                Function = "3231494B3D484D52452B202A37444934"
            Case 617
                Function = "2A54204B4B5B575430402B42514E4320"
            Case 618
                Function = "59392E4F512C3B352C2D3D58265C2E46"
            Case 619
                Function = "4F4A4057302D23244C542C3C5B253B48"
            Case 620
                Function = "473E565458204E374F53564B47553234"
            Case 621
                Function = "5A2D2754314C2F5F333F57232D375F48"
            Case 622
                Function = "315B2F2F5A262D362C21282549523756"
            Case 623
                Function = "5E395F3F344E392F3E47535E3154325C"
            Case 624
                Function = "4B2B525737383D3B5226245144552452"
            Case 625
                Function = "5B4A325D305B5E2D2C5F2D3A2C213028"
            Case 626
                Function = "2A4E454D215D20725A3D4F40205D3434"
            Case 627
                Function = "4647515548273544322F215C33493B52"
            Case 628
                Function = "25513A413D285846443341484D324027"
            Case 629
                Function = "3E583A5E442C32494826342D2C464743"
            Case 630
                Function = "205B4C23403B29433954583A5F334141"
            Case 631
                Function = "4E36503A3859533D423936352F2E5F29"
            Case 632
                Function = "4E3B244E3C20425B5032484226523356"
            Case 633
                Function = "392B284A2E4735554F37304B423B5B32"
            Case 634
                Function = "534D385551583051274F234F402E2D40"
            Case 635
                Function = "2A26413724343441573C5E2F3F244F55"
            Case 636
                Function = "5D3F4C392D2B264945442E4F2D5B382B"
            Case 637
                Function = "3E365F532044344738493953464B4E2A"
            Case 638
                Function = "2A5340553A353935523B2E32333D5E5D"
            Case 639
                Function = "353751533F393C3A52535F252F5E3820"
            Case 640
                Function = "4F3029324048315538233F5D30435E5C"
            Case 641
                Function = "51545A4B205A3A474D343A20402A5B3E"
            Case 642
                Function = "5825273C2E2A2C4F2D464223527D5A47"
            Case 643
                Function = "3E4F274F4636484D3D2F2338503C5A35"
            Case 644
                Function = "3446453E5F48353A504752323829545F"
            Case 645
                Function = "2F4D3A264839202C27504A5B264D2028"
            Case 646
                Function = "572C5839492F4B455448345B4A372829"
            Case 647
                Function = "40212B52304C343E444A2C4340325339"
            Case 648
                Function = "585E394A51405F285D492D303B45403D"
            Case 649
                Function = "54372E332F24584B402530215629525E"
            Case 650
                Function = "413C3024262B55255C3F41524D4C5852"
            Case 651
                Function = "3555515B28533931234D33235D38445A"
            Case 652
                Function = "4E564A582E5A5B52572033305F5D383E"
            Case 653
                Function = "303A26593A414C255C4758354846443D"
            Case 654
                Function = "4F212124494B564E4F2F5F563B542E3E"
            Case 655
                Function = "2F2D5530204743392F3B3F243B5E4048"
            Case 656
                Function = "342C303C5144444E2A504E394C444A58"
            Case 657
                Function = "30344921292B3849455A2B312841322E"
            Case 658
                Function = "254238325D2E454E35273B3F295B315D"
            Case 659
                Function = "3B45505E373148585D5C2E4A433A3131"
            Case 660
                Function = "503D52304A385D5B42463A313E3D4B21"
            Case 661
                Function = "2E204432415729494B212E4B28405B24"
            Case 662
                Function = "53303B4D72365645522E5A5E392D5F4B"
            Case 663
                Function = "27485C4C4A28412C4742353F375C2821"
            Case 664
                Function = "4E4A31493330583534234E495A4A2946"
            Case 665
                Function = "4A205E2640563228472C21533F23524E"
            Case 666
                Function = "4B573731405153373320255237543D3E"
            Case 667
                Function = "4D234D3546434A2E2E523E3630503D58"
            Case 668
                Function = "314F2B362834582D384957343B2F2447"
            Case 669
                Function = "385340245D2D493B48433C2451485039"
            Case 670
                Function = "5B482B474E2A3934404C4F5035303148"
            Case 671
                Function = "494D473A4E5E42496E213F274A5C5F49"
            Case 672
                Function = "393D4954472B37204E2D562C2B582F2E"
            Case 673
                Function = "525B265659315F414930434B29704D4B"
            Case 674
                Function = "3D544A354E5E452A235F2D372E583F5C"
            Case 675
                Function = "3646383E3839432A2759233755392335"
            Case 676
                Function = "2B4525214948242E385B4647595E555B"
            Case 677
                Function = "402A2849322528464A5D724957253A5C"
            Case 678
                Function = "4B435D46274F3529205053575E404134"
            Case 679
                Function = "413D213955375927545F572E5044432F"
            Case 680
                Function = "2B4E3B392348303D415B575D25553B47"
            Case 681
                Function = "52413A37323A55232B37354A24285E29"
            Case 682
                Function = "3B2535413D3D5B53513B5C4B3A554F43"
            Case 683
                Function = "463A3F26246F40235F4D2A3E26594859"
            Case 684
                Function = "453F42414E433D5359242C4E3B2E372B"
            Case 685
                Function = "305D342F26582D5B4D555D21303E2F52"
            Case 686
                Function = "26442A55365950514F483F3241535A39"
            Case 687
                Function = "384E4D372C535F5941533C5430282A44"
            Case 688
                Function = "43485E3A213553273C4E483559305D36"
            Case 689
                Function = "554E3C495C44404549413D382649294C"
            Case 690
                Function = "434A432834553A5A5C212E52404A245E"
            Case 691
                Function = "4C44435348583944442450435B2D2A3A"
            Case 692
                Function = "46545E594B5D3F4353512D264E474E41"
            Case 693
                Function = "47363D47364D48373128493445505B30"
            Case 694
                Function = "463B57523D5240502B3D4A55232E2C56"
            Case 695
                Function = "335A5B345E55454A485E4A484A3F2148"
            Case 696
                Function = "2B46212A342A3B375325304454522751"
            Case 697
                Function = "38363A3524532A585526323E4B4F245F"
            Case 698
                Function = "443C5B4F4C48283A41383B3658275041"
            Case 699
                Function = "3144594627235B4B302E2B4352273420"
            Case 700
                Function = "2933525B234E4C2D213844493E59213E"
            Case 701
                Function = "595B325C3F3F3723322636503B484C58"
            Case 702
                Function = "2554554C5E352A5F53425C46493A2370"
            Case 703
                Function = "5D312C292C2B3D5C5B4B2E2939412C2F"
            Case 704
                Function = "2C325030564A3D425A41373C4D465229"
            Case 705
                Function = "5A2B23592F4B48524E5F264E47432649"
            Case 706
                Function = "31294C5E3D3A4D212A2B5E5B2339395E"
            Case 707
                Function = "573B23465B245A5444535120305C4543"
            Case 708
                Function = "6E5F5E55503A42593B424E473F523A47"
            Case 709
                Function = "253026235758215A46464D4F20354D48"
            Case 710
                Function = "205E54444140335F23244D34273B2F24"
            Case 711
                Function = "4E31424131202E20575743495F523450"
            Case 712
                Function = "482B2C3D4F254A2A432F46384D20384B"
            Case 713
                Function = "3C4757213D232A38243F6736594D5C59"
            Case 714
                Function = "43462F485C482E4D282E3F3C31412F5C"
            Case 715
                Function = "372A323943323725495623485B452529"
            Case 716
                Function = "47364A4D3046403E5A4440592437522C"
            Case 717
                Function = "4D57534B5037274E4C473D504F54473E"
            Case 718
                Function = "2F502E242E3A2E274A52433730292520"
            Case 719
                Function = "364E3254473D4B3532592F5F26482645"
            Case 720
                Function = "232C584B3D5363504344413E5A505820"
            Case 721
                Function = "53235D213528402C245A3C2F504D5D5A"
            Case 722
                Function = "2A2D31295D4B474E3B435F2B534E2D31"
            Case 723
                Function = "3B38564B2C253C3B506B5B4354343241"
            Case 724
                Function = "31243D415A2E3D57434A252F26504742"
            Case 725
                Function = "3D4529232E24483B4D2A5740494E4359"
            Case 726
                Function = "4B4C3C2837563343342930494E4C372C"
            Case 727
                Function = "57364A202C4E5D2C3B2D294847282E44"
            Case 728
                Function = "5D5D594F284140203C3D37593B4D594B"
            Case 729
                Function = "37445F3731284E33352E264620454649"
            Case 730
                Function = "323D515B4938572E4A5136512E423C51"
            Case 731
                Function = "435C5231435D513E234A235A42523647"
            Case 732
                Function = "492F324029335F2C4A2C384E20372A55"
            Case 733
                Function = "29537D282A32304A312D20345A5F2151"
            Case 734
                Function = "523B5E3C3A465847274A504E4B44482F"
            Case 735
                Function = "36364B5F2B29374B575E5653352F324B"
            Case 736
                Function = "4A4F575544483E334C473D2B433B3E3B"
            Case 737
                Function = "505846563529504E5A4B46284B274233"
            Case 738
                Function = "4B5553594E372A452E2A3B3F4343305D"
            Case 739
                Function = "4D5C592F543F202050574F2C433A4F3B"
            Case 740
                Function = "41585D3C38292F2E3A4B2D295D20394A"
            Case 741
                Function = "4F5B5C31204E2446214F5B444F272175"
            Case 742
                Function = "3F3848313F343A3A5230452C39443D2C"
            Case 743
                Function = "3C4E234E423D313648573A52542A444F"
            Case 744
                Function = "4444424C3939312E36263B5C585E5C4F"
            Case 745
                Function = "40473949585C4C21544A2A2E253A3C46"
            Case 746
                Function = "3957484E5A4B254F4354273E2428212D"
            Case 747
                Function = "55532A302546595A243B403A4B235D27"
            Case 748
                Function = "212E5B5E2D373623524F4038214D4829"
            Case 749
                Function = "315F2F46415E325E5657572B3E3F2D37"
            Case 750
                Function = "3F4C2432252752593F3D5F585054362F"
            Case 751
                Function = "484951272433374F4A4E363850264844"
            Case 752
                Function = "5C582824403D4D4A255E5542435D2E21"
            Case 753
                Function = "332E24472F46524D4E403E425350463A"
            Case 754
                Function = "452A3C4D21545D2C5C203E4423382430"
            Case 755
                Function = "583D545C5357204735533141425D5035"
            Case 756
                Function = "5B58563A243B485427364E59472C5B61"
            Case 757
                Function = "34362A55395B3F332A503C3726315C4C"
            Case 758
                Function = "4B3F332721575F4028353B35505B573B"
            Case 759
                Function = "3C2432515F465B445B283F5D363F3F5D"
            Case 760
                Function = "25342F23245E2F34595A48294C3A5934"
            Case 761
                Function = "50425F51643426372F3D3C23383E3B3D"
            Case 762
                Function = "35465A4E30585F2F5E503D4A482D5155"
            Case 763
                Function = "432D2E4C5B343C45395B49395336433B"
            Case 764
                Function = "48513B45553C483E31484F244F305639"
            Case 765
                Function = "483E3D3A4C444B43504F57273D474B36"
            Case 766
                Function = "3B3733373647312A285C215E45395A43"
            Case 767
                Function = "302C43444B525D2E492B4844303F415E"
            Case 768
                Function = "4845523B37503D414C5A5D5747293B2F"
            Case 769
                Function = "54572F512C3D2E57454D462D365B4C34"
            Case 770
                Function = "584D283D54575D5B3E5F423F3F295E4C"
            Case 771
                Function = "41523C2D2A5B2B552139545D552C2E44"
            Case 772
                Function = "503A4A4F4E39324E513A524520202052"
            Case 773
                Function = "5A373B39382452313D26442D564B413F"
            Case 774
                Function = "2430353855355A374B5E28454D4C593B"
            Case 775
                Function = "5D2C582C555325362C293D48365C5C5A"
            Case 776
                Function = "3A374150202428455333475346594533"
            Case 777
                Function = "2643233A58362D5455455B4B2A444F38"
            Case 778
                Function = "332053572433382858365C392B523547"
            Case 779
                Function = "3D5640342E244D4E2B2E35285E42453B"
            Case 780
                Function = "58232051585F5C43475849502B402F56"
            Case 781
                Function = "3B25544E295E5E554F46235825374A46"
            Case 782
                Function = "37294557252D212A54255D2D2F462444"
            Case 783
                Function = "4C46395B28354E253B433D2E24242158"
            Case 784
                Function = "7B2C212D3A2E36522E5D484E2B232D57"
            Case 785
                Function = "3C5359345A4A4C26505B2B2F4E282D5E"
            Case 786
                Function = "29283C5C48412A4D2B2A4E2025482125"
            Case 787
                Function = "51244029462C2F4C3C2C252C41534235"
            Case 788
                Function = "2F2C3E5B38462C2559382B2A46254D20"
            Case 789
                Function = "4E495A50464B54352E2D443A5C494936"
            Case 790
                Function = "334725244D3A5F234750335F384B5C2C"
            Case 791
                Function = "5A5F4A30212D5E31214A4F3B2B3A313C"
            Case 792
                Function = "4648525B565D315C3628422B5928574A"
            Case 793
                Function = "574B49315F5E43295D38342623312D38"
            Case 794
                Function = "32445D44373840395457533B2851534A"
            Case 795
                Function = "284C4A3B5C5157405336403C5E534735"
            Case 796
                Function = "2C2D4B3358445C493D5E4E58272D4E5D"
            Case 797
                Function = "59375C33274E47335A202420305B3F51"
            Case 798
                Function = "5C56312B44235946303D34472A27364C"
            Case 799
                Function = "245D243C39214C5B2A36232A412B564C"
            Case 800
                Function = "4B5A50525833552031344E41543D2127"
            Case 801
                Function = "39232B463F285E5746594B365B362550"
            Case 802
                Function = "342B34544F4A56532F4C2A3C2F3D433B"
            Case 803
                Function = "5A3A2D2B315C3A4A452E5E234C524F30"
            Case 804
                Function = "555C54205B552851315E2B334552504F"
            Case 805
                Function = "413D505A363B574A37435F2340423331"
            Case 806
                Function = "435A29533A2157543C272E5942465B56"
            Case 807
                Function = "5D35462E3B493A3B3F4552513E2E4641"
            Case 808
                Function = "3B4B4D46533F583147532E294454685F"
            Case 809
                Function = "263E573D445D4B2A4F4A344B2B493C2F"
            Case 810
                Function = "5C624C5730285153532058522B496248"
            Case 811
                Function = "2E5E43465B685E5E3A2D592438533243"
            Case 812
                Function = "36214D35425A29244D33323950352D21"
            Case 813
                Function = "213E552D35465F5A58312C5D2B3A5148"
            Case 814
                Function = "3D3B48455C2647475B3C54575A3B4C3B"
            Case 815
                Function = "25472F4157362823374B4320574F5730"
            Case 816
                Function = "2358432830242F43375B30593F585E2D"
            Case 817
                Function = "3855313B3A4D5055263427212B353D49"
            Case 818
                Function = "4A39405842233A2C242B443459455A54"
            Case 819
                Function = "3F44334326245F3B455F393A404B5126"
            Case 820
                Function = "4757532728583B335223554158355D3E"
            Case 821
                Function = "534448505E4A613E5F4226483A545552"
            Case 822
                Function = "2C375E4157535C2E3331245C4646294E"
            Case 823
                Function = "5F445755212452305A49233024245449"
            Case 824
                Function = "50535A37322947324A534F7A534E4D2B"
            Case 825
                Function = "355B2857362D364E4A474E485D332541"
            Case 826
                Function = "2E273B3A5A592A372E4A2A59412D2A59"
            Case 827
                Function = "2A405B3F54465D2C52344A23365B4E44"
            Case 828
                Function = "2A2C312C4F36424828322D5F4828723C"
            Case 829
                Function = "20594E5A4355504A582E57203C25382F"
            Case 830
                Function = "394F46495E20592E302B5F4534253133"
            Case 831
                Function = "48242A244A4F34363E2B312C4B3B232A"
            Case 832
                Function = "5E265D4E2C252F532640366E20303024"
            Case 833
                Function = "5F2054365755343F5A4A4E57495E364C"
            Case 834
                Function = "242A3B523E293A292C43522F582B4B32"
            Case 835
                Function = "315B2354364A2B272A2933422F465A4A"
            Case 836
                Function = "543B4B2F452352382D285A4853292F52"
            Case 837
                Function = "4D2C20302029585D28592B4A37472C4B"
            Case 838
                Function = "29563E3052405E5A48294D4335255C4B"
            Case 839
                Function = "3035274C52524D5B3938332425302320"
            Case 840
                Function = "4F33505349493752392F32373F3A4A21"
            Case 841
                Function = "2C4336493D444B234C24563D3C2A4526"
            Case 842
                Function = "3D3E3027505B4E4434425A274A5B3836"
            Case 843
                Function = "4639235E5B3339283A5152572A2A404A"
            Case 844
                Function = "555A3237433456515044503139312541"
            Case 845
                Function = "2E504D4F56365C435751393C354B5E2C"
            Case 846
                Function = "2F5734292D40315A2932302724214154"
            Case 847
                Function = "5628324929402A525A244E4F785B3320"
            Case 848
                Function = "35634E5E28263C4F2B3B25463C55324D"
            Case 849
                Function = "31265B335A5D54372E2F5A5F2E534833"
            Case 850
                Function = "332748413E5D254C584A4B393D503530"
            Case 851
                Function = "513144295F2B593D43432B5D25455D2A"
            Case 852
                Function = "2336493A48253F5649515C4943375633"
            Case 853
                Function = "3D583D47424A56494F42342D4F47305B"
            Case 854
                Function = "595A2934375238353D5B314F2D28402E"
            Case 855
                Function = "3E5921383B48292B4738202745502549"
            Case 856
                Function = "403352202C232F2F33364D4838352132"
            Case 857
                Function = "2D544A31253420253B594F545C5F4229"
            Case 858
                Function = "4A575824275D402D243245595F583A3D"
            Case 859
                Function = "2B2B3025213020482F482B24393D4D3F"
            Case 860
                Function = "5545274E37334B41283C51464C4D5B34"
            Case 861
                Function = "2C49353E232451425C593130313D4259"
            Case 862
                Function = "423040214C4F5C4B313A5A41442E4020"
            Case 863
                Function = "4E273B4A242D2E3643243E5130435A30"
            Case 864
                Function = "375331272A4E423432565D3D2B29462A"
            Case 865
                Function = "32482F535E4F2E49295531232351472F"
            Case 866
                Function = "3F3844275428482D203D5E3A3F245735"
            Case 867
                Function = "4F27495B3E5A2F38485E294D573A2337"
            Case 868
                Function = "2741504E43305732584D51455F5F4435"
            Case 869
                Function = "325A2D2F305E373878307854513A4278"
            Case 870
                Function = "2D52265052373E244B422B462A545C2D"
            Case 871
                Function = "2A2C413C273A5830544B4D535C4D525D"
            Case 872
                Function = "32203F524B4C2929265D2E35254B2D56"
            Case 873
                Function = "373E353C2E3E335A304858394C5B454A"
            Case 874
                Function = "44314E352A30555039305A494A28273C"
            Case 875
                Function = "4A5E324D3C4F274D3E432825333C2631"
            Case 876
                Function = "5F2827332978402657444F2B47442645"
            Case 877
                Function = "5F5847405E393E4B355E21205C21565C"
            Case 878
                Function = "30204B554738464E274951553B4C5C5A"
            Case 879
                Function = "58495C3C3A5B4B4D525829514F423E2D"
            Case 880
                Function = "555253362B23525E5123534E2B5C3029"
            Case 881
                Function = "2B3D3D40575338315039543A4A21252F"
            Case 882
                Function = "58465E4D335D55344256313330494F36"
            Case 883
                Function = "5352474A455E233C24585E5253465325"
            Case 884
                Function = "48594A2E48282D3D5849353632465E54"
            Case 885
                Function = "4533343D3A4B365E40333A2C2C3E5E25"
            Case 886
                Function = "2A533B35582F3229242C2C38335D4929"
            Case 887
                Function = "465C365C462D4F39552D2A4259452C39"
            Case 888
                Function = "404D2824334B3929252A27352F324F5F"
            Case 889
                Function = "5F4C3F4033583B493B3855243A4C3E3E"
            Case 890
                Function = "4A4B4627574229522D4C2B3A4441375B"
            Case 891
                Function = "3E5A2F34325641574A3543232F2B3523"
            Case 892
                Function = "315E2824255E5C5044484023465F3D37"
            Case 893
                Function = "285159594E3833242B595F5636595A21"
            Case 894
                Function = "5154243A4D3D28565059285637415042"
            Case 895
                Function = "432B24425F45483930582B465F2A5A5D"
            Case 896
                Function = "34422A4B324B7878455958415F3D7859"
            Case 897
                Function = "24232C3F533C4D593428565F374A5F4A"
            Case 898
                Function = "5133355757254F4F4F413A5E302D4143"
            Case 899
                Function = "40404855564D23202E565C3E2339373B"
            Case 900
                Function = "264B2521585147385023473040505F49"
            Case 901
                Function = "435C4C4B37533E3744263D25383D2E33"
            Case 902
                Function = "3B3A5B37543C565A472A4F42584C2B5C"
            Case 903
                Function = "393B4C4C54682B3959354D40582F4332"
            Case 904
                Function = "5C5439492B47505C2F275C483C423840"
            Case 905
                Function = "473F40484C523C4645384558465D4959"
            Case 906
                Function = "315958535C442729304C4F5C54423234"
            Case 907
                Function = "2C48454352272F2C4B42202546373537"
            Case 908
                Function = "2A4A405E37303E523E5B542C35484351"
            Case 909
                Function = "5B2B424E583B26425330432A38376941"
            Case 910
                Function = "252649303D2D27535D3C3867212D433C"
            Case 911
                Function = "432B3A562D3A3D4C5F5D2C3528595457"
            Case 912
                Function = "41444F4C31422B21213A4E5A5F473C40"
            Case 913
                Function = "454B3C5B4D50373839234A233B533557"
            Case 914
                Function = "555928323B57324C254D3A3A5D562331"
            Case 915
                Function = "4B5F4343383E4F425B2F48415D4D4753"
            Case 916
                Function = "3B2153235A353E2B3F2E5F57503F3527"
            Case 917
                Function = "2C232E333F5B24372D2F4D41473E4B29"
            Case 918
                Function = "312C425344392145314821453A262844"
            Case 919
                Function = "3F26243F3A2852344A2C4F532047324A"
            Case 920
                Function = "5346373A236262572F444F5C28332F38"
            Case 921
                Function = "592A3B54565D2A5B59464E2D3E2F2754"
            Case 922
                Function = "4D4B56574020504C3149374B313D4334"
            Case 923
                Function = "40563B522D2F4B4F5F2C542620425928"
            Case 924
                Function = "2541203D2B4A235844254A2C3E3D345A"
            Case 925
                Function = "484E402F335B515B335C4D34575B4024"
            Case 926
                Function = "26383432303E322A4A41402F4629583D"
            Case 927
                Function = "553E5F483D444D2C50273951493E2C24"
            Case 928
                Function = "263A462E384C464921394C2537362D57"
            Case 929
                Function = "462C423457344A3A553D5E404F472E3D"
            Case 930
                Function = "2A24203B4831545142404C5E554F4742"
            Case 931
                Function = "332F20504A495A44395D3743214D2025"
            Case 932
                Function = "3C232A5F4B444536382D21364C4B2551"
            Case 933
                Function = "3E495F3A203D23404127424C525F3330"
            Case 934
                Function = "30545A4946202C532D40285F43535D5F"
            Case 935
                Function = "5244253D2651215B2C513A5332582D3D"
            Case 936
                Function = "4A355E3E564E3151473629512E584F32"
            Case 937
                Function = "332E3C315F774D3E24392A4D285F3F35"
            Case 938
                Function = "4C383A3328254942403C495B494F3148"
            Case 939
                Function = "2A6A332A5126233C52355D5A36552F25"
            Case 940
                Function = "3D4C2821532C2747563659545D3D443F"
            Case 941
                Function = "5D5A3B5437422A30284E425358474956"
            Case 942
                Function = "515C41375B305E435A413B3C3F353551"
            Case 943
                Function = "5C245B3F3A3C212559463E344F3D5527"
            Case 944
                Function = "4E505840544D5C302E254F2C4C302D36"
            Case 945
                Function = "3C4A3C262B38293532325E57423F2E25"
            Case 946
                Function = "42564C3C454937203D2D5353383A5945"
            Case 947
                Function = "2F3F403F4B4F3B4D4A40282937242423"
            Case 948
                Function = "205A312E3A42304B23574C595859363B"
            Case 949
                Function = "404E535C2A40452F40202B3834262755"
            Case 950
                Function = "215C59335338583E28282E524F3B3029"
            Case 951
                Function = "56463723292B4C2F66533B4530333154"
            Case 952
                Function = "282D535B2B254A464C395B5230313554"
            Case 953
                Function = "3E2848204C323A5A4F3C4D445B2E2823"
            Case 954
                Function = "404552495E2944583A464E344153245B"
            Case 955
                Function = "275F42585F4F462720465B2E3725362A"
            Case 956
                Function = "2C545F5167514937273349293828475A"
            Case 957
                Function = "5C3C3C455F49485A234B5029275C2855"
            Case 958
                Function = "423820552346264A313F49282C3D2D3F"
            Case 959
                Function = "4E41284859585243535A363328244E3C"
            Case 960
                Function = "3C49484D3B54204B3F3B3E3857242F47"
            Case 961
                Function = "413D2F3137535C475447464A43433539"
            Case 962
                Function = "2A28522424474F375056584546274C55"
            Case 963
                Function = "5C442648253F2852345952293A49232F"
            Case 964
                Function = "5340264B44415C27564F432C264C3826"
            Case 965
                Function = "585F5B2A3D58484B4A2C214E28413149"
            Case 966
                Function = "503241414A2F48382E2F5C4653492D35"
            Case 967
                Function = "495E234C30473A212328354F52475024"
            Case 968
                Function = "3F43594E3437563A2A2A474B515E4127"
            Case 969
                Function = "39242D565F56364E4C363936462B3824"
            Case 970
                Function = "75292A4B205F32352020373C4E323655"
            Case 971
                Function = "315F4729753D2036492031243730534D"
            Case 972
                Function = "275C4E28304244453F59415E332B3C4E"
            Case 973
                Function = "3F2D343E2E4E58394C524B305A5D3F29"
            Case 974
                Function = "4134423557475C3D374355502F362F20"
            Case 975
                Function = "4D4837562A422C32235846373C333437"
            Case 976
                Function = "302542454B5525335A4D5B3A593C3B7B"
            Case 977
                Function = "39493E534824405942525E4335445E46"
            Case 978
                Function = "384A35562F5C3E284039414E23532B52"
            Case 979
                Function = "3E26372A4D3A3E38532F265B3037543D"
            Case 980
                Function = "444B3A5E4352234F3D5C2A5832425953"
            Case 981
                Function = "212D4F234B4B2E3B2B20593A5B2E2F3E"
            Case 982
                Function = "273D345F2E57422A405D26484B484855"
            Case 983
                Function = "264549343258404B492D344831413C53"
            Case 984
                Function = "49374C503C55393355335A2C26333C30"
            Case 985
                Function = "5748562B51523247304F66313A24464A"
            Case 986
                Function = "452A5320453C2A5A42535A4755293055"
            Case 987
                Function = "5B46552F4431533E5C295D24553B2336"
            Case 988
                Function = "5D483F4F505E2C2B355F313D4042553E"
            Case 989
                Function = "393B392847293D3A55493C482E564D49"
            Case 990
                Function = "502F5C214D4B264C4B325E343F3E2C4E"
            Case 991
                Function = "237445562F265424262B324D3030393D"
            Case 992
                Function = "4B4E57243A344E542A4C423950525254"
            Case 993
                Function = "3F202D26293B2F61522F4E5F2D244C27"
            Case 994
                Function = "283B3F3C595C31532E523F50475F4B39"
            Case 995
                Function = "58253F213B3A2850532D2A2B4F38545B"
            Case 996
                Function = "3A4C29313C5C383D5F203C5F5B3A5156"
            Case 997
                Function = "5C5B45572B5D4C273940283325532431"
            Case 998
                Function = "3F2D26485F32262E2D5B3E302639344B"
            Case 999
                Function = "43205A59414A3C535B422C58423C2529"
            Case 1000
                Function = "5F275A443546382757315D475A512D23"
    End Select
    End Function
    Scott Turchin
    MCSE, MCP+I
    http://www.tngbbs.com
    ----------------------
    True Karate-do is this: that in daily life, one's mind and body be trained and developed in a spirit of humility; and that in critical times, one be devoted utterly to the cause of justice. -Gichin Funakoshi

    Comment

    Working...
    X