Function at 0xd9c2dc
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.00d9a4c7
sub ebx, ebx
pop ecx
cmp dword [esi + 0x44], ebx
je 0xd9c482
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [esi + 8], ebx
jne 0xd9c326
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 0xd9c35a
cmp dword [esi + 0x48], ebx
je 0xd9c337
call edi
sub eax, dword [esi + 0x48]
cmp eax, 0x927c0
jb 0xd9c35a
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 0xd9c47a
call edi
sub eax, dword [esi + 0x4c]
cmp eax, 0x2710
jae 0xd9c497
cmp dword [esi + 0x54], ebx
je 0xd9c37f
call edi
sub eax, dword [esi + 0x54]
jmp 0xd9c384
mov eax, 0x3e8
push eax
pop ebx
cmp eax, 1
jge 0xd9c38e
sub ebx, ebx
inc ebx
mov eax, 0x4e20
cmp ebx, eax
jle 0xd9c399
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
or eax, eax
je 0xd9c3c7
add edi, eax
jmp 0xd9c3d1
cmp ecx, edi
je 0xd9c3d4
jge 0xd9c3d0
dec edi
jmp 0xd9c3d1
inc edi
mov dword [esi + 0x40], edi
cmp dword [esi + 0x40], 0
jge 0xd9c3de
and dword [esi + 0x40], 0
mov ebp, 0xc8
sub ebp, dword [esi + 0x40]
mov eax, 0x3e8
imul ebp, ebp, 0x14
cmp ebx, eax
jle 0xd9c3f6
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.00d9a505
mov ebx, eax
push ebp
pop eax
cdq
idiv dword [esi + 0x2c]
push ecx
push edi
mov dword [esi + 0x20], ebx
add eax, ebx
push eax
call fcn.00d9a505
cdq
mov ecx, 0x3e8
idiv ecx
xor ebx, ebx
add esp, 0x18
mov dword [esi + 0x58], ebx
push eax
pop edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x34]
pop ebp
cmp eax, edi
jle 0xd9c46c
mov dword [esi + 8], edi
imul edi, edi, 0x2710
mov dword [esi + 0x1c], edi
jmp 0xd9c497
mov dword [esi + 8], eax
imul eax, eax, 0x3e8
mov dword [esi + 0x20], eax
jmp 0xd9c497
mov eax, dword [esi + 0x34]
mov dword [esi + 8], eax
jmp 0xd9c497
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 0xd9c4d2
push ebx
push ebx
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedIncrement]
shl edi, 0x10
or eax, edi
push eax
push 0xd9b535
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
cmp eax, ebx
je 0xd9c4d2
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
ret