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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30c
mov eax, dword [0x111127c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
lea esi, [ebp + 0xc]
lea edi, [ebp - 0x22c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [ebp + 0x1c]
lea edi, [ebp - 0x21c]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2d4], eax
mov eax, dword [ebp + 0x30]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2cc], eax
mov eax, dword [ebp + 0x3c]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x2bc], eax
mov eax, dword [ebp + 0x40]
mov dword [ebp - 0x300], eax
mov eax, dword [ebp + 0x44]
movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x34]
and dword [ebp - 0x2fc], 0
mov dword [ebp - 0x2d0], eax
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10415a0
test byte [eax + 0x1c], 1
je 0x10415a0
cmp byte [eax + 0x19], 4
jb 0x10415a0
push 0x1003920
push 0x10e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
or dword [ebp - 0x2e4], 0xffffffff
xor eax, eax
mov ebx, 0x1112850
mov dword [ebp - 0x30c], 0x1003964
mov dword [ebp - 0x308], ebx
mov byte [ebp - 0x304], 0
mov byte [ebp - 0x2bd], 0
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2f4], eax
mov dword [ebp - 0x2dc], eax
mov dword [ebp - 0x2c4], eax
mov dword [ebp - 0x2d8], eax
mov dword [ebp - 0x2ec], eax
mov byte [ebp - 0x2c0], al
mov byte [ebp - 0x2be], al
mov byte [ebp - 0x2bf], al
mov dword [ebp - 0x2f8], eax
mov dword [ebp - 0x2e8], esi
mov dword [ebp - 0x2e0], eax
cmp dword [ebp - 0x2d0], eax
jne 0x1041621
cmp dword [ebp + 0x38], eax
ja 0x1041629
cmp dword [ebp - 0x300], eax
jne 0x1041657
mov esi, 0x80004003
lea ecx, [ebp - 0x2e8]
call fcn.01018b34
lea ecx, [ebp - 0x30c]
call fcn.0103797b
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0106f5f8
leave
ret 0x44
push 4
pop ecx
mov edi, 0x100cbcc
lea esi, [ebp - 0x21c]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x1041672
mov esi, 0x80070057
jmp 0x104162e
cmp dword [ebp + 0x38], 0x104
jae 0x104168a
mov ecx, dword [ebp - 0x300]
mov dword [ecx], eax
mov esi, 0x8007007a
jmp 0x104162e
mov eax, dword [ebp + 0x38]
add eax, eax
push eax
push 0
push dword [ebp - 0x2d0]
call sub.msvcrt.dll_memset
add esp, 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x2d4]
mov eax, dword [eax + 8]
mov byte [ebp - 0x304], 1
test eax, eax
jne 0x10416ca
mov dword [ebp - 0x2bc], 0x8078000a
jmp 0x1041cd6
cmp dword [ebp - 0x2bc], 0
jne 0x10416d9
mov dword [ebp - 0x2bc], eax
lea ecx, [ebp - 0x30c]
call fcn.0103794b
push 0x8c
lea eax, [ebp - 0x2b8]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x2bc]
mov ecx, dword [eax]
add esp, 0xc
lea edx, [ebp - 0x2b8]
push edx
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x22c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push eax
movsd dword es:[edi], dword [esi]
call dword [ecx + 0x2c]
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
xor eax, eax
mov byte [ebp - 0x2bd], 1
cmp dword [ebp - 0x28c], eax
jbe 0x1041771
mov edx, dword [ebp - 0x288]
push 4
pop ecx
lea edi, [ebp - 0x21c]
mov esi, edx
xor ebx, ebx
repe cmpsd dword [esi], dword es:[edi]
je 0x1041760
inc eax
add edx, 0x70
cmp eax, dword [ebp - 0x28c]
jb 0x1041741
jmp 0x1041771
imul eax, eax, 0x70
add eax, dword [ebp - 0x288]
mov esi, eax
jne 0x1041809
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10417d1
test byte [eax + 0x1c], 1
je 0x10417d1
cmp byte [eax + 0x19], 2
jb 0x10417d1
push 3
pop ebx
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.01021b57
mov esi, dword [eax]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.01021b57
push esi
push dword [eax]
mov eax, dword [0x111124c]
push 0x1003920
push 0x10f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019979
jmp 0x10417d7
mov ebx, dword [ebp - 0x2fc]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test bl, 2
je 0x10417ed
push dword [ebp - 0x2fc]
and ebx, 0xfffffffd
call esi
test bl, 1
je 0x10417fa
push dword [ebp - 0x2cc]
call esi
mov dword [ebp - 0x2bc], 0x80780041
jmp 0x1041cd6
cmp dword [ebp + 0x48], 0
je 0x1041828
lea ecx, [ebp - 0x2e8]
call fcn.010d18e9
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
and dword [ebp - 0x2c8], 0
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2e8]
push eax
push dword [ebp - 0x2cc]
call fcn.010de3ca
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
cmp dword [ebp - 0x2c8], 0
jne 0x104189b
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x104188c
test byte [eax + 0x1c], 1
je 0x104188c
cmp byte [eax + 0x19], 2
jb 0x104188c
push 0x1003920
push 0x110
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
mov dword [ebp - 0x2bc], 0x8078000c
jmp 0x1041cd6
cmp dword [ebp - 0x2c8], 4
je 0x10418e2
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x10418d7
test byte [eax + 0x1c], 1
je 0x10418d7
cmp byte [eax + 0x19], 4
jb 0x10418d7
push dword [ebp - 0x2c8]
push 0x1003920
push 0x111
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
lea ecx, [ebp - 0x2e8]
call fcn.0103bc89
push dword [ebp - 0x2c8]
call fcn.01083215
test al, 0x40
jne 0x1041933
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x1041924
test byte [eax + 0x1c], 1
je 0x1041924
cmp byte [eax + 0x19], 2
jb 0x1041924
push dword [ebp - 0x2c8]
push 0x1003920
push 0x112
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
mov dword [ebp - 0x2bc], 0x8078004e
jmp 0x1041cd6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x2f8], eax
lea eax, [ebp - 0x2dc]
push eax
lea eax, [ebp - 0x2f4]
push eax
lea eax, [ebp - 0x2f0]
push eax
lea eax, [ebp - 0x2e8]
push eax
lea eax, [ebp - 0x2b8]
push eax
push 1
push dword [ebp - 0x2cc]
call fcn.010e0cb6
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
lea eax, [ebp - 0x2c4]
push eax
push 0
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x2dc]
call fcn.010df5bc
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
push 0
lea ecx, [ebp - 0x2e8]
call fcn.010d19c5
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
xor ebx, ebx
push ebx
push 1
push dword [ebp - 0x2c8]
push dword [ebp - 0x2c4]
call fcn.010d35d9
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jge 0x1041a2b
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x1041cd6
test byte [eax + 0x1c], 1
je 0x1041cd6
cmp byte [eax + 0x19], 2
jb 0x1041cd6
push dword [ebp - 0x2bc]
push dword [ebp - 0x2c4]
push 0x1003920
push 0x113
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010196ed
jmp 0x1041cd6
lea ecx, [ebp - 0x2e8]
call fcn.010d1b11
or eax, 0xffffffff
cmp dword [ebp - 0x2e8], eax
je 0x1041a49
mov eax, dword [ebp - 0x2e8]
jmp 0x1041a57
cmp dword [ebp - 0x2e4], eax
je 0x1041a57
mov eax, dword [ebp - 0x2e4]
lea ecx, [ebp - 0x2ec]
push ecx
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
push dword [esi + 0x38]
push 1
push dword [ebp - 0x2c4]
call fcn.0109f82e
mov edi, eax
cmp edi, ebx
je 0x1041b27
mov eax, dword [0x111124c]
mov esi, 0x111124c
cmp eax, esi
je 0x1041ac1
test byte [eax + 0x1c], 1
je 0x1041ac1
cmp byte [eax + 0x19], 2
jb 0x1041ac1
push dword [ebp - 0x2ec]
push edi
push dword [ebp - 0x2c4]
push 0x1003920
push 0x114
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0109b90b
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp - 0x2ec]
mov dword [ebp - 0x2cc], ebx
push edi
call fcn.010d425e
mov dword [ebp - 0x2bc], eax
mov eax, dword [0x111124c]
cmp eax, esi
je 0x1041cd6
test byte [eax + 0x1c], 1
je 0x1041cd6
cmp byte [eax + 0x19], 2
jb 0x1041cd6
push dword [ebp - 0x2cc]
push dword [ebp - 0x2bc]
push 0x1003920
push 0x115
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0109ba57
jmp 0x1041cd6
mov byte [ebp - 0x2be], 1
mov eax, dword [0x111124c]
mov esi, 0x111124c
cmp eax, esi
je 0x1041b63
test byte [eax + 0x1c], 1
je 0x1041b63
cmp byte [eax + 0x19], 4
jb 0x1041b63
push dword [ebp - 0x2c4]
push 0x1003920
push 0x116
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019680
push 1
lea eax, [ebp - 0x20c]
push eax
call fcn.0103a845
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jge 0x1041bb8
mov eax, dword [0x111124c]
cmp eax, esi
je 0x1041cd6
test byte [eax + 0x1c], 1
je 0x1041cd6
cmp byte [eax + 0x19], 2
jb 0x1041cd6
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0x20c]
push ecx
push 0x1003920
push 0x117
jmp 0x1041a1b
mov eax, dword [0x111124c]
cmp eax, esi
je 0x1041be9
test byte [eax + 0x1c], 1
je 0x1041be9
cmp byte [eax + 0x19], 5
jb 0x1041be9
lea ecx, [ebp - 0x20c]
push ecx
push 0x1003920
push 0x118
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019680
cmp dword [ebp + 0x2c], ebx
je 0x1041c64
mov eax, dword [ebp - 0x2d4]
cmp dword [eax + 0x18], ebx
jne 0x1041c13
call fcn.010f0b4a
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jl 0x1041cd6
mov byte [ebp - 0x2c0], 1
lea eax, [ebp - 0x2d8]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.010f1065
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
push dword [ebp - 0x2d8]
mov byte [ebp - 0x2bf], 1
push dword [ebp + 0x38]
push dword [ebp - 0x2d0]
call fcn.01025872
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041cd6
mov eax, dword [ebp - 0x2d4]
inc dword [eax + 0x18]
jmp 0x1041c83
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0x38]
push dword [ebp - 0x2d0]
call fcn.01025872
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jl 0x1041cd6
mov eax, dword [ebp - 0x2d0]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x1041c8c
mov ecx, dword [ebp - 0x300]
sub eax, edx
sar eax, 1
inc eax
mov dword [ecx], eax
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x1041cd6
test byte [eax + 0x1c], 1
je 0x1041cd6
cmp byte [eax + 0x19], 4
jb 0x1041cd6
push dword [ebp - 0x2d0]
push 0x1003920
push 0x119
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019680
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov eax, dword [0x111124c]
cmp eax, 0x111124c
je 0x1041d14
test byte [eax + 0x1c], 1
je 0x1041d14
cmp byte [eax + 0x19], 4
jb 0x1041d14
mov ecx, esi
sub ecx, dword [ebp - 0x2f8]
push ecx
push 0x1003920
push 0x11a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
sub esi, dword [ebp - 0x2f8]
push esi
push dword [ebp - 0x2bc]
lea esi, [ebp - 0x21c]
push dword [ebp + 0x2c]
sub esp, 0x10
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x22c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.010bb309
cmp dword [ebp - 0x2bc], 0
jge 0x1041e5a
cmp byte [ebp - 0x2c0], 0
je 0x1041d9a
call fcn.010f09f1
test eax, eax
jge 0x1041d9a
mov ecx, dword [0x111124c]
mov ebx, 0x111124c
cmp ecx, ebx
je 0x1041d9f
test byte [ecx + 0x1c], 1
je 0x1041d9f
cmp byte [ecx + 0x19], 2
jb 0x1041d9f
push eax
mov edi, 0x1003920
push edi
push 0x11b
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.010189f6
jmp 0x1041da4
mov ebx, 0x111124c
mov edi, 0x1003920
cmp byte [ebp - 0x2bf], 0
je 0x1041de5
lea eax, [ebp - 0x20c]
push eax
call fcn.010d81b2
test eax, eax
jge 0x1041de5
mov ecx, dword [0x111124c]
cmp ecx, ebx
je 0x1041de5
test byte [ecx + 0x1c], 1
je 0x1041de5
cmp byte [ecx + 0x19], 2
jb 0x1041de5
push eax
push edi
push 0x11c
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.010189f6
cmp byte [ebp - 0x2be], 0
je 0x1041e64
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [eax]
lea edx, [ebp - 0x20c]
push edx
push eax
call dword [ecx + 0xb4]
test eax, eax
jge 0x1041e32
mov ecx, dword [0x111124c]
cmp ecx, ebx
je 0x1041e64
test byte [ecx + 0x1c], 1
je 0x1041e64
cmp byte [ecx + 0x19], 2
jb 0x1041e64
push eax
push edi
push 0x11d
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.010189f6
jmp 0x1041e64
mov eax, dword [0x111124c]
cmp eax, ebx
je 0x1041e64
test byte [eax + 0x1c], 1
je 0x1041e64
cmp byte [eax + 0x19], 5
jb 0x1041e64
push edi
push 0x11e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
jmp 0x1041e64
mov ebx, 0x111124c
mov edi, 0x1003920
lea ecx, [ebp - 0x2e8]
call fcn.010d1b11
cmp dword [ebp - 0x2f0], 0
mov esi, dword [sym.imp.ole32.dll_CoTaskMemFree]
je 0x1041e86
push dword [ebp - 0x2f0]
call esi
cmp dword [ebp - 0x2f4], 0
je 0x1041e97
push dword [ebp - 0x2f4]
call esi
cmp dword [ebp - 0x2dc], 0
je 0x1041ea8
push dword [ebp - 0x2dc]
call esi
cmp dword [ebp - 0x2c4], 0
je 0x1041eb9
push dword [ebp - 0x2c4]
call esi
cmp dword [ebp - 0x2d8], 0
je 0x1041eca
push dword [ebp - 0x2d8]
call esi
cmp byte [ebp - 0x2bd], 0
je 0x1041edf
lea eax, [ebp - 0x2b8]
push eax
call fcn.01087d19
mov eax, dword [0x111124c]
cmp eax, ebx
je 0x1041f36
test byte [eax + 0x1c], 1
je 0x1041f10
cmp byte [eax + 0x19], 5
jb 0x1041f10
push dword [ebp - 0x2bc]
push edi
push 0x11f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
mov eax, dword [0x111124c]
cmp eax, ebx
je 0x1041f36
test byte [eax + 0x1c], 1
je 0x1041f36
cmp byte [eax + 0x19], 4
jb 0x1041f36
push edi
push 0x120
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189d0
mov eax, dword [0x111124c]
mov esi, dword [ebp - 0x2bc]
test esi, esi
jge 0x104162e
cmp eax, ebx
je 0x104162e
test byte [eax + 0x1c], 1
je 0x104162e
cmp byte [eax + 0x19], 2
jb 0x104162e
push esi
push edi
push 0x121
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010189f6
jmp 0x104162e