Function at 0x402978
Capabilities:
Get graphical window text

Disassembly:
jmp 0x42d730
push 0xffffffffffffffff
push 0x464638
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
lea ecx, [esp + 0x20]
call fcn.0045f748
lea edi, [esi + 0x87c]
xor ebx, ebx
mov ecx, edi
mov dword [esp + 0x34], ebx
call fcn.00401415
mov ecx, edi
mov dword [esi + 0x868], eax
call fcn.00401f96
neg eax
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
push ebx
sbb eax, eax
push ebx
inc eax
push 0x14b
mov dword [esi + 0x858], eax
mov eax, dword [esi + 0x82c]
push eax
call ebp
push str.MonitorType
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ebx
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x14]
push ebx
lea edx, [esp + 0x1c]
push ecx
push edx
mov byte [esp + 0x40], 1
call fcn.00401de3
mov eax, dword [eax]
add esp, 0xc
xor ecx, ecx
cmp dword [eax - 8], ebx
sete cl
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x1c], ebx
jne 0x42d8a3
push str.MonitorType
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
mov byte [esp + 0x40], 2
call fcn.00401de3
mov eax, dword [eax]
mov edx, dword [esi + 0x82c]
add esp, 0xc
push eax
push ebx
push 0x143
push edx
call ebp
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push str.MonitorType
inc eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x1c]
push ecx
push edx
mov byte [esp + 0x40], 1
call fcn.00401de3
mov eax, dword [eax]
add esp, 0xc
xor ecx, ecx
cmp dword [eax - 8], ebx
sete cl
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x1c], ebx
je 0x42d7f0
mov ecx, edi
call fcn.004010cd
mov edx, dword [esi + 0x82c]
push ebx
push eax
push 0x14e
push edx
call ebp
mov ecx, edi
call fcn.004027f7
mov ecx, edi
mov dword [esi + 0x84c], eax
call fcn.00401bb3
mov ecx, edi
mov dword [esi + 0x854], eax
call fcn.0040215d
mov ecx, edi
mov dword [esi + 0x870], eax
call fcn.0040184d
mov ecx, edi
mov dword [esi + 0x86c], eax
call fcn.00401523
neg eax
sbb eax, eax
mov ecx, edi
inc eax
mov dword [esi + 0x85c], eax
call fcn.004019e7
neg eax
sbb eax, eax
mov ecx, edi
inc eax
mov dword [esi + 0x860], eax
call fcn.00402667
neg eax
sbb eax, eax
mov ecx, edi
inc eax
mov dword [esi + 0x850], eax
call fcn.004022c0
neg eax
sbb eax, eax
push ebx
inc eax
push ebx
mov dword [esi + 0x864], eax
mov eax, dword [esi + 0x7ec]
push 0x14b
push eax
call ebp
push str.TalkPermitTone
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ebx
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x14]
push ebx
lea edx, [esp + 0x20]
push ecx
push edx
mov byte [esp + 0x40], 3
call fcn.00401de3
mov eax, dword [eax]
add esp, 0xc
xor ecx, ecx
cmp dword [eax - 8], ebx
sete cl
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], ebx
jne 0x42da51
push str.TalkPermitTone
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
mov byte [esp + 0x40], 4
call fcn.00401de3
mov eax, dword [eax]
mov edx, dword [esi + 0x7ec]
add esp, 0xc
push eax
push ebx
push 0x143
push edx
call ebp
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push str.TalkPermitTone
inc eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x20]
push ecx
push edx
mov byte [esp + 0x40], 3
call fcn.00401de3
mov eax, dword [eax]
add esp, 0xc
xor ecx, ecx
cmp dword [eax - 8], ebx
sete cl
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], ebx
je 0x42d99e
mov ecx, edi
call fcn.0040111d
mov edx, dword [esi + 0x7ec]
push ebx
push eax
push 0x14e
push edx
call ebp
mov ecx, edi
call fcn.00402b53
mov dword [esi + 0x874], eax
mov eax, dword [esi + 0x76c]
push ebx
push 8
push 0xc5
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.00401fb9
mov eax, dword [eax]
lea ecx, [esi + 0x74c]
push eax
mov byte [esp + 0x38], 5
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
push 1
push 0x3c
push 4
push 0x21c0
lea ecx, [esi + 0x280]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.0040274d
push eax
lea ecx, [esi + 0x280]
call fcn.00402dba
push 1
push 0x1f4
push 4
push 0x1b58
lea ecx, [esi + 0x348]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.0040232e
push eax
lea ecx, [esi + 0x348]
call fcn.00402dba
push 1
push 0x1f4
push 4
push 0x1b58
lea ecx, [esi + 0x2e4]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.00402491
push eax
lea ecx, [esi + 0x2e4]
call fcn.00402dba
mov edx, dword [esi + 0x7ac]
push ebx
push ebx
push 0x14b
push edx
call ebp
mov dword [esp + 0x10], 1
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x20]
push eax
push 0x478670
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x2c]
mov eax, dword [esi + 0x7ac]
add esp, 0xc
push edx
push ebx
push 0x143
push eax
call ebp
mov eax, dword [esp + 0x10]
inc eax
cmp eax, 0xa
mov dword [esp + 0x10], eax
jle 0x42db51
mov ecx, edi
call fcn.00401951
mov ecx, dword [esi + 0x7ac]
push ebx
push eax
push 0x14e
push ecx
call ebp
push 1
push 1
push 3
push 0x7f
lea ecx, [esi + 0x668]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.00402018
push eax
lea ecx, [esi + 0x668]
call fcn.00402dba
push 1
push 1
push 3
push 0x7f
lea ecx, [esi + 0x5a0]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.00402e87
push eax
lea ecx, [esi + 0x5a0]
call fcn.00402dba
push 1
push 5
push 3
push 0x27b
lea ecx, [esi + 0x474]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.004013ca
push eax
lea ecx, [esi + 0x474]
call fcn.00402dba
push 1
push 5
push 4
push 0x4b0
lea ecx, [esi + 0x604]
push 5
call fcn.00401366
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.IDS_CONTINUE
call sub.MFC42.DLL_CString::CString_1
lea edx, [esp + 0x2c]
push edx
call fcn.004027f2
add esp, 8
push eax
push ebx
lea ecx, [esi + 0x604]
mov byte [esp + 0x3c], 6
call fcn.00402bcb
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
push 1
mov ecx, edi
call fcn.004012cb
push eax
lea ecx, [esi + 0x604]
call fcn.00402dba
push 1
lea ecx, [esi + 0x4d8]
push 1
push 3
push 0xff
push 1
call fcn.00401366
push ebx
mov ecx, edi
call fcn.0040155f
push eax
lea ecx, [esi + 0x4d8]
call fcn.00402dba
push 1
push 1
push 3
push 0xff
lea ecx, [esi + 0x53c]
push 1
call fcn.00401366
push ebx
mov ecx, edi
call fcn.00401d75
push eax
lea ecx, [esi + 0x53c]
call fcn.00402dba
push 1
push 0x1f4
push 5
push 0x2710
lea ecx, [esi + 0x3ac]
push 0x1f4
call fcn.00401366
push ebx
mov ecx, edi
call fcn.00401e6a
push eax
lea ecx, [esi + 0x3ac]
call fcn.00402dba
push 1
push 0x1f4
push 5
push 0x2710
lea ecx, [esi + 0x410]
push ebx
call fcn.00401366
push ebx
mov ecx, edi
call fcn.00401014
push eax
lea ecx, [esi + 0x410]
call fcn.00402dba
mov eax, dword [esi + 0x6ec]
push ebx
push 8
push 0xc5
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.00401bfe
mov eax, dword [eax]
lea ecx, [esi + 0x6cc]
push eax
mov byte [esp + 0x38], 7
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esi + 0x260]
push ebx
push 8
push 0xc5
push edx
call ebp
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.00402838
mov eax, dword [eax]
mov byte [esp + 0x34], 8
push eax
lea ecx, [esi + 0x240]
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esi + 0x72c]
push ebx
push 0x10
push 0xc5
push ecx
call ebp
lea edx, [esp + 0x28]
mov ecx, edi
push edx
call fcn.0040268a
mov eax, dword [eax]
lea ecx, [esi + 0x70c]
push eax
mov byte [esp + 0x38], 9
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov ecx, edi
call fcn.00402d8d
mov dword [esi + 0x878], eax
mov eax, dword [esi + 0x220]
push ebx
push ebx
push 0x14b
push eax
call ebp
push str.VoiceAnnouncement
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ebx
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x14]
push ebx
lea edx, [esp + 0x20]
push ecx
push edx
mov byte [esp + 0x40], 0xa
call fcn.00401de3
mov eax, dword [eax]
add esp, 0xc
xor ecx, ecx
cmp dword [eax - 8], ebx
sete cl
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], ebx
jne 0x42df1d
push str.VoiceAnnouncement
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
mov byte [esp + 0x40], 0xb
call fcn.00401de3
mov eax, dword [eax]
mov edx, dword [esi + 0x220]
add esp, 0xc
push eax
push ebx
push 0x143
push edx
call ebp
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x10]
push str.VoiceAnnouncement
inc eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], eax
call sub.MFC42.DLL_CString::CString_1
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
lea edx, [esp + 0x20]
push ecx
push edx
mov byte [esp + 0x40], 0xa
call fcn.00401de3
mov eax, dword [eax]
add esp, 0xc
xor ecx, ecx
cmp dword [eax - 8], ebx
sete cl
mov dword [esp + 0x18], ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], ebx
je 0x42de6a
mov ecx, edi
call fcn.0040196a
mov edx, dword [esi + 0x220]
push ebx
push eax
push 0x14e
push edx
call ebp
mov eax, dword [esi + 0x1a0]
push ebx
push ebx
push 0x14b
push eax
call ebp
mov eax, dword [0x479cb8]
push str.DR780
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x42df74
mov eax, dword [0x479cb8]
push 0x4787f4
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
jne 0x42dfad
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.IDS_ALWAYS
call sub.MFC42.DLL_CString::CString_1
lea ecx, [esp + 0x2c]
push ecx
call fcn.004027f2
mov eax, dword [eax]
mov edx, dword [esi + 0x1a0]
add esp, 8
push eax
push ebx
push 0x143
push edx
call ebp
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esi + 0x1a0]
push 0x478dc0
push ebx
push 0x143
push eax
call ebp
mov ecx, dword [esi + 0x1a0]
push 0x478dbc
push ebx
push 0x143
push ecx
call ebp
mov edx, dword [esi + 0x1a0]
push 0x478db8
push ebx
push 0x143
push edx
call ebp
mov eax, dword [0x479cb8]
push str.DR780
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x42e031
mov eax, dword [0x479cb8]
push 0x4787f4
push eax
call dword [sym.imp.MSVCRT.dll__mbscmp]
add esp, 8
test eax, eax
je 0x42e031
mov ecx, edi
call fcn.004012f3
dec eax
push ebx
push eax
mov eax, dword [esi + 0x1a0]
push 0x14e
push eax
jmp 0x42e046
mov ecx, edi
call fcn.004012f3
mov ecx, dword [esi + 0x1a0]
push ebx
push eax
push 0x14e
push ecx
call ebp
mov edx, dword [esi + 0x160]
push ebx
push ebx
push 0x14b
push edx
call ebp
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push str.IDS_MANUAL
call sub.MFC42.DLL_CString::CString_1
lea eax, [esp + 0x2c]
push eax
call fcn.004027f2
mov eax, dword [eax]
mov ecx, dword [esi + 0x160]
add esp, 8
push eax
push ebx
push 0x143
push ecx
call ebp
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
mov edx, dword [esi + 0x160]
push 0x478dc0
push ebx
push 0x143
push edx
call ebp
mov eax, dword [esi + 0x160]
push 0x478dbc
push ebx
push 0x143
push eax
call ebp
mov ecx, dword [esi + 0x160]
push 0x478db8
push ebx
push 0x143
push ecx
call ebp
mov ecx, edi
call fcn.004013fc
mov edx, dword [esi + 0x160]
push ebx
push eax
push 0x14e
push edx
call ebp
mov eax, dword [esi + 0x1e0]
push ebx
push 8
push 0xc5
push eax
call ebp
lea ecx, [esp + 0x28]
push ecx
mov ecx, edi
call fcn.00402dd8
mov eax, dword [eax]
lea ecx, [esi + 0x1c0]
push eax
mov byte [esp + 0x38], 0xc
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esi + 0x120]
push ebx
push ebx
push 0x14b
push edx
call ebp
push str.IntroScreen
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], ebx
call sub.MFC42.DLL_CString::CString_1
lea eax, [esp + 0x14]
push ebx
lea ecx, [esp + 0x20]
push eax
push ecx
mov byte [esp + 0x40], 0xd
call fcn.00401de3
mov edx, dword [eax]
add esp, 0xc
xor eax, eax
mov ecx, dword [edx - 8]
cmp ecx, ebx
lea ecx, [esp + 0x1c]
sete al
mov dword [esp + 0x18], eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], ebx
jne 0x42e240
push str.IntroScreen
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString_1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x24]
push ecx
lea eax, [esp + 0x2c]
push edx
push eax
mov byte [esp + 0x40], 0xe
call fcn.00401de3
mov eax, dword [eax]
mov ecx, dword [esi + 0x120]
add esp, 0xc
push eax
push ebx
push 0x143
push ecx
call ebp
lea ecx, [esp + 0x28]
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x24]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov edx, dword [esp + 0x10]
push str.IntroScreen
inc edx
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], edx
call sub.MFC42.DLL_CString::CString_1
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x14]
push edx
lea ecx, [esp + 0x20]
push eax
push ecx
mov byte [esp + 0x40], 0xd
call fcn.00401de3
mov edx, dword [eax]
add esp, 0xc
xor eax, eax
mov ecx, dword [edx - 8]
cmp ecx, ebx
lea ecx, [esp + 0x1c]
sete al
mov dword [esp + 0x18], eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
cmp dword [esp + 0x18], ebx
je 0x42e18b
mov ecx, edi
call fcn.00401e88
mov ecx, dword [esi + 0x120]
push ebx
push eax
push 0x14e
push ecx
call ebp
mov edx, dword [esi + 0xe0]
push ebx
push 0x14
push 0xc5
push edx
call ebp
lea eax, [esp + 0x28]
mov ecx, edi
push eax
call fcn.0040185c
mov eax, dword [eax]
lea ecx, [esi + 0xc0]
push eax
mov byte [esp + 0x38], 0xf
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esi + 0xa0]
push ebx
push 0x14
push 0xc5
push ecx
call ebp
lea edx, [esp + 0x28]
mov ecx, edi
push edx
call fcn.004018cf
mov eax, dword [eax]
lea ecx, [esi + 0x80]
push eax
mov byte [esp + 0x38], 0x10
call sub.MFC42.DLL_CWnd::SetWindowTextA
lea ecx, [esp + 0x28]
mov byte [esp + 0x34], bl
call sub.MFC42.DLL_CString::CString
mov ecx, esi
call fcn.00402725
lea ecx, [esp + 0x20]
mov dword [esp + 0x34], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x28
ret