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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6566c3
mov eax, dword fs:[0]
push eax
sub esp, 0x90
mov eax, dword [0x6cd05c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edx, 0x697920
lea ecx, [ebp - 0x9c]
call fcn.00405650
mov dword [ebp - 4], 0
mov edx, dword [eax]
mov dword [ebp - 0x5c], 0xf
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x70], 0
cmp byte [edx], 0
jne 0x5afa62
xor ecx, ecx
jmp 0x5afa70
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5afa67
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x70]
call fcn.00401e90
mov byte [ebp - 4], 2
or ebx, 0xffffffff
mov ecx, dword [ebp - 0x9c]
mov eax, ebx
add ecx, 0xfffffff0
lock xadd dword [ecx + 0xc], eax
dec eax
mov edi, dword [sym.imp.KERNEL32.dll_HeapFree]
test eax, eax
jg 0x5afac7
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5afac3
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5afac3
push 0
push dword [edx + 4]
call edi
jmp 0x5afac7
mov ecx, edx
call esi
mov edx, 0x697814
lea ecx, [ebp - 0x90]
call fcn.00405650
mov byte [ebp - 4], 3
mov edx, dword [eax]
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [edx], 0
jne 0x5afaf8
xor ecx, ecx
jmp 0x5afb09
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5afb00
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x28]
call fcn.00401e90
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 4
push eax
lea ecx, [ebp - 0x70]
call fcn.004063a0
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x5afb39
inc eax
push eax
push dword [ebp - 0x28]
call fcn.004021e0
mov byte [ebp - 4], 2
mov eax, ebx
mov ecx, dword [ebp - 0x90]
mov dword [ebp - 0x14], 0xf
add ecx, 0xfffffff0
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x5afb8f
mov edx, dword [ecx]
push ecx
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5afb8b
mov edx, dword [edx + 4]
mov eax, dword [edx]
mov esi, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5afb8b
push 0
push dword [edx + 4]
call edi
jmp 0x5afb8f
mov ecx, edx
call esi
call fcn.0044e558
mov ecx, eax
test ecx, ecx
jne 0x5afba4
push 0x80004005
call fcn.004028a0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5afbb9
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5afbbb
call edx
add eax, 0x10
mov dword [ebp - 0x98], eax
mov byte [ebp - 4], 5
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [ebp - 0x94], eax
cmp eax, 0x2710
jae 0x5afbe8
add eax, 0x2710
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x5c], 0x10
lea esi, [ebp - 0x70]
cmovae esi, dword [ebp - 0x70]
call edi
push eax
lea eax, [ebp - 0x98]
push esi
push eax
call fcn.00404fb0
mov edi, dword [ebp - 0x98]
add esp, 0xc
mov dword [ebp - 0x44], 0xf
mov dword [ebp - 0x48], 0
mov byte [ebp - 0x58], 0
cmp byte [edi], 0
jne 0x5afc27
xor ecx, ecx
jmp 0x5afc39
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5afc30
sub ecx, edx
push ecx
push edi
lea ecx, [ebp - 0x58]
call fcn.00401e90
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
mov byte [ebp - 4], 7
xor esi, esi
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov byte [ebp - 0x89], 0
nop dword [eax + eax]
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x40]
lea eax, [ebp - 0x58]
cmovae eax, dword [ebp - 0x58]
push ecx
push eax
call fcn.005ad670
test al, al
je 0x5afc8f
cmp dword [ebp - 0x30], 0x20
je 0x5afcd5
push 0x3e8
call ebx
inc esi
cmp esi, 3
jl 0x5afc70
mov bl, byte [ebp - 0x89]
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x2c]
cmp eax, 0x10
jb 0x5aff13
mov ecx, dword [ebp - 0x40]
inc eax
cmp eax, 0x1000
jb 0x5aff0a
test cl, 0x1f
je 0x5afee6
call fcn.0058a3fd
call fcn.0044e558
mov ecx, eax
test ecx, ecx
jne 0x5afcea
push 0x80004005
call fcn.004028a0
mov eax, dword [ecx]
mov edx, dword [eax + 0xc]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5afcff
lock inc dword [ecx + 0x14]
lea eax, [ecx + 8]
jmp 0x5afd01
call edx
add eax, 0x10
mov dword [ebp - 0x90], eax
push dword [ebp - 0x94]
lea eax, [ebp - 0x90]
mov byte [ebp - 4], 8
push 0x697798
push eax
call fcn.00404fb0
mov esi, dword [ebp - 0x90]
add esp, 0xc
mov dword [ebp - 0x14], 0xf
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
cmp byte [esi], 0
jne 0x5afd49
xor ecx, ecx
jmp 0x5afd59
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5afd50
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x28]
call fcn.00401e90
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 9
push eax
lea edx, [ebp - 0x40]
lea ecx, [ebp - 0x88]
call fcn.00406660
add esp, 4
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x14]
cmp eax, 0x10
jb 0x5afdca
mov ecx, dword [ebp - 0x28]
inc eax
cmp eax, 0x1000
jb 0x5afdc1
test cl, 0x1f
je 0x5afd9d
call fcn.0058a3fd
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x5afda9
call fcn.0058a3fd
sub ecx, eax
cmp ecx, 4
jae 0x5afdb5
call fcn.0058a3fd
cmp ecx, 0x23
jbe 0x5afdbf
call fcn.0058a3fd
mov ecx, eax
push ecx
call fcn.0044e231
add esp, 4
sub esp, 0x18
mov dword [ebp - 0x14], 0xf
mov ecx, esp
mov dword [ebp - 0x18], 0
mov byte [ebp - 0x28], 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
cmp dword [ecx + 0x14], 0x10
jb 0x5afdf9
mov eax, dword [ecx]
jmp 0x5afdfb
mov eax, ecx
push 0xffffffffffffffff
mov byte [eax], 0
lea eax, [ebp - 0x88]
push 0
push eax
call fcn.00401f90
call fcn.005a9d00
mov bl, al
add esp, 0x18
test bl, bl
je 0x5afe31
push 0xffffffffffffffff
push 0
lea eax, [ebp - 0x88]
mov ecx, 0x6e89d0
push eax
call fcn.00401f90
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x74]
cmp eax, 0x10
jb 0x5afe82
mov ecx, dword [ebp - 0x88]
inc eax
cmp eax, 0x1000
jb 0x5afe79
test cl, 0x1f
je 0x5afe55
call fcn.0058a3fd
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x5afe61
call fcn.0058a3fd
sub ecx, eax
cmp ecx, 4
jae 0x5afe6d
call fcn.0058a3fd
cmp ecx, 0x23
jbe 0x5afe77
call fcn.0058a3fd
mov ecx, eax
push ecx
call fcn.0044e231
add esp, 4
mov dword [ebp - 0x74], 0xf
add esi, 0xfffffff0
mov dword [ebp - 0x78], 0
or eax, 0xffffffff
mov byte [ebp - 0x88], 0
mov byte [ebp - 4], 7
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x5afca2
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5afedf
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5afedf
mov esi, dword [sym.imp.KERNEL32.dll_HeapFree]
push 0
push dword [ecx + 4]
call esi
jmp 0x5afca8
call edx
jmp 0x5afca2
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x5afef2
call fcn.0058a3fd
sub ecx, eax
cmp ecx, 4
jae 0x5afefe
call fcn.0058a3fd
cmp ecx, 0x23
jbe 0x5aff08
call fcn.0058a3fd
mov ecx, eax
push ecx
call fcn.0044e231
add esp, 4
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x2c], 0xf
mov dword [ebp - 0x30], 0
mov byte [ebp - 0x40], 0
cmp eax, 0x10
jb 0x5aff37
inc eax
push eax
push dword [ebp - 0x58]
call fcn.004021e0
mov dword [ebp - 0x44], 0xf
add edi, 0xfffffff0
mov dword [ebp - 0x48], 0
or eax, 0xffffffff
mov byte [ebp - 0x58], 0
mov byte [ebp - 4], 2
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x5aff86
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CAtlStringMgr.0
jne 0x5aff84
mov ecx, dword [ecx + 4]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
cmp eax, vtable.ATL::CWin32Heap.0
jne 0x5aff84
push 0
push dword [ecx + 4]
call esi
jmp 0x5aff86
call edx
mov ecx, dword [ebp - 0x5c]
cmp ecx, 0x10
jb 0x5aff98
inc ecx
push ecx
push dword [ebp - 0x70]
call fcn.004021e0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00583e60
mov esp, ebp
pop ebp
ret 4