Function at 0x7743b4
Capabilities:
Check for foreground window switch

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x10], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x774e97
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
xor ecx, ecx
push ebp
push 0x774e62
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x7f0], 0
jne 0x774403
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774e81
mov eax, dword [ebp - 4]
mov byte [eax + 0x858], 0
mov eax, dword [ebp - 4]
add eax, 0x1064
call fcn.00404b34
mov eax, dword [ebp - 4]
cmp dword [eax + 0x730], 0
jne 0x774b0d
xor ecx, ecx
push ebp
push 0x774b06
push dword fs:[ecx]
mov dword fs:[ecx], esp
mov eax, dword [ebp - 4]
mov dword [eax + 0x730], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x800]
cmp dword [eax + 0x1c0], 3
jne 0x7744a0
mov eax, dword [0x8b3e6c]
mov eax, dword [eax + 0x800]
mov eax, dword [eax + 0x2c0]
xor edx, edx
call fcn.004055f0
je 0x774496
lea edx, [ebp - 0x10]
mov eax, dword [0x8b3e6c]
mov eax, dword [eax + 0x800]
mov eax, dword [eax + 0x2c0]
call fcn.0087c650
mov eax, dword [ebp - 0x10]
call fcn.00876648
test al, al
jne 0x7744a0
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.00776498
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x800]
mov eax, dword [edx + 0x1c0]
test eax, eax
jne 0x7744c0
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
dec eax
jne 0x77450a
cmp byte [edx + 0x58], 0
je 0x7744ef
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 4
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.0084b430
jmp 0x774aed
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x800]
mov eax, dword [edx + 0x1c0]
cmp eax, 2
je 0x774527
cmp eax, 3
jne 0x774623
cmp byte [edx + 0x58], 0
je 0x77457e
cmp eax, 2
jne 0x774558
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 5
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 6
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x7745a4
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
xor eax, eax
push ebp
push 0x77460a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x7745f9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, dword [ebp - 4]
call fcn.0083d8f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x774600
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 0
ret
cmp eax, 4
jne 0x7746fd
cmp byte [edx + 0x58], 0
je 0x774658
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 7
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x77467e
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
xor eax, eax
push ebp
push 0x7746e4
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x7746d3
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, dword [ebp - 4]
call fcn.008516dc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7746da
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 0
ret
cmp eax, 5
jne 0x7747f7
cmp byte [edx + 0x58], 0
je 0x774732
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 8
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
xor eax, eax
push ebp
push 0x7747de
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x7747cd
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 1
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
cmp dword [eax + 0x44], 0
je 0x774786
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
mov eax, dword [eax + 0x44]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, dword [ebp - 4]
call fcn.00839020
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
cmp byte [eax + 0xdea], 0
jne 0x774758
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7747d4
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 0
ret
cmp eax, 6
jne 0x774869
cmp byte [edx + 0x58], 0
je 0x774828
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 1
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x77484e
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.0084b90c
jmp 0x774aed
cmp eax, 0xa
jne 0x7748db
cmp byte [edx + 0x58], 0
je 0x77489a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 9
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x7748c0
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.0084ba50
jmp 0x774aed
cmp eax, 0xb
jne 0x77494d
cmp byte [edx + 0x58], 0
je 0x77490c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 0xa
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x774932
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.0085d51c
jmp 0x774aed
cmp eax, 7
jne 0x7749bf
cmp byte [edx + 0x58], 0
je 0x77497e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 2
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x7749a4
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.0084bb94
jmp 0x774aed
cmp eax, 9
jne 0x774a87
xor eax, eax
push ebp
push 0x774a71
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x7749fc
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ac], 0
xor eax, eax
push ebp
push 0x774a4c
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
xor edx, edx
call fcn.008387bc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x774a53
mov eax, dword [ebp - 4]
mov byte [eax + 0x15ad], 0
ret
cmp byte [edx + 0x58], 0
je 0x774ab0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, 3
call fcn.0082fa9c
mov eax, dword [ebp - 4]
call fcn.00763300
jmp 0x774aed
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fd], 0
je 0x774ad6
mov eax, dword [0x8a9c8c]
mov eax, dword [eax]
call fcn.00471178
mov eax, dword [ebp - 4]
call fcn.00455b24
push eax
call sub.user32.dll_SetForegroundWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov edx, dword [ebp - 4]
call fcn.0084bcd8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x774b0d
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x730], edx
ret
xor eax, eax
push ebp
push 0x774b3d
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
mov eax, dword [eax + 0x2f8]
mov al, byte [eax + 0xdec]
mov byte [ebp - 5], al
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774b47
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fc], 0
je 0x774bb7
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x800]
cmp dword [eax + 0x1c0], 5
je 0x774b71
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774bb7
xor eax, eax
push ebp
push 0x774ba2
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x850], edx
call sub.user32.dll_GetForegroundWindow
mov edx, dword [ebp - 4]
mov dword [edx + 0x84c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774bb7
xor eax, eax
push ebp
push 0x774c36
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [ebp - 5], 0
je 0x774c2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x800]
mov ebx, dword [eax + 0x1c0]
cmp ebx, 6
je 0x774be9
cmp ebx, 0xa
je 0x774be9
cmp ebx, 7
jne 0x774c2c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x84c], 0
jbe 0x774c2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84c]
push eax
call sub.user32.dll_IsWindow
test eax, eax
je 0x774c2c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84c]
push eax
call sub.user32.dll_IsIconic
test eax, eax
je 0x774c2c
push 9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84c]
push eax
call sub.user32.dll_ShowWindow
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774c40
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774c64
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fc], 0
je 0x774c88
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774c88
mov eax, dword [ebp - 4]
cmp dword [eax + 0x84c], 0
jbe 0x774c88
call sub.user32.dll_GetForegroundWindow
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x84c]
je 0x774c88
mov eax, dword [ebp - 4]
call fcn.007742f0
xor eax, eax
push ebp
push 0x774cae
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x7f0]
call fcn.00403d28
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774cb8
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x7f0], edx
mov eax, dword [0x8a9dac]
xor edx, edx
mov dword [eax], edx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fc], 0
je 0x774d51
xor eax, eax
push ebp
push 0x774d4a
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774d13
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fc], 0
je 0x774d29
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774d29
mov eax, dword [ebp - 4]
cmp dword [eax + 0x84c], 0
jbe 0x774d29
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0x53557a7
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.00773348
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x774d51
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc], edx
ret
mov eax, dword [ebp - 4]
mov byte [eax + 0x80b], 0
mov eax, dword [ebp - 4]
call fcn.0076e658
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774d8f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x7fc], 0
je 0x774e1f
mov eax, dword [ebp - 4]
cmp byte [eax + 0x858], 0
je 0x774e1f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x800]
cmp dword [eax + 0x1c0], 1
jne 0x774dae
cmp byte [eax + 0x58], 0
jne 0x774dae
push 0x64
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x84c]
test ebx, ebx
jbe 0x774e1f
push ebx
call sub.user32.dll_IsWindow
test eax, eax
je 0x774e1f
mov eax, dword [ebp - 4]
call fcn.007742f0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x800]
cmp dword [eax + 0x1c0], 0xb
jne 0x774e1f
xor eax, eax
push ebp
push 0x774e15
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x32
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 4]
call fcn.007742f0
push 0x64
call sub.kernel32.dll_Sleep_1
mov eax, dword [ebp - 4]
call fcn.007742f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774e1f
mov eax, dword [ebp - 4]
call fcn.007608c4
mov eax, dword [ebp - 4]
cmp dword [eax + 0x1064], 0
je 0x774e50
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1064]
xor eax, eax
call fcn.0087eabc
mov eax, dword [ebp - 4]
add eax, 0x1064
call fcn.00404b34
mov eax, dword [ebp - 4]
call fcn.0076ea64
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x774e6c
mov eax, dword [ebp - 4]
cmp dword [eax + 0xc], 0x53557a7
jne 0x774e81
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0xc]
mov dword [eax + 0xc], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x774e9e
lea eax, [ebp - 0x10]
call fcn.00405268
ret