Function at 0x100056f3
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x358
push esi
push edi
lea eax, [ebp - 0x24]
xor edi, edi
push eax
push dword [ebp + 8]
mov esi, edi
mov dword [ebp - 4], esi
call dword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [ebp - 0x1c]
cmp eax, dword [ebp - 0x24]
je 0x10005d51
mov eax, dword [ebp - 0x18]
cmp eax, dword [ebp - 0x20]
je 0x10005d51
mov ecx, dword [0x1002a2c0]
push ebx
push 4
push edi
mov ebx, 0x1f4
push ebx
call fcn.10001e59
mov ecx, dword [ebp - 0x1c]
cmp ecx, eax
jle 0x1000575d
mov ecx, dword [0x1002a2c0]
push 4
push edi
push ebx
call fcn.10001e59
mov ecx, dword [ebp - 0x1c]
sub ecx, eax
mov dword [ebp - 0x1c], ecx
push dword [ebp - 0x20]
lea eax, [ebp - 0x14]
push ecx
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push eax
call dword [sym.imp.USER32.dll_SetRect]
push 1
push edi
push dword [ebp + 8]
lea ebx, [ebp - 0x158]
call dword [sym.imp.USER32.dll_InvalidateRect]
mov eax, edi
mov dword [ebp - 0x28], edi
mov ecx, dword [eax + 0x1002905c]
lea eax, [ecx - 1]
cmp eax, 1
ja 0x100058a1
sub ecx, 1
je 0x100057db
sub ecx, 1
jne 0x10005bc2
mov ecx, dword [0x1002a2c0]
push 1
push edi
push 0x1f4
call fcn.10001e59
push dword [ebp - 0x18]
mov ecx, eax
mov eax, dword [ebp - 0x24]
push dword [ebp - 0x1c]
add eax, ecx
push dword [ebp - 0x20]
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_SetRect]
jmp 0x10005bc2
push 0x100
lea eax, [ebp - 0x258]
push edi
push eax
call fcn.10009df0
mov ecx, dword [0x1002a2b4]
lea eax, [ebp - 0x258]
add esp, 0xc
mov esi, 0x417
push 0x80
push eax
push esi
push dword [0x1002a2bc]
push dword [0x1002a2b8]
push edi
push 0xb
call fcn.10002927
push 0x13
lea eax, [ebp - 0x258]
push eax
push 0x1400
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x1002a2c0]
shr eax, 0x10
push eax
push edi
push 0x1fe
call fcn.10001e59
mov ecx, dword [0x1002a2c0]
mov esi, eax
push 1
push edi
push 0x1f4
call fcn.10001e59
mov ecx, dword [ebp - 0x18]
mov edx, eax
mov eax, dword [ebp - 0x24]
push ecx
push dword [ebp - 0x1c]
sub ecx, esi
add eax, edx
push ecx
push eax
lea eax, [ebp - 0x14]
push eax
call dword [sym.imp.USER32.dll_SetRect]
mov ecx, dword [0x1002a2c0]
push 3
push edi
push 0x1fe
call fcn.10001e59
mov ecx, dword [ebp - 0x10]
sub ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x10005bc2
push ecx
push dword [ebp + 8]
mov dword [ebx], ecx
call dword [sym.imp.USER32.dll_GetDlgItem]
mov dword [ebx + 4], eax
test eax, eax
je 0x10005bc2
lea ecx, [ebp - 0x38]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
push 2
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 8]
push edi
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [ebx]
mov ecx, 0x3e8
mov dword [ebx + 0x18], 0x11c
sub eax, ecx
je 0x1000590a
sub eax, 0x1d
je 0x10005960
sub eax, 0x12
je 0x1000590a
sub eax, 1
je 0x1000590a
sub eax, 0xa
je 0x1000592b
dec eax
sub eax, 1
je 0x1000590a
sub eax, 0x9834
jne 0x10005aec
mov eax, dword [0x1002a1b8]
cmp dword [ebx], ecx
jne 0x100059d9
test eax, eax
jne 0x100059d9
mov dword [ebx + 0x18], 0x19c
jmp 0x10005aec
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x10]
sub edx, eax
mov dword [ebx + 8], eax
mov eax, dword [ebp - 8]
sub eax, ecx
mov dword [ebx + 0xc], ecx
mov dword [ebx + 0x14], eax
cmp edx, 0x10
mov eax, 0x19c
mov dword [ebx + 0x10], edx
mov dword [ebx + 0x1c], edi
lea ecx, [eax - 0x40]
cmovg eax, ecx
mov dword [ebx + 0x18], eax
jmp 0x10005aec
mov eax, dword [ebp - 0x10]
mov ecx, 0x19c
cmp eax, dword [ebp - 8]
push 1
push edi
lea eax, [ecx - 0x40]
cmovl ecx, eax
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x18], ecx
mov ecx, dword [0x1002a2c0]
push 0x1fe
mov dword [ebx + 8], eax
call fcn.10001e59
mov ecx, eax
mov eax, dword [ebp - 0x10]
push 1
add eax, ecx
mov ecx, dword [0x1002a2c0]
push edi
push 0x1fe
mov dword [ebx + 0xc], eax
call fcn.10001e59
sub eax, dword [ebp - 0x14]
add eax, dword [ebp - 0xc]
mov ecx, dword [0x1002a2c0]
push 2
push edi
push 0x1fe
mov dword [ebx + 0x10], eax
call fcn.10001e59
mov ecx, dword [ebp - 8]
sub ecx, eax
mov dword [ebx + 0x1c], edi
sub ecx, dword [ebp - 0x10]
mov dword [ebx + 0x14], ecx
jmp 0x10005aec
cmp dword [0x10029030], 0
je 0x10005a15
cmp dword [ebx], 0x417
jne 0x100059f8
cmp dword [0x1002a1c8], 1
jne 0x10005a0d
jmp 0x1000591f
cmp dword [ebx], 0x418
jne 0x10005a15
cmp dword [0x1002a1c8], 1
jne 0x1000591f
test eax, eax
jne 0x1000591f
push 0x100
lea eax, [ebp - 0x358]
push edi
push eax
call fcn.10009df0
add esp, 0xc
lea eax, [ebp - 0x358]
push 0x80
push eax
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowTextW]
push 0x13
lea eax, [ebp - 0x358]
push eax
push 0x1400
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [0x1002a2c0]
mov esi, eax
push 6
push edi
push 0x1f4
call fcn.10001e59
mov ecx, dword [0x1002a2c0]
mov edi, eax
movzx eax, si
shr esi, 0x10
add edi, eax
mov eax, dword [ebp - 0x14]
push esi
push 0
push 0x1fe
mov dword [ebx + 8], eax
call fcn.10001e59
mov ecx, dword [ebp - 8]
push esi
sub ecx, eax
mov dword [ebx + 0x10], edi
xor esi, esi
mov dword [ebx + 0xc], ecx
mov ecx, dword [0x1002a2c0]
push esi
push 0x1fe
call fcn.10001e59
mov dword [ebx + 0x14], eax
mov ecx, 0x80
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push 0x40
cmp eax, edi
mov dword [ebx + 0x1c], esi
pop edx
cmovg ecx, edx
or dword [ebx + 0x18], ecx
test byte [ebx + 0x18], dl
je 0x10005ae9
mov ecx, dword [0x1002a2c0]
push 4
push esi
push 0x1f4
call fcn.10001e59
mov ecx, dword [ebx + 0x10]
add ecx, eax
add dword [ebp - 0x14], ecx
mov esi, dword [ebp - 4]
push 0xfffffffffffffff0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, dword [ebp - 0x34]
mov edx, eax
mov eax, dword [ebx + 8]
and edx, 0x10000000
cmp eax, dword [ebp - 0x38]
jne 0x10005b13
cmp dword [ebx + 0xc], edi
jne 0x10005b13
or dword [ebx + 0x18], 2
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
cmp dword [ebx + 0x10], eax
jne 0x10005b2c
mov eax, dword [ebp - 0x2c]
sub eax, edi
cmp dword [ebx + 0x14], eax
jne 0x10005b2c
or dword [ebx + 0x18], 1
mov ecx, dword [ebx + 0x18]
mov eax, ecx
test cl, cl
jns 0x10005b41
test edx, edx
jne 0x10005b41
and eax, 0xffffff7f
mov dword [ebx + 0x18], eax
mov ecx, eax
test al, 0x40
je 0x10005b51
test edx, edx
je 0x10005b51
and ecx, 0xffffffbf
mov dword [ebx + 0x18], ecx
mov eax, ecx
and eax, 0xc3
cmp al, 3
je 0x10005d55
and ecx, 0xc1
cmp cl, 1
jne 0x10005bbd
mov eax, dword [0x1002a1e8]
add eax, dword [ebx + 8]
cmp dword [ebp - 0x38], eax
jne 0x10005bbd
mov eax, dword [ebx + 0xc]
add eax, dword [0x1002a1ec]
cmp edi, eax
jne 0x10005bbd
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x10005bbd
mov eax, dword [ebx + 0x14]
add eax, dword [ebx + 0xc]
push eax
mov eax, dword [ebx + 0x10]
add eax, dword [ebx + 8]
push eax
push dword [ebx + 0xc]
lea eax, [ebp - 0x38]
push dword [ebx + 8]
push eax
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ValidateRect]
add ebx, 0x20
xor edi, edi
mov eax, dword [ebp - 0x28]
mov esi, dword [ebp - 4]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, 0x24
jb 0x10005788
lea eax, [ebp - 0x158]
cmp ebx, eax
je 0x10005d37
lea ecx, [ebp - 0x158]
mov eax, ebx
sub eax, ecx
sar eax, 5
push eax
call dword [sym.imp.USER32.dll_BeginDeferWindowPos]
mov edi, eax
lea eax, [ebp - 0x158]
cmp eax, ebx
jae 0x10005c35
lea esi, [ebp - 0x144]
test edi, edi
je 0x10005c40
push dword [esi + 4]
push dword [esi]
push dword [esi - 4]
push dword [esi - 8]
push dword [esi - 0xc]
push 0
push dword [esi - 0x10]
push edi
call dword [sym.imp.USER32.dll_DeferWindowPos]
add esi, 0x20
mov edi, eax
lea eax, [esi - 0x14]
cmp eax, ebx
jb 0x10005c0b
test edi, edi
je 0x10005c40
push edi
call dword [sym.imp.USER32.dll_EndDeferWindowPos]
mov eax, dword [ebp - 4]
xor esi, esi
test eax, eax
jne 0x10005c56
push esi
push esi
push esi
push esi
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov dword [ebp - 4], eax
cmp dword [ebp + 0xc], 0
je 0x10005cbb
push esi
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetUpdateRgn]
lea eax, [ebp - 0x158]
cmp eax, ebx
jae 0x10005ca9
lea esi, [ebp - 0x13c]
test edi, edi
je 0x10005ca7
cmp dword [esi], 0
je 0x10005c9d
push dword [esi - 0x10]
push dword [esi - 0x14]
push dword [esi]
call dword [sym.imp.GDI32.dll_OffsetRgn]
mov eax, dword [ebp - 4]
push 2
push dword [esi]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
add esi, 0x20
lea eax, [esi - 0x1c]
cmp eax, ebx
jb 0x10005c77
xor esi, esi
push 0x381
push dword [ebp - 4]
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_RedrawWindow]
mov eax, dword [0x1002a1e4]
test eax, eax
je 0x10005d11
push esi
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetUpdateRgn]
lea eax, [ebp - 0x158]
cmp eax, ebx
jae 0x10005d11
lea esi, [ebp - 0x13c]
test edi, edi
je 0x10005d11
cmp dword [esi], 0
je 0x10005d07
push dword [esi - 0x10]
push dword [esi - 0x14]
push dword [esi]
call dword [sym.imp.GDI32.dll_OffsetRgn]
mov eax, dword [0x1002a1e4]
push 2
push dword [esi]
push eax
push eax
call dword [sym.imp.GDI32.dll_CombineRgn]
add esi, 0x20
lea eax, [esi - 0x1c]
cmp eax, ebx
jb 0x10005cdf
lea esi, [ebp - 0x158]
mov eax, esi
cmp eax, ebx
jae 0x10005d37
test edi, edi
je 0x10005d37
cmp dword [esi + 0x1c], 0
je 0x10005d30
push dword [esi + 0x1c]
call dword [sym.imp.GDI32.dll_DeleteObject]
add esi, 0x20
cmp esi, ebx
jb 0x10005d1d
mov eax, dword [ebp - 4]
pop ebx
test eax, eax
je 0x10005d46
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ValidateRgn]
pop edi
pop esi
leave
ret
cmp dword [ebp + 0xc], 0
jne 0x10005d75
cmp dword [0x1002a1e8], 0
jne 0x10005bc0
cmp dword [0x1002a1ec], 0
jne 0x10005bc0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x10005bc0
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ValidateRect]
xor edi, edi
push edi
push edi
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetUpdateRect]
test eax, eax
je 0x10005bc2
test esi, esi
jne 0x10005dbb
push edi
push edi
push edi
push edi
call dword [sym.imp.GDI32.dll_CreateRectRgn]
mov esi, eax
mov dword [ebp - 4], esi
push edi
push esi
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetUpdateRgn]
push dword [ebx + 0xc]
push dword [ebx + 8]
push esi
call dword [sym.imp.GDI32.dll_OffsetRgn]
push edi
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_InvalidateRgn]
jmp 0x10005bc2