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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1018eb8d
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0xc]
movzx eax, cl
xor eax, 0x811c9dc5
mov dword [ebp - 0x10], edi
imul edx, eax, 0x1000193
mov eax, ecx
sar eax, 8
movzx eax, al
xor edx, eax
imul ecx, edx, 0x1000193
mov edx, dword [ebp + 0xc]
mov eax, edx
sar eax, 0x10
movzx eax, al
sar edx, 0x18
xor ecx, eax
movzx eax, dl
imul ecx, ecx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 0x20]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.10001f10
mov eax, dword [eax + 4]
test eax, eax
jne 0x10002dff
mov eax, dword [edi + 0x24]
cmp eax, dword [edi + 0x24]
jne 0x10002e88
cmp byte [ebp + 0x14], 0
jne 0x10002e88
lea eax, [ebp + 0xc]
xor esi, esi
push eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [edi + 0x20]
call fcn.10002220
mov ecx, dword [eax]
mov eax, 0x6bca1af3
imul esi
add ecx, 0xc
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push esi
call fcn.10001a80
fldz
lea ecx, [edi + 0x40]
xor eax, eax
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x24], eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x1c]
mov byte [ebp - 0x36], 1
push eax
fstp dword [ebp - 0x20]
mov dword [ebp - 0x30], 0xffffffff
mov byte [ebp - 0x27], 1
call fcn.10002020
mov ecx, 8
lea esi, [ebp - 0x3c]
mov edi, dword [eax]
add edi, 0xc
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x28], 0x102183ec
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov al, byte [ebp + 0x10]
push 0x102248c0
push 0x102183f0
mov byte [ebp - 0x4c], al
call fcn.101637e4
add esp, 8
mov esi, eax
mov edi, 0x811c
mov ecx, 1
inc ecx
cmp byte [ecx + esi], 0
jne 0x10002ed0
xor edx, edx
test ecx, ecx
je 0x10002ef1
lea ecx, [ecx]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1193
cmp edx, ecx
jb 0x10002ee0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x20], eax
mov edi, dword [ebp - 0x10]
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 4], 0
push eax
mov ecx, edi
call fcn.10002410
mov esi, dword [eax]
add esi, 0x10
mov eax, dword [esi + 0x24]
and eax, 3
mov byte [ebp - 4], 1
sub eax, 1
je 0x10002f2f
sub eax, 1
jne 0x10002f3c
push esi
jmp 0x10002f32
push dword [esi + 0x1c]
mov eax, dword [esi + 0x20]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp - 0x4c]
mov dword [esi + 0x24], 0
push eax
mov ecx, esi
call fcn.100047b0
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x28]
and eax, 3
mov dword [ebp - 4], 2
sub eax, 1
je 0x10002f77
sub eax, 1
jne 0x10002f84
lea ecx, [ebp - 0x4c]
push ecx
jmp 0x10002f7a
push dword [ebp - 0x30]
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax]
call eax
add esp, 4
lea eax, [ebp + 0xc]
mov dword [ebp - 4], 0xffffffff
push eax
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.10002410
pop edi
pop esi
mov ecx, dword [eax]
mov eax, dword [ebp + 8]
add ecx, 0x10
mov dword [eax], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10