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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, dword fs:[0x2c]
sub esp, 0x28
mov ecx, dword [0x102999e4]
push esi
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x102ba200]
push edi
cmp eax, dword [ecx + 4]
jle 0x1007f5c7
push 0x102ba200
call fcn.101e23b9
add esp, 4
cmp dword [0x102ba200], 0xffffffff
jne 0x1007f5c7
push 0x1020f2a0
call fcn.101e2242
add esp, 4
push 0x102ba200
call fcn.101e236f
add esp, 4
mov eax, dword [ebp + 8]
cmp eax, 0xc1557d00
ja 0x1007f80f
je 0x1007fac7
cmp eax, 0x96a1a98d
ja 0x1007f7b5
je 0x1007f790
cmp eax, 0xf018978
je 0x1007f6a7
cmp eax, 0x6c556cee
jne 0x1007fbcf
mov ecx, dword [ebp + 0xc]
push 0
push str.entityid
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
movzx ecx, al
xor ecx, 0x811c9dc5
mov dword [esp + 0xc], eax
imul edx, ecx, 0x1000193
mov ecx, eax
sar ecx, 8
movzx ecx, cl
mov dword [esp + 0x10], eax
sar eax, 0x10
xor edx, ecx
movzx eax, al
imul ecx, edx, 0x1000193
xor ecx, eax
mov eax, dword [esp + 0xc]
imul ecx, ecx, 0x1000193
sar eax, 0x18
movzx eax, al
xor ecx, eax
lea eax, [esp + 0x10]
imul edi, ecx, 0x1000193
push edi
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10082300
mov esi, dword [eax + 4]
test esi, esi
je 0x1007fbcf
and edi, dword [0x102b1acc]
mov ecx, dword [0x102b1ac0]
mov eax, dword [ecx + edi*8]
cmp dword [ecx + edi*8 + 4], esi
jne 0x1007f7da
cmp eax, esi
jne 0x1007f7d1
mov eax, dword [0x102b1ab8]
mov dword [ecx + edi*8], eax
mov dword [ecx + edi*8 + 4], eax
jmp 0x1007f7e3
mov esi, dword [ebp + 0xc]
mov ecx, esi
push 0
push str.userid
mov eax, dword [esi]
mov eax, dword [eax + 0x18]
call eax
push eax
call fcn.10035090
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.10081a90
push 0x102383a2
push str.weapon
mov ecx, esi
mov eax, dword [eax]
add eax, 0xc
mov dword [esp + 0x14], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
call eax
mov edi, eax
mov esi, 0x811c9dc5
test edi, edi
je 0x1007fbcf
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x1007f703
sub ecx, edx
mov edx, 0
je 0x1007fbcf
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1007f717
cmp esi, 0xd4da8047
ja 0x1007f76f
je 0x1007f75a
cmp esi, 0x2e132027
je 0x1007f746
cmp esi, 0x5f9d5c39
jne 0x1007fbcf
mov eax, dword [0x1029a41c]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [0x1029a41c]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ecx + 8], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp esi, 0xe3ffb41c
jne 0x1007fbcf
mov eax, dword [0x1029a41c]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 0x10]
mov dword [ecx + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
push 0
push str.entityid
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0xc], eax
lea eax, [esp + 0xc]
push eax
call fcn.1007fe10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0x9a4147b1
je 0x1007f602
cmp eax, 0xafcd8f60
je 0x1007fac7
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 4]
mov dword [ecx + edi*8 + 4], eax
jmp 0x1007f7e3
cmp eax, esi
jne 0x1007f7e3
mov eax, dword [esi]
mov dword [ecx + edi*8], eax
mov ecx, dword [esi]
dec dword [0x102b1abc]
mov eax, dword [esi + 4]
mov dword [eax], ecx
mov eax, dword [esi + 4]
mov dword [ecx + 4], eax
lea ecx, [esi + 0xc]
call fcn.1003ef20
push 0x1c
push esi
call fcn.101e1f2f
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xd541ee9a
ja 0x1007fab5
je 0x1007f9d9
cmp eax, 0xd080b17a
je 0x1007f879
cmp eax, 0xd1159b75
jne 0x1007fbcf
mov eax, dword [0x1029a41c]
mov ecx, dword [ebp + 0xc]
push 0
push str.entityid
movss xmm0, dword [eax + 0x10]
mov eax, dword [ecx]
movss dword [esp + 0x14], xmm0
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0x10], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.10082370
movss xmm0, dword [esp + 0xc]
mov eax, dword [eax]
movss dword [eax + 0xc], xmm0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
push ecx
mov dword [esp], 0
mov ecx, esi
push 0x1025ddf8
mov eax, dword [esi]
mov eax, dword [eax + 0x20]
call eax
mov eax, dword [esi]
fstp st(0)
push ecx
mov dword [esp], 0
mov ecx, esi
push 0x1025dde4
mov eax, dword [eax + 0x20]
mov dword [esp + 0x18], eax
call dword [esp + 0x18]
mov eax, dword [esi]
push ecx
mov dword [esp], 0
mov ecx, esi
fstp dword [esp + 0x10]
mov eax, dword [eax + 0x20]
push 0x1025be28
mov dword [esp + 0x18], eax
call dword [esp + 0x18]
mov eax, dword [0x102b2db8]
mov ecx, dword [0x102b2db4]
fstp dword [esp + 0x10]
cmp ecx, eax
je 0x1007fbcf
sub eax, ecx
xor edi, edi
sar eax, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x1007fbcf
lea esi, [ecx + 4]
nop dword [eax]
movss xmm1, dword [esp + 0x10]
movss xmm0, dword [esp + 0xc]
subss xmm0, dword [esi + 4]
subss xmm1, dword [esi]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
xorps xmm1, xmm1
cvtps2pd xmm0, xmm0
ucomisd xmm1, xmm0
ja 0x1007f933
sqrtsd xmm0, xmm0
jmp 0x1007f938
call fcn.1020bb20
movss xmm1, dword [0x1026ba24]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jae 0x1007f959
inc edi
add esi, 0x10
cmp edi, dword [esp + 0x14]
jb 0x1007f900
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov esi, dword [0x102b2db4]
shl edi, 4
push 0
mov eax, dword [ecx]
push str.entityid
mov esi, dword [edi + esi]
mov eax, dword [eax + 0x18]
call eax
mov dword [esp + 0x14], eax
mov ecx, 0x102a4b18
lea eax, [esp + 0x14]
push eax
call fcn.10080020
mov dword [eax], esi
mov eax, dword [0x102b2db4]
mov esi, dword [0x102b2db8]
lea edx, [eax + 0x10]
add edx, edi
cmp edx, esi
je 0x1007f9ca
lea ecx, [eax + 0xc]
add ecx, edi
mov eax, dword [edx]
lea ecx, [ecx + 0x10]
mov dword [ecx - 0x1c], eax
add edx, 0x10
mov eax, dword [ecx - 8]
mov dword [ecx - 0x18], eax
mov eax, dword [ecx - 4]
mov dword [ecx - 0x14], eax
mov eax, dword [ecx]
mov dword [ecx - 0x10], eax
cmp edx, esi
jne 0x1007f9a4
mov esi, dword [0x102b2db8]
sub esi, 0x10
mov dword [0x102b2db8], esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 0xc]
push ecx
mov dword [esp], 0
mov ecx, esi
push 0x1025ddf8
mov eax, dword [esi]
mov eax, dword [eax + 0x20]
mov dword [esp + 0x1c], eax
call dword [esp + 0x1c]
mov eax, dword [esi]
push ecx
mov dword [esp], 0
mov ecx, esi
fstp dword [esp + 0x10]
mov eax, dword [eax + 0x20]
push 0x1025dde4
mov dword [esp + 0x1c], eax
call dword [esp + 0x1c]
mov eax, dword [esi]
push ecx
mov dword [esp], 0
mov ecx, esi
fstp dword [esp + 0x14]
mov eax, dword [eax + 0x20]
push 0x1025be28
mov dword [esp + 0x1c], eax
call dword [esp + 0x1c]
movss xmm0, dword [esp + 0x10]
mov ecx, esi
mov eax, dword [esi]
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0xc]
push 0
mov eax, dword [eax + 0x18]
push str.userid
fstp dword [esp + 0x1c]
movss dword [esp + 0x24], xmm0
call eax
push eax
call fcn.10035090
movq xmm0, qword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [0x102b2db8]
movq qword [esp + 0x24], xmm0
cmp eax, dword [0x102b2dbc]
je 0x1007faa4
movups xmm0, xmmword [esp + 0x20]
movups xmmword [eax], xmm0
add dword [0x102b2db8], 0x10
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x20]
push ecx
push eax
call fcn.10081830
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp eax, 0xda5b1520
je 0x1007fb09
cmp eax, 0xf0d60440
jne 0x1007fbcf
mov ecx, 0x102b1ab4
call fcn.1007ff40
mov ecx, 0x102a4b18
call fcn.10071730
mov eax, dword [0x102b2db4]
mov ecx, 0x102b1a94
mov dword [0x102b2db8], eax
call fcn.10071730
mov ecx, 0x102b1af4
call fcn.1007fda0
mov ecx, 0x102b1b14
call fcn.100082b0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0xc]
push 0
push str.entityid
mov eax, dword [ecx]
mov eax, dword [eax + 0x18]
call eax
movzx ecx, al
xor ecx, 0x811c9dc5
mov dword [esp + 0x14], eax
imul edx, ecx, 0x1000193
mov ecx, eax
sar ecx, 8
movzx ecx, cl
mov dword [esp + 0x10], eax
sar eax, 0x10
xor edx, ecx
movzx eax, al
imul ecx, edx, 0x1000193
xor ecx, eax
mov eax, dword [esp + 0x14]
imul ecx, ecx, 0x1000193
sar eax, 0x18
movzx eax, al
xor ecx, eax
lea eax, [esp + 0x10]
imul esi, ecx, 0x1000193
push esi
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.10082540
mov edx, dword [eax + 4]
test edx, edx
je 0x1007fbcf
and esi, dword [0x102b1aac]
mov ecx, dword [0x102b1aa0]
mov eax, dword [ecx + esi*8]
cmp dword [ecx + esi*8 + 4], edx
jne 0x1007fba8
cmp eax, edx
jne 0x1007fb9f
mov eax, dword [0x102b1a98]
mov dword [ecx + esi*8], eax
mov dword [ecx + esi*8 + 4], eax
jmp 0x1007fbb1
mov eax, dword [edx + 4]
mov dword [ecx + esi*8 + 4], eax
jmp 0x1007fbb1
cmp eax, edx
jne 0x1007fbb1
mov eax, dword [edx]
mov dword [ecx + esi*8], eax
mov ecx, dword [edx]
dec dword [0x102b1a9c]
mov eax, dword [edx + 4]
push 0x10
push edx
mov dword [eax], ecx
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
call fcn.101e1f2f
add esp, 8
pop edi
pop esi
mov esp, ebp
pop ebp
ret