416691 key             = dword ptr  4
 416691 len             = dword ptr  8
 416691 initial_seed    = dword ptr  0Ch
 416691
 416691		mov     eax, [esp+0Ch]		; поместим в eax initial_seed
 416695		xor     ecx, ecx                ; обнулим ecx
 416697		cmp     [esp+len], ecx          ; сравним длину с 0
 41669B		not     eax                     ; инвертируем initial_seed
 41669D		jbe     short get_hash_end      ; переход, если длина меньше или равна 0
 41669F		push    esi
 4166A0 get_hash_loop:
 4166A0		mov     edx, [esp+4+key]        ; в edx - адрес переданного ключа
 4166A4		movzx   esi, al                 ; в esi - младший байт initial_seed
 4166A7		movzx   edx, byte ptr [ecx+edx]	; в edx - очередной байт ключа
 4166AB		xor     edx, esi
 4166AD		shr     eax, 8                  ; сдвигаем initial_seed вправо на 8 бит
 4166B0		mov     edx, array[edx*4]       ; в edx - dword по адресу array + edx*4
 4166B7		xor     eax, edx                ; формируем новый initial_seed
 4166B9		inc     ecx                     ; накинем счётчик
 4166BA		cmp     ecx, [esp+4+len]        ; счётчик равен длине ?
 4166BE		jb      short get_hash_loop     ; если меньше - следующая итерация
 4166C0		pop     esi                     
 4166C1 get_hash_end:
 4166C1		not     eax                     ; перед возвратом ещё раз инвертируем initial_seed
						; он и есть hash-code - результат функции
 4166C3		retn