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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x1032bb20]
sub esp, 0x2c
xor edx, edx
mov eax, dword [eax + 0x1e3c]
push ebx
push esi
push str.Background
mov ecx, dword [eax]
call fcn.10151830
mov ecx, dword fs:[0x2c]
add esp, 4
mov edx, dword [0x10329638]
mov ebx, eax
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10336dd4]
cmp ecx, dword [edx + 4]
jg 0x10199bd3
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
cmp dword [ecx + 0xac], 7
jne 0x10199a65
mov ecx, dword [ecx + 4]
add ecx, 4
mov eax, dword [ecx]
mov eax, dword [eax + 0x20]
call eax
mov edx, 0x811c9dc5
lea ecx, [eax + 4]
mov al, byte [ecx]
test al, al
je 0x10199a65
movzx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x10199a11
cmp edx, 0x7a375ea1
jne 0x10199a3b
mov eax, dword [esi]
mov dword [eax + 0xac], 0x2e
jmp 0x10199a65
cmp edx, 0xc9f6da90
jne 0x10199a51
mov eax, dword [esi]
mov dword [eax + 0xac], 0x58
jmp 0x10199a65
cmp edx, 0x8ec5833f
jne 0x10199a65
mov eax, dword [esi]
mov dword [eax + 0xac], 0x3b
sub esp, 8
mov ecx, esp
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x10199a82
lock inc dword [eax + 4]
mov eax, dword [esi]
mov dword [ecx], eax
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
call fcn.1019a4f0
movss xmm0, dword [ebp + 8]
addss xmm0, dword [ebp - 8]
mov eax, dword [esi]
add eax, 0xac
push eax
divss xmm0, dword [0x102cd360]
movss dword [ebp - 0x18], xmm0
call fcn.10051b00
mov ecx, dword [0x1032bb20]
xorps xmm1, xmm1
movss dword [ebp + 8], xmm1
mov esi, dword [eax]
movss xmm0, dword [ecx + 0x1a70]
movss dword [ebp - 8], xmm0
test esi, esi
je 0x10199b34
movss xmm3, dword [0x102cd604]
lea eax, [ebp - 0xc]
push 0
push 0
push esi
push ecx
mov ecx, dword [ecx + 0x1a6c]
movaps xmm2, xmm0
mov dword [esp], 0xbf800000
push eax
call fcn.1016fbe0
movss xmm0, dword [ebp - 0xc]
addss xmm0, dword [0x102cd2f4]
cvttss2si eax, xmm0
movss xmm0, dword [ebp - 8]
movss dword [ebp - 8], xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [ebp + 8], xmm1
mov eax, dword [0x103280dc]
mov ecx, dword [eax + 0x1c]
mov ecx, dword [ecx + 0x8e0]
call fcn.1015c700
test dword [0x10336dd8], 0xff000000
movss xmm1, dword [ebp + 8]
divss xmm1, dword [0x102cd360]
movss xmm0, dword [ebp - 0x18]
subss xmm0, xmm1
movss xmm1, dword [ebp - 8]
addss xmm1, dword [ebp - 0x1c]
movss dword [ebp - 0x20], xmm0
movss dword [ebp - 0x1c], xmm1
je 0x10199bc6
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10199b82
sub ecx, edx
add ecx, esi
cmp esi, ecx
je 0x10199bc6
push dword [ebp - 0x1c]
mov eax, dword [ebx + 0x2c]
push dword [ebp - 0x20]
movups xmm0, xmmword [ebx + 0x60]
push 0
movss xmm2, dword [eax + 0xc]
push ecx
mov dword [esp], 0
push ecx
push esi
lea ecx, [ebp - 0x14]
push ecx
push dword [0x10336dd8]
mov ecx, dword [eax + 8]
push ebx
movups xmmword [ebp - 0x14], xmm0
call fcn.1015e100
call fcn.1015c870
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x10336dd4
call fcn.100bbde8
add esp, 4
cmp dword [0x10336dd4], 0xffffffff
jne 0x101999e8
movaps xmm0, xmmword [0x102cd8d0]
lea ecx, [ebp - 0x28]
movups xmmword [ebp - 0x28], xmm0
call fcn.1015c630
push 0x10336dd4
mov dword [0x10336dd8], eax
call fcn.100bbd97
add esp, 4
jmp 0x101999e8