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

Disassembly:
mov eax, 0x4c8a98
call fcn.00495bb4
sub esp, 0x3c
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
call fcn.0041fa52
xor ebx, ebx
cmp eax, ebx
jne 0x4208fb
mov ecx, edi
call fcn.0041fae3
jmp 0x4210c1
cmp eax, 0xfffffffe
jne 0x420958
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420941
dec edx
je 0x42092d
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x42103f
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x42103f
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
jmp 0x42103f
or esi, 0xffffffff
cmp eax, esi
jne 0x42098d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420986
dec edx
je 0x42097f
push ebx
push 0x3e9
push 0x3e8
jmp 0x4209c2
push 9
push 0xe
push ebx
jmp 0x4209d6
push ebx
push 4
push 0x62
jmp 0x4209ed
mov eax, dword [edi + 0x94]
cmp eax, ebx
je 0x4209fb
push eax
mov ecx, edi
call fcn.0042ac34
test eax, eax
je 0x4209fb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x4209e4
dec edx
je 0x4209d0
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420f6c
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420f6c
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
jmp 0x420f6c
push 0x505afc
lea ecx, [ebp - 0x14]
call fcn.004b0daa
push dword [edi + 0xa0]
lea eax, [ebp - 0x18]
mov ecx, edi
mov dword [ebp - 4], ebx
push str.SoftwareClassesCLSID_s
push eax
call fcn.00420504
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
mov byte [ebp - 4], 1
push dword [ebp - 0x18]
call fcn.004206fa
cmp eax, ebx
je 0x420aa4
cmp eax, 0xfffffffe
jne 0x420aac
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420a77
dec edx
je 0x420a66
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420a90
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420a90
push 0x28
push 4
push 0x8a
jmp 0x420a87
push ebx
push 4
push 0x62
push 0x68
mov ecx, edi
call fcn.0041eace
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004b0d36
mov dword [ebp - 4], esi
jmp 0x420f64
mov eax, dword [ebp - 0x14]
cmp dword [eax - 8], ebx
jne 0x420ad3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420a82
dec edx
je 0x420acc
push ebx
push 0x3e9
push 0x3e8
jmp 0x420a5b
push 9
push 0xe
push ebx
jmp 0x420a6c
lea esi, [edi + 0x68]
push eax
mov ecx, esi
call fcn.00421339
cmp eax, ebx
je 0x420b1b
cmp eax, 0xfffffffe
jne 0x420af2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x420ff2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420b15
dec edx
je 0x420b0b
push ebx
jmp 0x420f89
push 9
push 0xe
push ebx
jmp 0x420fa7
push ebx
jmp 0x420fb4
cmp word [edi + 0x70], 2
jne 0x4210a2
mov eax, edi
mov ecx, edi
cdq
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x40], eax
lea eax, [edi + 0x7c]
mov dword [ebp - 0x44], edx
push eax
push esi
mov dword [ebp - 0x3c], edx
call fcn.00420006
cmp eax, 0xfffffffe
jne 0x420b80
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420b75
dec edx
je 0x420b6a
push 0x15
push 0x3e9
push 0x3fd
jmp 0x420f23
push 0x1e
push 0xe
push 0x15
jmp 0x420f34
push 0x15
push 4
push 0x77
jmp 0x420f48
or esi, 0xffffffff
cmp eax, esi
jne 0x420bdf
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420bc8
dec edx
je 0x420bb4
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420f54
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420f54
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
jmp 0x420f54
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebp - 4], 2
call esi
push 3
xor edx, edx
pop ebx
mov ecx, ebx
div ecx
dec edx
je 0x420df7
dec edx
je 0x420cfd
lea eax, [ebp - 0x48]
mov ecx, edi
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.0041ec58
test eax, eax
je 0x420c6d
call esi
xor edx, edx
div ebx
dec edx
je 0x420c49
dec edx
je 0x420c38
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420c5b
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420c5b
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or dword [ebp - 0x20], 0xffffffff
lea eax, [ebp - 0x20]
push 0x4e2e60
push eax
call fcn.0049721f
call esi
push 7
xor edx, edx
pop ecx
div ecx
cmp edx, ebx
jne 0x420eeb
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
sub ecx, 1
sbb ebx, 0
add eax, 1
adc edx, 0
cmp eax, ecx
jne 0x420ca2
cmp edx, ebx
je 0x420eeb
call esi
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420cd9
dec edx
je 0x420cc8
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420ceb
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420ceb
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or dword [ebp - 0x24], 0xffffffff
lea eax, [ebp - 0x24]
push 0x4e2e60
push eax
call fcn.0049721f
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0041e7ed
test eax, eax
je 0x420d68
call esi
xor edx, edx
div ebx
dec edx
je 0x420d44
dec edx
je 0x420d33
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420d56
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420d56
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or dword [ebp - 0x28], 0xffffffff
lea eax, [ebp - 0x28]
push 0x4e2e60
push eax
call fcn.0049721f
call esi
push 9
xor edx, edx
pop ecx
div ecx
cmp edx, 1
jne 0x420eeb
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
sub ecx, edx
sbb ebx, 0
add eax, edx
mov edx, dword [ebp - 0x44]
adc edx, 0
cmp eax, ecx
jne 0x420d9c
cmp edx, ebx
je 0x420eeb
call esi
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420dd3
dec edx
je 0x420dc2
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420de5
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420de5
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or dword [ebp - 0x2c], 0xffffffff
lea eax, [ebp - 0x2c]
push 0x4e2e60
push eax
call fcn.0049721f
lea eax, [ebp - 0x40]
mov ecx, edi
push eax
lea eax, [ebp - 0x48]
push eax
call fcn.0041e930
test eax, eax
je 0x420e62
call esi
xor edx, edx
div ebx
dec edx
je 0x420e3e
dec edx
je 0x420e2d
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420e50
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420e50
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or dword [ebp - 0x30], 0xffffffff
lea eax, [ebp - 0x30]
push 0x4e2e60
push eax
call fcn.0049721f
call esi
push 5
xor edx, edx
pop ecx
div ecx
cmp edx, 2
jne 0x420eeb
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
sub ecx, 1
sbb ebx, 0
add eax, 1
adc edx, 0
cmp eax, ecx
jne 0x420e90
cmp edx, ebx
je 0x420eeb
call esi
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420ec7
dec edx
je 0x420eb6
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420ed9
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420ed9
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or dword [ebp - 0x34], 0xffffffff
lea eax, [ebp - 0x34]
push 0x4e2e60
push eax
call fcn.0049721f
test byte [edi + 0x1c], 1
mov dword [ebp - 4], 1
je 0x420fba
mov ecx, edi
call fcn.00421109
cmp eax, 0xfffffffe
jne 0x420f73
call esi
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420f3f
dec edx
je 0x420f2e
push 0x28
push 0x3e9
push 0x410
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x420f51
push 0x31
push 0xe
push 0x28
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x420f51
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
or esi, 0xffffffff
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004b0d36
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004b0d36
mov eax, esi
jmp 0x4210c3
cmp eax, 0xffffffff
jne 0x420fba
call esi
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x420fb2
dec edx
je 0x420fa1
push 0
push 0x3e9
push 0x3e8
push 4
mov ecx, edi
call fcn.0041ebd9
jmp 0x421027
push 9
push 0xe
push 0
push 4
mov ecx, edi
call fcn.0041e774
jmp 0x421027
push 0
push 4
push 0x62
jmp 0x42101e
call esi
push 0xb
xor edx, edx
pop ecx
div ecx
cmp edx, 5
jne 0x4210a2
mov ecx, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x48]
mov edx, dword [ebp - 0x44]
sub ecx, 1
sbb ebx, 0
add eax, 1
adc edx, 0
cmp eax, ecx
jne 0x420ff0
cmp edx, ebx
je 0x4210a2
call esi
push 3
xor edx, edx
pop ecx
div ecx
dec edx
je 0x421015
dec edx
je 0x42100d
push 0x28
push 0x3e9
push 0x410
jmp 0x420f93
push 0x31
push 0xe
push 0x28
jmp 0x420fa7
push 0x28
push 4
push 0x8a
push 0x68
mov ecx, edi
call fcn.0041eace
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004b0d36
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004b0d36
or eax, 0xffffffff
jmp 0x4210c3
mov ecx, edi
call fcn.0041fae3
and byte [ebp - 4], 0
lea ecx, [ebp - 0x18]
call fcn.004b0d36
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004b0d36
xor eax, eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret
and dword [ecx + 0x90], 0
jmp 0x4208cc