Function at 0x4ad8ec
Capabilities:
Check for time delay via gettickcount
Create thread

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov ebx, edx
mov esi, eax
cmp byte [0x4c8151], 0
jne 0x4adba2
cmp byte [0x4ce88a], 0
jne 0x4adba2
mov byte [0x4c81a7], 0
cmp byte [0x4c8100], 0
je 0x4ad9fe
mov al, byte [0x4c8180]
mov byte [0x4c8181], al
mov eax, dword [0x4c82a8]
mov dword [0x4c82ac], eax
mov al, byte [0x4c81a7]
mov byte [0x4c81a6], al
cmp byte [0x4c8103], 0
jne 0x4ad976
mov byte [0x4c8101], 1
mov al, byte [0x4c81a2]
mov byte [0x4c8182], al
cmp esi, 0x4cfa44
je 0x4ad97d
mov edx, 0x4cf9f8
mov eax, 0x4cfa44
call fcn.004b81b0
jmp 0x4ad97d
mov byte [0x4c8103], 0
mov eax, 0x4cf9f8
mov edx, esi
call fcn.004b81b0
push esi
mov eax, dword [0x4cfd18]
push eax
call sub.user32.dll_SetWindowTextA
mov eax, ebx
and al, 2
mov dl, byte [0x4c8181]
and dl, 2
cmp al, dl
je 0x4ad9ce
mov eax, ebx
and al, 2
cmp al, 2
sete al
and eax, 0x7f
or eax, 0
push eax
push 0xf060
push 0
mov eax, dword [0x4cfd18]
push eax
call sub.user32.dll_GetSystemMenu
push eax
call sub.user32.dll_EnableMenuItem
mov eax, ebx
and al, 1
mov dl, byte [0x4c8181]
and dl, 1
cmp al, dl
je 0x4ad9f3
cmp al, 1
jne 0x4ad9ec
xor eax, eax
call fcn.004ad7b0
jmp 0x4ad9f3
mov al, 1
call fcn.004ad7b0
mov byte [0x4c8180], bl
jmp 0x4adb6c
mov byte [0x4c81a1], 0
mov byte [0x4c81a2], 0
mov eax, 0x4cf9f8
mov edx, esi
call fcn.004b81b0
mov edi, 0x480000
lea edx, [esp + 4]
lea eax, [esp + 6]
call fcn.004ad88c
push 0
mov eax, dword [0x4bf704]
push eax
push 0
mov eax, dword [0x4cfd48]
push eax
movsx eax, word [esp + 0x14]
push eax
movsx ebp, word [esp + 0x1a]
push ebp
mov eax, dword [0x4c822c]
sar eax, 1
jns 0x4ada52
adc eax, 0
movsx edx, word [esp + 0x1c]
sar edx, 1
jns 0x4ada5e
adc edx, 0
sub eax, edx
sub eax, 0xf
push eax
mov eax, dword [0x4c8228]
sar eax, 1
jns 0x4ada70
adc eax, 0
sar ebp, 1
jns 0x4ada77
adc ebp, 0
sub eax, ebp
push eax
push edi
push esi
mov eax, dword [0x4bec4c]
push eax
push 0x80
call sub.user32.dll_CreateWindowExA
mov dword [0x4cfd18], eax
cmp byte [0x4c6749], 0
je 0x4adae6
test bl, 1
jne 0x4adae6
push 0
mov eax, dword [0x4bf704]
push eax
push 0
mov eax, dword [0x4cfd18]
push eax
push 0x16
movsx eax, word [esp + 0x1a]
sub eax, 0x20
sub eax, 0x19
xor edx, edx
mov dl, byte [0x4c814e]
lea edx, [edx + edx*4]
sub eax, edx
push eax
push 0xc
push 0xd
push 0x50000000
push 0
push 0x4adbac
push 0
call sub.user32.dll_CreateWindowExA
mov dword [0x4cfd20], eax
push esp
push 0
push 0
push fcn.004ad860
push 0x10000
push 0
call sub.kernel32.dll_CreateThread
mov dword [0x4c8124], eax
push 1
mov eax, dword [0x4c8124]
push eax
call sub.kernel32.dll_SetThreadPriority
mov byte [0x4c8138], 0
mov byte [0x4c8100], 1
mov byte [0x4c8101], 0
mov eax, ebx
and al, 2
cmp al, 2
jne 0x4adb45
push 2
push 0xf060
push 0
mov eax, dword [0x4cfd18]
push eax
call sub.user32.dll_GetSystemMenu
push eax
call sub.user32.dll_EnableMenuItem
test bl, 1
jne 0x4adb51
mov al, 1
call fcn.004ad7b0
mov byte [0x4c8181], 0
mov byte [0x4c8180], bl
xor eax, eax
mov dword [0x4c82ac], eax
mov byte [0x4c81a6], 0
call sub.kernel32.dll_GetTickCount
mov dword [0x4c82a8], eax
mov eax, dword [0x4c82a8]
mov dword [0x4c82c4], eax
mov byte [0x4c82c8], 0
xor eax, eax
mov dword [0x4c82a4], eax
push 0
push 0x9c4
push 1
mov eax, dword [0x4cfd18]
push eax
call sub.user32.dll_SetTimer
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret