Function at 0x421050
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
mov eax, dword [0x4b1240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor ebx, ebx
push esi
push edi
cmp byte [0x4b5525], bl
je 0x421bae
lea esi, [ebx + 0xf]
cmp byte [0x4b5530], bl
je 0x421262
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_in
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0x78
jle 0x42119d
cmp byte [0x4b552a], bl
jne 0x42119d
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x498138
mov byte [0x4b552a], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
fild dword [0x4a7058]
fld qword [0x481fe0]
sub esp, 0x24
mov ecx, esp
fmul st(1), st(0)
mov dword [ebp - 0x408], esp
fld qword [0x498128]
fsub st(2), st(0)
fxch st(2)
fadd qword [0x498120]
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x20]
fimul dword [0x4a7054]
fsubrp st(1)
fstp dword [ebp - 0x410]
fld dword [ebp - 0x410]
fstp dword [esp + 0x1c]
push 0x498138
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401d70
fld1
sub esp, 0x20
fstp dword [esp + 0x1c]
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x498138
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.00401f30
fld1
mov eax, dword [0x4a854c]
push ecx
fstp dword [esp]
push eax
push 1
call fcn.0040e010
add esp, 0xc
mov dword [0x4a8554], 1
mov dword [0x4a8550], ebx
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_in
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x4211fb
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_in
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x421262
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5530], bl
push 0xb
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_in
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov dword [0x4b5568], ebx
cmp byte [0x4b552f], bl
jne 0x42126e
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_idle
mov byte [0x4b552f], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b552f], bl
je 0x421490
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.poseidon_idle
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0x3a
jle 0x421490
mov eax, dword [0x4b5568]
inc eax
mov dword [0x4b5568], eax
cmp eax, 1
jl 0x421490
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_idle
mov byte [0x4b552f], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b5564], bl
jne 0x42130d
cmp byte [0x4b5532], bl
jne 0x42149c
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5532], 1
push str.poseidon_roar
jmp 0x421480
mov byte [0x4b557e], bl
call fcn.00463f1c
mov dword [ebp - 0x410], eax
fild dword [ebp - 0x410]
fnstcw word [ebp - 0x40e]
movzx eax, word [ebp - 0x40e]
fmul qword [0x481600]
or eax, 0xc00
mov dword [ebp - 0x408], eax
fmul qword [0x497ab8]
fldcw word [ebp - 0x408]
fistp qword [ebp - 0x40c]
cmp dword [ebp - 0x40c], 0x32
fldcw word [ebp - 0x40e]
jge 0x421386
cmp byte [0x4b5528], bl
jne 0x4213b7
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5528], 1
push str.poseidon_attact_1
jmp 0x4213a7
cmp byte [0x4b5529], bl
jne 0x4213b7
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5529], 1
push str.poseidon_attact_2
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov ecx, dword [0x4a854c]
cmp dword [0x4a8548], ecx
jg 0x4213ee
mov edx, dword [0x4a8554]
cmp edx, dword [0x4a8550]
jg 0x4213ee
mov eax, dword [0x4b5594]
inc eax
mov dword [0x4b5594], eax
cmp eax, 1
jge 0x421413
cmp ecx, 0x64
jl 0x421490
jmp 0x421413
dec dword [0x4a8560]
cmp byte [0x4b558b], bl
jne 0x421490
cmp dword [0x4a8560], ebx
jg 0x421490
mov byte [0x4b558b], 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_attact_1
mov byte [0x4b5528], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_attact_2
mov byte [0x4b5529], bl
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b5531], bl
jne 0x421490
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_out
mov byte [0x4b5531], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b5532], bl
je 0x4215fc
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.poseidon_roar
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0x3c
jle 0x4214e0
cmp byte [0x4b27ea], bl
jne 0x4214e0
push ebx
push 1
push 0x31
call fcn.00409510
add esp, 0xc
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.poseidon_roar
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0x78
jle 0x421524
cmp byte [0x4b27ea], bl
jne 0x421524
push ebx
push 1
push 0x31
call fcn.00409510
add esp, 0xc
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.poseidon_roar
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x421582
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.poseidon_roar
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x4215fc
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5532], bl
push 0xd
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_roar
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
push ebx
push ebx
push 0x31
mov byte [0x4b5564], 1
call fcn.00409510
add esp, 0xc
mov dword [0x4b5568], ebx
cmp byte [0x4b552f], bl
jne 0x4215fc
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_idle
mov byte [0x4b552f], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b5528], bl
je 0x42173a
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0xd
jle 0x421675
cmp byte [0x4b552d], bl
jne 0x421675
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_eff_1
mov byte [0x4b552d], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x30
call fcn.00409510
add esp, 0xc
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x4216d3
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x42173a
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5528], bl
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov dword [0x4b5568], ebx
cmp byte [0x4b552f], bl
jne 0x42173a
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_idle
mov byte [0x4b552f], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
cmp byte [0x4b5529], bl
je 0x421878
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 0xc
jle 0x4217b3
cmp byte [0x4b552e], bl
jne 0x4217b3
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_eff_2
mov byte [0x4b552e], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
push ebx
push 1
push 0x30
call fcn.00409510
add esp, 0xc
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x421811
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x421878
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5529], bl
push 0x11
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_attact_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov dword [0x4b5568], ebx
cmp byte [0x4b552f], bl
jne 0x421878
push 1
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push str.poseidon_idle
mov byte [0x4b552f], 1
call fcn.004154c0
mov ecx, dword [0x4b290c]
call fcn.004018e0
mov edi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp byte [0x4b552d], bl
je 0x4219b4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_eff_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 5
jle 0x421926
cmp byte [0x4b557e], bl
jne 0x421926
mov eax, dword [0x4b5978]
push 0x492
push eax
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4b5978]
push ebx
push 0x1e
push 0x492
push ecx
call dword [sym.imp.USER32.dll_SetTimer]
mov edx, dword [0x4a8548]
mov eax, dword [0x4a854c]
mov ecx, dword [0x4a8554]
push edx
mov edx, dword [0x4a8550]
push eax
push ecx
push edx
lea eax, [ebp - 0x404]
push str.g_nTryMultiple:__d__d___g_nCurMultiple:__d__d__n
push eax
mov byte [0x4b557e], 1
call fcn.00409550
add esp, 0x18
lea ecx, [ebp - 0x404]
push ecx
call edi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_eff_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x421984
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_eff_1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x4219b4
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b552d], bl
push 0x13
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.g_bPlayPoseidonEff1
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b552e], bl
je 0x421aea
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_eff_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401b90
cmp eax, 5
jle 0x421a5c
cmp byte [0x4b557e], bl
jne 0x421a5c
mov edx, dword [0x4b5978]
push 0x492
push edx
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [0x4b5978]
push ebx
push 0x1e
push 0x492
push eax
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [0x4a8548]
mov edx, dword [0x4a854c]
mov eax, dword [0x4a8554]
push ecx
mov ecx, dword [0x4a8550]
push edx
push eax
push ecx
lea edx, [ebp - 0x204]
push str.g_nTryMultiple:__d__d___g_nCurMultiple:__d__d__n
push edx
mov byte [0x4b557e], 1
call fcn.00409550
add esp, 0x18
lea eax, [ebp - 0x204]
push eax
call edi
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_eff_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x421aba
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xe
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_eff_2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x421aea
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b552e], bl
push 0x13
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.g_bPlayPoseidonEff2
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
cmp byte [0x4b5531], bl
je 0x421bae
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_out
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401c80
cmp eax, 1
je 0x421b54
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_out
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401a90
cmp eax, 1
jne 0x421bae
sub esp, 0x1c
mov ecx, esp
mov dword [ebp - 0x408], esp
mov byte [0x4b5531], bl
push 0xc
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.poseidon_out
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
mov ecx, dword [0x4b5978]
push 0x49e
push ecx
call dword [sym.imp.USER32.dll_KillTimer]
mov edx, dword [0x4b5978]
push ebx
push 0xbb8
push 0x49e
push edx
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00463931
mov esp, ebp
pop ebp
ret