Function at 0x421bc0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe10
mov eax, dword [0x4b1240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
push edi
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov esi, 0xf
cmp byte [0x4b5507], bl
je 0x421f8c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 5
jle 0x421cdb
mov eax, dword [0x4c51d0]
cmp byte [eax + 0xf4], bl
jne 0x421cdb
push 1
push 1
push 0x19
call fcn.00409510
fld1
mov ecx, dword [0x4c51d0]
fstp dword [esp + 8]
mov byte [ecx + 0xf4], 1
mov edx, dword [0x4a8544]
add esp, 8
push edx
push 1
mov dword [0x4b5730], ebx
call fcn.0040e780
call fcn.00463f1c
mov dword [ebp - 0xe10], eax
fild dword [ebp - 0xe10]
mov dword [0x4a8550], ebx
fnstcw word [ebp - 0xe0e]
movzx eax, word [ebp - 0xe0e]
fadd st(0), st(0)
or eax, 0xc00
mov dword [ebp - 0xe08], eax
fmul qword [0x497ab8]
fldcw word [ebp - 0xe08]
fistp qword [ebp - 0xe0c]
mov eax, dword [ebp - 0xe0c]
inc eax
push eax
fldcw word [ebp - 0xe0e]
mov dword [0x4a8554], eax
lea eax, [ebp - 0x604]
push str.g_numTryMultiple:__d_n
push eax
call fcn.00409550
add esp, 0x18
lea ecx, [ebp - 0x604]
push ecx
call edi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x421d3d
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x421f8c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5507], bl
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov byte [0x4b557e], bl
call fcn.00463f1c
fnstcw word [ebp - 0xe0e]
mov dword [ebp - 0xe08], eax
fild dword [ebp - 0xe08]
movzx eax, word [ebp - 0xe0e]
or eax, 0xc00
mov dword [ebp - 0xe08], eax
fmul qword [0x481600]
fmul qword [0x497ab8]
fldcw word [ebp - 0xe08]
fistp qword [ebp - 0xe0c]
cmp dword [ebp - 0xe0c], 0x32
fldcw word [ebp - 0xe0e]
jge 0x421de6
cmp byte [0x4b5512], bl
jne 0x421e24
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5512], 1
push str.red_dragon_run_up
jmp 0x421e07
cmp byte [0x4b5513], bl
jne 0x421e24
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5513], 1
push str.yellow_dragon_run_up
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x1b
call fcn.00409510
add esp, 0xc
cmp byte [0x4b553b], bl
je 0x421e5c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b553b], bl
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553a], bl
jne 0x421f6f
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b553a], 1
mov dword [0x4b5730], ebx
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov edx, dword [0x4b5730]
fld dword [edx*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
mov byte [ecx], bl
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push 0xc
push str.BgLastDragon
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
lea eax, [ebp - 0x804]
push str.predragon_eff_end_n
push eax
call fcn.00409550
add esp, 8
lea ecx, [ebp - 0x804]
push ecx
call edi
mov edi, dword [sym.imp.USER32.dll_KillTimer]
cmp byte [0x4b550f], bl
je 0x4224f7
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0xb8
jle 0x42203a
cmp byte [0x4b557d], bl
jne 0x42203a
mov byte [0x4b557d], 1
cmp byte [0x4b5511], bl
jne 0x42203a
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.dragon_fire
mov byte [0x4b5511], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x1a
call fcn.00409510
lea edx, [ebp - 0xa04]
push str.dragon_fire_start_n
push edx
call fcn.00409550
add esp, 0x14
lea eax, [ebp - 0xa04]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x42209c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x4224f7
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b550f], bl
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov ecx, dword [0x4a8550]
cmp ecx, dword [0x4a8554]
mov ecx, dword [0x4a8544]
mov byte [0x4b557d], bl
mov byte [0x4b557e], bl
jge 0x4222fa
cmp ecx, 0xa
jge 0x4222fa
call fcn.00463f1c
fnstcw word [ebp - 0xe0e]
mov dword [ebp - 0xe08], eax
fild dword [ebp - 0xe08]
movzx eax, word [ebp - 0xe0e]
or eax, 0xc00
mov dword [ebp - 0xe08], eax
fmul qword [0x481600]
fmul qword [0x497ab8]
fldcw word [ebp - 0xe08]
fistp qword [ebp - 0xe0c]
cmp dword [ebp - 0xe0c], 0x32
fldcw word [ebp - 0xe0e]
jge 0x42216c
cmp byte [0x4b5512], bl
jne 0x4221aa
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5512], 1
push str.red_dragon_run_up
jmp 0x42218d
cmp byte [0x4b5513], bl
jne 0x4221aa
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5513], 1
push str.yellow_dragon_run_up
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x1b
call fcn.00409510
add esp, 0xc
cmp byte [0x4b553b], bl
je 0x4221d8
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon2
mov byte [0x4b553b], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553a], bl
jne 0x4222cd
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon
mov byte [0x4b553a], 1
mov dword [0x4b5730], ebx
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov edx, dword [0x4b5730]
fld dword [edx*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401d70
mov eax, dword [0x4a8554]
mov ecx, dword [0x4a8550]
push eax
push ecx
lea edx, [ebp - 0x404]
push str.g_nTryMultiple:__d__d__n
push edx
call fcn.00409550
add esp, 0x10
lea eax, [ebp - 0x404]
push eax
jmp 0x4224d0
mov eax, dword [0x4a8570]
lea edx, [ecx + 1]
imul edx, eax
cmp dword [0x4b559c], edx
jl 0x42246f
cmp ecx, 0xa
jge 0x42246f
cmp byte [0x4b5510], bl
jne 0x42234b
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.yellow_dragon_attack
mov byte [0x4b5510], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b553a], bl
je 0x422379
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon
mov byte [0x4b553a], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553b], bl
jne 0x4224b5
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon2
mov byte [0x4b553b], 1
mov dword [0x4b5730], ebx
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon2
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon2
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401d70
jmp 0x4224b5
imul eax, ecx
mov ecx, dword [0x4b5978]
push 0x4a7
push ecx
mov byte [0x4b5573], bl
mov dword [0x4a8570], eax
mov dword [0x4b5730], ebx
call edi
mov edx, dword [0x4b5978]
push ebx
push 0x7d0
push 0x4a7
push edx
call dword [sym.imp.USER32.dll_SetTimer]
push ebx
push ebx
push 0x19
call fcn.00409510
add esp, 0xc
lea eax, [ebp - 0x404]
push str.g_nTryMultiple___g_numTryMultiple_n
push eax
call fcn.00409550
add esp, 8
lea ecx, [ebp - 0x404]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea edx, [ebp - 0x404]
push str.red_dragon_attack_end_n
push edx
call fcn.00409550
add esp, 8
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x4b5510], bl
je 0x422a5b
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0xb8
jle 0x42259f
cmp byte [0x4b557d], bl
jne 0x42259f
mov byte [0x4b557d], 1
cmp byte [0x4b5511], bl
jne 0x42259f
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.dragon_fire
mov byte [0x4b5511], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x1a
call fcn.00409510
lea ecx, [ebp - 0xc04]
push str.dragon_fire_start_n
push ecx
call fcn.00409550
add esp, 0x14
lea edx, [ebp - 0xc04]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x422601
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x422a5b
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5510], bl
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov eax, dword [0x4a8550]
mov ecx, dword [0x4a8544]
mov byte [0x4b557d], bl
mov byte [0x4b557e], bl
cmp eax, dword [0x4a8554]
jge 0x42285e
cmp ecx, 0xa
jge 0x42285e
call fcn.00463f1c
fnstcw word [ebp - 0xe0e]
mov dword [ebp - 0xe08], eax
fild dword [ebp - 0xe08]
movzx eax, word [ebp - 0xe0e]
or eax, 0xc00
mov dword [ebp - 0xe08], eax
fmul qword [0x481600]
fmul qword [0x497ab8]
fldcw word [ebp - 0xe08]
fistp qword [ebp - 0xe0c]
cmp dword [ebp - 0xe0c], 0x32
fldcw word [ebp - 0xe0e]
jge 0x4226d0
cmp byte [0x4b5512], bl
jne 0x42270e
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5512], 1
push str.red_dragon_run_up
jmp 0x4226f1
cmp byte [0x4b5513], bl
jne 0x42270e
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5513], 1
push str.yellow_dragon_run_up
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x1b
call fcn.00409510
add esp, 0xc
cmp byte [0x4b553b], bl
je 0x42273c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon2
mov byte [0x4b553b], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553a], bl
jne 0x422831
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon
mov byte [0x4b553a], 1
mov dword [0x4b5730], ebx
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov ecx, dword [0x4b5730]
fld dword [ecx*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401d70
mov edx, dword [0x4a8554]
mov eax, dword [0x4a8550]
push edx
push eax
lea ecx, [ebp - 0x204]
push str.g_nTryMultiple:__d__d__n
push ecx
call fcn.00409550
add esp, 0x10
lea edx, [ebp - 0x204]
push edx
jmp 0x422a34
mov eax, dword [0x4a8570]
lea edx, [ecx + 1]
imul edx, eax
cmp dword [0x4b559c], edx
jl 0x4229d3
cmp ecx, 0xa
jge 0x4229d3
cmp byte [0x4b550f], bl
jne 0x4228af
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.red_dragon_attack
mov byte [0x4b550f], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b553a], bl
je 0x4228dd
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon
mov byte [0x4b553a], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553b], bl
jne 0x422a19
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.BgLastDragon2
mov byte [0x4b553b], 1
mov dword [0x4b5730], ebx
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon2
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push str.BgLastDragon2
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401d70
jmp 0x422a19
imul eax, ecx
mov ecx, dword [0x4b5978]
push 0x4a7
push ecx
mov byte [0x4b5573], bl
mov dword [0x4b5730], ebx
mov dword [0x4a8570], eax
call edi
mov edx, dword [0x4b5978]
push ebx
push 0x7d0
push 0x4a7
push edx
call dword [sym.imp.USER32.dll_SetTimer]
push ebx
push ebx
push 0x19
call fcn.00409510
add esp, 0xc
lea eax, [ebp - 0x204]
push str.g_nTryMultiple___g_numTryMultiple_n
push eax
call fcn.00409550
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea edx, [ebp - 0x204]
push str.yellow_dragon_attack_end_n
push edx
call fcn.00409550
add esp, 8
lea eax, [ebp - 0x204]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x4b5512], bl
je 0x422c7f
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_run_up
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x422ac9
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_run_up
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x422c7f
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5512], bl
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_run_up
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b550f], bl
jne 0x422b34
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b550f], 1
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.red_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b553a], bl
je 0x422b6c
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b553a], bl
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553b], bl
jne 0x422c7f
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b553b], 1
mov dword [0x4b5730], ebx
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov ecx, dword [0x4b5730]
fld dword [ecx*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
mov byte [ecx], bl
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push 0xd
push str.BgLastDragon2
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
cmp byte [0x4b5513], bl
je 0x422ea3
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_run_up
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x422ced
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_run_up
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x422ea3
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5513], bl
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_run_up
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b5510], bl
jne 0x422d58
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5510], 1
push 0x14
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.yellow_dragon_attack
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b553a], bl
je 0x422d90
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b553a], bl
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b553b], bl
jne 0x422ea3
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b553b], 1
mov dword [0x4b5730], ebx
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov eax, dword [0x4b5730]
fld dword [eax*4 + 0x4a8730]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [eax*4 + 0x4a8730]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgLastDragon2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401e50
mov edx, dword [0x4b5730]
fld dword [edx*4 + 0x4a8730]
sub esp, 0x24
fsub qword [0x481fe8]
mov ecx, esp
fld qword [0x498bf0]
fmul st(1)
fld qword [0x481fe0]
fmul st(1), st(0)
fxch st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
fstp dword [esp + 0x20]
fild dword [0x4a7054]
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
mov byte [ecx], bl
fmul st(1)
fsub qword [0x498be8]
fxch st(2)
fmul qword [0x498be0]
fmulp st(1)
fsubp st(1)
fstp dword [ebp - 0xe08]
fld dword [ebp - 0xe08]
mov dword [ebp - 0xe08], esp
fstp dword [esp + 0x1c]
push 0xd
push str.BgLastDragon2
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
cmp byte [0x4b5511], bl
je 0x42307f
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.dragon_fire
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, esi
jle 0x422fca
cmp byte [0x4b557e], bl
jne 0x422fca
mov eax, dword [0x4b5978]
push 0x493
push eax
call edi
mov ecx, dword [0x4b5978]
push ebx
push 0x1e
push 0x493
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [0x4a8550]
cmp edx, dword [0x4a8554]
jl 0x422fc3
call fcn.00463f1c
fnstcw word [ebp - 0xe0e]
mov dword [ebp - 0xe08], eax
fild dword [ebp - 0xe08]
movzx eax, word [ebp - 0xe0e]
or eax, 0xc00
mov dword [ebp - 0xe08], eax
fadd st(0), st(0)
fmul qword [0x497ab8]
fldcw word [ebp - 0xe08]
fistp qword [ebp - 0xe0c]
mov eax, dword [ebp - 0xe0c]
inc eax
mov dword [0x4b5590], eax
add eax, dword [0x4a8544]
fldcw word [ebp - 0xe0e]
imul eax, dword [0x4a8570]
cmp dword [0x4b559c], eax
jl 0x422fc3
cmp byte [0x4b5514], bl
jne 0x422fc3
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push str.Dragon_boom
mov byte [0x4b5514], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x13
call fcn.00409510
add esp, 0xc
mov byte [0x4b557e], 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.dragon_fire
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x423028
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.dragon_fire
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x42307f
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0xe08], esp
mov byte [0x4b5511], bl
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.dragon_fire
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
lea edx, [ebp - 0xe04]
push str.dragon_fire_end_n
push edx
mov byte [0x4b5514], bl
call fcn.00409550
add esp, 8
lea eax, [ebp - 0xe04]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00463931
mov esp, ebp
pop ebp
ret