Function at 0x10028010
Capabilities:
Get graphical window text

Disassembly:
push 0xffffffffffffffff
push 0x1005bb78
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1006e020]
xor eax, esp
push eax
lea eax, [esp + 0x3c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x4c]
push ebp
call fcn.10029ea0
mov eax, dword [0x1006eb44]
mov ebx, 1
mov byte [esp + 0x4c], bl
mov dword [esp + 0x18], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x18]
mov byte [esp + 0x44], bl
call fcn.100148b0
lea eax, [esp + 0x1c]
call fcn.100148b0
mov eax, dword [ebp + 0x28c]
lea esi, [ebp + 0x28c]
push eax
mov dword [esp + 0x2c], esi
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov edi, eax
add edi, ebx
mov ecx, edi
lea ebx, [esp + 0x18]
call fcn.10015350
mov ecx, dword [esi]
push edi
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov edi, ebx
call fcn.10011c20
mov esi, dword [esp + 0x18]
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [esi - 8], eax
mov word [esi + eax*2], 0
mov edx, dword [ebp + 0x288]
lea esi, [ebp + 0x288]
push edx
mov dword [esp + 0x30], esi
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov edi, eax
add edi, 1
mov ecx, edi
lea ebx, [esp + 0x1c]
call fcn.10015350
push edi
push eax
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov edi, ebx
call fcn.10011c20
mov edi, dword [esp + 0x1c]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [edi - 8], eax
mov word [edi + eax*2], 0
mov eax, dword [ebp + 0x218]
mov ecx, dword [0x10070828]
push eax
push 0x10070828
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
push 0
push 0
mov byte [esp + 0x4c], 2
mov edx, dword [ebp + 0x280]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push 0x147
push edx
call ebx
test eax, eax
je case.0x1002818c.1
mov eax, dword [ebp + 0x224]
push 0
push 0
push 0xf0
push eax
call ebx
test eax, eax
je case.0x1002818c.1
mov ecx, dword [esp + 0x18]
cmp dword [ecx - 8], 0
mov dword [esp + 0x24], 0
jne 0x1002817e
mov eax, 8
jmp switch.0x1002818c
lea ecx, [esp + 0x18]
call fcn.10029890
cmp eax, 8
ja case.0x1002818c.1
jmp dword [eax*4 + 0x100284d0]
mov byte [esp + 0x4c], 1
mov edx, dword [ebp + 0x22c]
push 0
push 0
push 0xf0
push edx
call ebx
test eax, eax
je case.0x100281cc.2
lea ecx, [esp + 0x1c]
mov dword [esp + 0x24], 1
call fcn.10029bf0
cmp eax, 6
ja case.0x100281cc.2
jmp dword [eax*4 + 0x100284f4]
mov eax, 0x265
jmp 0x100281f5
mov eax, 0x267
jmp 0x100281ed
mov eax, 0x26a
jmp 0x100281f5
mov eax, 0xf
mov dword [esp + 0x24], 1
mov edx, dword [0x1006eb44]
mov dword [esp + 0x20], edx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x48], 3
call fcn.10013a10
cmp dword [esp + 0x24], 0
mov eax, dword [ebp + 0x16c]
je 0x100282aa
lea ecx, [esp + 0x24]
call fcn.100139b0
mov eax, dword [eax]
mov ecx, dword [ebp + 4]
push 0x34
push eax
mov eax, dword [esp + 0x28]
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
lea esi, [esp + 0x24]
sete byte [esp + 0x4c]
call fcn.10015b40
cmp byte [esp + 0x4c], 0
jne 0x10028293
mov esi, dword [esp + 0x28]
mov edx, dword [esi]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
call fcn.10028da0
lea esi, [esp + 0x20]
call fcn.10015b40
lea esi, [esp + 0x30]
call fcn.100156a0
lea esi, [esp + 0x1c]
call fcn.10015b40
lea esi, [esp + 0x18]
call fcn.10015b40
xor al, al
jmp 0x100284b7
lea esi, [esp + 0x20]
mov byte [esp + 0x44], 2
call fcn.10015b40
mov esi, dword [esp + 0x2c]
jmp case.0x1002818c.1
lea ecx, [esp + 0x4c]
call fcn.100139b0
mov eax, dword [eax]
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 4]
push 0x10
push eax
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea esi, [esp + 0x4c]
call fcn.10015b40
mov esi, dword [esp + 0x28]
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
call fcn.10028da0
lea esi, [esp + 0x20]
call fcn.10015b40
mov ecx, dword [esp + 0x34]
push ecx
push 0x10070828
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
jmp 0x1002827a
mov byte [esp + 0x4c], 1
jmp case.0x100281cc.2
mov eax, 0x266
jmp 0x1002832e
mov eax, 0x268
jmp 0x1002832e
mov eax, 7
jmp 0x10028326
mov eax, 0x269
mov dword [esp + 0x24], 0
mov ecx, dword [0x1006eb44]
mov dword [esp + 0x20], ecx
push eax
lea ecx, [esp + 0x24]
mov byte [esp + 0x48], 4
call fcn.10013a10
cmp dword [esp + 0x24], 0
mov eax, dword [ebp + 0x16c]
je 0x100283c2
lea ecx, [esp + 0x28]
call fcn.100139b0
mov eax, dword [eax]
mov edx, dword [esp + 0x20]
push 0x34
push eax
mov eax, dword [ebp + 4]
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
mov eax, dword [esp + 0x28]
sete bl
lea ecx, [eax - 0xc]
cmp ecx, 0x1006eb34
mov byte [esp + 0x4c], bl
je 0x100283a8
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x100283a8
mov edx, dword [esp + 0x28]
add edx, 0xfffffff4
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
test bl, bl
jne 0x10028436
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
xor eax, eax
call fcn.10028da0
jmp 0x10028436
lea ecx, [esp + 0x4c]
call fcn.100139b0
mov ecx, dword [eax]
mov edx, dword [esp + 0x20]
mov eax, dword [ebp + 4]
push 0x10
push ecx
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov eax, dword [esp + 0x4c]
lea ecx, [eax - 0xc]
cmp ecx, 0x1006eb34
je 0x1002840c
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x1002840c
mov edx, dword [esp + 0x4c]
add edx, 0xfffffff4
push edx
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
mov ecx, dword [esi]
push 0xffffffffffffffff
push 0
push 0xb1
push ecx
call ebx
mov edx, dword [esi]
push 0
push 0
push 0xb7
push edx
call ebx
mov byte [esp + 0x4c], 0
mov eax, dword [esp + 0x20]
lea ecx, [eax - 0xc]
cmp ecx, 0x1006eb34
je case.0x100281cc.2
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg case.0x100281cc.2
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov edx, dword [esp + 0x34]
push edx
push 0x10070828
call dword [sym.imp.KERNEL32.dll_InterlockedExchange]
lea eax, [edi - 0xc]
cmp eax, 0x1006eb34
je 0x1002848d
add edi, 0xfffffff4
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x1002848d
push edi
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, dword [esp + 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x1006eb34
je 0x100284b3
lea esi, [eax - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x100284b3
push esi
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov al, byte [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x34
ret 4