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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x1033cac0]
sub esp, 0x2c
xor edx, edx
mov eax, dword [eax + 0x1e4c]
push ebx
push esi
push str.Background
mov ecx, dword [eax]
call fcn.101625e0
mov ecx, dword fs:[0x2c]
add esp, 4
mov edx, dword [0x1033a628]
mov ebx, eax
mov edx, dword [ecx + edx*4]
mov ecx, dword [0x10347e04]
cmp ecx, dword [edx + 4]
jg 0x101a9cf3
mov esi, dword [ebp + 8]
mov ecx, dword [esi]
cmp dword [ecx + 0xac], 7
jne 0x101a9b85
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 0x101a9b85
movzx eax, al
lea ecx, [ecx + 1]
xor eax, edx
imul edx, eax, 0x1000193
mov al, byte [ecx]
test al, al
jne 0x101a9b31
cmp edx, 0x7a375ea1
jne 0x101a9b5b
mov eax, dword [esi]
mov dword [eax + 0xac], 0x2e
jmp 0x101a9b85
cmp edx, 0xc9f6da90
jne 0x101a9b71
mov eax, dword [esi]
mov dword [eax + 0xac], 0x58
jmp 0x101a9b85
cmp edx, 0x8ec5833f
jne 0x101a9b85
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 0x101a9ba2
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.101aa610
movss xmm0, dword [ebp + 8]
addss xmm0, dword [ebp - 8]
mov eax, dword [esi]
add eax, 0xac
push eax
divss xmm0, dword [0x102dd910]
movss dword [ebp - 0x18], xmm0
call fcn.10058cc0
mov ecx, dword [0x1033cac0]
xorps xmm1, xmm1
movss dword [ebp + 8], xmm1
mov esi, dword [eax]
movss xmm0, dword [ecx + 0x1a80]
movss dword [ebp - 8], xmm0
test esi, esi
je 0x101a9c54
movss xmm3, dword [0x102ddbac]
lea eax, [ebp - 0xc]
push 0
push 0
push esi
push ecx
mov ecx, dword [ecx + 0x1a7c]
movaps xmm2, xmm0
mov dword [esp], 0xbf800000
push eax
call fcn.10180790
movss xmm0, dword [ebp - 0xc]
addss xmm0, dword [0x102dd874]
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 [0x103390dc]
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0x14e0]
call fcn.1016d4a0
test dword [0x10347e08], 0xff000000
movss xmm1, dword [ebp + 8]
divss xmm1, dword [0x102dd910]
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 0x101a9ce6
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x101a9ca2
sub ecx, edx
add ecx, esi
cmp esi, ecx
je 0x101a9ce6
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 [0x10347e08]
mov ecx, dword [eax + 8]
push ebx
movups xmmword [ebp - 0x14], xmm0
call fcn.1016ee80
call fcn.1016d610
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0x10347e04
call fcn.100c3aa2
add esp, 4
cmp dword [0x10347e04], 0xffffffff
jne 0x101a9b08
movaps xmm0, xmmword [0x102ddf30]
lea ecx, [ebp - 0x28]
movups xmmword [ebp - 0x28], xmm0
call fcn.1016d3d0
push 0x10347e04
mov dword [0x10347e08], eax
call fcn.100c3a51
add esp, 4
jmp 0x101a9b08