Function at 0x4599e20
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45df870
mov eax, dword fs:[0]
push eax
sub esp, 0x268
mov eax, dword [0x4612008]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x26c], edx
cmp byte [ebp + 0x10], 0
mov ebx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x260], ebx
mov dword [ebp - 0x270], eax
je 0x459a1a2
xor esi, esi
mov dword [ebp - 0x220], esi
mov dword [ebp - 4], esi
mov eax, dword [ebx + 0x2c]
or eax, 0x2000
mov dword [ebx + 0x2c], eax
test eax, 0x20000
je 0x4599f21
mov ecx, dword [ebx + 0x200]
and eax, 0xfffdffff
mov dword [ebx + 0x2c], eax
lea eax, [ebp - 0x260]
push eax
call fcn.04584cf0
mov esi, dword [ebp - 0x260]
mov dword [ebp - 0x220], esi
test esi, esi
je 0x4599f8a
mov eax, dword [esi + 8]
mov dword [ebp - 0x260], eax
test eax, eax
je 0x4599f8a
mov edi, eax
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4599ed5
sub edi, ecx
sar edi, 1
je 0x4599f8a
mov ecx, dword [ebx + 0x140]
add edi, edi
push 0
lea eax, [edi + 2]
push eax
call fcn.04577ef0
push edi
push dword [ebp - 0x260]
mov dword [ebp - 0x268], eax
push eax
call fcn.045bf7d0
mov eax, dword [ebp - 0x268]
add esp, 0xc
xor ecx, ecx
mov word [edi + eax], cx
jmp 0x4599f8f
mov eax, dword [edx + 0x20]
test eax, eax
jne 0x459a0f4
mov edi, dword [sym.imp.USER32.dll_GetWindow]
push 5
push dword [edx]
call edi
mov ebx, eax
mov dword [ebp - 0x268], ebx
test ebx, ebx
je 0x4599f84
push 0x104
lea eax, [ebp - 0x21c]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClassNameW]
lea eax, [ebp - 0x21c]
push str.edit
push eax
call fcn.045c718c
add esp, 8
test eax, eax
je 0x459a064
push 2
push ebx
call edi
mov ebx, eax
mov dword [ebp - 0x268], eax
test ebx, ebx
jne 0x4599f44
mov ebx, dword [ebp - 0x260]
mov eax, 0x45f528c
push ecx
mov ecx, dword [ebx + 0x140]
push eax
mov dword [ebx + 0x138], eax
call fcn.0459b4d0
mov edi, dword [ebp - 0x26c]
mov edx, 0x10
mov dword [ebx + 0x134], eax
mov ecx, ebx
lea eax, [ebp - 0x264]
push eax
push 1
push 1
push dword [edi + 0x14]
push dword [edi + 0x10]
push 7
call fcn.045994b0
add esp, 0x18
test eax, eax
je 0x459a175
cmp dword [edi + 0x20], 0
jne 0x4599feb
test esi, esi
je 0x4599feb
cmp dword [esi], 0
jne 0x459a175
cmp dword [ebx + 0x110], 0
lea ecx, [ebx + 0x1ac]
push 0
setne al
movzx eax, al
push eax
push dword [edi + 0x14]
push dword [edi + 0x10]
call fcn.04576aa0
test eax, eax
je 0x459a021
push ecx
push dword [edi + 0x20]
mov ecx, eax
push dword [ebx + 0x140]
call fcn.045877c0
cmp dword [ebx + 0x110], 0
jne 0x459a05a
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x254], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x248], eax
lea eax, [ebp - 0x25c]
push eax
push dword [edi + 0x10]
mov eax, dword [ebx + 0x154]
push 0x1074
push dword [eax + 4]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
jmp 0x459a185
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov dword [ebp - 0x264], eax
test eax, eax
jle 0x4599f84
inc eax
xor ebx, ebx
cmp eax, 0xffffffff
cmovne ebx, eax
lea ecx, [ebx + 0x11]
call fcn.045723f0
mov esi, eax
lea ecx, [ebx*2 + 0x24]
shr ecx, 1
xor eax, eax
shr ecx, 1
mov edi, esi
rep stosd dword es:[edi], eax
adc ecx, ecx
mov dword [ebp - 0x220], esi
rep stosw word es:[edi], ax
mov ecx, dword [ebp - 0x264]
lea eax, [ebx + 1]
mov dword [esi + 0xc], eax
inc ecx
lea eax, [esi + 0x10]
mov dword [esi + 4], 1
push ecx
push eax
push dword [ebp - 0x268]
mov dword [esi + 8], eax
mov dword [esi], ebx
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov eax, dword [esi + 8]
xor ecx, ecx
test eax, eax
je 0x459a0ea
cmp word [eax], cx
je 0x459a0ea
lea eax, [eax + 2]
inc ecx
cmp word [eax], 0
jne 0x459a0e0
mov ebx, dword [ebp - 0x260]
mov dword [esi], ecx
jmp 0x459a108
push 0
push eax
lea ecx, [ebp - 0x220]
call fcn.04571e70
mov esi, dword [ebp - 0x220]
test esi, esi
je 0x4599f84
mov eax, dword [esi + 8]
mov dword [ebp - 0x264], eax
test eax, eax
je 0x4599f8a
mov edi, eax
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x459a126
sub edi, ecx
sar edi, 1
je 0x4599f8a
mov ecx, dword [ebx + 0x140]
add edi, edi
push 0
lea eax, [edi + 2]
push eax
call fcn.04577ef0
push edi
push dword [ebp - 0x264]
mov dword [ebp - 0x260], eax
push eax
call fcn.045bf7d0
mov eax, dword [ebp - 0x260]
add esp, 0xc
xor ecx, ecx
mov word [eax + edi], cx
jmp 0x4599f8f
mov dword [edi + 0x20], 0
xor eax, eax
mov dword [edi + 0x24], 0
mov ecx, dword [ebp - 0x270]
mov dword [ecx], eax
test esi, esi
je 0x459a1c3
add dword [esi + 4], 0xffffffff
jne 0x459a1c3
push esi
call fcn.045c460a
add esp, 4
jmp 0x459a1c3
cmp dword [ebx + 0x118], 0
jne 0x459a1bd
test byte [ebx + 0x2c], 0x20
jne 0x459a1bd
push eax
push ebx
call fcn.0459aa30
add esp, 8
jmp 0x459a1c5
mov dword [eax], 1
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.045bc602
mov esp, ebp
pop ebp
ret