Function at 0x100032084
Capabilities:
Check if file exists
Get file attributes
Query or enumerate registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x710
mov rax, qword [0x10004a110]
xor rax, rsp
mov qword [rsp + 0x700], rax
xor r15d, r15d
lea rax, [r11 - 0x680]
lea rdx, [0x10001c750]
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r15
lea r12d, [r15 + 1]
xor r9d, r9d
xor r8d, r8d
mov rcx, 0xffffffff80000001
mov dword [rsp + 0x28], r12d
mov ebx, r15d
mov dword [rsp + 0x20], r15d
mov qword [r11 - 0x680], r15
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp eax, r15d
jne 0x10003278d
lea rcx, [rsp + 0x2e2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x2e0], r15w
call sub.msvcrt.dll_memset
mov rcx, qword [rsp + 0xb8]
lea rax, [rsp + 0xa8]
lea r9, [rsp + 0x70]
lea rdx, [0x10001e770]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2e0]
xor r8d, r8d
mov dword [rsp + 0x70], r12d
mov dword [rsp + 0xa8], 0x208
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp eax, r15d
jne 0x10003277f
cmp dword [rsp + 0x70], r12d
jne 0x10003277f
cmp r15w, word [rsp + 0x2e0]
je 0x10003277f
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
lea rax, [rsp + 0xc0]
lea r9, [0x10001f420]
lea rcx, [0x10001f430]
mov r8d, r12d
xor edx, edx
mov qword [rsp + 0x20], rax
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xb0], r15
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0x98], r15
call qword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, r15d
mov ebx, eax
jl 0x10003272d
mov rcx, qword [rsp + 0xc0]
lea r8, [rsp + 0xb0]
lea rdx, [0x10001f450]
mov rax, qword [rcx]
call qword [rax]
cmp eax, r15d
mov ebx, eax
jl 0x10003272d
mov rcx, qword [rsp + 0xb0]
lea rdx, [rsp + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x80]
cmp eax, r15d
mov ebx, eax
jl 0x10003272d
mov rcx, qword [rsp + 0xa0]
lea r8, [rsp + 0x98]
lea rdx, [0x10001f460]
mov rax, qword [rcx]
call qword [rax]
cmp eax, r15d
mov ebx, eax
jl 0x10003272d
mov rcx, qword [rsp + 0x98]
cmp rcx, r15
je 0x100032740
mov qword [rsp + 0x90], r15
mov rax, qword [rcx]
lea rdx, [rsp + 0x90]
call qword [rax + 0x98]
cmp eax, r15d
mov ebx, eax
jl 0x100032709
mov r14, qword [rsp + 0x90]
lea rcx, [0x10001e928]
mov ebx, 0x8007000e
mov qword [rsp + 0x50], rcx
lea rsi, [0x100001db4]
cmp rcx, r15
jne 0x1000322be
mov rdi, r15
mov r13, r15
jmp 0x1000322e7
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
cmp rax, r15
jne 0x1000322e4
lea r9, [rsp + 0x50]
mov r8d, r12d
mov edx, r12d
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov r13, rax
lea rcx, [0x10001e938]
mov qword [rsp + 0x68], rcx
cmp rcx, r15
jne 0x100032300
mov rbp, r15
mov rbx, r15
jmp 0x100032329
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbp, rax
cmp rax, r15
jne 0x100032326
lea r9, [rsp + 0x68]
mov r8d, r12d
mov edx, r12d
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rbx, rax
lea rcx, [0x10001e948]
mov qword [rsp + 0x60], rcx
cmp rcx, r15
jne 0x100032342
mov r12, r15
mov rdx, r15
jmp 0x100032370
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov r12, rax
cmp rax, r15
jne 0x10003236d
mov edx, 1
lea r9, [rsp + 0x60]
mov ecx, 0x8007000e
mov r8d, edx
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rdx, rax
mov rax, qword [r14]
mov r9, r13
mov r8, rbx
mov rcx, r14
call qword [rax + 0x38]
mov rcx, r12
mov ebx, eax
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, rbp
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp ebx, r15d
jl 0x100032709
mov rbx, qword [rsp + 0x98]
lea rcx, [0x10001e960]
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x50], rcx
cmp rcx, r15
jne 0x1000323cb
mov rdi, r15
mov rsi, r15
jmp 0x1000323f6
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
cmp rax, r15
jne 0x1000323f3
mov edx, 1
lea r9, [rsp + 0x50]
mov ecx, 0x8007000e
mov r8d, edx
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rsi, rax
mov rax, qword [rbx]
or rdx, 0xffffffffffffffff
lea rcx, [rsp + 0x68]
mov qword [rsp + 0x28], rcx
mov word [rsp + 0x20], dx
mov rdx, qword [rsp + 0x90]
xor r9d, r9d
mov r8, rsi
mov rcx, rbx
call qword [rax + 0xa0]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp ebx, r15d
jl 0x1000326f9
mov rcx, qword [rsp + 0x68]
mov dword [rsp + 0x58], r15d
lea rdx, [rsp + 0x58]
mov rax, qword [rcx]
call qword [rax + 0x38]
cmp dword [rsp + 0x58], r15d
mov esi, r15d
jle 0x1000326f9
mov ebp, 8
mov r12d, 0x104
mov r13d, 0xfff
lea r14d, [rbp + 0x54]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x60], r15
mov rax, qword [rcx]
lea r8, [rsp + 0x50]
mov edx, esi
call qword [rax + 0x60]
cmp eax, r15d
mov ebx, eax
jl 0x1000326cd
mov rcx, qword [rsp + 0x50]
lea r8, [rsp + 0x60]
lea rdx, [0x10001f470]
mov rax, qword [rcx]
call qword [rax]
cmp eax, r15d
mov ebx, eax
jl 0x1000326cd
mov rcx, qword [rsp + 0x60]
mov r8, qword [0x10000eee0]
xor eax, eax
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0x78]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x88], rax
mov word [rsp + 0x78], r15w
mov rax, qword [rcx]
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], r15d
call qword [rax + 0x28]
cmp eax, r15d
mov ebx, eax
jl 0x1000326b5
cmp bp, word [rsp + 0x78]
jne 0x1000326b5
mov rdi, qword [rsp + 0x80]
cmp rdi, r15
je 0x1000326c2
cmp r15w, word [rdi]
je 0x1000326c2
lea rcx, [rsp + 0xd2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0xd0], r15w
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0xd0]
mov r8, rdi
mov rdx, r12
call fcn.10002e2e8
cmp eax, r15d
jl 0x1000326b5
lea rcx, [rsp + 0xd0]
mov edx, r14d
call qword [sym.imp.msvcrt.dll_wcsrchr]
mov rdi, rax
cmp rax, r15
je 0x1000326b5
lea rcx, [rsp + 0x4f2]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x4f0], r15w
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x4f0]
mov r8, rdi
mov rdx, r12
call fcn.10002e2e8
cmp eax, r15d
jl 0x1000326b5
lea r8, [rsp + 0x2e0]
lea rcx, [rsp + 0xd0]
mov rdx, r12
call fcn.10002e2e8
cmp eax, r15d
jl 0x1000326b5
or rcx, 0xffffffffffffffff
xor eax, eax
lea rdi, [rsp + 0xd0]
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
je 0x10003260b
cmp r14w, word [rsp + rcx*2 + 0xce]
jne 0x10003260b
mov word [rsp + rcx*2 + 0xce], r15w
lea r8, [rsp + 0x4f0]
lea rcx, [rsp + 0xd0]
mov rdx, r12
call fcn.10002e3d4
cmp eax, r15d
jl 0x1000326b5
lea rcx, [rsp + 0xd0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1000326b5
and eax, 0x10
cmp al, r15b
jne 0x1000326b5
cmp word [rsp + 0x78], r13w
jne 0x100032654
mov word [rsp + 0x78], bp
lea rcx, [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
lea rcx, [rsp + 0xd0]
mov word [rsp + 0x78], bp
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rsp + 0x80], rax
cmp rax, r15
je 0x1000326b5
mov rcx, qword [rsp + 0x60]
mov r8, qword [0x10000eee0]
lea rdx, [rsp + 0x78]
mov rax, qword [rcx]
mov qword [rsp + 0x28], rdx
xor r9d, r9d
mov edx, ebp
mov dword [rsp + 0x20], r15d
call qword [rax + 0x38]
cmp eax, r15d
jl 0x1000326b5
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x60]
cmp word [rsp + 0x78], r13w
jne 0x1000326c2
mov word [rsp + 0x78], bp
lea rcx, [rsp + 0x78]
call qword [sym.imp.OLEAUT32.dll_VariantCopy]
mov rcx, qword [rsp + 0x60]
cmp rcx, r15
je 0x1000326dd
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x50]
cmp rcx, r15
je 0x1000326ed
mov rax, qword [rcx]
call qword [rax + 0x10]
inc esi
cmp esi, dword [rsp + 0x58]
jl 0x10003246f
mov rcx, qword [rsp + 0x68]
cmp rcx, r15
je 0x100032709
mov rax, qword [rcx]
call qword [rax + 0x10]
lea rdx, [0x10001e978]
mov ecx, 4
call fcn.100045708
mov rcx, qword [rsp + 0x90]
cmp rcx, r15
je 0x10003272d
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x98]
cmp rcx, r15
je 0x100032740
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xa0]
cmp rcx, r15
je 0x100032753
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xb0]
cmp rcx, r15
je 0x100032766
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0xc0]
cmp rcx, r15
je 0x100032779
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, ebx
mov rcx, qword [rsp + 0x700]
xor rcx, rsp
call fcn.1000475f0
lea r11, [rsp + 0x710]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret