Function at 0x53a890
Capabilities:
Get installed programs

Disassembly:
mov eax, dword [0x5b4310]
sub esp, 0x3f4
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
push 0x5a9798
push eax
call edi
mov ebx, dword [sym.imp.USER32.dll_FindWindowExA]
mov ebp, dword [sym.imp.USER32.dll_GetWindowLongA]
mov edi, edi
push 0
push 0x5837f0
push 0
push 0
call ebx
mov esi, eax
test esi, esi
je 0x53a915
push 0xfffffffffffffffa
push esi
call ebp
test eax, eax
je 0x53a903
push 0x104
push 0x5aaa28
push eax
call edi
push 0x5aaa28
push 0x5a9798
call fcn.005809c6
add esp, 8
test eax, eax
je 0x53ad19
push 0
push 0x5837f0
push esi
push 0
call ebx
mov esi, eax
test esi, esi
jne 0x53a8d3
push 0
push str.Mirc32
push 0
push 0
call ebx
mov esi, eax
test esi, esi
je 0x53a96a
push 0xfffffffffffffffa
push esi
call ebp
test eax, eax
je 0x53a958
push 0x104
push 0x5aaa28
push eax
call edi
push 0x5aaa28
push 0x5a9798
call fcn.005809c6
add esp, 8
test eax, eax
je 0x53ad19
push 0
push 0x5837f0
push esi
push 0
call ebx
mov esi, eax
test esi, esi
jne 0x53a928
mov edx, dword [0x5b4310]
push 0x104
push 0x5a9798
push edx
call edi
push 0x5a15c8
push 0x5a14c8
push 0x5a13c8
push 0x5a13c0
push 0x5a9798
call fcn.005706cf
mov ebx, dword [sym.imp.USER32.dll_wsprintfA]
push 0x5a13c8
push 0x5a13c0
push 0x583954
push 0x5a9798
call ebx
push 0x5a15c8
push 0x5a14c8
push 0x583954
push 0x5aaa28
call ebx
add esp, 0x34
push 0x5a9798
push 0x5aa5e0
xor edx, edx
mov ecx, 0x1615
call fcn.0041d620
push eax
push 0x5aa640
call ebx
add esp, 0x10
push 0x5aa5e0
xor edx, edx
mov ecx, 0x1613
call fcn.0041d620
push eax
lea eax, [esp + 0x24]
push eax
call ebx
add esp, 0xc
xor ebp, ebp
push ebp
push ebp
push ebp
push ebp
push 2
push 4
push ebp
push 0x5aa640
lea edx, [esp + 0x3c]
xor ecx, ecx
call fcn.004b7c00
test eax, eax
je 0x53ad67
call fcn.0053a780
mov ecx, 0x5837f0
call fcn.0053a5e0
mov ecx, str.Mirc32
call fcn.0053a5e0
mov ecx, str.Mirc_v6.0
call fcn.0053a5e0
call fcn.0053a120
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
lea ecx, [esp + 0x18]
push ecx
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push reloc.WSOCK32.dll_bind
call esi
test eax, eax
mov edi, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x53aa8e
mov ecx, dword [esp + 0x18]
mov edx, 0x5837f0
call fcn.00539f70
mov edx, dword [esp + 0x18]
push edx
call edi
lea eax, [esp + 0x18]
push eax
push str.Software
push reloc.WSOCK32.dll_accept
call esi
test eax, eax
jne 0x53aab8
mov ecx, dword [esp + 0x18]
mov edx, 0x5837f0
call fcn.00539f70
mov ecx, dword [esp + 0x18]
push ecx
call edi
call fcn.0053a580
push 1
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
mov edx, 0x586c38
mov ecx, 0x5a9798
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
call fcn.0053a200
mov esi, dword [esp + 0x10]
cmp esi, ebp
je 0x53ac86
lea esp, [esp]
mov ecx, dword [esi]
push 0x5a15c8
push 0x5a14c8
push 0x5a13c8
push 0x5a13c0
push ecx
call fcn.005706cf
push 0x5a13c8
push 0x5a13c0
push 0x583954
push 0x5aa640
call ebx
push 0x5aa640
push 0x5a9798
call fcn.005809c6
add esp, 0x2c
test eax, eax
jne 0x53ac7b
mov ecx, dword [esi]
mov edx, str.backup
call fcn.0041e2a0
test eax, eax
jne 0x53ac7b
mov ecx, dword [esi]
mov edx, 0x5aaa28
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.mlink32.exe
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.aliases.ini
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, 0x58b87c
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.popups.ini
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.servers.ini
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, 0x588814
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.control.ini
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.Mirc.hlp
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.Mirc.gid
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.Mirc.fts
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.ircintro.hlp
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.ircintro.fts
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.ircintro.gid
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.readme.txt
call fcn.0041e2a0
test eax, eax
jne 0x53ac70
mov ecx, dword [esi]
mov edx, str.versions.txt
call fcn.0041e2a0
test eax, eax
je 0x53ac7b
mov edx, dword [esi]
push edx
call fcn.005725fc
add esp, 4
mov esi, dword [esi + 0x40]
cmp esi, ebp
jne 0x53aaf0
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x53acaf
mov esi, dword [eax + 0x44]
cmp esi, ebp
je 0x53acaf
mov eax, dword [esi]
push eax
call fcn.005818b8
mov eax, dword [esp + 0x18]
add esp, 4
cmp esi, eax
je 0x53acaf
mov esi, dword [esi + 0x44]
cmp esi, ebp
jne 0x53ac95
push 0x5a9798
call fcn.005818b8
add esp, 4
lea ecx, [esp + 0x10]
call fcn.004c8280
lea ecx, [esp + 0x14]
call fcn.004c8280
push 1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
mov edx, 0x586c38
mov ecx, 0x5a9798
call fcn.0053a200
mov esi, dword [esp + 0x10]
cmp esi, ebp
je 0x53ad8e
jmp 0x53ad00
mov ecx, dword [esi]
mov edx, 0x5aaa28
call fcn.0041e2a0
test eax, eax
jne 0x53ad74
mov esi, dword [esi + 0x40]
cmp esi, ebp
jne 0x53ad00
jmp 0x53ad83
push 0x5aa5e0
xor edx, edx
mov ecx, 0x1613
call fcn.0041d620
push eax
lea ecx, [esp + 0x24]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0
push 0
push 0
push 0
push 4
push 6
push 0
xor edx, edx
mov ecx, 0x1614
call fcn.0041d620
push eax
lea edx, [esp + 0x3c]
xor ecx, ecx
call fcn.004b7c00
test eax, eax
jne 0x53a8c0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3f4
ret
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004c7fe0
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebp
mov ecx, 0x1617
jne 0x53ad93
mov ecx, 0x1616
mov edx, 0x5aa640
call fcn.0041d620
push 0x5aa5e0
xor edx, edx
mov ecx, 0x1613
call fcn.0041d620
push eax
lea eax, [esp + 0x24]
push eax
call ebx
add esp, 0xc
push ebp
push ebp
push ebp
push ebp
push 1
push 3
push ebp
push 0x5aa640
lea edx, [esp + 0x3c]
xor ecx, ecx
call fcn.004b7c00
cmp dword [esp + 0x10], ebp
je 0x53ade7
mov edx, 2
mov ecx, 0x5a9798
call fcn.0041fe20
lea ecx, [esp + 0x10]
call fcn.004c8280
lea ecx, [esp + 0x14]
call fcn.004c8280
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x3f4
ret