Function at 0x140040830
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
mov eax, 0x22f0
call fcn.140055a40
sub rsp, rax
mov rax, qword [0x140065840]
xor rax, rsp
mov qword [rsp + 0x22e8], rax
xor eax, eax
mov word [rsp + 0x38], ax
mov dword [rsp + 0x34], 0
mov dword [rsp + 0x30], 0
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x2300]
call fcn.14003ece0
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jge 0x1400408a1
mov eax, dword [rsp + 0x3c]
jmp 0x140040da2
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x50]
call fcn.140040fa0
test eax, eax
jne 0x1400408cb
mov edx, 0x20f
mov rcx, qword [rsp + 0x2300]
call fcn.14003ebd0
jmp 0x140040da2
mov rcx, qword [rsp + 0x2300]
call fcn.14003ec50
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x2300]
call fcn.14003ece0
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jge 0x1400408fe
mov eax, dword [rsp + 0x3c]
jmp 0x140040da2
movzx eax, word [rsp + 0x38]
mov dword [rsp + 0x22d8], eax
cmp dword [rsp + 0x22d8], 8
je 0x140040942
cmp dword [rsp + 0x22d8], 0x11
je 0x140040bac
cmp dword [rsp + 0x22d8], 0x13
je 0x140040b2e
cmp dword [rsp + 0x22d8], 0x4008
je 0x14004096b
jmp 0x140040d60
mov r9d, 1
lea r8, [rsp + 0x50]
mov rdx, qword [rsp + 0x2310]
mov rcx, qword [rsp + 0x2308]
call fcn.140040e20
mov dword [rsp + 0x34], eax
jmp 0x140040d60
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 2
mov dword [rsp + 0x2160], eax
lea rcx, [rsp + 0x2050]
call fcn.140036b00
movsxd rdx, dword [rsp + 0x2160]
lea rcx, [rsp + 0x2050]
call fcn.140041f40
lea rcx, [rsp + 0x2050]
call fcn.1400326d0
test rax, rax
je 0x140040b14
lea rcx, [rsp + 0x2050]
call fcn.1400326d0
mov qword [rsp + 0x2168], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x2170], rax
mov dword [rsp + 0x2160], 0
mov rax, qword [rsp + 0x2170]
movzx eax, word [rax]
test eax, eax
je 0x140040abb
mov rcx, qword [rsp + 0x2170]
call qword [sym.imp.USER32.dll_CharNextW]
mov qword [rsp + 0x2178], rax
mov rax, qword [rsp + 0x2170]
movzx eax, word [rax]
cmp eax, 0x5c
jne 0x140040a67
mov rax, qword [rsp + 0x2178]
movzx eax, word [rax]
cmp eax, 0x30
jne 0x140040a67
xor ecx, ecx
mov rax, qword [rsp + 0x2168]
mov word [rax], cx
mov rax, qword [rsp + 0x2168]
add rax, 2
mov qword [rsp + 0x2168], rax
mov rcx, qword [rsp + 0x2178]
call qword [sym.imp.USER32.dll_CharNextW]
mov qword [rsp + 0x2170], rax
jmp 0x140040aa5
mov rcx, qword [rsp + 0x2168]
mov rax, qword [rsp + 0x2170]
movzx eax, word [rax]
mov word [rcx], ax
mov rax, qword [rsp + 0x2168]
add rax, 2
mov qword [rsp + 0x2168], rax
mov rax, qword [rsp + 0x2170]
add rax, 2
mov qword [rsp + 0x2170], rax
mov eax, dword [rsp + 0x2160]
add eax, 1
mov dword [rsp + 0x2160], eax
jmp 0x1400409e5
xor ecx, ecx
mov rax, qword [rsp + 0x2168]
mov word [rax], cx
mov rax, qword [rsp + 0x2168]
add rax, 2
mov qword [rsp + 0x2168], rax
xor ecx, ecx
mov rax, qword [rsp + 0x2168]
mov word [rax], cx
lea rcx, [rsp + 0x2050]
call fcn.1400326d0
mov r8, rax
mov rdx, qword [rsp + 0x2310]
mov rcx, qword [rsp + 0x2308]
call fcn.140040ec0
mov dword [rsp + 0x34], eax
jmp 0x140040b1c
mov dword [rsp + 0x34], 0xe
lea rcx, [rsp + 0x2050]
call fcn.140041f10
jmp 0x140040d60
call fcn.140010bc0
mov dword [rsp + 0x2198], eax
lea rcx, [rsp + 0x21a0]
call fcn.140036b00
mov edx, 0x400
lea rcx, [rsp + 0x50]
call fcn.14003de60
mov qword [rsp + 0x2190], rax
lea r9, [rsp + 0x21a8]
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x2190]
call qword [sym.imp.OLEAUT32.dll_VarUI4FromDisp]
mov r8d, dword [rsp + 0x21a8]
mov rdx, qword [rsp + 0x2310]
mov rcx, qword [rsp + 0x2308]
call fcn.140040dc0
mov dword [rsp + 0x34], eax
lea rcx, [rsp + 0x21a0]
call fcn.140041a70
jmp 0x140040d60
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [rsp + 0x21b0], eax
mov eax, dword [rsp + 0x21b0]
and eax, 1
test eax, eax
je 0x140040bd6
mov eax, 0x80004005
jmp 0x140040da2
mov eax, dword [rsp + 0x21b0]
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x21ac], eax
lea rcx, [rsp + 0x21c0]
call fcn.140036b00
movsxd rdx, dword [rsp + 0x21ac]
lea rcx, [rsp + 0x21c0]
call fcn.140041f70
lea rcx, [rsp + 0x21c0]
call fcn.1400326d0
test rax, rax
jne 0x140040c41
mov dword [rsp + 0x22d4], 0x80004005
lea rcx, [rsp + 0x21c0]
call fcn.140041f10
mov eax, dword [rsp + 0x22d4]
jmp 0x140040da2
movsxd rbx, dword [rsp + 0x21ac]
lea rcx, [rsp + 0x21c0]
call fcn.1400326d0
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.140044740
mov dword [rsp + 0x22d0], 0
jmp 0x140040c81
mov eax, dword [rsp + 0x22d0]
add eax, 1
mov dword [rsp + 0x22d0], eax
mov eax, dword [rsp + 0x21b0]
cmp dword [rsp + 0x22d0], eax
jge 0x140040d08
lea rcx, [rsp + 0x21c0]
call fcn.1400326d0
mov r11, rax
mov eax, dword [rsp + 0x22d0]
cdq
sub eax, edx
sar eax, 1
movsxd rcx, eax
mov rax, r11
add rax, rcx
mov qword [rsp + 0x22e0], rax
movsxd rax, dword [rsp + 0x22d0]
movzx ecx, word [rsp + rax*2 + 0x50]
call fcn.1400410b0
movzx edx, al
mov ecx, dword [rsp + 0x22d0]
and ecx, 1
mov eax, 1
sub eax, ecx
shl eax, 2
movzx ecx, al
shl edx, cl
mov rax, qword [rsp + 0x22e0]
movzx ecx, byte [rax]
or ecx, edx
mov rax, qword [rsp + 0x22e0]
mov byte [rax], cl
jmp 0x140040c70
lea rcx, [rsp + 0x21c0]
call fcn.1400326d0
mov rbx, rax
mov rcx, qword [rsp + 0x2308]
call fcn.1400326d0
mov rcx, rax
mov eax, dword [rsp + 0x21ac]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, 3
xor r8d, r8d
mov rdx, qword [rsp + 0x2310]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [rsp + 0x34], eax
lea rcx, [rsp + 0x21c0]
call fcn.140041f10
cmp dword [rsp + 0x34], 0
je 0x140040d7a
mov dword [rsp + 0x30], 0x204
mov ecx, dword [rsp + 0x34]
call fcn.1400404f0
jmp 0x140040da2
mov rdx, qword [rsp + 0x2318]
mov rcx, qword [rsp + 0x2300]
call fcn.14003ece0
mov dword [rsp + 0x3c], eax
cmp dword [rsp + 0x3c], 0
jge 0x140040da0
mov eax, dword [rsp + 0x3c]
jmp 0x140040da2
xor eax, eax
mov rcx, qword [rsp + 0x22e8]
xor rcx, rsp
call fcn.1400434f0
add rsp, 0x22f0
pop rbx
ret