Function at 0x1400074f8
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov qword [rax - 0x70], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov r13d, r9d
mov rdi, r8
movsxd r14, edx
mov r15, rcx
mov rsi, qword [rsp + 0x120]
test rsi, rsi
jne 0x140007542
mov eax, 0x80070057
jmp 0x140007872
mov rdx, r8
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc110.dll_Ordinal_306]
nop
xor ebx, ebx
lea r12d, [rbx + 8]
lea rdx, str.BinDir
mov rdx, qword [rbx + rdx]
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc110.dll_Ordinal_2850]
test eax, eax
je 0x14000785f
add rbx, r12
cmp rbx, 0x20
jb 0x140007557
mov rcx, r15
call fcn.1400062ec
nop
mov qword [rsp + 0x68], r14
mov rdx, r14
mov rcx, r15
call fcn.140005e14
test al, al
je 0x1400075b4
mov dword [rsp + 0x48], SafeArrayDestroy
lea rdx, [0x14001f8a8]
lea rcx, [rsp + 0x48]
call sub.MSVCR110.dll__CxxThrowException
mov r8b, 1
mov rdx, rdi
lea rcx, [rsp + 0x58]
call fcn.140002e6c
nop
xor edi, edi
mov ebx, edi
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x38], rdi
mov r12d, edi
mov dword [rsi], edi
mov r14d, dword [rsp + 0x118]
test r14d, r14d
je 0x14000776e
test r13d, r13d
je 0x140007766
cmp r13d, 2
jbe 0x1400076c3
cmp r13d, 3
je 0x14000764d
cmp r13d, 4
je 0x140007617
cmp r13d, 7
je 0x1400076c3
jmp 0x140007766
cmp r14d, 4
jne 0x140007766
mov rcx, qword [rsp + 0x110]
cmp word [rcx], 0x17
ja 0x140007766
movzx eax, word [rcx]
mov edx, 0xc80808
bt edx, eax
jae 0x140007766
lea r12, [rcx + 8]
jmp 0x140007771
mov eax, 0x2011
mov rcx, qword [rsp + 0x110]
cmp ax, word [rcx]
jne 0x140007766
mov rax, qword [rcx + 8]
cmp r14d, dword [rax + 0x18]
jne 0x140007766
movups xmm0, xmmword [rcx]
movaps xmmword [rsp + 0x80], xmm0
movsd xmm1, qword [rcx + 0x10]
movsd qword [rsp + 0x90], xmm1
lea r9, [rsp + 0x118]
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x80]
mov rcx, r15
call fcn.140004ec8
mov dword [rsi], eax
mov r14d, dword [rsp + 0x118]
test eax, eax
jne 0x140007771
mov r12, qword [rsp + 0x38]
jmp 0x140007771
mov rdx, qword [rsp + 0x110]
mov eax, 8
cmp ax, word [rdx]
jne 0x140007766
mov r8b, 1
mov rdx, qword [rdx + 8]
lea rcx, [rsp + 0x60]
call fcn.140002e6c
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.14000332c
mov rbx, qword [rsp + 0x60]
test rbx, rbx
je 0x140007744
lock dec dword [rbx + 0x10]
jne 0x140007737
test rbx, rbx
je 0x140007737
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000771d
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14000772f
call sub.MSVCR110.dll_void___cdecl_operator_delete___void____ptr64_
mov qword [rbx + 8], rdi
mov rcx, rbx
call sub.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_
mov qword [rsp + 0x60], rdi
mov r14d, dword [rsp + 0x118]
mov rbx, qword [rsp + 0x50]
test rbx, rbx
je 0x14000776e
cmp qword [rbx + 8], rdi
jne 0x140007760
mov rcx, qword [rbx]
call fcn.140012690
mov qword [rbx + 8], rax
mov r12, qword [rbx + 8]
jmp 0x140007771
mov dword [rsi], SafeArrayDestroy
jmp 0x140007771
mov r12, rdi
cmp dword [rsi], edi
jne 0x1400077ba
mov rdi, qword [rsp + 0x58]
test rdi, rdi
je 0x14000779a
cmp qword [rdi + 8], 0
jne 0x140007792
mov rcx, qword [rdi]
call fcn.140012690
mov qword [rdi + 8], rax
mov rdx, qword [rdi + 8]
xor edi, edi
jmp 0x14000779d
mov rdx, rdi
mov dword [rsp + 0x28], r14d
mov qword [rsp + 0x20], r12
mov r9d, r13d
xor r8d, r8d
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov dword [rsi], eax
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400077ce
call sub.MSVCR110.dll_void___cdecl_operator_delete___void____ptr64_
mov qword [rsp + 0x38], rdi
test rbx, rbx
je 0x14000780a
lock dec dword [rbx + 0x10]
jne 0x14000780a
mov rbx, qword [rsp + 0x50]
mov rcx, qword [rbx]
test rcx, rcx
je 0x1400077ef
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140007801
call sub.MSVCR110.dll_void___cdecl_operator_delete___void____ptr64_
mov qword [rbx + 8], rdi
mov rcx, rbx
call sub.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_
nop
mov rbx, qword [rsp + 0x58]
test rbx, rbx
je 0x14000784b
lock dec dword [rbx + 0x10]
jne 0x14000784b
test rbx, rbx
je 0x14000784b
mov rcx, qword [rbx]
test rcx, rcx
je 0x140007830
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rdi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x140007842
call sub.MSVCR110.dll_void___cdecl_operator_delete___void____ptr64_
mov qword [rbx + 8], rdi
mov rcx, rbx
call sub.MSVCR110.dll_void___cdecl_operator_delete_void____ptr64_
nop
jmp 0x140007855
mov rcx, r15
call fcn.140007b18
jmp 0x140007865
mov dword [rsi], 5
lea rcx, [rsp + 0x40]
call qword [sym.imp.mfc110.dll_Ordinal_1026]
xor eax, eax
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret