Function at 0x556e40
Capabilities:
Hash data using djb2
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x6e07b3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x88
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xf14]
or ecx, 0x100
push ebx
mov dword [eax + 0xf14], ecx
mov eax, dword [eax + 0x46c]
movsx ecx, word [eax + 0xa62]
push esi
movsx esi, word [eax + 0xa60]
test esi, esi
lea ebx, [eax + 0x6f4]
push edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], ebx
jl 0x557269
mov ax, word [ebx]
cmp ax, 0xffff
jne 0x556eb0
xor eax, eax
jmp 0x556ed5
movsx edx, ax
mov eax, dword [0x8cf1b4]
imul edx, edx, 0x98
mov eax, dword [edx + eax + 0x84]
test eax, eax
jne 0x556ed5
mov eax, ebx
mov edi, 0x8ce750
call fcn.0043b280
mov edx, dword [eax + 0x78]
lea esi, [esi + esi*4]
shl esi, 5
movsx eax, word [esi + edx + 0x76]
add esi, edx
test eax, eax
mov dword [esp + 0x18], 0
jle 0x557269
mov ecx, dword [0x7b37b4]
movsx edi, word [esi + 0x78]
mov eax, dword [esi + 0x30]
mov edx, dword [ecx]
mov ecx, dword [eax + 0x88]
shl edi, 4
mov dword [esp + 0x1c], edx
add edi, ecx
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x1c]
lea ebx, [eax + ecx]
mov cl, byte [ebx]
movsx eax, cl
sub eax, 0x50
mov edx, str.Pain
jne 0x556f52
sub ebx, edx
mov dword [esp + 0x28], ebx
jmp 0x556f38
mov ebx, dword [esp + 0x28]
test cl, cl
je 0x556f4e
mov cl, byte [ebx + edx + 1]
movsx ebx, byte [edx + 1]
inc edx
movsx eax, cl
sub eax, ebx
je 0x556f34
jmp 0x556f52
test eax, eax
je 0x556f6b
mov ecx, dword [esp + 0x18]
movsx eax, word [esi + 0x76]
inc ecx
add edi, 0x10
cmp ecx, eax
mov dword [esp + 0x18], ecx
jl 0x556f13
jmp 0x557265
movsx edx, word [esi + 0x70]
dec edx
mov dword [esp + 0x28], edx
fild dword [esp + 0x28]
fstp dword [esp + 0x28]
fld qword [0x7389c0]
fld dword [esp + 0x28]
call fcn.006dab4a
mov edx, dword [esi + 0x30]
lea eax, [esp + 0x70]
push eax
lea ebx, [esi + 0x88]
fstp dword [esp + 0x2c]
movss xmm0, dword [esp + 0x2c]
push 0
mov eax, ebx
call fcn.0059c850
mov ecx, dword [0x7b37b0]
mov eax, dword [ecx]
movsx ecx, word [esi + 0x70]
mov edx, dword [edi]
mov eax, dword [eax + edx]
dec ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x28]
fstp dword [esp + 0x28]
fild dword [esp + 0x1c]
fld dword [esp + 0x28]
call fcn.006dab4a
lea edx, [esp + 0x50]
push edx
mov edx, dword [esi + 0x30]
fstp dword [esp + 0x2c]
movss xmm0, dword [esp + 0x2c]
push 0
mov eax, ebx
call fcn.0059c850
movss xmm0, dword [esp + 0x60]
subss xmm0, dword [esp + 0x80]
mov esi, dword [ebp + 8]
movss dword [esp + 0x30], xmm0
movss xmm0, dword [esp + 0x64]
subss xmm0, dword [esp + 0x84]
mov eax, dword [esp + 0x30]
movss dword [esp + 0x34], xmm0
movss xmm0, dword [esp + 0x68]
subss xmm0, dword [esp + 0x88]
mov ecx, dword [esp + 0x34]
movss dword [esp + 0x38], xmm0
mov edx, dword [esp + 0x38]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], edx
mov edx, dword [esi]
mov ecx, esi
mov dword [esp + 0x5c], eax
call dword [edx + 0x50]
push eax
lea eax, [esp + 0x2c]
push str._s_MeleeReachDistance
push eax
call fcn.00626a10
mov edx, dword [eax]
movsx eax, byte [edx]
add esp, 0xc
test eax, eax
mov ecx, 0x1505
je 0x55709a
inc edx
cmp eax, 0x61
jl 0x55708e
cmp eax, 0x7a
jg 0x55708e
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x557080
and ecx, 0xfffffff
or ecx, 0x10000000
mov dword [esp + 0x18], ecx
mov dword [esp + 0x9c], 0
mov eax, dword [esp + 0x28]
call fcn.00626990
lea ecx, [esp + 0x18]
push ecx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x5570eb
lea edx, [esp + 0x18]
push edx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x557131
movss xmm0, dword [eax + 4]
jmp 0x557134
mov edx, str.CHARACTER_MeleeReachDistance
mov ecx, 0x1505
mov eax, 0x43
lea ebx, [ebx]
inc edx
cmp eax, 0x61
jl 0x55710e
cmp eax, 0x7a
jg 0x55710e
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x557100
and ecx, 0xfffffff
or ecx, 0x10000000
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ecx
push eax
jmp 0x5570d6
xorps xmm0, xmm0
mov edx, dword [esi]
mov ecx, esi
movss dword [esp + 0x1c], xmm0
call dword [edx + 0x50]
push eax
lea eax, [esp + 0x30]
push str._s_MeleeSphereRadius
push eax
call fcn.00626a10
mov edx, dword [eax]
movsx eax, byte [edx]
add esp, 0xc
test eax, eax
mov ecx, 0x1505
je 0x55717c
inc edx
cmp eax, 0x61
jl 0x557170
cmp eax, 0x7a
jg 0x557170
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x557162
mov eax, dword [esp + 0x2c]
and ecx, 0xfffffff
or ecx, 0x10000000
mov dword [esp + 0x18], ecx
call fcn.00626990
lea ecx, [esp + 0x18]
push ecx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x5571c2
lea edx, [esp + 0x18]
push edx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x557202
movss xmm0, dword [eax + 4]
jmp 0x557205
mov edx, str.CHARACTER_MeleeSphereRadius
mov ecx, 0x1505
mov eax, 0x43
inc edx
cmp eax, 0x61
jl 0x5571df
cmp eax, 0x7a
jg 0x5571df
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x5571d1
and ecx, 0xfffffff
or ecx, 0x10000000
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], ecx
push eax
jmp 0x5571ad
xorps xmm0, xmm0
movss xmm2, dword [esp + 0x50]
movss xmm1, dword [esp + 0x54]
movaps xmm3, xmm2
mulss xmm3, xmm2
movaps xmm2, xmm1
movss dword [esp + 0x18], xmm0
movss xmm0, dword [esp + 0x58]
mulss xmm2, xmm1
movaps xmm1, xmm0
addss xmm3, xmm2
mulss xmm1, xmm0
addss xmm3, xmm1
movss dword [esp + 0x2c], xmm3
fld dword [esp + 0x2c]
fsqrt
fadd dword [esp + 0x18]
fadd dword [esp + 0x1c]
fmul dword [0x738aa8]
mov dword [esp + 0x9c], 0xffffffff
fstp dword [esi + 0xee8]
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
test eax, eax
jl 0x5576d5
mov ax, word [ebx]
cmp ax, 0xffff
jne 0x557282
xor eax, eax
jmp 0x5572a8
mov edx, dword [0x8cf1b4]
movsx ecx, ax
imul ecx, ecx, 0x98
mov eax, dword [ecx + edx + 0x84]
test eax, eax
jne 0x5572a8
mov eax, ebx
mov edi, 0x8ce750
call fcn.0043b280
mov ebx, dword [esp + 0x24]
mov edx, dword [eax + 0x78]
lea ebx, [ebx + ebx*4]
shl ebx, 5
movsx eax, word [ebx + edx + 0x76]
add ebx, edx
test eax, eax
mov dword [esp + 0x24], 0
jle 0x5576d5
mov ecx, dword [0x7b37b4]
movsx esi, word [ebx + 0x78]
mov eax, dword [ebx + 0x30]
mov edx, dword [ecx]
mov ecx, dword [eax + 0x88]
shl esi, 4
add esi, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], esi
mov edi, edi
mov eax, dword [esi + 4]
mov ecx, dword [esp + 0x2c]
lea edi, [eax + ecx]
mov cl, byte [edi]
movsx eax, cl
sub eax, 0x50
mov edx, str.Pain
jne 0x55732f
sub edi, edx
mov dword [esp + 0x28], edi
jmp 0x557315
mov edi, dword [esp + 0x28]
test cl, cl
je 0x55732b
mov cl, byte [edx + edi + 1]
movsx edi, byte [edx + 1]
inc edx
movsx eax, cl
sub eax, edi
je 0x557311
jmp 0x55732f
test eax, eax
je 0x55735e
mov eax, dword [esp + 0x24]
movsx ecx, word [ebx + 0x76]
inc eax
add esi, 0x10
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x5572f0
mov dword [esp + 0x18], esi
mov ecx, dword [esp + 0x94]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movsx edx, word [ebx + 0x70]
dec edx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x18], esi
fild dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld qword [0x7389c0]
fld dword [esp + 0x2c]
call fcn.006dab4a
fld st(0)
call fcn.00686364
mov dword [esp + 0x2c], eax
fild dword [esp + 0x2c]
mov ecx, eax
and eax, 0x1f
fsubr st(1)
mov esi, eax
movsx eax, word [ebx + 0x8e]
sar ecx, 5
cmp ecx, eax
fstp dword [esp + 0x2c]
fstp st(0)
jne 0x5573b8
test esi, esi
jne 0x5573b8
dec ecx
mov esi, 0x20
movsx edi, word [ebx + 0x90]
mov eax, dword [ebx + 0x30]
mov edx, dword [eax + 0x94]
add edi, ecx
imul edi, edi, 0x1c
add edi, edx
push eax
push edi
call fcn.0059c610
mov edx, dword [esp + 0x2c]
movsx edi, byte [edi + 0x18]
lea ecx, [esp + 0x30]
push ecx
push edx
mov ecx, eax
call fcn.0059c560
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
movsx ecx, word [ebx + 0x70]
mov eax, dword [0x7b37b0]
mov eax, dword [eax]
mov eax, dword [eax + edx]
dec ecx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
fild dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fild dword [esp + 0x28]
fld dword [esp + 0x2c]
call fcn.006dab4a
mov esi, dword [ebx + 0x30]
fld st(0)
call fcn.00686364
movsx edx, word [ebx + 0x8e]
mov dword [esp + 0x2c], eax
mov ecx, eax
fild dword [esp + 0x2c]
sar ecx, 5
and eax, 0x1f
cmp ecx, edx
fsubr st(1)
mov dword [esp + 0x24], eax
fstp dword [esp + 0x2c]
fstp st(0)
jne 0x55745b
test eax, eax
jne 0x55745b
dec ecx
mov dword [esp + 0x24], 0x20
movsx edi, word [ebx + 0x90]
mov edx, dword [esi + 0x94]
add edi, ecx
imul edi, edi, 0x1c
add edi, edx
push esi
push edi
call fcn.0059c610
mov edx, dword [esp + 0x2c]
movsx edi, byte [edi + 0x18]
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x70]
push ecx
push edx
mov ecx, eax
call fcn.0059c560
movss xmm0, dword [esp + 0x80]
subss xmm0, dword [esp + 0x40]
movss dword [esp + 0x50], xmm0
movss xmm0, dword [esp + 0x84]
subss xmm0, dword [esp + 0x44]
mov eax, dword [esp + 0x50]
movss dword [esp + 0x54], xmm0
movss xmm0, dword [esp + 0x88]
subss xmm0, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
movss dword [esp + 0x58], xmm0
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x38], edx
mov edx, dword [ecx]
mov dword [esp + 0x3c], eax
call dword [edx + 0x50]
push eax
lea eax, [esp + 0x30]
push str._s_MeleeReachDistance
push eax
call fcn.00626a10
mov edx, dword [eax]
movsx eax, byte [edx]
add esp, 0xc
test eax, eax
mov ecx, 0x1505
je 0x557531
inc edx
cmp eax, 0x61
jl 0x557525
cmp eax, 0x7a
jg 0x557525
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x557517
and ecx, 0xfffffff
or ecx, 0x10000000
mov dword [esp + 0x24], ecx
mov dword [esp + 0x9c], 1
mov eax, dword [esp + 0x2c]
call fcn.00626990
lea ecx, [esp + 0x24]
push ecx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x557582
lea edx, [esp + 0x24]
push edx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x5575c2
movss xmm0, dword [eax + 4]
jmp 0x5575c5
mov edx, str.CHARACTER_MeleeReachDistance
mov ecx, 0x1505
mov eax, 0x43
inc edx
cmp eax, 0x61
jl 0x55759f
cmp eax, 0x7a
jg 0x55759f
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x557591
and ecx, 0xfffffff
or ecx, 0x10000000
lea eax, [esp + 0x28]
mov dword [esp + 0x28], ecx
push eax
jmp 0x55756d
xorps xmm0, xmm0
mov esi, dword [ebp + 8]
mov edx, dword [esi]
mov ecx, esi
movss dword [esp + 0x20], xmm0
call dword [edx + 0x50]
push eax
lea eax, [esp + 0x2c]
push str._s_MeleeSphereRadius
push eax
call fcn.00626a10
mov edx, dword [eax]
movsx eax, byte [edx]
add esp, 0xc
test eax, eax
mov ecx, 0x1505
je 0x557610
inc edx
cmp eax, 0x61
jl 0x557604
cmp eax, 0x7a
jg 0x557604
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x5575f6
mov eax, dword [esp + 0x28]
and ecx, 0xfffffff
or ecx, 0x10000000
mov dword [esp + 0x24], ecx
call fcn.00626990
lea ecx, [esp + 0x24]
push ecx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x557656
lea edx, [esp + 0x24]
push edx
mov edi, 0x91a408
call fcn.0050e790
test eax, eax
je 0x557696
movss xmm0, dword [eax + 4]
jmp 0x557699
mov edx, str.CHARACTER_MeleeSphereRadius
mov ecx, 0x1505
mov eax, 0x43
inc edx
cmp eax, 0x61
jl 0x557673
cmp eax, 0x7a
jg 0x557673
sub eax, 0x20
imul ecx, ecx, 0x21
xor ecx, eax
movsx eax, byte [edx]
test eax, eax
jne 0x557665
and ecx, 0xfffffff
or ecx, 0x10000000
lea eax, [esp + 0x2c]
mov dword [esp + 0x2c], ecx
push eax
jmp 0x557641
xorps xmm0, xmm0
fld dword [esp + 0x38]
movss dword [esp + 0x24], xmm0
fld dword [esp + 0x34]
fld st(0)
fmul st(1)
fld st(2)
fmul st(3)
faddp st(1)
fld dword [esp + 0x30]
fmul dword [esp + 0x30]
faddp st(1)
fsqrt
fstp st(2)
fstp st(0)
fadd dword [esp + 0x24]
fadd dword [esp + 0x20]
fmul dword [0x738aa8]
fstp dword [esi + 0xeec]
mov ecx, dword [esp + 0x94]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 4