Function at 0x442890
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x45a8ac
mov eax, dword fs:[0]
push eax
sub esp, 0x78
push ebx
push esi
push edi
mov eax, dword [0x476028]
xor eax, esp
push eax
lea eax, [esp + 0x88]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x20], esi
mov edi, dword [ebp + 0x24]
cmp dword [esi + 0x254], edi
je 0x4428f4
test edi, edi
je 0x4428dc
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov eax, dword [esi + 0x254]
test eax, eax
je 0x4428ee
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esi + 0x254], edi
push str.mousedown
call fcn.0044c070
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x442913
mov eax, 0x8007000e
call fcn.00421d60
mov eax, dword [ebp + 8]
test eax, eax
mov dword [esp + 0x90], 0
jne 0x4429d8
xor esi, esi
mov ecx, dword [esp + 0x1c]
push 0
push 0x400
push ecx
push esi
call sub.OLEAUT32.dll_VarR8Pow
mov ebx, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp eax, 1
push esi
sete byte [esp + 0x17]
call ebx
mov dword [esp + 0x90], 0xffffffff
mov edx, dword [esp + 0x1c]
push edx
call ebx
cmp byte [esp + 0x13], 0
je 0x4429f3
mov eax, dword [ebp + 0x20]
mov ecx, dword [eax]
lea edx, [esp + 0x1c]
push edx
push eax
mov eax, dword [ecx + 0x4c]
mov dword [esp + 0x24], 0
call eax
cmp dword [esp + 0x1c], 1
jne 0x443386
mov esi, dword [esp + 0x20]
push edi
mov ecx, esi
call fcn.00444e50
test eax, eax
jne 0x4429bb
push esi
mov ecx, edi
call fcn.00445860
test eax, eax
jne 0x4429bb
mov eax, edi
mov edi, esi
call fcn.00444960
test eax, eax
je 0x443386
mov eax, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
jne 0x44292b
mov eax, 0x8007000e
call fcn.00421d60
push str.mouseover
call fcn.0044c070
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x442a12
mov eax, 0x8007000e
call fcn.00421d60
cmp dword [ebp + 8], 0
mov dword [esp + 0x90], 1
jne 0x442aa1
xor esi, esi
mov edx, dword [esp + 0x1c]
push 0
push 0x400
push edx
push esi
call sub.OLEAUT32.dll_VarR8Pow
cmp eax, 1
push esi
sete byte [esp + 0x17]
call ebx
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x1c]
push eax
call ebx
cmp byte [esp + 0x13], 0
je 0x442c85
mov ecx, dword [edi]
mov eax, dword [ecx + 0x20]
lea edx, [esp + 0x64]
push edx
push 0
push str.attr_img
push edi
call eax
mov esi, 1
cmp word [esp + 0x64], si
je 0x442abf
push esi
mov ecx, edi
call fcn.004449c0
mov eax, esi
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
jne 0x442a25
mov eax, 0x8007000e
call fcn.00421d60
mov ecx, dword [edi]
mov eax, dword [ecx + 0x20]
lea edx, [esp + 0x64]
push edx
push 0
push str.attr
push edi
call eax
mov ecx, dword [edi]
mov eax, dword [ecx]
lea edx, [esp + 0x1c]
push edx
push 0x45c81c
push edi
mov dword [esp + 0x28], 0
call eax
mov dword [esp + 0x90], 2
cmp word [esp + 0x64], si
je 0x442b13
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x442b13
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6c]
push str.arrow_new_over.gif
push eax
call edx
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x24]
push eax
call ebx
lea ecx, [esp + 0x74]
push ecx
call ebx
lea eax, [esp + 0x24]
push eax
push 0
mov byte [esp + 0x98], 4
mov edx, dword [edi]
mov ecx, dword [edx + 0x20]
push str.attr_pronounce
push edi
call ecx
mov edx, dword [edi]
mov ecx, dword [edx + 0x20]
lea eax, [esp + 0x74]
push eax
push 0
push str.attr_pron_dic
push edi
call ecx
cmp word [esp + 0x24], si
je 0x442bcd
cmp word [esp + 0x74], si
jne 0x442b8d
call fcn.00427610
mov edx, dword [esp + 0x2c]
push edx
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov byte [esp + 0x90], 5
call fcn.00427690
lea eax, [esp + 0x20]
push eax
jmp 0x442bb3
call fcn.00427610
mov ecx, dword [esp + 0x2c]
push ecx
lea ecx, [esp + 0x24]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov byte [esp + 0x90], 6
call fcn.00427690
lea edx, [esp + 0x20]
push edx
mov esi, dword [0x477954]
call fcn.00419050
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov esi, 1
lea eax, [esp + 0x44]
push eax
call ebx
lea edx, [esp + 0x44]
push edx
push 0
mov bl, 7
mov byte [esp + 0x98], bl
mov ecx, dword [edi]
mov eax, dword [ecx + 0x20]
push str.attr_pronounce_sen
push edi
call eax
cmp word [esp + 0x44], si
je 0x442c35
call fcn.00427610
push 2
push ecx
lea edx, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call dword [sym.imp.MFC80U.DLL_Ordinal_278]
mov byte [esp + 0x98], 8
call fcn.00427690
mov byte [esp + 0x98], bl
mov esi, dword [0x477954]
call fcn.00419330
mov esi, 1
mov edi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x44]
push eax
call edi
lea ecx, [esp + 0x74]
push ecx
call edi
lea edx, [esp + 0x24]
push edx
call edi
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x442c6b
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, esi
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
push str.mouseout
call fcn.0044c070
add esp, 4
test eax, eax
mov dword [esp + 0x1c], eax
jne 0x442ca4
mov eax, 0x8007000e
call fcn.00421d60
cmp dword [ebp + 8], 0
mov dword [esp + 0x90], 9
jne 0x442d34
xor esi, esi
mov ecx, dword [esp + 0x1c]
push 0
push 0x400
push ecx
push esi
call sub.OLEAUT32.dll_VarR8Pow
cmp eax, 1
push esi
sete byte [esp + 0x17]
call ebx
mov dword [esp + 0x90], 0xffffffff
mov edx, dword [esp + 0x1c]
push edx
call ebx
cmp byte [esp + 0x13], 0
je 0x442dca
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x74]
push ecx
push 0
push str.attr_img
push edi
call edx
mov esi, 1
cmp word [esp + 0x74], si
je 0x442d52
push 0
mov ecx, edi
call fcn.004449c0
mov eax, esi
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
jne 0x442cb7
mov eax, 0x8007000e
call fcn.00421d60
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
lea ecx, [esp + 0x74]
push ecx
push 0
push str.attr
push edi
call edx
mov eax, dword [edi]
mov edx, dword [eax]
lea ecx, [esp + 0x18]
push ecx
push 0x45c81c
push edi
mov dword [esp + 0x24], 0
call edx
mov dword [esp + 0x90], 0xa
cmp word [esp + 0x74], si
mov eax, dword [esp + 0x18]
je 0x442daa
test eax, eax
je 0x442daa
mov ecx, dword [eax]
mov edx, dword [ecx + 0x6c]
push str.arrow_new_out.gif
push eax
call edx
mov eax, dword [esp + 0x18]
test eax, eax
mov dword [esp + 0x90], 0xffffffff
je 0x443386
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x443386
push str.mousedbclick
call fcn.0044c070
mov edi, eax
add esp, 4
test edi, edi
mov dword [esp + 0x1c], edi
jne 0x442deb
mov eax, 0x8007000e
call fcn.00421d60
mov eax, dword [ebp + 8]
test eax, eax
mov dword [esp + 0x90], 0xb
jne 0x442ef5
xor esi, esi
push 0
push 0x400
push edi
push esi
call sub.OLEAUT32.dll_VarR8Pow
cmp eax, 1
push esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
sete bl
call esi
push edi
mov dword [esp + 0x94], 0xffffffff
call esi
test bl, bl
je 0x443164
mov dword [esp + 0x18], 0
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x90], 0xc
mov eax, dword [edi]
mov edx, dword [eax + 0xf0]
lea ecx, [esp + 0x18]
push ecx
push edi
call edx
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
cmp eax, 4
jb 0x442fb0
mov ebx, dword [esp + 0x18]
mov eax, 8
mov ecx, str._f:yXd
mov edx, ebx
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x442e98
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x442e80
test eax, eax
je 0x442f10
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x442ee7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x442f10
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x442ee7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x442f10
movzx esi, byte [edx]
movzx edi, byte [ecx]
sub esi, edi
jne 0x442ee7
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x442f10
movzx esi, byte [edx]
movzx ecx, byte [ecx]
sub esi, ecx
je 0x442f10
test esi, esi
mov eax, 1
jg 0x442f12
or eax, 0xffffffff
jmp 0x442f12
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
jne 0x442e03
mov eax, 0x8007000e
call fcn.00421d60
xor eax, eax
test eax, eax
je 0x442fa1
mov eax, 8
mov ecx, 0x462ecc
mov edx, ebx
mov esi, dword [edx]
cmp esi, dword [ecx]
jne 0x442f3e
sub eax, 4
add ecx, 4
add edx, 4
cmp eax, 4
jae 0x442f26
test eax, eax
je 0x442f9b
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x442f8d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x442f9b
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x442f8d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x442f9b
movzx edi, byte [ecx]
movzx esi, byte [edx]
sub esi, edi
jne 0x442f8d
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x442f9b
movzx eax, byte [ecx]
movzx esi, byte [edx]
sub esi, eax
je 0x442f9b
test esi, esi
mov eax, 1
jg 0x442f9d
or eax, 0xffffffff
jmp 0x442f9d
xor eax, eax
test eax, eax
jne 0x442fad
push ebx
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x443386
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x14], 0
mov byte [esp + 0x90], 0xd
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + 0x20]
push ecx
call dword [sym.imp.USER32.dll_GetParent]
push eax
call sub.MFC80U.DLL_Ordinal_2366
mov edx, dword [eax + 0x20]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xc00
push edx
call ebx
mov eax, dword [esi + 0x558]
test eax, eax
jne 0x442ffa
lea eax, [esp + 0x14]
push eax
jmp 0x443011
cmp eax, 1
jne 0x44300c
push edi
lea ecx, [esp + 0x18]
push ecx
call fcn.0044bc10
jmp 0x44301d
lea edx, [esp + 0x14]
push edx
add esi, 0x174
push esi
call fcn.0044be20
mov eax, dword [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
lea ecx, [esp + 0x1c]
mov byte [esp + 0x90], 0xe
call dword [sym.imp.MFC80U.DLL_Ordinal_6161]
mov esi, dword [esp + 0x1c]
lea edi, [esp + 0x14]
call fcn.0044bbd0
mov ecx, dword [esp + 0x14]
push ecx
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jne 0x44307a
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov edx, dword [esp + 0x14]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edx
call esi
mov eax, dword [esp + 0x18]
jmp 0x443383
mov esi, dword [esp + 0x20]
push 0x3e8
mov eax, esi
call fcn.00419d90
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2651
mov edi, eax
call fcn.0041b040
cmp dword [eax + 0x38], 9
jne 0x4430ef
call fcn.0041b040
cmp dword [eax + 0x34], 1
je 0x4430ef
test edi, edi
je 0x443143
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_6063
push 0
push 0
push 0x201
push 0x43e
mov eax, esi
call fcn.00419d90
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2651
mov edx, dword [eax + 0x20]
push edx
call ebx
push 0
push 0
push 0x202
push 0x43e
jmp 0x44312f
test edi, edi
je 0x443143
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, edi
call sub.MFC80U.DLL_Ordinal_6063
push 0
push 0
push 0x201
push 0x3e9
mov eax, esi
call fcn.00419d90
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2651
mov edx, dword [eax + 0x20]
push edx
call ebx
push 0
push 0
push 0x202
push 0x3e9
mov eax, esi
call fcn.00419d90
mov ecx, eax
call sub.MFC80U.DLL_Ordinal_2651
mov eax, dword [eax + 0x20]
push eax
call ebx
lea ecx, [esp + 0x1c]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
mov ecx, dword [esp + 0x14]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push ecx
call esi
mov edx, dword [esp + 0x18]
push edx
jmp 0x443384
mov eax, str.mouseup
lea esi, [esp + 0x1c]
call fcn.0044c040
mov edi, eax
mov eax, dword [ebp + 8]
test eax, eax
mov dword [esp + 0x90], 0xf
jne 0x4432bb
xor esi, esi
mov eax, dword [edi]
push 0
push 0x400
push eax
push esi
call sub.OLEAUT32.dll_VarR8Pow
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp eax, 1
push esi
sete bl
call edi
mov dword [esp + 0x90], 0xffffffff
mov ecx, dword [esp + 0x1c]
push ecx
call edi
test bl, bl
jne 0x4429bb
mov eax, str.mousemove
lea esi, [esp + 0x18]
call fcn.0044c040
mov ebx, eax
mov eax, dword [ebp + 8]
lea esi, [esp + 0x1c]
mov dword [esp + 0x90], 0x10
call fcn.00421df0
mov edx, eax
mov eax, ebx
call fcn.00421e10
mov edx, dword [esp + 0x1c]
push edx
mov bl, al
call edi
mov dword [esp + 0x90], 0xffffffff
mov eax, dword [esp + 0x18]
push eax
call edi
test bl, bl
je 0x443386
mov ebx, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea ecx, [esp + 0x34]
push ecx
call ebx
mov edi, dword [ebp + 0x24]
lea eax, [esp + 0x34]
push eax
push 0
mov dword [esp + 0x98], 0x11
mov edx, dword [edi]
mov ecx, dword [edx + 0x20]
push str.attr_pronounce
push edi
call ecx
cmp word [esp + 0x34], 1
je 0x4432d6
mov eax, edi
lea esi, [esp + 0x20]
call fcn.0044a0d0
mov byte [esp + 0x90], 0x12
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4432d6
mov edx, dword [eax]
push 0x462eec
push eax
mov eax, dword [edx + 0x64]
call eax
mov byte [esp + 0x90], 0x11
mov eax, dword [esp + 0x20]
test eax, eax
je 0x443293
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
mov eax, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
push eax
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
test esi, esi
jne 0x44318c
mov eax, 0x8007000e
call fcn.00421d60
lea ecx, [esp + 0x54]
push ecx
call ebx
lea eax, [esp + 0x54]
push eax
push 0
mov bl, 0x13
mov byte [esp + 0x98], bl
mov edx, dword [edi]
mov ecx, dword [edx + 0x20]
push str.attr_add
push edi
call ecx
cmp word [esp + 0x54], 1
je 0x443372
mov eax, edi
lea esi, [esp + 0x20]
call fcn.0044a0d0
mov byte [esp + 0x90], 0x14
mov eax, dword [esp + 0x20]
test eax, eax
je 0x443372
mov edx, dword [eax]
push 0x462f08
push eax
mov eax, dword [edx + 0x64]
call eax
mov byte [esp + 0x90], bl
mov eax, dword [esp + 0x20]
test eax, eax
je 0x443341
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea eax, [esp + 0x54]
push eax
call esi
lea ecx, [esp + 0x34]
push ecx
call esi
mov eax, 1
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov esi, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea edx, [esp + 0x54]
push edx
call esi
lea eax, [esp + 0x34]
push eax
call esi
xor eax, eax
mov ecx, dword [esp + 0x88]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24