Function at 0x41a8f0
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4becf0
push eax
mov dword fs:[0], esp
sub esp, 0x130
push esi
mov esi, ecx
cmp dword [esi + 0x4238], 0
jne 0x41b334
cmp byte [0x50b375], 0
jne 0x41b334
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
mov dword [ebp - 0x20], eax
call fcn.004a0050
mov byte [ebp - 0xe], al
mov eax, dword [0x50b384]
add esp, 4
push eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
setne al
mov byte [ebp - 0xd], al
test al, al
jne 0x41a992
mov ecx, dword [0x50b3a0]
cmp byte [ecx + 0x1220], al
je 0x41a96e
cmp byte [esi + 0x426a], al
jne 0x41a988
cmp byte [esi + 0x4224], 0
jne 0x41a98e
mov edx, dword [0x50b384]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x41a98e
mov byte [ebp - 0xd], 1
jmp 0x41a992
mov byte [ebp - 0xd], 0
mov eax, dword [0x50b384]
push ebx
mov bl, byte [ebp - 0xd]
push edi
push eax
mov byte [ebp - 0xf], bl
call dword [sym.imp.USER32.dll_IsWindowVisible]
movzx edx, byte [ebp - 0xe]
mov edi, dword [ebp + 8]
push eax
movzx ecx, bl
mov ebx, dword [sym.imp.USER32.dll_wsprintfW]
push ecx
push edx
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x20]
push eax
push edi
lea ecx, [ebp - 0x13c]
push str.OnMinimizeRestore__i__Forex_08X_Our_u_Iconic_u_Vis_u
push ecx
call ebx
mov edx, dword [0x50b3a4]
add esp, 0x1c
cmp byte [edx + 0x127d2], 1
jb 0x41aa06
mov eax, dword [0x50b39c]
test eax, eax
je 0x41aa06
mov ecx, dword [eax + 0x4244]
test ecx, ecx
je 0x41aa06
push 1
push 0
push 1
lea eax, [ebp - 0x13c]
push eax
call fcn.004adc30
cmp edi, 8
jne 0x41aa79
cmp byte [ebp - 0xd], 0
je 0x41aa7e
cmp dword [esi + 0x43b8], 0
je 0x41aa6f
mov ecx, dword [0x50b3a0]
call fcn.00442e00
test al, al
je 0x41aa6f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x43b8]
cmp eax, 0x1f4
jae 0x41aa6f
push eax
lea ecx, [ebp - 0x13c]
push str.OnMinimizeRestore_skipped__delay_was__u_ms
push ecx
call ebx
lea edx, [ebp - 0x13c]
push 1
push edx
call fcn.00409880
add esp, 0x14
pop edi
pop ebx
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
mov edi, 3
mov dword [ebp + 8], edi
jmp 0x41aad7
cmp edi, 7
jne 0x41aaaf
mov ecx, dword [0x50b3a0]
cmp byte [ecx + 0x1220], 0
je 0x41aaa5
push 0
call fcn.00442e20
xor ecx, ecx
test al, al
sete cl
add ecx, 5
mov edi, ecx
mov dword [ebp + 8], edi
jmp 0x41aab9
mov edi, 6
mov dword [ebp + 8], edi
jmp 0x41aab9
cmp edi, 5
je 0x41aab9
cmp edi, 6
jne 0x41aad7
cmp byte [ebp - 0xd], 0
mov dword [esi + 0x43b0], 0
jne 0x41b332
cmp dword [ebp - 0x24], 0
je 0x41b332
mov byte [0x50b375], 1
test edi, edi
jne 0x41aafb
mov ecx, dword [0x50b3a0]
push edi
call fcn.00442e20
xor edx, edx
test al, al
setne dl
inc edx
mov edi, edx
mov dword [ebp + 8], edi
cmp edi, 3
jne 0x41ab07
mov edi, 3
jmp 0x41ab7a
cmp edi, 1
je 0x41ab3e
cmp edi, 6
je 0x41ab3e
cmp edi, 2
je 0x41ab3e
cmp edi, 5
je 0x41ab3e
mov eax, dword [0x50b384]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x41ab00
cmp byte [ebp - 0xe], 0
jne 0x41ab37
cmp byte [ebp - 0xd], 0
jne 0x41ab00
mov edi, 4
jmp 0x41ab7a
cmp dword [ebp - 0x24], 0
je 0x41ab5f
cmp byte [ebp - 0xe], 0
jne 0x41ab59
mov ecx, dword [0x50b3a0]
cmp byte [ecx + 0x1235], 0
je 0x41ab5f
cmp byte [ebp - 0xd], 0
je 0x41ab70
cmp edi, 5
je 0x41ab75
cmp edi, 6
je 0x41ab70
mov edi, 3
jmp 0x41ab7a
cmp edi, 5
jne 0x41ab7a
mov edi, 2
mov ecx, dword [0x50b3a0]
xor ebx, ebx
push ebx
mov dword [ebp - 0x14], edi
mov byte [ebp - 0x19], 0
call fcn.00442e20
mov byte [ebp - 0x15], al
mov eax, dword [0x50b3a0]
cmp byte [eax + 0x1220], bl
je 0x41abb4
cmp dword [eax + 0x1224], ebx
jbe 0x41abb4
call fcn.004a0170
test al, al
jne 0x41abb4
mov byte [ebp - 0x19], 1
mov edx, dword [0x50b3a4]
cmp byte [edx + 0x127d2], bl
jbe 0x41ad4f
cmp edi, 8
ja case.default.0x41abcf
jmp dword [edi*4 + 0x41b348]
push 1
push str.OnMinimizeRestore_sih_None_
call fcn.00409880
add esp, 8
mov byte [esi + 0x426a], 1
cmp dword [ebp - 0x24], ebx
je 0x41abfd
cmp byte [ebp - 0xd], bl
jne 0x41abfd
mov ecx, esi
call fcn.00411150
mov eax, dword [0x50b4d8]
cmp eax, dword [0x50b384]
je 0x41ac3a
cmp eax, dword [0x50bb90]
je 0x41ac3a
push eax
call fcn.004a0050
add esp, 4
test al, al
je 0x41ac3a
mov edx, dword [0x50b384]
push edx
call dword [sym.imp.USER32.dll_SetFocus]
mov eax, dword [0x50b384]
push eax
call fcn.004acc10
add esp, 4
mov eax, dword [0x50b3a0]
cmp byte [eax + 0x1220], bl
je 0x41b21a
cmp byte [ebp - 0x19], bl
je 0x41b169
mov eax, dword [eax + 0x1224]
cmp eax, 0x7d0
jbe 0x41ac66
mov eax, 0x7d0
mov ecx, dword [0x50b384]
push 0x50008
push eax
push ecx
call dword [sym.imp.USER32.dll_AnimateWindow]
cmp byte [ebp - 0x15], bl
jne 0x41b0fe
cmp dword [ebp - 0x14], 2
je 0x41b0fe
mov ecx, esi
call fcn.0041a740
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
mov dword [esi + 0x4220], 1
call fcn.00417ce0
mov edx, dword [0x50b384]
push 4
push edx
call fcn.004acc20
add esp, 8
jmp 0x41b21a
push 1
push str.OnMinimizeRestore_sih_ShowMinimize_
jmp 0x41abdd
push 1
push str.OnMinimizeRestore_sih_ShowHideTSA_
jmp 0x41abdd
push 1
push str.OnMinimizeRestore_sih_Show_
call fcn.00409880
add esp, 8
jmp 0x41ad70
push 1
push str.OnMinimizeRestore_sih_SetForeground_
call fcn.00409880
mov eax, dword [0x50b384]
add esp, 8
push eax
call fcn.004acc10
add esp, 4
jmp 0x41b310
push 1
push str.OnMinimizeRestore_sih_HideTSA_
jmp 0x41abdd
push 1
push str.OnMinimizeRestore_sih_Minimize_
jmp 0x41abdd
push 1
push str.OnMinimizeRestore_sih_AutoHide_
jmp 0x41abdd
push 1
push str.OnMinimizeRestore_sih_QuakeShowHide_
jmp 0x41abdd
push 1
push str.OnMinimizeRestore_Unknown_cmd_
call fcn.00409880
add esp, 8
cmp edi, 4
jne 0x41ad67
mov eax, dword [0x50b384]
push eax
call fcn.004acc10
add esp, 4
jmp 0x41b310
cmp edi, 3
jne 0x41abe5
mov byte [ebp + 0xb], bl
mov byte [ebp - 0x2c], bl
cmp byte [ebp - 0xd], bl
je 0x41ad8b
mov ecx, dword [esi + 0x4230]
push 1
call fcn.0043dcc0
mov byte [ebp - 0x2c], al
mov ecx, dword [0x50b3a0]
cmp byte [ecx + 0x11289], bl
je 0x41adeb
lea ecx, [ebp - 0x14]
call fcn.004a4720
lea edx, [ebp - 0x14]
push ebx
push edx
mov dword [ebp - 4], ebx
call fcn.0049f8f0
add esp, 8
test eax, eax
jl 0x41addc
mov edi, dword [esi + 0x4220]
push ebx
push ebx
lea ecx, [ebp - 0x14]
mov dword [esi + 0x4220], 0x64
call fcn.004a4800
mov ecx, eax
call fcn.004ab5e0
mov dword [esi + 0x4220], edi
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
call fcn.004a4770
mov eax, dword [0x50b3a0]
cmp byte [eax + 0x1220], 0
je 0x41ae1f
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [0x50b384]
jne 0x41afc9
cmp byte [ebp - 0xd], 0
jne 0x41afc9
cmp dword [ebp - 0x24], ebx
je 0x41afc9
mov byte [ebp + 0xb], 1
mov dword [esi + 0x4220], ebx
cmp byte [0x50e099], 0
jne 0x41ae3f
mov edx, dword [0x50b384]
push edx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
jne 0x41ae7f
mov ecx, dword [ebp - 0x19]
movzx eax, byte [ebp - 0x19]
mov edi, dword [esi + 0x506c]
push ecx
push ebx
mov ecx, 0x50dcf0
mov dword [esi + 0x5068], 1
mov dword [esi + 0x506c], eax
call fcn.004976e0
push ebx
mov ecx, esi
mov dword [esi + 0x506c], edi
mov dword [esi + 0x5068], ebx
call fcn.00405600
mov byte [ebp - 0xf], al
mov edx, dword [0x50b384]
push edx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x41aec6
mov ecx, dword [esi + 0x4230]
push 1
call fcn.0043dca0
push ebx
push 0xf120
mov byte [ebp - 0x20], al
mov eax, dword [0x50b384]
push 0x112
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x20]
push ecx
mov ecx, dword [esi + 0x4230]
call fcn.0043dca0
mov edx, dword [0x50b3a0]
cmp byte [edx + 0x1220], 0
je 0x41aef9
lea eax, [ebp - 0x4c]
push eax
mov ecx, esi
call fcn.004100b0
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x4c]
mov eax, dword [0x50b384]
push 5
push ebx
push ebx
push ecx
push edx
push ebx
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
mov byte [esi + 0x426a], 0
mov ecx, dword [0x50b384]
push ecx
call fcn.004acc10
mov eax, dword [0x50b3a0]
add esp, 4
cmp byte [eax + 0x1220], 0
je 0x41b098
cmp byte [ebp + 0xb], 0
jne 0x41b076
cmp byte [ebp - 0x19], 0
je 0x41afee
mov ebx, dword [eax + 0x1224]
cmp ebx, 0x7d0
jbe 0x41af48
mov ebx, 0x7d0
lea edx, [ebp - 0x3c]
push edx
mov ecx, esi
call fcn.004100b0
mov eax, dword [0x50b384]
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x41af74
mov ecx, dword [0x50b384]
push 0
push ecx
call fcn.004acc20
add esp, 8
mov edi, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
push 4
sub ecx, edi
push ecx
sub eax, edx
push eax
push edi
push edx
mov edx, dword [0x50b384]
push 0
push edx
call dword [sym.imp.USER32.dll_SetWindowPos]
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
mov dword [esi + 0x4220], 0x64
call fcn.00417ce0
mov eax, dword [0x50b384]
push 0x60004
push ebx
push eax
call dword [sym.imp.USER32.dll_AnimateWindow]
jmp 0x41b076
mov ecx, esi
call fcn.0041a740
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
mov dword [esi + 0x4220], 1
call fcn.00417ce0
jmp 0x41ae25
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, esi
mov edi, eax
call fcn.0041a740
mov ecx, dword [0x50b3a0]
mov ecx, dword [ecx + 0x1224]
test ecx, ecx
jbe 0x41b076
mov eax, 0xcccccccd
mul ecx
mov ebx, edx
shr ebx, 3
cmp dword [esi + 0x4220], 0x64
jge 0x41b076
add dword [esi + 0x4220], 0xa
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.00417ce0
mov edx, dword [0x50b384]
push 0x100
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebx
sub ecx, eax
add ecx, edi
test ecx, ecx
jle 0x41b065
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esi + 0x4220], 0x64
mov edi, eax
jl 0x41b022
mov eax, 0x64
cmp dword [esi + 0x4220], eax
je 0x41b098
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
mov dword [esi + 0x4220], eax
call fcn.00417ce0
lea ecx, [ebp - 0x28]
mov dword [esi + 0x4220], 0
call fcn.004a4720
lea eax, [ebp - 0x28]
push 0
push eax
mov dword [ebp - 4], 1
call fcn.0049f8f0
add esp, 8
test eax, eax
jl 0x41b0d5
lea ecx, [ebp - 0x28]
call fcn.004a4800
mov ecx, eax
add ecx, 8
call fcn.0049cb60
cmp byte [ebp - 0xf], 0
je 0x41b0ea
mov ecx, dword [ebp - 0x2c]
push ecx
mov ecx, dword [esi + 0x4230]
call fcn.0043dcc0
lea ecx, [ebp - 0x28]
mov dword [ebp - 4], 0xffffffff
call fcn.004a4770
jmp 0x41b310
mov ecx, dword [0x50b3a0]
call fcn.00443430
test al, al
je 0x41b21a
mov ecx, dword [0x50b3a0]
push 0
call fcn.00443480
test al, al
je 0x41b21a
mov ecx, esi
call fcn.0041a740
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
mov dword [esi + 0x4220], 1
call fcn.00417ce0
mov eax, dword [0x50b384]
push 4
push eax
call fcn.004acc20
mov ecx, dword [0x50b384]
push 0
push ecx
call fcn.004acc20
add esp, 0x10
jmp 0x41b21a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
mov eax, dword [0x50b3a0]
xor edx, edx
cmp edx, dword [eax + 0x1224]
mov ecx, esi
sbb eax, eax
and eax, 0x5a
inc eax
mov dword [esi + 0x4220], eax
call fcn.0041a740
mov ecx, dword [0x50b3a0]
mov ecx, dword [ecx + 0x1224]
test ecx, ecx
jbe 0x41b20b
mov eax, 0xcccccccd
mul ecx
mov ebx, edx
shr ebx, 3
cmp dword [esi + 0x4220], 0
jle 0x41b21a
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.00417ce0
mov edx, dword [0x50b384]
push 0x100
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_RedrawWindow]
add dword [esi + 0x4220], 0xfffffff6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebx + edi]
sub ecx, eax
test ecx, ecx
jle 0x41b1f8
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esi + 0x4220], 0
mov edi, eax
jg 0x41b1b6
jmp 0x41b21a
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0xffffffffffffffff
mov ecx, esi
call fcn.00417ce0
mov eax, dword [ebp - 0x14]
xor ebx, ebx
mov dword [esi + 0x4220], ebx
cmp eax, 2
jne 0x41b24a
push ebx
mov ecx, 0x50dcf0
mov dword [esi + 0x5068], 1
call fcn.00497660
mov dword [esi + 0x5068], ebx
jmp 0x41b310
cmp eax, 1
je 0x41b259
cmp dword [ebp + 8], 6
jne 0x41b310
mov eax, dword [0x50b3a0]
cmp byte [eax + 0x1220], 0
je 0x41b2f8
mov edi, dword [ebp - 0x20]
cmp edi, ebx
je 0x41b278
cmp byte [ebp - 0xe], 0
je 0x41b2b7
push ebx
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_FindWindowExW]
mov edi, eax
cmp edi, ebx
je 0x41b2b7
mov ebx, dword [sym.imp.USER32.dll_GetWindowLongW]
mov edi, edi
push edi
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x41b2a4
push 0xffffffffffffffec
push edi
call ebx
test al, al
jns 0x41b2b7
push 0
push 0
push edi
push 0
call dword [sym.imp.USER32.dll_FindWindowExW]
mov edi, eax
test edi, edi
jne 0x41b290
mov ecx, dword [0x50b384]
push 0x15
push 0
push 0
push 0xffff8300
push 0xffff8300
push 0
push ecx
call dword [sym.imp.USER32.dll_SetWindowPos]
test edi, edi
je 0x41b2e7
mov eax, edi
push eax
call fcn.004acc10
add esp, 4
jmp 0x41b310
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call fcn.004acc10
add esp, 4
jmp 0x41b310
mov edx, dword [0x50b384]
push ebx
push 0xf020
push 0x112
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 1
push str.OnMinimizeRestore_finished
mov dword [esi + 0x43b8], eax
call fcn.00409880
add esp, 8
mov byte [0x50b375], 0
pop edi
pop ebx
mov ecx, dword [ebp - 0xc]
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4