Function at 0x140024320
Capabilities:
Set registry value

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xb8], rbx
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rbx, r8
mov rbp, rdx
mov r12, rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x48], rbx
xor r14d, r14d
mov r13d, r14d
mov rdi, r14
mov rcx, r8
call fcn.1400044c0
test rax, rax
je 0x1400243dd
mov rsi, r14
movabs r12, 0x6666666666666667
mov rax, qword [rbx + 8]
test rax, rax
je 0x1400243af
mov rcx, qword [rbx + 0x10]
sub rcx, rax
mov rax, r12
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdi, rdx
jb 0x1400243b5
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rax, qword [rbx + 8]
mov rax, qword [rsi + rax + 0x18]
lea r13d, [r13 + rax*2 + 2]
add rdi, 1
add rsi, 0x28
mov rcx, rbx
call fcn.1400044c0
cmp rdi, rax
jb 0x140024386
mov r12, qword [rsp + 0x38]
add r13d, 2
mov dword [rsp + 0x30], r13d
jne 0x14002447e
cmp qword [rbp + 0x20], 8
jb 0x1400243f9
mov rdx, qword [rbp + 8]
jmp 0x1400243fd
lea rdx, [rbp + 8]
mov dword [rsp + 0x28], r13d
lea rax, [0x1403b65c0]
mov qword [rsp + 0x20], rax
mov r9d, 7
xor r8d, r8d
mov rcx, qword [r12]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
je 0x140024687
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov rcx, rbp
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x14002446b
mov rsi, qword [rbx + 0x10]
cmp rdi, rsi
je 0x140024462
nop
mov rcx, rdi
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
add rdi, 0x28
cmp rdi, rsi
jne 0x140024450
mov rcx, qword [rbx + 8]
call sub.MFC80U.DLL_Ordinal_776
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
xor al, al
jmp 0x1400246cc
mov edx, r13d
mov ecx, 1
call qword [sym.imp.MSVCR80.dll_calloc]
mov r15, rax
test rax, rax
jne 0x1400244de
mov rcx, rbp
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x1400244cb
mov rsi, qword [rbx + 0x10]
cmp rdi, rsi
je 0x1400244c2
mov rcx, rdi
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
add rdi, 0x28
cmp rdi, rsi
jne 0x1400244b0
mov rcx, qword [rbx + 8]
call sub.MFC80U.DLL_Ordinal_776
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
xor al, al
jmp 0x1400246cc
xor esi, esi
mov rcx, rbx
call fcn.1400044c0
test rax, rax
je 0x1400245ea
xor edi, edi
movabs r13, 0x6666666666666667
nop
mov rax, qword [rbx + 8]
test rax, rax
je 0x140024529
mov rcx, qword [rbx + 0x10]
sub rcx, rax
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jb 0x14002452f
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rax, qword [rbx + 8]
mov r12, qword [rdi + rax + 0x18]
test rax, rax
je 0x14002455d
mov rcx, qword [rbx + 0x10]
sub rcx, rax
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jb 0x140024563
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rax, qword [rbx + 8]
cmp qword [rdi + rax + 0x20], 8
jb 0x140024576
mov rdx, qword [rdi + rax + 8]
jmp 0x14002457b
lea rdx, [rdi + rax + 8]
lea r8, [r12 + r12]
mov ecx, r14d
add rcx, r15
call sub.ntdll.dll_memcpy
mov r11, qword [rbx + 8]
test r11, r11
je 0x1400245b3
mov rcx, qword [rbx + 0x10]
sub rcx, r11
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jb 0x1400245b9
call qword [sym.imp.MSVCR80.dll__invalid_parameter_noinfo]
mov rax, qword [rbx + 8]
mov rax, qword [rdi + rax + 0x18]
lea r14d, [r14 + rax*2 + 2]
add rsi, 1
add rdi, 0x28
mov rcx, rbx
call fcn.1400044c0
cmp rsi, rax
jb 0x140024500
mov r13d, dword [rsp + 0x30]
mov r12, qword [rsp + 0x38]
cmp qword [rbp + 0x20], 8
jb 0x1400245f7
mov rdx, qword [rbp + 8]
jmp 0x1400245fb
lea rdx, [rbp + 8]
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r15
mov r9d, 7
xor r8d, r8d
mov rcx, qword [r12]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov edi, eax
test eax, eax
je 0x14002467b
mov rcx, r15
call qword [sym.imp.MSVCR80.dll_free]
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov rcx, rbp
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x14002466b
mov rsi, qword [rbx + 0x10]
cmp rdi, rsi
je 0x140024662
nop
mov rcx, rdi
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
add rdi, 0x28
cmp rdi, rsi
jne 0x140024650
mov rcx, qword [rbx + 8]
call sub.MFC80U.DLL_Ordinal_776
xor eax, eax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
jmp 0x1400246cc
mov rcx, r15
call qword [sym.imp.MSVCR80.dll_free]
xor r14d, r14d
mov rcx, rbp
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
nop
mov rdi, qword [rbx + 8]
test rdi, rdi
je 0x1400246be
mov rsi, qword [rbx + 0x10]
cmp rdi, rsi
je 0x1400246b5
mov rcx, rdi
call qword [sym.imp.MSVCP80.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void____ptr64]
add rdi, 0x28
cmp rdi, rsi
jne 0x1400246a3
mov rcx, qword [rbx + 8]
call sub.MFC80U.DLL_Ordinal_776
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
mov qword [rbx + 0x18], r14
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140161080
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret