Function at 0x1004f661
Capabilities:
Get graphical window text

Disassembly:
push ebp
sub esp, 0x6c
mov eax, 0x100e701d
call fcn.100c908c
sub esp, 0x20
push ebx
push esi
push edi
xor edi, edi
mov esi, ecx
mov dword [ebp + 0x5c], edi
cmp dword [esi + 0xc], edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], edi
jl 0x1004fda4
push dword [ebp + 0x78]
call fcn.1000a0d4
mov ecx, dword [esi + 0x84]
lea eax, [ebp + 0x6f]
push eax
push esi
mov byte [ebp + 0x6f], 0
call fcn.1007943b
push edi
push edi
push 0xb
push eax
mov dword [ebp + 0x58], eax
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp + 0x1c]
push eax
call fcn.10060b08
pop ecx
mov ebx, 0x101519f8
push ebx
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 1
call fcn.1007170f
and dword [ebp + 0xc], edi
xor eax, eax
cmp byte [ebp + 0x6f], 0
lea edi, [ebp + 0x10]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov byte [ebp - 4], 2
stosd dword es:[edi], eax
jne 0x1004f708
mov eax, dword [esi + 0xc]
lea ecx, [ebp + 0xc]
push ecx
sub eax, 0x400
push eax
push 0x41d
push dword [ebp + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 4], 2
push 7
pop ecx
xor eax, eax
lea edi, [ebp + 0x2c]
rep stosd dword es:[edi], eax
push ecx
mov ecx, esp
mov dword [ebp + 0x20], esp
push 0x1010d92c
mov dword [ebp + 0x28], 0x20
mov dword [ebp + 0x2c], 0xa
mov byte [ebp + 0x39], 0x20
call fcn.10009e15
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
mov edi, 0x100f45a0
push edi
mov byte [ebp - 4], 5
call fcn.10009e15
push ecx
mov ecx, esp
mov dword [ebp + 0x54], esp
push str.DescriptiveText
mov byte [ebp - 4], 6
call fcn.10009e15
lea eax, [ebp + 0x64]
push eax
mov byte [ebp - 4], 2
call fcn.10061f03
add esp, 0x10
push edi
mov ecx, eax
mov byte [ebp - 4], 7
call fcn.10004959
mov ecx, dword [ebp + 0x64]
test eax, eax
sete byte [ebp + 0x6e]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.10003f60
cmp byte [ebp + 0x6f], 0
jne 0x1004f811
cmp byte [ebp + 0x6e], 0
je 0x1004f811
push ecx
mov ecx, esp
mov dword [ebp + 0x54], esp
push 0x1010d92c
call fcn.10009e15
push ecx
mov ecx, esp
mov dword [ebp + 0x20], esp
push 0x1010d9f4
mov byte [ebp - 4], 8
call fcn.10009e15
push ecx
mov ecx, esp
mov dword [ebp + 0x24], esp
push str.TextBelowImage
mov byte [ebp - 4], 9
call fcn.10009e15
lea eax, [ebp + 0x64]
push eax
mov byte [ebp - 4], 2
call fcn.10061f03
add esp, 0x10
push edi
mov ecx, eax
mov byte [ebp - 4], 0xa
mov dword [ebp + 0x5c], 1
call fcn.10004959
test eax, eax
jne 0x1004f811
push str.right
lea ecx, [esi + 0xb0]
call fcn.10004959
mov byte [ebp + 0x63], 1
test eax, eax
jne 0x1004f815
mov byte [ebp + 0x63], 0
test byte [ebp + 0x5c], 1
mov dword [ebp - 4], 2
je 0x1004f82d
mov ecx, dword [ebp + 0x64]
add ecx, 0xfffffff0
call fcn.10003f60
push str.CorruptedButton
lea ecx, [esi + 0x7c]
call fcn.10004959
test eax, eax
jne 0x1004f850
push str.Toolbar_is_corrupted_or_cannot_work_properly_on_this_user_account._Click_here_to_see_more_details_and_uninstall
lea ecx, [ebp + 0x68]
call fcn.10006a3d
jmp 0x1004f8f1
cmp byte [ebp + 0x6e], 0
je 0x1004f8f1
lea edi, [esi + 0x38]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x1004f87d
mov eax, dword [esi + 0xc]
push 0
push eax
push 0x40a
push dword [ebp + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, eax
jne 0x1004f880
lea edi, [esi + 0x34]
push 0
push 0
push ecx
mov dword [ebp + 0x54], esp
mov ecx, esp
push edi
call fcn.1000548f
push dword [ebp + 0x78]
lea eax, [ebp + 0x5c]
push eax
call fcn.1004ad5e
add esp, 0x14
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 0xb
call fcn.1000688b
mov ecx, dword [ebp + 0x5c]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.10003f60
push ecx
lea eax, [ebp + 0x68]
mov dword [ebp + 0x78], esp
mov ecx, esp
push eax
call fcn.1000548f
lea eax, [ebp + 0x78]
push eax
call fcn.1008cb29
pop ecx
pop ecx
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 0xc
call fcn.1000688b
mov ecx, dword [ebp + 0x78]
add ecx, 0xfffffff0
mov byte [ebp - 4], 2
call fcn.10003f60
mov eax, dword [ebp + 0x68]
push ebx
lea ecx, [ebp + 0x64]
mov dword [ebp + 0x40], eax
mov byte [esi + 0x17c], 0
call fcn.1007170f
mov eax, dword [esi + 0xb4]
mov byte [ebp - 4], 0xd
test eax, eax
je 0x1004f91c
add eax, 0xe0
jmp 0x1004f929
mov eax, dword [esi + 0xb8]
test eax, eax
je 0x1004f932
add eax, 0x30
push eax
lea ecx, [ebp + 0x64]
call fcn.1000688b
lea edi, [esi + 0x8c]
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
push ebx
sete byte [ebp + 0x7b]
or dword [ebp + 0x2c], 0x41
lea ecx, [ebp + 0x20]
mov dword [ebp + 0x34], 0xfffffffe
call fcn.1007170f
push ebx
lea ecx, [ebp + 0x24]
mov byte [ebp - 4], 0xe
call fcn.1007170f
push 0x100f3ef8
lea ecx, [esi + 0x88]
mov byte [ebp - 4], 0xf
call fcn.10004959
test eax, eax
sete al
cmp byte [ebp + 0x7b], 0
mov byte [ebp + 0x5c], al
jne 0x1004fa69
push dword [ebp + 0x5c]
push ecx
mov dword [ebp + 0x54], esp
mov ecx, esp
push edi
call fcn.1000548f
lea ecx, [esi + 0xbc]
call fcn.1004c968
push dword [ebp + 0x5c]
mov bl, al
push ecx
lea eax, [esi + 0x90]
mov dword [ebp + 0x54], esp
mov ecx, esp
push eax
call fcn.1000548f
lea ecx, [esi + 0xdc]
call fcn.1004c968
push dword [ebp + 0x5c]
or bl, al
push ecx
lea eax, [esi + 0x94]
mov dword [ebp + 0x54], esp
mov ecx, esp
push eax
call fcn.1000548f
lea ecx, [esi + 0xfc]
call fcn.1004c968
xor edi, edi
push edi
push ecx
or bl, al
lea eax, [esi + 0x98]
mov dword [ebp + 0x54], esp
mov ecx, esp
push eax
call fcn.1000548f
lea ecx, [esi + 0x11c]
call fcn.1004c968
push edi
push ecx
or bl, al
lea eax, [esi + 0x9c]
mov dword [ebp + 0x54], esp
mov ecx, esp
push eax
call fcn.1000548f
lea ecx, [esi + 0x13c]
call fcn.1004c968
push edi
push ecx
or bl, al
lea eax, [esi + 0xa0]
mov dword [ebp + 0x54], esp
mov ecx, esp
push eax
call fcn.1000548f
lea ecx, [esi + 0x15c]
call fcn.1004c968
or bl, al
je 0x1004fa69
lea eax, [ebp + 0x50]
push eax
mov ecx, esi
call fcn.1004f4ee
mov ecx, dword [eax]
mov dword [esi + 0x180], ecx
mov eax, dword [eax + 4]
mov dword [esi + 0x184], eax
cmp dword [esi + 0xcc], 0
jne 0x1004fa96
or dword [ebp + 0x2c], 3
cmp byte [ebp + 0x6f], 0
mov byte [esi + 0x17c], 0
je 0x1004fa89
cmp byte [ebp + 0x7b], 0
jne 0x1004fa8d
or byte [ebp + 0x39], 0x10
mov dword [ebp + 0x34], 0xfffffffe
jmp 0x1004faaf
mov ax, word [esi + 0x180]
add word [ebp + 0x3a], ax
mov byte [esi + 0x17c], 1
mov dword [ebp + 0x40], 0x1010d92c
cmp byte [ebp + 0x6e], 0
je 0x1004fb4a
mov eax, dword [ebp + 0x68]
cmp dword [eax - 0xc], 0
jle 0x1004fb4a
push dword [ebp + 0x58]
call dword [sym.imp.USER32.dll_GetDC]
mov ecx, dword [esi + 0x84]
push dword [ecx + 0xbc]
mov ebx, dword [sym.imp.GDI32.dll_SelectObject]
push eax
mov dword [ebp + 0x78], eax
call ebx
and dword [ebp + 0x50], 0
mov ecx, dword [ebp + 0x68]
mov dword [ebp + 0x5c], eax
xor eax, eax
lea edi, [ebp + 0x54]
lea edx, [ebp + 0x50]
push edx
stosd dword es:[edi], eax
mov eax, dword [ecx - 0xc]
push eax
push ecx
push dword [ebp + 0x78]
call dword [sym.imp.GDI32.dll_GetTextExtentPointW]
cmp byte [ebp + 0x63], 0
je 0x1004fb29
mov ax, word [ebp + 0x3a]
cmp ax, word [ebp + 0x50]
movzx eax, ax
ja 0x1004fb20
movzx eax, word [ebp + 0x50]
add eax, 6
mov word [ebp + 0x3a], ax
jmp 0x1004fb33
mov eax, dword [ebp + 0x50]
add eax, 6
add word [ebp + 0x3a], ax
push dword [ebp + 0x5c]
push dword [ebp + 0x78]
call ebx
cmp dword [ebp + 0x78], 0
je 0x1004fb4a
push dword [ebp + 0x78]
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp + 0x64]
xor edi, edi
cmp dword [eax - 0xc], edi
je 0x1004fb97
push edi
push str._MQ_
lea ecx, [esi + 0x50]
call fcn.1000506b
cmp eax, 0xffffffff
jne 0x1004fb97
push str.Single
lea ecx, [ebp + 0x64]
call fcn.10004959
cmp eax, edi
jne 0x1004fb7f
add word [ebp + 0x3a], 0xe
jmp 0x1004fb9c
push str.Split
lea ecx, [ebp + 0x64]
call fcn.10004959
cmp eax, edi
jne 0x1004fb97
add word [ebp + 0x3a], 0x14
jmp 0x1004fb9c
add word [ebp + 0x3a], 7
mov ecx, dword [ebp + 0x24]
add ecx, 0xfffffff0
call fcn.10003f60
mov ecx, dword [ebp + 0x20]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.10003f60
push str.Single
lea ecx, [ebp + 0x64]
call fcn.10004959
cmp eax, edi
jne 0x1004fbd1
or dword [ebp + 0x2c], 8
or byte [ebp + 0x39], 0x80
jmp 0x1004fbf7
push str.Split
lea ecx, [ebp + 0x64]
call fcn.10004959
cmp eax, edi
jne 0x1004fbf7
or dword [ebp + 0x2c], 8
mov eax, dword [esi + 0x84]
or byte [ebp + 0x39], 8
mov byte [eax + 0x128e], 1
push edi
push str.hide_marquee
lea ecx, [esi + 0x48]
call fcn.1000506b
test eax, eax
je 0x1004fc1b
push edi
push str._MQ_
lea ecx, [esi + 0x50]
call fcn.1000506b
test eax, eax
jl 0x1004fc24
mov eax, 0xfffa
add word [ebp + 0x3a], ax
cmp byte [ebp + 0x6f], 0
je 0x1004fca0
test byte [ebp + 0x2c], 2
je 0x1004fca0
test byte [ebp + 0x2c], 8
je 0x1004fca0
test byte [ebp + 0x39], 0x10
je 0x1004fca0
push dword [ebp + 0x40]
lea ecx, [ebp + 0x68]
call fcn.10006a3d
mov ecx, dword [ebp + 0x68]
mov eax, dword [ecx - 0xc]
cmp eax, 1
jle 0x1004fca0
cmp eax, edi
jge 0x1004fc60
push 0x80070057
call fcn.10002a07
movzx eax, word [ecx]
cmp ax, 0x20
je 0x1004fca0
lea eax, [ebp + 0x68]
push eax
lea eax, [ebp + 0x78]
push 0x100fdfe8
push eax
call fcn.10007024
add esp, 0xc
push eax
lea ecx, [ebp + 0x68]
mov byte [ebp - 4], 0x10
call fcn.1000688b
mov ecx, dword [ebp + 0x78]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0xd
call fcn.10003f60
mov eax, dword [ebp + 0x68]
mov dword [ebp + 0x40], eax
mov eax, dword [esi + 0xc]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
lea ecx, [ebp + 0x28]
push ecx
push eax
mov ebx, 0x440
push ebx
push dword [ebp + 0x58]
call edi
cmp byte [ebp + 0x6f], 0
jne 0x1004fd28
test byte [ebp + 0x2c], 0x40
jne 0x1004fd28
mov ecx, dword [esi + 0xc]
or dword [ebp + 0x2c], 0x40
xor eax, eax
lea edx, [ebp + 0x28]
push edx
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], eax
mov dword [ebp + 0x50], eax
mov dword [ebp + 0x54], eax
mov eax, dword [esi + 0x84]
push ecx
add eax, 4
push 0x43f
push dword [eax]
call edi
mov ecx, dword [esi + 0x84]
lea eax, [ebp + 0x48]
push eax
push dword [esi + 0xc]
call fcn.100746ee
mov eax, dword [ebp + 0x50]
sub eax, dword [ebp + 0x48]
mov word [ebp + 0x3a], ax
test ax, ax
jbe 0x1004fd28
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 0x84]
lea edx, [ebp + 0x28]
push edx
push ecx
add eax, 4
push ebx
push dword [eax]
call edi
and dword [ebp - 0x20], 0
xor eax, eax
cmp byte [ebp + 0x6f], 0
lea edi, [ebp - 0x1c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
jne 0x1004fd74
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 0x20]
push ecx
sub eax, 0x400
push eax
push 0x41d
push dword [ebp + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0x14]
sub eax, dword [ebp - 0x18]
mov ecx, dword [esi + 0x84]
push eax
add ecx, 0xf4
mov dword [ebp - 4], 0xd
call fcn.10069952
push 0
push 1
push 0xb
push dword [ebp + 0x58]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp + 0x64]
add ecx, 0xfffffff0
call fcn.10003f60
mov ecx, dword [ebp + 0x68]
add ecx, 0xfffffff0
call fcn.10003f60
mov ecx, dword [ebp + 0x1c]
add ecx, 0xfffffff0
call fcn.10003f60
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
mov dword fs:[0], ecx
pop ebx
add ebp, 0x70
leave
ret 4