Function at 0x4491d2
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 + 4], 0
jne 0x44922a
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.004bf5f3
mov edi, eax
cmp edi, 1
jne 0x449223
cmp dword [esi + 4], 1
je 0x449223
cmp dword [esi + 4], 2
je 0x449223
cmp dword [esi + 4], 3
je 0x449223
push 6
push dword [ebp + 0x1c]
push esi
call fcn.0045b11b
jmp 0x449bb0
mov eax, edi
jmp 0x449bb0
cmp dword [esi + 0x30], 0
jne 0x44923a
mov eax, 2
jmp 0x449bb0
cmp dword [esi + 4], 2
jne 0x449253
mov edx, dword [esi + 0x30]
cmp dword [edx + 0x30], 0
jne 0x449253
mov eax, 2
jmp 0x449bb0
cmp dword [esi + 4], 3
jne 0x44926f
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + 0x30]
cmp dword [ecx + 0x30], 0
jne 0x44926f
mov eax, 2
jmp 0x449bb0
mov edx, dword [esi + 0x30]
cmp dword [edx + 0x18], 1
je 0x449282
mov eax, 1
jmp 0x449bb0
cmp dword [esi + 4], 2
jne 0x44929e
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + 0x30]
cmp dword [ecx + 0x18], 1
je 0x44929e
mov eax, 1
jmp 0x449bb0
cmp dword [esi + 4], 3
jne 0x4492bd
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + 0x30]
mov eax, dword [ecx + 0x30]
cmp dword [eax + 0x18], 1
je 0x4492bd
mov eax, 1
jmp 0x449bb0
mov edx, dword [esi + 0x30]
cmp dword [edx + 8], 0
jne 0x449ba0
cmp dword [esi + 4], 2
jne 0x4492e0
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 0x30]
cmp dword [eax + 8], 0
jne 0x449ba0
mov eax, dword [esi + 4]
cmp eax, 3
jne 0x4492fb
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + 0x30]
mov edx, dword [ecx + 0x30]
cmp dword [edx + 8], 0
jne 0x449ba0
dec eax
jne 0x4498ba
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.004bf238
test eax, eax
je 0x44931f
mov ecx, dword [esi + 0x30]
push dword [ecx]
call fcn.0052175c
pop ecx
mov edi, eax
jmp 0x449324
mov edi, 0x270f
test edi, edi
jg 0x449355
xor edi, edi
mov ebx, dword [0x52bc48]
test ebx, ebx
je 0x44933f
inc edi
mov ebx, dword [ebx + 0xffc]
test ebx, ebx
jne 0x449334
push edi
push 0x52c10a
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
mov ebx, dword [0x52bc48]
test ebx, ebx
je 0x449390
cmp edi, 0x270f
jne 0x44937d
push ebx
mov eax, dword [esi + 0x30]
push dword [eax]
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449386
xor edi, edi
jmp 0x449390
dec edi
test edi, edi
jg 0x449386
xor edi, edi
jmp 0x449390
mov ebx, dword [ebx + 0xffc]
test ebx, ebx
jne 0x44935f
test edi, edi
jne 0x449ba0
test ebx, ebx
je 0x449ba0
cmp dword [esi + 0xc], 0
je 0x44988f
push 0x2e
push dword [esi]
call fcn.005186c4
add esp, 8
mov edi, eax
test eax, eax
je 0x44988f
push 0x52c10e
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x4493f9
lea edx, [ebp - 0x10]
push edx
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowRect
push dword [ebp - 0x10]
push 0x52c112
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c116
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449432
lea ecx, [ebp - 0x10]
push ecx
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowRect
push dword [ebp - 0xc]
push 0x52c11a
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c11e
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44946f
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 0x52c122
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c126
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x4494ac
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 0x52c12a
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c12e
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x4494e9
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 0x52c133
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c137
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449526
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 0x52c13c
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c140
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449550
push 0x180
push dword [ebp + 0x14]
push dword [ebx + 0xc8]
call sub.USER32.dll_GetWindowTextA
jmp 0x449ba0
push str..modal
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449598
cmp dword [ebx + 0x158], 0
je 0x449581
mov ecx, dword [ebp + 0x14]
push esi
mov esi, 0x52c150
mov edi, ecx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x449ba0
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x52c157
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 0x449ba0
push str..table
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x4495d8
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 0x449ba0
push 0x52c167
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x44961e
mov eax, dword [ebx + 0xe0]
test eax, eax
je 0x449ba0
mov edi, eax
add edi, 0xffffe890
test edi, edi
jle 0x449ba0
push edi
push 0x52c16c
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push str..cancel
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449664
mov eax, dword [ebx + 0xe4]
test eax, eax
je 0x449ba0
mov edi, eax
add edi, 0xffffe890
test edi, edi
jle 0x449ba0
push edi
push 0x52c179
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push str..result
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x4496aa
mov eax, dword [ebx + 0xe8]
test eax, eax
je 0x449ba0
mov edi, eax
add edi, 0xffffe890
test edi, edi
jle 0x449ba0
push edi
push 0x52c186
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push str..focus
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449757
call sub.USER32.dll_GetFocus
mov dword [0x549c1c], eax
mov edi, dword [0x549c1c]
test edi, edi
je 0x449ba0
push edi
call sub.USER32.dll_GetParent
cmp eax, dword [ebx + 0xc8]
jne 0x449ba0
push dword [0x549c1c]
call sub.USER32.dll_GetDlgCtrlID
mov edi, eax
test edi, edi
je 0x449ba0
cmp dword [ebx + 0x1a8], 0
je 0x44973b
cmp edi, 0x68
jne 0x44973b
imul eax, dword [ebx + 0xfdc], 0x17
push dword [ebx + eax*4 + 0x1a8]
call sub.USER32.dll_GetDlgCtrlID
add eax, 0xffffe890
push eax
push 0x52c192
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
add edi, 0xffffe890
push edi
push 0x52c196
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push str..active
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449814
call sub.USER32.dll_GetFocus
mov dword [0x549c20], eax
mov edi, dword [0x549c20]
test edi, edi
je 0x4497a5
push edi
call sub.USER32.dll_GetParent
cmp eax, dword [ebx + 0xc8]
jne 0x4497a5
mov eax, dword [ebp + 0x14]
push esi
mov esi, 0x52c1a3
mov edi, eax
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x449ba0
mov eax, dword [0x549c20]
test eax, eax
je 0x4497cc
cmp eax, dword [ebx + 0xc8]
jne 0x4497cc
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x52c1aa
mov edi, edx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x449ba0
call sub.USER32.dll_GetActiveWindow
mov dword [0x549c20], eax
mov eax, dword [0x549c20]
test eax, eax
je 0x4497fd
cmp eax, dword [ebx + 0xc8]
jne 0x4497fd
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x52c1b1
mov edi, edx
mov eax, edi
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop esi
jmp 0x449ba0
mov edx, dword [ebp + 0x14]
push esi
mov esi, 0x52c1b8
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 0x449ba0
push str..tab
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449861
cmp dword [ebx + 0x1a8], 0
je 0x449ba0
imul edx, dword [ebx + 0xfdc], 0x17
push dword [ebx + edx*4 + 0x1a8]
call sub.USER32.dll_GetDlgCtrlID
add eax, 0xffffe890
push eax
push 0x52c1c6
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
push 0x52c1ca
push edi
call fcn.005185a0
add esp, 8
test eax, eax
jne 0x449ba0
push dword [ebp + 8]
push 0x52c1d1
push dword [ebp + 0x14]
call sub.USER32.dll_wsprintfA
add esp, 0xc
jmp 0x449ba0
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 0x449ba0
cmp dword [ebp + 0x20], 0
je 0x4498d6
push 0x54b69c
push 0x67f
call fcn.00415c87
xor eax, eax
jmp 0x449bb0
mov edx, dword [esi + 0x30]
push dword [edx]
call fcn.005183dc
pop ecx
cmp eax, 0x5a
jbe 0x4498ef
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
mov byte [eax + 0x5a], 0
mov edx, dword [esi + 0x30]
push dword [edx]
call fcn.004bf238
test eax, eax
je 0x449923
mov ecx, dword [esi + 0x30]
push dword [ecx]
push 0
push 0x680
call fcn.00415c87
push eax
push 0x54b69c
call sub.USER32.dll_wsprintfA
add esp, 0xc
xor eax, eax
jmp 0x449bb0
mov edx, dword [esi + 0x30]
push dword [edx]
call fcn.00442351
mov ebx, eax
test ebx, ebx
je 0x449959
mov eax, dword [esi + 0x30]
push dword [eax]
push 0
push 0x681
call fcn.00415c87
push eax
push 0x54b69c
call sub.USER32.dll_wsprintfA
add esp, 0xc
xor eax, eax
jmp 0x449bb0
call fcn.00442014
mov ebx, eax
test ebx, ebx
jne 0x449974
push 8
push dword [ebp + 0x1c]
push esi
call fcn.0045b11b
jmp 0x449bb0
cmp dword [esi + 4], 1
jne 0x4499cf
mov eax, dword [esi + 0x30]
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 + 0x30]
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 0x449a4a
cmp dword [esi + 4], 2
jl 0x449a4a
mov eax, dword [esi + 0x30]
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 + 0x30]
mov edx, dword [eax + 0x30]
push dword [edx]
call fcn.005183dc
pop ecx
cmp eax, 0x5a
jbe 0x449a1c
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 0x30]
mov edx, dword [eax]
mov byte [edx + 0x5a], 0
lea ecx, [ebx + 0x64]
mov eax, dword [esi + 0x30]
mov edx, dword [eax + 0x30]
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 + 0x170], edx
mov ecx, dword [ebp + 0x28]
mov dword [ebx + 0xff4], ecx
push ebx
call fcn.00443aa6
test eax, eax
jne 0x449a94
push ebx
call fcn.0044218f
cmp byte [0x54b69c], 0
jne 0x449a8d
push 6
push dword [ebp + 0x1c]
push esi
call fcn.0045b11b
jmp 0x449bb0
xor eax, eax
jmp 0x449bb0
cmp dword [esi + 4], 3
jne 0x449b33
mov edx, dword [esi + 0x30]
mov ecx, dword [edx + 0x30]
mov eax, dword [ecx + 0x30]
push dword [eax]
call fcn.0052175c
pop ecx
mov edi, eax
cmp edi, 0xffffffff
jne 0x449ac0
call sub.USER32.dll_GetDesktopWindow
mov dword [ebp + 8], eax
jmp 0x449b33
cmp edi, 0xfffffffe
jne 0x449acf
mov eax, dword [0x537420]
mov dword [ebp + 8], eax
jmp 0x449b33
cmp edi, 0xfffffffd
jne 0x449aee
mov edx, dword [0x53742c]
mov dword [ebp + 8], edx
cmp dword [ebp + 8], 0
jne 0x449b33
mov ecx, dword [0x537420]
mov dword [ebp + 8], ecx
jmp 0x449b33
cmp edi, 0xfffffffc
jne 0x449b1a
call sub.USER32.dll_GetActiveWindow
mov dword [ebp + 8], eax
cmp dword [ebp + 8], 0
jne 0x449b09
mov eax, dword [0x53742c]
mov dword [ebp + 8], eax
cmp dword [ebp + 8], 0
jne 0x449b33
mov edx, dword [0x537420]
mov dword [ebp + 8], edx
jmp 0x449b33
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx + 0x30]
mov edx, dword [eax + 0x30]
push dword [edx]
call fcn.004f9bfc
test eax, eax
je 0x449b33
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.0044391f
mov edi, eax
test edi, edi
jg 0x449b83
push ebx
call fcn.0044218f
cmp byte [0x54b69c], 0
jne 0x449b7f
mov eax, dword [esi + 0x30]
push dword [eax]
push 0
push 0x682
call fcn.00415c87
push eax
push 0x54b69c
call sub.USER32.dll_wsprintfA
add esp, 0xc
xor eax, eax
jmp 0x449bb0
push ebx
call fcn.0044218f
jmp 0x449ba0
push dword [esi + 0x30]
mov edx, dword [ebp + 0xc]
push dword [edx]
call fcn.0049dd87
mov ecx, dword [ebp + 0xc]
mov dword [ecx], eax
dec dword [esi + 4]
cmp dword [esi + 4], 0
jg 0x449b8b
xor eax, eax
mov dword [esi + 4], eax
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x24