Function at 0x4021e0
Capabilities:
Get graphical window text

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x408da1
push eax
mov dword fs:[0], esp
sub esp, 0x26c
push ebx
push ebp
push esi
push edi
call fcn.004011f0
test eax, eax
mov dword [0x40d728], eax
jne 0x4025fd
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x179]
mov byte [esp + 0x178], 0
push 0x104
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x17c]
mov dword [esp + 0x30], esi
push eax
push esi
call dword [sym.imp.USER32.dll_GetClassNameA]
lea ecx, [esp + 0x178]
push str.TXGuiFoundation
push ecx
call fcn.004048d0
add esp, 8
test eax, eax
je 0x4025fd
lea edx, [esp + 0x30]
push edx
push esi
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x75]
mov byte [esp + 0x74], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov esi, dword [sym.imp.USER32.dll_GetDlgItem]
push 0x3eb
stosb byte es:[edi], al
mov edi, dword [esp + 0x290]
push edi
call esi
mov ebp, eax
push 0x3e9
push edi
mov dword [esp + 0x20], ebp
call esi
mov dword [esp + 0x34], eax
lea eax, [esp + 0x74]
push 0x104
push eax
push ebp
call dword [sym.imp.USER32.dll_GetWindowTextA]
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x3c], cl
lea ecx, [esp + 0x3c]
mov dword [esp + 0x18], 0
call fcn.00403320
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x3c]
push ebx
call fcn.00403510
test al, al
je 0x40231f
mov edi, dword [esp + 0x3c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x74]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x3c]
call fcn.004034f0
xor edi, edi
mov dword [esp + 0x284], 0
xor esi, esi
mov eax, dword [0x40d704]
test eax, eax
je 0x402391
mov ecx, dword [0x40d708]
mov edx, ecx
sub edx, eax
sar edx, 4
cmp edi, edx
jae 0x402391
sub ecx, eax
sar ecx, 4
cmp ecx, edi
ja 0x402360
mov ecx, 0x40d700
call fcn.00403370
mov eax, dword [0x40d704]
mov ecx, dword [esi + eax + 8]
mov eax, dword [esi + eax + 4]
test eax, eax
jne 0x402371
mov eax, 0x40915c
push ecx
push eax
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x40]
push eax
push 0
call fcn.00403c50
test eax, eax
jne 0x40238b
inc dword [esp + 0x14]
inc edi
add esi, 0x10
jmp 0x40232e
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov edi, dword [sym.imp.USER32.dll_SetWindowTextA]
not ecx
dec ecx
je 0x4023af
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x4023dd
mov ecx, dword [esp + 0x30]
lea edx, [esp + 0x48]
push ecx
push edx
call fcn.00401290
mov eax, dword [esp + 0x54]
add esp, 8
test eax, eax
jne 0x4023ce
mov eax, 0x40915c
push eax
push ebp
call edi
push 1
lea ecx, [esp + 0x4c]
call fcn.00403320
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call esi
push 1
mov ebx, eax
call esi
mov ecx, eax
mov eax, ebx
cdq
sub eax, edx
push 0x40d958
mov ebp, eax
mov eax, ecx
cdq
sub eax, edx
mov ebx, eax
mov eax, dword [esp + 0x38]
sar ebp, 1
sar ebx, 1
push eax
sub ebp, 0x91
sub ebx, 0x70
call edi
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x20], cl
lea ecx, [esp + 0x20]
call fcn.00403320
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x74]
lea edx, [esp + 0x74]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x18]
push 0x104
push edx
push eax
mov byte [esp + 0x290], 1
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea edi, [esp + 0x74]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
lea ecx, [esp + 0x20]
push edi
mov dword [esp + 0x20], edi
call fcn.00403510
test al, al
je 0x40249d
mov ecx, edi
mov edi, dword [esp + 0x20]
mov edx, ecx
lea esi, [esp + 0x74]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov byte [ecx + eax], 0
xor esi, esi
xor edi, edi
mov dword [esp + 0x14], edi
mov eax, dword [0x40d704]
test eax, eax
je 0x402540
mov ecx, dword [0x40d708]
mov edx, ecx
sub edx, eax
sar edx, 4
cmp dword [esp + 0x14], edx
jae 0x402540
mov edx, dword [esp + 0x14]
sub ecx, eax
sar ecx, 4
cmp ecx, edx
jbe 0x402508
mov ecx, dword [edi + eax + 8]
mov eax, dword [edi + eax + 4]
test eax, eax
jne 0x4024e3
mov eax, 0x40915c
push ecx
push eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x24]
push eax
push 0
call fcn.00403c50
test eax, eax
jne 0x4024fa
inc esi
mov ecx, dword [esp + 0x14]
inc ecx
add edi, 0x10
mov dword [esp + 0x14], ecx
jmp 0x4024a5
lea ecx, [esp + 0x13]
push ecx
push str.invalid_vector_T__subscript
lea ecx, [esp + 0x50]
call fcn.00402e00
lea edx, [esp + 0x48]
lea ecx, [esp + 0x58]
push edx
mov byte [esp + 0x288], 2
call fcn.00402af0
lea eax, [esp + 0x58]
push 0x409900
push eax
call fcn.00404950
test esi, esi
je 0x402549
cmp esi, 1
jne 0x4025a7
mov edi, dword [esp + 0x28c]
push 0xffffffffffffffec
push edi
call dword [sym.imp.USER32.dll_GetWindowLongA]
or al, 0x80
push eax
push 0xffffffffffffffec
push edi
call dword [sym.imp.USER32.dll_SetWindowLongA]
push 1
push 0xdf
push 0x122
push ebx
push ebp
push edi
call dword [sym.imp.USER32.dll_MoveWindow]
push 1
push 0xdf
push 0x122
push ebx
push ebp
push 0xffffffffffffffff
push edi
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.004015e0
add esp, 4
push 5
push edi
call dword [sym.imp.USER32.dll_ShowWindow]
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x4025cb
mov al, byte [ecx - 1]
test al, al
je 0x4025c1
cmp al, 0xff
je 0x4025c1
dec al
mov byte [ecx - 1], al
jmp 0x4025cb
dec ecx
push ecx
call fcn.00403d30
add esp, 4
mov ecx, dword [esp + 0x3c]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
je 0x4025fd
mov al, byte [ecx - 1]
test al, al
je 0x4025f3
cmp al, 0xff
je 0x4025f3
dec al
mov byte [ecx - 1], al
jmp 0x4025fd
dec ecx
push ecx
call fcn.00403d30
add esp, 4
mov ecx, dword [esp + 0x27c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x278
ret