Function at 0x423653
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x214
mov eax, dword [0x4b1240]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [0x4c5670]
inc dword [eax + 0xa4]
mov eax, dword [0x4c5670]
mov ecx, dword [eax + 0xa8]
push ebx
dec ecx
push esi
push edi
cmp ecx, dword [eax + 0xa4]
jge 0x423a20
mov dword [eax + 0xa4], ecx
mov eax, dword [0x4c5670]
xor ebx, ebx
mov byte [eax + 0xf4], bl
cmp dword [0x4a84e4], ebx
jg 0x423997
mov eax, dword [0x4b5560]
mov ecx, eax
imul ecx, ecx, 0xb
add ecx, dword [eax*4 + 0x4b55f8]
lea edi, [ebx + 4]
mov eax, dword [ecx*4 + 0x4c5370]
mov byte [eax + 0xf4], bl
mov edx, dword [0x4b61cc]
mov esi, dword [0x4b61d0]
mov eax, dword [0x4b5560]
cmp edx, esi
je 0x4233f9
mov ecx, dword [eax*4 + 0x4b5608]
cmp dword [edx], ecx
je 0x4233f1
add edx, edi
cmp edx, esi
jne 0x4233e5
jmp 0x4233f9
cmp esi, edx
jne 0x4234eb
mov ecx, dword [eax*4 + 0x4b5608]
cmp ecx, 0xa
je 0x4234eb
imul eax, eax, 0xb
fld1
add eax, ecx
mov eax, dword [eax*4 + 0x4c5370]
mov byte [eax + 0xf4], 1
mov eax, dword [0x4b5560]
mov edx, eax
imul edx, edx, 0xb
add edx, dword [eax*4 + 0x4b5608]
mov eax, dword [edx*4 + 0x4c5370]
fstp dword [eax + 0x88]
mov eax, dword [0x4b5560]
mov ecx, eax
imul ecx, ecx, 0xb
add ecx, dword [eax*4 + 0x4b5608]
mov eax, dword [ecx*4 + 0x4c5370]
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4b5560]
mov edx, eax
imul edx, edx, 0xb
add edx, dword [eax*4 + 0x4b5608]
mov eax, dword [edx*4 + 0x4c5370]
mov dword [eax + 0xa0], edi
mov eax, dword [0x4b5560]
fld dword [eax*8 + 0x4b0e6c]
mov ecx, eax
fadd qword [0x481fd8]
imul ecx, ecx, 0xb
fstp dword [ebp - 0x210]
fld dword [eax*8 + 0x4b0e70]
fadd dword [0x4a8308]
add ecx, dword [eax*4 + 0x4b5608]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x210]
fstp dword [ebp - 0x214]
mov edx, dword [ebp - 0x214]
fld dword [ebp - 0x208]
mov eax, dword [ecx*4 + 0x4c5370]
fstp dword [ebp - 0x210]
mov ecx, dword [ebp - 0x210]
mov dword [eax + 0xc0], edx
mov dword [eax + 0xc4], ecx
jmp 0x4235ef
imul eax, eax, 0xb
fld1
add eax, ecx
mov eax, dword [eax*4 + 0x4c58e0]
mov byte [eax + 0xf4], 1
mov eax, dword [0x4b5560]
mov edx, eax
imul edx, edx, 0xb
add edx, dword [eax*4 + 0x4b5608]
push 0x4b5560
mov eax, dword [edx*4 + 0x4c58e0]
fstp dword [eax + 0x88]
mov eax, dword [0x4b5560]
mov ecx, eax
imul ecx, ecx, 0xb
add ecx, dword [eax*4 + 0x4b5608]
mov eax, dword [ecx*4 + 0x4c58e0]
mov dword [eax + 0xa4], ebx
mov eax, dword [0x4b5560]
mov edx, eax
imul edx, edx, 0xb
add edx, dword [eax*4 + 0x4b5608]
mov eax, dword [edx*4 + 0x4c58e0]
mov dword [eax + 0xa0], edi
mov eax, dword [0x4b5560]
fld dword [eax*8 + 0x4b0e6c]
mov ecx, eax
fadd qword [0x481fd8]
imul ecx, ecx, 0xb
fstp dword [ebp - 0x208]
fld dword [eax*8 + 0x4b0e70]
fadd dword [0x4a8308]
add ecx, dword [eax*4 + 0x4b5608]
fstp dword [ebp - 0x210]
fld dword [ebp - 0x208]
fstp dword [ebp - 0x20c]
mov edx, dword [ebp - 0x20c]
mov eax, dword [ecx*4 + 0x4c58e0]
fld dword [ebp - 0x210]
fstp dword [ebp - 0x208]
mov ecx, dword [ebp - 0x208]
mov dword [eax + 0xc4], ecx
mov ecx, 0x4c578c
mov dword [eax + 0xc0], edx
call fcn.00415370
mov edx, dword [0x4b5560]
lea eax, [edx*4 + 0x4b5608]
push eax
mov ecx, 0x4b61cc
call fcn.00415370
mov ecx, dword [0x4b58f0]
mov eax, dword [ecx*4 + str.____.]
mov edi, dword [sym.imp.USER32.dll_KillTimer]
lea edx, [eax - 0x1d]
mov dword [0x4b5638], eax
cmp edx, 0x11
ja 0x423639
mov eax, dword [0x4b5978]
push 0x471
push eax
call edi
mov ecx, dword [0x4b5978]
push ebx
push 0x1b58
push 0x471
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov eax, dword [0x4b5638]
lea ecx, [eax - 1]
cmp ecx, 0x2d
ja case.default.0x42364c
movzx edx, byte [ecx + 0x423a84]
jmp dword [edx*4 + 0x423a34]
push 0x64
push 1
mov dword [0x4b2c68], 0x64
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0xc8
push 1
mov dword [0x4b2c68], 0xc8
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x12c
push 1
mov dword [0x4b2c68], 0x12c
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x190
push 1
mov dword [0x4b2c68], 0x190
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x1f4
push 1
mov dword [0x4b2c68], 0x1f4
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x258
push 1
mov dword [0x4b2c68], 0x258
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x2bc
push 1
mov dword [0x4b2c68], 0x2bc
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x320
push 1
mov dword [0x4b2c68], 0x320
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x3e8
push 1
mov dword [0x4b2c68], 0x3e8
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x4b0
push 1
mov dword [0x4b2c68], 0x4b0
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x578
push 1
mov dword [0x4b2c68], 0x578
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x5dc
push 1
mov dword [0x4b2c68], 0x5dc
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x640
push 1
mov dword [0x4b2c68], 0x640
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x7d0
push 1
mov dword [0x4b2c68], 0x7d0
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x9c4
push 1
mov dword [0x4b2c68], 0x9c4
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0xbb8
push 1
mov dword [0x4b2c68], 0xbb8
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0xc80
push 1
mov dword [0x4b2c68], 0xc80
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x1388
push 1
mov dword [0x4b2c68], 0x1388
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x2710
push 1
mov dword [0x4b2c68], 0x2710
call fcn.00411800
add esp, 8
jmp 0x4238ad
push 0x4e20
push 1
mov dword [0x4b2c68], 0x4e20
call fcn.00411800
add esp, 8
jmp 0x4238ad
mov dword [0x4b2cc0], eax
mov byte [0x4b55c5], bl
mov byte [0x4b55c6], bl
mov eax, dword [0x4b2c68]
mov dword [0x4a856c], eax
mov esi, 0xf
cmp byte [0x4b553e], bl
je 0x4238f4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x208], esp
mov byte [0x4b553e], bl
push 9
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.bird_idle
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553c], bl
je 0x42392c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x208], esp
mov byte [0x4b553c], bl
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.bird_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b5540], bl
jne 0x423988
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x208], esp
mov byte [0x4b5540], 1
push 8
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.bird_out
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
lea ecx, [ebp - 0x204]
push str.bird_out__n
push ecx
call fcn.00409550
add esp, 8
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov byte [0x4b5567], bl
mov byte [0x4a8375], 1
jmp 0x423a12
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov edi, dword [sym.imp.USER32.dll_KillTimer]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
fmul qword [0x497a98]
mov dword [ebp - 0x208], eax
mov eax, dword [0x4b5978]
push 0x498
fmul qword [0x497ab8]
push eax
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov esi, dword [ebp - 0x20c]
inc esi
fldcw word [ebp - 0x20e]
imul esi, esi, 0x3e8
call edi
mov ecx, dword [0x4b5978]
push ebx
push esi
push 0x498
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [0x4b5978]
push 0x483
push edx
call edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00463931
mov esp, ebp
pop ebp
ret