Function at 0x4215e0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
mov eax, dword [0x4a4cf0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
push edi
mov edi, 0xf
cmp byte [0x4a919c], bl
je 0x4218fa
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401b90
cmp eax, 0xb
jle 0x421845
mov eax, dword [0x4b80f8]
cmp byte [eax + 0xf4], bl
jne 0x421845
mov esi, 1
push esi
push esi
push edi
call fcn.004095f0
fld1
mov ecx, dword [0x4b80f8]
fstp dword [esp + 8]
mov byte [ecx + 0xf4], 1
mov edx, dword [0x4a3ae8]
add esp, 8
push edx
push esi
mov dword [0x4a9380], ebx
call fcn.0040e6b0
add esp, 0xc
mov dword [0x4a3afc], esi
mov dword [0x4a3af8], esi
cmp byte [0x4a919f], bl
jne 0x42171f
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.Buddha_bg
mov byte [0x4a919f], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fmul qword [0x48c950]
mov dword [ebp - 0x408], esp
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x20]
fild dword [0x49b054]
fmul qword [0x48c938]
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x1c]
push str.Buddha_bg
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401e50
cmp byte [0x4a91a3], bl
jne 0x421792
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.Buddha_lower
mov byte [0x4a91a3], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fsub qword [0x48cb88]
mov dword [ebp - 0x408], esp
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x20]
fldz
fstp dword [esp + 0x1c]
push str.Buddha_lower
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401d70
cmp byte [0x4a91a1], bl
jne 0x42181e
push esi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.Buddha_in
mov byte [0x4a91a1], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fmul qword [0x48c950]
mov dword [ebp - 0x408], esp
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x20]
fild dword [0x49b054]
fmul qword [0x48c938]
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x1c]
push str.Buddha_in
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401e50
mov eax, dword [0x4a3afc]
push eax
lea ecx, [ebp - 0x404]
push str.g_numTryMultiple:__d_n
push ecx
call fcn.00409630
add esp, 0xc
lea edx, [ebp - 0x404]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401c80
cmp eax, 1
je 0x4218a3
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401a90
cmp eax, 1
jne 0x4218fa
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4a919c], bl
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.004019c0
lea eax, [ebp - 0x404]
push str.predragon_eff_end_n
push eax
mov byte [0x4a91f1], bl
call fcn.00409630
add esp, 8
lea ecx, [ebp - 0x404]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x4a91a1], bl
je 0x421ab8
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 9
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_in
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401c80
cmp eax, 1
je 0x421968
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 9
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_in
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401a90
cmp eax, 1
jne 0x421ab8
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4a91a1], bl
push 9
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_in
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.004019c0
cmp byte [0x4a91a0], bl
jne 0x421ab8
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4a91a0], 1
push 0xb
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_idle
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fmul qword [0x48c950]
mov dword [ebp - 0x408], esp
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x20]
fild dword [0x49b054]
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
mov byte [ecx], bl
fmul qword [0x48c938]
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x1c]
push 0xb
push str.Buddha_idle
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401e50
call fcn.0045c5cc
mov edx, dword [0x4a6948]
mov dword [ebp - 0x410], eax
fild dword [ebp - 0x410]
push 0x46f
fnstcw word [ebp - 0x40e]
push edx
movzx eax, word [ebp - 0x40e]
fmul qword [0x48ca88]
or eax, 0xc00
mov dword [ebp - 0x408], eax
fmul qword [0x48bd20]
fldcw word [ebp - 0x408]
fistp qword [ebp - 0x40c]
mov esi, dword [ebp - 0x40c]
add esi, 2
fldcw word [ebp - 0x40e]
imul esi, esi, 0x3e8
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [0x4a6948]
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push 0x46f
push eax
call esi
jmp 0x421abe
mov esi, dword [sym.imp.USER32.dll_SetTimer]
cmp byte [0x4a919e], bl
je 0x421fe2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_attack
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401b90
cmp eax, 0x37
jle 0x421b54
cmp byte [0x4a942e], bl
jne 0x421b54
mov byte [0x4a942e], 1
cmp byte [0x4a91f1], bl
jne 0x421b54
push ebx
push 1
push 0xe
call fcn.004095f0
mov ecx, dword [0x4a6948]
add esp, 0xc
push 0x493
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4a6948]
push ebx
push 0x1e
push 0x493
push edx
call esi
push ebx
push 1
push 0x10
call fcn.004095f0
add esp, 0xc
mov byte [0x4a91f1], 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_attack
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401b90
cmp eax, 0xc1
jle 0x421c92
cmp byte [0x4a942f], bl
jne 0x421c92
mov byte [0x4a942f], 1
cmp byte [0x4a91f1], bl
jne 0x421c92
push ebx
push 1
push 0xe
call fcn.004095f0
mov eax, dword [0x4a6948]
add esp, 0xc
push 0x493
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4a6948]
push ebx
push 0x1e
push 0x493
push ecx
call esi
mov edx, dword [0x4a3af8]
cmp edx, dword [0x4a3afc]
jl 0x421c8b
call fcn.0045c5cc
fnstcw word [ebp - 0x40e]
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
movzx eax, word [ebp - 0x40e]
or eax, 0xc00
mov dword [ebp - 0x408], eax
fadd st(0), st(0)
fmul qword [0x48bd20]
fldcw word [ebp - 0x408]
fistp qword [ebp - 0x40c]
mov eax, dword [ebp - 0x40c]
inc eax
mov dword [0x4a91ec], eax
add eax, dword [0x4a3ae8]
fldcw word [ebp - 0x40e]
imul eax, dword [0x4a3b18]
cmp dword [0x4a9200], eax
jl 0x421c8b
cmp byte [0x4a919d], bl
jne 0x421c8b
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.Dragon_boom
mov byte [0x4a919d], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
push ebx
push 1
push 0x10
call fcn.004095f0
add esp, 0xc
mov byte [0x4a91f1], 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_attack
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401c80
cmp eax, 1
je 0x421cf4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_attack
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401a90
cmp eax, 1
jne 0x421fe2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4a919e], bl
push 0xd
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_attack
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.004019c0
push ebx
push ebx
push 0xe
call fcn.004095f0
push ebx
push ebx
push 0x10
call fcn.004095f0
mov edx, dword [0x4a3af8]
mov ecx, dword [0x4a3ae8]
add esp, 0x18
mov byte [0x4a91f1], bl
mov byte [0x4a942e], bl
mov byte [0x4a942f], bl
cmp edx, dword [0x4a3afc]
jge 0x421e26
cmp ecx, 0xa
jge 0x421e26
cmp byte [0x4a91a2], bl
jne 0x421df9
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.Buddha_out
mov byte [0x4a91a2], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fmul qword [0x48c950]
fstp dword [ebp - 0x408]
fld dword [ebp - 0x408]
fstp dword [esp + 0x20]
fild dword [0x49b054]
fmul qword [0x48c938]
fstp dword [ebp - 0x408]
fld dword [ebp - 0x408]
mov dword [ebp - 0x408], esp
fstp dword [esp + 0x1c]
push str.Buddha_out
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401e50
mov eax, dword [0x4a3afc]
mov ecx, dword [0x4a3af8]
push eax
push ecx
lea edx, [ebp - 0x204]
push str.g_nTryMultiple:__d__d__n
push edx
call fcn.00409630
add esp, 0x10
lea eax, [ebp - 0x204]
push eax
jmp 0x421fbb
mov eax, dword [0x4a3b18]
lea edx, [ecx + 1]
imul edx, eax
cmp dword [0x4a9200], edx
jl 0x421f56
cmp ecx, 0xa
jge 0x421f56
cmp byte [0x4a91a0], bl
jne 0x421fa0
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.Buddha_idle
mov byte [0x4a91a0], 1
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.004018e0
fild dword [0x49b058]
sub esp, 0x24
mov ecx, esp
fmul qword [0x48c950]
fstp dword [ebp - 0x408]
fld dword [ebp - 0x408]
fstp dword [esp + 0x20]
fild dword [0x49b054]
fmul qword [0x48c938]
fstp dword [ebp - 0x408]
fld dword [ebp - 0x408]
mov dword [ebp - 0x408], esp
fstp dword [esp + 0x1c]
push str.Buddha_idle
call fcn.00414af0
mov ecx, dword [0x4a63f8]
call fcn.00401e50
call fcn.0045c5cc
fnstcw word [ebp - 0x40e]
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
movzx eax, word [ebp - 0x40e]
or eax, 0xc00
mov dword [ebp - 0x408], eax
fmul qword [0x48ca88]
mov eax, dword [0x4a6948]
push 0x46f
push eax
fmul qword [0x48bd20]
fldcw word [ebp - 0x408]
fistp qword [ebp - 0x40c]
mov esi, dword [ebp - 0x40c]
add esi, 2
fldcw word [ebp - 0x40e]
imul esi, esi, 0x3e8
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4a6948]
push ebx
push esi
push 0x46f
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov esi, dword [sym.imp.USER32.dll_SetTimer]
jmp 0x421fa0
mov edx, dword [0x4a6948]
imul eax, ecx
push 0x4a7
push edx
mov byte [0x4a91db], bl
mov dword [0x4a3b18], eax
mov dword [0x4a9380], ebx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [0x4a6948]
push ebx
push 0x7d0
push 0x4a7
push eax
call esi
push ebx
push ebx
push edi
call fcn.004095f0
add esp, 0xc
mov byte [0x4a91a4], bl
lea ecx, [ebp - 0x204]
push str.g_nTryMultiple___g_numTryMultiple_n
push ecx
call fcn.00409630
add esp, 8
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [ebp - 0x204]
push str.Buddha_attack_end_n
push eax
call fcn.00409630
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x4a91a2], bl
je 0x42216c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xa
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_out
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401c80
cmp eax, 1
je 0x422050
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xa
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_out
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.00401a90
cmp eax, 1
jne 0x42216c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4a91a2], bl
push 0xa
mov dword [ecx + 0x14], edi
mov dword [ecx + 0x10], ebx
push str.Buddha_out
mov byte [ecx], bl
call fcn.004141d0
mov ecx, dword [0x4a63f8]
call fcn.004019c0
mov eax, dword [0x4a3b18]
mov ecx, dword [0x4a3ae8]
imul eax, ecx
mov byte [0x4a91a4], bl
cmp dword [0x4a9200], eax
jle 0x422135
cmp ecx, 0xa
jge 0x422135
call fcn.0045c5cc
fnstcw word [ebp - 0x40e]
mov edx, dword [0x4a6948]
mov dword [ebp - 0x408], eax
fild dword [ebp - 0x408]
movzx eax, word [ebp - 0x40e]
or eax, 0xc00
mov dword [ebp - 0x408], eax
fmul qword [0x48ca88]
push 0x478
push edx
fmul qword [0x48bd20]
fldcw word [ebp - 0x408]
fistp qword [ebp - 0x40c]
mov esi, dword [ebp - 0x40c]
add esi, 2
fldcw word [ebp - 0x40e]
imul esi, esi, 0x3e8
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [0x4a6948]
push ebx
push esi
push 0x478
push eax
call dword [sym.imp.USER32.dll_SetTimer]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x4a6948]
push 0x4a7
push ecx
mov byte [0x4a91db], bl
mov dword [0x4a3b18], eax
mov dword [0x4a9380], ebx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4a6948]
push ebx
push 0x7d0
push 0x4a7
push edx
call esi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0045bfe1
mov esp, ebp
pop ebp
ret