Function at 0x522580
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
mov esi, eax
mov eax, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 8]
mov dword [edi + 0x6c], eax
mov eax, 0x28
mov dword [edi + 0x1c], esi
call fcn.005af400
add eax, 0x30c
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
push esi
mov eax, edi
fstp dword [edi + 0x2c]
call fcn.00531880
mov ecx, dword [ebp + 0xc]
fstp dword [edi + 0x30]
fldz
mov dl, byte [ebp + 0x10]
xor ebx, ebx
fst dword [edi + 0x34]
mov eax, 0x78
fst dword [edi + 0x120]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
lea eax, [ebx + 0x65]
mov dword [edi + 0x48], ebx
mov dword [edi + 0x4c], ebx
mov dword [edi + 0x24], ecx
mov byte [edi + 0x50], dl
mov byte [edi + 0x51], bl
mov dword [edi + 0x54], ebx
mov dword [edi + 0x58], ebx
mov dword [edi + 0x5c], ebx
mov dword [edi + 0xac], ebx
mov dword [edi + 0xb4], ebx
mov dword [edi + 0xb0], ebx
mov byte [edi + 0xb8], bl
mov byte [edi + 0xb9], bl
mov byte [edi + 0xba], 1
mov byte [edi + 0xbb], 1
mov byte [edi + 0xbc], bl
mov byte [edi + 0xbd], bl
mov byte [edi + 0xbe], bl
mov dword [edi + 0xc4], ebx
mov dword [edi + 0xd8], ebx
mov byte [edi + 0xbf], bl
mov dword [edi + 0xc0], ebx
mov dword [edi + 0x38], ebx
call fcn.005af400
add eax, 0x190
mov dword [edi + 0x3c], eax
mov eax, 0xc
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
mov eax, 0x24
mov dword [edi + 0x8c], eax
mov eax, 0x2a
mov dword [edi + 0x90], ebx
mov dword [edi + 0x94], eax
mov eax, 0x32
mov dword [edi + 0x9c], eax
or esi, 0xffffffff
lea ecx, [ebx + 0x73]
mov dword [edi + 0xa0], ebx
mov eax, 0x14
mov dword [edi + 0xa4], eax
mov dword [edi + 0x60], ebx
mov dword [edi + 0x80], esi
mov dword [edi + 0x28], ebx
mov dword [edi + 0x64], ebx
mov dword [edi + 0x68], ebx
mov byte [edi + 0x88], bl
mov byte [edi + 0x70], bl
mov dword [edi + 0xf0], ebx
mov dword [edi + 0x98], ecx
mov dword [edi + 0xa8], ecx
mov byte [edi + 0x104], bl
mov dword [edi + 0x74], esi
fld1
mov byte [edi + 0x78], bl
fstp dword [edi + 0x11c]
mov dword [edi + 0x7c], esi
mov dword [edi + 0xdc], ebx
mov dword [edi + 0xd0], ebx
fst dword [edi + 0x84]
mov dword [edi + 0xe4], ebx
fstp dword [edi + 0x124]
mov dword [edi + 0x110], ebx
mov dword [edi + 0x114], ebx
mov dword [edi + 0x138], esi
mov dword [edi + 0x134], esi
mov dword [edi + 0x13c], esi
mov dword [edi + 0x118], ebx
mov dword [edi + 0x128], ebx
mov dword [edi + 0x12c], ebx
mov dword [edi + 0x140], ebx
mov dword [edi + 0x144], ebx
mov dword [edi + 0x130], esi
mov dword [edi + 0x148], esi
mov byte [edi + 0x14c], bl
mov dword [edi + 0x150], ebx
mov dword [edi + 0x154], esi
mov dword [edi + 0xf4], ebx
mov dword [edi + 0xf8], ebx
mov dword [edi + 0xfc], ebx
mov dword [edi + 0x100], ebx
mov edx, dword [edi + 4]
cmp edx, ebx
je 0x52279b
mov eax, dword [edi + 0x6c]
push eax
call fcn.00409080
test al, al
je 0x52279b
fld dword [edi + 0x2c]
fadd qword [0x6794c8]
fstp dword [edi + 0x2c]
mov eax, edi
call fcn.00524a70
mov eax, dword [edi + 0x24]
lea ecx, [eax*8]
sub ecx, eax
lea eax, [ecx*4 + 0x69da80]
mov dword [edi + 0xc8], 0x10e
mov dword [esp + 0x1c], eax
mov eax, dword [eax + 4]
cmp eax, esi
mov dword [esp + 0x14], 0x49f98
mov dword [esp + 0x10], 4
je 0x5227e2
push eax
mov eax, edi
call fcn.00524470
mov ecx, dword [ebp + 0xc]
cmp ecx, ebx
jne 0x5227f3
call fcn.00524370
jmp 0x523e4e
cmp ecx, 0xa
jne 0x522802
call fcn.00524370
jmp 0x523e4e
cmp ecx, 2
jne 0x52289b
call fcn.00524370
mov edx, dword [edi]
mov ecx, dword [edi + 0x118]
cmp ecx, ebx
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
je 0x522849
movzx eax, cx
cmp eax, dword [edx + 8]
jae 0x522849
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
cmp dword [eax + 0x9c], ecx
jne 0x522849
push ebx
push str.anim_cone
push eax
call fcn.00473a40
mov edx, dword [edi]
mov ecx, dword [edi + 0x118]
cmp ecx, ebx
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
je 0x522882
movzx eax, cx
cmp eax, dword [edx + 8]
jae 0x522882
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
cmp dword [eax + 0x9c], ecx
jne 0x522882
push esi
push str.anim_hair
push eax
call fcn.00473a40
mov dword [edi + 0xc4], 1
mov dword [edi + 0xd0], 0x172
jmp 0x523e4e
cmp ecx, 4
jne 0x522934
call fcn.00524370
mov edx, dword [edi]
mov ecx, dword [edi + 0x118]
cmp ecx, ebx
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
je 0x5228e2
movzx eax, cx
cmp eax, dword [edx + 8]
jae 0x5228e2
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
cmp dword [eax + 0x9c], ecx
jne 0x5228e2
push ebx
push str.anim_bucket
push eax
call fcn.00473a40
mov edx, dword [edi]
mov ecx, dword [edi + 0x118]
cmp ecx, ebx
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
je 0x52291b
movzx eax, cx
cmp eax, dword [edx + 8]
jae 0x52291b
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
cmp dword [eax + 0x9c], ecx
jne 0x52291b
push esi
push str.anim_hair
push eax
call fcn.00473a40
mov dword [edi + 0xc4], 2
mov dword [edi + 0xd0], 0x44c
jmp 0x523e4e
cmp ecx, 6
jne 0x52295e
mov dword [edi + 0xd8], 1
mov dword [edi + 0xdc], 0x44c
call fcn.00524370
mov eax, edi
call fcn.00533000
jmp 0x523e4e
cmp ecx, 0x13
jne 0x522996
mov eax, 0x1f5
mov dword [edi + 0xc8], 0x546
call fcn.005af400
add eax, 0x5dc
mov dword [edi + 0x68], eax
mov eax, 0x14
mov byte [edi + 0xbc], 1
lea ecx, [eax + 0x1e]
lea edx, [eax + 0x5f]
jmp 0x522d3a
cmp ecx, 0x15
jne 0x522a04
mov eax, 0x1f4
mov dword [edi + 0xc8], eax
mov dword [edi + 0xdc], eax
mov eax, 0xa
mov dword [edi + 0x9c], eax
mov dword [edi + 0xa0], ebx
mov ecx, 0x32
mov edx, 0x73
mov dword [edi + 0xa4], ecx
mov eax, edi
mov dword [edi + 0xd8], 3
mov dword [edi + 0xa8], edx
call fcn.0052ae40
test al, al
je 0x5229f8
xor esi, esi
mov eax, edi
mov dword [edi + 0x28], 0x4c
call fcn.0052f2e0
mov eax, edi
call fcn.00533000
jmp 0x523e4e
mov eax, dword [edi + 0x24]
cmp eax, 0x14
jne 0x522b69
mov eax, 0x97
mov dword [edi + 0xc8], 0x1c2
mov dword [edi + 0x44], 4
call fcn.005af400
add eax, 0xbb8
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov eax, edi
fstp dword [edi + 0x84]
fldz
fstp dword [edi + 0x34]
call fcn.0052ae40
test al, al
je 0x522a6a
push esi
push edi
call fcn.005246a0
cmp byte [edi + 0xec], bl
jne 0x524035
mov dword [edi + 0x28], 4
jmp 0x522a7e
mov eax, 0xc9
mov dword [edi + 0x28], 0xa
call fcn.005af400
mov dword [edi + 0x68], eax
fld dword [0x679638]
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_drop
call fcn.00528b00
mov eax, dword [edi + 0x118]
mov ecx, dword [edi]
mov edx, dword [ecx + 0x820]
mov ecx, dword [edx + 8]
and eax, 0xffff
lea esi, [eax + eax*4]
push 2
shl esi, 5
add esi, dword [ecx]
push str.Zombie_bungi_rightarm_lower2
push esi
call fcn.00473a40
push 2
push str.Zombie_bungi_rightarm_hand2
push esi
call fcn.00473a40
push 2
push str.Zombie_bungi_leftarm_lower2
push esi
call fcn.00473a40
push 2
push str.Zombie_bungi_leftarm_hand2
push esi
call fcn.00473a40
mov edx, dword [esi + 0xc]
xor eax, eax
cmp dword [edx + 4], ebx
jle 0x522b07
xor ecx, ecx
mov edx, dword [esi + 0x58]
mov byte [edx + ecx + 0x5d], bl
mov edx, dword [esi + 0xc]
add eax, 1
add ecx, 0x60
cmp eax, dword [edx + 4]
jl 0x522af2
mov eax, 0xffffffec
mov dword [edi + 0x8c], eax
mov ecx, 0x16
mov edx, 0x6e
mov dword [edi + 0x90], ecx
xor eax, eax
mov dword [edi + 0x94], edx
xor ecx, ecx
mov dword [edi + 0x9c], eax
xor edx, edx
mov dword [edi + 0xa0], ecx
mov esi, 0x5e
mov dword [edi + 0xa4], edx
mov dword [esp + 0x14], 0x497c8
mov dword [esp + 0x10], 7
mov dword [edi + 0x98], esi
mov dword [edi + 0xa8], ebx
mov byte [edi + 0x50], bl
jmp 0x523e4e
cmp eax, 7
jne 0x522bc3
mov eax, 0x32
mov dword [edi + 0x8c], eax
lea ecx, [eax + 0x41]
mov dword [edi + 0x90], ebx
mov eax, 0x39
mov dword [edi + 0x94], eax
push esi
push str.anim_hair
mov eax, edi
mov dword [edi + 0x98], ecx
call fcn.005331c0
mov dword [edi + 0xc4], 3
mov dword [edi + 0xd0], 0x578
mov dword [edi + 0x40], 6
mov byte [edi + 0x50], bl
jmp 0x523e4e
cmp eax, 0x11
jne 0x522cab
mov eax, 0x32
mov dword [edi + 0x8c], eax
mov eax, dword [edi]
mov dword [edi + 0x90], ebx
mov dword [edi + 0xc4], 4
mov dword [edi + 0xd0], 0x64
mov byte [edi + 0x50], bl
mov byte [edi + 0xbc], 1
mov ecx, 0x1c
mov dword [edi + 0x94], ecx
mov edx, 0x73
mov dword [edi + 0x98], edx
mov ecx, dword [eax + 0x820]
mov eax, dword [edi + 0x118]
mov edx, dword [ecx + 8]
and eax, 0xffff
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
xor ecx, ecx
mov edx, dword [eax + 0xc]
cmp dword [edx + 4], ebx
jle 0x522c55
xor edx, edx
jmp 0x522c40
mov esi, dword [eax + 0x58]
mov byte [esi + edx + 0x5d], bl
mov esi, dword [eax + 0xc]
add ecx, 1
add edx, 0x60
cmp ecx, dword [esi + 4]
jl 0x522c40
mov eax, edi
call fcn.0052ae40
test al, al
jne 0x522c6c
mov dword [edi + 0x28], 0x27
jmp 0x523e4e
push 0x20
push 0x64
push 0x3c
mov eax, edi
mov dword [edi + 0x28], 0x20
call fcn.005321f0
fld dword [0x679388]
push ecx
fstp dword [esp]
push ebx
push 1
push str.anim_dig
mov dword [esp + 0x20], 7
call fcn.00528b00
mov eax, edi
call fcn.00524a70
jmp 0x523e4e
cmp eax, 3
jne 0x522d57
mov eax, 0xa
mov dword [edi + 0xc8], 0x1f4
mov dword [edi + 0x40], 6
mov dword [edi + 0x28], 0xb
mov byte [edi + 0xbc], 1
mov byte [edi + 0x50], bl
call fcn.005af400
add eax, 0x366
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov eax, edi
fstp dword [edi + 0x2c]
call fcn.0052ae40
test al, al
je 0x522d14
fldz
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_run
call fcn.00528b00
mov eax, edi
call fcn.00524a70
mov ecx, dword [edi]
call fcn.00453840
test al, al
mov edx, 0x73
je 0x522d30
mov eax, 0xffffff1b
mov ecx, 0x10e
jmp 0x522d3a
mov eax, 0xffffffe3
mov ecx, 0x46
mov dword [edi + 0x9c], eax
mov dword [edi + 0xa0], ebx
mov dword [edi + 0xa4], ecx
mov dword [edi + 0xa8], edx
jmp 0x523e4e
cmp eax, 0xe
jne 0x522db8
mov eax, edi
mov dword [edi + 0xc8], 0x1f4
mov dword [edi + 0x40], 6
mov dword [edi + 0x28], 0x33
mov byte [edi + 0x50], bl
call fcn.0052ae40
test al, al
je 0x522d9b
fldz
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_walkdolphin
call fcn.00528b00
mov eax, edi
call fcn.00524a70
push str.Zombie_dolphinrider_whitewater
mov eax, edi
call fcn.00536ea0
push str.Zombie_dolphinrider_dolphininwater
mov eax, edi
call fcn.00536ea0
jmp 0x523e4e
cmp eax, 0x17
je 0x523d10
cmp eax, 0x20
je 0x523d10
cmp eax, 0xc
jne 0x522e79
mov esi, 8
lea eax, [esi + 2]
mov dword [edi + 0xc8], 0x546
mov dword [edi + 0x44], 2
mov dword [edi + 0x40], esi
call fcn.005af400
add eax, 0x320
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
push ecx
mov dword [esp + 0x14], esi
fstp dword [edi + 0x2c]
fld dword [0x679388]
fstp dword [esp]
push ebx
push ebx
push str.anim_drive
call fcn.00528b00
mov eax, 0xfffffff3
mov dword [edi + 0x8c], ebx
mov ecx, 0x99
mov dword [edi + 0x90], eax
mov edx, 0x8c
mov dword [edi + 0x94], ecx
mov eax, 0xa
mov dword [edi + 0x9c], eax
mov dword [edi + 0x98], edx
mov ecx, 0xfffffff3
mov edx, 0x85
mov dword [edi + 0xa0], ecx
mov esi, 0x8c
mov dword [edi + 0xa4], edx
mov dword [edi + 0xa8], esi
mov byte [edi + 0x50], bl
jmp 0x523e4e
cmp eax, 0x16
jne 0x522f3e
mov eax, 0xa
mov dword [edi + 0xc8], 0x352
call fcn.005af400
add eax, 0x339
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov eax, edi
mov dword [edi + 0x114], 0x14
fstp dword [edi + 0x2c]
call fcn.0052ae40
test al, al
push ecx
je 0x522ece
fld dword [0x67a11c]
fstp dword [esp]
push ebx
push ebx
push str.anim_walk
jmp 0x522ede
fld dword [0x6796f4]
fstp dword [esp]
push ebx
push ebx
push str.anim_idle
call fcn.00528b00
mov eax, 0xfffffff3
mov dword [edi + 0x8c], ebx
mov ecx, 0x99
mov dword [edi + 0x90], eax
mov edx, 0x8c
mov dword [edi + 0x94], ecx
mov eax, 0xa
mov dword [edi + 0x9c], eax
mov dword [edi + 0x98], edx
mov ecx, 0xfffffff3
mov edx, 0x85
mov dword [edi + 0xa0], ecx
mov esi, 0x8c
mov dword [edi + 0xa4], edx
mov dword [edi + 0xa8], esi
mov byte [edi + 0x50], bl
jmp 0x523e4e
cmp eax, 0xb
jne 0x522fb3
mov eax, 0xc
mov dword [edi + 0x8c], eax
mov ecx, 0x3e
mov dword [edi + 0x90], ebx
mov dword [edi + 0x94], ecx
mov eax, 0xfffffffb
mov dword [edi + 0x9c], eax
mov edx, 0x73
mov ecx, 0x37
mov dword [edi + 0xa0], ebx
mov dword [edi + 0xa4], ecx
push str.Zombie_snorkle_whitewater
mov eax, edi
mov dword [edi + 0x98], edx
mov dword [edi + 0xa8], edx
call fcn.00536ea0
push str.Zombie_snorkle_whitewater2
mov eax, edi
call fcn.00536ea0
mov byte [edi + 0x50], bl
mov dword [edi + 0x28], 0x39
jmp 0x523e4e
cmp eax, 0xf
jne 0x523068
mov eax, 0x12c
mov dword [edi + 0xc8], 0x1f4
mov dword [edi + 0x40], 6
call fcn.005af400
mov esi, eax
add esi, 0x1c2
mov eax, 0x14
mov dword [esp + 0x18], esi
call fcn.005af400
test eax, eax
jne 0x523003
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fdiv dword [edi + 0x34]
call fcn.006397d0
add eax, eax
mov dword [edi + 0x68], eax
mov eax, 0x14
mov dword [edi + 0x9c], eax
mov ecx, 0x32
mov dword [edi + 0xa0], ebx
mov dword [edi + 0xa4], ecx
mov ecx, dword [edi]
mov edx, 0x73
mov dword [edi + 0xa8], edx
call fcn.004538f0
test al, al
je 0x52304d
mov dword [edi + 0x68], 0xa
mov eax, edi
call fcn.0052ae40
test al, al
je 0x523e4e
mov dword [edi + 0x28], 0xf
jmp 0x523e4e
cmp eax, 0xd
jne 0x5231df
mov edx, dword [ebp + 0x14]
cmp edx, ebx
mov dword [esp + 0x10], 3
je 0x5230f9
xor eax, eax
lea ecx, [edx + 0xf4]
cmp dword [ecx], ebx
je 0x523097
add eax, 1
add ecx, 4
cmp eax, 3
jl 0x523088
mov ecx, dword [edi + 0x158]
mov dword [edx + eax*4 + 0xf4], ecx
mov ecx, dword [edx + 0x158]
mov dword [edi + 0xf0], ecx
lea ecx, [eax + 1]
imul ecx, ecx, 0x32
cmp eax, ebx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fadd dword [edx + 0x2c]
fstp dword [edi + 0x2c]
jne 0x5230d8
fld dword [0x679988]
mov dword [esp + 0x10], 1
jmp 0x523143
cmp eax, 1
jne 0x5230ed
fld dword [0x679a10]
mov dword [esp + 0x10], 2
jmp 0x523143
fld dword [0x679988]
mov dword [esp + 0x10], ebx
jmp 0x523143
fld dword [0x67a118]
mov eax, 0xffffffce
mov dword [edi + 0x8c], eax
fstp dword [edi + 0x2c]
fld dword [0x679568]
mov ecx, 0x113
mov dword [edi + 0x90], ebx
mov edx, 0x73
mov dword [edi + 0x94], ecx
mov dword [edi + 0xc4], 7
mov dword [edi + 0xd0], 0x12c
mov dword [edi + 0x98], edx
cmp dword [ebp + 0x18], 0xfffffffe
fstp dword [edi + 0x84]
fld dword [0x679610]
mov dword [edi + 0x28], 0x11
fstp dword [edi + 0x34]
mov dword [edi + 0x68], 0x1f4
mov byte [edi + 0x50], bl
jne 0x5231b5
fld dword [0x679508]
push ecx
fstp dword [esp]
push ebx
push 3
push str.anim_jump
call fcn.00528b00
fld1
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x118]
and eax, 0xffff
lea edx, [eax + eax*4]
mov eax, dword [ecx]
shl edx, 5
fstp dword [eax + edx + 4]
fld dword [0x6795c4]
fstp dword [edi + 0x84]
jmp 0x523e4e
mov eax, edi
call fcn.0052ae40
test al, al
je 0x523e4e
fld dword [0x66541c]
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_push
call fcn.00528b00
jmp 0x523e4e
cmp ecx, 1
jne 0x52329d
mov byte [edi + 0xbc], cl
call fcn.00524370
fldz
mov eax, dword [edi]
mov edi, dword [edi + 0x118]
mov ecx, dword [eax + 0x820]
mov edx, dword [ecx + 8]
and edi, 0xffff
push ebx
lea edi, [edi + edi*4]
sub esp, 8
fst dword [esp + 4]
shl edi, 5
add edi, dword [edx]
fstp dword [esp]
mov ebx, 0x8e
call fcn.00453c30
fld dword [0x67967c]
push ecx
fstp dword [esp]
push 0
mov esi, eax
push str.Zombie_flag
xor eax, eax
call fcn.00473bf0
mov eax, dword [esi + 0x9c]
mov ecx, dword [ebp + 8]
push str.Zombie_flaghand
mov ebx, edi
mov dword [ecx + 0x144], eax
call fcn.00472f30
fldz
lea edx, [eax + eax*2]
mov eax, dword [edi + 0x58]
sub esp, 8
shl edx, 5
fst dword [esp + 4]
lea edi, [edx + eax + 0x40]
fstp dword [esp]
call fcn.004055d0
fld dword [0x67a114]
mov edx, dword [ebp + 8]
mov ecx, ebx
add esp, 8
mov dword [ecx + 0x20], 0
fstp dword [edx + 0x2c]
xor ebx, ebx
mov edi, edx
jmp 0x523e4e
cmp eax, 0x12
jne 0x523338
mov eax, 0x50
mov byte [edi + 0x50], bl
mov dword [edi + 0x28], 0x14
call fcn.005af400
fld dword [0x67959c]
mov ecx, 0x1e
push ecx
add eax, 1
fstp dword [esp]
mov dword [edi + 0x68], eax
push ebx
mov eax, 0xa
mov dword [edi + 0x9c], eax
mov dword [edi + 0xa0], ebx
push 3
mov edx, 0x73
mov dword [edi + 0xa4], ecx
push str.anim_pogo
mov byte [edi + 0xbc], 1
mov dword [edi + 0xc8], 0x1f4
mov dword [edi + 0xa8], edx
call fcn.00528b00
fld1
mov eax, dword [edi]
mov ecx, dword [eax + 0x820]
mov eax, dword [edi + 0x118]
mov edx, dword [ecx + 8]
mov ecx, dword [edx]
and eax, 0xffff
lea eax, [eax + eax*4]
shl eax, 5
fstp dword [ecx + eax + 4]
jmp 0x523e4e
cmp ecx, 5
jne 0x52338e
mov eax, 0x14
mov dword [edi + 0x9c], eax
mov ecx, 0x32
mov dword [edi + 0xa0], ebx
mov edx, 0x73
mov dword [edi + 0xa4], ecx
mov eax, edi
mov dword [edi + 0xa8], edx
mov dword [edi + 0x28], 0x1d
mov dword [edi + 0xd8], 2
mov dword [edi + 0xdc], 0x96
mov byte [edi + 0x50], bl
call fcn.00533000
jmp 0x523e4e
cmp ecx, 0x10
jne 0x5234da
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x118]
and eax, 0xffff
lea esi, [eax + eax*4]
shl esi, 5
add esi, dword [ecx]
xor eax, eax
mov edx, dword [esi + 0xc]
cmp dword [edx + 4], ebx
jle 0x5233d6
xor ecx, ecx
mov edx, dword [esi + 0x58]
mov byte [edx + ecx + 0x5d], bl
mov edx, dword [esi + 0xc]
add eax, 1
add ecx, 0x60
cmp eax, dword [edx + 4]
jl 0x5233c1
mov eax, edi
call fcn.0052ae40
test al, al
je 0x523409
fld dword [0x6795f0]
push ecx
fstp dword [edi + 0x84]
mov dword [edi + 0x28], 0x49
fld dword [esi + 8]
fstp dword [esp]
push ebx
push ebx
push str.anim_idle
call fcn.00528b00
jmp 0x523439
fld dword [0x679678]
sub esp, 8
fstp dword [esp + 4]
fld dword [0x6796f4]
fstp dword [esp]
call fcn.00511cb0
fstp dword [esp + 0x20]
add esp, 4
fld dword [esp + 0x1c]
mov eax, edi
fstp dword [esp]
call fcn.0052efd0
fldz
mov eax, dword [esp + 0x1c]
push ebx
mov ebx, dword [eax + 4]
mov eax, dword [edi]
sub esp, 8
fst dword [esp + 4]
fstp dword [esp]
call fcn.00453c30
mov ebx, eax
push str.Propeller
mov ecx, ebx
call fcn.00473280
mov eax, esi
mov edx, 0x66eb64
mov esi, ebx
mov dword [ebx + 0x10], 1
call fcn.00472f80
mov eax, 0x24
mov dword [edi + 0x8c], eax
mov ecx, 0x1e
mov edx, 0x2a
mov dword [edi + 0x90], ecx
mov dword [edi + 0x94], edx
mov eax, 0x14
mov dword [edi + 0x9c], eax
mov esi, 0x73
mov edx, 0x32
mov dword [edi + 0xa0], ecx
mov dword [edi + 0xa4], edx
mov dword [edi + 0xe4], 0x14
mov dword [edi + 0x98], esi
mov dword [edi + 0xa8], esi
mov byte [edi + 0x50], 0
xor ebx, ebx
jmp 0x523e4e
cmp ecx, 8
jne 0x52353c
mov eax, edi
call fcn.0052ae40
test al, al
jne 0x5234f2
fld dword [0x679388]
jmp 0x52351a
mov eax, 0xc
mov dword [edi + 0x28], 0x28
call fcn.005af400
fld dword [0x6793c0]
add eax, 0x12c
fstp dword [edi + 0x34]
fld dword [0x679638]
mov dword [edi + 0x68], eax
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_moonwalk
call fcn.00528b00
mov dword [edi + 0xc8], 0x1f4
mov byte [edi + 0x50], bl
jmp 0x523e4e
cmp ecx, 9
jne 0x523571
mov eax, edi
call fcn.0052ae40
test al, al
jne 0x523562
fld dword [0x679388]
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_armraise
call fcn.00528b00
mov dword [edi + 0x28], 0x2c
mov byte [edi + 0x50], bl
jmp 0x523e4e
cmp eax, 0x18
jne 0x5235b5
mov eax, edi
call fcn.0052ae40
test al, al
jne 0x523597
fld dword [0x679388]
push ecx
fstp dword [esp]
push ebx
push ebx
push str.anim_walk
call fcn.00528b00
mov eax, dword [edi]
call fcn.004537d0
test al, al
je 0x523e4e
mov dword [edi + 0xc8], 0x46
jmp 0x523e4e
cmp eax, 0x19
jne 0x523696
fldz
mov eax, 0x2bc
mov dword [edi + 0x8c], eax
fst dword [edi + 0x2c]
mov ecx, 0x50
fstp dword [edi + 0x30]
mov dword [edi + 0x90], ecx
xor eax, eax
mov dword [edi + 0x9c], eax
mov edx, 0x5a
mov dword [edi + 0x94], edx
xor edx, edx
xor ecx, ecx
mov dword [edi + 0xa0], ecx
mov ecx, dword [edi]
mov dword [edi + 0xa4], edx
mov esi, 0x1ae
mov dword [edi + 0x98], esi
mov dword [edi + 0xa8], ebx
mov edx, dword [ecx + 0x7f8]
neg edx
sbb edx, edx
and edx, 0x4e20
add edx, 0x9c40
mov eax, edi
mov dword [esp + 0x14], 0x61a80
mov dword [edi + 0xc8], edx
call fcn.0052ae40
fld dword [0x679388]
test al, al
push ecx
fstp dword [esp]
push ebx
je 0x52367f
push 3
push str.anim_enter
call fcn.00528b00
mov eax, edi
mov dword [edi + 0x114], 0x1f4
mov dword [edi + 0x13c], 0x1388
mov dword [edi + 0x28], 0x4e
call fcn.005367f0
jmp 0x523e4e
push ebx
push str.anim_head_idle
call fcn.00528b00
mov eax, edi
call fcn.005367f0
jmp 0x523e4e
cmp ecx, 0x1a
jne 0x523710
call fcn.00524370
push esi
push str.anim_hair
mov eax, edi
call fcn.005331c0
push esi
push str.anim_head2
mov eax, edi
call fcn.005331c0
mov eax, dword [edi]
mov ecx, dword [eax + 0x820]
mov eax, dword [edi + 0x118]
mov edx, dword [ecx + 8]
and eax, 0xffff
lea ebx, [eax + eax*4]
shl ebx, 5
add ebx, dword [edx]
mov eax, edi
mov dword [esp + 0x1c], ebx
call fcn.0052ae40
test al, al
je 0x5236f3
push str.anim_walk2
mov ecx, ebx
call fcn.00473280
push str.anim_head1
call fcn.00472f30
lea edi, [eax + eax*2]
shl edi, 5
add edi, dword [ebx + 0x58]
mov ebx, 4
jmp 0x523b2a
cmp ecx, 0x1b
jne 0x523839
call fcn.00524370
push esi
push str.anim_hair
mov eax, edi
call fcn.005331c0
push esi
push str.anim_head
mov eax, edi
call fcn.005331c0
push esi
push str.Zombie_tie
mov eax, edi
call fcn.005331c0
mov edx, dword [edi]
mov edi, dword [edi + 0x118]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
and edi, 0xffff
lea ebx, [edi + edi*4]
shl ebx, 5
add ebx, dword [ecx]
push str.Zombie_body
mov dword [esp + 0x20], ebx
call fcn.00472f30
fldz
mov edx, dword [ebp + 8]
lea edi, [eax + eax*2]
mov eax, dword [edx]
push 0
sub esp, 8
shl edi, 5
fst dword [esp + 4]
add edi, dword [ebx + 0x58]
fstp dword [esp]
mov ebx, 5
call fcn.00453c30
fld dword [0x67967c]
push ecx
fstp dword [esp]
xor ebx, ebx
push ebx
mov esi, eax
push str.anim_idle
xor eax, eax
call fcn.00473bf0
fldz
mov eax, dword [esi + 0x9c]
mov ecx, dword [ebp + 8]
sub esp, 8
fst dword [esp + 4]
add edi, 0x40
fstp dword [esp]
mov dword [ecx + 0x144], eax
call fcn.004055d0
fld dword [0x679664]
mov edx, dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [0x67a0d8]
sub esp, 0xc
fstp dword [esp + 0xc]
lea esi, [eax + 8]
fld dword [0x67953c]
mov dword [edx + 0x20], ebx
fstp dword [esp + 8]
fldz
fstp dword [esp + 4]
fld dword [0x679800]
fstp dword [esp]
call fcn.005125d0
mov eax, dword [ebp + 8]
add esp, 0x14
mov dword [eax + 0xc4], 8
mov dword [eax + 0xd0], 0x44c
mov byte [eax + 0x50], bl
mov edi, eax
jmp 0x523e4e
cmp ecx, 0x1f
jne 0x52396e
call fcn.00524370
push esi
push str.anim_hair
mov eax, edi
call fcn.005331c0
push esi
push str.anim_head
mov eax, edi
call fcn.005331c0
push esi
push str.Zombie_tie
mov eax, edi
call fcn.005331c0
mov eax, dword [edi]
mov edi, dword [edi + 0x118]
mov ecx, dword [eax + 0x820]
mov edx, dword [ecx + 8]
and edi, 0xffff
lea ebx, [edi + edi*4]
shl ebx, 5
add ebx, dword [edx]
push str.Zombie_body
mov dword [esp + 0x20], ebx
call fcn.00472f30
fldz
lea edi, [eax + eax*2]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
push 0
sub esp, 8
shl edi, 5
fst dword [esp + 4]
add edi, dword [ebx + 0x58]
fstp dword [esp]
mov ebx, 0x10
call fcn.00453c30
fld dword [0x67967c]
push ecx
fstp dword [esp]
xor ebx, ebx
push ebx
mov esi, eax
push str.anim_idle
xor eax, eax
call fcn.00473bf0
fldz
mov ecx, dword [esi + 0x9c]
mov edx, dword [ebp + 8]
sub esp, 8
fst dword [esp + 4]
add edi, 0x40
fstp dword [esp]
mov dword [edx + 0x144], ecx
call fcn.004055d0
fld dword [0x679664]
mov ecx, dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [0x67a0d8]
sub esp, 0xc
fstp dword [esp + 0xc]
lea esi, [eax + 8]
fld dword [0x67953c]
mov dword [ecx + 0x20], ebx
fstp dword [esp + 8]
fldz
fstp dword [esp + 4]
fld dword [0x679a94]
fstp dword [esp]
call fcn.005125d0
mov eax, dword [ebp + 8]
fld dword [eax + 0x2c]
add esp, 0x14
fadd qword [0x679318]
mov dword [eax + 0xc4], 9
mov dword [eax + 0xd0], 0x898
mov byte [eax + 0x50], bl
fstp dword [eax + 0x2c]
mov edi, eax
jmp 0x523e4e
cmp eax, 0x1c
jne 0x523ab1
call fcn.00524370
push esi
push str.anim_hair
mov eax, edi
call fcn.005331c0
push esi
push str.anim_head
mov eax, edi
call fcn.005331c0
push esi
push str.Zombie_tie
mov eax, edi
call fcn.005331c0
mov edx, dword [edi]
mov edi, dword [edi + 0x118]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
and edi, 0xffff
lea ebx, [edi + edi*4]
shl ebx, 5
add ebx, dword [ecx]
push str.Zombie_body
mov dword [esp + 0x20], ebx
call fcn.00472f30
fldz
mov edx, dword [ebp + 8]
lea edi, [eax + eax*2]
mov eax, dword [edx]
push 0
sub esp, 8
shl edi, 5
fst dword [esp + 4]
add edi, dword [ebx + 0x58]
fstp dword [esp]
mov ebx, 0x21
call fcn.00453c30
fld dword [0x67967c]
push ecx
fstp dword [esp]
xor ebx, ebx
push ebx
mov esi, eax
push str.anim_idle
xor eax, eax
call fcn.00473bf0
fldz
mov eax, dword [esi + 0x9c]
mov ecx, dword [ebp + 8]
sub esp, 8
fst dword [esp + 4]
add edi, 0x40
fstp dword [esp]
mov dword [ecx + 0x144], eax
call fcn.004055d0
fld1
mov edx, dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [0x679378]
sub esp, 0xc
fstp dword [esp + 0xc]
lea esi, [eax + 8]
fld dword [0x67953c]
mov dword [edx + 0x20], ebx
fstp dword [esp + 8]
fld dword [0x679f94]
fstp dword [esp + 4]
fld dword [0x679a00]
fstp dword [esp]
call fcn.005125d0
mov esi, dword [ebp + 8]
add esp, 0x14
mov eax, 0xaf
mov byte [esi + 0x50], bl
mov dword [esi + 0xc8], 0x1f4
call fcn.005af400
add eax, 0x113
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fdiv dword [esi + 0x34]
call fcn.006397d0
add eax, eax
mov dword [esi + 0x68], eax
mov edi, esi
jmp 0x523e4e
cmp ecx, 0x1d
jne 0x523bde
call fcn.00524370
push esi
push str.anim_hair
mov eax, edi
call fcn.005331c0
push esi
push str.anim_head2
mov eax, edi
call fcn.005331c0
mov eax, dword [edi]
mov ecx, dword [eax + 0x820]
mov eax, dword [edi + 0x118]
mov edx, dword [ecx + 8]
and eax, 0xffff
lea ebx, [eax + eax*4]
shl ebx, 5
add ebx, dword [edx]
mov eax, edi
mov dword [esp + 0x1c], ebx
call fcn.0052ae40
test al, al
je 0x523b12
push str.anim_walk2
mov ecx, ebx
call fcn.00473280
push str.anim_head1
call fcn.00472f30
lea edi, [eax + eax*2]
shl edi, 5
add edi, dword [ebx + 0x58]
mov ebx, 0x50
mov eax, dword [0x6a77bc]
fldz
mov ecx, dword [ebp + 8]
push 0
sub esp, 8
mov dword [edi + 0x44], eax
fst dword [esp + 4]
mov eax, dword [ecx]
fstp dword [esp]
call fcn.00453c30
fld dword [0x67967c]
push ecx
fstp dword [esp]
xor ebx, ebx
push ebx
mov esi, eax
push str.anim_head_idle
xor eax, eax
call fcn.00473bf0
fldz
mov edx, dword [esi + 0x9c]
mov eax, dword [ebp + 8]
sub esp, 8
fst dword [esp + 4]
add edi, 0x40
fstp dword [esp]
mov dword [eax + 0x144], edx
call fcn.004055d0
fld1
mov ecx, dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [0x679378]
sub esp, 0xc
fstp dword [esp + 0xc]
lea esi, [eax + 8]
fld dword [0x67953c]
mov dword [ecx + 0x20], ebx
fstp dword [esp + 8]
fld dword [0x679f94]
fstp dword [esp + 4]
fld dword [0x679778]
fstp dword [esp]
call fcn.005125d0
mov eax, dword [ebp + 8]
add esp, 0x14
mov dword [eax + 0x68], 0x96
mov byte [eax + 0x50], bl
mov edi, eax
jmp 0x523e4e
cmp ecx, 0x1e
jne 0x523e4e
call fcn.00524370
push esi
push str.anim_hair
mov eax, edi
call fcn.005331c0
push esi
push str.anim_head2
mov eax, edi
call fcn.005331c0
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x118]
and eax, 0xffff
lea ebx, [eax + eax*4]
shl ebx, 5
add ebx, dword [ecx]
mov eax, edi
mov dword [esp + 0x1c], ebx
call fcn.0052ae40
test al, al
je 0x523c3f
push str.anim_walk2
mov ecx, ebx
call fcn.00473280
push str.anim_head1
call fcn.00472f30
fldz
mov edx, dword [0x6a77bc]
lea edi, [eax + eax*2]
mov eax, dword [ebp + 8]
shl edi, 5
add edi, dword [ebx + 0x58]
push 0
sub esp, 8
mov dword [edi + 0x44], edx
fst dword [esp + 4]
mov eax, dword [eax]
fstp dword [esp]
mov ebx, 0xb
call fcn.00453c30
fld dword [0x67967c]
push ecx
fstp dword [esp]
xor ebx, ebx
push ebx
mov esi, eax
push str.anim_idle
xor eax, eax
call fcn.00473bf0
fldz
mov ecx, dword [esi + 0x9c]
mov edx, dword [ebp + 8]
sub esp, 8
fst dword [esp + 4]
add edi, 0x40
fstp dword [esp]
mov dword [edx + 0x144], ecx
call fcn.004055d0
fld dword [0x679528]
mov ecx, dword [esp + 0x24]
fstp dword [esp + 4]
fld dword [0x67a110]
sub esp, 0xc
fstp dword [esp + 0xc]
lea esi, [eax + 8]
fld dword [0x67953c]
mov dword [ecx + 0x20], ebx
fstp dword [esp + 8]
fld dword [0x679f60]
fstp dword [esp + 4]
fld dword [0x679a00]
fstp dword [esp]
call fcn.005125d0
mov eax, dword [ebp + 8]
add esp, 0x14
mov dword [eax + 0x28], 0x5c
mov byte [eax + 0x50], bl
mov edi, eax
jmp 0x523e4e
mov eax, 0xb4
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov eax, 0xa
mov dword [edi + 0xc8], 0xbb8
mov dword [edi + 0x44], 0x18
mov dword [edi + 0x40], 8
call fcn.005af400
add eax, 0x34d
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
mov eax, 0xffffffef
mov dword [edi + 0x8c], eax
mov ecx, 0xffffffda
mov edx, 0x7d
fstp dword [edi + 0x2c]
mov dword [edi + 0x90], ecx
mov dword [edi + 0x94], edx
mov eax, 0xffffffe2
mov dword [edi + 0x9c], eax
mov esi, 0x9a
mov edx, 0x59
mov dword [edi + 0xa0], ecx
mov dword [edi + 0xa4], edx
lea eax, [esi - 0x36]
mov dword [edi + 0x98], esi
mov dword [edi + 0xa8], esi
mov byte [edi + 0x50], bl
mov dword [esp + 0x10], 8
mov byte [edi + 0xbc], 1
call fcn.005af400
mov ecx, eax
mov eax, edi
call fcn.0052ae40
test al, al
je 0x523de6
mov edx, dword [edi + 4]
cmp dword [edx + 0x5550], 0x30
je 0x523de6
cmp ecx, 0xa
jge 0x523dda
mov ecx, 2
jmp 0x523de8
xor eax, eax
cmp ecx, 0x23
setl al
mov ecx, eax
jmp 0x523de8
xor ecx, ecx
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
mov eax, dword [edi + 0x118]
and eax, 0xffff
lea esi, [eax + eax*4]
shl esi, 5
add esi, dword [edx]
cmp ecx, 2
jne 0x523e13
mov eax, dword [0x6a7520]
push eax
jmp 0x523e1f
cmp ecx, 1
jne 0x523e2b
mov ecx, dword [0x6a74dc]
push ecx
mov eax, str.Zombie_gargantuar_telephonepole
mov ecx, esi
call fcn.00473490
cmp dword [edi + 0x24], 0x20
jne 0x523e4e
mov edx, dword [0x6a7784]
push edx
mov eax, str.anim_head1
mov ecx, esi
call fcn.00473490
mov dword [edi + 0xc8], 0x1770
mov eax, dword [edi + 0x6c]
cmp eax, 0xfffffffe
je 0x523ebe
cmp eax, 0xfffffffd
je 0x523ebe
mov eax, dword [edi]
cmp dword [eax + 0x7f8], 0x17
jne 0x523ebe
fld dword [0x6793e0]
push ecx
fstp dword [esp]
call fcn.005af410
fadd qword [0x679290]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fstp dword [esp]
push ebx
push ebx
push str.anim_aquarium_swim
call fcn.00528b00
mov esi, 0xc8
lea eax, [esi + 1]
mov dword [edi + 0x64], 0xa
mov dword [edi + 0x28], 0x40
mov dword [edi + 0x68], esi
mov dword [edi + 0xc8], esi
call fcn.005af400
add eax, esi
mov dword [edi + 0x114], eax
mov eax, dword [edi]
cmp dword [eax + 0x768], ebx
je 0x523f5e
mov ecx, dword [eax + 0x7f8]
cmp ecx, 0x19
je 0x523eeb
cmp ecx, ebx
jne 0x523f5e
mov ecx, dword [eax + 0x82c]
cmp dword [ecx + 0x24], 0x19
jne 0x523f5e
mov eax, dword [edi + 0x6c]
cmp eax, 0xfffffffe
je 0x523ef8
cmp eax, 0xfffffffd
jne 0x523efe
cmp dword [ebp + 0x18], 0xfffffffe
jne 0x523f5e
mov eax, dword [edi + 0xc8]
fld dword [0x6793c0]
cdq
fstp dword [edi + 0x11c]
and edx, 3
add eax, edx
sar eax, 2
mov dword [edi + 0xc8], eax
mov eax, dword [edi + 0xd0]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [edi + 0xd0], eax
mov eax, dword [edi + 0xdc]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [edi + 0xdc], eax
mov eax, dword [edi + 0xe4]
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [edi + 0xe4], eax
mov esi, edi
call fcn.0052f050
cmp byte [edi + 0x50], bl
je 0x523fa3
mov edx, dword [edi]
mov ecx, dword [edi + 0x118]
cmp ecx, ebx
mov eax, dword [edx + 0x820]
mov edx, dword [eax + 8]
je 0x523fa3
movzx eax, cx
cmp eax, dword [edx + 8]
jae 0x523fa3
lea eax, [eax + eax*4]
shl eax, 5
add eax, dword [edx]
cmp dword [eax + 0x9c], ecx
jne 0x523fa3
push ebx
push str.anim_tongue
push eax
call fcn.00473a40
mov ecx, dword [edi + 0xc8]
fld dword [edi + 0x2c]
mov edx, dword [edi + 0xd0]
mov eax, dword [edi + 0xdc]
mov dword [edi + 0xcc], ecx
mov ecx, dword [edi + 0xe4]
mov dword [edi + 0xd4], edx
mov dword [edi + 0xe0], eax
mov dword [edi + 0xe8], ecx
mov byte [edi + 0xec], bl
call fcn.006397d0
fld dword [edi + 0x30]
mov dword [edi + 8], eax
call fcn.006397d0
mov edx, dword [edi + 0x1c]
imul edx, edx, 0x2710
add edx, dword [esp + 0x10]
mov dword [edi + 0xc], eax
add edx, dword [esp + 0x14]
cmp dword [edi + 0x64], 0xa
mov dword [edi + 0x20], edx
jne 0x524013
mov dword [edi + 0xcc], 0x12c
mov eax, dword [edi + 0x6c]
cmp eax, 0xfffffffe
je 0x52402e
cmp eax, 0xfffffffd
je 0x52402e
mov ecx, edi
call fcn.00530640
mov esi, edi
call fcn.00530770
mov eax, edi
call fcn.0052c310
jmp 0x796bc0