Function at 0x140017070
Capabilities:
Check mutex on windows
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x460]
sub rsp, 0x560
mov rax, qword [0x1401900d0]
xor rax, rsp
mov qword [rbp + 0x450], rax
xorps xmm0, xmm0
mov qword [rbp + 0x40], 7
mov rdi, r8
lea rax, [rbp]
mov r14, rcx
mov qword [rsp + 0x20], rax
xor r15d, r15d
lea rdx, str.SOFTWAREASUSArmouryDevice
movups xmmword [rbp + 0x28], xmm0
mov r9d, 0x20219
mov word [rbp + 0x28], r15w
xor r8d, r8d
mov qword [rbp + 0x38], r15
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140017146
mov rcx, qword [rbp]
lea rax, [rbp + 0x20]
mov qword [rsp + 0x28], rax
lea rdx, str.Installation_location
lea rax, [rbp + 0x50]
mov dword [rbp + 0x20], 0x400
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140017146
xorps xmm0, xmm0
mov qword [rsp + 0x70], r15
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x78], r15
lea rax, [rbp + 0x50]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], r15w
jne 0x140017136
lea rdx, [rbp + 0x50]
jmp 0x14001717c
call fcn.140061ec0
mov rcx, rax
lea rdx, str.Get_dll_install_path_fail._rerun_default_path.
mov r8b, 1
call fcn.1400616d0
xorps xmm0, xmm0
mov qword [rsp + 0x70], r15
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x78], r15
lea rdx, str.C:Program_Files__x86_ASUSArmouryDevice
mov r8d, 0x29
lea rcx, [rsp + 0x60]
call fcn.14001c4f0
lea rcx, [rbp + 0x28]
call fcn.14000d260
mov rdx, qword [reloc.OLEAUT32.dll_VariantInit]
cmp rdx, 8
jb 0x1400171d5
mov rcx, qword [0x140190db8]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400171d0
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400177a6
mov rcx, r8
call fcn.140105840
movups xmm1, xmmword [rsp + 0x70]
mov qword [rsp + 0x588], rbx
lea rcx, [rsp + 0x60]
movups xmm0, xmmword [rsp + 0x60]
mov qword [rsp + 0x590], rsi
movups xmmword [0x140190dc8], xmm1
mov qword [rsp + 0x70], r15
movups xmmword [0x140190db8], xmm0
mov qword [rsp + 0x78], 7
mov word [rsp + 0x60], r15w
call fcn.14000d260
lea r8, [0x140190db8]
lea rdx, str.get_registry_install_path:
lea rcx, [rbp + 0x28]
call fcn.14001bdf0
mov rbx, rax
cmp qword [rax + 0x18], 8
jb 0x14001723f
mov rbx, qword [rax]
call fcn.140061ec0
mov rcx, rax
mov rdx, rbx
call fcn.1400618a0
lea rcx, [rbp + 0x28]
call fcn.14000d260
mov r9d, 0x64
lea r8, [0x14019e4a0]
mov rcx, r14
lea edx, [r9 + 3]
call qword [sym.imp.USER32.dll_LoadStringW]
mov r9d, 0x64
lea rsi, [0x14019e3c0]
mov r8, rsi
mov rcx, r14
lea edx, [r9 + 4]
call qword [sym.imp.USER32.dll_LoadStringW]
lea r8, str.GlobalArmourySocketServerMutex
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140017306
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.140061ec0
mov rcx, rax
lea rdx, str.ArmourySocketServer.exe_is_already_running
mov r8b, 1
call fcn.1400616d0
xor eax, eax
mov rbx, qword [rsp + 0x588]
mov rsi, qword [rsp + 0x590]
mov rcx, qword [rbp + 0x450]
xor rcx, rsp
call fcn.140105820
mov rdi, qword [rsp + 0x598]
add rsp, 0x560
pop r15
pop r14
pop rbp
ret
lea rax, [0x140017bc0]
mov qword [rbp - 0x80], Ordinal_84
mov qword [rbp - 0x78], rax
lea rcx, [rbp - 0x80]
lea rax, [0x14015c210]
mov qword [rbp - 0x70], r15
xorps xmm0, xmm0
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x68], r14
movdqa xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x50], r15
mov qword [rbp - 0x40], rsi
mov qword [rbp - 0x38], r15
call qword [sym.imp.USER32.dll_RegisterClassExW]
mov qword [rsp + 0x58], r15
lea r8, [0x14019e4a0]
mov qword [rsp + 0x50], r14
mov r9d, 0xcf0000
mov qword [rsp + 0x48], r15
mov rdx, rsi
mov qword [rsp + 0x40], r15
xor ecx, ecx
mov dword [rsp + 0x38], r15d
mov dword [rsp + 0x30], 0x80000000
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 0x80000000
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [0x14019e568], rax
test rax, rax
je 0x1400172d0
xor r9d, r9d
mov rcx, rax
lea edx, [r9 + 0x4a]
lea r8d, [r9 + 1]
call qword [sym.imp.USER32.dll_ChangeWindowMessageFilterEx]
mov ecx, 1
call fcn.140105848
lea rcx, [rbp + 8]
mov r9, rax
mov qword [rsp + 0x28], rcx
lea r8, [0x14001e750]
xor ecx, ecx
mov dword [rsp + 0x20], r15d
xor edx, edx
call fcn.14011dc90
mov qword [rbp], rax
test rax, rax
je 0x140017797
cmp dword [rbp + 8], r15d
je 0x14001778c
movaps xmm0, xmmword [rbp]
lea rcx, [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
call fcn.1400e42a8
test eax, eax
jne 0x14001778c
xorps xmm0, xmm0
lea ecx, [rax + 1]
movdqa xmmword [rbp], xmm0
call fcn.140105848
lea rcx, [rbp + 8]
mov r9, rax
mov qword [rsp + 0x28], rcx
lea r8, [0x14001e7c0]
xor ecx, ecx
mov dword [rsp + 0x20], r15d
xor edx, edx
call fcn.14011dc90
mov qword [rbp], rax
test rax, rax
je 0x1400177d7
cmp dword [rbp + 8], r15d
je 0x1400177cc
movaps xmm0, xmmword [rbp]
lea rcx, [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
call fcn.1400e42a8
test eax, eax
jne 0x1400177cc
xorps xmm0, xmm0
movdqa xmmword [rbp], xmm0
call fcn.140061ec0
cmp dword [reloc.WS2_32.dll_closesocket], r15d
jle 0x1400174a9
lea r8, str.dllArmourySocketServerArmouryHtmlDebugServer.exe
mov rdx, rax
lea rcx, [rbp + 0x28]
call fcn.14001bf00
mov rcx, rax
mov dl, 1
call fcn.140015d70
call fcn.140015930
call fcn.1400152c0
mov rcx, r15
lea r8, str._run
nop dword [rax]
movzx eax, word [rdi + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x1400175e5
cmp rcx, 5
jne 0x1400174c0
call fcn.140061ec0
mov rcx, rax
lea rdx, str.Run_asus_framework
mov r8b, 1
call fcn.1400616d0
lea r8, str._asus_framework.exe
lea rdx, [0x140190db8]
lea rcx, [rbp]
call fcn.14001bf00
call fcn.140015cd0
test al, al
je 0x1400175c5
cmp qword [rbp + 0x18], 8
lea rsi, [rbp]
mov rdi, qword [rbp + 0x10]
movabs rbx, 0x7ffffffffffffffe
cmovae rsi, qword [rbp]
xorps xmm0, xmm0
mov qword [rsp + 0x70], r15
movups xmmword [rsp + 0x60], xmm0
cmp rdi, rbx
ja 0x1400177ac
mov qword [rsp + 0x78], 7
cmp rdi, 8
jae 0x14001756e
mov qword [rsp + 0x70], rdi
lea rcx, [rsp + 0x60]
movups xmm0, xmmword [rsi]
movups xmmword [rsp + 0x60], xmm0
call fcn.140016140
jmp 0x1400175dc
mov rax, rdi
or rax, 7
cmp rax, rbx
ja 0x140017589
mov ecx, 0xa
mov rbx, rax
cmp rax, rcx
cmovb rbx, rcx
lea rdx, [rbx + 1]
lea rcx, [rsp + 0x60]
call fcn.14000d940
lea r8, [rdi*2 + 2]
mov qword [rsp + 0x60], rax
mov rdx, rsi
mov qword [rsp + 0x70], rdi
mov rcx, rax
mov qword [rsp + 0x78], rbx
call fcn.1401093a0
lea rcx, [rsp + 0x60]
call fcn.140016140
jmp 0x1400175dc
lea rdx, [rbp]
lea rcx, [rbp + 0x28]
call fcn.14001a120
mov rcx, rax
xor edx, edx
call fcn.140015d70
lea rcx, [rbp]
call fcn.14000d260
mov rcx, qword [0x14019ec38]
test rcx, rcx
je 0x1400175fe
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x14019ec38], r15
mov rcx, qword [0x14019e828]
test rcx, rcx
je 0x140017629
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rcx, qword [0x14019e828]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x14019e828], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [0x14019ec38], rax
test rax, rax
jne 0x14001765e
call fcn.140061ec0
mov rcx, rax
lea rdx, str._LightingServiceMonitor__CreateEvent_fail
mov r8b, 1
call fcn.1400616d0
jmp 0x1400176c2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResetEvent]
lea rax, [0x14019e6f8]
xor r9d, r9d
mov qword [rsp + 0x28], rax
lea r8, [0x140060350]
xor edx, edx
mov dword [rsp + 0x20], r15d
xor ecx, ecx
call fcn.14011dc90
mov qword [0x14019e828], rax
test rax, rax
jne 0x1400176c2
call fcn.140061ec0
mov rcx, rax
lea rdx, str._LightingServiceMonitor___beginthreadex_fail
mov r8b, 1
call fcn.1400616d0
mov rcx, qword [0x14019ec38]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [0x14019ec38], r15
mov ecx, 1
call fcn.140105848
lea rcx, [rbp + 8]
mov r9, rax
mov qword [rsp + 0x28], rcx
lea r8, [0x14001e7f0]
xor ecx, ecx
mov dword [rsp + 0x20], r15d
xor edx, edx
call fcn.14011dc90
mov qword [rbp], rax
test rax, rax
je 0x1400177bd
cmp dword [rbp + 8], r15d
je 0x1400177b2
movaps xmm0, xmmword [rbp]
lea rcx, [rsp + 0x60]
movdqa xmmword [rsp + 0x60], xmm0
call fcn.1400e42a8
test eax, eax
jne 0x1400177b2
lea edx, [rax + 0x6d]
mov rcx, r14
call qword [sym.imp.USER32.dll_LoadAcceleratorsW]
xor r9d, r9d
lea rcx, [rbp - 0x30]
xor r8d, r8d
xor edx, edx
mov rbx, rax
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x140017784
mov rcx, qword [rbp - 0x30]
lea r8, [rbp - 0x30]
mov rdx, rbx
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x14001776e
lea rcx, [rbp - 0x30]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp - 0x30]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
lea rcx, [rbp - 0x30]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x140017745
mov eax, dword [rbp - 0x20]
jmp 0x1400172d2
mov ecx, 1
call fcn.1400e2fa8
int3
mov ecx, 6
mov dword [rbp + 8], r15d
call fcn.1400e2fa8
int3
call fcn.14010e2dc
int3
call fcn.14000cc90
int3
mov ecx, 1
call fcn.1400e2fa8
int3
mov ecx, 6
mov dword [rbp + 8], r15d
call fcn.1400e2fa8
int3
mov ecx, 1
call fcn.1400e2fa8
int3
mov ecx, 6
mov dword [rbp + 8], r15d
call fcn.1400e2fa8
int3