Function at 0x140015660
Capabilities:
Check for time delay via gettickcount
Get system information on windows

Disassembly:
push rbx
push rbp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x140063848]
xor rax, rsp
mov qword [rsp + 0xe0], rax
mov rbx, qword [rsp + 0x168]
mov r13, qword [rsp + 0x160]
mov r14, rdx
xor edx, edx
mov rbp, r8
mov qword [rsp + 0x50], r8
mov r15, rcx
lea r8d, [rdx + 0x3c]
lea rcx, [rsp + 0xa4]
mov r12d, r9d
mov dword [rsp + 0x38], r9d
mov qword [rsp + 0x48], rbx
xor dil, dil
mov dword [rsp + 0xa0], 0x40
call fcn.14003e820
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rcx, [rsp + 0xa0]
call fcn.14001f730
test eax, eax
jne 0x1400156f1
xor al, al
jmp 0x1400158fc
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
test r13, r13
je 0x14001571a
mov r9d, 0x64
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call r13
test al, al
je 0x1400156ea
mov qword [rsp + 0xf8], rsi
test rbp, rbp
je 0x1400158ed
mov esi, dword [rsp + 0x98]
mov rcx, qword [rsp + 0xb0]
shr rcx, 1
mov edx, esi
mov ebx, esi
cmp rbp, rcx
cmovb rcx, rbp
or rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
cmp rax, rsi
cmova rdx, rax
mov qword [rsp + 0x40], rdx
test rsi, rsi
jne 0x140015765
int3
mov eax, r12d
mov r8d, 0x1000
and eax, 2
cmovne rdx, rsi
xor ecx, ecx
mov dword [rsp + 0x3c], eax
lea r9d, [rcx + 4]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r12, rax
test rax, rax
je 0x1400158f0
mov rdi, rbp
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea r9, [rsp + 0x30]
mov rdx, r12
mov rcx, r15
mov r8, rbx
mov ebp, eax
cmp rdi, rbx
ja 0x1400157b2
mov r8, rdi
call fcn.140026c30
test al, al
je 0x1400158a4
test r14, r14
je 0x1400157f1
mov r8, qword [rsp + 0x30]
lea r9, [rsp + 0x58]
mov rdx, r12
mov rcx, r14
call fcn.140026c40
test al, al
je 0x1400158a4
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x58], rax
jne 0x1400158a4
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebp
cmp dword [rsp + 0x3c], 0
jne 0x14001584a
cmp eax, 0xfa
ja 0x14001581c
mov rcx, qword [rsp + 0x40]
lea rax, [rbx + rbx]
mov rbx, rcx
cmp rax, rcx
cmovb rbx, rax
jmp 0x14001583f
cmp eax, 0x7d0
jb 0x140015828
mov rbx, rsi
jmp 0x14001584a
cmp eax, 0x2ee
jb 0x14001584a
shr rbx, 1
mov rax, rbx
mov rbx, rsi
cmp rax, rsi
cmova rbx, rax
mov rax, rbx
xor edx, edx
div rsi
sub rbx, rdx
mov rax, qword [rsp + 0x30]
sub rdi, rax
test r13, r13
je 0x140015899
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], rax
call fcn.140015560
mov r8d, 0x64
movzx r11d, al
mov rax, qword [rsp + 0x48]
lea rdx, [rsp + 0x60]
sub r8d, r11d
mov r9d, 0x64
xor ecx, ecx
mov qword [rsp + 0x20], rax
call r13
test al, al
je 0x1400158a4
test rdi, rdi
jne 0x140015794
jmp 0x1400158a9
test rdi, rdi
jne 0x1400158d7
test byte [rsp + 0x38], 0x10
jne 0x1400158d2
lea r9, [rsp + 0x30]
mov r8d, 1
mov rdx, r12
mov rcx, r15
call fcn.140026c30
test al, al
je 0x1400158d7
cmp qword [rsp + 0x30], 0
jne 0x1400158d7
mov dil, 1
jmp 0x1400158da
xor dil, dil
xor edx, edx
mov r8d, 0x8000
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x1400158f0
mov dil, 1
mov rsi, qword [rsp + 0xf8]
movzx eax, dil
mov rcx, qword [rsp + 0xe0]
xor rcx, rsp
call fcn.14003e7f0
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rbp
pop rbx
ret