Function at 0x40c2e2
Capabilities:
Check for time delay via gettickcount
Create thread

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
push edi
push esi
call fcn.0040a4cd
xor ebx, ebx
pop ecx
cmp dword [esi + 0x44], ebx
je 0x40c488
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esi + 8], ebx
jne 0x40c32c
mov eax, dword [esi + 0xc]
mov ecx, eax
imul ecx, ecx, 0x2710
mov dword [esi + 0x1c], ecx
mov ecx, eax
imul ecx, ecx, 0x3e8
mov dword [esi + 8], eax
mov dword [esi + 0x20], ecx
mov dword [esi + 0x34], eax
call edi
mov dword [esi + 0x48], eax
jmp 0x40c360
cmp dword [esi + 0x48], ebx
je 0x40c33d
call edi
sub eax, dword [esi + 0x48]
cmp eax, 0x927c0
jb 0x40c360
mov eax, dword [esi + 0x10]
mov ecx, eax
imul ecx, ecx, 0x2710
mov dword [esi + 8], eax
mov dword [esi + 0x34], eax
imul eax, eax, 0x3e8
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], eax
test byte [esi], 1
je 0x40c480
call edi
sub eax, dword [esi + 0x4c]
cmp eax, 0x2710
jae 0x40c49d
cmp dword [esi + 0x54], ebx
je 0x40c385
call edi
sub eax, dword [esi + 0x54]
jmp 0x40c38a
mov eax, 0x3e8
mov ebx, eax
cmp eax, 1
jge 0x40c394
xor ebx, ebx
inc ebx
mov eax, 0x4e20
cmp ebx, eax
jle 0x40c39f
mov ebx, eax
mov ecx, dword [esi + 0x58]
mov edi, dword [esi + 0x40]
imul ecx, ecx, 0x3e8
mov eax, ecx
sub eax, edi
imul eax, ebx
push ebp
cdq
mov ebp, 0x3e8
idiv ebp
push 0x14
pop ebp
mov dword [esp + 0x14], ebx
cdq
idiv ebp
test eax, eax
je 0x40c3cd
add edi, eax
jmp 0x40c3d7
cmp ecx, edi
je 0x40c3da
jge 0x40c3d6
dec edi
jmp 0x40c3d7
inc edi
mov dword [esi + 0x40], edi
cmp dword [esi + 0x40], 0
jge 0x40c3e4
and dword [esi + 0x40], 0
mov ebp, 0xc8
sub ebp, dword [esi + 0x40]
mov eax, 0x3e8
imul ebp, ebp, 0x14
cmp ebx, eax
jle 0x40c3fc
mov dword [esp + 0x14], eax
mov eax, ebp
imul eax, dword [esp + 0x14]
cdq
mov ebx, 0x3e8
idiv ebx
mov ecx, dword [esi + 0x14]
mov edi, dword [esi + 0x10]
imul ecx, ecx, 0x3e8
imul edi, edi, 0x3e8
push ecx
push edi
cdq
idiv dword [esi + 0x30]
add eax, dword [esi + 0x20]
push eax
call fcn.0040a50b
mov ebx, eax
mov eax, ebp
cdq
idiv dword [esi + 0x2c]
push ecx
push edi
mov dword [esi + 0x20], ebx
add eax, ebx
push eax
call fcn.0040a50b
cdq
mov ecx, 0x3e8
idiv ecx
xor ebx, ebx
add esp, 0x18
mov dword [esi + 0x58], ebx
mov edi, eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x34]
pop ebp
cmp eax, edi
jle 0x40c472
mov dword [esi + 8], edi
imul edi, edi, 0x2710
mov dword [esi + 0x1c], edi
jmp 0x40c49d
mov dword [esi + 8], eax
imul eax, eax, 0x3e8
mov dword [esi + 0x20], eax
jmp 0x40c49d
mov eax, dword [esi + 0x34]
mov dword [esi + 8], eax
jmp 0x40c49d
mov dword [esi + 8], ebx
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x54], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x58], ebx
mov edi, dword [esi]
lea eax, [esi + 4]
mov ecx, dword [eax]
not edi
and edi, 1
mov dword [esi + 0x5c], ebx
cmp ecx, dword [esi + 8]
jge 0x40c4d8
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
shl edi, 0x10
or eax, edi
push eax
push 0x40b53b
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
je 0x40c4d8
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
ret