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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3c
movss xmm0, dword [0x1026bac0]
push ebx
push esi
mov esi, ecx
movss dword [esp + 0x18], xmm0
push edi
mov ebx, dword [esi + 0x4c]
test ebx, ebx
je 0x10093f12
movzx eax, bl
xor eax, 0x811c9dc5
mov dword [esp + 0x20], ebx
imul ecx, eax, 0x1000193
mov eax, ebx
shr eax, 8
movzx eax, al
xor ecx, eax
mov eax, ebx
shr eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.10096ca0
mov eax, dword [eax + 4]
test eax, eax
je 0x10093d99
cmp eax, dword [0x102b1e70]
jne 0x10093eb4
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
call dword [eax + 8]
test eax, eax
je 0x10093dcb
mov eax, dword [eax + 0x14]
cmp eax, dword [0x102a59a0]
jne 0x10093dcb
lea eax, [esp + 0x20]
mov dword [esp + 0x20], ebx
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.10096700
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.10175aa0
test al, al
je 0x10093eb4
lea eax, [esp + 0x20]
mov dword [esp + 0x20], ebx
push eax
lea eax, [esp + 0x2c]
push eax
call fcn.10096700
mov eax, dword [ebx + 4]
lea ecx, [ebx + 4]
call dword [eax + 0x20]
mov edx, eax
test edx, edx
je 0x10093e69
lea edi, [edx + 4]
mov ecx, edi
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10093e04
sub ecx, esi
cmp ecx, 0x35
je 0x10093e17
cmp ecx, 0x37
jne 0x10093e69
cmp byte [edx + 0x1b], 0x77
jne 0x10093e69
mov esi, 0x811c9dc5
test edi, edi
je 0x10093e69
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10093e30
sub ecx, edx
mov edx, 0
je 0x10093e69
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10093e40
cmp esi, 0x4b4351c
je 0x10094514
cmp esi, 0x3de14943
je 0x10094514
movss xmm0, dword [0x10297cf4]
movss xmm1, dword [0x1026ba44]
mulss xmm0, xmm1
movss dword [0x10297cf4], xmm0
movss xmm0, dword [0x10297cf8]
mulss xmm0, xmm1
movss dword [0x10297cf8], xmm0
movss xmm0, dword [0x10297cfc]
mulss xmm0, xmm1
movss dword [0x10297cfc], xmm0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.101758d0
mov byte [esp + 0x13], al
test al, al
je 0x10093ed1
movss xmm0, dword [0x1026ba24]
movss dword [esp + 0x1c], xmm0
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x10093ee9
mov eax, dword [ecx + 8]
add ecx, 8
call dword [eax + 0x28]
test eax, eax
je 0x10093f06
mov al, byte [esp + 0x13]
cmp dword [0x102b1e64], ebx
jne 0x10093f06
test al, al
je 0x10093f06
mov dword [0x102b1e58], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movss xmm0, dword [esp + 0x1c]
mov dword [0x102b1e64], ebx
mulss xmm0, dword [0x1026ba48]
xorps xmm2, xmm2
movss xmm1, dword [0x1026baa8]
movss dword [esp + 0x14], xmm1
comiss xmm0, xmm1
ja 0x10093f46
comiss xmm2, xmm0
jbe 0x10093f40
xorps xmm1, xmm1
movss dword [esp + 0x14], xmm1
jmp 0x10093f46
movss dword [esp + 0x14], xmm0
test ebx, ebx
je 0x100940e3
mov ecx, ebx
call fcn.101758d0
test al, al
je 0x100940e0
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x28]
mov ecx, ebx
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
mov dword [esp + 0x44], eax
mov eax, dword [ebx]
movq qword [esp + 0x3c], xmm0
call dword [eax + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 4]
movss xmm0, dword [esp + 0x3c]
mov ecx, ebx
addss xmm0, dword [eax]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [esp + 0x40]
addss xmm0, dword [eax + 4]
movss dword [esp + 0x1c], xmm0
movss xmm0, dword [esp + 0x44]
addss xmm0, dword [eax + 8]
mov eax, dword [ebx]
movss dword [esp + 0x18], xmm0
call dword [eax + 0xc]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 8]
movss xmm1, dword [esp + 0x3c]
movss xmm5, dword [0x1026ba54]
movss xmm4, dword [esi + 0xc]
addss xmm1, dword [eax]
movss xmm3, dword [esp + 0x44]
addss xmm3, dword [eax + 8]
movss xmm2, dword [esi + 0x10]
subss xmm1, dword [esp + 0x20]
subss xmm3, dword [esp + 0x18]
mulss xmm1, xmm5
mulss xmm3, xmm5
addss xmm1, dword [esp + 0x20]
addss xmm3, dword [esp + 0x18]
subss xmm4, xmm1
movss xmm1, dword [esp + 0x40]
addss xmm1, dword [eax + 4]
movaps xmm0, xmm4
movss dword [esp + 0x20], xmm4
subss xmm1, dword [esp + 0x1c]
mulss xmm1, xmm5
addss xmm1, dword [esp + 0x1c]
subss xmm2, xmm1
movss xmm1, dword [esi + 0x14]
subss xmm1, xmm3
unpcklps xmm0, xmm2
movq qword [esp + 0x3c], xmm0
movaps xmm0, xmm4
mulss xmm2, xmm2
mulss xmm0, xmm4
movss dword [esp + 0x38], xmm1
mov eax, dword [esp + 0x38]
addss xmm2, xmm0
mulss xmm1, xmm1
mov dword [esp + 0x44], eax
addss xmm2, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm2
ucomisd xmm1, xmm0
ja 0x1009407f
sqrtsd xmm0, xmm0
jmp 0x10094084
call fcn.1020bb20
xorps xmm4, xmm4
xorps xmm2, xmm2
cvtsd2ss xmm4, xmm0
ucomiss xmm4, xmm2
lahf
test ah, 0x44
jnp 0x100940c6
movss xmm3, dword [esp + 0x20]
movss xmm0, dword [esp + 0x40]
movss xmm1, dword [esp + 0x44]
divss xmm3, xmm4
divss xmm0, xmm4
divss xmm1, xmm4
movss dword [esi + 0x18], xmm3
movss dword [esi + 0x1c], xmm0
movss dword [esi + 0x20], xmm1
jmp 0x100940e3
xorps xmm1, xmm1
xorps xmm3, xmm3
xorps xmm0, xmm0
movss dword [esi + 0x18], xmm3
movss dword [esi + 0x1c], xmm0
movss dword [esi + 0x20], xmm1
jmp 0x100940e3
xorps xmm2, xmm2
movss xmm1, dword [esi + 0x18]
movss xmm6, dword [0x10297cf4]
movaps xmm3, xmm1
movss xmm0, dword [esi + 0x1c]
movss xmm4, dword [0x10297cf8]
movss xmm5, dword [0x10297cfc]
mulss xmm3, xmm6
mulss xmm0, xmm4
movss xmm7, dword [0x1026b9f0]
addss xmm3, xmm0
movss xmm0, dword [esi + 0x20]
mulss xmm0, xmm5
addss xmm3, xmm0
addss xmm3, xmm3
mulss xmm1, xmm3
subss xmm6, xmm1
movss xmm1, dword [0x1026be08]
comiss xmm6, xmm1
movss dword [esp + 0x1c], xmm6
jbe 0x10094159
comiss xmm7, xmm6
movss dword [esp + 0x1c], xmm6
jbe 0x10094159
movss dword [esp + 0x1c], xmm2
movss xmm0, dword [esi + 0x1c]
mulss xmm0, xmm3
subss xmm4, xmm0
comiss xmm4, xmm1
movaps xmm6, xmm4
jbe 0x10094176
comiss xmm7, xmm4
jbe 0x10094176
xorps xmm6, xmm6
movss xmm0, dword [esi + 0x20]
mulss xmm0, xmm3
subss xmm5, xmm0
comiss xmm5, xmm1
movaps xmm0, xmm5
jbe 0x10094193
comiss xmm7, xmm5
jbe 0x10094193
xorps xmm0, xmm0
movss xmm1, dword [esp + 0x14]
movaps xmm4, xmm1
movaps xmm2, xmm1
mulss xmm4, dword [esp + 0x1c]
mulss xmm2, xmm6
mulss xmm1, xmm0
movaps xmm0, xmm4
mulss xmm0, xmm4
movaps xmm3, xmm2
mulss xmm3, xmm2
movss dword [esp + 0x1c], xmm4
movss dword [esp + 0x18], xmm2
movss dword [esp + 0x14], xmm1
addss xmm3, xmm0
movaps xmm0, xmm1
mulss xmm0, xmm1
addss xmm3, xmm0
movss dword [esp + 0x20], xmm3
test ebx, ebx
je 0x1009449d
movss xmm0, dword [esi + 0x20]
comiss xmm0, dword [0x1026ba70]
ja 0x10094212
comiss xmm0, xmm7
jbe 0x1009449d
movss xmm0, dword [0x1026bd70]
comiss xmm0, xmm3
jbe 0x1009449d
mov eax, dword fs:[0x2c]
mov ecx, dword [0x102999e4]
mov edi, dword [eax + ecx*4]
mov eax, dword [0x102bbb48]
cmp eax, dword [edi + 4]
jle 0x10094277
push 0x102bbb48
call fcn.101e23b9
add esp, 4
cmp dword [0x102bbb48], 0xffffffff
jne 0x10094277
lea eax, [esp + 0x24]
mov dword [esp + 0x24], str.IsStandable
push eax
lea eax, [esp + 0x34]
mov ecx, 0x102a57d4
push eax
call fcn.10006340
push 0x102bbb48
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102bbb4c], eax
call fcn.101e236f
add esp, 4
mov ecx, ebx
call dword [0x102bbb4c]
test al, al
jne 0x1009434b
mov eax, dword [ebx + 8]
lea ecx, [ebx + 8]
call dword [eax + 8]
test eax, eax
je 0x100942c7
mov eax, dword [eax + 0x14]
cmp eax, dword [0x102a5934]
je 0x1009434b
cmp eax, dword [0x102a59d0]
je 0x1009434b
cmp eax, dword [0x102a5ad4]
je 0x1009434b
cmp eax, dword [0x102a5b80]
je 0x1009434b
mov eax, dword [0x102bbb28]
cmp eax, dword [edi + 4]
jle 0x1009431d
push 0x102bbb28
call fcn.101e23b9
add esp, 4
cmp dword [0x102bbb28], 0xffffffff
jne 0x1009431d
lea eax, [esp + 0x28]
mov dword [esp + 0x28], str.IsWeapon
push eax
lea eax, [esp + 0x40]
mov ecx, 0x102a5794
push eax
call fcn.10006340
push 0x102bbb28
mov eax, dword [eax]
mov eax, dword [eax + 0xc]
mov dword [0x102bbb2c], eax
call fcn.101e236f
add esp, 4
mov edx, dword [ebx]
mov ecx, ebx
mov eax, dword [0x102bbb2c]
mov eax, dword [edx + eax*4]
call eax
test al, al
jne 0x1009434b
mov ecx, dword [esi + 0x4c]
test ecx, ecx
je 0x1009448b
mov eax, dword [ecx + 8]
add ecx, 8
call dword [eax + 0x28]
test eax, eax
jne 0x1009448b
movss xmm0, dword [esp + 0x20]
comiss xmm0, dword [0x1026bdd4]
jbe 0x10094402
cvtps2pd xmm0, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x10094370
sqrtsd xmm0, xmm0
jmp 0x10094375
call fcn.1020bb20
movss xmm2, dword [esp + 0x18]
xorps xmm5, xmm5
movss xmm4, dword [esp + 0x1c]
cvtsd2ss xmm5, xmm0
xorps xmm0, xmm0
ucomiss xmm5, xmm0
lahf
test ah, 0x44
jnp 0x100943ae
movss xmm1, dword [esp + 0x14]
movaps xmm0, xmm2
movaps xmm3, xmm4
divss xmm0, xmm5
divss xmm3, xmm5
divss xmm1, xmm5
jmp 0x100943b4
xorps xmm3, xmm3
xorps xmm1, xmm1
mulss xmm0, dword [esi + 0x1c]
mulss xmm3, dword [esi + 0x18]
mulss xmm1, dword [esi + 0x20]
movss xmm5, dword [0x1026ba54]
addss xmm0, xmm3
movss xmm3, dword [0x1026bac0]
addss xmm0, xmm1
comiss xmm0, xmm5
jbe 0x10094416
movaps xmm1, xmm3
subss xmm1, xmm0
addss xmm1, xmm5
movaps xmm0, xmm1
mulss xmm2, xmm1
mulss xmm4, xmm0
movss xmm0, dword [esp + 0x14]
mulss xmm0, xmm1
jmp 0x1009441c
movss xmm2, dword [esp + 0x18]
movss xmm3, dword [0x1026bac0]
movss xmm4, dword [esp + 0x1c]
movss xmm0, dword [esp + 0x14]
movss xmm1, dword [0x1026bd70]
comiss xmm1, dword [esp + 0x20]
jbe 0x1009444e
mov dword [0x10297cf4], 0
mov dword [0x10297cf8], 0
mov dword [0x10297cfc], 0
jmp 0x100944f8
mov eax, dword [0x1029a41c]
movss dword [0x10297cf4], xmm4
movss dword [0x10297cfc], xmm0
movss dword [0x10297cf8], xmm2
subss xmm3, dword [esi + 0x2c]
mulss xmm3, dword [eax + 0x20]
mulss xmm4, xmm3
mulss xmm0, xmm3
movss dword [esp + 0x3c], xmm4
movss dword [esp + 0x44], xmm0
jmp 0x100944e3
movss xmm4, dword [esp + 0x1c]
movss xmm2, dword [esp + 0x18]
movss xmm1, dword [esp + 0x14]
movss xmm3, dword [0x1026bac0]
mov eax, dword [0x1029a41c]
movss dword [0x10297cfc], xmm1
movss dword [0x10297cf4], xmm4
movss dword [0x10297cf8], xmm2
subss xmm3, dword [esi + 0x2c]
mulss xmm3, dword [eax + 0x20]
movaps xmm0, xmm3
mulss xmm1, xmm3
mulss xmm0, xmm4
movss dword [esp + 0x44], xmm1
movss dword [esp + 0x3c], xmm0
mulss xmm2, xmm3
lea ecx, [esp + 0x3c]
mov edx, esi
movss dword [esp + 0x40], xmm2
call fcn.10093590
mov eax, dword [0x102b1e60]
cmp eax, 0x14
jle 0x1009450e
call fcn.100934e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
inc eax
mov dword [0x102b1e60], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret