Function at 0x10037230
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
cmp dword [0x100fdbf0], 3
jne 0x100374d8
cmp dword [0x100940ec], 0
je 0x100374d8
mov eax, dword [ebp + 8]
push ebx
push esi
mov eax, dword [eax + 4]
push dword [eax]
call dword [sym.imp.Common.dll_unsigned_int___cdecl_CreateID_char_const__]
mov ebx, eax
add esp, 4
movzx ecx, bl
xor esi, esi
xor ecx, 0x811c9dc5
shr eax, 0x10
imul edx, ecx, 0x1000193
mov ecx, ebx
shr ecx, 8
movzx ecx, cl
movzx eax, al
mov dword [ebp + 8], ebx
xor edx, ecx
imul ecx, edx, 0x1000193
mov edx, dword [0x101f4b8c]
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [0x101f4b98]
and ecx, eax
mov eax, dword [edx + ecx*8 + 4]
cmp eax, dword [0x101f4b84]
je 0x100372e8
mov ecx, dword [edx + ecx*8]
cmp ebx, dword [eax + 8]
je 0x100372cf
cmp eax, ecx
je 0x100372e8
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 8]
jne 0x100372c3
test eax, eax
je 0x100372e8
cmp eax, dword [0x101f4b84]
je 0x100372e8
lea eax, [ebp + 8]
push eax
call fcn.1000e360
mov esi, dword [eax]
jmp 0x10037311
cmp byte [0x101f41ea], 0
je 0x10037311
mov eax, dword [0x101f41a8]
push 0
push str.g_bSoftParticle
push eax
mov ecx, dword [eax]
call dword [ecx + 0x58]
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
mov eax, dword [0x101f3f18]
xor bl, bl
mov ecx, dword [eax]
cmp byte [esi], bl
je 0x100373a5
push 0
push 7
push eax
call dword [ecx + 0xe4]
movss xmm1, dword [esi + 4]
movss xmm0, dword [0x101f420c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x10037368
mov eax, dword [0x101f41a8]
mov ecx, dword [eax]
push ecx
movss dword [esp], xmm1
push str.g_fSoftParticleSmoothness
push eax
call dword [ecx + 0x78]
movss xmm0, dword [esi + 4]
mov bl, 1
movss dword [0x101f420c], xmm0
movss xmm1, dword [esi + 8]
movss xmm0, dword [0x101f4208]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100373b0
mov eax, dword [0x101f41a8]
mov ecx, dword [eax]
push ecx
movss dword [esp], xmm1
push str.g_fSoftParticleBias
push eax
call dword [ecx + 0x78]
movss xmm0, dword [esi + 8]
mov bl, 1
movss dword [0x101f4208], xmm0
jmp 0x100373b0
push 1
push 7
push eax
call dword [ecx + 0xe4]
mov al, byte [esi]
cmp byte [0x101f41ea], al
je 0x100373d8
mov ecx, dword [0x101f41a8]
movzx eax, al
push eax
push str.g_bSoftParticle
mov edx, dword [ecx]
push ecx
call dword [edx + 0x58]
mov al, byte [esi]
mov bl, 1
mov byte [0x101f41ea], al
movss xmm2, dword [0x101f41f0]
comiss xmm2, dword [0x1008b820]
jbe 0x100374c4
mov al, byte [esi + 0xc]
cmp byte [0x101f41e9], al
je 0x1003741f
mov ecx, dword [0x101f41a8]
movzx eax, al
push eax
push str.g_bResizeParticle
mov edx, dword [ecx]
push ecx
call dword [edx + 0x58]
mov al, byte [esi + 0xc]
mov bl, 1
movss xmm2, dword [0x101f41f0]
mov byte [0x101f41e9], al
test al, al
je 0x100374c4
movss xmm1, dword [esi + 0x10]
ucomiss xmm1, dword [0x101f4200]
lahf
test ah, 0x44
jp 0x1003745d
movss xmm0, dword [esi + 0x18]
ucomiss xmm0, dword [0x100fdbe8]
lahf
test ah, 0x44
jp 0x1003745d
movss xmm0, dword [esi + 0x14]
ucomiss xmm0, dword [0x100fdbec]
lahf
test ah, 0x44
jnp 0x100374c4
movss xmm0, dword [esi + 0x18]
mulss xmm1, xmm2
maxss xmm1, dword [esi + 0x14]
comiss xmm1, xmm0
ja 0x10037473
movaps xmm0, xmm1
mov eax, dword [0x101f41a8]
mov ecx, dword [eax]
push ecx
movss dword [esp], xmm0
push str.g_fResizeParticleFactor
push eax
call dword [ecx + 0x78]
mov eax, dword [0x101f41a8]
movss xmm0, dword [esi + 0x10]
movss dword [0x101f4200], xmm0
movss xmm0, dword [esi + 0x18]
mov ecx, dword [eax]
movss dword [0x100fdbe8], xmm0
movss xmm0, dword [esi + 0x14]
push eax
movss dword [0x100fdbec], xmm0
call dword [ecx + 0x104]
pop esi
pop ebx
pop ebp
ret 4
test bl, bl
je 0x100374d6
mov eax, dword [0x101f41a8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x104]
pop esi
pop ebx
pop ebp
ret 4