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
jmp fcn.007aef8d
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]
cmp eax, 4
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]
jmp loc.007aef5a
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
jo 0x527242
jmp loc.007a37cf
push 0
jmp loc.007aefe6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4