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
mov dword [ebx + 0x28], 0
call fcn.0052f2e0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
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]
push 0x18
push esi
call fcn.00522580
test esi, esi
je 0x5272d5
mov eax, dword [ebx + 4]
fld dword [0x67959c]
mov eax, dword [eax + 0x554c]
fstp dword [esp + 0x10]
je 0x527032
cmp eax, 5
jne 0x52704a
fld dword [esp + 0xc]
fsub qword [0x679380]
fstp dword [esp + 0xc]
fld dword [0x67a2c0]
fstp dword [esp + 0x10]
fld dword [esp + 0xc]
fld dword [esp + 0x10]
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x527063
fstp st(1)
fstp dword [esp + 0xc]
jmp 0x52709e
fstp st(0)
fld dword [0x67a120]
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x52709c
fstp qword [esp + 0x18]
sub esp, 8
fld dword [0x679498]
fstp dword [esp + 4]
fldz
fstp dword [esp]
call fcn.00511cb0
fsubr qword [esp + 0x20]
add esp, 8
fstp dword [esp + 0xc]
jmp 0x52709e
fstp st(0)
fld dword [ebx + 0x2c]
mov eax, ebx
fsub qword [0x67a2b8]
fstp dword [esi + 0x2c]
mov edx, dword [ebx + 0x1c]
push edx
call fcn.00531880
fstp dword [esi + 0x30]
mov eax, dword [ebx + 0x1c]
fld dword [0x67a2b0]
mov dword [esi + 0x1c], eax
imul eax, eax, 0x2710
add eax, 0x49f9c
mov dword [esi + 0x20], eax
mov byte [esi + 0x50], 0
mov eax, dword [ebx + 0x20]
add eax, 1
fstp dword [esi + 0x84]
mov dword [esi + 0x20], eax
fld dword [0x6798ac]
mov dword [esi + 0x28], 0x47
fstp dword [esi + 0x34]
mov ecx, dword [ebx + 0xac]
fld dword [esp + 0xc]
push ecx
fdiv qword [0x679330]
mov edi, esi
mov dword [esi + 0xac], ecx
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fmul qword [0x679300]
fmul qword [0x6796d8]
fstp dword [esi + 0x120]
fld dword [0x6795c4]
fstp dword [esp]
push 0
push 3
push str.anim_thrown
call fcn.00528b00
mov eax, esi
call fcn.0052c310
mov eax, dword [ebx]
cmp byte [eax + 0x8c5], 0
jne 0x52719a
fldz
mov ecx, dword [0x6a9f00]
mov esi, dword [eax + 0x784]
fst dword [esp + 0x10]
fcomp dword [ecx + 0x11e4]
fnstsw ax
test ah, 0x44
jnp 0x527186
fld dword [ecx + 0x11e4]
push ecx
fstp dword [esp]
call fcn.005af410
fstp dword [esp + 0x14]
add esp, 4
fld dword [esp + 0x10]
push ecx
mov eax, 0x58
fstp dword [esp]
mov ecx, esi
call fcn.00515020
mov ecx, dword [esp + 0x14]
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
sar eax, 1
cmp dword [ebx + 0xc8], eax
jge 0x527242
fld dword [0x67959c]
fcomp dword [esp + 0xc]
fnstsw ax
test ah, 5
jp 0x527242
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
jmp 0x797890
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4