Function at 0x496280
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov edx, ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x4ef418]
xor eax, ebp
mov dword [ebp - 0x10], eax
movzx eax, word [ebp + 0xc]
mov esi, dword [edx + 0x18]
test eax, 0x180
je 0x49633c
bt esi, 0xb
mov eax, dword [edx + 0x10]
mov edi, dword [edx + 0x14]
jae 0x4962e4
mov dword [ebp - 0x24], eax
mov ebx, dword [0x4f6d04]
mov esi, dword [0x4f6d00]
mov eax, dword [0x4f6cf8]
or eax, dword [0x4f6cfc]
jne 0x4962db
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [ebp + 8]
xor ebx, edi
xor esi, dword [ebp - 0x24]
push ebx
push esi
jmp 0x4962e6
push edi
push eax
push 8
call fcn.00447d50
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0045bb2d
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov eax, 0xb
mov edi, ecx
push ebx
push esi
push eax
call fcn.00447d50
mov eax, dword [ebp - 0x24]
cmp dword [eax], 0
je 0x4962ed
mov esi, esp
push eax
sub esp, 8
mov ecx, esp
push dword [eax]
call fcn.0048fa70
mov ecx, edi
call fcn.00496520
mov esp, esi
jmp 0x4962ed
mov eax, 6
mov ecx, dword [ebp + 8]
jmp 0x496306
and esi, 0x1802
mov ebx, dword [edx + 0x14]
mov eax, esi
mov edi, dword [edx]
mov esi, dword [edx + 0x10]
test edi, edi
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
je 0x4964e0
cmp eax, 0x1000
je 0x4964e0
mov ecx, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], esi
and esi, 0xff
xor esi, 0x84222325
mov eax, esi
mov edx, 0x1b3
mul edx
imul esi, esi, 0x100
or esi, edx
mov dword [ebp - 0x18], esi
shr ecx, 8
and ecx, 0xff
xor ecx, eax
mov eax, ecx
mov edx, 0x1b3
mul edx
mov dword [ebp - 0x1c], eax
mov esi, 0xcbf29ce4
imul esi, esi, 0x1b3
add esi, dword [ebp - 0x18]
imul eax, ecx, 0x100
add eax, edx
imul ecx, esi, 0x1b3
add ecx, eax
mov eax, dword [ebp - 0x14]
shr eax, 0x10
and eax, 0xff
xor eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov edx, 0x1b3
mul edx
mov esi, eax
imul eax, dword [ebp - 0x14], 0x100
add eax, edx
imul ecx, ecx, 0x1b3
add ecx, eax
mov eax, dword [ebp - 0x20]
shr eax, 0x18
xor esi, eax
mov eax, esi
mov edx, 0x1b3
mul edx
imul esi, esi, 0x100
add esi, edx
mov dword [ebp - 0x18], esi
mov esi, ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x14], ebx
and ebx, 0xff
xor ebx, eax
mov eax, ebx
mov edx, 0x1b3
mul edx
mov dword [ebp - 0x1c], eax
imul ecx, ecx, 0x1b3
mov eax, dword [ebp - 0x18]
add eax, ecx
imul ebx, ebx, 0x100
add ebx, edx
imul ecx, eax, 0x1b3
add ebx, ecx
shr esi, 8
and esi, 0xff
xor esi, dword [ebp - 0x1c]
mov eax, esi
mov ecx, 0x1b3
mul ecx
imul ecx, esi, 0x100
add ecx, edx
imul edx, ebx, 0x1b3
add ecx, edx
mov edx, dword [ebp - 0x20]
shr edx, 0x10
and edx, 0xff
xor edx, eax
mov eax, edx
mov esi, edx
mov edx, 0x1b3
mul edx
mov ebx, eax
imul esi, esi, 0x100
add esi, edx
mov edx, dword [ebp - 0x14]
shr edx, 0x18
imul eax, ecx, 0x1b3
add esi, eax
xor ebx, edx
mov eax, ebx
mov ecx, 0x1b3
mul ecx
imul ebx, ebx, 0x100
add ebx, edx
imul ecx, esi, 0x1b3
add ebx, ecx
mov cl, byte [edi]
mov esi, eax
test cl, cl
je 0x4964e0
inc edi
movzx ecx, cl
xor ecx, esi
mov eax, ecx
mov esi, 0x1b3
mul esi
imul ebx, esi
add ebx, edx
mov edx, 0x100
imul ecx, edx
add ebx, ecx
mov cl, byte [edi]
inc edi
mov esi, eax
test cl, cl
jne 0x4964ba
mov eax, dword [ebp - 0x28]
cmp eax, 2
je 0x496332
cmp eax, 0x1000
mov ecx, dword [ebp + 8]
je 0x496301
mov edi, ecx
cmp eax, 0x800
jne 0x496310
mov eax, 0xa
mov ecx, edi
jmp 0x496306