Function at 0x5029a0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x537b53
mov eax, dword fs:[0]
push eax
sub esp, 0x860
mov eax, dword [0x5c403c]
xor eax, esp
mov dword [esp + 0x858], eax
push ebx
push esi
push edi
mov eax, dword [0x5c403c]
xor eax, esp
push eax
lea eax, [esp + 0x870]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov edi, ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x48], eax
mov dword [esp + 0x50], edi
call dword [0x55a6c4]
mov dword [esp + 0x878], 0
lea ecx, [esp + 0x24]
call dword [0x55a6c4]
mov byte [esp + 0x878], 1
lea ecx, [esp + 0x20]
call dword [0x55a6c4]
mov byte [esp + 0x878], 2
lea ecx, [esp + 0x28]
call dword [0x55a6c4]
mov byte [esp + 0x878], 3
lea ecx, [esp + 0x14]
call dword [0x55a6c4]
mov byte [esp + 0x878], 4
push 0
push 0
push 0
push edi
call dword [sym.imp.USER32.dll_FindWindowExW]
mov esi, eax
test esi, esi
je 0x502d8a
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
call dword [sym.imp.USER32.dll_GetDlgCtrlID]
push eax
lea ecx, [esp + 0x2c]
push 0x55d840
push ecx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Format]
add esp, 0xc
push 0x400
push 0x400
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameW]
push 0x1000
push 0x1000
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push esi
call dword [sym.imp.USER32.dll_GetWindowTextW]
push 0xffffffffffffffff
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
push 0xffffffffffffffff
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
push 0x58bba8
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x502cce
push str.Button
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x502cce
push 0x58bbc8
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
je 0x502cce
push str.ComboBox
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Compare]
test eax, eax
jne 0x502d74
push 0x55ae9c
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_3]
xor edi, edi
push edi
push edi
push 0x146
push esi
call ebx
test eax, eax
jle 0x502c44
xor edx, edx
push 0x7fe
push edx
lea eax, [esp + 0x6e]
push eax
mov word [esp + 0x70], dx
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x64]
push ecx
push edi
push 0x148
push esi
call ebx
lea edx, [esp + 0x64]
push edx
lea ecx, [esp + 0x34]
call dword [0x55a504]
mov byte [esp + 0x878], 8
push str.entry
lea ecx, [esp + 0x38]
call dword [0x55a504]
mov byte [esp + 0x878], 9
lea eax, [esp + 0x30]
push eax
lea ecx, [esp + 0x40]
push ecx
call sub.libUtils.module_lutXMLEscapeW
mov byte [esp + 0x880], 0xa
push 0
push eax
lea edx, [esp + 0x44]
push edx
lea eax, [esp + 0x54]
push eax
call dword [sym.imp.libUtils.module_lutCPW]
add esp, 0x18
mov byte [esp + 0x878], 0xb
push eax
lea ecx, [esp + 0x1c]
call dword [0x55a4e8]
mov byte [esp + 0x878], 0xa
lea ecx, [esp + 0x40]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 9
lea ecx, [esp + 0x3c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 8
lea ecx, [esp + 0x34]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push 0
push 0
push 0x146
push esi
inc edi
call ebx
cmp edi, eax
jl 0x502b51
push str.combo
lea ecx, [esp + 0x3c]
call dword [0x55a504]
mov byte [esp + 0x878], 0xc
mov ecx, dword [esp + 0x28]
push ecx
push 0x55d634
push 1
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x58]
push ecx
call dword [sym.imp.libUtils.module_lutCPW]
add esp, 0x18
mov byte [esp + 0x878], 0xd
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x878], 0xc
lea ecx, [esp + 0x44]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x38]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x18]
call dword [0x55a4e8]
mov edi, dword [esp + 0x50]
jmp 0x502d74
push str.text
lea ecx, [esp + 0x20]
call dword [0x55a504]
mov byte [esp + 0x878], 5
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x30]
push ecx
call sub.libUtils.module_lutXMLEscapeW
mov byte [esp + 0x880], 6
mov edx, dword [esp + 0x30]
push edx
push 0x55d634
push 1
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x68]
push ecx
call dword [sym.imp.libUtils.module_lutCPW]
add esp, 0x20
mov byte [esp + 0x878], 7
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x878], 6
lea ecx, [esp + 0x4c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 5
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x18]
call dword [0x55a4e8]
push 0
push 0
push esi
push edi
call dword [sym.imp.USER32.dll_FindWindowExW]
mov esi, eax
test esi, esi
jne 0x502a67
push 0x1000
push 0x1000
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push edi
call dword [sym.imp.USER32.dll_GetWindowTextW]
or edi, 0xffffffff
push edi
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::ReleaseBuffer]
push str.window
lea ecx, [esp + 0x20]
call dword [0x55a504]
mov bl, 0xe
mov byte [esp + 0x878], bl
mov eax, dword [esp + 0x20]
mov esi, dword [sym.imp.libUtils.module_lutCPW]
push eax
push str.title
push str.1000
push 0x55d634
push 2
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x48]
push eax
call esi
add esp, 0x20
mov byte [esp + 0x878], 0xf
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x878], bl
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
push str.translation
lea ecx, [esp + 0x20]
call dword [0x55a504]
mov bl, 0x10
mov byte [esp + 0x878], bl
push str.xxxx_insert_version_xxxx
push str.version
push 1
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x40]
push eax
call esi
add esp, 0x18
mov byte [esp + 0x878], 0x11
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_2]
mov byte [esp + 0x878], bl
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
lea ecx, [esp + 0x54]
call sub.mfc90u.dll_CFile::CFile
mov byte [esp + 0x878], 0x12
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
push 0
push 0x1001
push eax
lea ecx, [esp + 0x60]
call sub.mfc90u.dll_CFile::Open
test eax, eax
je 0x502f77
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.libWTW.module_public:_static_char____cdecl_wtw::CConv::wtou_wchar_t_const__]
add esp, 4
mov esi, eax
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x502ee3
sub eax, edx
push eax
push esi
lea ecx, [esp + 0x5c]
call sub.mfc90u.dll_CFile::Write
push esi
call sub.mfc90u.dll_delete__
add esp, 4
lea ecx, [esp + 0x54]
call sub.mfc90u.dll_CFile::Close
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x54]
call fcn.00531e54
mov byte [esp + 0x878], 3
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 2
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 1
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 0
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov dword [esp + 0x878], edi
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
xor eax, eax
jmp 0x502fe6
mov byte [esp + 0x878], 4
lea ecx, [esp + 0x54]
call fcn.00531e54
mov byte [esp + 0x878], 3
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 2
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 1
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov byte [esp + 0x878], 0
lea ecx, [esp + 0x24]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov dword [esp + 0x878], edi
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, 0x80004005
mov ecx, dword [esp + 0x870]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x858]
xor ecx, esp
call fcn.00532776
mov esp, ebp
pop ebp
ret 4