Function at 0x401f10
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x42200c]
xor eax, ebp
mov dword [ebp - 4], eax
cmp byte [ebp + 0xc], 0
mov eax, dword [ebp + 8]
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebx + 0x2c], eax
je 0x402183
push 0x200
call fcn.0040fece
add esp, 4
mov esi, eax
xor eax, eax
mov dword [ebp - 0x18], esi
push 0x100
push esi
mov word [esi], ax
push dword [ebx + 0x2c]
call dword [sym.imp.USER32.dll_GetClassNameW]
mov dword [ebp - 0x30], vtable.KString.0
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x401f65
sub esi, ecx
sar esi, 1
mov dword [ebp - 0x20], esi
je 0x401fae
push 0x28
mov word [ebp - 0x28], ax
call fcn.0040ca8a
mov edi, eax
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edi
lea ecx, [edi + 8]
mov dword [edi], 1
push ecx
mov dword [edi + 4], 0
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x401fb6
mov word [ebp - 0x28], 1
xor edi, edi
lea eax, [ebp - 0x30]
mov dword [ebp - 0x2c], edi
push eax
lea ecx, [ebx + 4]
call fcn.00403140
test edi, edi
je 0x402008
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
jne 0x402008
mov eax, dword [edi + 4]
test eax, eax
je 0x401fe3
push eax
call fcn.0040feb3
add esp, 4
mov eax, dword [edi + 0x20]
test eax, eax
je 0x401ff3
push eax
call fcn.0040feb3
add esp, 4
lea eax, [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x28
push edi
call fcn.0040caba
add esp, 8
cmp byte [ebx + 0xd], 0
je 0x402013
mov ecx, dword [ebx + 0x10]
jmp 0x402024
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x40201f
mov ecx, dword [ecx + 0x20]
jmp 0x402024
mov ecx, 0x41efd8
lea eax, [ebx + 0x5c]
push eax
push ecx
push dword [0x4235d8]
call dword [sym.imp.USER32.dll_GetClassInfoExW]
mov esi, dword [sym.imp.USER32.dll_GetWindowLongW]
push 0xfffffffffffffff4
push dword [ebx + 0x2c]
call esi
mov dword [ebx + 0x3c], eax
lea eax, [ebp - 0x14]
push eax
push dword [ebx + 0x2c]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x14]
sub eax, edx
mov ecx, dword [ebp - 0x10]
push dword [ebx + 0x2c]
mov dword [ebx + 0x48], eax
mov eax, dword [ebp - 8]
sub eax, ecx
mov dword [ebx + 0x40], edx
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x44], ecx
call dword [sym.imp.USER32.dll_IsWindowVisible]
push dword [ebx + 0x2c]
test eax, eax
setne al
mov byte [ebx + 0x50], al
call dword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
push 0xfffffffffffffff0
push dword [ebx + 0x2c]
setne al
mov byte [ebx + 0x51], al
call esi
push 0xffffffffffffffec
push dword [ebx + 0x2c]
mov dword [ebx + 0x34], eax
call esi
push dword [ebx + 0x2c]
mov dword [ebx + 0x38], eax
call dword [sym.imp.USER32.dll_GetParent]
push 0x200
mov dword [ebx + 0x30], eax
call fcn.0040fece
add esp, 4
mov esi, eax
xor eax, eax
mov dword [ebp - 0x18], esi
push 0x100
push esi
mov word [esi], ax
push dword [ebx + 0x2c]
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov dword [ebp - 0x44], vtable.KString.0
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4020e0
sub esi, ecx
sar esi, 1
mov dword [ebp - 0x34], esi
je 0x402129
push 0x28
mov word [ebp - 0x3c], ax
call fcn.0040ca8a
mov edi, eax
add esp, 4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x1c], edi
lea ecx, [edi + 8]
mov dword [edi], 1
push ecx
mov dword [edi + 4], 0
mov dword [edi + 0x20], eax
mov dword [edi + 0x24], esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
jmp 0x402131
mov word [ebp - 0x3c], 1
xor edi, edi
lea eax, [ebp - 0x44]
mov dword [ebp - 0x40], edi
push eax
lea ecx, [ebx + 0x18]
call fcn.00403140
test edi, edi
je 0x402183
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
jne 0x402183
mov eax, dword [edi + 4]
test eax, eax
je 0x40215e
push eax
call fcn.0040feb3
add esp, 4
mov eax, dword [edi + 0x20]
test eax, eax
je 0x40216e
push eax
call fcn.0040feb3
add esp, 4
lea eax, [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x28
push edi
call fcn.0040caba
add esp, 8
movzx eax, word [0x4235f4]
mov esi, dword [ebx + 0x2c]
mov edi, dword [sym.imp.USER32.dll_SetPropW]
push ebx
push eax
push esi
mov dword [ebp - 0x18], esi
call edi
push 0xfffffffffffffffc
push esi
call dword [sym.imp.USER32.dll_GetWindowLongW]
movzx ecx, word [0x4235e4]
mov esi, eax
push esi
push ecx
push dword [ebp - 0x18]
call edi
cmp esi, 0x401300
je 0x4021cc
push 0x401300
push 0xfffffffffffffffc
push dword [ebp - 0x18]
call dword [sym.imp.USER32.dll_SetWindowLongW]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040c95a
mov esp, ebp
pop ebp
ret 8