Function at 0x407bf0
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x40
mov eax, dword [0x41caf8]
xor eax, esp
mov dword [esp + 0x3c], eax
push ebx
mov ebx, dword [esp + 0x48]
push ebp
push esi
push edi
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowDC]
push dword [ebx + 4]
mov esi, eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov edi, eax
lea ecx, [edi*2 + 2]
push ecx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
xorps xmm0, xmm0
mov ebp, eax
mov dword [esp + 0x18], ebp
movups xmmword [esp + 0x3c], xmm0
movups xmmword [esp + 0x2c], xmm0
call fcn.004133b0
lea eax, [esp + 0x2c]
push eax
push dword [ebx + 4]
fstp qword [esp + 0x18]
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x2c]
sub dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
sub dword [esp + 0x38], eax
lea eax, [edi + 1]
push eax
push ebp
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowTextW]
push dword [ebx + 0x2c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x400
lea eax, [esp + 0x40]
push eax
push edi
push ebp
push esi
call dword [sym.imp.USER32.dll_DrawTextW]
mov eax, dword [ebx + 8]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, dword [0x41d270]
jne 0x407cf0
push 0xfffffffffffffff0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0xffffffbf
je 0x407d7c
test edi, edi
je 0x407d7c
xorps xmm0, xmm0
movups xmmword [esp + 0x1c], xmm0
movsd xmm0, qword [esp + 0x10]
mulsd xmm0, qword [0x4173f8]
cvttsd2si eax, xmm0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x1c]
push eax
push 0
push 0x1604
push dword [ebx + 4]
call ebp
mov edi, dword [ebx + 8]
sub esp, 8
mov esi, edi
sub esi, dword [0x41d274]
movd xmm0, dword [esi*4 + 0x41c3b4]
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [esp + 0x18]
movsd qword [esp + 0x24], xmm0
fld qword [esp + 0x24]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
movd xmm0, dword [esi*4 + 0x41c3f4]
cvtdq2pd xmm0, xmm0
fstp qword [esp + 0x24]
mulsd xmm0, qword [esp + 0x18]
cvttsd2si ebp, qword [esp + 0x24]
movsd qword [esp + 0x24], xmm0
fld qword [esp + 0x24]
fstp qword [esp]
call sub.api_ms_win_crt_math_l1_1_0.dll_floor
mov edx, dword [ebx + 4]
add esp, 8
fstp qword [esp + 0x1c]
cvttsd2si ecx, qword [esp + 0x1c]
push 6
cmp edi, dword [0x41d26c]
jge 0x407da3
mov eax, dword [esp + 0x4c]
add eax, ecx
push eax
mov eax, dword [esp + 0x4c]
add eax, ebp
push eax
jmp 0x407da5
movsd xmm0, qword [esp + 0x10]
mulsd xmm0, qword [0x417400]
push 6
cvttsd2si eax, xmm0
push eax
push eax
push 0
push 0
push 0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_SetWindowPos]
jmp 0x407db8
push ecx
push ebp
push 0
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ebp, dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebx + 8]
cmp eax, dword [0x41d25c]
jne 0x407dd1
push 0
push 0
push 0xb1
push dword [ebx + 4]
call ebp
push 1
push 0
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [ebx + 4]
call dword [sym.imp.USER32.dll_UpdateWindow]
push dword [esp + 0x18]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0x50]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00414d65
add esp, 0x40
ret