Function at 0x418870
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x22c
mov eax, dword [0x4b1240]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
xor edi, edi
mov dword [ebp - 0x22c], str.Turtle_0
mov dword [ebp - 0x228], str.Turtle_1
mov dword [ebp - 0x224], str.Turtle_2
mov dword [ebp - 0x220], str.Turtle_3
mov dword [ebp - 0x21c], str.Turtle_4
mov byte [ebp - 0x211], 1
mov dword [ebp - 0x218], edi
lea esp, [esp]
cmp byte [edi + 0x4b54f8], bl
je 0x419121
cmp byte [edi + 0x4b5584], bl
jne 0x4188f9
fld dword [edi*4 + 0x4a8528]
fadd dword [edi*8 + 0x4b5a38]
fstp dword [edi*8 + 0x4b5a38]
fld dword [edi*8 + 0x4b5a3c]
mov esi, dword [ebp + edi*4 - 0x22c]
sub esp, 0x24
mov ecx, esp
fstp dword [esp + 0x20]
fld dword [edi*8 + 0x4b5a38]
mov eax, esi
lea edx, [eax + 1]
fstp dword [esp + 0x1c]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
mov dword [ebp - 0x208], esp
mov byte [ecx], bl
mov dword [ebp - 0x210], edx
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x418938
sub eax, dword [ebp - 0x210]
push eax
push esi
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
cmp byte [edi + 0x4a8520], bl
je 0x418cea
fild dword [0x4a7054]
fld dword [edi*8 + 0x4b5a38]
fcompp
fnstsw ax
test ah, 0x41
jne 0x419121
call fcn.00463f1c
mov dword [ebp - 0x210], eax
fild dword [ebp - 0x210]
fnstcw word [ebp - 0x20e]
movzx eax, word [ebp - 0x20e]
fmul qword [0x497ad8]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov eax, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test eax, eax
jns 0x4189da
fadd dword [0x481fd0]
fmul qword [0x498018]
sub esp, 0x24
mov ecx, esp
mov eax, esi
fadd qword [0x498780]
lea edx, [eax + 1]
fchs
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
fst dword [edi*8 + 0x4b1090]
fld st(0)
fchs
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
mov dword [ebp - 0x208], esp
fst dword [edi*8 + 0x4b1094]
mov dword [ecx + 0x14], 0xf
fstp dword [esp + 0x20]
mov dword [ecx + 0x10], ebx
mov byte [ecx], bl
fstp dword [esp + 0x1c]
mov dword [ebp - 0x208], edx
lea esp, [esp]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x418a40
sub eax, dword [ebp - 0x208]
push eax
push esi
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401e50
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x498820]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov eax, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test eax, eax
jns 0x418abc
fadd dword [0x481fd0]
fmul qword [0x498020]
fadd qword [0x498818]
fiadd dword [0x4a7054]
fstp dword [edi*8 + 0x4b5a38]
fild dword [ebp - 0x218]
fstp dword [ebp - 0x218]
call fcn.00463f1c
mov dword [ebp - 0x208], eax
fnstcw word [ebp - 0x20e]
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x498810]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov ecx, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test ecx, ecx
jns 0x418b3e
fadd dword [0x481fd0]
fmul qword [0x497aa8]
sub esp, 0x24
fld dword [ebp - 0x218]
mov ecx, esp
fld qword [0x498020]
mov eax, esi
fmul st(1)
lea edx, [eax + 1]
fsubr qword [0x498808]
fmulp st(1)
faddp st(1)
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
mov dword [ebp - 0x208], esp
fst dword [edi*8 + 0x4b5a3c]
mov dword [ebp - 0x208], edx
fstp dword [esp + 0x20]
fld dword [edi*8 + 0x4b5a38]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
fstp dword [esp + 0x1c]
mov byte [ecx], bl
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x418ba0
sub eax, dword [ebp - 0x208]
push eax
push esi
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x497ab0]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov eax, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test eax, eax
jns 0x418c1c
fadd dword [0x481fd0]
fmul qword [0x498018]
mov byte [edi + 0x4b5584], 1
mov byte [edi + 0x4a8520], bl
mov al, 1
fadd qword [0x497a98]
fchs
fstp dword [edi*4 + 0x4a8528]
cmp byte [0x4b5584], bl
jne 0x418c4a
xor al, al
cmp byte [0x4b5585], bl
jne 0x418c54
xor al, al
cmp byte [0x4b5586], bl
jne 0x418c5e
xor al, al
cmp byte [0x4b5587], bl
jne 0x418c68
xor al, al
cmp byte [0x4b5588], bl
je 0x419121
cmp al, bl
je 0x419121
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x481600]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
cmp dword [ebp - 0x20c], 0x32
fldcw word [ebp - 0x20e]
jge 0x41903e
fldz
sub esp, 0x20
mov ecx, esp
mov byte [0x4b5566], 1
mov dword [ecx + 0x14], 0xf
jmp 0x4190fb
fldz
fcomp dword [edi*8 + 0x4b5a38]
fnstsw ax
test ah, 0x41
jne 0x419121
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x497ad8]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov ecx, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test ecx, ecx
jns 0x418d5b
fadd dword [0x481fd0]
fmul qword [0x498018]
sub esp, 0x24
mov ecx, esp
mov eax, esi
fadd qword [0x498780]
lea edx, [eax + 1]
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
mov dword [ebp - 0x208], esp
fst dword [edi*8 + 0x4b1090]
mov dword [ebp - 0x208], edx
fst dword [edi*8 + 0x4b1094]
mov dword [ecx + 0x14], 0xf
fst dword [esp + 0x20]
mov dword [ecx + 0x10], ebx
fstp dword [esp + 0x1c]
mov byte [ecx], bl
jmp 0x418db0
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x418db0
sub eax, dword [ebp - 0x208]
push eax
push esi
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401e50
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x498820]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov eax, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test eax, eax
jns 0x418e2c
fadd dword [0x481fd0]
fmul qword [0x498020]
fsubr qword [0x498800]
fstp dword [edi*8 + 0x4b5a38]
fild dword [ebp - 0x218]
fstp dword [ebp - 0x218]
call fcn.00463f1c
mov dword [ebp - 0x208], eax
fnstcw word [ebp - 0x20e]
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x498810]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov ecx, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test ecx, ecx
jns 0x418ea8
fadd dword [0x481fd0]
fmul qword [0x497aa8]
sub esp, 0x24
fld dword [ebp - 0x218]
mov ecx, esp
fld qword [0x498020]
mov eax, esi
fmul st(1)
lea edx, [eax + 1]
fsubr qword [0x498808]
fmulp st(1)
faddp st(1)
fstp dword [ebp - 0x208]
fld dword [ebp - 0x208]
mov dword [ebp - 0x208], esp
fst dword [edi*8 + 0x4b5a3c]
mov dword [ebp - 0x208], edx
fstp dword [esp + 0x20]
fld dword [edi*8 + 0x4b5a38]
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], ebx
fstp dword [esp + 0x1c]
mov byte [ecx], bl
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x418f10
sub eax, dword [ebp - 0x208]
push eax
push esi
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x497ab0]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
mov eax, dword [ebp - 0x20c]
fldcw word [ebp - 0x20e]
fild dword [ebp - 0x20c]
test eax, eax
jns 0x418f8c
fadd dword [0x481fd0]
fmul qword [0x498018]
mov byte [edi + 0x4b5584], 1
mov byte [edi + 0x4a8520], 1
mov al, 1
fadd qword [0x497a98]
fstp dword [edi*4 + 0x4a8528]
cmp byte [0x4b5584], bl
jne 0x418fb9
xor al, al
cmp byte [0x4b5585], bl
jne 0x418fc3
xor al, al
cmp byte [0x4b5586], bl
jne 0x418fcd
xor al, al
cmp byte [0x4b5587], bl
jne 0x418fd7
xor al, al
cmp byte [0x4b5588], bl
je 0x419121
cmp al, bl
je 0x419121
call fcn.00463f1c
fnstcw word [ebp - 0x20e]
mov dword [ebp - 0x208], eax
fild dword [ebp - 0x208]
movzx eax, word [ebp - 0x20e]
or eax, 0xc00
mov dword [ebp - 0x208], eax
fmul qword [0x481600]
fmul qword [0x497ab8]
fldcw word [ebp - 0x208]
fistp qword [ebp - 0x20c]
cmp dword [ebp - 0x20c], 0x32
fldcw word [ebp - 0x20e]
jmp 0x418cca
push 0xffffffffffffffff
sub esp, 0x1c
mov ecx, esp
mov byte [0x4b5566], bl
mov dword [ebp - 0x208], esp
mov esi, 0xf
push 8
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.Turtle_3
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004018e0
fld dword [0x4b5a54]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [0x4b5a50]
mov dword [ebp - 0x208], esp
fstp dword [esp + 0x1c]
push 8
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.Turtle_3
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401d70
fld dword [0x4b10ac]
sub esp, 0x24
fstp dword [esp + 0x20]
mov ecx, esp
fld dword [0x4b10a8]
mov dword [ebp - 0x208], esp
fstp dword [esp + 0x1c]
push 8
mov dword [ecx + 0x14], esi
mov dword [ecx + 0x10], ebx
push str.Turtle_3
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401e50
fld1
sub esp, 0x20
mov ecx, esp
mov dword [ecx + 0x14], esi
fstp dword [esp + 0x1c]
mov dword [ebp - 0x208], esp
push 8
mov dword [ecx + 0x10], ebx
push str.Turtle_3
mov byte [ecx], bl
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.00401f30
cmp byte [edi + 0x4b5584], bl
jne 0x41912f
mov byte [ebp - 0x211], bl
inc edi
mov dword [ebp - 0x218], edi
cmp edi, 5
jl 0x4188d0
cmp byte [ebp - 0x211], bl
je 0x4191f7
mov eax, dword [0x4b558c]
inc eax
push eax
lea ecx, [ebp - 0x204]
push str._UpdateWinTextMovies__g_nTurtlePassCounter:__d_n
push ecx
mov dword [0x4b558c], eax
call fcn.00409550
add esp, 0xc
lea edx, [ebp - 0x204]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x4a853c]
mov dword [0x4b5584], ebx
mov byte [0x4b5588], bl
cmp eax, dword [0x4b558c]
jg 0x4191f7
push ebx
push ebx
push 0x3c
call fcn.00409510
add esp, 0xc
xor edi, edi
nop
mov ecx, dword [ebp + edi*4 - 0x22c]
sub esp, 0x1c
mov esi, esp
mov byte [edi + 0x4b54f8], bl
mov eax, ecx
lea edx, [eax + 1]
mov dword [ebp - 0x208], esp
mov dword [esi + 0x14], 0xf
mov dword [esi + 0x10], ebx
mov byte [esi], bl
mov dword [ebp - 0x208], edx
nop
mov dl, byte [eax]
inc eax
cmp dl, bl
jne 0x4191d0
sub eax, dword [ebp - 0x208]
push eax
push ecx
mov ecx, esi
call fcn.00414ba0
mov ecx, dword [0x4b290c]
call fcn.004019c0
inc edi
cmp edi, 5
jl 0x4191a0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00463931
mov esp, ebp
pop ebp
ret