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

Disassembly:
push ebp
sub esp, 0x54
push 0x54
mov eax, 0x466d5b
call fcn.00450d5a
mov edi, dword [ebp + 0x60]
and dword [ebp - 4], 0
cmp byte [edi + 0x10c], 0
jne 0x40cced
mov eax, 0x8020000d
call fcn.0040426a
cmp byte [edi + 0x10d], 0
jne 0x40ccfd
mov eax, 0x8020000b
jmp 0x40cce8
push 0x10000009
lea esi, [ebp - 0x60]
call fcn.00412d79
mov byte [ebp - 4], 1
lea eax, [ebp - 0x38]
push eax
call fcn.00410ae4
mov byte [ebp - 4], 2
mov dword [ebp - 0x48], 1
push 0x7530
lea eax, [ebp - 0x38]
push eax
mov eax, esi
push eax
mov ecx, edi
call fcn.00412b40
mov dword [ebp + 0x4c], eax
test eax, eax
jl 0x40d445
mov eax, dword [edi + 0xb8]
test eax, eax
je 0x40d19d
push 0x64
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40d19d
mov esi, dword [ebp - 0x18]
mov dword [ebp + 0x30], esi
and dword [ebp + 0x50], 0
mov byte [ebp - 4], 3
lea ebx, [edi + 0x88]
mov ecx, ebx
call fcn.0040183d
and dword [ebp + 0x28], 0
mov eax, dword [ebp + 0x28]
cmp eax, dword [esi]
jae 0x40cde8
imul eax, eax, 0x320
lea esi, [eax + esi + 0x20a]
push esi
call fcn.0044efbb
pop ecx
test eax, eax
je 0x40cdbf
push esi
lea esi, [ebp + 0x38]
call fcn.004043af
mov byte [ebp - 4], 4
lea edi, [ebp + 0x50]
call fcn.00404351
mov byte [ebp - 4], 3
push dword [ebp + 0x38]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0
push ecx
mov dword [ebp + 0x20], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 5
push ebx
mov byte [ebp - 4], 3
call fcn.0040112b
inc dword [ebp + 0x28]
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x30]
jmp 0x40cd7e
push ebx
call fcn.004018fc
mov ecx, ebx
call fcn.0040183d
and dword [ebp + 0x44], 0
mov eax, dword [ebp + 0x44]
cmp eax, dword [esi]
jae 0x40d42c
push edi
call fcn.0040c43b
mov dword [ebp + 0x4c], eax
test eax, eax
jl 0x40cce8
and dword [ebp + 0x40], 0
mov byte [ebp - 4], 6
mov eax, dword [ebp + 0x44]
imul eax, eax, 0x320
lea ebx, [eax + esi]
mov dword [ebp + 0x3c], ebx
lea esi, [ebx + 0xc]
push esi
call fcn.0044efbb
pop ecx
test eax, eax
je 0x40ce5f
push esi
lea esi, [ebp + 0x14]
call fcn.004043af
mov byte [ebp - 4], 7
lea edi, [ebp + 0x40]
call fcn.00404351
mov byte [ebp - 4], 6
push dword [ebp + 0x14]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, dword [ebp + 0x60]
lea esi, [ebx + 0x20a]
push esi
call fcn.0044efbb
pop ecx
test eax, eax
je 0x40ce95
push esi
lea esi, [ebp + 0x1c]
call fcn.004043af
mov byte [ebp - 4], 8
lea edi, [ebp + 0x50]
call fcn.00404351
mov byte [ebp - 4], 6
push dword [ebp + 0x1c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov edi, dword [ebp + 0x60]
mov byte [ebp + 0x57], 1
xor ebx, ebx
mov dword [ebp + 0x34], ebx
test byte [edi + 0xe8], 8
je 0x40cee2
cmp dword [0x492290], ebx
je 0x40cee2
push ecx
mov dword [ebp + 0x48], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 9
mov ecx, dword [0x492290]
add ecx, 0xb4
mov byte [ebp - 4], 6
call fcn.0041d979
test eax, eax
jge 0x40cee2
mov byte [ebp + 0x57], bl
jmp 0x40d411
push 0
push ecx
mov dword [ebp + 0x48], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 0xa
mov esi, dword [ebp + 0x60]
add esi, 0x88
push esi
mov byte [ebp - 4], 6
call fcn.0040112b
test al, al
je 0x40d113
push ecx
mov dword [ebp + 0x48], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 0xb
push esi
mov byte [ebp - 4], 6
call fcn.00401765
mov ebx, eax
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x40d113
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x40d113
mov eax, dword [ebx]
mov dword [ebp + 0x48], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp + 0x38], eax
mov byte [ebp + 0x56], 0
lea edi, [ebx + 0x10]
lea eax, [ebp + 0x40]
push eax
mov eax, edi
call fcn.004043d9
test al, al
jne 0x40cf76
lea eax, [ebp + 0x40]
call fcn.00404351
mov byte [ebp + 0x56], 1
mov esi, dword [ebp + 0x60]
test byte [esi + 0xe8], 0x10
je 0x40d065
and dword [ebp + 0x24], 0
mov eax, dword [ebp + 0x3c]
mov eax, dword [eax + 4]
mov edx, eax
and edx, 0x10000
je 0x40cf9f
push 2
pop ecx
jmp 0x40cfb1
mov ecx, eax
and ecx, 0x2000000
neg ecx
sbb ecx, ecx
and ecx, 8
add ecx, 8
mov dword [ebp + 0x24], ecx
cmp eax, 0x50002
je 0x40d00c
cmp eax, 0x50000
je 0x40d00c
test edx, edx
jne 0x40d010
test eax, 0x20000
je 0x40cfd4
mov eax, 0x2000010
jmp 0x40d015
test eax, 0x40000
je 0x40cfe2
mov eax, 0x3000010
jmp 0x40d015
test eax, 0x80000
je 0x40cff0
mov eax, 0x4000010
jmp 0x40d015
test eax, 0x100000
je 0x40cffe
mov eax, 0x5000010
jmp 0x40d015
and eax, 0x2000000
or eax, 0x1c000020
shr eax, 1
jmp 0x40d015
mov byte [ebx + 0x30], 1
mov eax, 0x1000010
cmp dword [ebx + 0x24], ecx
jne 0x40d01f
cmp dword [ebx + 4], eax
je 0x40d065
mov dword [ebx + 0x24], ecx
mov dword [ebx + 4], eax
mov eax, dword [ebp + 0x3c]
add eax, 0x2d2
push eax
lea esi, [ebp + 0x2c]
call fcn.004043af
mov byte [ebp - 4], 0xc
push dword [ebp + 0x2c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
je 0x40d051
lea edi, [ebx + 0x18]
mov eax, esi
call fcn.00404351
mov byte [ebp + 0x56], 1
mov byte [ebp - 4], 6
push dword [ebp + 0x2c]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [ebp + 0x60]
cmp byte [ebp + 0x56], 0
je 0x40d077
lea ecx, [esi + 0x88]
mov eax, dword [ecx]
push ebx
call dword [eax + 0xc]
mov dword [ebp + 0xc], vtable.CPCCSAutoWait.0
add esi, 0x14c
mov dword [ebp + 0x10], esi
mov byte [ebp - 4], 0xd
push 0x1388
lea edi, [ebp + 0xc]
call fcn.0040b2bc
mov dword [ebp + 0x4c], eax
test eax, eax
jl 0x40d0e3
xor esi, esi
mov dword [ebp + 8], esi
mov edi, dword [ebp + 0x60]
add edi, 0x13c
mov eax, edi
call fcn.00403561
cmp esi, eax
jae 0x40d0dd
call fcn.004034f5
mov eax, dword [eax]
cmp byte [eax + 0xcc], 0
je 0x40d0da
call fcn.004034f5
mov eax, dword [eax]
mov ecx, dword [ebp + 0x48]
cmp dword [eax + 0xb8], ecx
je 0x40d0f9
inc esi
jmp 0x40d0a1
cmp byte [ebp + 0x57], 0
je 0x40d0fd
cmp dword [ebp + 0x38], 0
je 0x40d0fd
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp + 0x38]
cmp eax, 0x493e0
jae 0x40d0fd
mov byte [ebp + 0x57], 0
mov byte [ebp - 4], 6
lea ecx, [ebp + 0xc]
call fcn.0040b338
cmp byte [ebp + 0x57], 0
je 0x40d411
push dword [ebp + 0x50]
mov esi, dword [ebp + 0x60]
mov ecx, esi
call fcn.0040d49d
mov dword [ebp + 0x4c], eax
test eax, eax
jge 0x40d16d
test ebx, ebx
je 0x40d163
push esi
call fcn.0040c43b
mov dword [ebp + 0x4c], eax
test eax, eax
jl 0x40cce8
mov eax, dword [esi + 0xb8]
test eax, eax
je 0x40d19d
push 0xbb8
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x40d19d
push dword [ebp + 0x50]
mov ecx, esi
call fcn.0040d49d
mov dword [ebp + 0x4c], eax
cmp dword [ebp + 0x4c], 0
jl 0x40d3cb
test ebx, ebx
je 0x40d180
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
je 0x40d382
push 0x34
call fcn.0044c86d
pop ecx
mov dword [ebp + 0x48], eax
mov byte [ebp - 4], 0xe
test eax, eax
je 0x40d1a7
push eax
call fcn.004127f6
mov ebx, eax
jmp 0x40d1a9
mov eax, 0x80100026
jmp 0x40cce8
xor ebx, ebx
mov byte [ebp - 4], 6
mov dword [ebp + 0x34], ebx
test ebx, ebx
je 0x40d411
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x40d411
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp + 0x60]
mov ecx, dword [eax + 0xe8]
mov dword [ebx + 4], ecx
mov eax, dword [eax + 0xe4]
mov dword [ebx + 8], eax
lea edi, [ebx + 0x10]
lea eax, [ebp + 0x40]
call fcn.00404351
lea edi, [ebx + 0x14]
lea eax, [ebp + 0x50]
call fcn.00404351
mov eax, dword [ebp + 0x44]
imul eax, eax, 0x320
mov ecx, dword [ebp + 0x30]
lea esi, [eax + ecx]
mov dword [ebp + 0x3c], esi
test byte [esi + 4], 2
je 0x40d21d
mov byte [ebx + 0x20], 1
or dword [ebx + 0x24], 2
jmp 0x40d225
mov byte [ebx + 0x20], 0
or dword [ebx + 0x24], 1
mov eax, dword [ebp + 0x60]
test byte [eax + 0xe8], 8
je 0x40d269
cmp dword [0x492290], 0
je 0x40d269
push ecx
mov dword [ebp + 0x48], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 0xf
mov ecx, dword [0x492290]
add ecx, 0xb4
mov byte [ebp - 4], 6
call fcn.0041d979
test eax, eax
jl 0x40d269
or dword [ebx + 0x24], 4
mov eax, dword [ebp + 0x60]
test byte [eax + 0xe8], 0x10
je 0x40d35f
mov eax, dword [esi + 4]
cmp eax, 0x50002
je 0x40d2eb
cmp eax, 0x50000
je 0x40d2eb
test eax, 0x10000
je 0x40d29a
mov dword [ebx + 4], 0x1000010
jmp 0x40d2f6
test eax, 0x20000
je 0x40d2aa
mov dword [ebx + 4], 0x2000010
jmp 0x40d2f6
test eax, 0x40000
je 0x40d2ba
mov dword [ebx + 4], 0x3000010
jmp 0x40d2f6
test eax, 0x80000
je 0x40d2ca
mov dword [ebx + 4], 0x4000010
jmp 0x40d2f6
test eax, 0x100000
je 0x40d2da
mov dword [ebx + 4], 0x5000010
jmp 0x40d2f6
and eax, 0x2000000
or eax, 0x1c000020
shr eax, 1
mov dword [ebx + 4], eax
jmp 0x40d2f6
mov dword [ebx + 4], 0x1000010
mov byte [ebx + 0x30], 1
lea edi, [esi + 0x2d2]
push edi
call fcn.0044efbb
pop ecx
test eax, eax
je 0x40d32c
push edi
lea esi, [ebp + 0x18]
call fcn.004043af
mov byte [ebp - 4], 0x10
lea edi, [ebx + 0x18]
call fcn.00404351
mov byte [ebp - 4], 6
push dword [ebp + 0x18]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov esi, dword [ebp + 0x3c]
add esi, 0x2fa
push esi
call fcn.0044efbb
pop ecx
test eax, eax
je 0x40d35f
push esi
lea esi, [ebp + 0x20]
call fcn.004043af
mov byte [ebp - 4], 0x11
lea edi, [ebx + 0x1c]
call fcn.00404351
mov byte [ebp - 4], 6
push dword [ebp + 0x20]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [ebp + 0x60]
cmp byte [eax + 0x10c], 0
je 0x40d411
push ebx
mov ecx, eax
add ecx, 0x88
call fcn.004012de
jmp 0x40d411
cmp dword [ebp + 0x4c], 0
jl 0x40d3cb
push ecx
mov dword [ebp + 0x48], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 0x12
mov eax, dword [ebp + 0x60]
add eax, 0x88
push eax
mov byte [ebp - 4], 6
call fcn.00401765
mov esi, eax
mov dword [ebp + 0x34], esi
test esi, esi
je 0x40d411
push esi
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x40d411
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x2c], eax
jmp 0x40d411
test ebx, ebx
je 0x40d411
push ecx
mov dword [ebp + 0x48], esp
lea eax, [ebp + 0x50]
mov edi, esp
call fcn.0040b434
mov byte [ebp - 4], 0x13
mov esi, dword [ebp + 0x60]
add esi, 0x88
push esi
mov byte [ebp - 4], 6
call fcn.00401765
mov edi, eax
mov dword [ebp + 0x34], edi
test edi, edi
je 0x40d411
push edi
call dword [sym.imp.KERNEL32.dll_IsBadCodePtr]
test eax, eax
jne 0x40d411
push dword [edi]
mov ecx, esi
call fcn.004013a6
mov byte [ebp - 4], 3
push dword [ebp + 0x40]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
inc dword [ebp + 0x44]
mov edi, dword [ebp + 0x60]
mov esi, dword [ebp + 0x30]
jmp 0x40cdf9
add edi, 0x88
push edi
call fcn.004018fc
mov byte [ebp - 4], 2
push dword [ebp + 0x50]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov byte [ebp - 4], 1
lea eax, [ebp - 0x38]
push eax
call fcn.00410ac4
mov byte [ebp - 4], 0
lea esi, [ebp - 0x60]
call fcn.00412d5b
or dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add ebp, 0x58
leave
ret 4