Function at 0x5327e0
Capabilities:
Packed with generic packer

Disassembly:
push ecx
cmp byte [edi + 0xec], 0
push ebx
push esi
jne 0x532b3a
mov eax, dword [edi + 0x28]
cmp eax, 3
je 0x532b3a
mov ecx, dword [edi + 0x24]
cmp ecx, 0x19
je 0x532b3a
cmp ecx, 0x16
jne 0x5328af
fld dword [edi + 0x30]
mov ecx, dword [edi + 0x20]
fadd qword [0x679708]
mov edx, dword [edi]
sub esp, 8
add ecx, 1
fstp dword [esp + 0x10]
mov eax, 0x41
fld dword [esp + 0x10]
fstp dword [esp + 4]
fld dword [edi + 0x2c]
fadd qword [0x679820]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.00453c80
mov eax, dword [edi]
cmp byte [eax + 0x8c5], 0
jne 0x5328a3
fldz
mov ecx, dword [0x6a9f00]
mov esi, dword [eax + 0x784]
fst dword [esp + 8]
fcomp dword [ecx + 0x4b0]
fnstsw ax
test ah, 0x44
jnp 0x53288f
fld dword [ecx + 0x4b0]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0xc]
add esp, 4
fld dword [esp + 8]
push ecx
mov eax, 0x17
fstp dword [esp]
mov ecx, esi
call fcn.00515020
mov ecx, edi
pop esi
pop ebx
add esp, 4
jmp fcn.005302f0
cmp ecx, 0xc
jne 0x53290a
fld dword [edi + 0x30]
mov ecx, dword [edi + 0x20]
fadd qword [0x679708]
mov edx, dword [edi]
sub esp, 8
add ecx, 1
fstp dword [esp + 0x10]
mov eax, 0x3f
fld dword [esp + 0x10]
fstp dword [esp + 4]
fld dword [edi + 0x2c]
fadd qword [0x679820]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.00453c80
mov eax, dword [edi]
mov esi, 0x17
call fcn.00453630
mov ecx, edi
pop esi
pop ebx
add esp, 4
jmp fcn.005302f0
cmp eax, 1
je 0x532a75
cmp eax, 0xc
je 0x532a75
cmp eax, 0xe
je 0x532a75
cmp eax, 0x32
je 0x532a75
cmp eax, 0x3a
je 0x532a75
cmp eax, 2
je 0x532a75
cmp ecx, 0x17
je 0x532a75
cmp ecx, 0x20
je 0x532a75
cmp ecx, 0x14
je 0x532a75
cmp ecx, 0x11
je 0x532a75
cmp ecx, 0x18
je 0x532a75
cmp ecx, 0x13
je 0x532a75
cmp ecx, 0xe
je 0x532a75
mov ecx, edi
call fcn.005346a0
cmp eax, 0xffffffff
jne 0x532a75
mov eax, edi
call fcn.00534680
test al, al
jne 0x532a75
cmp byte [edi + 0xbd], al
jne 0x532a75
cmp dword [edi + 0xb4], 0
jle 0x5329ba
mov eax, edi
call fcn.00532350
cmp dword [edi + 0xb0], 0
jle 0x5329cd
mov dword [edi + 0xb0], 0
push 0
push edi
call fcn.00530a00
push 0
mov eax, edi
call fcn.00530e30
mov eax, dword [edi + 0x24]
cmp eax, 1
jne 0x5329ef
mov ebx, edi
call fcn.00529870
jmp 0x532a26
cmp eax, 3
jne 0x5329fd
mov esi, edi
call fcn.00529970
jmp 0x532a26
cmp eax, 5
je 0x532a1e
cmp eax, 0x10
je 0x532a1e
cmp eax, 0x12
jne 0x532a26
push 0
push edi
call fcn.00529a30
fldz
fstp dword [edi + 0x84]
jmp 0x532a26
push 0
push edi
call fcn.00529a30
mov eax, dword [edi + 0x20]
fldz
push eax
mov eax, dword [edi]
sub esp, 8
fst dword [esp + 4]
mov ebx, 0x60
fstp dword [esp]
call fcn.00453c30
mov ecx, dword [eax + 0x9c]
fld dword [0x6796f4]
fstp dword [eax + 8]
mov byte [eax + 0x64], 0
mov dword [eax + 0x10], 3
mov dword [edi + 0x150], ecx
mov dword [edi + 0x28], 3
mov eax, edi
pop esi
pop ebx
add esp, 4
jmp fcn.00530170
fld dword [edi + 0x30]
mov edx, dword [edi + 0x20]
fsub qword [0x679bc0]
mov eax, dword [edi]
add edx, 2
push edx
fstp dword [esp + 0xc]
sub esp, 8
fld dword [esp + 0x14]
mov ebx, 0x45
fstp dword [esp + 4]
fld dword [edi + 0x2c]
fsub qword [0x67a1c0]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp]
call fcn.00453c30
push str.anim_puff
mov ecx, eax
call fcn.00473280
fld dword [edi + 0x30]
fadd qword [0x679298]
mov ecx, dword [edi + 0x20]
mov edx, dword [edi]
sub esp, 8
fstp dword [esp + 0x10]
add ecx, 1
fld dword [esp + 0x10]
lea eax, [ebx - 3]
fstp dword [esp + 4]
fld dword [edi + 0x2c]
fadd qword [0x679888]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fstp dword [esp]
call fcn.00453c80
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 4]
cmp dword [ecx + eax*4 + 0x5d8], 2
je 0x532b2e
push 0
push edi
call fcn.00529a30
push 0
mov ebx, edi
call fcn.00529ef0
push 0
mov eax, edi
call fcn.00530e30
push 0
push edi
call fcn.00530a00
mov ecx, edi
pop esi
pop ebx
add esp, 4
jmp fcn.005302f0
pop esi
pop ebx
pop ecx
ret