Function at 0x40c843
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push dword [eax + 0x10]
xor edi, edi
xor esi, esi
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 8], edi
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
mov ebx, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
jbe 0x40c939
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x403a8c
lea ecx, [ebp - 8]
mov dword [ebp - 8], edi
call fcn.0040919e
mov esi, eax
cmp esi, edi
jl 0x40cb2d
lea ecx, [ebp - 8]
call fcn.0040d160
mov esi, eax
cmp esi, edi
jl 0x40cb2d
push 0x403aa4
lea ecx, [ebp - 8]
call fcn.0040919e
mov esi, eax
cmp esi, edi
jl 0x40cb2d
lea eax, [ebp - 4]
push eax
mov esi, 0x20006
push esi
push edi
push dword [ebp - 8]
push dword [ebp + 0xc]
call ebx
test eax, eax
lea eax, [ebp - 4]
push eax
push esi
push edi
push dword [ebp - 8]
push dword [ebp + 0xc]
jg 0x40c8e6
call ebx
mov esi, eax
jmp 0x40c8f6
call ebx
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x40cb2d
mov esi, dword [ebp + 8]
push dword [esi + 0x10]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
lea eax, [eax + eax + 2]
push eax
push dword [esi + 0x10]
push 1
push edi
push 0x403afc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
cmp esi, edi
jl 0x40cb2d
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], edi
mov eax, dword [ebp + 8]
push dword [eax + 0x1c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x40ca15
push dword [ebp - 8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
push 0x403a8c
lea ecx, [ebp - 8]
mov dword [ebp - 8], edi
call fcn.0040919e
mov esi, eax
cmp esi, edi
jl 0x40cb2d
lea ecx, [ebp - 8]
call fcn.0040d160
mov esi, eax
cmp esi, edi
jl 0x40cb2d
push 0x403ab4
lea ecx, [ebp - 8]
call fcn.0040919e
mov esi, eax
cmp esi, edi
jl 0x40cb2d
lea eax, [ebp - 4]
push eax
mov esi, 0x20006
push esi
push edi
push dword [ebp - 8]
push dword [ebp + 0xc]
call ebx
test eax, eax
lea eax, [ebp - 4]
push eax
push esi
push edi
push dword [ebp - 8]
push dword [ebp + 0xc]
jg 0x40c9c2
call ebx
mov esi, eax
jmp 0x40c9d2
call ebx
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x40cb2d
mov esi, dword [ebp + 8]
push dword [esi + 0x1c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
lea eax, [eax + eax + 2]
push eax
push dword [esi + 0x1c]
push 1
push edi
push 0x403afc
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
cmp esi, edi
jl 0x40cb2d
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], edi
mov eax, dword [ebp + 8]
push dword [eax + 0x2c]
call dword [sym.imp.OLEAUT32.dll_VariantInit]
test eax, eax
jbe 0x40cb2d
lea eax, [ebp - 4]
push eax
mov esi, 0xf003f
push esi
push edi
push 0x403ac0
push dword [ebp + 0xc]
call ebx
test eax, eax
lea eax, [ebp - 4]
push eax
push esi
push edi
push 0x403ac0
push dword [ebp + 0xc]
jg 0x40ca56
call ebx
mov esi, eax
jmp 0x40ca66
call ebx
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x40cb2d
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x2c]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
push edi
lea ecx, [ebp - 0xc]
push ecx
push edi
push 0xf003f
push edi
push edi
push edi
push eax
push dword [ebp - 4]
call esi
push edi
lea ecx, [ebp - 0xc]
push ecx
push edi
push 0xf003f
push edi
push edi
push edi
test eax, eax
mov eax, dword [ebx + 0x2c]
push eax
push dword [ebp - 4]
jg 0x40caad
call esi
mov esi, eax
jmp 0x40cabd
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x40cb2d
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebx + 4]
mov dword [ebp - 4], edi
call dword [sym.imp.OLEAUT32.dll_VariantInit]
lea eax, [eax + eax + 2]
push eax
push dword [ebx + 4]
push 1
push edi
push 0x403b14
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
cmp esi, edi
jl 0x40cb2d
push dword [ebp - 0xc]
mov esi, dword [sym.imp.ADVAPI32.dll_RegFlushKey]
call esi
test eax, eax
push dword [ebp - 0xc]
jg 0x40cb0d
call esi
mov esi, eax
jmp 0x40cb1d
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
cmp esi, edi
jl 0x40cb2d
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 0xc], edi
cmp dword [ebp - 4], edi
je 0x40cb3b
push dword [ebp - 4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0xc], edi
je 0x40cb49
push dword [ebp - 0xc]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push dword [ebp - 8]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
pop edi
mov eax, esi
pop esi
pop ebx
leave
ret 8