Function at 0x416b60
Capabilities:
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x250
mov qword [rsp + 0x98], 0xfffffffffffffffe
mov rax, qword [0x004583d0]
mov qword [rsp + 0x240], rax
mov qword [rsp + 0x90], rcx
add rcx, 0x10
mov r8, qword [rcx + 8]
mov r9, r8
mov r8, qword [r8]
lea rdx, [rsp + 0x58]
call fcn.0041603c
mov edi, 0xa000
mov rcx, rdi
call qword [sym.imp.msvcrt.dll_malloc]
mov rsi, rax
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x34], edi
movabs rax, 0x3000310035
mov qword [rsp + 0xc0], rax
xor edx, edx
lea r8d, [rdx + 0x78]
lea rcx, [rsp + 0xc8]
call sub.msvcrt.dll_memset
lea rax, [rsp + 0x34]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x70]
xor r8d, r8d
lea rdx, [rsp + 0xc0]
mov rcx, 0xffffffff80000004
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, eax
test eax, eax
je 0x416c57
cmp ebx, 0xea
jne 0x416c4c
mov ecx, dword [rsp + 0x34]
add ecx, edi
mov dword [rsp + 0x34], ecx
mov edx, ecx
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_realloc]
mov rsi, rax
mov qword [rsp + 0x80], rax
jmp 0x416c22
test ebx, ebx
je 0x416bf0
xor eax, eax
jmp 0x416e2f
mov edi, dword [rsi + 0x18]
add rdi, rsi
mov qword [rsp + 0x68], rdi
mov dword [rsp + 0x30], 0
xor r13d, r13d
mov dword [rsp + 0x3c], r13d
cmp r13d, dword [rsi + 0x1c]
jge 0x416e1d
cmp dword [rdi + 0xc], 0x1fe
jne 0x416e06
mov r15d, 0xffffffff
mov dword [rsp + 0x40], r15d
mov ecx, dword [rdi + 8]
add rcx, rdi
mov qword [rsp + 0x60], rcx
xor edx, edx
mov dword [rsp + 0x30], edx
cmp edx, dword [rdi + 0x20]
jge 0x416cce
cmp dword [rcx + 4], 0x208
jne 0x416cbc
mov r15d, dword [rcx + 0x24]
mov dword [rsp + 0x40], r15d
mov eax, dword [rcx]
add rcx, rax
mov qword [rsp + 0x60], rcx
inc edx
mov dword [rsp + 0x30], edx
jmp 0x416ca5
cmp r15d, 0xffffffff
jne 0x416ce7
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_free]
mov eax, 1
jmp 0x416e2f
lea rcx, [rsp + 0x58]
call sub.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo
nop
mov r12d, dword [rdi + 4]
add r12, rdi
mov qword [rsp + 0x78], r12
xor r14d, r14d
mov dword [rsp + 0x30], r14d
cmp r14d, dword [rdi + 0x28]
jge 0x416dfc
mov ecx, dword [r12 + 0x10]
add rcx, r12
mov ebx, dword [r12]
add rbx, r12
mov r8d, 0xff
lea rdx, [rsp + 0x140]
call fcn.00414e08
mov qword [rsp + 0x88], rax
mov ecx, r15d
mov eax, dword [rcx + rbx]
mov dword [rsp + 0x38], eax
mov rbx, qword [rsp + 0x90]
mov rcx, qword [rbx + 0x28]
mov dword [rsp + 0x44], ecx
lea rcx, [rbx + 0x10]
lea rdx, [rsp + 0x44]
call fcn.00416570
mov rdx, qword [rsp + 0x88]
mov rcx, rax
call sub.MFC42u.dll_AfxDaoTerm
mov rax, qword [rbx + 0x48]
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], 0
lea rcx, [rbx + 0x30]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0xb0]
call fcn.00416304
mov rax, qword [rsp + 0xb0]
mov ecx, dword [rsp + 0x38]
mov dword [rax + 0x1c], ecx
mov rax, qword [rbx + 0x68]
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], 0
lea rcx, [rbx + 0x50]
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0xa0]
call fcn.00416304
mov rax, qword [rsp + 0xa0]
mov dword [rax + 0x1c], 0
mov eax, dword [r12]
mov ecx, dword [rax + r12]
add rcx, rax
add r12, rcx
mov qword [rsp + 0x78], r12
inc r14d
mov dword [rsp + 0x30], r14d
jmp 0x416d06
lea rcx, [rsp + 0x58]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
mov eax, dword [rdi]
add rdi, rax
mov qword [rsp + 0x68], rdi
inc r13d
mov dword [rsp + 0x3c], r13d
jmp 0x416c72
mov rcx, rsi
call qword [sym.imp.msvcrt.dll_free]
mov eax, 1
jmp 0x416e2f
mov rcx, qword [rsp + 0x240]
call fcn.0042ec20
add rsp, 0x250
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret