Function at 0x460060
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 0x3c], 0x22
je 0x460197
mov eax, dword [edi + 0x1c]
push eax
push edi
xor ecx, ecx
call fcn.004675c0
mov esi, eax
test esi, esi
je 0x460316
mov eax, dword [edi]
cmp byte [eax + 0x8c5], 0
jne 0x4600e3
fldz
mov ecx, dword [0x6a9f00]
mov ebx, dword [eax + 0x784]
fst dword [esp + 0x14]
fcomp dword [ecx + 0xdd4]
fnstsw ax
test ah, 0x44
jnp 0x4600cf
fld dword [ecx + 0xdd4]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x18]
add esp, 4
fld dword [esp + 0x14]
push ecx
mov eax, 0x44
fstp dword [esp]
mov ecx, ebx
call fcn.00515020
push 0
mov eax, esi
mov dword [edi + 0x3c], 0x22
mov dword [edi + 0x54], 0x64
call fcn.0052f6d0
fld dword [0x679588]
cmp dword [esi + 0x24], 0xb
fstp dword [esp + 0x14]
fld dword [0x67967c]
fstp dword [esp + 0x10]
jne 0x460128
fld dword [0x67a150]
fstp dword [esp + 0x14]
fld dword [0x679a00]
fstp dword [esp + 0x10]
cmp dword [esi + 0x28], 0x35
jne 0x460142
fld dword [0x679bd0]
fstp dword [esp + 0x14]
fld dword [0x679a94]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.006397d0
fld dword [esp + 0x14]
push eax
call fcn.006397d0
push eax
mov edx, 0x34
call fcn.005322c0
mov ebx, eax
test ebx, ebx
je 0x460182
push str.anim_Grab
mov ecx, ebx
call fcn.00473280
fld dword [0x679638]
fstp dword [ebx + 8]
mov dword [ebx + 0x10], 3
mov ecx, dword [esi + 0x158]
mov dword [edi + 0x12c], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [edi + 0x54], 0x32
jne 0x4601eb
jmp 0x844080
cmp dword [edi + 0x54], 0x14
jne 0x4602cf
mov esi, dword [edi + 0x1c]
mov edx, dword [edi + 0xc]
imul esi, esi, 0x2710
mov eax, dword [edi + 8]
add edx, 7
mov dword [esp + 0x14], edx
add esi, 0x4af38
push esi
fild dword [esp + 0x18]
sub eax, 0x17
sub esp, 8
mov dword [esp + 0x20], eax
mov eax, dword [edi]
fstp dword [esp + 4]
mov ebx, 0x20
fild dword [esp + 0x20]
fstp dword [esp]
call fcn.00453c30
fld dword [0x6799d8]
push 0x16
fst dword [eax + 0x24]
push esi
fstp dword [eax + 0x34]
mov ecx, dword [edi + 0xc]
mov edx, dword [edi + 8]
mov eax, dword [edi]
add ecx, 0x40
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
mov ecx, dword [eax + 0x820]
mov esi, dword [ecx]
sub esp, 8
add edx, 0x1f
fstp dword [esp + 4]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fstp dword [esp]
call fcn.00518a70
mov eax, dword [edi]
cmp byte [eax + 0x8c5], 0
jne 0x4602cf
fldz
mov ecx, dword [0x6a9f00]
mov esi, dword [eax + 0x784]
fst dword [esp + 0x14]
fcomp dword [ecx + 0xac8]
fnstsw ax
test ah, 0x44
jnp 0x4602bb
fld dword [ecx + 0xac8]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x18]
add esp, 4
fld dword [esp + 0x14]
push ecx
mov eax, 0x35
fstp dword [esp]
mov ecx, esi
call fcn.00515020
cmp dword [edi + 0x54], 0
jne 0x460316
push edi
call fcn.004679b0
mov ecx, dword [edi + 0x12c]
mov edi, dword [edi + 4]
add edi, 0x90
test ecx, ecx
je 0x460316
movzx eax, cx
cmp eax, dword [edi + 8]
jae 0x460316
imul eax, eax, 0x204
add eax, dword [edi]
mov esi, eax
cmp dword [esi + 0x158], ecx
jne 0x460316
mov ecx, esi
call fcn.00530510
mov eax, esi
call fcn.00530170
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4