Function at 0x581768
Capabilities:
Check for time delay via gettickcount
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe94
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0xc], ecx
mov word [ebp - 0x5e], dx
mov dword [ebp - 0x5c], eax
xor eax, eax
push ebp
push 0x58303e
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x58301f
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
call fcn.0057d640
push eax
call sub.user32.dll_IsIconic
test eax, eax
jne 0x58301f
mov byte [0x5f3bf8], 1
mov eax, dword [ebp - 0x5c]
mov edx, dword [0x475af8]
call fcn.00403b18
test al, al
je 0x5817ff
push 0
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
mov ecx, 0x40000
mov edx, 0xa100
call fcn.00583bcc
mov dword [ebp - 0x90], eax
jmp 0x581807
xor eax, eax
mov dword [ebp - 0x90], eax
cmp dword [ebp - 0x90], 0
je 0x581828
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x2bc], 0
je 0x581828
call fcn.00557ffc
test al, al
jne 0x58182c
xor eax, eax
jmp 0x58182e
mov al, 1
mov byte [ebp - 0x9d], al
call fcn.00557ffc
test al, al
je 0x5822a6
mov eax, dword [ebp - 0x5c]
mov edx, dword [0x475af8]
call fcn.00403b18
test al, al
je 0x5822a6
cmp dword [ebp - 0x90], 0
je 0x5822a6
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x2bc], 0
je 0x5818cd
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x130], 0
je 0x5818a4
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x130]
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x90]
xor edx, edx
mov dword [eax + 0x130], edx
jmp 0x5818cd
xor edx, edx
xor eax, eax
call fcn.005621e4
mov dword [ebp - 0xf4], eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x25c]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 0xf4]
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp - 0x90]
call fcn.005b17c8
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x25c]
cmp dword [eax + 0x4c], 0
jne 0x5818f6
mov byte [0x5f3bf8], 0
jmp 0x58301f
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x25c]
mov eax, dword [eax + 0x4c]
call fcn.00562298
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.004297b8
push 0
mov eax, dword [ebp - 0x90]
push eax
push 1
xor ecx, ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x1c]
call fcn.0057ddf0
cmp dword [ebp - 0x1c], 0
je 0x58301f
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x2bc], 0
jne 0x5819a2
mov eax, dword [ebp - 0x90]
cmp byte [eax + 0x3c], 0
je 0x58197f
push 0x1fffffff
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x90]
call fcn.005b55bc
lea edx, [ebp - 0x150]
mov cl, 0xff
mov eax, dword [ebp - 0x1c]
call fcn.0056a048
jmp 0x5819a2
push 0x1fffffff
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x1c]
call fcn.005cc4ac
lea edx, [ebp - 0x150]
mov cl, 0xff
mov eax, dword [ebp - 0x1c]
call fcn.0056a048
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.00429b98
movzx eax, word [ebp - 0x5e]
mov ecx, 0xc
xor edx, edx
div ecx
mov dword [ebp - 0x10], eax
mov ebx, 0x11b
lea edx, [ebp - 0x70]
mov eax, dword [ebp - 0x1c]
call fcn.005cc57c
lea ecx, [ebp - 0x88]
xor edx, edx
xor eax, eax
call fcn.005cc5c8
cmp dword [ebp - 0x10], 0
jle 0x5819f0
lea eax, [ebp - 0x54]
xor edx, edx
call fcn.005ccd8c
jmp 0x5819fb
mov dl, byte [ebp - 0xc]
lea eax, [ebp - 0x54]
call fcn.005ccd8c
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
test eax, eax
je 0x581f95
cmp dword [eax + 0x28], 0
jne 0x581a1a
call fcn.005c80a8
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x30]
mov dword [edx + 0x38], ecx
mov ecx, dword [eax + 0x34]
mov dword [edx + 0x3c], ecx
cmp dword [eax + 0x3c], 0
je 0x581a67
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x3c]
push eax
push 0xfffffffffffffff8
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowLongA
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
mov dword [ebp - 0x8c], eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
call fcn.005c80a8
mov eax, dword [ebp - 0x90]
cmp byte [eax + 0xd5], 0
je 0x581abe
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x90]
call fcn.005b6d7c
mov eax, dword [ebp - 0x14c]
mov dword [ebp - 0xac], eax
jmp 0x581bc6
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x25c]
call fcn.005a1790
mov esi, eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
push eax
call sub.user32.dll_IsZoomed
test eax, eax
je 0x581b61
mov eax, dword [esi + 0x44]
cmp eax, dword [esi + 0x40]
je 0x581b61
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x90]
call fcn.005b6d7c
mov edi, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
call fcn.005a92fc
add edi, eax
xor edx, edx
mov eax, dword [ebp - 0x90]
call fcn.005a9248
sub edi, eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
mov edx, dword [ebp - 0x90]
mov edx, dword [edx + 0x2bc]
xor ecx, ecx
call fcn.005a9150
sub edi, eax
add edi, dword [esi + 0x40]
sub edi, dword [esi + 0x44]
mov dword [ebp - 0xac], edi
jmp 0x581bc6
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x90]
call fcn.005b6d7c
mov esi, dword [ebp - 0x14c]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
call fcn.005a92fc
add esi, eax
xor edx, edx
mov eax, dword [ebp - 0x90]
call fcn.005a9248
sub esi, eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
mov edx, dword [ebp - 0x90]
mov edx, dword [edx + 0x2bc]
xor ecx, ecx
call fcn.005a9150
sub esi, eax
mov dword [ebp - 0xac], esi
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
mov edx, dword [ebp - 0x90]
mov edx, dword [edx + 0x2bc]
xor ecx, ecx
call fcn.005a9150
push eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
call fcn.005a933c
mov esi, eax
pop eax
sub esi, eax
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x90]
call fcn.005b6d7c
add esi, dword [ebp - 0x150]
mov dword [ebp - 0xb0], esi
lea eax, [ebp - 0x108]
push eax
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
push eax
call sub.user32.dll_GetWindowRect
mov edx, dword [ebp - 0x108]
sub edx, dword [ebp - 0xb0]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.0045f748
mov edx, dword [ebp - 0x104]
sub edx, dword [ebp - 0xac]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.0045f76c
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 0x70]
call fcn.0045f794
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
mov edx, dword [ebp - 0x6c]
call fcn.0045f7b8
push 3
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
push eax
call sub.user32.dll_GetWindow
mov esi, eax
push ebx
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x104]
sub eax, dword [ebp - 0xac]
push eax
mov eax, dword [ebp - 0x108]
sub eax, dword [ebp - 0xb0]
push eax
push esi
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowPos
push 0
call sub.user32.dll_GetDC
mov dword [ebp - 0x78], eax
push 2
lea eax, [ebp - 0x54]
push eax
push 0x1fffffff
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.00429ca0
push eax
lea eax, [ebp - 0x70]
push eax
push 0
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
mov eax, dword [0x5f47ac]
mov eax, dword [eax]
call eax
push 4
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
call sub.user32.dll_ShowWindow
lea eax, [ebp - 0x70]
call fcn.0056228c
mov dword [ebp - 0x58], eax
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x58]
call fcn.005cc4ac
lea eax, [ebp - 0x150]
push eax
mov eax, dword [ebp - 0x58]
call fcn.0042e7d8
call fcn.00429ca0
xor ecx, ecx
pop edx
call fcn.0055c4f0
cmp dword [ebp - 0x10], 0
jle 0x581e8b
push ebp
call fcn.00581420
pop ecx
xor eax, eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x10]
jg 0x581e85
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x68], eax
push ebp
call fcn.0058153c
pop ecx
push 2
lea eax, [ebp - 0x54]
push eax
push 0x1fffffff
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x58]
call fcn.0042e7d8
call fcn.00429ca0
push eax
lea eax, [ebp - 0x70]
push eax
push 0
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
mov eax, dword [0x5f47ac]
mov eax, dword [eax]
call eax
push 0
xor eax, eax
mov al, byte [ebp - 0x52]
mov edx, dword [ebp - 0xc]
sub edx, eax
lea edx, [edx + edx*2]
xor eax, eax
call fcn.00430be0
mov edx, eax
mov eax, 0xff
call fcn.00430b1c
push eax
mov eax, dword [ebp - 0x8c]
call fcn.004668b8
mov edx, dword [ebp - 0xf4]
pop ecx
call fcn.00584864
push ebp
call fcn.005816f8
pop ecx
inc dword [ebp - 0xa4]
cmp dword [ebp - 0x10], 0
jle 0x581e76
mov edx, 0xc
mov eax, dword [ebp - 0x68]
call fcn.005ccd40
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x10]
jle 0x581dc5
mov al, byte [ebp - 0xc]
mov byte [ebp - 0x52], al
mov eax, dword [ebp - 0x78]
push eax
push 0
call sub.user32.dll_ReleaseDC
mov byte [0x5f3bf8], 0
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
cmp byte [eax + 0x2e0], 0
je 0x581ec6
mov dl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.0047d55c
push 0
mov ecx, 1
mov edx, 0xb
mov eax, dword [ebp - 0x5c]
call fcn.004611a4
push 0x585
push 0
push 0
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
push eax
call sub.user32.dll_RedrawWindow
push 0
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
xor ecx, ecx
xor edx, edx
call fcn.005c7e70
push eax
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowRgn
or ebx, 4
push ebx
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x104]
sub eax, dword [ebp - 0xac]
push eax
mov eax, dword [ebp - 0x108]
sub eax, dword [ebp - 0xb0]
push eax
push 0
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov eax, dword [eax + 0x28]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowPos
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x2bc]
mov cl, 0xff
xor edx, edx
call fcn.005c6be0
lea eax, [ebp - 0xf4]
call fcn.0040f124
lea eax, [ebp - 0x8c]
call fcn.0040f124
jmp 0x582291
lea eax, [ebp - 0x108]
push eax
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
push eax
call sub.user32.dll_GetWindowRect
push 0
xor ecx, ecx
mov dl, 1
mov eax, dword [0x4e3720]
call fcn.00478ad0
mov dword [0x5f3bf4], eax
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x40]
mov eax, dword [0x5f3bf4]
call fcn.0045f748
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x44]
mov eax, dword [0x5f3bf4]
call fcn.0045f76c
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x48]
mov eax, dword [0x5f3bf4]
call fcn.0045f794
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x4c]
mov eax, dword [0x5f3bf4]
call fcn.0045f7b8
push 0xffffffffffffffec
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
push eax
call sub.user32.dll_GetWindowLongA
test al, 8
je 0x582024
mov dl, 3
mov eax, dword [0x5f3bf4]
call fcn.0047a3dc
or esi, 0xffffffff
jmp 0x582063
mov eax, dword [ebp - 0x90]
cmp dword [eax + 0x2bc], 0
je 0x582048
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
mov esi, eax
jmp 0x582063
push 3
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.004668b8
push eax
call sub.user32.dll_GetWindow
mov esi, eax
and ebx, 0xfffffffd
push ebx
mov eax, dword [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x70]
push eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x44]
push eax
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x40]
push eax
push esi
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowPos
push 0
call sub.user32.dll_GetDC
mov dword [ebp - 0x78], eax
push 0xffffffffffffffec
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
call sub.user32.dll_GetWindowLongA
or eax, 0x80000
or eax, 0x8000000
push eax
push 0xffffffffffffffec
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowLongA
push 2
lea eax, [ebp - 0x54]
push eax
push 0x1fffffff
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.00429ca0
push eax
lea eax, [ebp - 0x70]
push eax
push 0
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
mov eax, dword [0x5f47ac]
mov eax, dword [eax]
call eax
mov eax, dword [ebp - 0x90]
call fcn.005aa264
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 0x90]
call fcn.005aa748
mov dword [ebp - 0x64], eax
push 0
mov eax, dword [ebp - 0x64]
push eax
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
call sub.user32.dll_SetWindowRgn
push 4
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
call sub.user32.dll_ShowWindow
lea eax, [ebp - 0x70]
call fcn.0056228c
mov dword [ebp - 0x58], eax
lea edx, [ebp - 0x150]
mov eax, dword [ebp - 0x58]
call fcn.005cc4ac
lea eax, [ebp - 0x150]
push eax
mov eax, dword [ebp - 0x58]
call fcn.0042e7d8
call fcn.00429ca0
xor ecx, ecx
pop edx
call fcn.0055c4f0
cmp dword [ebp - 0x10], 0
jle 0x582221
push ebp
call fcn.00581420
pop ecx
xor eax, eax
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x10]
jg 0x58221b
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x68], eax
push ebp
call fcn.0058153c
pop ecx
push 2
lea eax, [ebp - 0x54]
push eax
push 0x1fffffff
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp - 0x58]
call fcn.0042e7d8
call fcn.00429ca0
push eax
lea eax, [ebp - 0x70]
push eax
push 0
mov eax, dword [ebp - 0x78]
push eax
mov eax, dword [0x5f3bf4]
call fcn.004668b8
push eax
mov eax, dword [0x5f47ac]
mov eax, dword [eax]
call eax
push ebp
call fcn.005816f8
pop ecx
inc dword [ebp - 0xa4]
cmp dword [ebp - 0x10], 0
jle 0x582210
mov edx, 0xc
mov eax, dword [ebp - 0x68]
call fcn.005ccd40
mov eax, dword [ebp - 0xa4]
cmp eax, dword [ebp - 0x10]
jle 0x5821a3
mov al, byte [ebp - 0xc]
mov byte [ebp - 0x52], al
mov eax, dword [ebp - 0x78]
push eax
push 0
call sub.user32.dll_ReleaseDC
mov byte [0x5f3bf8], 0
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
cmp byte [eax + 0x2e0], 0
je 0x58225c
mov dl, byte [ebp - 0xc]
mov eax, dword [ebp - 0x90]
mov eax, dword [eax + 0x28c]
call fcn.0047d55c
push 0
mov ecx, 1
mov edx, 0xb
mov eax, dword [ebp - 0x5c]
call fcn.004611a4
push 0x585
push 0
push 0
mov eax, dword [ebp - 0x5c]
call fcn.004668b8
push eax
call sub.user32.dll_RedrawWindow
mov eax, 0x5f3bf4
call fcn.0040f124
lea eax, [ebp - 0x58]
call fcn.0040f124
lea eax, [ebp - 0x1c]
call fcn.0040f124
jmp 0x58301f
cmp dword [0x5f3bf4], 0
jne 0x5822b9
xor edx, edx
mov eax, dword [ebp - 0x5c]
call fcn.00580d54
cmp dword [0x5f3bf4], 0
je 0x58301f
mov edx, dword [ebp - 0x5c]
mov eax, dword [0x5f3bf4]
call fcn.0057e1d0
mov eax, dword [ebp - 0x5c]
mov edx, dword [eax + 0x4c]
mov eax, dword [ebp - 0x5c]
mov eax, dword [eax + 0x48]
call fcn.005621e4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.004297b8
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.00429ca0
push eax
call sub.gdi32.dll_SaveDC
mov dword [ebp - 0x74], eax
xor eax, eax
push ebp
push 0x58236d
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 1
xor ecx, ecx
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x1c]
call fcn.0057ddf0
cmp dword [ebp - 0x1c], 0
jne 0x58233b
call fcn.0040420c
jmp 0x58301f
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x582374
mov eax, dword [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.00429ca0
push eax
call sub.gdi32.dll_RestoreDC
mov eax, dword [ebp - 0x1c]
call fcn.0042e7d8
call fcn.00429b98
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x583045
lea eax, [ebp - 0x9c]
mov edx, dword [0x4e36f8]
call fcn.00405db0
ret