Function at 0x405254
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff394
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x10]
push eax
mov esi, edx
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
lea ecx, [ebp - 0xc]
call fcn.004054b8
mov ebx, eax
lea eax, [ebp - 0x3c]
push eax
push esi
call sub.USER32.DLL_GetWindowRect
lea edx, [ebp - 0x4c]
push edx
push esi
call sub.USER32.DLL_GetClientRect
mov ecx, dword [ebp - 0x34]
sub ecx, dword [ebp - 0x3c]
inc ecx
sub ecx, dword [ebp - 0x44]
mov dword [ebp - 0x14], ecx
mov eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x38]
inc eax
sub eax, dword [ebp - 0x40]
test bl, bl
mov dword [ebp - 0x18], eax
je 0x4052eb
cmp byte [ebp + 8], 0
jne 0x4052eb
mov eax, dword [ebp - 0x44]
mov ecx, 0x64
imul dword [ebp - 0xc]
cdq
idiv ecx
mov ecx, eax
mov eax, dword [ebp - 0x40]
imul dword [ebp - 0x10]
cdq
mov edi, 0x64
idiv edi
add ecx, dword [ebp - 0x14]
add eax, dword [ebp - 0x18]
push 0x206
push eax
push ecx
push 0
push 0
push 0
push esi
call sub.USER32.DLL_SetWindowPos
cmp byte [ebp + 8], 0
jne 0x405329
push 0x400
lea eax, [ebp - 0x44c]
push eax
push esi
call sub.USER32.DLL_GetWindowTextA
push 1
push dword [ebp - 8]
lea ecx, [ebp - 0x44c]
lea edx, [ebp - 0x44c]
mov eax, dword [ebp - 4]
call fcn.00405074
lea edx, [ebp - 0x44c]
push edx
push esi
call sub.USER32.DLL_SetWindowTextA
push 8
call sub.USER32.DLL_GetSystemMetrics
sub dword [ebp - 0x18], eax
push 5
push esi
call sub.USER32.DLL_GetWindow
mov edi, eax
mov dword [ebp - 0x1c], edi
xor esi, esi
jmp 0x40549e
push 0x400
lea eax, [ebp - 0x84c]
push eax
push edi
call sub.USER32.DLL_GetWindowTextA
cmp byte [ebp - 0x84c], 0
je 0x405388
push 1
push dword [ebp - 8]
lea ecx, [ebp - 0x84c]
lea edx, [ebp - 0x84c]
mov eax, dword [ebp - 4]
call fcn.00405074
lea edx, [ebp - 0x84c]
push edx
push edi
call sub.USER32.DLL_SetWindowTextA
test bl, bl
je 0x40548e
lea ecx, [ebp - 0x85c]
push ecx
push edi
call sub.USER32.DLL_GetWindowRect
mov ecx, dword [ebp - 0x85c]
mov eax, ecx
sub eax, dword [ebp - 0x3c]
mov edx, dword [ebp - 0x14]
sar edx, 1
jns 0x4053b2
adc edx, 0
sub eax, edx
imul dword [ebp - 0xc]
cdq
push ecx
mov ecx, 0x64
idiv ecx
pop ecx
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x858]
sub eax, dword [ebp - 0x38]
sub eax, dword [ebp - 0x18]
imul dword [ebp - 0x10]
cdq
push ecx
mov ecx, 0x64
idiv ecx
pop ecx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x854]
sub eax, ecx
mov ecx, 0x64
inc eax
imul dword [ebp - 0xc]
cdq
idiv ecx
mov dword [ebp - 0x28], eax
mov ecx, 0x64
mov eax, dword [ebp - 0x850]
sub eax, dword [ebp - 0x858]
inc eax
imul dword [ebp - 0x10]
cdq
idiv ecx
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0xc5c]
push 0x400
push eax
push edi
call sub.USER32.DLL_GetClassNameA
mov edx, str.COMBOBOX
lea eax, [ebp - 0xc5c]
call fcn.00403e34
test eax, eax
jne 0x405475
push 0xfffffffffffffff0
push edi
call sub.USER32.DLL_GetWindowLongA
and eax, 3
dec eax
je 0x405475
lea ecx, [ebp - 0xc6c]
push ecx
push 0
push 0x152
push edi
call sub.USER32.DLL_SendMessageA
mov eax, dword [ebp - 0xc60]
mov ecx, 0x64
sub eax, dword [ebp - 0xc68]
inc eax
imul dword [ebp - 0x10]
cdq
idiv ecx
add dword [ebp - 0x2c], eax
push 0x204
push dword [ebp - 0x2c]
push dword [ebp - 0x28]
push dword [ebp - 0x24]
push dword [ebp - 0x20]
push 0
push edi
call sub.USER32.DLL_SetWindowPos
push 2
push edi
call sub.USER32.DLL_GetWindow
mov edi, eax
cmp edi, dword [ebp - 0x1c]
je 0x4054ae
inc esi
test edi, edi
je 0x4054ae
cmp esi, 0x200
jl 0x405347
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4