Function at 0x4870e0
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x18
mov edx, dword [esp + 0x28]
push ebx
push ebp
push esi
cmp word [edx], 0
push edi
mov edi, ecx
mov dword [esp + 0x14], edi
lea ecx, [edi + 0x1c]
mov dword [esp + 0x20], ecx
je 0x48710d
mov eax, dword [ecx]
cmp word [eax], 0
jne 0x48710d
mov byte [esp + 0x38], 1
jmp 0x487116
mov byte [esp + 0x38], 0
mov dword [esp + 0x20], ecx
mov dword [ecx], edx
lea ecx, [edx + 2]
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x487120
mov eax, dword [esp + 0x34]
sub edx, ecx
mov ebp, dword [esp + 0x30]
mov esi, 1
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x2c]
sar edx, 1
mov dword [edi + 4], eax
mov eax, dword [edi]
mov dword [edi + 0x20], edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x2c], 0
mov dword [edi], 0
xor eax, eax
mov edx, 0x4dc810
mov ecx, ebp
mov dword [esp + 0x34], eax
call fcn.00481c80
mov ebx, eax
test ebx, ebx
je 0x487283
nop dword [eax]
cmp ebx, dword [esp + 0x30]
jbe 0x4871a9
movzx eax, word [ebx - 2]
cmp eax, 0x20
je 0x4871a9
cmp eax, 9
je 0x4871a9
lea esi, [ebx + 8]
jmp 0x487218
push 2
lea esi, [ebx + 8]
push 0x4dc81c
push esi
call fcn.0049f522
add esp, 0xc
test eax, eax
je 0x48726c
push 3
push 0x4dc824
push esi
call fcn.0049f522
add esp, 0xc
test eax, eax
je 0x48725d
push 5
push 0x4db248
push esi
call fcn.0049f522
add esp, 0xc
test eax, eax
je 0x48724e
push 3
push 0x4d50b4
push esi
call fcn.0049f522
add esp, 0xc
test eax, eax
je 0x48723f
push 5
push 0x4d8304
push esi
call fcn.0049f522
add esp, 0xc
test eax, eax
je 0x487230
mov edx, 0x4dc810
mov ecx, esi
call fcn.00481c80
mov ebx, eax
test ebx, ebx
jne 0x487190
jmp 0x48727f
mov dword [esp + 0x34], 8
mov eax, 0xa
jmp 0x487279
mov dword [esp + 0x34], 0x20
mov eax, 6
jmp 0x487279
mov dword [esp + 0x34], 0x10
mov eax, 0xa
jmp 0x487279
mov dword [esp + 0x34], 4
mov eax, 6
jmp 0x487279
mov dword [esp + 0x34], 2
mov eax, 4
add eax, esi
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x3c]
mov eax, esi
sub eax, 2
je 0x48745b
sub eax, 2
je 0x48744f
movzx eax, word [ebp]
cmp eax, 0x20
je 0x4872a5
cmp eax, 9
jne 0x4872aa
add ebp, 2
jmp 0x487297
cmp ebx, ebp
jne 0x4872c1
cmp esi, 1
je 0x48748a
mov edi, 0x4cee98
jmp 0x487369
test ebx, ebx
je 0x487367
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x48732d
push esi
push ebx
call fcn.0049cf2f
mov ecx, dword [edi + 0xc]
sub eax, ebp
sar eax, 1
add esp, 8
inc eax
cmp eax, ecx
jbe 0x48732d
cmp ecx, 0x400
jae 0x4872fb
mov dword [edi + 0xc], 0x400
mov ecx, 0x400
cmp ecx, eax
jae 0x487309
nop
add ecx, ecx
cmp ecx, eax
jb 0x487300
mov dword [edi + 0xc], ecx
push dword [edi + 8]
call fcn.0049f4a2
mov eax, dword [edi + 0xc]
add esp, 4
add eax, eax
push eax
call fcn.0049f4bd
add esp, 4
mov dword [edi + 8], eax
test eax, eax
je 0x487560
mov eax, dword [edi + 8]
mov ecx, ebx
sub ecx, ebp
sar ecx, 1
dec ecx
lea edi, [eax + esi*2]
mov dword [esp + 0x18], ecx
lea esi, [ecx + ecx]
push esi
push ebp
push edi
call fcn.0049cfe0
mov edx, dword [esp + 0x24]
xor eax, eax
mov word [esi + edi], ax
add esp, 0xc
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x3c]
inc eax
add eax, edx
mov dword [esp + 0x2c], eax
jmp 0x48736d
mov edi, ebp
mov edx, dword [esp + 0x18]
lea eax, [esi - 1]
cmp eax, 0x1f
ja case.0x487380.2
movzx eax, byte [eax + 0x487588]
jmp dword [eax*4 + 0x487574]
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x10], edi
test ebx, ebx
je 0x48739e
mov edi, edx
mov dword [ecx + 0x18], edi
mov edi, ecx
jmp 0x487488
lea edx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4873a1
sub edi, edx
sar edi, 1
mov dword [ecx + 0x18], edi
mov edi, ecx
jmp 0x487488
cmp word [edi], 0
je 0x4873e7
mov esi, dword [0x4e9efc]
test esi, esi
je 0x4873e7
nop word [eax + eax]
push edi
push dword [esi + 4]
call fcn.0049f3a1
add esp, 8
test eax, eax
je 0x4873fe
mov esi, dword [esi + 0x10]
test esi, esi
jne 0x4873d0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x34], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x14
mov edi, dword [esp + 0x14]
mov dword [edi + 0x34], esi
test esi, esi
je 0x4873f2
mov esi, dword [esp + 0x3c]
jmp 0x487488
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 4]
mov dword [ecx + 0x38], edi
cmp dword [eax + 8], 4
je 0x487439
push 0x5c
push edi
call fcn.0049cf2f
add esp, 8
test eax, eax
jne 0x487439
mov edi, dword [esp + 0x14]
mov al, 1
mov byte [edi + 0x3c], al
jmp 0x487488
mov edi, dword [esp + 0x14]
xor al, al
mov byte [edi + 0x3c], al
jmp 0x487488
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x14], edi
mov edi, ecx
jmp 0x487488
mov ecx, ebp
call fcn.004820d0
mov dword [edi + 0x30], eax
jmp 0x487488
mov ecx, ebp
call fcn.004820d0
mov dword [edi + 0x2c], eax
cmp eax, 0xffff
je 0x487488
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
jne 0x487488
mov dword [edi + 0x2c], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x14
mov edi, dword [esp + 0x14]
or dword [edi], esi
mov eax, dword [esp + 0x34]
mov esi, eax
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x3c], esi
test eax, eax
jne 0x487170
mov eax, dword [edi]
cmp eax, dword [esp + 0x24]
jne 0x4874b3
cmp byte [esp + 0x38], 0
je 0x487551
mov ecx, dword [edi + 0x64]
test ecx, ecx
je 0x487551
test eax, eax
je 0x487551
test al, 1
jne 0x4874d6
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
cmp word [eax], 0
je 0x4874ed
push 0x7fff
lea esi, [edi + 0x6c]
push esi
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextW]
test eax, eax
jne 0x4874ed
mov word [esi], ax
test byte [edi], 4
mov esi, dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
je 0x487501
lea eax, [edi + 0x68]
push eax
push dword [edi + 0x64]
call esi
test byte [edi], 0x20
je 0x487537
lea eax, [esp + 0x30]
push eax
push dword [edi + 0x64]
call esi
test eax, eax
je 0x487537
movzx eax, byte [edi + 0x3c]
lea edx, [edi + 0x1026c]
push eax
push ecx
mov ecx, dword [esp + 0x38]
call fcn.00429030
add esp, 8
test eax, eax
jne 0x487537
mov word [edi + 0x1026c], ax
test byte [edi], 8
je 0x487551
push 0x101
lea eax, [edi + 0x1006a]
push eax
push dword [edi + 0x64]
call dword [sym.imp.USER32.dll_GetClassNameW]
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x14
mov dword [edi + 0xc], 0
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x18
ret 0x14