Function at 0x51e3f0
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x30
push ebx
mov ebx, ecx
push ebp
mov dword [esp + 0x24], ebx
call fcn.005366c0
mov ebp, eax
test ebp, ebp
mov dword [esp + 0x1c], ebp
jne 0x51e417
xor ecx, ecx
call fcn.0041c8e0
pop ebp
pop ebx
add esp, 0x30
ret
push esi
push edi
mov edi, dword [ebp + 0xbb4]
mov ecx, edi
mov dword [esp + 0x20], edi
call fcn.004dbea0
test eax, eax
jne 0x51e43d
xor ecx, ecx
call fcn.0041c8e0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
call dword [sym.imp.USER32.dll_GetFocus]
mov esi, eax
cmp esi, dword [ebp + 0x864]
mov dword [esp + 0x30], esi
je 0x51e459
cmp esi, dword [ebp + 0x868]
jne 0x51e42e
mov edx, dword [ebp + 0x894]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ecx, esi
call fcn.004743d0
mov eax, dword [esp + 0x14]
xor ecx, ecx
cmp eax, ecx
mov dword [esp + 0x28], eax
jge 0x51e486
mov dword [esp + 0x14], ecx
mov dword [esp + 0x28], ecx
lea edx, [esp + 0x18]
push edx
mov edx, dword [ebp + 0x894]
mov ecx, esi
call fcn.00474230
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x51e4f3
mov eax, dword [edi + 0x1fac]
test eax, eax
jne 0x51e4f3
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0x5994c8
push 0x3e6
push 0xd
push esi
call edi
test eax, eax
mov dword [esp + 0x18], eax
jle 0x51e42e
mov ecx, 0x5994c8
mov byte [eax + 0x5994c8], 0
call fcn.0051e010
test eax, eax
je 0x51e502
push 0x574b10
push 0
push 0xc
push esi
call edi
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
mov ecx, ebx
call fcn.0051e090
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
mov esi, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jge 0x51e527
mov edi, edi
mov al, byte [esi + 0x5994c8]
test al, al
je 0x51e523
cmp al, 0x20
je 0x51e523
inc esi
cmp esi, ecx
jl 0x51e510
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x14]
mov byte [esi + 0x5994c8], 0
cmp byte [eax + 0x5994c8], 0x20
jne 0x51e553
dec eax
mov dword [esp + 0x14], eax
js 0x51e42e
cmp byte [eax + 0x5994c8], 0x20
je 0x51e42e
test eax, eax
jle 0x51e569
cmp byte [eax + 0x5994c8], 0x20
je 0x51e565
dec eax
test eax, eax
jg 0x51e557
mov dword [esp + 0x14], eax
cmp byte [eax + 0x5994c8], 0x20
jne 0x51e577
inc eax
mov dword [esp + 0x14], eax
xor edi, edi
cmp eax, esi
mov edx, esi
jg 0x51e5b1
nop
mov cl, byte [edx + 0x5994c8]
cmp cl, 0x28
jne 0x51e58c
inc edi
cmp cl, 0x29
jne 0x51e592
dec edi
test edi, edi
jne 0x51e59b
cmp cl, 0x2c
je 0x51e5a2
dec edx
cmp edx, eax
jge 0x51e580
jmp 0x51e5ad
cmp edx, esi
je 0x51e5ad
lea eax, [edx + 1]
mov dword [esp + 0x14], eax
cmp eax, esi
je 0x51e5bf
cmp byte [eax + 0x5994c8], 0x3d
jne 0x51e5bf
inc eax
mov dword [esp + 0x14], eax
mov edx, dword [ebp + 0xbb4]
lea ecx, [eax + 0x5994c8]
mov byte [esp + 0x13], 0
call fcn.004f8280
test al, al
mov ecx, dword [esp + 0x14]
je 0x51e60a
mov al, byte [ecx + 0x5994c8]
cmp al, 0x24
je 0x51e60a
cmp al, 0x25
je 0x51e60a
inc ecx
mov byte [esp + 0x13], al
mov al, byte [ecx + 0x5994c8]
test al, al
mov dword [esp + 0x14], ecx
je 0x51e42e
cmp al, 0x20
je 0x51e42e
lea edi, [ecx + 0x5994c8]
mov eax, edi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x51e615
sub eax, esi
cmp eax, 0x5a
ja 0x51e42e
mov esi, dword [esp + 0x20]
mov al, byte [esi + 0x1fb0]
test al, al
lea ebx, [esi + 0x1fb0]
mov ebp, 1
je 0x51e6c8
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51e650
sub eax, edx
push eax
push ebx
push edi
call fcn.00572b89
add esp, 0xc
test eax, eax
je 0x51e6f9
cmp byte [ebx], 0
mov ecx, dword [esp + 0x14]
je 0x51e6c8
push 0x57568c
push ebx
call fcn.00564fb0
add esp, 8
test eax, eax
je 0x51e6c4
mov eax, dword [esp + 0x14]
lea ecx, [eax + 0x5994c8]
push 0x57568c
push ecx
call fcn.00564fb0
add esp, 8
test eax, eax
jne 0x51e6c4
mov edx, dword [esp + 0x14]
push ebp
push eax
lea edx, [edx + 0x5994c8]
mov ecx, ebx
call fcn.00535d60
test eax, eax
je 0x51e6c4
mov al, byte [ebx]
cmp al, 0x24
je 0x51e6c4
cmp al, 0x25
jne 0x51e6f9
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
sub edx, ecx
push edx
lea eax, [ecx + 0x5994c8]
push eax
push ebx
call fcn.005635f0
mov ecx, dword [esp + 0x34]
sub ecx, dword [esp + 0x20]
mov byte [ecx + esi + 0x1fb0], 0
mov al, byte [ebx]
add esp, 0xc
test al, al
je 0x51e42e
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov byte [edx + 0x5994c8], 0
jge 0x51e715
mov byte [eax + 0x5994c8], 0x20
mov al, byte [ebx]
cmp al, 0x24
je 0x51ed62
cmp al, 0x25
je 0x51ed62
cmp al, 0x23
jne 0x51e90e
mov cl, byte [esi + 0x1fb1]
test cl, cl
je 0x51ed62
cmp cl, 0x20
je 0x51ed62
cmp al, al
jne 0x51e90e
mov al, cl
test al, al
je 0x51e90e
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
xor esi, esi
push esi
lea eax, [esp + 0x38]
push 0x574f08
push eax
mov dword [esp + 0x28], esi
call edi
add esp, 0xc
push str.mirc.ini
push 0x3e7
push 0x59b078
push 0x574b10
lea edx, [esp + 0x44]
mov ecx, str.chanfolder
call fcn.004ac570
mov al, byte [0x59b078]
test al, al
je 0x51e80e
nop
push 0x5990e0
mov edx, ebp
mov ecx, 0x59b078
call fcn.00425050
mov al, byte [0x5990e0]
test al, al
je 0x51e7d2
mov ecx, dword [esp + 0x1c]
push 0
mov edx, 0x5990e0
call fcn.004c2560
test eax, eax
je 0x51e80e
mov dword [esp + 0x1c], eax
inc esi
push esi
lea ecx, [esp + 0x38]
push 0x574f08
push ecx
call edi
add esp, 0xc
push str.mirc.ini
push 0x3e7
push 0x59b078
push 0x574b10
lea edx, [esp + 0x44]
mov ecx, str.chanfolder
call fcn.004ac570
mov al, byte [0x59b078]
test al, al
jne 0x51e7a0
mov esi, dword [0x5a1af8]
test esi, esi
mov edi, dword [esp + 0x24]
je 0x51e84c
mov ecx, dword [esp + 0x1c]
cmp dword [esi + 0x700], ebp
jne 0x51e840
cmp esi, edi
je 0x51e840
push 0
lea edx, [esi + 8]
call fcn.004c2560
test eax, eax
je 0x51e84c
mov ecx, eax
mov dword [esp + 0x1c], ecx
mov esi, dword [esi + 0xd84]
test esi, esi
jne 0x51e820
jmp 0x51e850
mov ecx, dword [esp + 0x1c]
push 0
xor edx, edx
call fcn.00517550
cmp dword [edi + 0x700], ebp
mov dword [esp + 0x1c], eax
jne 0x51e88b
push 0
lea edx, [edi + 8]
xor ecx, ecx
call fcn.004c2560
test eax, eax
je 0x51e887
mov ecx, dword [esp + 0x1c]
push eax
mov edx, ecx
call fcn.004c27b0
mov dword [esp + 0x1c], eax
jmp 0x51e88b
mov eax, dword [esp + 0x1c]
mov ebp, dword [esp + 0x20]
xor edi, edi
test eax, eax
mov esi, eax
je 0x51e8b2
mov ecx, dword [ebp + 0x1fa8]
lea ecx, [ecx]
cmp edi, ecx
je 0x51e8ae
mov esi, dword [esi + 0x40]
inc edi
test esi, esi
jne 0x51e8a0
jmp 0x51e8b2
test esi, esi
jne 0x51e8c0
xor edi, edi
test eax, eax
mov esi, eax
je 0x51e8ff
lea ebx, [ebx]
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51e8c5
sub eax, edx
mov edx, dword [esi]
push eax
push edx
push ebx
call fcn.00572b89
add esp, 0xc
test eax, eax
je 0x51ea8b
mov esi, dword [esi + 0x40]
test esi, esi
jne 0x51e8f2
mov esi, dword [esp + 0x1c]
xor edi, edi
jmp 0x51e8f3
inc edi
cmp edi, dword [ebp + 0x1fa8]
je 0x51e8ff
test esi, esi
jne 0x51e8c0
lea ecx, [esp + 0x1c]
mov dword [ebp + 0x1fa8], edi
call fcn.004c29d0
mov edi, dword [esp + 0x24]
mov eax, dword [edi + 0x86c]
xor edx, edx
cmp eax, edx
mov ebp, 2
mov ecx, 1
je 0x51eb10
mov eax, dword [edi + 0x700]
cmp eax, ecx
je 0x51e94b
cmp eax, 9
jne 0x51eb10
cmp dword [edi + 0x704], ebp
jne 0x51eb10
mov dword [esp + 0x2c], edx
nop
mov edx, dword [esp + 0x20]
mov esi, dword [edx + 0x2014]
mov eax, dword [edi + 0x86c]
xor ecx, ecx
cmp esi, 0xffffffff
push 0
sete cl
push 0
push 0x18b
push eax
mov dword [esp + 0x2c], ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, eax
cmp esi, 0xffffffff
je 0x51eae8
test esi, esi
jle 0x51eae8
mov dword [esp + 0x18], 0
jmp 0x51e9a0
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x86c]
push 0x5990e0
push ecx
push 0x189
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 0xffffffff
je 0x51ead2
test eax, eax
jle 0x51ead2
mov edx, 0xf
mov ecx, 0x5990e0
call fcn.00518d60
mov al, byte [esp + 0x13]
test al, al
mov ebp, 0x5990e0
je 0x51e9f9
cmp al, byte [0x5990e0]
jne 0x51ead2
mov edi, dword [esp + 0x20]
mov edx, edi
mov ecx, 0x5990e0
call fcn.004f8280
test al, al
je 0x51ea1e
lea ecx, [ecx]
inc ebp
mov edx, edi
mov ecx, ebp
call fcn.004f8280
test al, al
jne 0x51ea10
cmp byte [ebp], 0
je 0x51ead2
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x51eaba
push 0x57568c
push ebx
call fcn.00564fb0
add esp, 8
test eax, eax
je 0x51ea57
push 1
push 0
mov edx, ebp
mov ecx, ebx
call fcn.00535d60
test eax, eax
jne 0x51ea78
mov eax, ebx
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51ea60
sub eax, edx
push eax
push ebp
push ebx
call fcn.00572b89
add esp, 0xc
test eax, eax
jne 0x51ead2
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [edx + 0x2014], ecx
jmp 0x51edb5
mov esi, dword [esi]
mov ecx, 0x5990e0
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x51ea92
mov eax, dword [esp + 0x20]
inc edi
lea ecx, [esp + 0x1c]
mov ebp, 0x5990e0
mov dword [eax + 0x1fa8], edi
call fcn.004c29d0
jmp 0x51edb5
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x2014]
cmp edx, dword [esp + 0x18]
jne 0x51ead2
mov dword [esp + 0x1c], 1
mov eax, dword [esp + 0x18]
inc eax
cmp eax, esi
mov dword [esp + 0x18], eax
jl 0x51e9a0
mov ebp, 2
mov eax, dword [esp + 0x20]
mov dword [eax + 0x2014], 0xffffffff
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, ebp
mov dword [esp + 0x2c], eax
jge 0x51e42e
mov edi, dword [esp + 0x24]
jmp 0x51e950
cmp dword [edi + 0x700], ebp
jne 0x51ec80
cmp dword [edi + 0x704], ebp
jne 0x51ebb5
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1fa0]
cmp eax, edx
je 0x51ebb5
mov esi, eax
jmp 0x51eb40
cmp dword [esi + 0x1c], ecx
je 0x51ebe1
mov esi, dword [esi + 0x40]
cmp esi, edx
jne 0x51eb40
mov esi, dword [eax + 0x44]
mov dword [esi + 0x1c], ecx
jmp 0x51eb60
push 0x57568c
push ebx
call fcn.00564fb0
add esp, 8
test eax, eax
je 0x51eb83
mov edx, dword [esi]
push 1
push 0
mov ecx, ebx
call fcn.00535d60
test eax, eax
jne 0x51ebe9
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51eb88
mov ecx, dword [esi]
sub eax, edx
push eax
push ecx
push ebx
call fcn.00572b89
add esp, 0xc
test eax, eax
je 0x51ebe9
mov edx, dword [esp + 0x20]
cmp esi, dword [edx + 0x1fa0]
je 0x51ebb5
mov esi, dword [esi + 0x44]
test esi, esi
jne 0x51eb60
cmp dword [edi + 0x700], ebp
jne 0x51ec80
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x704]
cmp eax, ebp
je 0x51ec80
cmp eax, 1
jne 0x51ebff
mov esi, dword [esp + 0x24]
add esi, 8
jmp 0x51ec1c
mov dword [esi + 0x1c], edx
jmp 0x51eb53
mov esi, dword [esi]
mov ecx, 0x5990e0
mov al, byte [esi]
inc esi
mov byte [ecx], al
inc ecx
test al, al
jne 0x51ebf0
jmp 0x51edb0
mov edi, dword [esp + 0x24]
add edi, 8
push 0x20
push edi
call fcn.00563730
mov esi, eax
add esp, 8
test esi, esi
jne 0x51ec1b
mov esi, edi
jmp 0x51ec1c
inc esi
cmp byte [esi], 0
je 0x51ec80
push 0x57568c
push ebx
call fcn.00564fb0
add esp, 8
test eax, eax
je 0x51ec44
push 1
push 0
mov edx, esi
mov ecx, ebx
call fcn.00535d60
test eax, eax
jne 0x51ec68
cmp byte [esi], 0
je 0x51ec80
mov eax, ebx
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51ec50
sub eax, edx
push eax
push esi
push ebx
call fcn.00572b89
add esp, 0xc
test eax, eax
jne 0x51ec80
mov edx, 0x5990e0
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51ec71
jmp 0x51edb0
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx + 0x700]
test eax, eax
je 0x51ec96
cmp eax, ebp
jne 0x51ed18
mov ebp, dword [esp + 0x20]
mov edi, dword [ebp + 0x2018]
test edi, edi
je 0x51ecb1
mov edx, ebp
mov ecx, edi
call fcn.004dcd30
test eax, eax
jne 0x51ecb7
mov edi, dword [ebp + 0x201c]
test edi, edi
mov esi, edi
je 0x51ed18
lea ecx, [ecx]
push 0x57568c
push ebx
call fcn.00564fb0
add esp, 8
test eax, eax
je 0x51ece3
push 1
push 0
mov edx, esi
mov ecx, ebx
call fcn.00535d60
test eax, eax
jne 0x51ed29
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51ece8
sub eax, edx
push eax
push esi
push ebx
call fcn.00572b89
add esp, 0xc
test eax, eax
je 0x51ed29
mov esi, dword [esi + 0x3b4]
test esi, esi
jne 0x51ed10
mov esi, dword [ebp + 0x201c]
cmp esi, edi
je 0x51ed18
test esi, esi
jne 0x51ecc0
mov ecx, dword [esp + 0x2c]
call fcn.0051e090
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret
mov edx, dword [esi + 0x3b4]
mov dword [ebp + 0x2018], edx
mov edx, 0x5990e0
mov eax, esi
sub edx, esi
mov edi, edi
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51ed40
push 0x21
push 0x5990e0
call fcn.00563730
add esp, 8
test eax, eax
je 0x51edb0
mov byte [eax], 0
jmp 0x51edb0
mov edx, 0x5990e0
mov eax, ebx
sub edx, ebx
jmp 0x51ed70
mov cl, byte [eax]
mov byte [eax + edx], cl
inc eax
test cl, cl
jne 0x51ed70
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0xbb4]
push ecx
mov ecx, dword [esp + 0x30]
push 0
push 0
push 0
push 0
mov edx, 0x5990e0
call fcn.0047c640
test eax, eax
je 0x51e42e
mov al, byte [0x5990e0]
test al, al
je 0x51e42e
mov ebp, 0x5990e0
mov eax, ebp
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51edc0
sub eax, edx
mov edx, dword [esp + 0x14]
add edx, eax
mov eax, dword [esp + 0x28]
mov cl, byte [eax + 0x5994c8]
test cl, cl
lea eax, [eax + 0x5994c8]
mov dword [esp + 0x14], edx
je 0x51ee18
mov edx, eax
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x51edf0
mov edi, 0x5990e0
sub eax, edx
dec edi
nop
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x51ee00
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, ebp
lea ebx, [ebx]
mov al, byte [ebp]
inc ebp
test al, al
jne 0x51ee20
mov edi, 0x5994c8
sub ebp, esi
dec edi
mov al, byte [edi + 1]
inc edi
test al, al
jne 0x51ee30
mov ecx, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
push 0
mov ecx, ebp
and ecx, 3
push 0
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x38]
mov edi, dword [sym.imp.USER32.dll_SendMessageA]
push 0xb
push esi
call edi
push 0x5994c8
push 0
push 0xc
push esi
call edi
push 0
push 1
push 0xb
push esi
call edi
mov eax, dword [esp + 0x14]
push eax
push eax
mov edx, 1
mov ecx, esi
call fcn.004742f0
push 1
push 0
push esi
call dword [sym.imp.USER32.dll_InvalidateRect]
push esi
call dword [sym.imp.USER32.dll_UpdateWindow]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret