Function at 0x44783c
Capabilities:
Set registry value

Disassembly:
push ebp
lea ebp, [esp - 0x1928]
mov eax, 0x19a8
call fcn.00476b30
mov eax, dword [0x4f3bd0]
xor eax, ebp
mov dword [ebp + 0x1924], eax
push esi
mov dword [ebp - 0x7c], ecx
mov ecx, dword [0x4f7b88]
xor esi, esi
cmp ecx, esi
jne 0x447872
xor eax, eax
jmp 0x447b6a
push edi
call fcn.0043a6c5
mov edi, eax
cmp edi, esi
jne 0x447885
xor eax, eax
jmp 0x447b69
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.00475410
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 0x4478c7
xor eax, eax
jmp 0x447b68
push 0x800
lea eax, [ebp - 0x6c]
push esi
push eax
call fcn.00475410
mov eax, dword [edi]
add esp, 0xc
push ebx
lea ecx, [ebp - 0x6c]
push ecx
push edi
call dword [eax + 0x4c]
mov ecx, dword [0x4f7b88]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], esi
call fcn.0045e797
cmp eax, esi
je 0x4479d3
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
test eax, eax
je 0x4479d3
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 0x447937
cmp dword [ebp - 0x70], esi
je 0x44796a
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 0x44795f
mov dword [ebp - 0x74], 1
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jmp 0x44796d
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 0x447999
cmp dword [ebp - 0x70], esi
je 0x4479c7
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 0x4479be
mov dword [ebp - 0x78], 1
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x74], esi
je 0x4479d6
cmp dword [ebp - 0x78], esi
jne 0x4479f6
jmp 0x4479d6
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.00475410
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.00475410
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 [0x4f7b88]
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x78], esi
call fcn.0045e797
cmp eax, esi
je 0x447b3b
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
test eax, eax
je 0x447b3b
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 0x447a9f
cmp dword [ebp - 0x70], esi
je 0x447ad7
lea eax, [ebp + 0x794]
push eax
call fcn.00475eae
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 0x447ace
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 0x447afb
cmp dword [ebp - 0x70], esi
je 0x447b31
lea eax, [ebp + 0x794]
push eax
call fcn.00475eae
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 0x447b28
mov dword [ebp - 0x78], edi
push dword [ebp - 0x70]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x74], esi
je 0x447b3b
cmp dword [ebp - 0x78], esi
jne 0x447b65
lea eax, [ebp + 0x794]
push eax
call fcn.00475eae
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.0047548a
add ebp, 0x1928
leave
ret