Function at 0x526d10
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x28]
cmp eax, 0x46
push esi
push edi
jne 0x526ee4
mov eax, dword [ebx]
fld dword [0x679618]
mov ecx, dword [eax + 0x820]
mov eax, dword [ebx + 0x118]
mov edx, dword [ecx + 8]
and eax, 0xffff
lea ecx, [eax + eax*4]
shl ecx, 5
add ecx, dword [edx]
push ecx
fstp dword [esp]
mov dword [esp + 0x18], ecx
call fcn.00473b70
test al, al
je 0x526ebe
push 0
push ebx
call fcn.0052e780
mov edi, eax
test edi, edi
je 0x526db0
cmp dword [edi + 0x24], 0x2e
jne 0x526d9f
push 0x14
mov eax, 0x20
mov esi, ebx
call fcn.005317c0
mov esi, edi
call fcn.0045ec00
cmp dword [edi + 0x40], 0
jg 0x526db0
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x28]
push 0
push eax
push ecx
jmp 0x526da9
mov edx, dword [edi + 0x1c]
mov eax, dword [edi + 0x28]
push 0
push edx
push eax
mov edi, ebx
call fcn.0052e920
mov ecx, dword [ebx]
mov eax, dword [ecx + 0x7f8]
cmp eax, 0x33
jl 0x526dc2
cmp eax, 0x3c
jle 0x526dd2
test eax, eax
jne 0x526e16
mov ecx, dword [ecx + 0x82c]
cmp dword [ecx + 0x24], 0x23
jne 0x526e16
fld dword [ebx + 0x30]
mov esi, dword [ebx + 4]
call fcn.006397d0
fld dword [ebx + 0x2c]
mov edi, eax
call fcn.006397d0
mov ecx, esi
call fcn.0041c4c0
mov edi, dword [ebx + 0x1c]
push 7
mov ebx, eax
mov edx, esi
call fcn.00408e40
test eax, eax
je 0x526e13
mov edx, dword [ebp + 8]
push eax
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x160]
push ecx
call fcn.00429ac0
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
call fcn.004537d0
test al, al
je 0x526e45
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x160]
push eax
mov eax, ebx
call fcn.0042b810
test eax, eax
je 0x526e45
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 0x160]
push edx
call fcn.0042ba30
mov eax, dword [ebx]
cmp byte [eax + 0x8c5], 0
jne 0x526e99
fldz
mov ecx, dword [0x6a9f00]
mov esi, dword [eax + 0x784]
fst dword [esp + 0xc]
fcomp dword [ecx + 0x824]
fnstsw ax
test ah, 0x44
jnp 0x526e85
fld dword [ecx + 0x824]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x10]
add esp, 4
fld dword [esp + 0xc]
push ecx
mov eax, 0x28
fstp dword [esp]
mov ecx, esi
call fcn.00515020
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x14]
mov dword [eax + 0x5540], 0xc
mov dword [eax + 0x5544], 0
mov dword [eax + 0x5548], 3
cmp dword [ecx + 0x5c], 0
jle 0x5272d5
mov esi, 0x14
mov eax, ebx
jmp 0x796eba
cmp eax, 0x45
fld dword [ebx + 0x2c]
fsub qword [0x67a050]
fstp dword [esp + 0xc]
jne 0x5271c4
mov eax, dword [ebx]
fld dword [0x67a2c4]
mov ecx, dword [eax + 0x820]
mov eax, dword [ebx + 0x118]
mov edx, dword [ecx + 8]
and eax, 0xffff
lea ecx, [eax + eax*4]
shl ecx, 5
add ecx, dword [edx]
push ecx
fstp dword [esp]
mov dword [esp + 0x18], ecx
call fcn.00473b70
test al, al
je 0x52719e
push 0xffffffffffffffff
push str.Zombie_imp
mov eax, ebx
mov byte [ebx + 0xbc], 0
call fcn.005331c0
push str.Zombie_gargantuar_whiterope
mov ecx, ebx
call fcn.00533200
fldz
mov eax, dword [ebx]
cmp byte [eax + 0x8c5], 0
jne 0x526faa
mov ecx, dword [0x6a9f00]
fst dword [esp + 0x10]
fcomp dword [ecx + 0x990]
mov esi, dword [eax + 0x784]
fnstsw ax
test ah, 0x44
jnp 0x526f94
fld dword [ecx + 0x990]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x14]
add esp, 4
fld dword [esp + 0x10]
push ecx
mov eax, 0x2f
fstp dword [esp]
mov ecx, esi
call fcn.00515020
jmp 0x526fac
fstp st(0)
mov esi, dword [ebx + 4]
mov edi, dword [ebx + 0x6c]
push 0x18
mov eax, esi
call fcn.0040dc50
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x98]
sub eax, 1
cmp dword [esi + 0xa0], eax
jae 0x5272d5
mov eax, 5
mov byte [esp + 0x10], 0
call fcn.005af400
test eax, eax
jne 0x526fec
mov byte [esp + 0x10], 1
add esi, 0x90
call fcn.0041dda0
mov ecx, dword [esp + 0x10]
push edi
push 0
push ecx
mov esi, eax
mov eax, dword [esp + 0x24]
jmp 0x79b620
cmp dword [ecx + 0x5c], 0
jle 0x5272d5
mov esi, 0x14
mov eax, ebx
mov dword [ebx + 0x28], 0
call fcn.0052f2e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [ebx + 0xb4], 0
jg 0x5272d5
cmp dword [ebx + 0xb0], 0
jg 0x5272d5
cmp byte [ebx + 0xba], 0
je 0x5272d5
cmp byte [ebx + 0xbc], 0
je 0x527242
mov eax, dword [ebx + 0xcc]
cdq
sub eax, edx
nop
nop
cmp dword [ebx + 0xc8], eax
jge 0x527242
fld dword [0x67959c]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 5
nop
nop
fld dword [0x679638]
push ecx
fstp dword [esp]
push 0x14
push 3
push str.anim_throw
mov edi, ebx
mov dword [ebx + 0x28], 0x45
call fcn.00528b00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
push ebx
call fcn.0052e780
test eax, eax
jne 0x5272ac
mov ecx, dword [ebx]
call fcn.004538f0
test al, al
je 0x52728c
fld dword [ebx + 0x30]
mov esi, dword [ebx + 4]
call fcn.006397d0
fld dword [ebx + 0x2c]
mov edi, eax
call fcn.006397d0
mov ecx, esi
call fcn.0041c4c0
mov edi, dword [ebx + 0x1c]
push 7
mov ebx, eax
mov edx, esi
call fcn.00408e40
test eax, eax
je 0x5272d5
mov ebx, dword [ebp + 8]
jmp 0x5272ac
mov eax, ecx
call fcn.004537d0
test al, al
je 0x5272d5
mov edx, dword [ebx + 4]
mov eax, dword [edx + 0x160]
push eax
mov eax, ebx
call fcn.0042b810
test eax, eax
je 0x5272d5
mov eax, dword [ebx]
mov esi, 0x46
mov dword [ebx + 0x28], esi
call fcn.00453630
fld dword [0x679798]
push ecx
fstp dword [esp]
push 0x14
push 3
push str.anim_smash
mov edi, ebx
call fcn.00528b00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4