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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x520
mov qword [rsp + 0x1a8], 0xfffffffffffffffe
mov rax, qword [0x1406836b8]
xor rax, rsp
mov qword [rsp + 0x510], rax
mov rsi, r9
mov r14, r8
mov r12, rcx
mov qword [rsp + 0xb0], rcx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0xa8], r9
mov r13, qword [rsp + 0x588]
mov qword [rsp + 0x50], r13
mov r15, qword [rsp + 0x590]
mov qword [rsp + 0xa0], r15
mov rbx, qword [rsp + 0x598]
mov qword [rsp + 0x70], rbx
mov byte [rsp + 0x41], 0
xor edi, edi
mov qword [rsp + 0x218], rdi
movdqa xmm0, xmmword [0x140454de0]
movdqu xmmword [rsp + 0x238], xmm0
mov byte [rsp + 0x228], dil
cmp edx, 1
je 0x1402555c2
cmp r9, 0xd0
jb 0x140255c2d
test edx, edx
jne 0x140255394
movzx eax, byte [rsp + 0x42]
mov byte [rsp + 0x20], al
mov r9, r15
mov r8, rsi
mov rdx, r14
lea rcx, [rsp + 0x218]
call fcn.140252130
jmp 0x14025543f
mov eax, edi
cmp edx, 2
jne 0x1402556e9
xor bl, bl
mov byte [rsp + 0x40], bl
mov qword [rsp + 0x110], rdi
mov qword [rsp + 0x118], rdi
test bl, bl
jne 0x14025542f
movzx eax, byte [rsp + 0x42]
mov byte [rsp + 0x20], al
mov r9, r15
mov r8, rsi
mov rdx, r14
lea rcx, [rsp + 0x218]
call fcn.140252130
mov byte [rsp + 0x41], 1
mov bl, 1
mov byte [rsp + 0x40], bl
lea rcx, [rsp + 0x110]
call fcn.140262c20
jmp 0x1402553b5
cmp byte [rsp + 0x41], 0
je 0x1402556e7
mov rbx, qword [rsp + 0x70]
mov dword [rsp + 0x30], 0xffffffff
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov r8d, 0xc0000000
lea rdx, [rsp + 0x218]
lea rcx, [rsp + 0x78]
call fcn.140250d30
mov qword [rsp + 0x68], rdi
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x68], rcx
xor eax, eax
mov r15d, 1
lock cmpxchg dword [rcx], r15d
mov dword [rsp + 0xe4], eax
jne 0x1402555b2
lea r8, [rsi - 8]
mov rdx, qword [rsp + 0x78]
add rdx, 8
movzx r9d, r15b
mov rcx, rbx
call fcn.140259980
mov rcx, qword [r12]
mov qword [rsp + 0x150], rcx
mov rax, qword [rsp + 0x78]
mov qword [r12], rax
mov qword [rsp + 0x78], rcx
lea rcx, [r12 + 8]
mov qword [rsp + 0x158], rcx
mov rdx, qword [rcx]
mov qword [rsp + 0x160], rdx
mov rax, qword [rsp + 0x80]
mov qword [rcx], rax
mov qword [rsp + 0x80], rdx
lea rcx, [r12 + 0x10]
mov qword [rsp + 0x168], rcx
mov rdx, qword [rcx]
mov qword [rsp + 0x170], rdx
mov rax, qword [rsp + 0x88]
mov qword [rcx], rax
mov qword [rsp + 0x88], rdx
lea rcx, [r12 + 0x18]
mov qword [rsp + 0x178], rcx
mov edx, dword [rcx]
mov dword [rsp + 0xa0], edx
mov eax, dword [rsp + 0x90]
mov dword [rcx], eax
mov dword [rsp + 0x90], edx
lea rcx, [r12 + 0x20]
mov qword [rsp + 0x180], rcx
mov rdx, qword [rcx]
mov qword [rsp + 0x188], rdx
mov rax, qword [rsp + 0x98]
mov qword [rcx], rax
mov qword [rsp + 0x98], rdx
mov ecx, 2
mov rax, qword [rsp + 0x68]
xchg dword [rax], ecx
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140255598
sub rcx, qword [rsp + 0x88]
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov qword [rsp + 0x78], rdi
mov rcx, qword [rsp + 0x98]
cmp rcx, 0xffffffffffffffff
je 0x1402555ad
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
jmp 0x140255ba9
dec eax
cmp eax, r15d
jbe 0x140255c9e
jmp 0x140255c65
mov ecx, dword [rsp + 0x580]
cmp ecx, 0xc0000000
jne 0x1402557b3
mov rbx, qword [r8]
movdqa xmm0, xmmword [0x140454de0]
movdqu xmmword [rsp + 0x2f8], xmm0
mov byte [rsp + 0x2e8], dil
lea rdx, [0x14045339d]
test rbx, rbx
cmovne rdx, rbx
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], dil
jne 0x140255606
lea rcx, [rsp + 0x2e8]
call fcn.140228d40
mov r8, rbx
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [rsp + 0x2d8], rax
test rax, rax
je 0x140255cd8
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x218], rax
mov dword [rsp + 0x220], 0xc0000000
movups xmm2, xmmword [rsp + 0x2e8]
movups xmm3, xmmword [rsp + 0x2f8]
movups xmm0, xmmword [rsp + 0x228]
movups xmmword [rsp + 0x2e8], xmm0
movups xmm1, xmmword [rsp + 0x238]
movups xmmword [rsp + 0x2f8], xmm1
movups xmmword [rsp + 0x228], xmm2
movups xmmword [rsp + 0x238], xmm3
test rcx, rcx
je 0x1402556a1
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rsp + 0x300]
cmp rdx, 0x10
jb 0x1402556e7
inc rdx
mov rcx, qword [rsp + 0x2e8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402556e2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1402556e2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14039ba1c
mov eax, edi
mov r15d, 1
lea ebx, [rax - 0x40000000]
mov dword [rsp + 0x30], 0xffffffff
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rdi
xor r9d, r9d
mov r8d, ebx
lea rdx, [rsp + 0x218]
lea rcx, [rsp + 0xb8]
call fcn.140250d30
mov r13, qword [rsp + 0xb8]
mov edx, dword [r13]
mov rsi, rdi
mov r14d, edi
mov ebx, edi
mov ecx, edi
mov r8d, edi
mov r9d, edi
mov eax, edi
movabs r12, 0x38d7ea4c67fff
mov dword [rsp + 0x12c], ebx
cmp edx, 1
ja 0x140255ac5
cmove eax, r9d
cmove r8d, ecx
test r8d, r8d
jne 0x14025579a
mov eax, dword [0x140699990]
test eax, eax
jne 0x140255786
lea rcx, [rsp + 0x1e8]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x208]
mov ebx, 0x20
cmp eax, 1
cmova ebx, edi
mov dword [rsp + 0x12c], ebx
mov eax, ebx
cmp eax, 8
jb 0x140255a74
cmp ebx, 0x20
jae 0x1402559ad
pause
jmp 0x140255a74
mov ebx, 0x80000000
cmp ecx, ebx
jne 0x1402558ab
mov rsi, qword [r8]
movdqa xmm0, xmmword [0x140454de0]
movdqu xmmword [rsp + 0x298], xmm0
mov byte [rsp + 0x288], dil
lea rdx, [0x14045339d]
test rsi, rsi
cmovne rdx, rsi
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rdx + r8], dil
jne 0x1402557f1
lea rcx, [rsp + 0x288]
call fcn.140228d40
mov r8, rsi
xor edx, edx
lea ecx, [rdx + 5]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [rsp + 0x278], rax
test rax, rax
je 0x140255d26
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x278], rcx
mov qword [rsp + 0x218], rax
mov eax, dword [rsp + 0x220]
mov dword [rsp + 0x280], eax
mov dword [rsp + 0x220], ebx
movups xmm2, xmmword [rsp + 0x288]
movups xmm3, xmmword [rsp + 0x298]
movups xmm0, xmmword [rsp + 0x228]
movups xmmword [rsp + 0x288], xmm0
movups xmm1, xmmword [rsp + 0x238]
movups xmmword [rsp + 0x298], xmm1
movups xmmword [rsp + 0x228], xmm2
movups xmmword [rsp + 0x238], xmm3
lea rcx, [rsp + 0x278]
call fcn.140259010
mov r15d, 1
jmp 0x1402556f5
mov eax, edi
cmp ecx, 0xc0000001
jne 0x1402556e9
mov rsi, qword [r8]
movdqa xmm0, xmmword [0x140454de0]
movdqu xmmword [rsp + 0x2c8], xmm0
mov byte [rsp + 0x2b8], al
lea rdx, [0x14045339d]
test rsi, rsi
cmovne rdx, rsi
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rdx + r8], al
jne 0x1402558f0
lea rcx, [rsp + 0x2b8]
call fcn.140228d40
mov r8, rsi
xor edx, edx
lea ecx, [rdx + 5]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [rsp + 0x2a8], rax
test rax, rax
je 0x140255d74
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x2a8], rcx
mov qword [rsp + 0x218], rax
mov eax, dword [rsp + 0x220]
mov dword [rsp + 0x2b0], eax
mov dword [rsp + 0x220], ebx
movups xmm2, xmmword [rsp + 0x2b8]
movups xmm3, xmmword [rsp + 0x2c8]
movups xmm0, xmmword [rsp + 0x228]
movups xmmword [rsp + 0x2b8], xmm0
movups xmm1, xmmword [rsp + 0x238]
movups xmmword [rsp + 0x2c8], xmm1
movups xmmword [rsp + 0x228], xmm2
movups xmmword [rsp + 0x238], xmm3
lea rcx, [rsp + 0x2a8]
call fcn.140259010
mov r15d, 1
mov eax, r15d
jmp 0x1402556ef
jne 0x140255a51
mov ecx, 7
call fcn.14025b9e0
lea r8, [rsp + 0x44]
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x60]
call rax
mov ecx, 0xa
call fcn.14025b9e0
lea rcx, [rsp + 0x108]
call rax
test eax, eax
jne 0x1402559fd
mov ecx, dword [rsp + 0x44]
dec ecx
mov eax, 0xd1b71759
mul ecx
mov eax, edx
shr eax, 0xd
jmp 0x140255a22
mov eax, dword [rsp + 0x44]
imul r8, rax, 0x5f5e100
mov rax, r12
cqo
idiv qword [rsp + 0x108]
lea rcx, [rax + 1]
lea rax, [r8 - 1]
cqo
idiv rcx
lea r14d, [rax + 1]
mov ecx, 9
call fcn.14025b9e0
lea rcx, [rsp + 0x50]
call rax
test eax, eax
jne 0x140255a4a
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov qword [rsp + 0x50], rsi
jmp 0x140255a74
mov rsi, qword [rsp + 0x50]
jmp 0x140255a74
test r14d, r14d
jne 0x140255a89
movzx eax, byte [rsp + 0x12c]
and al, 1
je 0x140255ac0
call qword [sym.imp.KERNEL32.dll_SwitchToThread]
test eax, eax
jne 0x140255a74
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
inc ebx
mov ecx, ebx
mov edx, dword [r13]
mov r8d, ebx
mov r9d, ebx
mov eax, ebx
jmp 0x14025574a
mov ecx, 9
call fcn.14025b9e0
lea rcx, [rsp + 0x48]
call rax
test eax, eax
jne 0x140255aad
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov qword [rsp + 0x48], rcx
jmp 0x140255ab2
mov rcx, qword [rsp + 0x48]
sub rcx, rsi
mov eax, r14d
cmp rcx, rax
jb 0x140255a62
mov r14d, edi
mov ecx, r15d
jmp 0x140255a6e
cmp edx, 2
mov r12, qword [rsp + 0xb0]
jne 0x140255dc2
mov rax, qword [rsp + 0xb8]
lea rdx, [rax + 8]
test dil, dil
jne 0x140255b06
mov rcx, qword [rsp + 0x70]
cmp dword [rcx + 8], 0
je 0x140255b06
mov rcx, qword [rcx]
cmp qword [rcx], 0
jne 0x140255b06
mov qword [rcx], rdx
mov rax, qword [rsp + 0xb8]
mov r8, qword [r12]
mov qword [r12], rax
mov qword [rsp + 0xb8], r8
mov rcx, qword [r12 + 8]
mov rax, qword [rsp + 0xc0]
mov qword [r12 + 8], rax
mov qword [rsp + 0xc0], rcx
mov r9, qword [r12 + 0x10]
mov rax, qword [rsp + 0xc8]
mov qword [r12 + 0x10], rax
mov qword [rsp + 0xc8], r9
mov edx, dword [r12 + 0x18]
mov eax, dword [rsp + 0xd0]
mov dword [r12 + 0x18], eax
mov dword [rsp + 0xd0], edx
mov rcx, qword [r12 + 0x20]
mov rax, qword [rsp + 0xd8]
mov qword [r12 + 0x20], rax
mov qword [rsp + 0xd8], rcx
test r8, r8
je 0x140255b9d
sub r8, r9
mov rcx, r8
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov qword [rsp + 0xb8], rdi
mov rcx, qword [rsp + 0xd8]
cmp rcx, 0xffffffffffffffff
je 0x140255ba9
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x218]
test rcx, rcx
je 0x140255bc4
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rsp + 0x218], rdi
mov rdx, qword [rsp + 0x240]
cmp rdx, 0x10
jb 0x140255c0a
inc rdx
mov rcx, qword [rsp + 0x228]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140255c05
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140255c05
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14039ba1c
mov rcx, qword [rsp + 0x510]
xor rcx, rsp
call fcn.14039bbb0
add rsp, 0x520
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
lea edx, [rdi + 0x12]
lea rcx, [rsp + 0x1b0]
call fcn.140258160
mov rdx, rax
xor r8d, r8d
lea rcx, [rsp + 0x310]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x310]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
mov edx, 0x13
lea rcx, [rsp + 0x190]
call fcn.140258160
mov rdx, rax
xor r8d, r8d
lea rcx, [rsp + 0x390]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x390]
call sub.VCRUNTIME140.dll__CxxThrowException
mov edx, 9
lea rcx, [rsp + 0x198]
call fcn.140258160
mov rdx, rax
xor r8d, r8d
lea rcx, [rsp + 0x3d0]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x3d0]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call sub.KERNEL32.dll_GetLastError
mov edx, eax
lea rcx, [rsp + 0xf0]
call fcn.140258120
lea rcx, [rsp + 0x2d8]
call fcn.14025ed60
xor r8d, r8d
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x410]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x410]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
call sub.KERNEL32.dll_GetLastError
mov edx, eax
lea rcx, [rsp + 0xf8]
call fcn.140258120
lea rcx, [rsp + 0x278]
call fcn.14025ed60
xor r8d, r8d
lea rdx, [rsp + 0xf8]
lea rcx, [rsp + 0x450]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x450]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
call sub.KERNEL32.dll_GetLastError
mov edx, eax
lea rcx, [rsp + 0x100]
call fcn.140258120
lea rcx, [rsp + 0x2a8]
call fcn.14025ed60
xor r8d, r8d
lea rdx, [rsp + 0x100]
lea rcx, [rsp + 0x490]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x490]
call sub.VCRUNTIME140.dll__CxxThrowException
int3
mov edx, 0x13
lea rcx, [rsp + 0x1a0]
call fcn.140258160
mov rdx, rax
xor r8d, r8d
lea rcx, [rsp + 0x4d0]
call fcn.140258400
lea rdx, [0x140664700]
lea rcx, [rsp + 0x4d0]
call sub.VCRUNTIME140.dll__CxxThrowException
int3