Function at 0x4654c3
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov esi, dword [ebp + 0x10]
cmp dword [esi + 8], 0
jne 0x46551b
push 0x63
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push esi
mov eax, dword [ebp + 0xc]
push dword [eax]
push dword [ebp + 8]
call fcn.004e47a0
mov edi, eax
cmp edi, 1
jne 0x465514
cmp dword [esi + 8], 1
je 0x465514
cmp dword [esi + 8], 2
je 0x465514
cmp dword [esi + 8], 3
je 0x465514
push 6
push dword [ebp + 0x1c]
push esi
call fcn.0047a1dc
jmp 0x465e99
mov eax, edi
jmp 0x465e99
cmp dword [esi + 0x40], 0
jne 0x46552b
mov eax, 2
jmp 0x465e99
cmp dword [esi + 8], 2
jl 0x465544
mov edx, dword [esi + 0x40]
cmp dword [edx + 0x40], 0
jne 0x465544
mov eax, 2
jmp 0x465e99
cmp dword [esi + 8], 3
jne 0x465560
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + 0x40]
cmp dword [ecx + 0x40], 0
jne 0x465560
mov eax, 2
jmp 0x465e99
mov edx, dword [esi + 0x40]
cmp dword [edx + 0x1c], 1
je 0x465573
mov eax, 1
jmp 0x465e99
cmp dword [esi + 8], 2
jl 0x46558f
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + 0x40]
cmp dword [ecx + 0x1c], 1
je 0x46558f
mov eax, 1
jmp 0x465e99
cmp dword [esi + 8], 3
jne 0x4655ae
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + 0x40]
mov eax, dword [ecx + 0x40]
cmp dword [eax + 0x1c], 1
je 0x4655ae
mov eax, 1
jmp 0x465e99
mov edx, dword [esi + 0x40]
cmp dword [edx + 0xc], 0
jne 0x465e89
cmp dword [esi + 8], 2
jl 0x4655d1
mov ecx, dword [esi + 0x40]
mov eax, dword [ecx + 0x40]
cmp dword [eax + 0xc], 0
jne 0x465e89
mov eax, dword [esi + 8]
cmp eax, 3
jne 0x4655ec
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + 0x40]
mov edx, dword [ecx + 0x40]
cmp dword [edx + 0xc], 0
jne 0x465e89
dec eax
jne 0x465b97
mov eax, dword [esi + 0x40]
push dword [eax]
call fcn.004e43bb
test eax, eax
je 0x46561d
mov ecx, dword [esi + 0x40]
push dword [ecx]
call fcn.00555124
pop ecx
mov edi, eax
cmp edi, 0x270e
jle 0x465622
mov edi, 0x270e
jmp 0x465622
mov edi, 0x270f
test edi, edi
jg 0x465653
xor edi, edi
mov ebx, dword [0x561350]
test ebx, ebx
je 0x46563d
inc edi
mov ebx, dword [ebx + 0x1018]
test ebx, ebx
jne 0x465632
push edi
push 0x5618e3
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
mov ebx, dword [0x561350]
test ebx, ebx
je 0x46568e
cmp edi, 0x270f
jne 0x46567b
push ebx
mov eax, dword [esi + 0x40]
push dword [eax]
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465684
xor edi, edi
jmp 0x46568e
dec edi
test edi, edi
jg 0x465684
xor edi, edi
jmp 0x46568e
mov ebx, dword [ebx + 0x1018]
test ebx, ebx
jne 0x46565d
test ebx, ebx
je 0x465e89
test edi, edi
jne 0x465e89
cmp dword [esi + 0x10], 0
je 0x465b6c
push 0x2e
push dword [esi]
call fcn.0054c5b8
add esp, 8
mov edi, eax
test eax, eax
je 0x465b6c
push 0x5618e7
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x4656f7
lea edx, [ebp - 0x10]
push edx
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowRect
push dword [ebp - 0x10]
push 0x5618eb
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x5618ef
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465730
lea ecx, [ebp - 0x10]
push ecx
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowRect
push dword [ebp - 0xc]
push 0x5618f3
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x5618f7
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x46576d
lea eax, [ebp - 0x10]
push eax
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowRect
mov edx, dword [ebp - 8]
sub edx, dword [ebp - 0x10]
push edx
push 0x5618fb
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x5618ff
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x4657aa
lea ecx, [ebp - 0x10]
push ecx
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowRect
mov eax, dword [ebp - 4]
sub eax, dword [ebp - 0xc]
push eax
push 0x561903
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x561907
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x4657e7
lea edx, [ebp - 0x10]
push edx
push dword [ebx + 0xc8]
call sub.USER32.dll_GetClientRect
mov ecx, dword [ebp - 8]
sub ecx, dword [ebp - 0x10]
push ecx
push 0x56190c
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x561910
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465824
lea eax, [ebp - 0x10]
push eax
push dword [ebx + 0xc8]
call sub.USER32.dll_GetClientRect
mov edx, dword [ebp - 4]
sub edx, dword [ebp - 0xc]
push edx
push 0x561915
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x561919
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x46584e
push 0x180
push dword [ebp + 0x14]
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowTextA
jmp 0x465e89
push str..modal
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465896
cmp dword [ebx + 0x158], 0
je 0x46587f
mov ecx, dword [ebp + 0x14]
push esi
mov esi, 0x561929
mov edi, ecx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x465e89
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x561930
mov edi, edx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x465e89
push str..table
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x4658d6
add ebx, 0x64
mov eax, dword [ebp + 0x14]
push esi
mov edi, ebx
mov esi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x465e89
push 0x561940
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x46591c
mov eax, dword [ebx + 0xe0]
test eax, eax
je 0x465e89
mov edi, eax
add edi, 0xffffe890
test edi, edi
jle 0x465e89
push edi
push 0x561945
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push str..cancel
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465962
mov eax, dword [ebx + 0xe4]
test eax, eax
je 0x465e89
mov edi, eax
add edi, 0xffffe890
test edi, edi
jle 0x465e89
push edi
push 0x561952
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push str..result
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x4659a8
mov eax, dword [ebx + 0xe8]
test eax, eax
je 0x465e89
mov edi, eax
add edi, 0xffffe890
test edi, edi
jle 0x465e89
push edi
push 0x56195f
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push str..focus
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465a47
call sub.USER32.dll_GetFocus
mov edi, eax
test edi, edi
je 0x465e89
push edi
call sub.USER32.dll_GetParent
cmp eax, dword [ebx + 0xc8]
jne 0x465e89
push edi
call sub.USER32.dll_GetDlgCtrlID
mov edi, eax
test edi, edi
je 0x465e89
cmp dword [ebx + 0x1ac], 0
je 0x465a2b
cmp edi, 0x68
jne 0x465a2b
imul eax, dword [ebx + 0xfe0], 0x17
push dword [ebx + eax*4 + 0x1ac]
call sub.USER32.dll_GetDlgCtrlID
add eax, 0xffffe890
push eax
push 0x56196b
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
add edi, 0xffffe890
push edi
push 0x56196f
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push str..active
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465aee
call sub.USER32.dll_GetFocus
mov edi, eax
test edi, edi
je 0x465a8c
push edi
call sub.USER32.dll_GetParent
cmp eax, dword [ebx + 0xc8]
jne 0x465a8c
mov eax, dword [ebp + 0x14]
push esi
mov esi, 0x56197c
mov edi, eax
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x465e89
test edi, edi
je 0x465aae
cmp edi, dword [ebx + 0xc8]
jne 0x465aae
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x561983
mov edi, edx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x465e89
call sub.USER32.dll_GetActiveWindow
mov edi, eax
test edi, edi
je 0x465ad7
cmp edi, dword [ebx + 0xc8]
jne 0x465ad7
mov eax, dword [ebp + 0x14]
push esi
mov esi, 0x56198a
mov edi, eax
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x465e89
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x561991
mov edi, edx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop esi
jmp 0x465e89
push str..tab
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465b3b
cmp dword [ebx + 0x1ac], 0
je 0x465e89
imul edx, dword [ebx + 0xfe0], 0x17
push dword [ebx + edx*4 + 0x1ac]
call sub.USER32.dll_GetDlgCtrlID
add eax, 0xffffe890
push eax
push 0x56199f
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
push 0x5619a3
push edi
call fcn.0054c494
add esp, 8
test eax, eax
jne 0x465e89
push dword [ebx + 0xc8]
push 0x5619aa
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x465e89
mov ecx, dword [ebp + 0x14]
push esi
mov esi, ecx
mov edi, ebx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x465e89
cmp dword [ebp + 0x20], 0
je 0x465bb3
push 0x57e17c
push 0x67f
call fcn.0042c564
xor eax, eax
jmp 0x465e99
mov edx, dword [esi + 0x40]
push dword [edx]
call fcn.0054c2d0
pop ecx
cmp eax, 0x5a
jbe 0x465bcc
mov ecx, dword [esi + 0x40]
mov eax, dword [ecx]
mov byte [eax + 0x5a], 0
mov edx, dword [esi + 0x40]
push dword [edx]
call fcn.004e43bb
test eax, eax
je 0x465c00
mov ecx, dword [esi + 0x40]
push dword [ecx]
push 0
push 0x680
call fcn.0042c564
push eax
push 0x57e17c
call sub.USER32.dll_wsprintfA
add esp, 0xc
xor eax, eax
jmp 0x465e99
mov edx, dword [esi + 0x40]
push dword [edx]
call fcn.0045e077
mov ebx, eax
test ebx, ebx
je 0x465c36
mov eax, dword [esi + 0x40]
push dword [eax]
push 0
push 0x681
call fcn.0042c564
push eax
push 0x57e17c
call sub.USER32.dll_wsprintfA
add esp, 0xc
xor eax, eax
jmp 0x465e99
call fcn.0045dd74
mov ebx, eax
test ebx, ebx
jne 0x465c51
push 8
push dword [ebp + 0x1c]
push esi
call fcn.0047a1dc
jmp 0x465e99
cmp dword [esi + 8], 1
jne 0x465cac
mov eax, dword [esi + 0x40]
mov edx, dword [eax]
push esi
mov edi, edx
mov esi, ebx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
lea eax, [ebx + 0x64]
mov edx, dword [esi + 0x40]
mov ecx, dword [edx]
push esi
mov esi, eax
mov edi, ecx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
jmp 0x465d27
cmp dword [esi + 8], 2
jl 0x465d27
mov eax, dword [esi + 0x40]
mov edx, dword [eax]
push esi
mov edi, edx
mov esi, ebx
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
mov eax, dword [esi + 0x40]
mov edx, dword [eax + 0x40]
push dword [edx]
call fcn.0054c2d0
pop ecx
cmp eax, 0x5a
jbe 0x465cf9
mov ecx, dword [esi + 0x40]
mov eax, dword [ecx + 0x40]
mov edx, dword [eax]
mov byte [edx + 0x5a], 0
lea ecx, [ebx + 0x64]
mov eax, dword [esi + 0x40]
mov edx, dword [eax + 0x40]
mov eax, dword [edx]
push esi
mov esi, ecx
mov edi, eax
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
xor eax, eax
mov dword [ebx + 0xc8], eax
mov edx, dword [ebp + 0x24]
mov dword [ebx + 0x174], edx
mov ecx, dword [ebp + 0x28]
mov dword [ebx + 0x1000], ecx
mov eax, dword [ebp + 0x2c]
mov dword [ebx + 0x1008], eax
push ebx
call fcn.0045f64e
test eax, eax
jne 0x465d7a
push ebx
call fcn.0045df11
cmp byte [0x57e17c], 0
jne 0x465d73
push 6
push dword [ebp + 0x1c]
push esi
call fcn.0047a1dc
jmp 0x465e99
xor eax, eax
jmp 0x465e99
cmp dword [esi + 8], 3
jne 0x465e1c
mov edx, dword [esi + 0x40]
mov ecx, dword [edx + 0x40]
mov eax, dword [ecx + 0x40]
push dword [eax]
call fcn.00555124
pop ecx
mov edi, eax
cmp edi, 0xffffffff
jne 0x465da6
call sub.USER32.dll_GetDesktopWindow
mov dword [ebp + 8], eax
jmp 0x465e1c
cmp edi, 0xfffffffe
jne 0x465db5
mov eax, dword [0x56cee8]
mov dword [ebp + 8], eax
jmp 0x465e1c
cmp edi, 0xfffffffd
jne 0x465dd4
mov edx, dword [0x56cef4]
mov dword [ebp + 8], edx
cmp dword [ebp + 8], 0
jne 0x465e1c
mov ecx, dword [0x56cee8]
mov dword [ebp + 8], ecx
jmp 0x465e1c
cmp edi, 0xfffffffc
jne 0x465e00
call sub.USER32.dll_GetActiveWindow
mov dword [ebp + 8], eax
cmp dword [ebp + 8], 0
jne 0x465def
mov eax, dword [0x56cef4]
mov dword [ebp + 8], eax
cmp dword [ebp + 8], 0
jne 0x465e1c
mov edx, dword [0x56cee8]
mov dword [ebp + 8], edx
jmp 0x465e1c
push dword [ebp + 0x2c]
mov ecx, dword [esi + 0x40]
mov eax, dword [ecx + 0x40]
mov edx, dword [eax + 0x40]
push dword [edx]
call fcn.00412db7
test eax, eax
je 0x465e1c
mov ecx, dword [eax]
mov dword [ebp + 8], ecx
mov eax, dword [ebp + 8]
mov dword [ebx + 0xcc], eax
mov edx, dword [ebp + 0x14]
mov dword [ebx + 0xec], edx
push ebx
call fcn.0045f49b
mov edi, eax
test edi, edi
jg 0x465e6c
push ebx
call fcn.0045df11
cmp byte [0x57e17c], 0
jne 0x465e68
mov eax, dword [esi + 0x40]
push dword [eax]
push 0
push 0x682
call fcn.0042c564
push eax
push 0x57e17c
call sub.USER32.dll_wsprintfA
add esp, 0xc
xor eax, eax
jmp 0x465e99
push ebx
call fcn.0045df11
jmp 0x465e89
push dword [esi + 0x40]
mov edx, dword [ebp + 0xc]
push dword [edx]
call fcn.004c6cb6
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
dec dword [esi + 8]
cmp dword [esi + 8], 0
jg 0x465e74
xor eax, eax
mov dword [esi + 8], eax
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x28