Function at 0x100046a7c
Capabilities:
Set registry value

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], rdi
push r12
push r13
push r14
sub rsp, 0x70
mov r13, r8
mov r14, rdx
mov rcx, qword [0x100153eb8]
lea rax, [0x100153eb8]
mov r12d, 5
cmp rcx, rax
je 0x100046ae3
test byte [rcx + 0x1c], 1
je 0x100046ae3
cmp byte [rcx + 0x19], r12b
jb 0x100046ae3
mov rax, qword [r8]
mov r9, qword [r14]
mov rcx, qword [rcx + 0x10]
lea r8, [0x10001e5a0]
mov edx, 0xfd
mov qword [r11 - 0x68], rax
call fcn.10003b3bc
xor esi, esi
xor ebp, ebp
lea r8, [0x10001fa10]
and qword [rsp + 0x38], rsi
and qword [rsp + 0x30], rsi
and qword [rsp + 0x58], rsi
and qword [rsp + 0x60], rsi
and qword [rsp + 0x68], rsi
and qword [rsp + 0x48], rsi
and qword [rsp + 0x50], rsi
lea rcx, [rsp + 0x58]
xor r9d, r9d
mov rdx, 0xffffffff80000002
mov dword [rsp + 0x28], 0x2011f
and dword [rsp + 0x20], esi
mov qword [rsp + 0x40], rbp
call fcn.10004f55c
mov ebx, eax
mov r10, qword [0x100153eb8]
lea rax, [0x100153eb8]
lea edi, [rsi + 2]
cmp r10, rax
je 0x100046b84
test byte [r10 + 0x1c], dil
je 0x100046b84
movzx edx, byte [r10 + 0x19]
test ebx, ebx
mov eax, edi
cmove eax, r12d
cmp edx, eax
jl 0x100046b84
mov rcx, qword [r10 + 0x10]
lea r8, [0x10001e5a0]
mov edx, 0xfe
mov r9d, ebx
call fcn.100036510
mov r10, qword [0x100153eb8]
mov r12, qword [rsp + 0x58]
test ebx, ebx
jne 0x100046cb3
and qword [rsp + 0x38], rsi
and qword [rsp + 0x30], rsi
mov r8, qword [r14]
lea rcx, [rsp + 0x40]
xor r9d, r9d
mov rdx, r12
mov dword [rsp + 0x28], 0x2011f
and dword [rsp + 0x20], esi
call fcn.10004f55c
mov ebx, eax
mov r10, qword [0x100153eb8]
lea rax, [0x100153eb8]
mov r14d, 5
cmp r10, rax
je 0x100046c0b
test byte [r10 + 0x1c], dil
je 0x100046c0b
movzx ecx, byte [r10 + 0x19]
test ebx, ebx
mov eax, edi
cmove eax, r14d
cmp ecx, eax
jl 0x100046c0b
mov rcx, qword [r10 + 0x10]
lea r8, [0x10001e5a0]
mov edx, 0xff
mov r9d, ebx
call fcn.100036510
mov r10, qword [0x100153eb8]
test ebx, ebx
jne 0x100046cac
mov rbx, qword [r13]
test rbx, rbx
jne 0x100046c27
mov ecx, 0x80004005
call fcn.100036284
int3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rbp, qword [rsp + 0x40]
lea rdx, [0x10001fa90]
lea eax, [rax + rax + 2]
mov r9d, 1
xor r8d, r8d
mov dword [rsp + 0x28], eax
mov rcx, rbp
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ebx, eax
mov r10, qword [0x100153eb8]
lea r13, [0x100153eb8]
cmp r10, r13
je 0x100046ca6
test byte [r10 + 0x1c], dil
je 0x100046ca6
movzx ecx, byte [r10 + 0x19]
test ebx, ebx
mov eax, edi
cmove eax, r14d
cmp ecx, eax
jl 0x100046ca6
mov rcx, qword [r10 + 0x10]
lea r8, [0x10001e5a0]
mov edx, 0x100
mov r9d, ebx
call fcn.100036510
mov r10, qword [0x100153eb8]
test ebx, ebx
je 0x100046cd8
jmp 0x100046cc0
mov rbp, qword [rsp + 0x40]
jmp 0x100046cb9
mov r14d, 5
lea r13, [0x100153eb8]
movzx esi, bx
mov eax, 0x80004005
or esi, 0x80070000
test ebx, ebx
cmovle esi, ebx
test esi, esi
cmovns esi, eax
cmp r10, r13
je 0x100046d0b
test byte [r10 + 0x1c], 1
je 0x100046d0b
movzx eax, byte [r10 + 0x19]
test esi, esi
cmovns edi, r14d
cmp eax, edi
jl 0x100046d0b
mov rcx, qword [r10 + 0x10]
lea r8, [0x10001e5a0]
mov edx, 0x101
mov r9d, esi
call fcn.100036510
test rbp, rbp
je 0x100046d19
mov rcx, rbp
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test r12, r12
je 0x100046d27
mov rcx, r12
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea r11, [rsp + 0x70]
mov eax, esi
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop r13
pop r12
ret