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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101d473f
mov eax, dword fs:[0]
push eax
sub esp, 0xf8
mov eax, dword [0x10216080]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x61], cl
mov eax, dword fs:[0x2c]
mov edx, dword [0x1021c9f4]
mov edx, dword [eax + edx*4]
mov eax, dword [0x104ce678]
cmp eax, dword [edx + 4]
jle 0x10191f2f
push 0x104ce678
call fcn.101a94df
add esp, 4
cmp dword [0x104ce678], 0xffffffff
jne 0x10191f2f
xorps xmm0, xmm0
mov dword [ebp - 4], 0
movups xmmword [0x104ce658], xmm0
push 0x70
movups xmmword [0x104ce668], xmm0
mov dword [0x104ce658], 0
mov dword [0x104ce65c], 0
mov dword [0x104ce660], 0
call fcn.101a8fc9
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [0x104ce65c], eax
mov dword [0x104ce664], 0
mov dword [0x104ce668], 0
mov dword [0x104ce66c], 0
mov byte [ebp - 4], 2
mov ecx, 0x104ce664
push eax
push 0x10
mov dword [0x104ce670], 7
mov dword [0x104ce674], 8
mov dword [0x104ce658], 0x3f800000
call fcn.101139e0
push 0x101d75a0
call fcn.101a9413
push 0x104ce678
mov dword [ebp - 4], 0xffffffff
call fcn.101a948e
add esp, 8
cmp byte [ebp - 0x61], 0
jne 0x10191f3f
mov ecx, 0x104ce658
call fcn.101932c0
cmp dword [0x104ce660], 0
jne 0x101923e9
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
test eax, eax
je 0x101923e9
mov esi, dword [eax + 0xc]
add esi, 0x14
mov dword [ebp - 0x6c], esi
mov edi, dword [esi]
mov dword [ebp - 0x70], edi
cmp edi, esi
je 0x101923ba
mov eax, esi
lea esi, [edi - 8]
mov dword [ebp - 0x84], esi
test esi, esi
je 0x101923ad
xorps xmm0, xmm0
mov dword [ebp - 0x74], 0
lea ecx, [ebp - 0x48]
mov dword [ebp - 0x78], 0
movups xmmword [ebp - 0x48], xmm0
movups xmmword [ebp - 0x38], xmm0
call fcn.10193550
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 3
mov esi, dword [esi + 0x18]
lea ecx, [ebp - 0x74]
push eax
push ecx
mov eax, esp
lea edx, [ebp - 0x78]
mov dword [eax], esi
call fcn.10191670
add esp, 8
test al, al
je 0x1019239b
mov edx, dword [edi + 0x20]
xorps xmm0, xmm0
mov ecx, edx
mov dword [ebp - 0x50], 0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x4c], 0
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x10191ff0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x60]
call fcn.1010ddd0
mov byte [ebp - 4], 4
lea edx, [ebp - 0x60]
cmp dword [ebp - 0x4c], 7
mov esi, dword [ebp - 0x50]
cmova edx, dword [ebp - 0x60]
seta byte [ebp - 0x61]
test esi, esi
je 0x1019204b
lea eax, [esi - 1]
or ecx, 0xffffffff
cmp eax, ecx
cmovb ecx, eax
cmp word [edx + ecx*2], 0x5c
lea eax, [edx + ecx*2]
je 0x10192045
cmp eax, edx
je 0x1019204b
sub eax, 2
cmp word [eax], 0x5c
jne 0x10192038
sub eax, edx
sar eax, 1
jmp 0x1019204e
or eax, 0xffffffff
cmp eax, 0xffffffff
je 0x10192393
lea edx, [eax + 1]
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x9c], xmm0
cmp esi, edx
jb 0x10192409
sub esi, edx
lea eax, [ebp - 0x60]
or ecx, 0xffffffff
cmp esi, 0xffffffff
cmovb ecx, esi
cmp byte [ebp - 0x61], 0
push ecx
cmovne eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x9c]
lea eax, [eax + edx*2]
push eax
call fcn.1010ddd0
mov byte [ebp - 4], 5
lea esi, [ebp - 0x9c]
cmp dword [ebp - 0x88], 7
xorps xmm0, xmm0
mov eax, dword [ebp - 0x8c]
cmova esi, dword [ebp - 0x9c]
seta dl
test dl, dl
movups xmmword [ebp - 0x28], xmm0
lea eax, [esi + eax*2]
lea esi, [ebp - 0x9c]
mov dword [ebp - 0x7c], eax
cmovne esi, dword [ebp - 0x9c]
cmp esi, eax
jne 0x101920fe
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xf
mov byte [ebp - 0x28], 0
jmp 0x1019218a
sub eax, esi
xor edx, edx
sar eax, 1
mov edi, 0xf
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x14], edi
cmp eax, 0x7fffffff
ja 0x10192413
cmp eax, edi
jbe 0x10192158
or eax, edi
cmp eax, 0x7fffffff
jbe 0x1019212e
mov eax, 0x7fffffff
jmp 0x10192139
cmp eax, 0x16
mov ecx, 0x16
cmovb eax, ecx
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x28]
push eax
call fcn.1011c280
mov edi, dword [ebp - 0x68]
add esp, 8
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x14], edi
mov al, byte [esi]
lea ecx, [ebp - 0x28]
cmp edi, 0xf
cmova ecx, dword [ebp - 0x28]
add esi, 2
mov byte [edx + ecx], al
mov edx, dword [ebp - 0x18]
inc edx
mov dword [ebp - 0x18], edx
cmp esi, dword [ebp - 0x7c]
je 0x1019217b
mov edi, dword [ebp - 0x14]
jmp 0x10192158
cmp dword [ebp - 0x14], 0xf
lea eax, [ebp - 0x28]
cmova eax, dword [ebp - 0x28]
mov byte [eax + edx], 0
lea ecx, [ebp - 0x9c]
mov byte [ebp - 4], 7
call fcn.1010f990
cmp dword [ebp - 0x14], 0xf
lea edi, [ebp - 0x28]
mov esi, dword [ebp - 0x28]
lea edx, [ebp - 0x28]
mov eax, dword [ebp - 0x18]
seta cl
cmova edi, esi
test cl, cl
je 0x101921b7
add eax, esi
jmp 0x101921bc
add eax, edx
lea esi, [ebp - 0x28]
mov dword [ebp - 0x68], eax
cmp esi, eax
je 0x101921da
sub edi, esi
movsx eax, byte [esi]
push eax
call fcn.101b63f4
mov byte [esi + edi], al
add esp, 4
inc esi
cmp esi, dword [ebp - 0x68]
jne 0x101921c5
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x100]
call fcn.10119b10
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 8
push 0x14
mov dword [ebp - 0xd8], 0
mov eax, dword [eax + 0x18]
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0x74]
mov dword [ebp - 0xe4], eax
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd4], 0
call fcn.101a8fc9
add esp, 4
mov dword [eax], eax
mov dword [eax + 4], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
push eax
push 0x10
lea ecx, [ebp - 0xd0]
mov byte [ebp - 4], 0xa
call fcn.101139e0
mov ecx, dword [ebp - 0xd8]
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0xd8], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebp - 0xd4]
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], ecx
mov ecx, dword [ebp - 0xd0]
mov dword [ebp - 0xd0], eax
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0xcc]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], ecx
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc4], eax
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], 7
mov dword [ebp - 0x2c], 8
mov dword [ebp - 0xc0], eax
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0xb
call fcn.1017e240
mov byte [ebp - 4], 0xc
lea edi, [ebp - 0x28]
cmp dword [ebp - 0x14], 0xf
mov esi, 0x811c9dc5
cmova edi, dword [ebp - 0x28]
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10192312
sub ecx, edx
mov edx, 0
je 0x10192333
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10192322
lea eax, [ebp - 0x100]
mov dword [ebp - 0x80], esi
push eax
lea eax, [ebp - 0x80]
push eax
call fcn.101932a0
mov ecx, eax
call fcn.10192420
lea ecx, [ebp - 0x100]
call fcn.10178970
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x14]
cmp ecx, 0xf
jbe 0x10192390
mov edx, dword [ebp - 0x28]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10192386
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1019240e
push ecx
push edx
call fcn.101a942d
add esp, 8
mov edi, dword [ebp - 0x70]
lea ecx, [ebp - 0x60]
call fcn.1010f990
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0xffffffff
call fcn.101789e0
mov eax, dword [ebp - 0x6c]
mov edi, dword [edi]
mov dword [ebp - 0x70], edi
cmp edi, eax
jne 0x10191f75
mov edi, dword [0x104ce65c]
mov esi, dword [edi]
cmp esi, edi
je 0x101923e9
nop word [eax + eax]
push 0
lea edx, [esi + 0xc]
lea ecx, [ebp - 0x104]
call fcn.10191770
mov esi, dword [esi]
add esp, 4
cmp esi, edi
jne 0x101923d0
mov eax, 0x104ce658
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.101a8fbb
mov esp, ebp
pop ebp
ret
call fcn.10119cc0
call fcn.101ae3cf
call fcn.1010dd70
int3