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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x30c
mov eax, dword [0x111027c]
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 [0x111024c]
cmp eax, 0x111024c
je 0x10416b3
test byte [eax + 0x1c], 1
je 0x10416b3
cmp byte [eax + 0x19], 4
jb 0x10416b3
push 0x1003928
push 0x10e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
or dword [ebp - 0x2e4], 0xffffffff
xor eax, eax
mov ebx, 0x1111850
mov dword [ebp - 0x30c], 0x100396c
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 0x1041734
cmp dword [ebp + 0x38], eax
ja 0x104173c
cmp dword [ebp - 0x300], eax
jne 0x104176a
mov esi, 0x80004003
lea ecx, [ebp - 0x2e8]
call fcn.01018ae7
lea ecx, [ebp - 0x30c]
call fcn.01037a46
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0106f798
leave
ret 0x44
push 4
pop ecx
mov edi, 0x1007124
lea esi, [ebp - 0x21c]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x1041785
mov esi, 0x80070057
jmp 0x1041741
cmp dword [ebp + 0x38], 0x104
jae 0x104179d
mov ecx, dword [ebp - 0x300]
mov dword [ecx], eax
mov esi, 0x8007007a
jmp 0x1041741
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 0x10417dd
mov dword [ebp - 0x2bc], 0x8078000a
jmp 0x1041de9
cmp dword [ebp - 0x2bc], 0
jne 0x10417ec
mov dword [ebp - 0x2bc], eax
lea ecx, [ebp - 0x30c]
call fcn.01037a16
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 0x1041de9
xor eax, eax
mov byte [ebp - 0x2bd], 1
cmp dword [ebp - 0x28c], eax
jbe 0x1041884
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 0x1041873
inc eax
add edx, 0x70
cmp eax, dword [ebp - 0x28c]
jb 0x1041854
jmp 0x1041884
imul eax, eax, 0x70
add eax, dword [ebp - 0x288]
mov esi, eax
jne 0x104191c
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x10418e4
test byte [eax + 0x1c], 1
je 0x10418e4
cmp byte [eax + 0x19], 2
jb 0x10418e4
push 3
pop ebx
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 0x2cc]
call fcn.01021ad0
mov esi, dword [eax]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x2fc]
call fcn.01021ad0
push esi
push dword [eax]
mov eax, dword [0x111024c]
push 0x1003928
push 0x10f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010197e6
jmp 0x10418ea
mov ebx, dword [ebp - 0x2fc]
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
test bl, 2
je 0x1041900
push dword [ebp - 0x2fc]
and ebx, 0xfffffffd
call esi
test bl, 1
je 0x104190d
push dword [ebp - 0x2cc]
call esi
mov dword [ebp - 0x2bc], 0x80780041
jmp 0x1041de9
cmp dword [ebp + 0x48], 0
je 0x104193b
lea ecx, [ebp - 0x2e8]
call fcn.010d18c6
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
and dword [ebp - 0x2c8], 0
lea eax, [ebp - 0x2c8]
push eax
lea eax, [ebp - 0x2e8]
push eax
push dword [ebp - 0x2cc]
call fcn.010de2dc
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
cmp dword [ebp - 0x2c8], 0
jne 0x10419ae
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x104199f
test byte [eax + 0x1c], 1
je 0x104199f
cmp byte [eax + 0x19], 2
jb 0x104199f
push 0x1003928
push 0x110
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
mov dword [ebp - 0x2bc], 0x8078000c
jmp 0x1041de9
cmp dword [ebp - 0x2c8], 4
je 0x10419f5
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x10419ea
test byte [eax + 0x1c], 1
je 0x10419ea
cmp byte [eax + 0x19], 4
jb 0x10419ea
push dword [ebp - 0x2c8]
push 0x1003928
push 0x111
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
lea ecx, [ebp - 0x2e8]
call fcn.0103bd9b
push dword [ebp - 0x2c8]
call fcn.010831a6
test al, 0x40
jne 0x1041a46
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1041a37
test byte [eax + 0x1c], 1
je 0x1041a37
cmp byte [eax + 0x19], 2
jb 0x1041a37
push dword [ebp - 0x2c8]
push 0x1003928
push 0x112
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
mov dword [ebp - 0x2bc], 0x8078004e
jmp 0x1041de9
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.010e0bc5
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
lea eax, [ebp - 0x2c4]
push eax
push 0
lea eax, [ebp - 0x21c]
push eax
push dword [ebp - 0x2dc]
call fcn.010df4ce
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
push 0
lea ecx, [ebp - 0x2e8]
call fcn.010d19a2
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
xor ebx, ebx
push ebx
push 1
push dword [ebp - 0x2c8]
push dword [ebp - 0x2c4]
call fcn.010d353f
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jge 0x1041b3e
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1041de9
test byte [eax + 0x1c], 1
je 0x1041de9
cmp byte [eax + 0x19], 2
jb 0x1041de9
push dword [ebp - 0x2bc]
push dword [ebp - 0x2c4]
push 0x1003928
push 0x113
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01048c37
jmp 0x1041de9
lea ecx, [ebp - 0x2e8]
call fcn.010d1aee
or eax, 0xffffffff
cmp dword [ebp - 0x2e8], eax
je 0x1041b5c
mov eax, dword [ebp - 0x2e8]
jmp 0x1041b6a
cmp dword [ebp - 0x2e4], eax
je 0x1041b6a
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.0109f71c
mov edi, eax
cmp edi, ebx
je 0x1041c3a
mov eax, dword [0x111024c]
mov esi, 0x111024c
cmp eax, esi
je 0x1041bd4
test byte [eax + 0x1c], 1
je 0x1041bd4
cmp byte [eax + 0x19], 2
jb 0x1041bd4
push dword [ebp - 0x2ec]
push edi
push dword [ebp - 0x2c4]
push 0x1003928
push 0x114
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019c0f
lea eax, [ebp - 0x2cc]
push eax
push dword [ebp - 0x2ec]
mov dword [ebp - 0x2cc], ebx
push edi
call fcn.010d41ac
mov dword [ebp - 0x2bc], eax
mov eax, dword [0x111024c]
cmp eax, esi
je 0x1041de9
test byte [eax + 0x1c], 1
je 0x1041de9
cmp byte [eax + 0x19], 2
jb 0x1041de9
push dword [ebp - 0x2cc]
push dword [ebp - 0x2bc]
push 0x1003928
push 0x115
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01083f04
jmp 0x1041de9
mov byte [ebp - 0x2be], 1
mov eax, dword [0x111024c]
mov esi, 0x111024c
cmp eax, esi
je 0x1041c76
test byte [eax + 0x1c], 1
je 0x1041c76
cmp byte [eax + 0x19], 4
jb 0x1041c76
push dword [ebp - 0x2c4]
push 0x1003928
push 0x116
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019633
push 1
lea eax, [ebp - 0x20c]
push eax
call fcn.0103a910
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jge 0x1041ccb
mov eax, dword [0x111024c]
cmp eax, esi
je 0x1041de9
test byte [eax + 0x1c], 1
je 0x1041de9
cmp byte [eax + 0x19], 2
jb 0x1041de9
push dword [ebp - 0x2bc]
lea ecx, [ebp - 0x20c]
push ecx
push 0x1003928
push 0x117
jmp 0x1041b2e
mov eax, dword [0x111024c]
cmp eax, esi
je 0x1041cfc
test byte [eax + 0x1c], 1
je 0x1041cfc
cmp byte [eax + 0x19], 5
jb 0x1041cfc
lea ecx, [ebp - 0x20c]
push ecx
push 0x1003928
push 0x118
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019633
cmp dword [ebp + 0x2c], ebx
je 0x1041d77
mov eax, dword [ebp - 0x2d4]
cmp dword [eax + 0x18], ebx
jne 0x1041d26
call fcn.010f0afe
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jl 0x1041de9
mov byte [ebp - 0x2c0], 1
lea eax, [ebp - 0x2d8]
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.010f1019
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
push dword [ebp - 0x2d8]
mov byte [ebp - 0x2bf], 1
push dword [ebp + 0x38]
push dword [ebp - 0x2d0]
call fcn.010257dc
mov dword [ebp - 0x2bc], eax
test eax, eax
jl 0x1041de9
mov eax, dword [ebp - 0x2d4]
inc dword [eax + 0x18]
jmp 0x1041d96
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0x38]
push dword [ebp - 0x2d0]
call fcn.010257dc
cmp eax, ebx
mov dword [ebp - 0x2bc], eax
jl 0x1041de9
mov eax, dword [ebp - 0x2d0]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x1041d9f
mov ecx, dword [ebp - 0x300]
sub eax, edx
sar eax, 1
inc eax
mov dword [ecx], eax
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1041de9
test byte [eax + 0x1c], 1
je 0x1041de9
cmp byte [eax + 0x19], 4
jb 0x1041de9
push dword [ebp - 0x2d0]
push 0x1003928
push 0x119
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019633
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov eax, dword [0x111024c]
cmp eax, 0x111024c
je 0x1041e27
test byte [eax + 0x1c], 1
je 0x1041e27
cmp byte [eax + 0x19], 4
jb 0x1041e27
mov ecx, esi
sub ecx, dword [ebp - 0x2f8]
push ecx
push 0x1003928
push 0x11a
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
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.010bb135
cmp dword [ebp - 0x2bc], 0
jge 0x1041f6d
cmp byte [ebp - 0x2c0], 0
je 0x1041ead
call fcn.010f09a5
test eax, eax
jge 0x1041ead
mov ecx, dword [0x111024c]
mov ebx, 0x111024c
cmp ecx, ebx
je 0x1041eb2
test byte [ecx + 0x1c], 1
je 0x1041eb2
cmp byte [ecx + 0x19], 2
jb 0x1041eb2
push eax
mov edi, 0x1003928
push edi
push 0x11b
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.01019fa8
jmp 0x1041eb7
mov ebx, 0x111024c
mov edi, 0x1003928
cmp byte [ebp - 0x2bf], 0
je 0x1041ef8
lea eax, [ebp - 0x20c]
push eax
call fcn.010d80ff
test eax, eax
jge 0x1041ef8
mov ecx, dword [0x111024c]
cmp ecx, ebx
je 0x1041ef8
test byte [ecx + 0x1c], 1
je 0x1041ef8
cmp byte [ecx + 0x19], 2
jb 0x1041ef8
push eax
push edi
push 0x11c
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.01019fa8
cmp byte [ebp - 0x2be], 0
je 0x1041f77
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 0x1041f45
mov ecx, dword [0x111024c]
cmp ecx, ebx
je 0x1041f77
test byte [ecx + 0x1c], 1
je 0x1041f77
cmp byte [ecx + 0x19], 2
jb 0x1041f77
push eax
push edi
push 0x11d
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.01019fa8
jmp 0x1041f77
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1041f77
test byte [eax + 0x1c], 1
je 0x1041f77
cmp byte [eax + 0x19], 5
jb 0x1041f77
push edi
push 0x11e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
jmp 0x1041f77
mov ebx, 0x111024c
mov edi, 0x1003928
lea ecx, [ebp - 0x2e8]
call fcn.010d1aee
cmp dword [ebp - 0x2f0], 0
mov esi, dword [sym.imp.ole32.dll_CoTaskMemFree]
je 0x1041f99
push dword [ebp - 0x2f0]
call esi
cmp dword [ebp - 0x2f4], 0
je 0x1041faa
push dword [ebp - 0x2f4]
call esi
cmp dword [ebp - 0x2dc], 0
je 0x1041fbb
push dword [ebp - 0x2dc]
call esi
cmp dword [ebp - 0x2c4], 0
je 0x1041fcc
push dword [ebp - 0x2c4]
call esi
cmp dword [ebp - 0x2d8], 0
je 0x1041fdd
push dword [ebp - 0x2d8]
call esi
cmp byte [ebp - 0x2bd], 0
je 0x1041ff2
lea eax, [ebp - 0x2b8]
push eax
call fcn.01087cb0
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1042049
test byte [eax + 0x1c], 1
je 0x1042023
cmp byte [eax + 0x19], 5
jb 0x1042023
push dword [ebp - 0x2bc]
push edi
push 0x11f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
mov eax, dword [0x111024c]
cmp eax, ebx
je 0x1042049
test byte [eax + 0x1c], 1
je 0x1042049
cmp byte [eax + 0x19], 4
jb 0x1042049
push edi
push 0x120
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0101894a
mov eax, dword [0x111024c]
mov esi, dword [ebp - 0x2bc]
test esi, esi
jge 0x1041741
cmp eax, ebx
je 0x1041741
test byte [eax + 0x1c], 1
je 0x1041741
cmp byte [eax + 0x19], 2
jb 0x1041741
push esi
push edi
push 0x121
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.01019fa8
jmp 0x1041741