Function at 0x4ff870
Capabilities:
Hash data using djb2

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x6e3011
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1ec
push ebx
push edi
mov edx, str.PLAYER_MeleeReachDistance
mov eax, 0x1505
mov ecx, 0x50
inc edx
cmp ecx, 0x61
jl 0x4ff8b0
cmp ecx, 0x7a
jg 0x4ff8b0
sub ecx, 0x20
imul eax, eax, 0x21
xor eax, ecx
movsx ecx, byte [edx]
test ecx, ecx
jne 0x4ff8a2
and eax, 0xfffffff
or eax, 0x10000000
mov dword [esp + 0x3c], eax
mov dword [esp + 0x1fc], ecx
mov edx, str.PLAYER_MeleeSphereRadius
mov ecx, 0x1505
mov eax, 0x50
inc edx
cmp eax, 0x61
jl 0x4ff8ee
cmp eax, 0x7a
jg 0x4ff8ee
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x4ff8e0
and ecx, 0xfffffff
or ecx, 0x10000000
mov dword [esp + 0x38], ecx
lea eax, [esp + 0x3c]
push eax
mov edi, 0x91a408
mov byte [esp + 0x200], 1
call fcn.0050e790
test eax, eax
je 0x4ff92c
movss xmm3, dword [eax + 4]
jmp 0x4ff92f
xorps xmm3, xmm3
lea ecx, [esp + 0x38]
push ecx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x4ff949
movss xmm0, dword [eax + 4]
jmp 0x4ff94c
xorps xmm0, xmm0
mov eax, dword [esi + 0x684]
mov edx, eax
imul eax, eax, 0x5a0
imul edx, edx, 0x5a0
add edx, 0x8cf6f0
mov ecx, dword [edx]
mov dword [esp + 0x10], ecx
mov ecx, dword [edx + 4]
add eax, 0x8cf6f0
movss xmm1, dword [eax + 0x34]
movss xmm2, dword [eax + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
movss dword [esp + 8], xmm0
movss xmm0, dword [eax + 0x38]
mov eax, dword [esp + 8]
mov dword [esp + 0x18], ecx
push eax
mov eax, dword [esi + 0xc]
mulss xmm1, xmm3
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esi + 8]
mov dword [esp + 0x24], edx
mulss xmm2, xmm3
mulss xmm0, xmm3
movss xmm3, dword [esp + 0x18]
lea edx, [esp + 0x18]
push edx
addss xmm3, xmm2
movss xmm2, dword [esp + 0x20]
addss xmm2, xmm1
movss xmm1, dword [esp + 0x24]
push eax
push ecx
addss xmm1, xmm0
mov ecx, 0x918b30
movss dword [esp + 0x34], xmm3
movss dword [esp + 0x38], xmm2
movss dword [esp + 0x3c], xmm1
call fcn.00506cb0
push 0x800
push 0x8000000
push 0xffffffffffffffff
mov ecx, 0x918b30
call fcn.005059c0
mov eax, dword [0x919b30]
test eax, eax
je 0x4ffca4
mov eax, dword [0x918b44]
mov edx, dword [0x918b40]
mov edi, dword [0x918b90]
mov ebx, dword [0x918b94]
mov ecx, dword [0x918b48]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], edx
mov edx, dword [0x918b4c]
mov eax, edi
or eax, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], edx
je 0x4ffca4
mov ecx, dword [esi + 0xd14]
xor eax, eax
cmp ecx, eax
je 0x4ffb10
push 0x916c40
lea ecx, [esp + 0xc]
push ecx
mov ecx, 0x8d68e0
mov dword [esi + 0xd14], eax
call fcn.0045ff70
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 8]
push edx
push eax
mov ecx, 0x8d68e0
call fcn.004013f0
mov ecx, dword [0x918ba4]
push ecx
mov ecx, eax
mov dword [esp + 0xc], eax
call fcn.0047b160
push eax
lea edx, [esp + 0x1b4]
push str.Melee__s
push edx
call fcn.00628520
mov eax, dword [esi + 0x244]
mov ecx, dword [esi + eax*8 + 0x1dc]
mov edx, dword [esi + eax*8 + 0x1d8]
add esp, 0xc
push 0
push 0x3f800000
push 0
push 0
push 0
push ecx
xor eax, eax
mov al, byte [esi + 0x76]
push edx
push 0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x1d0]
and eax, 0xff
push eax
push ecx
mov ecx, dword [esp + 0x30]
push edx
call fcn.0047a490
mov dword [esi + 0x2534], 1
jmp 0x4ffb16
mov dword [esi + 0x2534], eax
push ebx
push edi
mov ecx, 0x8d68e0
call fcn.004013f0
test eax, eax
mov dword [esp + 8], eax
je 0x4ffb97
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x60]
cmp dword [eax + 0xc], 0x61
je 0x4ffb97
mov ecx, dword [esp + 8]
mov eax, dword [ecx]
call dword [eax + 0x60]
cmp dword [eax + 0xc], 0x8d
je 0x4ffb97
mov eax, dword [0x75873c]
test eax, eax
je 0x4ffb97
movsx eax, byte [esi + 0x2538]
shl eax, 2
movss xmm2, dword [eax + 0x758750]
movss xmm0, dword [eax + 0x758744]
movss xmm1, dword [eax + 0x75875c]
movss dword [esi + 0x670], xmm2
xorps xmm2, xmm2
movss dword [esi + 0x674], xmm2
movss dword [esi + 0x678], xmm1
movss dword [esi + 0x67c], xmm0
lea ecx, [esp + 0x40]
call fcn.00527d10
mov byte [esp + 0x1fc], 2
movsx ecx, byte [esi + 0x2538]
mov edx, dword [esi]
push ecx
mov ecx, esi
call dword [edx + 0x50]
push eax
lea eax, [esp + 0x10]
push str._s_MELEE__d
push eax
call fcn.00626a10
mov edx, dword [eax]
add esp, 0x10
call fcn.0050e6f0
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
and eax, 0xfffffff
push ecx
or eax, 0x40000000
push edx
push eax
lea eax, [esp + 0x4c]
push eax
lea eax, [esp + 0x20]
call fcn.00527ee0
mov eax, dword [esp + 8]
call fcn.00626990
mov eax, dword [esi + 0x684]
imul eax, eax, 0x5a0
add eax, 0x8cf6f0
movss xmm0, dword [eax + 0x30]
movss dword [esp + 0x20], xmm0
movss xmm0, dword [eax + 0x34]
lea ecx, [esp + 0x20]
movss dword [esp + 0x24], xmm0
movss xmm0, dword [eax + 0x38]
push ecx
lea ecx, [esp + 0x44]
movss dword [esp + 0x2c], xmm0
call fcn.00528060
mov eax, dword [esp + 0x1ac]
or eax, 0x10
push 0x918b30
lea ecx, [esp + 0x44]
mov dword [esp + 0xa4], edi
mov dword [esp + 0xa8], ebx
mov dword [esp + 0x1b0], eax
call fcn.00528190
push ebx
push edi
mov ecx, 0x8d68e0
call fcn.004013f0
push eax
lea ecx, [esp + 0x44]
call fcn.00528a80
mov edx, dword [esi + 0xc]
mov eax, dword [esi + 8]
push edx
push eax
push 0x918b30
call fcn.004c5120
and dword [esp + 0x1b8], 0xfffffffc
add esp, 0xc
lea eax, [esp + 0x40]
call fcn.00527df0
mov ecx, dword [esp + 0x1f4]
pop edi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret