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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x59ece0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
mov esi, ecx
mov eax, dword [esi]
push ebx
push 1
call dword [eax + 4]
test eax, eax
je 0x4c1b33
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esi + 0x2468]
mov dword [esi + 0x26ac], eax
cmp edx, 0xa
jl 0x4c1783
push 0xa
pop edx
mov dword [esi + 0x26d0], eax
mov dword [ebp - 8], eax
lea eax, [esi + 0x62cc0]
push edi
push eax
mov dword [esi + 0x2468], edx
call fcn.0049fb23
pop ecx
xor edi, edi
lea eax, [esi + 0x270c]
mov ecx, 0x90e0
cmp dword [eax], ebx
je 0x4c17be
inc edi
add eax, ecx
cmp edi, 0xa
jl 0x4c17ad
jmp 0x4c1b32
imul edi, edi, 0x90e0
lea edi, [edi + esi + 0x2700]
mov dword [ebp - 0xc], edi
cmp edi, ebx
je 0x4c1b32
push ecx
push ebx
push edi
call fcn.0049d850
or dword [edi + 0x38], 0xffffffff
or dword [edi + 0x3c], 0xffffffff
add esp, 0xc
push ebx
push 1
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0xc], eax
cmp eax, ebx
je 0x4c1b32
push edi
mov ecx, esi
call fcn.004be8a0
test eax, eax
je 0x4c1b32
mov dword [edi + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x20]
cmp dword [eax + 4], 1
je 0x4c1835
push edi
mov ecx, esi
call fcn.004be07b
test eax, eax
je 0x4c1b32
lea eax, [ebp - 0xc]
lea ecx, [esi + 0x26dc]
push eax
call fcn.004bf3da
cmp dword [esi + 0x5d100], 7
je 0x4c186d
cmp dword [esi + 0x26a8], ebx
je 0x4c186d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x26ac]
cmp eax, dword [esi + 0x26a8]
ja 0x4c1b4a
push 0xa
pop ecx
xor eax, eax
mov dword [ebp - 0x50], ebx
lea edi, [ebp - 0x4c]
rep stosd dword es:[edi], eax
push 0xb
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
call fcn.004be017
cmp eax, 1
jbe 0x4c1b02
mov edi, 0x1f4
push edi
push ebx
lea ecx, [ebp - 0x50]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [ebp - 0xc], ecx
sub ecx, dword [ebp - 8]
cmp ecx, edi
jb 0x4c1970
xor eax, eax
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
mov eax, dword [esi + 0x26c4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], ecx
push eax
lea ecx, [esi + 0x26b4]
call fcn.004c12ed
mov eax, dword [esi + 0x26b8]
sub eax, dword [esi + 0x26b4]
sar eax, 3
cmp eax, 6
jbe 0x4c1905
push dword [esi + 0x26b4]
lea eax, [ebp - 0x24]
push eax
lea ecx, [esi + 0x26b4]
call fcn.004bf881
mov eax, dword [esi + 0x26b8]
sub eax, dword [esi + 0x26b4]
and eax, 0xfffffff8
cmp eax, 0x30
jne 0x4c1964
mov edi, dword [esi + 0x26b4]
push 6
xor eax, eax
xor ecx, ecx
pop edx
add eax, dword [edi + 4]
add ecx, dword [edi]
add edi, 8
dec edx
jne 0x4c1926
mov dword [ebp - 8], ecx
fild dword [ebp - 8]
test ecx, ecx
jns 0x4c1941
fadd qword [0x598a20]
mov dword [ebp - 8], eax
fild dword [ebp - 8]
test eax, eax
jns 0x4c1951
fadd qword [0x598a20]
fdivp st(1)
fmul qword [0x5989a0]
call fcn.004a2296
mov dword [esi + 0x26b0], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov dword [esi + 0x26c4], ebx
lea eax, [ebp - 0x20]
push eax
call fcn.0049fb23
mov edx, dword [ebp - 0x1c]
pop ecx
mov ecx, dword [ebp - 0x20]
sub ecx, dword [esi + 0x62cc0]
sbb edx, dword [esi + 0x62cc4]
mov dword [esi + 0x62cc8], ecx
mov dword [esi + 0x62ccc], edx
mov edx, dword [esi + 0x26b0]
cmp edx, ebx
je 0x4c19da
mov eax, dword [esi + 0x5d108]
mov ecx, dword [esi + 0x5d10c]
mov edi, eax
and edi, ecx
cmp edi, 0xffffffff
je 0x4c19da
sub eax, dword [esi + 0x5d118]
push ebx
sbb ecx, dword [esi + 0x5d11c]
push edx
push ecx
push eax
call fcn.0049e6b0
mov dword [esi + 0x62cd0], eax
mov dword [esi + 0x62cd4], edx
jmp 0x4c19e6
mov dword [esi + 0x62cd0], ebx
mov dword [esi + 0x62cd4], ebx
mov eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
je 0x4c1b28
cmp eax, 0x102
jne 0x4c1a3d
cmp dword [esi + 0x246c], 6
jne 0x4c1844
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, eax
sub edx, dword [esi + 0x26a4]
cmp edx, 0x3e8
jbe 0x4c1844
push ebx
mov dword [esi + 0x26a4], eax
mov eax, dword [esi]
push 6
mov ecx, esi
call dword [eax + 4]
test eax, eax
jne 0x4c1844
jmp 0x4c1b32
cmp eax, ebx
je 0x4c1b41
lea ebx, [eax - 1]
mov eax, dword [esi + 0x26dc]
mov edi, dword [eax + ebx*4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x26c8], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4c1a78
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push dword [edi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [edi + 0x10], 0
mov edi, dword [edi + 0x28]
cmp edi, 0xa
ja case.default.0x4c1a80
jmp dword [edi*4 + 0x4c1b57]
push ebx
mov ecx, esi
call fcn.004befd0
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004c06ff
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004bf04a
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004c079f
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004bf14e
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004c1066
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004bf1ce
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004c1110
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004bf2d2
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004c15d5
jmp 0x4c1af7
push ebx
mov ecx, esi
call fcn.004bfc68
jmp 0x4c1af7
xor eax, eax
test eax, eax
je 0x4c1b28
xor ebx, ebx
jmp 0x4c1844
cmp dword [esi + 0x26fc], ebx
je 0x4c1b32
mov eax, dword [esi + 0x5d11c]
cmp eax, dword [esi + 0x5d10c]
ja 0x4c1b32
jb 0x4c1b28
mov eax, dword [esi + 0x5d118]
cmp eax, dword [esi + 0x5d108]
jae 0x4c1b32
mov dword [esi + 0x5d100], 8
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0049d4b1
leave
ret
cmp dword [esi + 0x5d100], 7
je 0x4c1b32
mov dword [esi + 0x5d100], 9
jmp 0x4c1b32