Function at 0x464820
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, eax
mov ecx, dword [edi + 0x24]
cmp ecx, 0x11
jne 0x464854
mov eax, dword [edi + 0x3c]
cmp eax, 5
je 0x464d9f
cmp eax, 6
je 0x464d9f
cmp eax, 7
je 0x464d9f
cmp byte [edi + 0x142], 0
jne 0x464d9f
cmp dword [edi + 0x134], 2
je 0x464d9f
cmp byte [edi + 0x141], 0
jne 0x464d9f
mov eax, dword [edi + 0x90]
test eax, eax
je 0x464d9f
add eax, 0xffffffff
cmp ecx, 0xa
mov dword [edi + 0x90], eax
jne 0x4648c0
cmp eax, 0xf
jne 0x4648c0
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0xc]
imul eax, eax, 0x2710
mov edx, dword [edi + 8]
push 2
add eax, 0x4af38
push eax
add ecx, 0x1f
push ecx
add edx, 0x55
push edx
call fcn.0045eea0
mov eax, dword [edi + 0x24]
cmp eax, 0x2a
jne 0x464a2f
mov eax, dword [edi + 0x90]
cmp eax, 0x88
je 0x4648e8
cmp eax, 0x6c
je 0x4648e8
cmp eax, 0x50
je 0x4648e8
cmp eax, 0x34
jne 0x46490c
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0xc]
imul eax, eax, 0x2710
mov edx, dword [edi + 8]
push 0x3c
add eax, 0x4af38
push eax
add ecx, 0x28
push ecx
add edx, 0x28
push edx
call fcn.0045eea0
mov eax, dword [edi + 0x90]
cmp eax, 0x7e
je 0x464926
cmp eax, 0x62
je 0x464926
cmp eax, 0x46
je 0x464926
cmp eax, 0x2a
jne 0x464934
mov eax, dword [edi + 0x1c]
push 0
push eax
push 0
push edi
call fcn.00466e00
cmp dword [edi + 0x90], 0
jne 0x464d9f
mov esi, dword [edi]
mov ecx, dword [edi + 0x94]
mov eax, esi
call fcn.00453cb0
mov ecx, dword [edi + 0x98]
mov ebx, eax
mov eax, esi
call fcn.00453cb0
mov esi, eax
mov eax, dword [edi + 0x24]
cmp eax, 0x12
jne 0x464c3b
mov ecx, dword [edi + 0x9c]
mov eax, dword [edi]
call fcn.00453cb0
mov ecx, dword [edi + 0xa0]
mov dword [esp + 0xc], eax
mov eax, dword [edi]
call fcn.00453cb0
mov edx, dword [esp + 0xc]
cmp dword [edx + 0x5c], 0
mov dword [esp + 0x14], eax
jle 0x464d95
cmp dword [esi + 0x10], 3
jne 0x4649ca
push 0x14
push esi
call fcn.00473310
push str.anim_head_idle1
mov ecx, esi
mov dword [esi + 0x10], 0
call fcn.00473280
fld dword [ebx + 8]
fstp dword [esi + 8]
fld dword [ebx + 4]
fstp dword [esi + 4]
mov eax, dword [esp + 0xc]
push 0x14
push eax
call fcn.00473310
mov esi, dword [esp + 0xc]
xor edi, edi
push str.anim_head_idle2
mov ecx, esi
mov dword [esi + 0x10], edi
call fcn.00473280
fld dword [ebx + 8]
fstp dword [esi + 8]
fld dword [ebx + 4]
fstp dword [esi + 4]
mov esi, dword [esp + 0x14]
cmp dword [esi + 0x10], 3
jne 0x464d9f
push 0x14
push esi
call fcn.00473310
mov dword [esi + 0x10], edi
push str.anim_head_idle3
mov ecx, esi
call fcn.00473280
fld dword [ebx + 8]
fstp dword [esi + 8]
fld dword [ebx + 4]
fstp dword [esi + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x28
jne 0x464a5d
mov eax, dword [edi + 0x90]
cmp eax, 0x12
je 0x464a52
cmp eax, 0x23
je 0x464a52
cmp eax, 0x33
je 0x464a52
cmp eax, 0x44
jne 0x464934
mov ecx, dword [edi + 0x1c]
push 0
push ecx
jmp 0x46492c
cmp eax, 0x2b
jne 0x464a8f
cmp dword [edi + 0x90], 0x13
jne 0x464934
mov edx, dword [edi + 0x1c]
push edx
push edi
xor ecx, ecx
call fcn.004675c0
test eax, eax
je 0x464934
mov ecx, dword [edi + 0x1c]
push 0
push ecx
push eax
jmp 0x46492e
cmp dword [edi + 0x90], 1
jne 0x464934
cmp eax, 0x12
jne 0x464b32
jmp 0x797ba5
cmp eax, 0x1c
jne 0x464b8b
mov esi, dword [edi]
mov ecx, dword [edi + 0x9c]
mov eax, esi
call fcn.00453cb0
mov ecx, dword [edi + 0x98]
mov ebx, eax
mov eax, esi
call fcn.00453cb0
mov esi, 3
cmp dword [eax + 0x10], esi
jne 0x464b6d
mov ecx, dword [edi + 0x1c]
push 0
push ecx
push 0
push edi
call fcn.00466e00
cmp dword [ebx + 0x10], esi
jne 0x464d9f
mov edx, dword [edi + 0x1c]
push 1
push edx
push 0
push edi
call fcn.00466e00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x3c]
cmp ecx, 0x1e
jne 0x464ba8
mov eax, dword [edi + 0x1c]
push 1
push eax
push 0
push edi
call fcn.00466e00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x20
je 0x464bd1
cmp eax, 0x22
je 0x464bd1
cmp eax, 0x27
je 0x464bd1
cmp eax, 0x2c
je 0x464bd1
mov ecx, dword [edi + 0x1c]
push 0
push ecx
push 0
push edi
call fcn.00466e00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor esi, esi
cmp ecx, 0x27
jne 0x464c1c
mov edx, dword [edi]
mov eax, dword [edx + 0x820]
mov ecx, dword [eax + 8]
mov eax, dword [edi + 0x94]
and eax, 0xffff
lea esi, [eax + eax*4]
push 0xffffffffffffffff
shl esi, 5
add esi, dword [ecx]
push str.Cornpult_butter
push esi
call fcn.00473a40
push 0
push str.Cornpult_kernal
push esi
call fcn.00473a40
mov dword [edi + 0x3c], 0
mov esi, 1
mov edx, dword [edi + 0x1c]
push edx
push edi
mov ecx, esi
call fcn.004675c0
mov ecx, dword [edi + 0x1c]
push esi
push ecx
push eax
push edi
call fcn.00466e00
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x1c
jne 0x464cc8
mov eax, dword [edi]
mov edi, dword [edi + 0x9c]
mov ecx, dword [eax + 0x820]
mov edx, dword [ecx + 8]
and edi, 0xffff
lea edi, [edi + edi*4]
shl edi, 5
add edi, dword [edx]
cmp dword [esi + 0x5c], 0
jle 0x464c90
push 0x14
push esi
call fcn.00473310
push str.anim_head_idle
mov ecx, esi
mov dword [esi + 0x10], 0
call fcn.00473280
fld dword [ebx + 8]
fstp dword [esi + 8]
fld dword [ebx + 4]
fstp dword [esi + 4]
cmp dword [edi + 0x5c], 0
jle 0x464d9f
push 0x14
push edi
call fcn.00473310
push str.anim_splitpea_idle
mov ecx, edi
mov dword [edi + 0x10], 0
call fcn.00473280
fld dword [ebx + 8]
fstp dword [edi + 8]
fld dword [ebx + 4]
fstp dword [edi + 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x3c], 0x20
jne 0x464d15
cmp dword [ebx + 0x5c], 0
jle 0x464d95
fldz
push ecx
fstp dword [esp]
mov ecx, 0x14
push 0
push str.anim_idlehigh
mov eax, edi
call fcn.0045fd90
mov eax, dword [ebx + 0xc]
fld dword [eax + 8]
fstp dword [ebx + 8]
mov eax, dword [edi]
call fcn.004537d0
test al, al
je 0x464d9f
fldz
fstp dword [ebx + 8]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x464d38
cmp dword [esi + 0x5c], 0
jle 0x464d95
push 0x14
push esi
call fcn.00473310
mov dword [esi + 0x10], 0
push str.anim_head_idle
jmp 0x464a15
cmp eax, 0x2f
jne 0x464d75
cmp dword [ebx + 0x5c], 0
jle 0x464d95
jmp 0x7976ad
test ebx, ebx
je 0x464d95
cmp dword [ebx + 0x5c], 0
jle 0x464d95
mov edx, dword [ebx + 0xc]
fld dword [edx + 8]
push ecx
fstp dword [esp]
call fcn.00468280
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [edi + 0x90], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret