Function at 0x18002f310
Capabilities:
Check for time delay via gettickcount
Query or enumerate registry value
Set registry value

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x5c8]
sub rsp, 0x6b0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x180142d48]
xor rax, rsp
mov qword [rbp + 0x5a0], rax
mov rbx, rcx
mov rax, qword [rcx + 8]
mov rsi, 0xffffffffffffffff
cmp dword [rax - 0x10], 0
jne 0x18002f391
lea rdx, [rsp + 0x58]
call fcn.18002f0f0
nop
mov rdx, rax
lea rcx, [rbx + 8]
call fcn.18002a400
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x18002f391
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdx, qword [rbx + 0x10]
xor r14d, r14d
cmp dword [rdx - 0x10], r14d
jne 0x18002f432
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18002f3c8
mov edx, 0x104
lea rcx, [rbx + 0x10]
call fcn.1800125f0
mov rdx, qword [rbx + 0x10]
cmp dword [rdx - 0xc], 0x104
jl 0x18002f852
mov dword [rdx - 0x10], 0x104
mov rax, qword [rbx + 0x10]
mov word [rax + 0x208], r14w
mov rax, qword [rbx]
mov r8d, 0x104
mov rcx, rbx
call qword [rax + 0x20]
mov rcx, qword [rbx + 0x10]
test rcx, rcx
jne 0x18002f405
mov eax, r14d
jmp 0x18002f416
movsxd rdx, dword [rcx - 0xc]
call fcn.1800a1ff4
test eax, eax
js 0x18002f868
mov rcx, qword [rbx + 0x10]
cmp eax, dword [rcx - 0xc]
jg 0x18002f868
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx + 0x10]
mov word [rax + rcx*2], r14w
mov rdx, qword [rbx + 0x28]
cmp dword [rdx - 0x10], r14d
jne 0x18002f4d0
mov ecx, 1
sub ecx, dword [rdx - 8]
mov eax, dword [rdx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18002f466
mov edx, 0x104
lea rcx, [rbx + 0x28]
call fcn.1800125f0
mov rdx, qword [rbx + 0x28]
cmp dword [rdx - 0xc], 0x104
jl 0x18002f85d
mov dword [rdx - 0x10], 0x104
mov rax, qword [rbx + 0x28]
mov word [rax + 0x208], r14w
mov rax, qword [rbx]
mov r8d, 0x104
mov rcx, rbx
call qword [rax + 0x28]
mov rcx, qword [rbx + 0x28]
test rcx, rcx
jne 0x18002f4a3
mov eax, r14d
jmp 0x18002f4b4
movsxd rdx, dword [rcx - 0xc]
call fcn.1800a1ff4
test eax, eax
js 0x18002f87e
mov rcx, qword [rbx + 0x28]
cmp eax, dword [rcx - 0xc]
jg 0x18002f87e
mov dword [rcx - 0x10], eax
movsxd rcx, eax
mov rax, qword [rbx + 0x28]
mov word [rax + rcx*2], r14w
mov rax, qword [rbx + 0x18]
cmp dword [rax - 0x10], r14d
jne 0x18002f587
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x70]
call fcn.18009b170
mov r8d, 0x104
lea rdx, [rsp + 0x70]
mov rcx, qword [0x180153878]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea rdx, str.ComputerZ_CN.exe
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
mov r8, qword [rbx + 0x18]
mov ecx, 1
sub ecx, dword [r8 - 8]
mov eax, dword [r8 - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18002f551
mov edx, 0x104
lea rcx, [rbx + 0x18]
call fcn.1800125f0
mov r8, qword [rbx + 0x18]
cmp dword [r8 - 0xc], 0x104
jl 0x18002f873
mov dword [r8 - 0x10], 0x104
mov rax, qword [rbx + 0x18]
mov word [rax + 0x208], r14w
mov rax, qword [rbx]
mov r9d, 0x104
lea rdx, [rsp + 0x70]
mov rcx, rbx
call qword [rax + 0x18]
mov rax, qword [rbx + 0x20]
cmp dword [rax - 0x10], r14d
jne 0x18002f627
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x390]
call fcn.18009b170
mov r8d, 0x104
lea rdx, [rbp + 0x390]
mov rcx, qword [0x180153878]
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov r8, qword [rbx + 0x20]
mov ecx, 1
sub ecx, dword [r8 - 8]
mov eax, dword [r8 - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x18002f5ef
mov edx, 0x104
lea rcx, [rbx + 0x20]
call fcn.1800125f0
mov r8, qword [rbx + 0x20]
cmp dword [r8 - 0xc], 0x104
jl 0x18002f889
mov dword [r8 - 0x10], 0x104
mov rax, qword [rbx + 0x20]
mov word [rax + 0x208], r14w
mov rax, qword [rbx]
mov r9d, 0x104
lea rdx, [rbp + 0x390]
mov rcx, rbx
call qword [rax + 0x18]
mov qword [rsp + 0x40], r14
mov dword [rsp + 0x48], r14d
mov qword [rsp + 0x50], r14
mov r9d, 0x2021f
lea r8, str.SOFTWAREComMaster
mov rdx, 0xffffffff80000002
lea rcx, [rsp + 0x40]
call fcn.180019b50
test eax, eax
je 0x18002f696
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call fcn.1800a55b8
call fcn.1800a558c
mov r8d, eax
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x64
sub r8d, ecx
inc r8d
mov dword [rbx + 0x34], r8d
mov rdi, qword [rsp + 0x40]
jmp 0x18002f812
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x180]
call fcn.18009b170
mov dword [rsp + 0x30], 0x208
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x180]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x34]
xor r8d, r8d
lea rdx, str.stat_rand
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x18002f727
mov eax, dword [rsp + 0x34]
dec eax
cmp eax, 1
ja 0x18002f727
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x18002f710
test al, 1
jne 0x18002f727
shr rax, 1
cmp word [rbp + rax*2 + 0x17e], 0
je 0x18002f718
jmp 0x18002f727
mov word [rbp + 0x180], r14w
lea rcx, [rbp + 0x180]
call fcn.1800a53b4
mov dword [rbx + 0x34], eax
cmp dword [rbx + 0x34], 0
jne 0x18002f801
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
call fcn.1800a55b8
call fcn.1800a558c
mov r8d, eax
mov eax, 0x51eb851f
imul r8d
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul ecx, edx, 0x64
sub r8d, ecx
inc r8d
mov dword [rbx + 0x34], r8d
call fcn.180011c30
mov rcx, rax
test rax, rax
je 0x18002f847
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov r8d, dword [rbx + 0x34]
lea rdx, [0x1800f8580]
lea rcx, [rsp + 0x38]
call fcn.18002bf40
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x18002f7e5
mov rax, rsi
nop word [rax + rax]
lea rax, [rax + 1]
cmp word [rbx + rax*2], 0
jne 0x18002f7b0
lea eax, [rax*2 + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 1
xor r8d, r8d
lea rdx, str.stat_rand
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x18002f7fc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x18002f812
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdi, r14
test rdi, rdi
je 0x18002f820
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rbp + 0x5a0]
xor rcx, rsp
call fcn.180050ad0
lea r11, [rsp + 0x6b0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
mov ecx, 0x80004005
call fcn.180010480
nop
mov ecx, 0x80070057
call fcn.180010480
int3
mov ecx, 0x80070057
call fcn.180010480
int3
mov ecx, 0x80070057
call fcn.180010480
int3
mov ecx, 0x80070057
call fcn.180010480
int3
mov ecx, 0x80070057
call fcn.180010480
int3
mov ecx, 0x80070057
call fcn.180010480
int3