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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b1f02
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x4e0
mov eax, dword [0x4e606c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x4d4], edx
mov esi, ecx
push 0x33
xor eax, eax
mov dword [ebp - 0x4a0], 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionUninstall
lea ecx, [ebp - 0x4b0]
mov dword [ebp - 0x49c], 7
mov word [ebp - 0x4b0], ax
call fcn.00407920
mov dword [ebp - 4], 0
lea eax, [ebp - 0x4c8]
push dword [ebp - 0x4d4]
xorps xmm0, xmm0
mov dword [ebp - 0x420], 0
push eax
lea eax, [ebp - 0x4d0]
movq qword [ebp - 0x428], xmm0
push eax
lea ecx, [ebp - 0x428]
mov dword [ebp - 0x4d0], 0x20119
mov dword [ebp - 0x4cc], 0x20219
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0
mov dword [ebp - 0x420], 0
call fcn.0043c000
xor eax, eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 7
mov word [ebp - 0x440], 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 0x432941
sub esi, 1
je 0x432926
sub esi, 1
jne 0x432965
push 0xf
push str.Mozilla_Firefox
lea ecx, [ebp - 0x440]
call fcn.00407920
push 0xb
push str.firefox.exe
jmp 0x43295a
push 0xd
push str.Google_Chrome
lea ecx, [ebp - 0x440]
call fcn.00407920
push 0xa
push str.chrome.exe
jmp 0x43295a
push 0xe
push str.Microsoft_Edge
lea ecx, [ebp - 0x440]
call fcn.00407920
push 0xa
push str.msedge.exe
lea ecx, [ebp - 0x490]
call fcn.00407920
mov edi, dword [ebp - 0x428]
mov esi, edi
mov dword [ebp - 0x4c8], edi
cmp esi, dword [ebp - 0x424]
je 0x432e8e
nop
cmp dword [ebp - 0x49c], 8
lea ecx, [ebp - 0x4b4]
push ecx
push dword [esi]
lea eax, [ebp - 0x4b0]
mov dword [ebp - 0x4b4], 0
cmovae eax, dword [ebp - 0x4b0]
push 0
push eax
push 0x80000002
mov dword [ebp - 0x45c], 0
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x432e73
push eax
push eax
push eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x45c]
push eax
push 0
push 0
push 0
push dword [ebp - 0x4b4]
call dword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x432e67
push 0x200
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.00486a10
xor eax, eax
add esp, 0xc
mov dword [ebp - 0x4c4], eax
cmp dword [ebp - 0x45c], eax
jbe 0x432e67
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x478]
mov dword [ebp - 0x478], 0xff
push ecx
lea ecx, [ebp - 0x218]
push ecx
push eax
push dword [ebp - 0x4b4]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
test eax, eax
jne 0x432e48
mov dword [ebp - 0x4b8], eax
mov eax, dword [ebp - 0x478]
add eax, eax
cmp eax, 0x200
jae 0x43320e
xor ecx, ecx
mov dword [ebp - 0x444], 7
mov word [ebp + eax - 0x218], cx
xor eax, eax
mov dword [ebp - 0x448], ecx
lea ecx, [ebp - 0x218]
mov word [ebp - 0x458], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x432a92
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x458]
call fcn.00407920
mov byte [ebp - 4], 4
lea eax, [ebp - 0x458]
cmp dword [ebp - 0x444], 8
lea ecx, [ebp - 0x458]
mov edx, dword [ebp - 0x458]
lea esi, [ebp - 0x458]
cmovae eax, edx
mov dword [ebp - 0x494], edx
cmovae ecx, edx
mov dword [ebp - 0x4c0], eax
mov eax, dword [ebp - 0x448]
cmovae esi, edx
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 - 0x41c], ecx
test ecx, ecx
je 0x432b44
sub dword [ebp - 0x4c0], esi
movzx eax, word [esi]
push eax
call fcn.0048ca54
mov ecx, dword [ebp - 0x4c0]
lea esi, [esi + 2]
inc edi
add esp, 4
mov word [ecx + esi - 2], ax
cmp edi, dword [ebp - 0x41c]
jne 0x432b15
mov edx, dword [ebp - 0x458]
mov dword [ebp - 0x494], edx
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
mov edi, dword [ebp - 0x440]
lea edx, [ebp - 0x440]
mov esi, dword [ebp - 0x430]
cmovae eax, edi
cmovae edx, edi
lea eax, [eax + esi*2]
lea esi, [ebp - 0x440]
mov ecx, eax
cmovae esi, edi
xor edi, edi
sub ecx, esi
inc ecx
shr ecx, 1
cmp esi, eax
cmova ecx, edi
mov dword [ebp - 0x4c0], ecx
test ecx, ecx
je 0x432bc0
sub edx, esi
mov dword [ebp - 0x41c], edx
movzx eax, word [esi]
push eax
call fcn.0048ca54
mov ecx, dword [ebp - 0x41c]
lea esi, [esi + 2]
inc edi
add esp, 4
mov word [ecx + esi - 2], ax
cmp edi, dword [ebp - 0x4c0]
jne 0x432b95
mov esi, dword [ebp - 0x458]
jmp 0x432bc6
mov esi, dword [ebp - 0x494]
cmp dword [ebp - 0x42c], 8
lea eax, [ebp - 0x440]
push dword [ebp - 0x430]
cmovae eax, dword [ebp - 0x440]
lea ecx, [ebp - 0x458]
mov edi, dword [ebp - 0x444]
cmp edi, 8
mov edx, dword [ebp - 0x448]
push eax
cmovae ecx, esi
push 0
call fcn.0043c590
add esp, 0xc
cmp eax, 0xffffffff
je 0x432e10
lea ecx, [ebp - 0x4b8]
cmp edi, 8
push ecx
push 0x20019
lea eax, [ebp - 0x458]
push 0
cmovae eax, esi
push eax
push dword [ebp - 0x4b4]
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x432e04
push 0x200
push eax
lea eax, [ebp - 0x418]
push eax
call fcn.00486a10
add esp, 0xc
mov dword [ebp - 0x41c], 0x1fe
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x418]
push eax
push 0
push 0
push str.InstallLocation
push dword [ebp - 0x4b8]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x432df8
push 0x4ebb24
push 0x41a160
push 0x4ebb2c
call fcn.0046ade3
add esp, 0xc
test eax, eax
je 0x433209
xor eax, eax
mov dword [ebp - 0x464], 0
lea ecx, [ebp - 0x418]
mov dword [ebp - 0x460], 7
mov word [ebp - 0x474], ax
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x432cd0
sub ecx, edx
lea eax, [ebp - 0x418]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x474]
call fcn.00407920
push 1
push 0x4ce864
lea ecx, [ebp - 0x474]
mov byte [ebp - 4], 5
call fcn.0040c260
cmp dword [ebp - 0x47c], 8
lea eax, [ebp - 0x490]
push dword [ebp - 0x480]
cmovae eax, dword [ebp - 0x490]
lea ecx, [ebp - 0x474]
push eax
call fcn.0040c260
mov byte [ebp - 0x4cc], 0
lea edx, [ebp - 0x474]
push dword [ebp - 0x4cc]
lea ecx, [ebp - 0x4ec]
call fcn.00418ec0
add esp, 4
lea edx, [ebp - 0x498]
lea ecx, [ebp - 0x4ec]
call fcn.0043e6b0
mov edx, dword [ebp - 0x4d8]
mov byte [ebp - 0x4b9], al
cmp edx, 8
jb 0x432dac
mov ecx, dword [ebp - 0x4ec]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x432d9c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331eb
push edx
push ecx
call fcn.0046e8d1
mov al, byte [ebp - 0x4b9]
add esp, 8
test al, al
jne 0x432ed1
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x460]
cmp edx, 8
jb 0x432df8
mov ecx, dword [ebp - 0x474]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x432dee
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331eb
push edx
push ecx
call fcn.0046e8d1
add esp, 8
push dword [ebp - 0x4b8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edi, dword [ebp - 0x444]
mov esi, dword [ebp - 0x458]
mov byte [ebp - 4], 3
cmp edi, 8
jb 0x432e48
lea edi, [edi*2 + 2]
mov eax, esi
cmp edi, 0x1000
jb 0x432e3e
mov esi, dword [esi - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331eb
push edi
push esi
call fcn.0046e8d1
add esp, 8
mov eax, dword [ebp - 0x4c4]
inc eax
mov dword [ebp - 0x4c4], eax
cmp eax, dword [ebp - 0x45c]
jb 0x432a18
mov esi, dword [ebp - 0x4c8]
push dword [ebp - 0x4b4]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
add esi, 4
mov dword [ebp - 0x4c8], esi
cmp esi, dword [ebp - 0x424]
jne 0x432980
mov edi, dword [ebp - 0x428]
mov edx, dword [ebp - 0x47c]
cmp edx, 8
jb 0x4330f6
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4330ec
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331e6
jmp 0x4330ec
mov ecx, dword [ebp - 0x4d4]
lea eax, [ebp - 0x474]
cmp ecx, eax
je 0x432efb
cmp dword [ebp - 0x460], 8
push dword [ebp - 0x464]
cmovae eax, dword [ebp - 0x474]
push eax
call fcn.00407920
push dword [ebp - 0x4b8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call esi
push dword [ebp - 0x4b4]
call esi
mov edx, dword [ebp - 0x460]
cmp edx, 8
jb 0x432f51
mov ecx, dword [ebp - 0x474]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x432f47
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331eb
push edx
push ecx
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x444]
xor eax, eax
mov dword [ebp - 0x464], 0
mov dword [ebp - 0x460], 7
mov word [ebp - 0x474], ax
cmp edx, 8
jb 0x432fae
mov ecx, dword [ebp - 0x458]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x432fa4
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331f0
push edx
push ecx
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x47c]
xor eax, eax
mov dword [ebp - 0x448], 0
mov dword [ebp - 0x444], 7
mov word [ebp - 0x458], ax
cmp edx, 8
jb 0x43300b
mov ecx, dword [ebp - 0x490]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x433001
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331f5
push edx
push ecx
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x42c]
cmp edx, 8
jb 0x43304b
mov ecx, dword [ebp - 0x440]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x433041
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331fa
push edx
push ecx
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x428]
xor eax, eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 7
mov word [ebp - 0x440], ax
test edx, edx
je 0x4330a5
mov ecx, dword [ebp - 0x420]
mov eax, edx
sub ecx, edx
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x43309b
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4331ff
push ecx
push edx
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x49c]
cmp edx, 8
jb 0x4330e5
mov ecx, dword [ebp - 0x4b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4330db
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x433204
push edx
push ecx
call fcn.0046e8d1
add esp, 8
mov al, 1
jmp 0x4331c8
push edx
push ecx
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x42c]
cmp edx, 8
jb 0x433136
mov ecx, dword [ebp - 0x440]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x43312c
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x433213
push edx
push ecx
call fcn.0046e8d1
add esp, 8
xor eax, eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 0x42c], 7
mov word [ebp - 0x440], ax
test edi, edi
je 0x43318a
mov ecx, dword [ebp - 0x420]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffffc
cmp ecx, 0x1000
jb 0x433180
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x433218
push ecx
push edi
call fcn.0046e8d1
add esp, 8
mov edx, dword [ebp - 0x49c]
cmp edx, 8
jb 0x4331c6
mov ecx, dword [ebp - 0x4b0]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x4331bc
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x43321d
push edx
push ecx
call fcn.0046e8d1
add esp, 8
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046e3b0
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0048981c
call fcn.0048981c
call fcn.0048981c
call fcn.0048981c
call fcn.0048981c
call fcn.0048981c
call fcn.0048981c
call fcn.0048d190
call fcn.0046ea3e
call fcn.0048981c
call fcn.0048981c
call fcn.0048981c
int3