Function at 0x442970
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x818
mov eax, dword [0x4ea160]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
lea eax, [ebp - 0x404]
push esi
push 0x400
push 0
push eax
mov esi, ecx
mov dword [ebp - 0x818], ebx
call sub.VCRUNTIME140.dll_memset
push 0x400
lea eax, [ebp - 0x804]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0x18
lea eax, [ebp - 0x404]
push 0x400
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 0x400
lea eax, [ebp - 0x804]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClassNameA]
push ebx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x442bf0
push 4
push ebx
call dword [sym.imp.USER32.dll_GetWindow]
test eax, eax
jne 0x442bf0
lea eax, [ebp - 0x404]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x442bf0
push str.Progman
lea eax, [ebp - 0x804]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x442bf0
mov eax, dword [esi + 0x1954]
sub eax, 0
je 0x442bea
sub eax, 1
je 0x442b20
sub eax, 1
jne 0x442bf0
mov eax, dword [esi + 0x1958]
cmp dword [esi + 0x195c], eax
jge 0x442b2e
cmp ebx, dword [esi + 4]
je 0x442bf0
push edi
xor edi, edi
test eax, eax
jle 0x442b14
mov ecx, dword [ebp - 0x818]
xor ebx, ebx
nop dword [eax]
mov eax, dword [esi + 0x196c]
cmp ecx, dword [eax + edi*4]
jne 0x442acd
mov eax, dword [esi + 0x1960]
lea ecx, [ebp - 0x404]
push ecx
mov eax, dword [eax + ebx + 4]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
jne 0x442ac7
mov eax, dword [esi + 0x1964]
lea ecx, [ebp - 0x804]
push ecx
mov eax, dword [eax + ebx + 4]
push dword [eax + 0x14]
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x442ae5
mov ecx, dword [ebp - 0x818]
inc edi
add ebx, 0xc
cmp edi, dword [esi + 0x1958]
jl 0x442a80
inc dword [esi + 0x195c]
pop edi
jmp 0x442bf0
mov eax, dword [esi + 0x1968]
lea ecx, [edi + edi*4]
mov edx, dword [eax + ecx*4 + 8]
lea ecx, [eax + ecx*4]
mov eax, dword [ecx + 0x10]
mov edi, dword [ecx + 4]
sub eax, edx
push 1
push eax
mov eax, dword [ecx + 0xc]
sub eax, edi
push eax
push edx
push edi
push dword [ebp - 0x818]
call dword [sym.imp.USER32.dll_MoveWindow]
inc dword [esi + 0x195c]
pop edi
jmp 0x442bf0
mov eax, dword [esi + 0x195c]
cmp eax, dword [esi + 0x1958]
jl 0x442b42
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044f18f
mov esp, ebp
pop ebp
ret 4
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
jne 0x442bf0
cmp ebx, dword [esi + 4]
je 0x442bf0
lea eax, [ebp - 0x404]
push eax
mov eax, dword [esi + 0x195c]
push 0x100
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x1960]
lea ecx, [eax + ecx*4]
call fcn.00450e40
lea eax, [ebp - 0x804]
push eax
mov eax, dword [esi + 0x195c]
push 0x100
lea ecx, [eax + eax*2]
mov eax, dword [esi + 0x1964]
lea ecx, [eax + ecx*4]
call fcn.00450e40
mov eax, dword [esi + 0x196c]
mov ecx, dword [esi + 0x195c]
mov dword [eax + ecx*4], ebx
lea eax, [ebp - 0x814]
push eax
push ebx
call fcn.00487ad0
mov eax, dword [esi + 0x195c]
add esp, 8
movups xmm0, xmmword [ebp - 0x814]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x1968]
movups xmmword [eax + ecx*4 + 4], xmm0
lea ecx, [eax + ecx*4]
call fcn.00457a10
inc dword [esi + 0x195c]
jmp 0x442bf0
inc dword [esi + 0x1958]
mov ecx, dword [ebp - 4]
mov eax, 1
pop esi
xor ecx, ebp
pop ebx
call fcn.0044f18f
mov esp, ebp
pop ebp
ret 4