Function at 0x412620
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4df3c0
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x524a60]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push str._RemoveFromInstallList
call fcn.00433e30
mov ecx, dword [0x52a958]
add esp, 4
call fcn.00418d40
mov eax, dword [eax + 4]
sub eax, 0x10
push eax
call fcn.00404230
mov ebx, eax
add esp, 4
lea esi, [ebx + 0x10]
mov dword [ebp - 0x2c], esi
mov dword [ebp - 4], 0
call fcn.004045a0
mov ecx, eax
test ecx, ecx
je 0x4128f8
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
mov byte [ebp - 4], 1
push str.SOFTWARELDSLiteGameBox
push eax
call fcn.00407c50
add esp, 8
call fcn.004045a0
mov ecx, eax
test ecx, ecx
je 0x412902
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1c], eax
push esi
lea eax, [ebp - 0x1c]
mov byte [ebp - 4], 2
push 0x4eb7ac
push eax
call fcn.00407c50
mov esi, dword [ebp - 0x20]
lea eax, [ebp - 0x14]
push 0x4e8ad8
push str.InstalledGameIds
push esi
push reloc.gdiplus.dll_Ordinal_1
push eax
call fcn.00430130
add esp, 0x20
mov eax, dword [ebp - 0x14]
mov edi, dword [ebp - 0x1c]
mov byte [ebp - 4], 3
mov ecx, dword [eax - 0xc]
test ecx, ecx
je 0x4127fd
test edi, edi
je 0x4127fd
test ecx, ecx
js 0x4127fd
push edi
push eax
call fcn.004b125d
mov ecx, eax
add esp, 8
mov eax, dword [ebp - 0x14]
test ecx, ecx
je 0x4127fd
sub ecx, eax
sar ecx, 1
js 0x4127fd
mov edx, dword [edi - 0xc]
xor esi, esi
add ecx, 1
cmovns esi, ecx
xor ecx, ecx
sub edx, 1
mov dword [ebp - 0x24], esi
cmovns ecx, edx
mov edx, dword [eax - 0xc]
mov dword [ebp - 0x10], ecx
mov ecx, Ordinal_1
sub ecx, dword [ebp - 0x10]
cmp ecx, esi
mov esi, dword [ebp - 0x20]
jl 0x412916
mov ecx, dword [ebp - 0x10]
mov edi, dword [ebp - 0x24]
add ecx, edi
cmp ecx, edx
jle 0x412783
mov ecx, edx
sub ecx, edi
mov dword [ebp - 0x10], ecx
jmp 0x412786
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x18], edx
sub dword [ebp - 0x18], edi
test ecx, ecx
jle 0x4127fd
sub edx, ecx
mov dword [ebp - 0x28], edx
mov edx, dword [ebp - 0x18]
sub edx, ecx
cmp dword [eax - 4], 1
mov dword [ebp - 0x18], edx
jle 0x4127b7
push dword [eax - 0xc]
lea ecx, [ebp - 0x14]
call fcn.004044d0
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
add ecx, edi
lea edx, [edx*2 + 2]
push edx
lea ecx, [eax + ecx*2]
push ecx
mov ecx, edi
push edx
lea eax, [eax + ecx*2]
push eax
call fcn.00413410
mov ecx, dword [ebp - 0x28]
add esp, 0x10
mov esi, dword [ebp - 0x20]
test ecx, ecx
js 0x41290c
mov eax, dword [ebp - 0x14]
cmp ecx, dword [eax - 8]
jg 0x41290c
mov dword [eax - 0xc], ecx
xor edx, edx
mov eax, dword [ebp - 0x14]
mov word [eax + ecx*2], dx
mov eax, dword [ebp - 0x14]
mov edx, 0x4eb814
mov ecx, eax
mov di, word [ecx]
cmp di, word [edx]
mov edi, dword [ebp - 0x1c]
jne 0x412837
cmp word [ecx], 0
je 0x412833
mov di, word [ecx + 2]
cmp di, word [edx + 2]
mov word [ebp - 0xe], di
mov edi, dword [ebp - 0x1c]
jne 0x412837
add ecx, 4
add edx, 4
cmp word [ebp - 0xe], 0
jne 0x412804
xor ecx, ecx
jmp 0x41283c
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x41285c
cmp dword [eax - 0xc], 0
je 0x41285c
push eax
push str.InstalledGameIds
push esi
push reloc.gdiplus.dll_Ordinal_1
call fcn.00430f40
add esp, 0x10
jmp 0x412868
push esi
push reloc.gdiplus.dll_Ordinal_1
call dword [sym.imp.SHLWAPI.dll_SHDeleteKeyW]
mov edx, dword [ebp - 0x14]
or ecx, 0xffffffff
mov byte [ebp - 4], 2
add edx, 0xfffffff0
mov eax, ecx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41288c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, ecx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x4128aa
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
mov byte [ebp - 4], 0
add esi, 0xfffffff0
mov eax, ecx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4128c8
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
or ecx, 0xffffffff
mov dword [ebp - 4], 0xffffffff
lock xadd dword [ebx + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x4128e1
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00403f90
push 0x80004005
call fcn.00403f90
push 0x80070057
call fcn.00403f90
push 0x80070216
call fcn.00403f90
int3