Function at 0x527aa0
Capabilities:
Packed with generic packer

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
cmp byte [ebp + 0xba], 0
push esi
push edi
je 0x527bb2
cmp byte [ebp + 0x51], 0
je 0x527bb2
cmp dword [ebp + 0x28], 0x5c
jne 0x527bb2
mov edi, ebp
call fcn.0052f440
fld dword [0x679388]
push ecx
fstp dword [esp]
push 0x14
push 0
push str.anim_idle
call fcn.00528b00
fld dword [0x679638]
mov edi, dword [ebp + 0x144]
mov eax, dword [ebp]
mov byte [ebp + 0xba], 0
mov ecx, dword [eax + 0x820]
mov edx, dword [ecx + 8]
and edi, 0xffff
lea edi, [edi + edi*4]
push ecx
fstp dword [esp]
shl edi, 5
add edi, dword [edx]
push 3
push str.anim_jumpup
mov eax, 0x14
mov esi, edi
call fcn.00473bf0
mov eax, dword [ebp + 0x20]
add eax, 1
mov dword [edi + 0x68], eax
fld dword [ebp + 0x30]
fsub qword [0x679970]
push str.anim_head1
fstp dword [esp + 0x20]
fld dword [ebp + 0x2c]
fadd qword [0x6793b8]
fstp dword [edi + 0x2c]
fld dword [esp + 0x20]
fstp dword [edi + 0x38]
mov eax, dword [ebp + 0x118]
mov ecx, dword [ebp]
mov edx, dword [ecx + 0x820]
mov ecx, dword [edx + 8]
and eax, 0xffff
lea ebx, [eax + eax*4]
shl ebx, 5
add ebx, dword [ecx]
call fcn.00472f30
lea edx, [eax + eax*2]
mov eax, dword [ebx + 0x58]
shl edx, 5
lea esi, [edx + eax + 0x40]
call fcn.00405430
fld dword [0x679528]
fst dword [edi + 0x24]
fstp dword [edi + 0x34]
fldz
fstp dword [edi + 0x30]
mov dword [ebp + 0x28], 0x5d
mov dword [ebp + 0x68], 0x5f
cmp dword [ebp + 0x28], 0x5d
jne 0x527d24
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
mov eax, ebx
mov ecx, esi
call fcn.0041c4c0
test eax, eax
jle 0x527bdd
mov eax, ebx
mov ecx, esi
call fcn.0041c4c0
jmp 0x527bdf
xor eax, eax
mov ecx, dword [esi + 0x8c]
cmp dword [ecx + 0x7f8], 0x2b
jne 0x527c19
mov esi, dword [esi + 0x554c]
cmp esi, 6
je 0x527c03
cmp esi, 8
je 0x527c03
cmp esi, 7
jne 0x527c19
mov esi, dword [ebp + 0x1c]
mov edi, eax
mov eax, dword [ecx + 0x81c]
call fcn.00521450
mov dword [esp + 0x1c], eax
jmp 0x527c26
lea ecx, [eax + eax*4]
shl ecx, 4
add ecx, 0x28
mov dword [esp + 0x1c], ecx
mov edx, dword [ebp]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 0x144]
mov edi, dword [ebp + 0x68]
and eax, 0xffff
lea esi, [eax + eax*4]
shl esi, 5
add esi, dword [ecx]
push 4
mov ecx, 0x14
push 0xffffffffffffffec
push 0
mov eax, edi
lea edx, [ecx + 0x1e]
call fcn.00511c40
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
add esp, 0xc
fld dword [ebp + 0x30]
push 4
fsub qword [0x679970]
faddp st(1)
fstp dword [esp + 0x18]
fild dword [esp + 0x20]
fsub dword [ebp + 0x2c]
call fcn.006397d0
push eax
mov ecx, 0x14
push 0
mov eax, edi
lea edx, [ecx + 0x1e]
call fcn.00511c40
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
add esp, 0xc
fld dword [ebp + 0x2c]
fadd qword [0x6793b8]
faddp st(1)
fstp dword [esi + 0x2c]
fld dword [esp + 0x14]
fstp dword [esi + 0x38]
cmp dword [ebp + 0x68], 0
jne 0x527d24
mov edx, dword [ebp]
fld dword [0x679aa8]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 0x144]
and eax, 0xffff
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [ecx]
fstp dword [eax + 8]
lea edx, [eax + 0x1c]
fldz
push edx
fstp dword [eax + 4]
lea ecx, [eax + 0x18]
fld dword [0x679378]
push ecx
mov edx, str.anim_jumpdown
fstp dword [eax + 0x94]
mov dword [eax + 0x10], 3
mov dword [eax + 0x5c], 0
call fcn.004731d0
mov dword [ebp + 0x28], 0x5e
mov dword [ebp + 0x68], 0xa
cmp dword [ebp + 0x28], 0x5e
jne 0x527ec1
mov eax, dword [ebp + 0x68]
push 1
xor ecx, ecx
push 0x4a
push 0xffffffffffffffec
lea edx, [ecx + 0xa]
call fcn.00511c40
mov ebx, dword [ebp + 8]
mov esi, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x20], eax
add esp, 0xc
mov eax, ebx
mov ecx, esi
call fcn.0041c4c0
test eax, eax
jle 0x527d69
mov eax, ebx
mov ecx, esi
call fcn.0041c4c0
jmp 0x527d6b
xor eax, eax
mov ecx, dword [esi + 0x8c]
cmp dword [ecx + 0x7f8], 0x2b
jne 0x527da5
mov esi, dword [esi + 0x554c]
cmp esi, 6
je 0x527d8f
cmp esi, 8
je 0x527d8f
cmp esi, 7
jne 0x527da5
mov esi, dword [ebp + 0x1c]
mov edi, eax
mov eax, dword [ecx + 0x81c]
call fcn.00521450
mov dword [esp + 0x1c], eax
jmp 0x527db2
lea edx, [eax + eax*4]
shl edx, 4
add edx, 0x28
mov dword [esp + 0x1c], edx
fld dword [ebp + 0x30]
mov eax, dword [ebp]
fsub qword [0x679970]
mov ecx, dword [eax + 0x820]
mov eax, dword [ebp + 0x144]
mov edx, dword [ecx + 8]
fiadd dword [esp + 0x14]
and eax, 0xffff
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
fstp dword [esp + 0x14]
fld dword [ebp + 0x2c]
fadd qword [0x6793b8]
fiadd dword [esp + 0x1c]
fsub dword [ebp + 0x2c]
fstp dword [eax + 0x2c]
fld dword [esp + 0x14]
fstp dword [eax + 0x38]
cmp dword [ebp + 0x68], 2
jne 0x527e33
mov esi, dword [ebp + 8]
mov ebx, dword [ebp + 4]
mov edi, dword [ebp + 0xc]
mov eax, esi
mov ecx, ebx
call fcn.0041c4c0
test eax, eax
jle 0x527e23
mov eax, esi
mov ecx, ebx
call fcn.0041c4c0
jmp 0x527e25
xor eax, eax
mov ecx, dword [ebp + 0x1c]
push 0
push ecx
push eax
mov edi, ebp
call fcn.0052e920
cmp dword [ebp + 0x68], 0
jne 0x527ec1
mov eax, dword [ebp + 4]
jmp 0x7adc2c
cmp dword [ebp + 0x28], 0x5f
jne 0x527f0c
cmp dword [ebp + 0x68], 0
jne 0x527f0c
mov edx, dword [ebp]
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
mov eax, dword [ebp + 0x144]
and eax, 0xffff
lea ecx, [eax + eax*4]
shl ecx, 5
add ecx, dword [edx]
call fcn.004733f0
push 0x708
mov eax, 9
mov esi, ebp
mov dword [ebp + 0x144], 0
call fcn.005317c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4