Function at 0x10014130
Capabilities:
Check for foreground window switch
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x264
mov dword [ebp - 0x6c], edx
mov dword [ebp - 0x68], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x1c], esp
mov dword [ebp - 0x10], 0xffffffff
lea ecx, [ebp - 0x18]
mov dword [ebp - 0x14], 0x10015720
mov edx, dword fs:[0]
mov dword [ebp - 0x18], edx
mov dword fs:[0], ecx
mov dword [ebp - 0x70], eax
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x100141b4
lea esi, [ebp - 0x270]
push 0x100
push esi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x30], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
lea ecx, [ebp - 0x40]
push eax
push esi
call fcn.1000abb0
jmp 0x100141e3
xorps xmm0, xmm0
movups xmmword [ebp - 0x40], xmm0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 7
jmp 0x100141e3
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10015b8b
add esp, 8
mov eax, dword [ebp - 0x6c]
test byte [eax], 1
jne 0x10014691
call dword [sym.imp.USER32.dll_GetForegroundWindow]
test eax, eax
je 0x10014240
push 0x100
lea esi, [ebp - 0x270]
push esi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
xorps xmm0, xmm0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_wcslen
add esp, 4
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x60]
push eax
push esi
call fcn.1000abb0
jmp 0x10014255
xorps xmm0, xmm0
movups xmmword [ebp - 0x60], xmm0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 7
lea eax, [ebp - 0x6f]
cmp byte [eax], 0
je 0x1001464e
mov esi, dword [ebp - 0x50]
cmp dword [ebp - 0x30], esi
jne 0x100142c0
test esi, esi
je 0x1001464e
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x28], ecx
cmp ecx, 8
lea edi, [ebp - 0x60]
cmovae edi, eax
mov ecx, dword [ebp - 0x2c]
lea ebx, [ebp - 0x40]
mov dword [ebp - 0x24], ecx
cmp ecx, 8
jb 0x10014294
mov ebx, dword [ebp - 0x40]
xor edx, edx
nop word cs:[eax + eax]
movzx ecx, word [ebx + edx*2]
cmp cx, word [edi + edx*2]
jne 0x100142cb
inc edx
cmp esi, edx
jne 0x100142a0
jmp 0x1001464e
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x2c]
jmp 0x100142d1
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
cmp ecx, 8
lea ecx, [ebp - 0x60]
cmovb eax, ecx
cmp edx, esi
jae 0x10014304
mov dword [ebp - 0x10], 1
sub esp, 0xc
movzx ecx, byte [ebp - 0x270]
mov byte [esp + 4], cl
mov dword [esp + 8], eax
mov dword [esp], esi
lea ecx, [ebp - 0x40]
call fcn.10014770
jmp 0x1001432d
lea edi, [ebp - 0x40]
cmp edx, 8
jb 0x1001430f
mov edi, dword [ebp - 0x40]
mov dword [ebp - 0x30], esi
lea ecx, [esi + esi]
push ecx
push eax
push edi
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov word [edi + esi*2], 0
mov dword [ebp - 0x10], 2
xorps xmm0, xmm0
movups xmmword [ebp - 0x270], xmm0
mov byte [ebp - 0x1d], 0xc3
mov dword [ebp - 0x10], 2
lea ecx, [ebp - 0x26c]
lea eax, [ebp - 0x1d]
push eax
push 0
call fcn.1000c030
mov ecx, dword [ebp - 0x268]
mov eax, dword [ebp - 0x264]
mov byte [ebp - 0x1d], 0x4f
cmp ecx, eax
je 0x10014379
mov byte [ecx], 0x4f
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
jmp 0x1001438f
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov eax, dword [ebp - 0x268]
mov byte [ebp - 0x1d], 0x4a
cmp eax, dword [ebp - 0x264]
je 0x100143ad
mov byte [eax], 0x4a
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
jmp 0x100143c3
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov eax, dword [ebp - 0x268]
mov byte [ebp - 0x1d], 0xd9
cmp eax, dword [ebp - 0x264]
je 0x100143e1
mov byte [eax], 0xd9
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
jmp 0x100143f7
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov eax, dword [ebp - 0x268]
mov byte [ebp - 0x1d], 0x84
cmp eax, dword [ebp - 0x264]
je 0x10014415
mov byte [eax], 0x84
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
jmp 0x1001442b
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov eax, dword [ebp - 0x268]
mov byte [ebp - 0x1d], 0x4d
cmp eax, dword [ebp - 0x264]
je 0x10014449
mov byte [eax], 0x4d
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
jmp 0x1001445f
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov eax, dword [ebp - 0x268]
mov byte [ebp - 0x1d], 0xec
cmp eax, dword [ebp - 0x264]
je 0x1001447d
mov byte [eax], 0xec
mov eax, dword [ebp - 0x268]
inc eax
mov dword [ebp - 0x268], eax
jmp 0x10014493
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov eax, dword [ebp - 0x268]
mov byte [ebp - 0x1d], 0x3c
cmp eax, dword [ebp - 0x264]
je 0x100144aa
mov byte [eax], 0x3c
inc dword [ebp - 0x268]
jmp 0x100144ba
lea ecx, [ebp - 0x26c]
lea edx, [ebp - 0x1d]
push edx
push eax
call fcn.1000c030
mov ecx, esp
push eax
sub esp, 0x14
mov edx, esp
xorps xmm0, xmm0
movups xmmword [edx], xmm0
mov dword [edx + 0x14], 0
mov dword [edx + 0x10], 0
mov edi, dword [ebp - 0x30]
cmp dword [ebp - 0x2c], 8
lea esi, [ebp - 0x40]
jb 0x100144e5
mov esi, dword [ebp - 0x40]
cmp edi, 0x7fffffff
jae 0x100146db
cmp edi, 7
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], edx
ja 0x10014513
mov dword [edx + 0x10], edi
mov dword [edx + 0x14], 7
movups xmm0, xmmword [esi]
movups xmmword [edx], xmm0
mov eax, edx
jmp 0x100145aa
mov dword [edx + 0x14], 7
mov ebx, edi
or ebx, 7
cmp ebx, 0x7ffffffe
ja 0x100146e0
cmp ebx, 0xb
mov eax, 0xa
cmovb ebx, eax
lea eax, [ebx + ebx]
cmp ebx, 0x7ff
mov dword [ebp - 0x48], edi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x44], ebx
jb 0x1001456f
cmp ebx, 0x7fffffee
jae 0x100146e0
add eax, 0x25
push eax
call fcn.10015b56
add esp, 4
mov ecx, eax
add eax, 0x23
and eax, 0xffffffe0
mov dword [eax - 4], ecx
jmp 0x1001457b
add eax, 2
push eax
call fcn.10015b56
add esp, 4
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
mov dword [esi], eax
mov dword [esi + 0x10], ecx
mov dword [esi + 0x14], edx
lea ecx, [ecx + ecx + 2]
push ecx
push dword [ebp - 0x64]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov edi, dword [esi + 0x10]
cmp dword [esi + 0x14], 8
mov eax, esi
jb 0x100145aa
mov eax, dword [esi]
add edi, edi
mov dword [ebp - 0x10], 3
lea ecx, [ebp - 0x270]
push edi
push eax
call fcn.1000e9c0
mov ecx, dword [ebp - 0x24]
mov eax, dword [ecx + 0x14]
cmp eax, 8
jb 0x100145ff
mov ecx, dword [ecx]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x100145f5
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1001468b
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10015b8b
add esp, 8
mov esp, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x68]
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [ebp - 0x10], 2
lea edx, [ebp - 0x26c]
push edx
call eax
mov ecx, dword [ebp - 0x26c]
test ecx, ecx
je 0x1001464e
mov eax, dword [ebp - 0x264]
sub eax, ecx
cmp eax, 0x1000
jb 0x10014644
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1001468b
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.10015b8b
add esp, 8
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [ebp - 0x4c]
cmp eax, 8
jb 0x100141e3
mov ecx, dword [ebp - 0x60]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x100141d9
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jb 0x100141d0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [ebp - 0x2c]
cmp eax, 8
jb 0x100146ca
mov ecx, dword [ebp - 0x40]
lea esi, [eax + eax]
add esi, 2
cmp esi, 0x1000
jb 0x100146c0
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x1001468b
add eax, eax
add eax, 0x25
mov esi, eax
mov ecx, edx
push esi
push ecx
call fcn.10015b8b
add esp, 8
mov eax, dword [ebp - 0x18]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.10008fe0
call fcn.10008d80
nop word cs:[eax + eax]
push ebp
sub esp, 0xc
add ebp, 0xc
lea ecx, [ebp - 0x270]
call fcn.10001ca0
add esp, 0xc
pop ebp
ret