Function at 0x10003967
Capabilities:
Set registry value

Disassembly:
push 0x10
mov eax, 0x100150da
call fcn.10013ae5
mov esi, ecx
mov dword [ebp - 0x1c], esi
call fcn.10001479
push eax
lea ecx, [ebp - 0x10]
call fcn.10001710
push ecx
xor ebx, ebx
lea eax, [ebp - 0x18]
mov dword [ebp - 4], ebx
mov edx, dword [0x1001f13c]
push eax
push ecx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
call fcn.100021cb
add esp, 0xc
mov edi, 0x80000001
cmp dword [ebp - 0x18], ebx
je 0x10003a2e
push ecx
push ecx
push str.nthp_prev
push dword [0x1001f150]
lea edx, [edi + 1]
lea ecx, [ebp - 0x18]
call fcn.100020e4
add esp, 0x10
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.100022db
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.1000145d
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], ebx
je 0x10003a2e
push 0x1001ac48
lea ecx, [ebp - 0x10]
call fcn.100026a8
mov ecx, dword [ebp - 0x14]
test eax, eax
mov edx, dword [0x1001f13c]
push 1
pop eax
cmove ecx, eax
lea eax, [ebp - 0x14]
push ecx
push 4
push eax
mov dword [ebp - 0x14], ecx
mov ecx, edi
push 4
push str.nthp_prev
call fcn.1000227a
add esp, 0x14
lea ecx, [ebp - 0x10]
call fcn.10001a71
push ecx
push ecx
push str.nthp_stw
push dword [0x1001f13c]
mov edx, edi
lea ecx, [ebp - 0x18]
call fcn.100020e4
mov ecx, dword [ebp - 0x18]
add esp, 0x10
mov eax, dword [eax]
cmp dword [eax - 0xc], 0
sete bl
add ecx, 0xfffffff0
call fcn.1000145d
test bl, bl
je 0x10003acb
push ecx
push ecx
mov ebx, str.nthp_stw
lea ecx, [ebp - 0x18]
push ebx
push dword [0x1001f150]
mov edx, 0x80000002
call fcn.100020e4
add esp, 0x10
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.100022db
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.1000145d
mov eax, dword [ebp - 0x10]
mov edx, dword [eax - 0xc]
test edx, edx
je 0x10003acb
push ecx
lea edx, [edx*2 + 2]
mov ecx, edi
push edx
mov edx, dword [0x1001f13c]
push eax
xor eax, eax
inc eax
push eax
push ebx
call fcn.1000227a
add esp, 0x14
lea ecx, [ebp - 0x10]
call fcn.10001a71
push ecx
push ecx
push str.nthp
push dword [0x1001f150]
mov edx, 0x80000002
lea ecx, [ebp - 0x18]
call fcn.100020e4
add esp, 0x10
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 3
call fcn.100022db
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.1000145d
mov eax, dword [ebp - 0x10]
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [eax - 0xc], 0
je 0x10003b6e
push ecx
push 0x1001ac40
lea ecx, [ebp - 0x10]
call fcn.100023e2
mov ebx, 0x1001ac48
cmp eax, 0xffffffff
jne 0x10003b3f
push ecx
push ebx
lea ecx, [ebp - 0x10]
call fcn.100023e2
cmp eax, 0xffffffff
jne 0x10003b3f
mov ebx, 0x1001a854
mov ecx, ebx
call fcn.10001739
push eax
push ebx
lea ecx, [ebp - 0x10]
call fcn.10001984
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax - 0xc]
lea ecx, [ecx*2 + 2]
push ecx
push eax
xor eax, eax
inc eax
push eax
push 0
push str.nthp_ie
push dword [esi]
call edi
mov ebx, 0x1001ac48
mov ecx, ebx
call fcn.10001739
push eax
push ebx
lea ecx, [ebp - 0x10]
call fcn.10001984
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
mov eax, dword [esi - 0xc]
lea eax, [eax*2 + 2]
push eax
push esi
xor eax, eax
inc eax
push eax
push 0
push str.nthp_ff
push dword [ebx]
call edi
mov eax, dword [esi - 0xc]
lea eax, [eax*2 + 2]
push eax
push esi
xor eax, eax
inc eax
push eax
push 0
push str.nthp_cr
push dword [ebx]
call edi
lea ecx, [esi - 0x10]
call fcn.1000145d
xor eax, eax
call fcn.10013ac2
ret