Function at 0x10005f538
Capabilities:
Check for time delay via gettickcount
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov rax, qword [0x100165138]
xor rax, rsp
mov qword [rsp + 0xb0], rax
mov rdi, rcx
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
mov eax, 1
cmp rcx, rdx
je 0x10005f5a2
test byte [rcx + 0x1c], al
je 0x10005f5a2
cmp byte [rcx + 0x19], 4
jb 0x10005f5a2
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x4f]
lea r8, [0x100003cc8]
call fcn.10001c7b8
mov eax, dword [rdi + 0x110]
xor r13d, r13d
lea rdx, [rsp + 0x90]
lea rbp, [rax + rax*2]
xor eax, eax
mov bl, r13b
shl rbp, 6
mov dword [rsp + 0x74], r13d
mov qword [rsp + 0x90], r13
add rbp, qword [rdi + 0x108]
mov r14, r13
mov qword [rsp + 0x80], r13
mov rcx, rbp
mov r12, r13
mov qword [rsp + 0x68], r13
mov dword [rsp + 0x70], r13d
mov qword [rsp + 0x88], r13
mov dword [rsp + 0x78], ebx
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rax
call fcn.10005ccd0
cmp eax, r13d
mov r15, qword [rsp + 0x90]
mov esi, eax
jl 0x10005faf8
mov r8d, dword [rbp + 0x4c]
mov rcx, qword [rdi + 0xc8]
lea r9, [rsp + 0x68]
lea rdx, [rbp + 0x3c]
call fcn.100120b70
cmp eax, r13d
mov esi, eax
jl 0x10005faf3
test byte [rbp + 0x4c], 8
je 0x10005f65f
test byte [rbp + 0x4c], 0x20
lea ecx, [r13 + 1]
movzx ebx, bl
cmove ebx, ecx
mov dword [rsp + 0x78], ebx
lea rcx, [rdi + 0x18]
xor edx, edx
call fcn.10010ad48
mov esi, eax
test eax, eax
js 0x10005faf3
mov r12, qword [rsp + 0x68]
mov edx, dword [rdi + 0x144]
xor r9d, r9d
mov rcx, r12
xor r8d, r8d
call fcn.10010c30c
mov esi, eax
test eax, eax
jns 0x10005f6e1
mov rcx, qword [0x1001653b8]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005faff
mov eax, 1
test byte [rcx + 0x1c], al
je 0x10005faff
cmp byte [rcx + 0x19], 2
jb 0x10005faff
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x50]
lea r8, [0x100003cc8]
mov r9, r12
mov dword [rsp + 0x20], esi
call fcn.10001daa4
jmp 0x10005faff
lea rcx, [rdi + 0x18]
call fcn.10010aed8
mov ebx, 1
mov rcx, rdi
lea edx, [rbx + 2]
mov r8b, bl
call fcn.100061854
lea rdx, [rsp + 0x80]
mov rcx, r15
call fcn.10009b438
mov r14, qword [rsp + 0x80]
mov esi, eax
test eax, eax
js 0x10005faf8
cmp qword [rdi + 0x158], r13
jne 0x10005f937
lea rcx, [rdi + 0x48]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rdi + 0x110]
lea rcx, [rdi + 0x48]
lea rax, [r11 + r11*2]
shl rax, 6
add rax, qword [rdi + 0x108]
and qword [rax], r13
and qword [rax + 8], r13
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
cmp rcx, rdx
je 0x10005f79b
test byte [rcx + 0x1c], bl
je 0x10005f79b
cmp byte [rcx + 0x19], 4
jb 0x10005f79b
mov eax, dword [rdi + 0x110]
mov rcx, qword [rcx + 0x10]
lea edx, [rbx + 0x51]
lea r8, [0x100003cc8]
mov r9, r15
mov dword [rsp + 0x20], eax
call fcn.10001daa4
mov rcx, rdi
call fcn.10005ecc4
mov esi, eax
test eax, eax
js 0x10005faf8
lea r8, [rbp + 0xb0]
lea rdx, [rsp + 0x70]
mov rcx, r14
call fcn.1000c47cc
mov r12d, eax
test eax, eax
je 0x10005f818
mov rcx, qword [0x1001653b8]
mov ebx, dword [rsp + 0x70]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005f80e
mov eax, 1
test byte [rcx + 0x1c], al
je 0x10005f80e
cmp byte [rcx + 0x19], 2
jb 0x10005f80e
lea edx, [rax + 0x52]
mov r9, r14
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], r12d
call fcn.10001dd64
mov edx, ebx
mov ecx, r12d
jmp 0x10005fed2
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10005f85a
test byte [rcx + 0x1c], bl
je 0x10005f85a
cmp byte [rcx + 0x19], 4
mov r12, qword [rsp + 0x68]
jb 0x10005f85f
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x54
mov r9, r14
mov qword [rsp + 0x20], r12
call fcn.10001df38
jmp 0x10005f85f
mov r12, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r9, qword [rdi + 0x18]
mov ebx, eax
cmp r9, 0xffffffffffffffff
jne 0x10005f87e
or r9, r9
cmp qword [rdi + 0x20], 0xffffffffffffffff
cmovne r9, qword [rdi + 0x20]
mov r8b, byte [rsp + 0x78]
lea rax, [rsp + 0x70]
mov rdx, r12
mov qword [rsp + 0x28], rax
lea rax, [rdi + 0x158]
mov rcx, r14
mov qword [rsp + 0x20], rax
call fcn.1000d046c
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
add dword [rdi + 0x16c], eax
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
mov eax, 1
je 0x10005f8fe
test byte [rcx + 0x1c], al
je 0x10005f8fe
cmp byte [rcx + 0x19], 4
jb 0x10005f8fe
mov r9d, dword [rdi + 0x16c]
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x54]
lea r8, [0x100003cc8]
call fcn.10001c7dc
mov rcx, qword [0x1001653b8]
mov eax, 1
test r12d, r12d
je 0x10005f940
mov ebx, dword [rsp + 0x70]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005f80e
test byte [rcx + 0x1c], al
je 0x10005f80e
cmp byte [rcx + 0x19], 2
jb 0x10005f80e
mov edx, 0x56
mov r9, r15
jmp 0x10005f7f5
mov rcx, qword [0x1001653b8]
jmp 0x10005f94a
mov r12, qword [rsp + 0x68]
mov ebx, 1
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10005f97e
test byte [rcx + 0x1c], bl
je 0x10005f97e
cmp byte [rcx + 0x19], 4
jb 0x10005f97e
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x57
mov r9, r14
mov qword [rsp + 0x20], r12
call fcn.10001df38
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [rdi + 0x18]
mov ebx, eax
cmp rcx, 0xffffffffffffffff
jne 0x10005f99d
or rcx, rcx
cmp qword [rdi + 0x20], 0xffffffffffffffff
cmovne rcx, qword [rdi + 0x20]
lea rax, [rsp + 0x70]
lea r8, [fcn.10005ec50]
mov r9, rdi
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x90]
mov rdx, r12
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
mov rcx, qword [rdi + 0x158]
call fcn.1000d0c74
mov r12d, eax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
add dword [rdi + 0x170], eax
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10005fa3a
mov eax, 1
test byte [rcx + 0x1c], al
je 0x10005fa3a
cmp byte [rcx + 0x19], 4
jb 0x10005fa3a
mov r9d, dword [rdi + 0x16c]
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x57]
lea r8, [0x100003cc8]
call fcn.10001c7dc
lea rcx, [rdi + 0x48]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, dword [rdi + 0x110]
mov rax, qword [rsp + 0x90]
lea rdx, [r11 + r11*2]
lea rcx, [rdi + 0x48]
shl rdx, 6
add rdx, qword [rdi + 0x108]
mov qword [rdx], rax
mov rax, qword [rsp + 0x80]
mov qword [rdx + 8], rax
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, r12d
test r12d, r12d
je 0x10005fbd1
mov edx, 1
cmp eax, edx
je 0x10005fac8
mov rcx, qword [0x1001653b8]
mov ebx, dword [rsp + 0x70]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005f80e
test byte [rcx + 0x1c], dl
je 0x10005f80e
cmp byte [rcx + 0x19], 2
jb 0x10005f80e
mov edx, 0x59
jmp 0x10005f92f
lea rcx, [rdi + 8]
mov rax, qword [rcx]
call qword [rax + 0x10]
test al, al
jne 0x10005faee
lea r8, [0x100007260]
lea rcx, [0x1000070a0]
mov edx, 0x919
call fcn.100099ad8
mov esi, 0x8078001d
mov rax, qword [rdi + 0x120]
mov ecx, dword [rdi + 0x118]
imul rcx, rcx, 0x6c
lea rdx, [rcx + rax + 0x50]
lea rax, [rsp + 0xa0]
mov rcx, qword [rax]
cmp rcx, qword [rdx]
jne 0x10005fc05
mov rcx, qword [rax + 8]
cmp rcx, qword [rdx + 8]
jne 0x10005fc05
xor eax, eax
jmp 0x10005fc0a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x10005fd88
cmp byte [rsp + 0x78], r13b
je 0x10005fd88
mov edx, 8
mov rcx, rbp
call fcn.10005c9cc
mov rcx, qword [0x1001653b8]
lea rax, [0x1001653b8]
cmp rcx, rax
je 0x10005fcc2
mov eax, 1
test byte [rcx + 0x1c], al
je 0x10005fcc2
cmp byte [rcx + 0x19], 3
jb 0x10005fcc2
mov r8, qword [rdi + 0x120]
mov r9d, dword [rdi + 0x118]
mov rcx, qword [rcx + 0x10]
imul r9, r9, 0x6c
lea edx, [rax + 0x59]
mov eax, dword [rsp + 0xac]
mov dword [rsp + 0x50], eax
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xa4]
mov dword [rsp + 0x40], eax
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x38], eax
mov eax, dword [r9 + r8 + 0x5c]
mov dword [rsp + 0x30], eax
mov eax, dword [r9 + r8 + 0x58]
mov dword [rsp + 0x28], eax
mov eax, dword [r9 + r8 + 0x54]
mov r9d, dword [r9 + r8 + 0x50]
lea r8, [0x100003cc8]
mov dword [rsp + 0x20], eax
call fcn.10005c684
mov edx, dword [rbp + 0x4c]
lea r12, [rbp + 0x3c]
lea r9, [rsp + 0x88]
mov rcx, r12
mov r8d, 2
call fcn.10011ce54
test eax, eax
jns 0x10005fd2e
mov rbx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
cmp rbx, rdx
je 0x10005fd93
mov ecx, 1
test byte [rbx + 0x1c], cl
je 0x10005fd93
cmp byte [rbx + 0x19], 2
jb 0x10005fd93
lea edx, [rcx + 0x5a]
mov r9, r15
mov rcx, qword [rbx + 0x10]
lea r8, [0x100003cc8]
mov dword [rsp + 0x20], eax
call fcn.10001daa4
jmp 0x10005fd8c
movdqu xmm0, xmmword [rdi + 0xd0]
mov rdx, qword [rsp + 0x88]
lea rcx, [rsp + 0xa0]
movdqu xmmword [rsp + 0xa0], xmm0
call fcn.1000e7944
test eax, eax
jns 0x10005fd8c
mov rbx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
cmp rbx, rdx
je 0x10005fd93
mov ecx, 1
test byte [rbx + 0x1c], cl
je 0x10005fd93
cmp byte [rbx + 0x19], 2
jb 0x10005fd93
mov r9, qword [rsp + 0x88]
lea edx, [rcx + 0x5b]
jmp 0x10005fd18
lea r12, [rbp + 0x3c]
mov rbx, qword [0x1001653b8]
mov eax, dword [rdi + 0x118]
inc eax
cmp eax, dword [rdi + 0x11c]
je 0x10005fdcd
mov r9d, dword [rbp + 0x4c]
mov edx, eax
mov rax, qword [rdi + 0x120]
imul rdx, rdx, 0x6c
lea rcx, [rdx + rax + 0x2c]
mov edx, dword [rdx + rax + 0x3c]
mov r8, r12
call fcn.10009cac0
test al, al
jne 0x100060050
lea rax, [0x1001653b8]
mov r12d, 1
cmp rbx, rax
je 0x10005fe0d
test byte [rbx + 0x1c], r12b
je 0x10005fe0d
cmp byte [rbx + 0x19], 4
jb 0x10005fe0d
mov eax, dword [rdi + 0x110]
mov rcx, qword [rbx + 0x10]
lea edx, [r12 + 0x5c]
lea r8, [0x100003cc8]
mov r9, r15
mov dword [rsp + 0x20], eax
call fcn.10001daa4
mov rdx, qword [rdi + 0x158]
mov rcx, rbp
call fcn.10005cb78
cmp qword [rdi + 0x158], r13
jne 0x10005fe3d
lea r8, [0x100007270]
lea rcx, [0x1000070a0]
mov edx, 0x957
call fcn.100099ad8
mov rcx, qword [rdi + 0x158]
call fcn.1000d2364
and qword [rdi + 0x158], r13
test byte [rbp + 0x4c], r12b
jne fcn.100060026
cmp byte [rdi + 0x180], r13b
jne 0x10005ffa1
lea rdx, [rbp + 0xb0]
lea r9, [rsp + 0x60]
lea r8, [rsp + 0x70]
mov rcx, r14
mov byte [rsp + 0x60], r13b
call fcn.1000c4acc
mov ebx, eax
test eax, eax
je 0x10005fee3
mov rcx, qword [0x1001653b8]
mov esi, dword [rsp + 0x70]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005fece
test byte [rcx + 0x1c], r12b
je 0x10005fece
cmp byte [rcx + 0x19], 2
jb 0x10005fece
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x5e
mov r9, r15
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], eax
call fcn.10001dd64
mov edx, esi
mov ecx, ebx
lea r8, [rsp + 0x74]
call fcn.10010d970
mov esi, eax
jmp 0x10006001c
mov rcx, qword [0x1001653b8]
mov bl, byte [rsp + 0x60]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005ff34
test byte [rcx + 0x1c], r12b
je 0x10005ff34
cmp byte [rcx + 0x19], 4
jb 0x10005ff34
mov rcx, qword [rcx + 0x10]
lea rax, [0x100005988]
test bl, bl
lea r9, [0x100007290]
lea r8, [0x100003cc8]
mov edx, 0x5f
cmovne r9, rax
mov qword [rsp + 0x20], r14
call fcn.10001df38
test bl, bl
je 0x10005ffd5
mov r8b, r12b
mov edx, 0xc
mov rcx, rdi
call fcn.100061854
mov r8d, 0x2000
mov rdx, r14
mov rcx, rbp
call fcn.10005f2a0
mov esi, eax
test eax, eax
jns 0x10005ffd5
mov rcx, qword [0x1001653b8]
cmp rcx, r13
je 0x10006001c
test byte [rcx + 0x1c], r12b
je 0x10006001c
cmp byte [rcx + 0x19], 2
jb 0x10006001c
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x60
mov r9d, eax
call fcn.10001c7dc
jmp 0x10006001c
mov rcx, qword [0x1001653b8]
lea r13, [0x1001653b8]
cmp rcx, r13
je 0x10005ffd5
test byte [rcx + 0x1c], r12b
je 0x10005ffd5
cmp byte [rcx + 0x19], 4
jb 0x10005ffd5
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x61
call fcn.10001c7b8
mov rcx, r14
call fcn.10010bf84
mov esi, eax
test eax, eax
jns 0x100060033
mov rcx, qword [0x1001653b8]
cmp rcx, r13
je 0x100060017
test byte [rcx + 0x1c], r12b
je 0x100060017
cmp byte [rcx + 0x19], 2
jb 0x100060017
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cc8]
mov edx, 0x62
mov r9, r14
mov dword [rsp + 0x20], eax
call fcn.10001daa4
mov esi, 0x80780124
mov r12, qword [rsp + 0x68]
jmp 0x10005faff
mov r12d, 1