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

Disassembly:
mov qword [rsp + 0x18], r8
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov r14d, edx
mov edi, ecx
mov ebx, 1
test ecx, ecx
cmove edi, ebx
lea rax, [0x004a60e0]
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], 0
mov ecx, edi
mov ebp, edx
mov r13d, edx
imul r13, rcx
mov qword [rsp + 0x30], r13
xor edx, edx
mov rax, r13
div rcx
cmp rax, r14
je 0x475bbc
xor ecx, ecx
call fcn.0048bfd0
mov eax, 0x8007000e
jmp 0x475e00
xor ecx, ecx
call fcn.0048bfd0
mov rcx, r13
call fcn.0048bfa4
mov r12, rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], r13
test rax, rax
setne cl
test cl, cl
jne 0x475bec
mov ebx, 0x8007000e
jmp 0x475df6
mov dword [rsp + 0xd8], 0x159a55e5
mov dword [rsp + 0xdc], 0x1f123bb5
mov ecx, r14d
shr ecx, 2
add ecx, ebx
xor edx, edx
mov eax, 0x40000000
div ecx
lea r15d, [rbx + rax]
xor esi, esi
mov dword [rsp + 0x48], esi
mov qword [rsp + 0x50], rsi
cmp edi, ebx
jbe 0x475d60
mov ecx, edi
shl ecx, 5
add rcx, 8
call fcn.0040bb54
mov qword [rsp + 0x40], rax
test rax, rax
je 0x475c6b
mov dword [rax], edi
lea rbp, [rax + 8]
lea rax, [fcn.00415090]
mov qword [rsp + 0x20], rax
lea r9, [0x004749f4]
mov r8d, edi
lea edx, [rsi + 0x20]
mov rcx, rbp
call fcn.0049aec0
jmp 0x475c6d
xor ebp, ebp
mov qword [rsp + 0x50], rbp
test edi, edi
je 0x475cbf
lea rbx, [rbp + 0x14]
mov r13, r12
mov esi, edi
mov qword [rbx - 0xc], r13
mov dword [rbx], r15d
mov dword [rbx - 4], r14d
lea r8, [rsp + 0xd8]
mov edx, r14d
mov rcx, r13
call fcn.00474204
mov dword [rbx + 4], eax
add r13, r14
add rbx, 0x20
dec rsi
jne 0x475c7f
mov esi, dword [rsp + 0x48]
mov r12, qword [rsp + 0x68]
mov r13, qword [rsp + 0x30]
mov ebx, 1
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14d, eax
test edi, edi
je 0x475d09
mov ecx, esi
shl rcx, 5
add rcx, rbp
mov r8, rcx
lea rdx, [0x00474170]
call fcn.0049aa74
mov ebx, eax
test eax, eax
jne 0x475cf9
lea ebx, [rax + 1]
add esi, ebx
mov dword [rsp + 0x48], esi
cmp esi, edi
jb 0x475ccc
jmp 0x475d09
lea rcx, [rsp + 0x48]
call fcn.00475adc
nop
jmp 0x475df6
test esi, esi
je 0x475d2c
mov rbx, rbp
mov rcx, qword [rbx]
call fcn.0049aa68
mov rcx, rbx
call fcn.0049aa28
add rbx, 0x20
dec rsi
jne 0x475d10
lea ebx, [rsi + 1]
mov dword [rsp + 0x48], 0
xor eax, eax
test edi, edi
je 0x475daf
add rbp, 0x1c
cmp byte [rbp], 0
je 0x475d50
add eax, ebx
add rbp, 0x20
cmp eax, edi
jb 0x475d3e
jmp 0x475daf
lea rcx, [rsp + 0x48]
call fcn.00475adc
nop
jmp 0x475df6
lea r8, [rsp + 0xd8]
mov edx, r14d
mov rcx, r12
call fcn.00474204
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14d, eax
xor ebx, ebx
test r15d, r15d
je 0x475daf
mov rdx, rbp
mov rcx, r12
call fcn.0048abc0
cmp eax, edi
jne 0x475d9d
inc ebx
cmp ebx, r15d
jb 0x475d85
jmp 0x475daf
lea rcx, [rsp + 0x48]
call fcn.00475adc
nop
mov ebx, 1
jmp 0x475df6
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r11d, eax
sub r11, r14
mov ecx, 1
cmove r11, rcx
mov eax, r15d
imul rax, r13
test r11, r11
cmove r11, rcx
imul rax, rax, 0x3e8
xor edx, edx
div r11
mov rcx, qword [rsp + 0xd0]
mov qword [rcx], rax
lea rcx, [rsp + 0x48]
call fcn.00475adc
nop
xor ebx, ebx
mov rcx, r12
call fcn.0048bfd0
mov eax, ebx
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret