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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
lea eax, [ebp + 0xc]
push eax
lea edx, [ebp - 4]
lea ecx, [esi + 0x44]
push edx
mov dword [ebp + 8], ecx
call fcn.004702b0
mov eax, dword [eax]
cmp eax, dword [esi + 0x48]
je 0x470835
lea ecx, [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
call fcn.004704f0
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, dword [eax]
call ebx
sub eax, edi
cmp eax, 0xfa0
jb 0x47087f
mov ecx, dword [ebp + 8]
lea edx, [ebp + 0xc]
push edx
call fcn.004704f0
mov edi, eax
call ebx
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
cmp eax, 0x271b
jg 0x4708dd
je 0x47088a
cmp eax, 0xffffea78
jne case.default.0x4708eb
mov eax, dword [ebp + 0x20]
mov ecx, 3
mov word [eax], cx
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov esi, dword [esi + 0x30]
mov edx, dword [esi]
add eax, 8
push eax
mov eax, dword [edx + 0xa8]
push esi
call eax
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 2
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax + 0x10], 3
jne case.default.0x4708eb
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov esi, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [eax + 0x18]
mov edx, dword [edx + 0x68]
push esi
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
add eax, 0xffffd8e4
cmp eax, 0x11
ja case.default.0x4708eb
jmp dword [eax*4 + 0x470f08]
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 2
jne case.default.0x4708eb
mov eax, dword [eax]
mov ecx, 3
cmp word [eax], cx
jne case.default.0x4708eb
cmp word [eax + 0x10], cx
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov esi, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [eax + 0x18]
mov edx, dword [edx + 0x6c]
push esi
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0x70]
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 2
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
cmp word [eax + 0x10], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov esi, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [eax + 0x18]
mov edx, dword [edx + 0x20]
push esi
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov edi, dword [ebp + 0x1c]
cmp dword [edi + 8], 1
jne case.default.0x4708eb
mov eax, dword [edi]
cmp word [eax], 8
jne case.default.0x4708eb
push 0x4cdb58
lea ecx, [ebp + 0x1c]
call fcn.004037ce
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov edx, dword [edx + 0x24]
lea eax, [ebp + 0x1c]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 8]
push eax
call edx
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x470a46
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov ecx, dword [ebp + 0x1c]
mov eax, 8
mov word [esi], ax
push ecx
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esi + 8], eax
lea ecx, [ebp + 0x1c]
call fcn.00401599
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 3
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0x74]
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0x78]
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 3
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
cmp word [eax + 0x10], 8
jne case.default.0x4708eb
cmp word [eax + 0x20], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov esi, dword [eax + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0x80]
push esi
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0x28]
push esi
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0x84]
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0x88]
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov ebx, dword [ebp + 0x1c]
cmp dword [ebx + 8], 1
jne case.default.0x4708eb
mov eax, dword [ebx]
cmp word [eax], 8
jne case.default.0x4708eb
mov eax, dword [esi + 0x38]
mov edi, dword [eax]
mov dword [ebp + 0x20], edi
cmp edi, eax
je 0x470c67
mov eax, dword [edi + 0xc]
sub eax, 0x10
push eax
call fcn.004014d8
mov ecx, dword [ebx]
mov edx, dword [ecx + 8]
add esp, 4
add eax, 0x10
push edx
lea ecx, [ebp + 0x1c]
mov dword [ebp + 0x1c], eax
call fcn.0040282d
test eax, eax
je 0x470c4d
lea ecx, [ebp + 0x1c]
call fcn.00401599
lea ecx, [ebp + 0x20]
call fcn.0042fdd0
mov edi, dword [ebp + 0x20]
cmp edi, dword [esi + 0x38]
jne 0x470c03
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
mov ecx, dword [ebp + 8]
add edi, 0x10
push edi
call fcn.004704f0
lea ecx, [ebp + 0x1c]
mov dword [eax], 0
call fcn.00401599
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 2
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
cmp word [eax + 0x10], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov esi, dword [eax + 8]
mov edx, dword [ecx]
mov eax, dword [eax + 0x18]
mov edx, dword [edx + 0x7c]
push esi
push eax
call edx
test eax, eax
je case.default.0x4708eb
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov edi, dword [ebp + 0x1c]
cmp dword [edi + 8], 4
jne case.default.0x4708eb
mov eax, dword [edi]
cmp word [eax], 8
jne case.default.0x4708eb
cmp word [eax + 0x10], 8
jne case.default.0x4708eb
cmp word [eax + 0x20], 8
jne case.default.0x4708eb
cmp word [eax + 0x30], 8
jne case.default.0x4708eb
push 0x4cdb58
lea ecx, [ebp + 0x1c]
call fcn.004037ce
mov ecx, dword [esi + 0x30]
mov eax, dword [edi]
mov edx, dword [ecx]
mov edx, dword [edx + 0x90]
lea esi, [ebp + 0x1c]
push esi
mov esi, dword [eax + 8]
push esi
mov esi, dword [eax + 0x18]
push esi
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x38]
push esi
push eax
call edx
jmp 0x470a23
mov ecx, dword [esi + 0x30]
test ecx, ecx
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 2
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
cmp word [eax + 0x10], 8
jne case.default.0x4708eb
mov edx, dword [eax + 8]
mov eax, dword [eax + 0x18]
push edx
push eax
call fcn.00458410
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov edi, dword [ebp + 0x1c]
cmp dword [edi + 8], 1
jne case.default.0x4708eb
mov ecx, dword [edi]
cmp word [ecx], 8
jne case.default.0x4708eb
push 0x4cdb58
lea ecx, [ebp + 0x1c]
call fcn.004037ce
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov edx, dword [edx + 0x94]
jmp 0x470a17
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov edi, dword [ebp + 0x1c]
cmp dword [edi + 8], 1
jne case.default.0x4708eb
mov edx, dword [edi]
cmp word [edx], 8
jne case.default.0x4708eb
push 0x4cdb58
lea ecx, [ebp + 0x1c]
call fcn.004037ce
mov ecx, dword [esi + 0x30]
mov eax, dword [ecx]
mov eax, dword [eax + 0x98]
lea edx, [ebp + 0x1c]
push edx
mov edx, dword [edi]
mov edx, dword [edx + 8]
push edx
call eax
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x470a46
push esi
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov edx, dword [ebp + 0x1c]
mov ecx, 8
mov word [esi], cx
push edx
jmp 0x470a3d
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0x9c]
push eax
call edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 1
jne case.default.0x4708eb
mov eax, dword [eax]
cmp word [eax], 8
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov edx, dword [ecx]
mov eax, dword [eax + 8]
mov edx, dword [edx + 0xa0]
push eax
call edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
cmp dword [esi + 0x30], 0
je case.default.0x4708eb
mov eax, dword [ebp + 0x1c]
cmp dword [eax + 8], 4
jne case.default.0x4708eb
mov eax, dword [eax]
mov ecx, 3
cmp word [eax], cx
jne case.default.0x4708eb
cmp word [eax + 0x10], cx
jne case.default.0x4708eb
cmp word [eax + 0x20], cx
jne case.default.0x4708eb
cmp word [eax + 0x30], cx
jne case.default.0x4708eb
mov ecx, dword [esi + 0x30]
mov esi, dword [eax + 8]
mov edx, dword [ecx]
mov edx, dword [edx + 0xa4]
push esi
mov esi, dword [eax + 0x18]
push esi
mov esi, dword [eax + 0x28]
mov eax, dword [eax + 0x38]
push esi
push eax
call edx
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0x24
pop edi
pop esi
mov eax, 0x80020003
pop ebx
mov esp, ebp
pop ebp
ret 0x24