Function at 0x47c270
Capabilities:
Delete registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x521590
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x56f790]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], ecx
call fcn.0040ed70
mov ecx, eax
call fcn.0040caa0
test eax, eax
je 0x47c68b
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x10]
cmp dword [eax - 0xc], 0
je 0x47c68b
mov eax, dword [esi + 0xc]
cmp dword [eax - 0xc], 0
je 0x47c68b
push str.CInstaller::_DoBuyTryPushAfterInstall
call fcn.00441a80
lea eax, [ebp - 0x14]
push eax
call fcn.00438f40
add esp, 8
mov edi, dword [esi]
mov dword [ebp - 4], 0
cmp dword [edi - 0xc], 0
je 0x47c332
test edi, edi
je 0x47c69f
mov eax, dword [ebp - 0x14]
mov ecx, edi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47c326
test dx, dx
je 0x47c322
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47c326
add eax, 4
add ecx, 4
test dx, dx
jne 0x47c300
xor eax, eax
jmp 0x47c32b
sbb eax, eax
or eax, 1
shr eax, 0x1f
test al, al
jne 0x47c375
mov eax, dword [esi + 4]
cmp dword [eax - 0xc], 0
je 0x47c38e
test eax, eax
je 0x47c6a9
mov ecx, dword [ebp - 0x14]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x47c36c
test dx, dx
je 0x47c368
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x47c36c
add ecx, 4
add eax, 4
test dx, dx
jne 0x47c346
xor eax, eax
jmp 0x47c371
sbb eax, eax
or eax, 1
test eax, eax
jle 0x47c38e
push dword [ebp - 0x14]
push dword [esi + 4]
push edi
push str.CInstaller::_DoSetupPush__out_of_time_range__s_____s__now__s
call fcn.00441aa0
add esp, 0x10
jmp 0x47c669
cmp dword [esi + 0x1c], 0
mov ebx, dword [ebp + 0xc]
jne 0x47c3a1
cmp dword [esi + 0x20], 0
je 0x47c4c3
call fcn.00410b40
mov ecx, eax
test ecx, ecx
je 0x47c6b3
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp + 8], eax
mov eax, dword [esi + 0x14]
mov edi, dword [ebp - 0x10]
mov byte [ebp - 4], 1
cmp dword [eax - 0xc], 0
je 0x47c471
push esi
lea eax, [ebp + 0xc]
mov ecx, edi
push eax
call fcn.0047c860
push eax
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
call fcn.00408360
mov edx, dword [ebp + 0xc]
or eax, 0xffffffff
mov byte [ebp - 4], 1
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c407
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp + 8]
cmp dword [eax - 0xc], 0
jne 0x47c471
push str.down_ico_fail
lea ecx, [ebp - 0x18]
call fcn.004093d0
push str.install
lea ecx, [ebp + 0xc]
mov byte [ebp - 4], 3
call fcn.004093d0
sub esp, 0x28
mov eax, esp
mov dword [ebp - 0x1c], esp
mov dword [eax + 0x24], 0
push 0
push 0
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 5
push eax
lea eax, [ebp + 0xc]
push eax
call fcn.0046f0b0
mov ecx, eax
mov byte [ebp - 4], 4
call fcn.00470670
lea ecx, [ebp + 0xc]
call fcn.00408250
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.00408250
cmp dword [esi + 0x20], 0
je 0x47c492
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0047b090
test eax, eax
je 0x47c492
lea eax, [esi + 0xc]
mov ecx, ebx
push eax
call fcn.00408360
cmp dword [esi + 0x1c], 0
je 0x47c4a4
lea eax, [ebp + 8]
mov ecx, edi
push eax
push esi
call fcn.0047b330
mov edx, dword [ebp + 8]
or eax, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c4c3
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esi + 0x34]
cmp dword [edi - 0xc], 0
je 0x47c648
mov ecx, 0x539fe8
mov eax, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x47c4fd
test dx, dx
je 0x47c4f9
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x47c4fd
add eax, 4
add ecx, 4
test dx, dx
jne 0x47c4d7
xor eax, eax
jmp 0x47c502
sbb eax, eax
or eax, 1
test eax, eax
jne 0x47c575
lea eax, [ebp + 8]
push eax
call fcn.0040ed70
mov ecx, eax
call fcn.0040af70
mov eax, dword [eax]
test eax, eax
je 0x47c6bd
mov ecx, dword [ebx]
mov dx, word [ecx]
cmp dx, word [eax]
jne 0x47c548
test dx, dx
je 0x47c544
mov dx, word [ecx + 2]
cmp dx, word [eax + 2]
jne 0x47c548
add ecx, 4
add eax, 4
test dx, dx
jne 0x47c522
xor edi, edi
jmp 0x47c54d
sbb edi, edi
or edi, 1
lea ecx, [ebp + 8]
call fcn.00408250
mov ebx, dword [ebp - 0x10]
test edi, edi
je 0x47c64b
lea eax, [ebx + 0xd0]
mov ecx, ebx
push eax
push 0
call fcn.00477f50
jmp 0x47c64b
push edi
push 0x539fec
push 0x52ed34
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0043e0c0
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x1c]
sub eax, 0x10
push eax
call fcn.004088a0
add eax, 0x10
add esp, 0x14
mov dword [ebp + 8], eax
push 4
push str._dsk
lea ecx, [ebp + 8]
mov byte [ebp - 4], 6
call fcn.0040ad10
push dword [ebp + 8]
push str.DelayCreateIconFrom
push 0x52ed34
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0043e0c0
add esp, 0x10
call fcn.0040ed70
mov ecx, eax
call fcn.0040cb00
test eax, eax
je 0x47c61c
call fcn.0040ed70
mov ecx, eax
call fcn.0040b120
push eax
lea ecx, [ebp + 0xc]
call fcn.0041d580
push dword [ebp + 0xc]
mov byte [ebp - 4], 7
push str.DelayCreateIconEmbedPID
push 0x52ed34
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.0043e0c0
add esp, 0x10
lea ecx, [ebp + 0xc]
call fcn.00408250
jmp 0x47c631
push str.DelayCreateIconEmbedPID
push 0x52ed34
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHDeleteValueW]
mov eax, dword [ebp + 0x10]
lea ecx, [ebp + 8]
mov byte [ebp - 4], 0
mov dword [eax], 1
call fcn.00408250
jmp 0x47c64b
mov ebx, dword [ebp - 0x10]
cmp dword [esi + 0x30], 0
je 0x47c669
add esi, 0x38
push 0
mov ecx, esi
call fcn.0050d050
test eax, eax
je 0x47c669
push esi
mov ecx, ebx
call fcn.0047cdf0
mov edx, dword [ebp - 0x14]
or eax, 0xffffffff
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x47c68b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
push 0x80004005
call fcn.00404400
push 0x80004005
call fcn.00404400
push 0x80004005
call fcn.00404400
push 0x80004005
call fcn.00404400
int3