Function at 0x408cd0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0xc], ecx
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0xa8]
test ecx, ecx
jne 0x408d4c
mov edx, dword [ebp - 0xc]
cmp dword [edx + 0x144], 0
je 0x408d47
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x144]
call fcn.0040e190
movzx ecx, al
test ecx, ecx
jne 0x408d47
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 0x144]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 0
je 0x408d33
push 1
mov edx, dword [ebp - 4]
mov eax, dword [edx]
mov ecx, dword [ebp - 4]
mov edx, dword [eax]
call edx
mov dword [ebp - 0x10], eax
jmp 0x408d3a
mov dword [ebp - 0x10], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x144], 0
jmp 0x409067
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x148], 0
je 0x408e73
mov edx, dword [ebp - 0xc]
add edx, 0xc4
push edx
call sub.MSVCR90.dll_strlen
add esp, 4
test eax, eax
je 0x408e73
mov eax, dword [ebp - 0xc]
add eax, 0xc4
push eax
mov ecx, dword [0x4b4d88]
call fcn.00402150
movzx ecx, al
test ecx, ecx
je 0x408e73
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x14c]
test eax, eax
je 0x408e0c
mov ecx, dword [ebp - 0xc]
add ecx, 0xc4
push ecx
mov ecx, dword [0x4b4d88]
call fcn.00402300
movzx edx, al
test edx, edx
je 0x408e0a
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x14c], 0
push ecx
fld dword [0x4a18d8]
fstp dword [esp]
push ecx
fldz
fstp dword [esp]
push 0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x148]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x148]
mov edx, dword [edx]
mov eax, dword [edx + 0x74]
call eax
push str.Stops_Talking
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
push 0x4a184c
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
jmp 0x408e73
mov ecx, dword [ebp - 0xc]
add ecx, 0xc4
push ecx
mov ecx, dword [0x4b4d88]
call fcn.00402300
movzx edx, al
test edx, edx
jne 0x408e73
mov eax, dword [ebp - 0xc]
mov byte [eax + 0x14c], 1
push ecx
fld dword [0x4a18d8]
fstp dword [esp]
push ecx
fld1
fstp dword [esp]
push 0
mov ecx, dword [ebp - 0xc]
mov edx, dword [ecx + 0x148]
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax + 0x148]
mov edx, dword [edx]
mov eax, dword [edx + 0x74]
call eax
push str.Begin_Talking
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
push 0x4a1860
call dword [sym.imp.kernel32.dll_OutputDebugStringA]
mov ecx, dword [ebp - 0xc]
cmp dword [ecx + 0x144], 0
je 0x408e94
push ecx
fld dword [ebp + 8]
fstp dword [esp]
mov edx, dword [ebp - 0xc]
mov ecx, dword [edx + 0x144]
call fcn.0040e280
push ecx
fld dword [ebp + 8]
fstp dword [esp]
mov ecx, dword [ebp - 0xc]
call fcn.0040a130
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x11c]
test ecx, ecx
je 0x408f05
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x408f05
mov eax, dword [ebp - 0xc]
fld dword [eax + 0x120]
fadd dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
fstp dword [ecx + 0x120]
mov edx, dword [ebp - 0xc]
mov eax, dword [edx + 4]
fld dword [eax + 0x50]
mov ecx, dword [ebp - 0xc]
fld dword [ecx + 0x120]
fcompp
fnstsw ax
test ah, 0x41
jne 0x408f00
mov edx, dword [ebp - 0xc]
movsx eax, word [edx + 0x50]
cmp eax, 1
jne 0x408f00
push 0
mov ecx, dword [ebp - 0xc]
call fcn.0040a520
jmp 0x409067
mov ecx, dword [ebp - 0xc]
add ecx, 0xc4
push ecx
call sub.MSVCR90.dll_strlen
add esp, 4
test eax, eax
je 0x408f83
mov edx, dword [ebp - 0xc]
add edx, 0xc4
push edx
mov ecx, dword [0x4b4d88]
call fcn.00402150
movzx eax, al
test eax, eax
jne 0x408f83
mov ecx, dword [ebp - 0xc]
movsx edx, word [ecx + 0x50]
cmp edx, 1
jne 0x408f83
push ecx
fldz
fstp dword [esp]
mov eax, dword [ebp - 0xc]
add eax, 0xc4
push eax
mov ecx, dword [0x4b4d88]
call fcn.00402030
push 0x4a1717
mov ecx, dword [ebp - 0xc]
add ecx, 0xc4
push ecx
call sub.MSVCR90.dll_strcpy
add esp, 8
push 0
mov ecx, dword [ebp - 0xc]
call fcn.0040a520
jmp 0x409067
mov edx, dword [ebp - 0xc]
cmp dword [edx + 4], 0
je 0x408feb
mov eax, dword [ebp - 0xc]
movsx ecx, word [eax + 0x50]
cmp ecx, 1
jne 0x408feb
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x11c]
test eax, eax
jne 0x408feb
mov ecx, dword [ebp - 0xc]
movzx edx, byte [ecx + 0x108]
test edx, edx
jne 0x408feb
mov eax, dword [ebp - 0xc]
fld dword [eax + 0x104]
fadd dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
fstp dword [ecx + 0x104]
mov edx, dword [ebp - 0xc]
fld dword [edx + 0x104]
fcomp qword [0x4a18d0]
fnstsw ax
test ah, 1
jne 0x408fe9
push 0
mov ecx, dword [ebp - 0xc]
call fcn.0040a520
jmp 0x409067
mov eax, dword [ebp - 0xc]
cmp dword [eax + 4], 0
je 0x409067
mov ecx, dword [ebp - 0xc]
movsx edx, word [ecx + 0x50]
cmp edx, 1
jne 0x409067
mov eax, dword [ebp - 0xc]
movzx ecx, byte [eax + 0x11c]
test ecx, ecx
jne 0x409067
mov edx, dword [ebp - 0xc]
movzx eax, byte [edx + 0x108]
test eax, eax
je 0x409067
mov ecx, dword [ebp - 0xc]
fld dword [ecx + 0x104]
fcomp qword [0x4a1540]
fnstsw ax
test ah, 0x41
jne 0x409067
mov edx, dword [ebp - 0xc]
fld dword [edx + 0x104]
fsub dword [ebp + 8]
mov eax, dword [ebp - 0xc]
fstp dword [eax + 0x104]
mov ecx, dword [ebp - 0xc]
fld dword [ecx + 0x104]
fcomp qword [0x4a1540]
fnstsw ax
test ah, 0x41
jp 0x409067
push 0
mov ecx, dword [ebp - 0xc]
call fcn.0040a520
mov esp, ebp
pop ebp
ret 4