Function at 0x447bbf
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1928]
mov eax, 0x19a8
call fcn.004760e0
mov eax, dword [0x4f2be0]
xor eax, ebp
mov dword [ebp + 0x1924], eax
push esi
mov dword [ebp - 0x7c], ecx
mov ecx, dword [0x4f6a6c]
xor esi, esi
cmp ecx, esi
jne 0x447bf5
xor eax, eax
jmp 0x447eed
push edi
call fcn.0045e3af
mov edi, eax
cmp edi, esi
jne 0x447c08
xor eax, eax
jmp 0x447eec
mov eax, dword [edi]
push ebx
push edi
call dword [eax + 0x44]
push 0x800
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0xf94]
push esi
push eax
call fcn.00474a10
mov eax, dword [edi]
add esp, 0xc
mov ebx, 0x400
push ebx
lea ecx, [ebp + 0xf94]
push ecx
push edi
call dword [eax + 0x48]
cmp word [ebp + 0xf94], si
jne 0x447c4a
xor eax, eax
jmp 0x447eeb
push 0x800
lea eax, [ebp - 0x6c]
push esi
push eax
call fcn.00474a10
mov eax, dword [edi]
add esp, 0xc
push ebx
lea ecx, [ebp - 0x6c]
push ecx
push edi
call dword [eax + 0x4c]
mov ecx, dword [0x4f6a6c]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], esi
call fcn.0045e455
cmp eax, esi
je 0x447d56
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
test eax, eax
je 0x447d56
push esi
lea eax, [ebp - 0x70]
push eax
push esi
push 0x102
push esi
push esi
push esi
lea eax, [ebp + 0xf94]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x70], esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x447cba
cmp dword [ebp - 0x70], esi
je 0x447ced
mov ebx, dword [ebp - 0x7c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push esi
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x447ce2
mov dword [ebp - 0x74], 1
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x447cf0
mov ebx, dword [ebp - 0x7c]
push esi
lea eax, [ebp - 0x70]
push eax
push esi
push 0x202
push esi
push esi
push esi
lea eax, [ebp + 0xf94]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [ebp - 0x70], esi
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
je 0x447d1c
cmp dword [ebp - 0x70], esi
je 0x447d4a
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
push esi
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x447d41
mov dword [ebp - 0x78], 1
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x74], esi
je 0x447d59
cmp dword [ebp - 0x78], esi
jne 0x447d79
jmp 0x447d59
mov ebx, dword [ebp - 0x7c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [eax - 0xc]
add ecx, ecx
push ecx
push eax
push 1
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp + 0xf94]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
push 0x190
lea eax, [ebp + 0x1794]
push esi
push eax
call fcn.00474a10
mov eax, dword [edi]
add esp, 0xc
push 0xc8
lea ecx, [ebp + 0x1794]
push ecx
push edi
call dword [eax + 0x3c]
push 0x800
lea eax, [ebp + 0x794]
push esi
push eax
call fcn.00474a10
add esp, 0xc
lea eax, [ebp + 0x1794]
push eax
push dword [ebx + 0xc]
lea eax, [ebp + 0x794]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov ecx, dword [0x4f6a6c]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], esi
call fcn.0045e455
cmp eax, esi
je 0x447ebe
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
test eax, eax
je 0x447ebe
mov edi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push esi
lea eax, [ebp - 0x70]
push eax
push esi
push 0x102
push esi
push esi
push esi
lea eax, [ebp + 0xf94]
push eax
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
push ebx
mov dword [ebp - 0x70], esi
call edi
test eax, eax
je 0x447e22
cmp dword [ebp - 0x70], esi
je 0x447e5a
lea eax, [ebp + 0x794]
push eax
call fcn.004754ae
pop ecx
add eax, eax
push eax
lea eax, [ebp + 0x794]
push eax
push 1
push esi
push esi
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x447e51
mov dword [ebp - 0x74], 1
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
lea eax, [ebp - 0x70]
push eax
push esi
push 0x202
push esi
push esi
push esi
lea eax, [ebp + 0xf94]
push eax
push ebx
mov dword [ebp - 0x70], esi
call edi
test eax, eax
je 0x447e7e
cmp dword [ebp - 0x70], esi
je 0x447eb4
lea eax, [ebp + 0x794]
push eax
call fcn.004754ae
pop ecx
add eax, eax
push eax
lea eax, [ebp + 0x794]
push eax
xor edi, edi
inc edi
push edi
push esi
push esi
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x447eab
mov dword [ebp - 0x78], edi
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x74], esi
je 0x447ebe
cmp dword [ebp - 0x78], esi
jne 0x447ee8
lea eax, [ebp + 0x794]
push eax
call fcn.004754ae
pop ecx
add eax, eax
push eax
lea eax, [ebp + 0x794]
push eax
push 1
push esi
lea eax, [ebp + 0xf94]
push eax
push dword [ebp - 0x80]
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
xor eax, eax
inc eax
pop ebx
pop edi
mov ecx, dword [ebp + 0x1924]
xor ecx, ebp
pop esi
call fcn.00474a8a
add ebp, 0x1928
leave
ret