Function at 0x1400076c0
Capabilities:
Print debug messages
Query or enumerate registry value

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
xor esi, esi
mov r14, rcx
xor eax, eax
lock cmpxchg dword [0x14023704c], esi
mov dword [rbp + 0x30], esi
test rcx, rcx
je 0x140007ab5
prefetchw byte [0x14023704c]
mov eax, dword [0x14023704c]
nop word [rax + rax]
mov ecx, eax
or ecx, 1
lock cmpxchg dword [0x14023704c], ecx
jne 0x140007700
test eax, eax
jne 0x140007a98
mov eax, 1
xchg dword [0x140237050], eax
test eax, eax
je 0x140007738
lea rcx, str.__Debug_Engine_already_Initialized_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
jmp 0x1400077eb
lea rcx, str._ReadDbgPrtEnabledFlagFromRegistry_Entry_n
mov qword [rbp - 0x38], rsi
mov dword [rbp + 0x40], 4
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rax, [rbp - 0x38]
mov r9d, 1
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SYSTEMCurrentControlSetServicesIntel_Connectivity_Network_ServiceSLibCFG
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400077d4
mov rcx, qword [rbp - 0x38]
lea rax, [rbp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rbp + 0x40]
lea rax, [rbp + 0x48]
mov dword [rbp + 0x38], 4
xor r8d, r8d
mov qword [rsp + 0x20], rax
lea rdx, str.SvcLib_TraceEnabled
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400077bd
cmp dword [rbp + 0x48], esi
mov eax, esi
setne al
mov dword [0x140237048], eax
lea rcx, str._ReadDbgPrtEnabledFlagFromRegistry_Close_RegHandle_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rbp - 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rcx, str._ReadDbgPrtEnabledFlagFromRegistry_Exit_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov dword [reloc.OLEAUT32.dll_SysReAllocString], 0x1894213
lea rcx, [0x140237020]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor r8d, r8d
mov dword [rbp + 0x30], 1
mov edx, 0x200000
mov dword [0x14023706c], 0x262e2e
xor ecx, ecx
mov word [0x140237070], 0x808
mov edi, esi
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov qword [0x14023f308], rax
mov rax, qword [0x14023f308]
test rax, rax
jne 0x140007849
lea rcx, str.RfeInitMemoryManager:__HeapAlloc_Failed_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, SafeArrayDestroy
test edi, edi
jne 0x140007ac7
mov dword [rbp + 0x30], 2
cmp qword [r14], rsi
je 0x140007a77
cmp qword [r14 + 8], rsi
je 0x140007a77
cmp qword [r14 + 0x10], rsi
je 0x140007a77
call fcn.1400093a0
mov edi, eax
test eax, eax
jne 0x140007a7c
mov dword [rbp + 0x30], 3
call fcn.140010220
mov edi, eax
test eax, eax
jne 0x14000789b
call fcn.140013660
test edi, edi
jne 0x140007ac7
mov rcx, r14
mov dword [rbp + 0x30], 5
call fcn.14000a890
mov edi, eax
test eax, eax
jne 0x140007a7c
call fcn.140011b00
cmp eax, 1
jne 0x140007a70
cmp dword [0x14023f274], esi
mov edi, esi
je 0x1400078f1
mov rax, qword [0x14023f720]
mov dword [rbp - 0x40], esi
mov qword [rbp - 0x30], rsi
test rax, rax
jne 0x140007951
mov qword [0x14023f328], rsi
lea edi, [rax + 3]
call fcn.140012930
test edi, edi
jne 0x140007ac7
mov rcx, qword [0x140237188]
mov edi, esi
mov dword [rbp + 0x30], 6
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x140237178]
cmp rcx, 0xffffffffffffffff
je 0x140007a2f
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x140237178]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
test ebx, ebx
je 0x140007a34
mov edi, 0x1f
jmp 0x140007a34
xor edx, edx
lea r9, [rbp - 0x30]
lea r8, [rbp - 0x40]
lea ecx, [rdx + 2]
call rax
mov rcx, qword [rbp - 0x30]
test eax, eax
mov edi, eax
cmovne rcx, rsi
mov qword [rbp - 0x30], rcx
mov qword [0x14023f328], rcx
test rcx, rcx
je 0x1400078f1
xor eax, eax
mov qword [rbp - 0x28], rsi
lea r8, [rbp - 0x28]
mov qword [rbp - 0x18], rax
xor edx, edx
mov qword [rbp - 0x10], rax
call qword [0x14023f730]
mov rdx, qword [rbp - 0x28]
mov edi, eax
test eax, eax
jne 0x1400079db
movsxd rax, dword [rdx]
test eax, eax
je 0x1400079d6
mov rcx, rax
jle 0x1400079db
lea rax, [rdx + 8]
nop dword [rax]
nop dword [rax + rax]
movups xmm0, xmmword [rax]
lea rax, [rax + 0x214]
movups xmmword [rbp - 0x18], xmm0
sub rcx, 1
jne 0x1400079c0
jmp 0x1400079db
mov edi, 0x10df
test rdx, rdx
je 0x1400079ed
mov rcx, rdx
call qword [0x14023f740]
mov qword [rbp - 0x28], rsi
cmp edi, 0x10df
je 0x140007a00
movups xmm0, xmmword [rbp - 0x18]
movups xmmword [0x14023f310], xmm0
test edi, edi
je 0x1400078f1
mov rax, qword [0x14023f598]
test rax, rax
je 0x1400078fe
mov rcx, qword [0x14023f328]
xor edx, edx
call rax
mov qword [0x14023f328], rsi
jmp 0x1400078fe
mov edi, 0x72
test edi, edi
jne 0x140007ac7
mov dword [rbp + 0x30], 7
lock inc dword [0x140237074]
lea ecx, [rdi + 1]
call fcn.14000b3c0
mov edi, eax
test eax, eax
jne 0x140007a7c
mov rax, qword [0x14023f278]
mov qword [r14 + 0x20], rax
mov eax, edi
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov edi, 0x45a
jmp 0x140007ac7
mov edi, 0x57
test edi, edi
jne 0x140007ac7
mov rax, qword [0x14023f278]
mov qword [r14 + 0x20], rax
mov eax, edi
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rcx, str._RfeStartUP_BFE_Engine_has_already_been_started_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 0x4df
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
lea rcx, str._RfeStartUP_Null_Parameter_List_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov edi, 0x57
lea rcx, str.RfeStartup_EngineState_failed_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp edi, 0x438
je 0x140007ae4
cmp edi, 0x51a
jne 0x140007aec
mov eax, esi
xchg dword [0x14023704c], eax
xor eax, eax
lock cmpxchg dword [0x14023704c], esi
je 0x140007b87
mov eax, esi
mov edx, 1
xchg dword [0x14023704c], eax
xchg dword [0x140237124], edx
mov ebx, dword [rbp + 0x30]
cmp ebx, 7
jl 0x140007b27
call fcn.14000bc70
mov ecx, 0x7d0
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp ebx, 5
jl 0x140007b3b
call fcn.1400095d0
mov ecx, 1
call fcn.14000b7f0
cmp ebx, 4
jl 0x140007b45
call fcn.1400112b0
cmp ebx, 3
jl 0x140007b4f
call fcn.140008d20
cmp ebx, 2
jl 0x140007b75
xchg qword [0x14023f308], rsi
mov qword [rbp - 0x20], rsi
mov rax, qword [rbp - 0x20]
test rax, rax
je 0x140007b72
mov rcx, qword [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_HeapDestroy]
mov ebx, dword [rbp + 0x30]
cmp ebx, 1
jl 0x140007b87
lea rcx, [0x140237020]
call qword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
lea rcx, str._RfeStartup_EngineState_failed_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, edi
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret