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

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov r15, r8
mov r13d, edx
mov ebp, ecx
cmp ecx, 1
jbe 0x4752af
mov esi, ecx
shr esi, 1
jmp 0x4752b4
mov esi, 1
xor r14d, r14d
cmp ecx, 1
seta r14b
inc r14d
cmp edx, 0x40000
jb 0x475a83
cmp ecx, 1
jb 0x475a83
cmp esi, 0x10000
ja 0x475a83
mov edx, esi
lea rcx, [rsp + 0x50]
call fcn.00475148
nop
xor r12d, r12d
mov rbx, qword [rsp + 0x50]
test esi, esi
je 0x475460
lea rdi, [rbx + 0x10]
xor eax, eax
test r12d, r12d
cmove rax, r15
mov qword [rdi + 0xa0], rax
mov r8b, 1
mov rdx, rdi
mov ecx, 0x30101
call fcn.00410b84
mov r13d, eax
test eax, eax
jne 0x47539c
cmp qword [rdi], 0
je 0x4753ca
test r14d, r14d
je 0x47537c
lea r15, [rdi + 0x78]
lea rdx, [rdi + r13*8 + 0x78]
xor r8d, r8d
mov ecx, 0x30101
call fcn.00410b84
mov dword [rsp + 0xf0], eax
test eax, eax
jne 0x4753fa
cmp qword [r15], 0
je 0x475430
inc r13d
add r15, 8
cmp r13d, r14d
jb 0x47533d
mov r15, qword [rsp + 0x100]
inc r12d
add rdi, 0xf8
cmp r12d, esi
jb 0x475303
mov r13d, dword [rsp + 0xf8]
jmp 0x475460
test rbx, rbx
je 0x4753c2
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, r13d
jmp 0x475a88
test rbx, rbx
je 0x4753f0
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, 0x80004001
jmp 0x475a88
test rbx, rbx
je 0x475a88
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, dword [rsp + 0xf0]
jmp 0x475a88
test rbx, rbx
je 0x475456
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, 0x80004001
jmp 0x475a88
mov dword [rsp + 0x108], 0x159a55e5
mov dword [rsp + 0x10c], 0x1f123bb5
xor edi, edi
test esi, esi
je 0x4754d8
mov ecx, edi
imul rcx, rcx, 0xf8
add rcx, rbx
lea r9, [rsp + 0x108]
mov r8d, ebp
mov edx, r13d
call fcn.00474c30
mov r12d, eax
test eax, eax
jne 0x4754aa
inc edi
cmp edi, esi
jb 0x47547c
jmp 0x4754d8
test rbx, rbx
je 0x4754d0
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, r12d
jmp 0x475a88
lea rcx, [rsp + 0x20]
call fcn.0049abc0
nop
xor ebp, ebp
mov dword [rsp + 0x48], ebp
mov byte [rsp + 0x4c], 1
xor r13d, r13d
test esi, esi
je 0x475686
mov rbp, rbx
lea r12, [rbp + 0x28]
mov r15d, 2
mov ecx, 0x60
call fcn.0040bb54
mov rdi, rax
xor ecx, ecx
cmp rax, rcx
je 0x475530
mov dword [rax + 8], ecx
lea rax, [0x004a6198]
mov qword [rdi], rax
mov dword [rdi + 0x48], ecx
mov qword [rdi + 0x58], rcx
jmp 0x475533
mov rdi, rcx
mov qword [r12 - 0x10], rdi
cmp rdi, rcx
je 0x475546
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + VariantCopy]
mov rcx, qword [r12]
test rcx, rcx
je 0x475555
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [r12], rdi
mov rax, qword [r12 - 0x10]
lea rcx, [rsp + 0x20]
mov qword [rax + 0x10], rcx
add r12, 8
dec r15
jne 0x475506
test r13d, r13d
jne 0x4755b6
mov rax, qword [rbp + 0x18]
mov rcx, qword [rsp + 0x100]
mov qword [rax + 0x58], rcx
mov rax, qword [rbp + 0x18]
mov dword [rax + 0x48], esi
mov rdi, qword [rbp + 0x18]
mov qword [rdi + 0x20], 0x3e8
mov qword [rdi + 0x30], 0x989680
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r11d, eax
mov qword [rdi + 0x18], r11
call fcn.00473d60
mov qword [rdi + 0x28], rax
cmp esi, 1
jbe 0x4755e8
mov eax, r13d
imul eax, eax, 0x150
and eax, 0x7ff
mov qword [rbp + 0x40], rax
mov r8, rbp
lea rdx, [0x004751d0]
mov rcx, rbp
call fcn.0049aa74
mov r12d, eax
test eax, eax
jne 0x475612
jmp 0x4755f7
mov rcx, rbp
call fcn.00475040
mov r12d, eax
test eax, eax
jne 0x47564c
inc r13d
mov r12d, 0xf8
add rbp, r12
cmp r13d, esi
jb 0x4754fc
mov ebp, dword [rsp + 0x48]
jmp 0x47568c
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
test rbx, rbx
je 0x475644
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, r12d
jmp 0x475a88
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
test rbx, rbx
je 0x47567e
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, r12d
jmp 0x475a88
mov r12d, 0xf8
cmp esi, 1
jbe 0x4756ae
test esi, esi
je 0x4756ae
mov rdi, rbx
mov ebp, esi
mov rcx, qword [rdi]
call fcn.0049aa68
add rdi, r12
dec rbp
jne 0x47569a
mov ebp, dword [rsp + 0x48]
test ebp, ebp
je 0x4756e9
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
test rbx, rbx
je 0x4756e2
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov rdx, r12
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, ebp
jmp 0x475a88
mov dword [rsp + 0x90], 0
mov rcx, qword [rbx + 0x18]
add rcx, 0x18
lea rdx, [rsp + 0x60]
call fcn.00473dc8
xor r11d, r11d
mov qword [rsp + 0x80], r11
mov dword [rsp + 0x80], ebx
xor edx, edx
mov qword [rsp + 0x88], rdx
mov dword [rsp + 0x90], 1
test esi, esi
je 0x475757
lea rcx, [rbx + 0xc0]
mov r8d, esi
mov eax, dword [rcx - 4]
add r11, rax
mov qword [rsp + 0x80], r11
mov eax, dword [rcx]
add rdx, rax
mov qword [rsp + 0x88], rdx
add rcx, r12
dec r8
jne 0x475734
mov r15, qword [rsp + 0x100]
mov rax, qword [r15]
mov r8b, 1
lea rdx, [rsp + 0x60]
mov rcx, r15
call qword [rax]
mov ebp, eax
test eax, eax
je 0x475786
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
jmp 0x475a2d
xor ebp, ebp
mov dword [rsp + 0x48], ebp
mov byte [rsp + 0x4c], bpl
mov r13d, r14d
imul r13d, esi
xor r12d, r12d
test esi, esi
je 0x4758ed
lea rbp, [rbx + 0x18]
lea r9, [rbp - 0x18]
xor edx, edx
mov eax, 0x4000000
div dword [rbp + 0xa4]
add eax, 2
mov dword [rbp + 0x20], eax
test r12d, r12d
jne 0x475801
mov rax, qword [rbp]
mov qword [rax + 0x58], r15
mov rax, qword [rbp]
mov dword [rax + 0x48], r13d
mov rdi, qword [rbp]
mov qword [rdi + 0x20], 0x3e8
mov qword [rdi + 0x30], 0x989680
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r11d, eax
mov qword [rdi + 0x18], r11
call fcn.00473d60
mov qword [rdi + 0x28], rax
lea r9, [rbp - 0x18]
cmp r13d, 1
jbe 0x47589d
xor edi, edi
test r14d, r14d
je 0x4758ad
mov eax, r12d
imul eax, r14d
mov dword [rsp + 0xf8], eax
lea rcx, [rbp + 0x40]
mov qword [rsp + 0x58], rcx
test r12d, r12d
jne 0x47583a
test edi, edi
jne 0x47583a
mov dl, 1
jmp 0x47583c
xor dl, dl
mov dword [rcx - 8], edi
lea r8, [rcx - 0x10]
mov qword [r8], r9
add eax, edi
imul eax, eax, 0x150
and eax, 0x7ff
mov qword [rcx], rax
mov byte [rcx + 8], dl
movsxd rax, edi
lea rcx, [r9 + rax*8]
lea rdx, [0x00474bd4]
call fcn.0049aa74
mov r15d, eax
test eax, eax
jne 0x4758c6
inc edi
mov rcx, qword [rsp + 0x58]
add rcx, 0x20
mov qword [rsp + 0x58], rcx
cmp edi, r14d
mov eax, dword [rsp + 0xf8]
lea r9, [rbp - 0x18]
jb 0x47582d
mov r15, qword [rsp + 0x100]
jmp 0x4758ad
xor edx, edx
mov rcx, r9
call fcn.00474410
mov edi, eax
test eax, eax
jne 0x4758da
inc r12d
add rbp, 0xf8
cmp r12d, esi
jb 0x4757a7
mov ebp, dword [rsp + 0x48]
jmp 0x4758ed
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
mov ebp, r15d
jmp 0x475a2d
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
mov ebp, edi
jmp 0x475a2d
xor edi, edi
cmp r13d, 1
jbe 0x47595e
test esi, esi
je 0x47595e
mov rbp, rbx
mov r15d, esi
test r14d, r14d
je 0x475932
xor r12d, r12d
mov r13d, 0x98
mov ebx, r14d
mov rcx, qword [r12 + rbp]
call fcn.0049aa68
cmp dword [r13 + rbp], 0
cmovne edi, dword [r13 + rbp]
add r13, 4
add r12, 8
dec rbx
jne 0x475910
add rbp, 0xf8
dec r15
jne 0x4758ff
test edi, edi
mov rbx, qword [rsp + 0x50]
je 0x47595a
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
mov ebp, edi
jmp 0x475a2d
mov ebp, dword [rsp + 0x48]
test ebp, ebp
je 0x475973
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
jmp 0x475a2d
mov rcx, qword [rbx + 0x18]
add rcx, 0x18
lea rdx, [rsp + 0x60]
call fcn.00473dc8
xor r11d, r11d
mov qword [rsp + 0x80], r11
xor edx, edx
mov qword [rsp + 0x88], rdx
mov eax, dword [rbx + 0x38]
imul eax, r14d
mov dword [rsp + 0x90], eax
test esi, esi
je 0x4759dd
lea rcx, [rbx + 0xc0]
mov r8d, esi
mov eax, dword [rcx - 4]
add r11, rax
mov qword [rsp + 0x80], r11
mov eax, dword [rcx]
add rdx, rax
mov qword [rsp + 0x88], rdx
add rcx, 0xf8
dec r8
jne 0x4759b6
mov rdi, qword [rsp + 0x100]
mov rax, qword [rdi]
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [rax + VariantCopy]
mov ebp, eax
test eax, eax
je 0x475a0a
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
jmp 0x475a2d
mov rax, qword [rdi]
mov r8b, 1
lea rdx, [rsp + 0x60]
mov rcx, rdi
call qword [rax + VariantCopy]
mov ebp, eax
test eax, eax
je 0x475a52
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
mov eax, ebp
jmp 0x475a88
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
nop
lea r9, [0x00474708]
mov r8d, dword [rbx - 8]
mov edx, 0xf8
mov rcx, rbx
call fcn.0049b020
lea rcx, [rbx - 8]
call sub.msvcrt.dll_free
xor eax, eax
jmp 0x475a88
mov eax, 0x80070057
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret