Function at 0x100016064
Capabilities:
Set registry value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1c0
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [0x1000cc510]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
mov r12, rdx
mov rsi, rcx
xor r13d, r13d
mov ebp, r13d
mov dword [rsp + 0x58], r13d
mov rax, qword [rcx + 8]
mov rbx, qword [rax]
cmp rbx, rax
je 0x100016147
lea r15, vtable.std::basic_ostream_unsigned_short_int__struct_std::char_traits_unsigned_short_int__.0
lea r14, vtable.std::basic_ostringstream_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__.0
lea rcx, [rsp + 0x70]
mov rax, qword [rbx + 0x20]
mov qword [rcx], rax
mov rax, qword [rbx + 0x28]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 0x30]
mov qword [rcx + 0x10], rax
mov rdi, qword [rsp + 0x78]
cmp rdi, r13
jne 0x10004770b
cmp byte [rbx + 0x39], r13b
jne 0x1000478f5
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x39], r13b
je 0x100016127
mov rax, qword [rbx + 8]
cmp byte [rax + 0x39], r13b
jne 0x100016122
cmp rbx, qword [rax + 0x10]
jne 0x100016122
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x39], r13b
je 0x10001610f
mov rbx, rax
jmp 0x100016141
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x39], r13b
jne 0x100016141
mov rbx, rax
mov rax, qword [rax]
cmp byte [rax + 0x39], r13b
je 0x100016133
jmp 0x100016141
cmp rbx, qword [rsi + 8]
jne 0x1000160c7
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.1000010a0
mov rbx, qword [rsp + 0x210]
add rsp, 0x1c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea rax, [0x1000ac5e0]
mov qword [rsp + 0x90], rax
or ebp, 1
mov dword [rsp + 0x58], ebp
mov qword [rsp + 0x118], r15
xor r8d, r8d
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x118]
call fcn.1000272b0
nop
mov rax, qword [rsp + 0x90]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x90], r14
lea rcx, [rsp + 0x98]
call fcn.100027568
nop
lea rax, vtable.std::basic_stringbuf_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__.0
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x108], r13
mov dword [rsp + 0x110], 4
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + 0x20]
mov rax, qword [rcx]
lea rdx, [rsp + 0x90]
call qword [rax + 0x20]
lea rdx, [rsp + 0x180]
lea rcx, [rsp + 0x90]
call fcn.1000767f0
cmp qword [rdi + 0x20], 8
jb 0x1000477bf
mov rdx, qword [rdi + 8]
jmp 0x1000477c3
lea rdx, [rdi + 8]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r13
mov dword [rsp + 0x28], 0x20006
mov dword [rsp + 0x20], r13d
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
cmp eax, r13d
jne 0x10004785b
lea rcx, [rsp + 0x188]
cmp qword [rsp + 0x1a0], 8
cmovae rcx, qword [rsp + 0x188]
cmp qword [rdi + 0x48], 8
jb 0x100047824
mov rdx, qword [rdi + 0x30]
jmp 0x100047828
lea rdx, [rdi + 0x30]
mov eax, dword [rsp + 0x198]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp qword [rsp + 0x1a0], 8
jb 0x100047873
mov rcx, qword [rsp + 0x188]
call fcn.100001218
mov qword [rsp + 0x1a0], 7
mov qword [rsp + 0x198], r13
mov word [rsp + 0x188], r13w
lea rax, [rsp + 0x118]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x90]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x90], r14
lea rcx, [rsp + 0x98]
call fcn.100024ad4
nop
mov rax, qword [rsp + 0x90]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x90], r15
lea rax, vtable.std::ios_base.0
mov qword [rsp + 0x118], rax
lea rcx, [rsp + 0x118]
call fcn.10002784c
nop
jmp 0x1000160f1
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call fcn.10008b108
jmp 0x100016141