Function at 0x42b700
Capabilities:
Get installed programs
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x499502
mov eax, dword fs:[0]
push eax
sub esp, 0x4d4
mov eax, dword [0x4c606c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4c4], edx
mov esi, ecx
push 0x33
xor eax, eax
mov dword [ebp - 0x498], 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [ebp - 0x4a8]
mov dword [ebp - 0x494], 7
mov word [ebp - 0x4a8], ax
call fcn.00407680
mov dword [ebp - 4], 0
lea eax, [ebp - 0x4b8]
push dword [ebp - 0x4c4]
xorps xmm0, xmm0
mov dword [ebp - 0x418], 0
push eax
lea eax, [ebp - 0x4c0]
movq qword [ebp - 0x420], xmm0
push eax
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x4c0], 0x20119
mov dword [ebp - 0x4bc], 0x20219
mov dword [ebp - 0x420], 0
mov dword [ebp - 0x41c], 0
mov dword [ebp - 0x418], 0
call fcn.00434ad0
xor eax, eax
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x47c], 7
mov word [ebp - 0x490], ax
mov byte [ebp - 4], 3
sub esi, eax
je 0x42b84e
sub esi, 1
je 0x42b833
sub esi, 1
jne 0x42b872
push 0xf
push str.Mozilla_Firefox
lea ecx, [ebp - 0x438]
call fcn.00407680
push 0xb
push str.firefox.exe
jmp 0x42b867
push 0xd
push str.Google_Chrome
lea ecx, [ebp - 0x438]
call fcn.00407680
push 0xa
push str.chrome.exe
jmp 0x42b867
push 0xe
push str.Microsoft_Edge
lea ecx, [ebp - 0x438]
call fcn.00407680
push 0xa
push str.msedge.exe
lea ecx, [ebp - 0x490]
call fcn.00407680
mov esi, dword [ebp - 0x420]
mov ebx, esi
mov edi, dword [ebp - 0x41c]
mov dword [ebp - 0x4b8], ebx
cmp ebx, edi
je 0x42bd76
nop
cmp dword [ebp - 0x494], 8
lea ecx, [ebp - 0x4ac]
push ecx
push dword [ebx]
lea eax, [ebp - 0x4a8]
mov dword [ebp - 0x4ac], 0
cmovae eax, dword [ebp - 0x4a8]
push 0
push eax
push 0x80000002
mov dword [ebp - 0x454], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42bd5f
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x454]
push eax
push 0
push 0
push 0
push dword [ebp - 0x4ac]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x42bd53
push 0x200
push eax
lea eax, [ebp - 0x210]
push eax
call fcn.00472130
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x4b4], eax
cmp dword [ebp - 0x454], eax
jbe 0x42bd53
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x470]
mov dword [ebp - 0x470], 0xff
push ecx
lea ecx, [ebp - 0x210]
push ecx
push eax
push dword [ebp - 0x4ac]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x42bd2e
mov dword [ebp - 0x4b0], eax
mov eax, dword [ebp - 0x470]
add eax, eax
cmp eax, 0x200
jae 0x42c0f4
xor ecx, ecx
mov dword [ebp - 0x43c], 7
mov word [ebp + eax - 0x210], cx
xor eax, eax
mov dword [ebp - 0x440], ecx
lea ecx, [ebp - 0x210]
mov word [ebp - 0x450], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42b9a2
sub ecx, edx
lea eax, [ebp - 0x210]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x450]
call fcn.00407680
mov byte [ebp - 4], 4
lea eax, [ebp - 0x450]
cmp dword [ebp - 0x43c], 8
lea ecx, [ebp - 0x450]
mov ebx, dword [ebp - 0x450]
lea esi, [ebp - 0x450]
cmovae eax, ebx
cmovae ecx, ebx
mov dword [ebp - 0x474], eax
cmovae esi, ebx
mov eax, dword [ebp - 0x440]
xor edx, edx
xor edi, edi
lea eax, [ecx + eax*2]
mov ecx, eax
sub ecx, esi
inc ecx
shr ecx, 1
cmp esi, eax
cmova ecx, edx
mov dword [ebp - 0x414], ecx
test ecx, ecx
je 0x42ba43
mov ebx, dword [ebp - 0x474]
sub ebx, esi
movzx eax, word [esi]
push eax
call fcn.00479cbe
inc edi
mov word [ebx + esi], ax
add esp, 4
lea esi, [esi + 2]
cmp edi, dword [ebp - 0x414]
jne 0x42ba21
mov ebx, dword [ebp - 0x450]
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
mov edi, dword [ebp - 0x438]
lea edx, [ebp - 0x438]
mov esi, dword [ebp - 0x428]
cmovae eax, edi
cmovae edx, edi
lea eax, [eax + esi*2]
lea esi, [ebp - 0x438]
mov ecx, eax
cmovae esi, edi
xor edi, edi
sub ecx, esi
inc ecx
shr ecx, 1
cmp esi, eax
cmova ecx, edi
test ecx, ecx
je 0x42bab5
sub edx, esi
mov ebx, ecx
mov dword [ebp - 0x474], edx
movzx eax, word [esi]
push eax
call fcn.00479cbe
mov ecx, dword [ebp - 0x474]
lea esi, [esi + 2]
inc edi
add esp, 4
mov word [esi + ecx - 2], ax
cmp edi, ebx
jne 0x42ba90
mov ebx, dword [ebp - 0x450]
cmp dword [ebp - 0x424], 8
lea eax, [ebp - 0x438]
push dword [ebp - 0x428]
cmovae eax, dword [ebp - 0x438]
lea ecx, [ebp - 0x450]
mov esi, dword [ebp - 0x43c]
cmp esi, 8
mov edx, dword [ebp - 0x440]
push eax
cmovae ecx, ebx
push 0
call fcn.00435050
add esp, 0xc
cmp eax, 0xffffffff
je 0x42bcf6
lea ecx, [ebp - 0x4b0]
cmp esi, 8
push ecx
push 0x20019
lea eax, [ebp - 0x450]
push 0
cmovae eax, ebx
push eax
push dword [ebp - 0x4ac]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x42bcea
push 0x200
push eax
lea eax, [ebp - 0x410]
push eax
call fcn.00472130
add esp, 0xc
mov dword [ebp - 0x414], 0x1fe
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0x410]
push eax
push 0
push 0
push str.InstallLocation
push dword [ebp - 0x4b0]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x42bcde
push 0x4cb724
push 0x415470
push 0x4cb72c
call fcn.0045691e
add esp, 0xc
test eax, eax
je 0x42c0ef
xor eax, eax
mov dword [ebp - 0x45c], 0
lea ecx, [ebp - 0x410]
mov dword [ebp - 0x458], 7
mov word [ebp - 0x46c], ax
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x42bbc0
sub ecx, edx
lea eax, [ebp - 0x410]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x46c]
call fcn.00407680
push 1
push 0x4b2e84
lea ecx, [ebp - 0x46c]
mov byte [ebp - 4], 5
call fcn.00414d40
cmp dword [ebp - 0x47c], 8
lea eax, [ebp - 0x490]
push dword [ebp - 0x480]
cmovae eax, dword [ebp - 0x490]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00414d40
mov byte [ebp - 0x4bc], 0
lea edx, [ebp - 0x46c]
push dword [ebp - 0x4bc]
lea ecx, [ebp - 0x4dc]
call fcn.00414020
add esp, 4
lea edx, [ebp - 0x478]
lea ecx, [ebp - 0x4dc]
call fcn.00437130
mov edx, dword [ebp - 0x4c8]
mov bl, al
cmp edx, 8
jb 0x42bc92
mov ecx, dword [ebp - 0x4dc]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bc88
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0d1
push edx
push ecx
call fcn.0045a3a4
add esp, 8
test bl, bl
jne 0x42bdb9
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x458]
cmp edx, 8
jb 0x42bcde
mov ecx, dword [ebp - 0x46c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bcd4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0d1
push edx
push ecx
call fcn.0045a3a4
add esp, 8
push dword [ebp - 0x4b0]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebp - 0x43c]
mov ebx, dword [ebp - 0x450]
mov byte [ebp - 4], 3
cmp esi, 8
jb 0x42bd2e
lea esi, [esi*2 + 2]
mov eax, ebx
cmp esi, 0x1000
jb 0x42bd24
mov ebx, dword [ebx - 4]
add esi, 0x23
sub eax, ebx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0d1
push esi
push ebx
call fcn.0045a3a4
add esp, 8
mov eax, dword [ebp - 0x4b4]
inc eax
mov dword [ebp - 0x4b4], eax
cmp eax, dword [ebp - 0x454]
jb 0x42b928
mov ebx, dword [ebp - 0x4b8]
mov edi, dword [ebp - 0x41c]
push dword [ebp - 0x4ac]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add ebx, 4
mov dword [ebp - 0x4b8], ebx
cmp ebx, edi
jne 0x42b890
mov esi, dword [ebp - 0x420]
mov edx, dword [ebp - 0x47c]
cmp edx, 8
jb 0x42bfde
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bfd4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0cc
jmp 0x42bfd4
mov ecx, dword [ebp - 0x4c4]
lea eax, [ebp - 0x46c]
cmp ecx, eax
je 0x42bde3
cmp dword [ebp - 0x458], 8
push dword [ebp - 0x45c]
cmovae eax, dword [ebp - 0x46c]
push eax
call fcn.00407680
push dword [ebp - 0x4b0]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call ebx
push dword [ebp - 0x4ac]
call ebx
mov edx, dword [ebp - 0x458]
cmp edx, 8
jb 0x42be39
mov ecx, dword [ebp - 0x46c]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42be2f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0d1
push edx
push ecx
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x43c]
xor eax, eax
mov dword [ebp - 0x45c], 0
mov dword [ebp - 0x458], 7
mov word [ebp - 0x46c], ax
cmp edx, 8
jb 0x42be96
mov ecx, dword [ebp - 0x450]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42be8c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0d6
push edx
push ecx
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x47c]
xor eax, eax
mov dword [ebp - 0x440], 0
mov dword [ebp - 0x43c], 7
mov word [ebp - 0x450], ax
cmp edx, 8
jb 0x42bef3
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bee9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0db
push edx
push ecx
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x424]
cmp edx, 8
jb 0x42bf33
mov ecx, dword [ebp - 0x438]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bf29
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0e0
push edx
push ecx
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x420]
xor eax, eax
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
test edx, edx
je 0x42bf8d
mov ecx, dword [ebp - 0x418]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x42bf83
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0e5
push ecx
push edx
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x494]
cmp edx, 8
jb 0x42bfcd
mov ecx, dword [ebp - 0x4a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42bfc3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0ea
push edx
push ecx
call fcn.0045a3a4
add esp, 8
mov al, 1
jmp 0x42c0b0
push edx
push ecx
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x424]
cmp edx, 8
jb 0x42c01e
mov ecx, dword [ebp - 0x438]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c014
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0f9
push edx
push ecx
call fcn.0045a3a4
add esp, 8
xor eax, eax
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
test esi, esi
je 0x42c072
mov ecx, dword [ebp - 0x418]
mov eax, esi
sub ecx, esi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x42c068
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c0fe
push ecx
push esi
call fcn.0045a3a4
add esp, 8
mov edx, dword [ebp - 0x494]
cmp edx, 8
jb 0x42c0ae
mov ecx, dword [ebp - 0x4a8]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x42c0a4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x42c103
push edx
push ecx
call fcn.0045a3a4
add esp, 8
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00459e83
mov esp, ebp
pop ebp
ret
call fcn.004750dc
call fcn.004750dc
call fcn.004750dc
call fcn.004750dc
call fcn.004750dc
call fcn.004750dc
call fcn.004750dc
call fcn.00477fb0
call fcn.0045a511
call fcn.004750dc
call fcn.004750dc
call fcn.004750dc
int3