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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100c706d
mov eax, dword fs:[0]
push eax
sub esp, 0x70
mov eax, dword [0x100ec084]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x5c], edi
mov ebx, dword [ebp + 8]
lea esi, [edi + 0x28]
mov ecx, esi
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x64], ebx
call fcn.1008dc50
mov eax, ebx
xor edx, edx
xor eax, 0xdeadbeef
mov ecx, 0x1f31d
and eax, 0x7fffffff
div ecx
imul eax, eax, 0xb14
imul ecx, edx, 0x41a7
sub ecx, eax
lea eax, [ecx + 0x7fffffff]
cmovns eax, ecx
lea ecx, [edi + 0x2c]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.10078c30
mov edi, dword [eax + 4]
test edi, edi
je 0x1007968b
mov eax, dword [ebp - 0x5c]
cmp edi, dword [eax + 0x34]
je 0x1007968b
mov edi, dword [edi + 0xc]
test edi, edi
je 0x1007968b
mov ecx, esi
mov dword [ebp - 4], 0
call fcn.1008dd10
mov eax, edi
jmp 0x10079846
mov ecx, esi
mov dword [ebp - 4], 1
call fcn.1008dd10
mov edi, dword [ebx + 8]
mov dword [ebp - 4], 0xffffffff
call fcn.100aeb80
cmp dword [edi + 8], eax
jne 0x10079844
mov edi, dword [edi]
cmp dword [edi + 0x14], 0x10
jb 0x100796bb
mov edi, dword [edi]
mov eax, dword [ebp - 0x5c]
mov ecx, edi
add eax, 4
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x70], eax
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100796d0
sub ecx, edx
mov ebx, 0x811c9dc5
mov edx, 0
je 0x100796f6
movzx eax, byte [edx + edi]
inc edx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp edx, ecx
jb 0x100796e5
and ebx, 0x7fffffff
mov edi, dword [ebp - 0x70]
xor edx, edx
mov ecx, 0x1f31d
mov eax, ebx
div ecx
imul eax, eax, 0xb14
imul ecx, edx, 0x41a7
sub ecx, eax
lea eax, [ecx + 0x7fffffff]
cmovns eax, ecx
mov ecx, edi
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.10078b30
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x100797fd
cmp ebx, dword [edi + 8]
je 0x100797fd
mov ebx, dword [ebx + 0xc]
test ebx, ebx
je 0x100797fd
mov ecx, esi
mov dword [ebp - 0x70], esi
call fcn.1008dc50
lea eax, [ebp - 0x64]
mov dword [ebp - 4], 3
push eax
mov eax, dword [ebp - 0x5c]
add eax, 0x2c
push eax
call fcn.10078ac0
mov edi, eax
add esp, 8
test edi, edi
jne 0x100797eb
mov eax, dword [ebp - 0x68]
mov eax, dword [eax + 8]
push dword [eax]
call ebx
lea eax, [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x5c]
add eax, 0x2c
push eax
call fcn.10078ac0
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x100797eb
push 0x14c
push str.C:UsersuserDesktopOld_ProtoValveProtoprotobuf_2.5.0_srcgoogleprotobufmessage.cc
push 2
lea ecx, [ebp - 0x34]
call fcn.1008d6d0
mov ecx, dword [ebp - 0x68]
mov byte [ebp - 4], 4
push dword [ecx + 4]
mov ecx, eax
push str.registered:
push str.Type_appears_to_be_in_generated_pool_but_wasnt
call fcn.1008d9c0
mov ecx, eax
call fcn.1008d9c0
mov ecx, eax
call fcn.1008d920
push eax
lea ecx, [ebp - 0x5d]
call fcn.1008d820
lea ecx, [ebp - 0x34]
call fcn.1008d7b0
mov ecx, esi
mov dword [ebp - 4], 5
call fcn.1008dd10
mov eax, edi
jmp 0x10079846
push 0x13b
push str.C:UsersuserDesktopOld_ProtoValveProtoprotobuf_2.5.0_srcgoogleprotobufmessage.cc
push 2
lea ecx, [ebp - 0x58]
call fcn.1008d6d0
mov ecx, dword [ebp - 0x68]
mov dword [ebp - 4], 2
mov ecx, dword [ecx + 8]
push dword [ecx]
mov ecx, eax
push str.File_appears_to_be_in_generated_pool_but_wasnt_registered:
call fcn.1008d9c0
mov ecx, eax
call fcn.1008d920
push eax
lea ecx, [ebp - 0x5e]
call fcn.1008d820
lea ecx, [ebp - 0x58]
call fcn.1008d7b0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.100c30b8
mov esp, ebp
pop ebp
ret 4