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], 0xbb8
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], 0x172
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], 0x3e8
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], 0x3e8
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], 0x2bc
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], 0x1f4
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], 0x546
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], 0x10e
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, 0xe
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], 0x1194
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
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14