Function at 0x4081f0
Capabilities:
Get graphical window text

Disassembly:
push 0xffffffffffffffff
push 0x431198
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push ebp
push esi
push edi
mov eax, dword [0x43ce70]
xor eax, esp
push eax
lea eax, [esp + 0x48]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x18], edi
test byte [edi + 0x2c], 0x60
je 0x4086b6
mov ebp, dword [esp + 0x58]
cmp bp, 8
je 0x4086b6
mov eax, dword [0x43e3bc]
mov edx, dword [eax + 0xc]
mov ecx, 0x43e3bc
call edx
lea ebx, [eax + 0x10]
mov dword [esp + 0x58], ebx
mov eax, dword [edi + 4]
push eax
mov dword [esp + 0x54], 0
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
mov esi, eax
mov eax, dword [ebx - 8]
add esi, 1
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, esi
or eax, ecx
jge 0x408281
push esi
lea ecx, [esp + 0x5c]
call fcn.004017b0
mov ebx, dword [esp + 0x58]
mov ecx, dword [edi + 4]
push esi
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextW]
test ebx, ebx
jne 0x408295
xor eax, eax
jmp 0x4082b5
mov eax, ebx
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4082a0
sub eax, edx
sar eax, 1
js 0x40860c
cmp eax, dword [ebx - 8]
jg 0x40860c
mov esi, dword [esp + 0x18]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebx - 0xc], eax
mov word [ebx + eax*2], 0
mov ecx, dword [esi + 4]
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x24]
push eax
push 0xb0
push ecx
call edi
mov eax, dword [esi + 0x2c]
test al, al
jns 0x4083b8
cmp bp, 0x2d
jne 0x4083b8
test al, 0x40
push ebx
je 0x408338
call fcn.00420c37
fldz
fcomp st(1)
add esp, 4
fnstsw ax
test ah, 0x41
jne 0x408327
sub esp, 8
fchs
fstp qword [esp]
mov esi, 1
push 0x433a6c
jmp 0x40834e
xor esi, esi
fchs
sub esp, 8
fstp qword [esp]
push 0x433a6c
jmp 0x40834e
call fcn.00420b86
xor ecx, ecx
test eax, eax
setl cl
neg eax
push eax
push 0x433a64
mov esi, ecx
lea edx, [esp + 0x64]
push edx
call fcn.004076f0
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x28]
mov ecx, dword [ebx + 4]
add esp, 0x10
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextW]
test esi, esi
mov ecx, dword [esp + 0x1c]
je 0x408382
mov eax, dword [esp + 0x20]
add ecx, 0xffffffff
add eax, 0xffffffff
jmp 0x40838c
mov eax, dword [esp + 0x20]
add ecx, 1
add eax, 1
mov edx, dword [ebx + 4]
push ecx
push eax
push 0xb1
push edx
call edi
mov eax, dword [ebx + 4]
push 0
push 0
push 0xb7
push eax
call edi
lea ecx, [esp + 0x58]
call fcn.00402a50
xor eax, eax
jmp 0x4086bb
mov eax, dword [ebx - 0xc]
sub eax, dword [esp + 0x1c]
lea ecx, [esp + 0x44]
push eax
push ecx
lea ecx, [esp + 0x60]
call fcn.00406fc0
mov esi, eax
mov edx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x58], 1
call fcn.004062a0
push ebp
push eax
lea ecx, [esp + 0x44]
push ecx
mov byte [esp + 0x5c], 2
call fcn.00407cb0
push esi
push eax
lea edx, [esp + 0x28]
push edx
mov byte [esp + 0x68], 3
call fcn.00407a10
add esp, 0x18
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
mov byte [esp + 0x50], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408432
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x50], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408457
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x50], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40847c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x14]
mov eax, dword [edx - 0xc]
or edi, 0xffffffff
xor esi, esi
xor ebx, ebx
xor ebp, ebp
cmp eax, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov dword [esp + 0x38], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x2c], edi
jle 0x40866d
lea esp, [esp]
test esi, esi
jl 0x40860c
cmp esi, eax
jg 0x40860c
movzx ecx, word [edx + esi*2]
movzx eax, cx
add eax, 0xffffffd3
cmp eax, 0x11
ja case.0x4084d6.47
movzx eax, byte [eax + 0x4086ec]
jmp dword [eax*4 + 0x4086d4]
mov dword [esp + 0x38], esi
jmp 0x40855a
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x2c], 0x100
je 0x40859f
add dword [esp + 0x24], 1
mov dword [esp + 0x30], esi
jmp 0x40855a
mov eax, dword [esp + 0x18]
test dword [eax + 0x2c], 0x100
je 0x40859f
mov dword [esp + 0x34], esi
add ebx, 1
jmp 0x40855a
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x2c], 0x100
je 0x40859f
mov edi, esi
add ebp, 1
jmp 0x40855a
mov eax, dword [esp + 0x18]
test byte [eax + 0x2c], 0x40
je 0x40859f
add dword [esp + 0x28], 1
jmp 0x40855a
push ecx
call fcn.00420b67
add esp, 4
test eax, eax
je 0x4085b8
cmp dword [esp + 0x2c], 0
mov edx, dword [esp + 0x14]
jge 0x40855a
mov dword [esp + 0x2c], esi
mov eax, 1
cmp dword [esp + 0x24], eax
jg 0x40859a
cmp ebx, eax
jg 0x40859a
cmp ebp, eax
jg 0x40859a
cmp dword [esp + 0x28], eax
jg 0x40859a
add esi, eax
mov eax, dword [edx - 0xc]
cmp esi, eax
jl 0x4084b0
mov esi, dword [esp + 0x30]
cmp esi, 0xffffffff
je 0x408616
cmp edi, 0xffffffff
je 0x408616
cmp esi, edi
jle 0x408616
lea eax, [edx - 0x10]
jmp 0x4085bf
lea ecx, [esp + 0x14]
call fcn.00402a50
lea ecx, [esp + 0x58]
call fcn.00402a50
xor eax, eax
jmp 0x4086bb
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x50], 0
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4085dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
mov dword [esp + 0x50], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x408605
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x4086bb
push 0x80070057
call entry0
mov ecx, dword [esp + 0x34]
cmp ecx, 0xffffffff
je 0x40862c
cmp edi, 0xffffffff
je 0x40862c
cmp ecx, edi
jg 0x40859a
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
je 0x40866d
cmp esi, 0xffffffff
je 0x408642
cmp esi, eax
jg 0x40859a
cmp ecx, 0xffffffff
je 0x40864f
cmp ecx, eax
jg 0x40859a
cmp edi, 0xffffffff
je 0x40865c
cmp edi, eax
jg 0x40859a
mov ecx, dword [esp + 0x38]
cmp ecx, 0xffffffff
je 0x40866d
cmp ecx, eax
jg 0x40859f
lea eax, [edx - 0x10]
mov byte [esp + 0x50], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40868e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
mov dword [esp + 0x50], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4086b6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x48]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 4