Function at 0x466720
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f5bc3
mov eax, dword fs:[0]
push eax
sub esp, 0x100
mov eax, dword [0x535a40]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x94], edi
push dword [edi + 0x2c]
mov esi, dword [ebp + 8]
xorps xmm0, xmm0
movups xmmword [ebp - 0xf8], xmm0
mov dword [ebp - 4], 0
mov dword [ebp - 0xfc], 0x1c
movq qword [ebp - 0xe8], xmm0
mov dword [ebp - 0xf8], 2
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
mov dword [ebp - 0xec], eax
lea eax, [ebp - 0xfc]
push eax
push esi
call dword [sym.imp.USER32.dll_SetMenuInfo]
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetMenuItemCount]
push 0x2c
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0xd8]
push 0
push eax
mov dword [ebp - 0xdc], 0x30
call fcn.004c53a0
xor esi, esi
add esp, 0xc
cmp dword [ebp - 0x98], esi
jle 0x466a5a
nop dword [eax]
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xd8], 0x30
push eax
push 1
push esi
push dword [ebp + 8]
mov dword [ebp - 0xd4], 0
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
mov eax, dword [ebp - 0xd4]
je 0x466822
mov dword [ebp - 0xbc], 0x65
cmp eax, 0x800
je 0x46682c
mov dword [ebp - 0xbc], 0
test eax, 0x100
jne 0x466a4d
or eax, 0x100
mov dword [ebp - 0xd4], eax
lea eax, [ebp - 0xdc]
push eax
push 1
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_SetMenuItemInfoW]
cmp dword [ebp - 0xbc], 0x65
je 0x466a4d
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xd8], 6
push eax
push 1
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetMenuItemInfoW]
test eax, eax
je 0x46689e
mov ecx, dword [ebp - 0xc8]
test ecx, ecx
je 0x46689e
push ecx
mov eax, esp
mov dword [eax], ecx
mov ecx, edi
call fcn.00466720
jmp 0x466a4d
push 0x400
push 0x40
lea eax, [ebp - 0x90]
push eax
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetMenuStringW]
test eax, eax
je 0x466a4d
mov edx, dword [ebp - 0xcc]
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
movzx eax, dh
xor ecx, eax
movzx eax, byte [ebp - 0xca]
imul ecx, ecx, 0x1000193
xor ecx, eax
movzx eax, byte [ebp - 0xc9]
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 4]
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x104]
push eax
call fcn.00445ce0
mov eax, dword [eax + 4]
test eax, eax
jne 0x46691c
mov eax, dword [edi + 8]
cmp dword [ebp - 0xcc], 0
je 0x466963
mov ecx, dword [ebp - 0x94]
cmp eax, dword [ecx + 8]
je 0x466963
lea edx, [eax + 0xc]
lea eax, [ebp - 0x90]
lea edi, [eax + 2]
nop dword [eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x466940
sub eax, edi
mov ecx, edx
sar eax, 1
push eax
lea eax, [ebp - 0x90]
push eax
call fcn.0042f450
jmp 0x466a47
mov byte [ebp - 4], 1
call fcn.0042db70
mov ecx, eax
test ecx, ecx
je 0x466a77
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0xa0], eax
lea ecx, [ebp - 0x90]
mov byte [ebp - 4], 2
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x466993
sub ecx, edx
lea eax, [ebp - 0x90]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xa0]
call fcn.0042f450
mov edi, dword [ebp - 0xa0]
mov eax, dword [ebp - 0xcc]
add edi, 0xfffffff0
push edi
mov dword [ebp - 0x9c], 0xffffffff
mov dword [ebp - 0xac], eax
call fcn.00440d70
add eax, 0x10
mov dword [ebp - 0xa4], 0xffffffff
add esp, 4
mov dword [ebp - 0xa8], eax
mov ecx, dword [ebp - 0x94]
lea eax, [ebp - 0xac]
push eax
lea eax, [ebp - 0x10c]
mov byte [ebp - 4], 3
push eax
lea ecx, [ecx + 4]
call fcn.00466310
mov edx, dword [ebp - 0xa8]
or eax, 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x466a2e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
or eax, 0xffffffff
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x466a47
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x94]
inc esi
cmp esi, dword [ebp - 0x98]
jl 0x4667e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004c34b7
mov esp, ebp
pop ebp
ret 4
push 0x80004005
call fcn.0042d270
int3