Function at 0x402aa0
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [0x44e014]
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 0x402d13
push 0x200
call fcn.004254b8
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.FalconString.0
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x402af5
sub esi, ecx
sar esi, 1
mov dword [ebp - 0x20], esi
je 0x402b3e
push 0x28
mov word [ebp - 0x28], ax
call fcn.0041c880
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 0x402b46
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.00403b50
test edi, edi
je 0x402b98
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
jne 0x402b98
mov eax, dword [edi + 4]
test eax, eax
je 0x402b73
push eax
call fcn.00424cdb
add esp, 4
mov eax, dword [edi + 0x20]
test eax, eax
je 0x402b83
push eax
call fcn.00424cdb
add esp, 4
lea eax, [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x28
push edi
call fcn.0041c8b0
add esp, 8
cmp byte [ebx + 0xd], 0
je 0x402ba3
mov ecx, dword [ebx + 0x10]
jmp 0x402bb4
mov ecx, dword [ebx + 8]
test ecx, ecx
je 0x402baf
mov ecx, dword [ecx + 0x20]
jmp 0x402bb4
mov ecx, 0x448d6c
lea eax, [ebx + 0x5c]
push eax
push ecx
push dword [0x45036c]
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.004254b8
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.FalconString.0
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x402c70
sub esi, ecx
sar esi, 1
mov dword [ebp - 0x34], esi
je 0x402cb9
push 0x28
mov word [ebp - 0x3c], ax
call fcn.0041c880
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 0x402cc1
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.00403b50
test edi, edi
je 0x402d13
or eax, 0xffffffff
lock xadd dword [edi], eax
dec eax
jne 0x402d13
mov eax, dword [edi + 4]
test eax, eax
je 0x402cee
push eax
call fcn.00424cdb
add esp, 4
mov eax, dword [edi + 0x20]
test eax, eax
je 0x402cfe
push eax
call fcn.00424cdb
add esp, 4
lea eax, [edi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x28
push edi
call fcn.0041c8b0
add esp, 8
movzx eax, word [0x450370]
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 [0x45035c]
mov esi, eax
push esi
push ecx
push dword [ebp - 0x18]
call edi
cmp esi, 0x401fe0
je 0x402d5c
push 0x401fe0
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.0041c670
mov esp, ebp
pop ebp
ret 8