Function at 0x4a2200
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push edi
mov edi, ecx
test byte [edi + 0x2c], 0x60
mov dword [ebp - 0xc], edi
je 0x4a260f
cmp word [ebp + 8], 8
je 0x4a260f
mov eax, dword [0x5427f0]
mov edx, dword [eax + 0xc]
push ebx
push esi
mov ecx, 0x5427f0
call edx
mov ebx, eax
mov eax, dword [edi + 4]
add edi, 4
add ebx, 0x10
push eax
mov dword [ebp - 4], ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov edx, dword [ebx - 8]
mov esi, eax
inc esi
mov ecx, 1
sub ecx, dword [ebx - 4]
sub edx, esi
or ecx, edx
jge 0x4a2267
push esi
lea ecx, [ebp - 4]
call fcn.00462660
mov ebx, dword [ebp - 4]
mov eax, dword [edi]
push esi
push ebx
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.004eb0bf
add esp, 8
test eax, eax
jl 0x4a2593
cmp eax, dword [ebx - 8]
jg 0x4a2593
mov ecx, dword [ebp - 4]
xor edx, edx
push edx
mov dword [ecx - 0xc], eax
push edx
mov word [ecx + eax*2], dx
mov eax, dword [edi]
push 0x140
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0xc]
movzx ebx, ax
shr eax, 0x10
mov esi, eax
mov eax, dword [ecx + 0x2c]
test al, al
jns 0x4a2369
cmp word [ebp + 8], 0x2d
jne 0x4a2369
test al, 0x40
je 0x4a2305
mov edx, dword [ebp - 4]
push edx
call fcn.004ecd7e
fldz
fcomp st(1)
add esp, 4
mov dword [ebp + 8], 1
fnstsw ax
test ah, 0x41
je 0x4a22f6
mov dword [ebp + 8], 0
sub esp, 8
fchs
fstp qword [esp]
push 0x5131f4
jmp 0x4a2320
mov ecx, dword [ebp - 4]
push ecx
call fcn.004eb09e
xor edx, edx
test eax, eax
setl dl
neg eax
push eax
push 0x5131ec
mov dword [ebp + 8], edx
lea eax, [ebp - 4]
push eax
call fcn.0046cc40
mov ecx, dword [ebp - 4]
mov edx, dword [edi]
add esp, 0x10
push ecx
push edx
call dword [sym.imp.USER32.dll_SetWindowTextW]
cmp dword [ebp + 8], 0
je 0x4a2347
lea ecx, [esi - 1]
lea eax, [ebx - 1]
jmp 0x4a234d
lea ecx, [esi + 1]
lea eax, [ebx + 1]
push ecx
push eax
mov ecx, edi
call fcn.004a0b60
lea ecx, [ebp - 4]
call fcn.00492ef0
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 4
mov eax, dword [ebp - 4]
mov eax, dword [eax - 0xc]
sub eax, esi
push eax
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 4]
call fcn.004a1200
mov edx, dword [ebp + 8]
push eax
push edx
push ebx
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 4]
call fcn.0048e4f0
push eax
lea ecx, [ebp - 0x28]
push ecx
call fcn.004a15b0
add esp, 0xc
push eax
lea edx, [ebp - 8]
push edx
call fcn.004a1530
mov eax, dword [ebp - 0x28]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a23c9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a23e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a2407
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebp - 8]
mov eax, dword [ebx - 0xc]
xor esi, esi
or edi, 0xffffffff
cmp eax, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x24], edi
mov dword [ebp + 8], edi
jle 0x4a25c6
test esi, esi
jl 0x4a2593
cmp esi, eax
jg 0x4a2593
movzx ecx, word [ebx + esi*2]
movzx eax, cx
add eax, 0xffffffd3
cmp eax, 0x11
ja case.0x4a2458.47
movzx edx, byte [eax + 0x4a2634]
jmp dword [edx*4 + 0x4a261c]
mov dword [ebp - 0x28], esi
jmp 0x4a24d3
mov eax, dword [ebp - 0xc]
test dword [eax + 0x2c], 0x100
je 0x4a25ab
inc dword [ebp - 0x10]
mov dword [ebp - 0x20], esi
jmp 0x4a24d3
mov ecx, dword [ebp - 0xc]
test dword [ecx + 0x2c], 0x100
je 0x4a25ab
inc dword [ebp - 0x14]
mov dword [ebp - 0x24], esi
jmp 0x4a24d3
mov edx, dword [ebp - 0xc]
test dword [edx + 0x2c], 0x100
je 0x4a25ab
inc dword [ebp - 0x18]
mov edi, esi
jmp 0x4a24d3
mov eax, dword [ebp - 0xc]
test byte [eax + 0x2c], 0x40
je 0x4a25ab
inc dword [ebp - 0x1c]
jmp 0x4a24d3
push ecx
call fcn.004eccc9
add esp, 4
test eax, eax
je 0x4a2549
cmp dword [ebp + 8], 0
jge 0x4a24d3
mov dword [ebp + 8], esi
mov eax, 1
cmp dword [ebp - 0x10], eax
jg 0x4a2549
cmp dword [ebp - 0x14], eax
jg 0x4a2549
cmp dword [ebp - 0x18], eax
jg 0x4a2549
cmp dword [ebp - 0x1c], eax
jg 0x4a2549
add esi, eax
mov eax, dword [ebx - 0xc]
cmp esi, eax
jl 0x4a2432
mov eax, dword [ebp - 0x20]
cmp eax, 0xffffffff
je 0x4a250a
cmp edi, 0xffffffff
je 0x4a250a
cmp eax, edi
jg 0x4a2549
mov eax, dword [ebp - 0x24]
cmp eax, 0xffffffff
je 0x4a251b
cmp edi, 0xffffffff
je 0x4a251b
cmp eax, edi
jg 0x4a2549
cmp dword [ebp + 8], 0xffffffff
je 0x4a25c6
mov ecx, dword [ebp - 0x20]
mov eax, dword [ebp + 8]
cmp ecx, 0xffffffff
je 0x4a2534
cmp ecx, eax
jg 0x4a2549
mov ecx, dword [ebp - 0x24]
cmp ecx, 0xffffffff
je 0x4a2540
cmp ecx, eax
jg 0x4a2549
cmp edi, 0xffffffff
je 0x4a259d
cmp edi, eax
jle 0x4a259d
lea eax, [ebx - 0x10]
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a2565
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a235e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 4
push 0x80070057
call fcn.0045f890
cmp dword [ebp - 0x28], 0xffffffff
je 0x4a25c6
mov ecx, dword [ebp + 8]
cmp dword [ebp - 0x28], ecx
jle 0x4a25c6
lea ecx, [ebp - 8]
call fcn.00492ef0
lea ecx, [ebp - 4]
call fcn.00492ef0
pop esi
pop ebx
xor eax, eax
pop edi
mov esp, ebp
pop ebp
ret 4
lea eax, [ebx - 0x10]
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4a25e2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [ebp - 4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4a2601
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop esi
pop ebx
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret 4
mov eax, 1
pop edi
mov esp, ebp
pop ebp
ret 4