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

Disassembly:
push ebp
push edi
push esi
push ebx
mov eax, dword [0x426924]
mov dword [0x42323c], 5
mov dword [0x422da0], eax
call fcn.0041393c
mov eax, dword [0x426928]
push eax
call fcn.004017ec
add esp, 4
mov dword [0x422d9c], 0
mov dword [0x4232a8], 0
call fcn.00401370
test eax, eax
je 0x415c70
cmp eax, 1
jne 0x4160ac
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x426a3c]
cmp eax, 0xbb7
ja 0x4160ac
push 0x113
call fcn.0041242c
add esp, 4
cmp dword [0x4267f8], 0
je 0x415c3d
xor eax, eax
jmp 0x416138
mov dword [0x42692c], 1
call fcn.0041354c
call sub.kernel32.dll_GetTickCount
mov dword [0x422db0], eax
mov dword [0x422da8], 0x80
mov eax, dword [0x42323c]
push eax
call fcn.0041346c
push 6
mov eax, dword [0x42323c]
push eax
call fcn.00415b14
push 6
call fcn.0041346c
call fcn.0041393c
call fcn.00409428
mov dword [0x423c5c], 1
mov edx, dword [0x42323c]
mov eax, dword [0x422dac]
add esp, 0x10
cmp word [eax + edx*2], 0
jg 0x415d15
mov dword [0x41c448], 1
mov dword [0x41da3c], 0
push 1
push 0x7fffffff
push 0x80000001
push 2
push edx
push 0
call fcn.00414ee4
add esp, 0x18
cmp dword [0x4267f8], 0
jne 0x415c69
mov edx, dword [0x42323c]
mov eax, dword [0x422dac]
movsx edx, word [eax + edx*2]
mov dword [0x42323c], edx
test edx, edx
jg 0x415d59
mov eax, dword [0x426928]
cmp dword [0x422da0], eax
jne 0x41612c
cmp dword [0x426920], 0xfb7
je 0x416133
mov eax, 0x76
jmp 0x416138
mov eax, dword [0x426928]
cmp dword [0x422da0], eax
je 0x415d82
push edx
call fcn.00414994
inc dword [0x42323c]
add esp, 4
jmp 0x415d8c
mov dword [0x422d9c], edx
jmp 0x415e20
mov dword [0x42323c], 5
mov dword [0x423c64], 0x80
mov ecx, 0x41e70c
mov eax, 0x7f
mov edx, 0x1fc
mov dword [ecx + edx], 0
add edx, 0xfffffffc
dec eax
jns 0x415da5
mov edx, dword [0x42323c]
mov eax, dword [0x422dac]
mov dword [0x41da3c], 1
movsx ebx, word [eax + edx*2]
mov word [eax + edx*2], 0
push 1
push 0x7fffffff
push 0x80000001
push 0
push edx
push 0
call fcn.00414ee4
mov edx, dword [0x42323c]
mov eax, dword [0x422dac]
add esp, 0x18
cmp word [eax + edx*2], 0
jle 0x415e20
xor eax, eax
mov edx, dword [0x423c64]
cmp eax, edx
jge 0x415e20
mov esi, 0x41e70c
mov ecx, edx
mov edx, dword [esi + eax*4]
cmp edx, 1
je 0x415d77
inc eax
cmp eax, ecx
jl 0x415e0f
mov eax, dword [0x42323c]
push eax
call fcn.0041346c
mov ecx, dword [0x42323c]
mov edx, dword [0x422dac]
mov word [edx + ecx*2], bx
add esp, 4
cmp dword [0x4267f8], 0
je 0x415e84
jmp 0x415c69
mov eax, dword [0x422dac]
mov dx, word [eax + ebx*2]
mov ecx, dword [0x42323c]
mov word [eax + esi*2], dx
mov dx, word [eax + ecx*2]
mov word [eax + ebx*2], dx
mov word [eax + ecx*2], bx
call fcn.0040cde0
jmp 0x415efe
mov dword [0x4267f8], 0
jmp 0x4160ac
mov eax, dword [0x426924]
cmp dword [0x426928], eax
jne 0x415f2f
cmp dword [0x422d9c], 0
je 0x415f2f
mov eax, dword [0x423c74]
movsx eax, word [eax + 4]
cmp dword [0x424770], eax
jge 0x415efe
movsx ebx, word [edx + ecx*2]
mov esi, ebx
movsx ebx, word [edx + ebx*2]
test ebx, ebx
jle 0x415efe
mov edi, dword [0x424770]
mov edx, dword [0x423c74]
mov eax, edi
add eax, edi
lea eax, [edx + eax - 4]
push eax
mov eax, dword [0x422dac]
lea eax, [eax + ebx*2]
push eax
call fcn.004146ac
add esp, 8
test eax, eax
je 0x415e4c
mov eax, dword [0x422dac]
mov esi, ebx
movsx ebx, word [eax + ebx*2]
test ebx, ebx
jg 0x415ec1
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x426a3c]
cmp eax, 0xbb7
ja 0x4160ac
push 0x113
call fcn.0041242c
add esp, 4
cmp dword [0x4267f8], 0
je 0x415efe
jmp 0x415c69
mov eax, dword [0x41c470]
mov dword [0x41da3c], 0
mov dword [0x41c448], eax
mov edi, dword [0x41c9a4]
mov eax, dword [0x425084]
lea edx, [edi*4]
lea eax, [eax + eax*4]
mov dword [0x423c5c], 1
mov ebp, dword [edx + eax*4 + 0x426930]
push 1
push 0x7fffffff
push 0x80000001
mov eax, dword [0x423c5c]
push eax
mov eax, dword [0x42323c]
push eax
push 0
call fcn.00414ee4
mov esi, eax
mov eax, dword [0x4267f8]
add esp, 0x18
cmp eax, 0xfba
je 0x415e75
test eax, eax
jne 0x415c69
mov edx, dword [0x42323c]
mov eax, dword [0x422dac]
cmp word [eax + edx*2], 0
jle 0x41612c
mov eax, dword [0x426924]
cmp dword [0x426928], eax
jne 0x41606e
call sub.kernel32.dll_GetTickCount
sub eax, dword [0x426a3c]
cmp eax, 0xbb7
jbe 0x41606e
mov edx, dword [0x426924]
add edx, 0xfffffffe
mov eax, dword [edx*4 + 0x41c44c]
sub eax, dword [edx*4 + 0x41c468]
mov edx, eax
cmp esi, 0x7fffff7e
jg 0x4160ac
cmp esi, 0x80000081
jle 0x4160ac
cmp dword [0x425010], 0
je 0x416036
test edx, edx
jle 0x416036
mov eax, dword [0x41c448]
lea eax, [eax + eax*2]
test eax, eax
jge 0x41602f
add eax, 3
sar eax, 2
cmp edx, eax
jge 0x4160ac
mov eax, dword [0x42323c]
mov edx, dword [0x422dac]
movsx ebx, word [edx + eax*2]
movsx ebx, word [edx + ebx*2]
test ebx, ebx
jle 0x4160ac
mov eax, edx
cmp dword [eax + ebx*2 + 4], 0x80000081
jge 0x416061
movsx ebx, word [eax + ebx*2]
test ebx, ebx
jg 0x41604f
test ebx, ebx
jle 0x4160ac
cmp dword [0x423c5c], 0x20
je 0x4160ac
mov dword [0x422dbc], esi
push 1
push 0x1006
call fcn.0040d31c
mov edx, dword [0x423c5c]
cmp edx, ebp
sete al
add esp, 8
mov edi, eax
inc edx
and edi, 1
mov eax, ebp
mov dword [0x4232a8], edi
cmp eax, edx
jle 0x4160a2
mov eax, edx
mov dword [0x423c5c], eax
jmp 0x415f69
mov eax, dword [0x42323c]
mov edx, dword [0x422dac]
movsx ebx, word [edx + eax*2]
push ebx
call fcn.0040224c
mov eax, dword [0x42323c]
push eax
push ebx
call fcn.00418f78
add esp, 0xc
cmp dword [0x4267f8], 0xfbb
jne 0x4160e6
mov dword [0x4267f8], 0
push 6
call fcn.0041346c
mov eax, dword [0x422dac]
mov dx, word [eax + ebx*2 + 2]
mov word [eax + 0xc], dx
mov word [eax + ebx*2 + 2], 0
call fcn.0041393c
push 0
push 1
mov eax, dword [0x426924]
push eax
push 4
call fcn.004145d8
mov eax, dword [0x422dac]
add esp, 0x14
cmp word [eax + 8], 0
jle 0x416133
jmp 0x415c69
mov eax, 0xffffffff
jmp 0x416138
mov eax, 0x77
pop ebx
pop esi
pop edi
pop ebp
ret