Function at 0x14003d5bc
Capabilities:
Query or enumerate registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x8120]
mov eax, 0x8220
call fcn.1400c2070
sub rsp, rax
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x8270], rbx
mov rax, qword [0x1401a0e90]
xor rax, rsp
mov qword [rbp + 0x8110], rax
mov r15, rdx
mov rbx, rcx
xor r12d, r12d
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x58], r12d
mov qword [rsp + 0x60], r12
mov eax, dword [0x1401a8d80]
mov ecx, eax
imul ecx, eax
imul ecx, eax
mov edi, 0x30c30c31
mov eax, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 9
jne 0x14003d657
mov qword [rsp + 0x20], r12
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetMailslotInfo]
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x68]
call fcn.14003b320
nop
mov r9d, 0x2001f
mov r8, qword [rax]
mov rdx, qword [0x1401a3d48]
lea rcx, [rsp + 0x50]
call fcn.14001878c
test eax, eax
setne bl
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
or r13, 0xffffffffffffffff
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14003d6ac
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test bl, bl
je 0x14003d6bd
mov dil, r12b
mov rbx, qword [rsp + 0x50]
jmp 0x14003d9d8
mov ebx, dword [0x1401a8d80]
mov ecx, ebx
imul ecx, ebx
mov eax, edi
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x15
sub ecx, edx
cmp ecx, 0xb
jne 0x14003d70f
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateFileW]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ebx, dword [0x1401a8d80]
mov dword [rsp + 0x40], 0x4000
lea ecx, [rbx + 1]
imul ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 7
sub ecx, edx
mov esi, 0x51eb851f
cmp ecx, 3
jne 0x14003d77d
mov eax, esi
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub ebx, edx
add ebx, 0x2f4
movsxd rcx, ebx
mov eax, 4
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400bc638
mov rcx, rax
call fcn.1400be0fc
mov ebx, dword [0x1401a8d80]
mov word [rbp + 0x110], r12w
xor edx, edx
mov r8d, 0x7ffe
lea rcx, [rbp + 0x112]
call fcn.1400c2400
mov r14d, r12d
mov eax, ebx
imul eax, ebx
mov edi, 1
and eax, 0x80000003
jge 0x14003d7b4
sub eax, edi
or eax, 0xfffffffc
add eax, edi
cmp eax, 3
jne 0x14003d7c7
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
mov dword [0x1401a8d80], eax
mov r8d, ebx
imul r8d, ebx
mov eax, 0x92492493
imul r8d
add edx, r8d
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
imul edx, edx, 7
sub r8d, edx
cmp r8d, 6
jne 0x14003d823
mov eax, esi
imul ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x64
sub ebx, edx
add ebx, 0x7b
movsxd rcx, ebx
lea eax, [r8 - 2]
mul rcx
cmovo rax, r13
mov rcx, rax
call fcn.1400bc638
mov rcx, rax
call fcn.1400be0fc
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
lea r9, [rsp + 0x40]
lea r8, [rbp + 0x110]
mov edx, r14d
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
mov esi, eax
add r14d, edi
test eax, eax
je 0x14003d868
cmp eax, 0x103
jne 0x14003d96a
mov r9d, dword [0x1401a8d80]
lea r8d, [r9 + 2]
lea ecx, [r9 + 1]
imul r8d, ecx
imul r8d, r9d
mov eax, 0x66666667
imul r8d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
sub r8d, eax
cmp r8d, 3
jne 0x14003d8c6
mov r8d, r12d
lea r10, [rbp - 0x80]
mov r11d, r9d
lea ecx, [r9 + r8]
mov eax, r11d
cdq
idiv ecx
mov dword [r10], edx
add r8d, edi
sub r11d, edi
lea r10, [r10 + 4]
movsxd rax, r8d
cmp rax, 0x63
jb 0x14003d8a6
lea rdx, [rbp + 0x110]
lea rcx, [rsp + 0x48]
call fcn.140001f2c
nop
mov rax, qword [rsp + 0x48]
cmp dword [rax - 0x10], r12d
je 0x14003d8f0
lea rdx, [rsp + 0x48]
mov rcx, r15
call fcn.140019ee8
mov dword [rsp + 0x40], 0x4000
xor edx, edx
mov r8d, 0x8000
lea rcx, [rbp + 0x110]
call fcn.1400c2400
mov ecx, dword [0x1401a8d80]
imul ecx, ecx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0xe
sub ecx, edx
mov eax, dword [0x1401aa268]
mov edx, 0xda451e48
cmp ecx, 0xa
cmove eax, edx
mov dword [0x1401aa268], eax
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
test eax, eax
jg 0x14003d965
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x50]
mov ecx, dword [0x1401a8d80]
imul ecx, ecx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
shl eax, 2
sub ecx, eax
cmp ecx, 0xb
jne 0x14003d9b5
lea eax, [rcx + 0x3d]
lea r8d, [rax + 0x7f]
test r8d, r8d
je 0x14003d9ac
mov ecx, r8d
cdq
idiv r8d
mov r8d, edx
mov eax, ecx
test ecx, ecx
jne 0x14003d997
add eax, r8d
mov dword [0x1401a8d80], eax
test esi, esi
je 0x14003d828
test rbx, rbx
je 0x14003d9d3
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbx, r12
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x58], r12d
test rbx, rbx
je 0x14003d9eb
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x58], r12d
mov al, dil
mov rcx, qword [rbp + 0x8110]
xor rcx, rsp
call fcn.1400bcfc0
mov rbx, qword [rsp + 0x8270]
add rsp, 0x8220
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret