Function at 0x484870
Capabilities:
Acquire debug privileges
Check for time delay via gettickcount
Create thread
Terminate thread

Disassembly:
push 0xffffffffffffffff
push 0x4e7540
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
push edi
push 0x5194c4
mov dword [esp + 0x24], 0x5194c4
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [esp + 0x68]
mov edx, dword [esp + 0x60]
mov edi, dword [esp + 0x54]
mov ebp, dword [esp + 0x5c]
push 0x519448
mov cl, al
push 0x10000
and cl, 0xc0
mov dword [esp + 0x38], edx
lea edx, [esp + 0x2c]
push edx
mov byte [esp + 0x1b], cl
mov ecx, dword [esp + 0x64]
push 0x4846e0
xor ebx, ebx
and al, 0xf
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x74]
push 0x20000
push ebx
mov dword [esp + 0x64], ebx
mov byte [esp + 0x80], al
mov dword [esp + 0x3c], edi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x50], al
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
mov dword [esp + 0x1c], eax
jne 0x484939
push 0x5194c4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
push esi
mov esi, 0x270f
nop
cmp dword [esp + 0x40], ebx
je 0x484964
push ebx
call dword [sym.imp.KERNEL32.dll_Sleep]
dec esi
jns 0x484940
cmp dword [esp + 0x40], ebx
je 0x484964
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [esp + 0x40], ebx
jne 0x484956
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x5c], ebp
mov ebx, 0x4f5298
xor esi, esi
xor ebp, ebp
cmp edi, 2
mov dword [esp + 0x64], ebx
jne 0x484995
mov dword [esp + 0x64], ebp
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x5c], 0x4f6894
mov ebp, 0x4f6888
mov al, byte [0x519468]
test al, 4
mov dword [esp + 0x14], 0
mov byte [esp + 0x18], 0
jne 0x4849c6
or al, 4
push 2
push str.SeDebugPrivilege
mov byte [esp + 0x20], 1
mov byte [0x519468], al
call fcn.00420c19
add esp, 8
mov edi, dword [sym.imp.USER32.dll_FindWindowW]
mov dword [esp + 0x1c], 0xa
dec dword [esp + 0x1c]
js 0x484a02
mov eax, dword [esp + 0x5c]
push eax
push ebx
call edi
mov esi, eax
test esi, esi
jne 0x484a02
test ebp, ebp
je 0x4849f6
push ebp
push ebx
call edi
mov esi, eax
test esi, esi
jne 0x484a02
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x4849d4
test esi, esi
mov dword [esp + 0x1c], 0xa
jne 0x484a5a
mov edi, edi
dec dword [esp + 0x1c]
js 0x484a41
mov ecx, dword [esp + 0x5c]
push ecx
push 0
call edi
mov esi, eax
test esi, esi
jne 0x484a5a
test ebp, ebp
je 0x484a33
push ebp
push eax
call edi
mov esi, eax
test esi, esi
jne 0x484a5a
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x484a10
jmp 0x484a5a
test esi, esi
jne 0x484a5a
mov edx, dword [esp + 0x5c]
push esi
push esi
push esi
push esi
push esi
push esi
push edx
call fcn.00454fd0
add esp, 0x1c
mov esi, eax
test esi, esi
mov dword [esp + 0x1c], 0x5a
jne 0x484a94
dec dword [esp + 0x1c]
js 0x484a94
mov eax, dword [esp + 0x5c]
push eax
push ebx
call edi
mov esi, eax
test esi, esi
jne 0x484a94
test ebp, ebp
je 0x484a88
push ebp
push ebx
call edi
mov esi, eax
test esi, esi
jne 0x484a94
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x484a66
test esi, esi
mov ebx, 0x5a
jne 0x484acc
lea ecx, [ecx]
dec ebx
js 0x484acc
mov ecx, dword [esp + 0x5c]
push ecx
push 0
call edi
mov esi, eax
test esi, esi
jne 0x484acc
test ebp, ebp
je 0x484ac0
push ebp
push eax
call edi
mov esi, eax
test esi, esi
jne 0x484acc
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
test esi, esi
je 0x484aa0
mov ebx, dword [esp + 0x58]
cmp ebx, 2
jne 0x484ae5
test esi, esi
je 0x484ae5
mov edx, dword [esp + 0x60]
push edx
push esi
call dword [sym.imp.USER32.dll_SetWindowTextW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp ebx, 1
mov ebp, eax
jne 0x484b01
test esi, esi
je 0x484b01
mov eax, dword [0x518e00]
test eax, eax
je 0x484b01
mov dword [eax], esi
cmp byte [esp + 0x13], 0x80
je 0x484bef
cmp ebx, 1
jne 0x484b69
test esi, esi
je 0x484bef
mov al, byte [0x5152e8]
test al, al
jle 0x484b5d
mov ebx, dword [esp + 0x68]
test ebx, ebx
jle 0x484b3a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebp
cmp eax, ebx
jge 0x484bcf
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0x64]
push eax
push ecx
call edi
mov esi, eax
test esi, esi
je 0x484b5d
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [0x5152e8]
test al, al
jg 0x484b22
mov eax, dword [esp + 0x44]
test eax, eax
je 0x484bda
mov eax, dword [eax]
jmp 0x484bdc
cmp ebx, 2
jne 0x484b19
mov edi, dword [esp + 0x68]
test edi, edi
jg 0x484ba4
lea ecx, [esp + 0x18]
mov byte [esp + 0x50], 0
call fcn.0043f310
push 0x5194c4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
mov al, byte [0x5152e8]
test al, al
jle 0x484bc5
lea ecx, [ecx]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebp
cmp eax, edi
jge 0x484bc5
mov al, byte [0x5152e8]
test al, al
jg 0x484bb0
push 0
call dword [sym.imp.ADVAPI32.dll_AbortSystemShutdownW]
jmp 0x484bef
movzx edx, byte [esp + 0x6c]
mov dword [esp + 0x14], edx
jmp 0x484be0
xor eax, eax
mov dword [esp + 0x14], eax
mov eax, dword [0x518e00]
test eax, eax
je 0x484bef
mov dword [eax], 0
mov eax, dword [esp + 0x44]
test eax, eax
je 0x484bfd
mov dword [eax], 0xffffffff
test esi, esi
je 0x484c33
push 0
push 0
push 0x10
push esi
call dword [sym.imp.USER32.dll_PostMessageW]
mov edi, dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 2
push 0x111
push esi
call edi
push 0
push 7
push 0x111
push esi
call edi
push esi
call dword [sym.imp.USER32.dll_DestroyWindow]
mov esi, dword [esp + 0x20]
push 0
push esi
call dword [sym.imp.KERNEL32.dll_TerminateThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, byte [esp + 0x18]
test al, al
mov esi, dword [esp + 0x14]
mov byte [esp + 0x50], 0
je 0x484c76
mov bl, byte [0x519468]
push 4
and bl, 0xfb
push str.SeDebugPrivilege
mov byte [0x519468], bl
call fcn.00420c19
add esp, 8
push 0x5194c4
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x48]
mov eax, esi
pop esi
pop edi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x44
ret