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

Disassembly:
push 0x20
mov eax, 0x5624bf
call fcn.0054f819
mov ebx, ecx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x28], 0x3e8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
xor ecx, ecx
lea esi, [ebx + 0x2a0]
inc ecx
mov dword [ebp - 0x1c], esi
test eax, eax
cmove eax, ecx
mov ecx, esi
mov dword [ebp - 0x2c], eax
call fcn.00529310
and dword [ebp - 4], 0
mov ecx, ebx
call fcn.0047ae5c
mov ecx, ebx
call fcn.0047b2af
mov ecx, ebx
call fcn.0047be70
or dword [ebp - 4], 0xffffffff
mov ecx, esi
call fcn.00529320
mov eax, dword [ebx + 0x328]
xor ecx, ecx
inc ecx
mov byte [ebx + 0x153], cl
test eax, eax
je 0x478c6c
push dword [ebx + 0x32c]
call eax
pop ecx
xor edi, edi
mov dword [ebp - 0x14], edi
cmp byte [ebx + 0x154], 0
push 7
pop esi
je 0x478db9
mov ecx, ebx
call fcn.00479584
mov eax, edi
cdq
idiv esi
neg edx
sbb dl, dl
inc dl
mov byte [ebp - 0x20], dl
je 0x478c9c
inc edi
mov dword [ebp - 0x14], edi
push dword [ebp - 0x20]
mov ecx, ebx
mov dword [ebp - 4], 1
call fcn.00478e7e
jmp 0x478cbb
or dword [ebp - 4], 0xffffffff
mov ecx, ebx
call fcn.0047baf7
mov ecx, ebx
call fcn.004794cc
lea ecx, [ebp - 0x2c]
call fcn.00448525
test al, al
je 0x478d2e
inc edi
mov dword [ebp - 4], 3
mov ecx, ebx
mov dword [ebp - 0x14], edi
call fcn.0047a458
jmp 0x478cf9
lea ecx, [ebx + 0x1d8]
mov dword [ebp - 4], 5
call fcn.0047dfd6
jmp 0x478d19
or dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 1
test eax, eax
pop ecx
cmove eax, ecx
mov dword [ebp - 0x2c], eax
lea esi, [ebx + 0x2d0]
mov ecx, esi
call fcn.00529310
mov eax, dword [ebx + 0x23c]
mov ecx, 0x90
sub eax, dword [ebx + 0x238]
cdq
idiv ecx
mov ecx, esi
mov dword [ebp - 0x1c], eax
call fcn.00529320
cmp dword [ebx + 0x2bc], 0
jg 0x478d80
cmp dword [ebx + 0x2b8], 0
jg 0x478d80
cmp dword [ebp - 0x1c], 0
jne 0x478da2
push 0x32
push 0
lea esi, [ebx + 0x29c]
push esi
push 1
jmp 0x478d94
cmp dword [ebp - 0x1c], 0
jne 0x478da2
xor eax, eax
lea esi, [ebx + 0x29c]
inc eax
push eax
push 0
push esi
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
push dword [esi]
call dword [sym.imp.WS2_32.dll_WSAResetEvent]
lea ecx, [ebx + 0x3d0]
call fcn.0048c657
mov ecx, ebx
call fcn.0047be04
jmp 0x478c71
lea edi, [ebx + 0x2a0]
mov ecx, edi
mov dword [ebp - 0x24], edi
call fcn.00529310
mov dword [ebp - 4], esi
mov esi, dword [ebx + 0x264]
cmp esi, dword [ebx + 0x268]
je 0x478e18
mov edi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov eax, dword [esi]
mov dword [ebp - 0x1c], eax
cmp dword [eax + 0x2ec], 6
je 0x478dfa
push 1
mov ecx, eax
call fcn.0048f32c
mov eax, dword [ebp - 0x1c]
mov ecx, eax
call fcn.0048de1d
push dword [ebp - 0x1c]
call edi
add esi, 4
pop ecx
cmp esi, dword [ebx + 0x268]
jne 0x478de0
lea edi, [ebx + 0x2a0]
mov eax, dword [ebx + 0x264]
mov dword [ebx + 0x268], eax
mov esi, dword [ebx + 0x27c]
cmp esi, dword [ebx + 0x280]
je 0x478e5f
mov edi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
mov eax, dword [esi]
mov dword [ebp - 0x20], eax
test eax, eax
je 0x478e4e
mov ecx, eax
call fcn.0048de1d
push dword [ebp - 0x20]
call edi
pop ecx
add esi, 4
cmp esi, dword [ebx + 0x280]
jne 0x478e38
lea edi, [ebx + 0x2a0]
mov eax, dword [ebx + 0x27c]
mov ecx, edi
or dword [ebp - 4], 0xffffffff
mov dword [ebx + 0x280], eax
call fcn.00529320
xor eax, eax
call fcn.0054f77e
ret