Function at 0x4222b0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x408
mov eax, dword [0x4ab000]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
push edi
mov esi, 0xf
cmp byte [0x4af483], bl
je 0x422549
cmp byte [0x4af4a0], bl
jne 0x4222f1
cmp byte [0x4af4a1], bl
jne 0x4222f1
cmp byte [0x4af4a2], bl
je 0x4222f6
call fcn.0040aba0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00402090
cmp eax, 0xb
jle 0x422494
mov eax, dword [0x4be440]
cmp byte [eax + 0xf4], bl
jne 0x422494
mov edi, 1
push edi
push edi
push 0x25
call fcn.00409d80
fld1
mov ecx, dword [0x4be440]
fstp dword [esp + 8]
mov byte [ecx + 0xf4], 1
mov edx, dword [0x4a9f00]
add esp, 8
push edx
push edi
mov dword [0x4af668], ebx
call fcn.004104d0
add esp, 0xc
mov dword [0x4a9f10], edi
mov dword [0x4a9f0c], edi
cmp byte [0x4af485], bl
jne 0x42240c
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.LastMultipleDragon
mov byte [0x4af485], 1
call fcn.00417780
mov ecx, dword [0x4ac6d8]
call fcn.00401dc0
fild dword [0x4a1058]
sub esp, 0x24
mov ecx, esp
fdiv qword [0x493290]
fstp dword [ebp - 0x408]
fld dword [ebp - 0x408]
fstp dword [esp + 0x20]
fild dword [0x4a1054]
fdiv qword [0x493288]
fstp dword [ebp - 0x408]
fld dword [ebp - 0x408]
fstp dword [esp + 0x1c]
mov dword [ebp - 0x408], esp
push str.LastMultipleDragon
call fcn.00417780
mov ecx, dword [0x4ac6d8]
call fcn.00402380
cmp byte [0x4af46c], bl
jne 0x42246d
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.BgSky
mov byte [0x4af46c], 1
call fcn.00417780
mov ecx, dword [0x4ac6d8]
call fcn.00401dc0
fld dword [0x4930b0]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld1
mov dword [ebp - 0x408], esp
fstp dword [esp + 0x1c]
push str.BgSky
call fcn.00417780
mov ecx, dword [0x4ac6d8]
call fcn.00402380
mov eax, dword [0x4a9f10]
push eax
lea ecx, [ebp - 0x204]
push str.g_numTryMultiple:__d_n
push ecx
call fcn.00409dc0
add esp, 0xc
lea edx, [ebp - 0x204]
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], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00402190
cmp eax, 1
je 0x4224f2
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00401f90
cmp eax, 1
jne 0x422549
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4af483], bl
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.predragon_eff
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00401eb0
lea eax, [ebp - 0x204]
push str.predragon_eff_end_n
push eax
mov byte [0x4af4cf], bl
call fcn.00409dc0
add esp, 8
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x4af485], bl
je 0x422753
cmp byte [0x4af4a0], bl
jne 0x42256d
cmp byte [0x4af4a1], bl
jne 0x42256d
cmp byte [0x4af4a2], bl
je 0x422572
call fcn.0040aba0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x12
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.LastMultipleDragon
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00402090
mov edi, dword [sym.imp.USER32.dll_KillTimer]
cmp eax, 0x467
jle 0x42260b
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x12
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.LastMultipleDragon
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00402090
cmp eax, 0x46a
jge 0x42260b
cmp byte [0x4af4cf], bl
jne 0x42260b
mov edx, dword [0x4acc30]
push 0x493
push edx
call edi
mov eax, dword [0x4acc30]
push ebx
push 0x1e
push 0x493
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov byte [0x4af4cf], 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x12
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.LastMultipleDragon
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00402090
cmp eax, 0x577
jge 0x42266f
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x12
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.LastMultipleDragon
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00401f90
cmp eax, 1
jne 0x422753
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4af485], bl
push 0x12
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.LastMultipleDragon
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00401eb0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4af46c], bl
push 5
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.BgSky
mov byte [ecx], bl
call fcn.00416c80
mov ecx, dword [0x4ac6d8]
call fcn.00401eb0
mov ecx, dword [0x4a9f00]
mov eax, dword [0x4a9f2c]
lea edx, [ecx + 1]
imul edx, eax
cmp dword [0x4af4e4], edx
jl 0x4226ed
cmp ecx, 0xa
jl 0x422732
imul eax, ecx
mov dword [0x4a9f2c], eax
mov eax, dword [0x4acc30]
push 0x4a7
push eax
mov byte [0x4af4cd], bl
mov dword [0x4af668], ebx
call edi
mov ecx, dword [0x4acc30]
push ebx
push 0x7d0
push 0x4a7
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
push ebx
push ebx
push 0x25
call fcn.00409d80
add esp, 0xc
lea edx, [ebp - 0x404]
push str.g_nTryMultiple___g_numTryMultiple_n
push edx
call fcn.00409dc0
add esp, 8
lea eax, [ebp - 0x404]
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.0045d691
mov esp, ebp
pop ebp
ret