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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4dae9d
mov eax, dword fs:[0]
push eax
sub esp, 0x1cc
mov eax, dword [0x540c80]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x1c0], ebx
lea ecx, [ebp - 0x18c]
mov dword [ebp - 0x1d8], ebx
mov dword [ebp - 0x198], 0
call fcn.004413b0
mov dword [ebp - 4], 1
mov esi, dword [0x545d90]
lea ecx, [esi + 2]
lea eax, [esi + 1]
imul eax, ecx
imul eax, esi
cdq
mov ecx, 9
idiv ecx
cmp edx, 5
jne 0x441914
call fcn.004aff67
mov esi, eax
mov dword [0x545d90], esi
mov eax, dword [ebp - 0x18c]
cmp dword [eax - 0xc], 0
jne 0x44198f
lea eax, [esi + 1]
imul eax, esi
cdq
mov ecx, 0x14
idiv ecx
cmp edx, 0xf
jne 0x441949
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor edx, edx
mov ecx, 0x50
div ecx
inc edx
mov dword [0x545d90], edx
push 0x525d38
mov ecx, ebx
call fcn.004025a0
mov dword [ebp - 0x198], 1
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x18c]
add esi, 0xfffffff0
or ecx, 0xffffffff
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x441e75
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
jmp 0x441e75
mov eax, esi
imul eax, esi
cdq
mov ecx, 0x16
idiv ecx
mov dword [ebp - 0x194], 0
cmp edx, 0x13
jne 0x4419b9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [0x545d90], esi
mov eax, esi
imul eax, esi
imul eax, esi
mov dword [ebp - 0x1ac], 0
and eax, 0x8000000f
jns 0x4419d7
dec eax
or eax, 0xfffffff0
inc eax
cmp eax, 0xe
jne 0x4419e2
inc dword [0x546ba8]
lea eax, [esi + 1]
imul eax, esi
cdq
mov ecx, 0x15
idiv ecx
mov dword [ebp - 0x1a4], 0
cmp edx, 0x12
jne 0x441a0a
xor edi, edi
mov ebx, esi
inc edi
dec ebx
cmp edi, 0x40
jb 0x441a03
mov eax, dword [0x547030]
test eax, eax
jne 0x441a3e
push str.Version.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
test eax, eax
je 0x441a35
push str.GetFileVersionInfoSizeW
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x547030], eax
jmp 0x441a3a
mov eax, dword [0x547030]
test eax, eax
je 0x441a4d
lea ecx, [ebp - 0x194]
push ecx
push dword [ebp - 0x18c]
call eax
mov edx, dword [0x5406d8]
mov ecx, 0x5406d8
mov dword [ebp - 0x1b0], eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [ebp - 0x190], eax
mov byte [ebp - 4], 3
mov eax, 0x525d88
test eax, 0xffff0000
jne 0x441a97
movzx esi, ax
mov ecx, esi
call fcn.00401b90
test eax, eax
je 0x441aa9
push esi
push eax
lea ecx, [ebp - 0x190]
call fcn.00402a00
jmp 0x441aa9
push 3
push 0x525d88
lea ecx, [ebp - 0x190]
call fcn.00402790
mov byte [ebp - 4], 4
mov ecx, dword [0x545d90]
mov esi, 0x18
lea eax, [ecx + 2]
inc ecx
imul eax, ecx
mov ecx, dword [0x545d90]
imul eax, ecx
cdq
idiv esi
cmp edx, 0xd
jne 0x441bce
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x1b8], eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1b4], eax
mov eax, ecx
cdq
and edx, 3
add eax, edx
sar eax, 2
mov dword [ebp - 0x1d4], eax
mov eax, 0x66666667
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1d0], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1bc], eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1cc], eax
mov eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
mov dword [ebp - 0x1c4], eax
mov eax, 0x38e38e39
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1c8], eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
xor ebx, ebx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x1a0], ebx
mov dword [ebp - 0x1a8], eax
lea esi, [ebp - 0x87]
jmp 0x441ba0
mov edi, 1
mov dword [ebp - 0x19c], 6
nop
add esi, 0xa
inc edi
dec dword [ebp - 0x19c]
jne 0x441bb0
mov ebx, dword [ebp - 0x1a0]
inc ebx
mov dword [ebp - 0x1a0], ebx
cmp ebx, 2
jl 0x441ba0
mov ebx, dword [ebp - 0x1b0]
test ebx, ebx
je 0x441db2
push ebx
call fcn.004aed89
mov ecx, dword [0x545ea0]
mov esi, dword [ebp - 0x18c]
add esp, 4
mov edi, eax
test ecx, ecx
jne 0x441c48
push 0x5423d0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [0x545ea0], 0
jne 0x441c37
push 0x5c
call fcn.004afe4a
add esp, 4
mov dword [ebp - 0x1a8], eax
mov byte [ebp - 4], 5
test eax, eax
je 0x441c2c
mov ecx, eax
call fcn.00436200
jmp 0x441c2e
xor eax, eax
mov byte [ebp - 4], 4
mov dword [0x545ea0], eax
push 0x5423d0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x545ea0]
push edi
push ebx
push dword [ebp - 0x194]
mov edx, esi
call fcn.00436510
test eax, eax
je 0x441d61
lea eax, [ebp - 0x1ac]
push eax
lea eax, [ebp - 0x1a4]
push eax
push 0x525cb4
push edi
call dword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x441ce5
cmp dword [ebp - 0x1ac], 0
je 0x441ce5
mov eax, dword [ebp - 0x1a4]
cmp dword [eax], 0xfeef04bd
jne 0x441cbc
movzx esi, word [eax + 0xa]
movzx edx, word [eax + 8]
movzx ecx, word [eax + 0xe]
movzx eax, word [eax + 0xc]
push eax
push ecx
push edx
push esi
lea eax, [ebp - 0x190]
push str._d._d._d._d
push eax
call fcn.00411590
add esp, 0x18
mov ecx, dword [0x545d90]
mov eax, ecx
imul eax, ecx
cdq
mov esi, 0x13
idiv esi
cmp edx, 0x12
jne 0x441ceb
push 4
push 3
push 0x525db0
call fcn.004b05f1
add esp, 0xc
mov ecx, dword [0x545d90]
mov eax, ecx
imul eax, ecx
imul eax, ecx
cdq
mov esi, 0xd
idiv esi
cmp edx, 7
jne 0x441d61
test ecx, ecx
je 0x441d61
mov eax, ecx
and eax, 0x80000001
jns 0x441d12
dec eax
or eax, 0xfffffffe
inc eax
jne 0x441d1f
mov eax, ecx
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
jmp 0x441d26
lea ecx, [ecx*2 + 1]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
lea eax, [eax + eax*2]
sub edx, eax
mov dword [0x545d90], ecx
sub edx, 0
je 0x441d50
sub edx, 2
je 0x441d53
dec edx
je 0x441d54
jmp 0x441d5d
add ecx, 2
inc ecx
add ecx, 2
mov dword [0x545d90], ecx
test ecx, ecx
jne 0x441d04
push edi
call fcn.004afe1b
mov ecx, dword [0x545d90]
mov eax, ecx
imul eax, ecx
imul eax, ecx
add esp, 4
and eax, 0x8000000f
jns 0x441d84
dec eax
or eax, 0xfffffff0
inc eax
cmp eax, 0xa
jne 0x441db2
mov eax, ecx
sub eax, 0
je 0x441da8
dec eax
je 0x441d9c
inc ecx
mov dword [0x545d90], ecx
jmp 0x441db2
mov dword [0x545d90], 0
jmp 0x441db2
mov dword [0x545d90], 2
mov esi, dword [ebp - 0x190]
add esi, 0xfffffff0
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x10]
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
mov ecx, eax
jl 0x441dde
cmp ecx, dword [esi]
jne 0x441dde
mov edi, esi
mov eax, 1
lock xadd dword [edx], eax
jmp 0x441e1b
mov eax, dword [ecx]
push 2
push dword [esi + 4]
call dword [eax]
mov edi, eax
test edi, edi
jne 0x441df2
call fcn.00402930
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov ecx, dword [esi + 4]
lea eax, [ecx*2 + 2]
push eax
lea eax, [esi + 0x10]
push eax
lea eax, [ecx*2 + 2]
push eax
lea eax, [edi + 0x10]
push eax
call fcn.004aff8a
add esp, 0x10
mov ebx, dword [ebp - 0x1c0]
lea eax, [edi + 0x10]
mov dword [ebx], eax
mov byte [ebp - 4], 4
mov dword [ebp - 0x198], 1
mov byte [ebp - 4], 1
or edi, 0xffffffff
lea ecx, [esi + 0xc]
mov eax, edi
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x441e51
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0
mov edx, dword [ebp - 0x18c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x441e75
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004af5ba
mov esp, ebp
pop ebp
ret