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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x3a4
mov eax, dword [0x46700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov eax, dword [edi + 0x2c]
mov ecx, dword [eax]
lea edx, reloc.ADVAPI32.dll_TraceMessage
push edx
xor ebx, ebx
push eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ebx
call dword [ecx + 0x1c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], ebx
jl 0x45187a
cmp dword [edi + 0x34], ebx
je 0x451896
mov dword [edi + 0x30], ebx
cmp dword [edi + 0x28], ebx
je 0x45188a
push dword [edi + 0x28]
call esi
mov dword [edi + 0x28], ebx
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], eax
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
push 2
pop ecx
sub eax, ebx
je 0x451954
dec eax
je 0x451944
dec eax
je 0x451928
dec eax
je 0x4518ed
dec eax
je 0x4518de
dec eax
je 0x4518c4
mov ebx, 0x2779
jmp 0x4519ae
push 4
mov esi, 0x4211a8
mov ebx, 0x2778
call fcn.00440071
and dword [edi + 0x30], 0
jmp 0x4519ab
mov ebx, 0x2777
mov esi, 0x42119c
jmp 0x4519a4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x24]
cmp eax, 0x2710
jbe 0x45191c
and dword [edi + 0x30], 0
cmp dword [edi + 0x28], 0
mov ebx, 0x277a
je 0x451915
push dword [edi + 0x28]
call esi
and dword [edi + 0x28], 0
mov esi, 0x41ef10
jmp 0x451981
mov ebx, 0x2775
mov esi, 0x42118c
jmp 0x4519a4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x24]
cmp eax, 0x2710
ja 0x451964
mov ebx, 0x2776
mov esi, 0x421180
jmp 0x4519a4
and dword [edi + 0x30], 0
mov ebx, 0x277a
mov esi, 0x421178
jmp 0x4519a4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x24]
cmp eax, 0x2710
jbe 0x45199a
and dword [edi + 0x30], 0
cmp dword [edi + 0x28], 0
mov ebx, 0x277a
je 0x45197c
push dword [edi + 0x28]
call esi
and dword [edi + 0x28], 0
mov esi, 0x41eee8
push 2
pop eax
mov edi, 0x80072efd
push eax
mov dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edi
call fcn.00440071
push 2
pop ecx
jmp 0x4519b4
mov ebx, 0x2774
mov esi, 0x42116c
push 4
call fcn.00440071
push 2
pop ecx
mov edi, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], 0
je 0x4519dd
push dword [ebp - 0x39c]
mov esi, ecx
push 0x41fbc4
call fcn.00440126
pop ecx
pop ecx
push dword [ebp - 0x39c]
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
cmp eax, reloc.ADVAPI32.dll_TraceMessage
jne 0x451a22
push 0x80
lea ecx, reloc.ADVAPI32.dll_TraceMessage
push ecx
push 0x26e8
push dword [0x4683ec]
call esi
test eax, eax
jne 0x451a4d
mov edx, 0x4046c8
mov eax, 0x80
lea ecx, reloc.ADVAPI32.dll_TraceMessage
call fcn.0042ca38
jmp 0x451a4d
sub eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
xor edx, edx
cmp dword [ebp - reloc.ADVAPI32.dll_TraceMessage], edx
jbe 0x451a3a
div dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
jmp 0x451a41
mov ecx, 0x3e80
div ecx
push eax
lea ecx, reloc.ADVAPI32.dll_TraceMessage
call fcn.00444b06
push 0x100
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
push ebx
push dword [0x4683ec]
call esi
test eax, eax
je 0x451b1d
cmp ebx, 0x2777
jne 0x451b11
lea ecx, reloc.ADVAPI32.dll_TraceMessage
lea edx, [ecx + 2]
xor ebx, ebx
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x451a81
sub ecx, edx
lea edx, reloc.ADVAPI32.dll_TraceMessage
sar ecx, 1
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
cmp ax, bx
jne 0x451a99
sub edx, esi
sar edx, 1
lea ebx, [edx + ecx]
xor ecx, ecx
push 2
pop edx
lea eax, [ebx + 0x21]
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [sym.imp.msvcrt.dll_void____cdecl_operator_new___unsigned_int_]
mov esi, eax
pop ecx
test esi, esi
je 0x451b1d
push dword [ebp - 0x394]
lea eax, reloc.ADVAPI32.dll_TraceMessage
call fcn.00444e63
test eax, eax
js 0x451b07
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
lea eax, [ebx + 0x21]
mov ecx, esi
call fcn.0042c95b
add esp, 0xc
push esi
call fcn.0043f875
push esi
call dword [sym.imp.msvcrt.dll_void___cdecl_operator_delete___void__]
pop ecx
jmp 0x451b1d
lea eax, reloc.ADVAPI32.dll_TraceMessage
push eax
call fcn.0043f875
mov ecx, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
test ecx, ecx
jne 0x451b28
inc ecx
mov eax, dword [ebp - reloc.ADVAPI32.dll_TraceMessage]
imul eax, eax, 0x64
xor edx, edx
div ecx
push eax
call fcn.0043f83d
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004655f1
leave
ret