Function at 0x52e1b0
Capabilities:
Get installed programs

Disassembly:
mov eax, dword [0x5a1afc]
sub esp, 0xc
push ebx
push ebp
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
push 0x598248
push eax
call edi
mov ebx, dword [sym.imp.USER32.dll_FindWindowExA]
mov ebp, dword [sym.imp.USER32.dll_GetWindowLongA]
jmp 0x52e1e0
push 0
push 0x5747a0
push 0
push 0
call ebx
mov esi, eax
test esi, esi
je 0x52e235
push 0xfffffffffffffffa
push esi
call ebp
test eax, eax
je 0x52e223
push 0x104
push 0x5994c8
push eax
call edi
push 0x5994c8
push 0x598248
call fcn.00572b46
add esp, 8
test eax, eax
je 0x52e61a
push 0
push 0x5747a0
push esi
push 0
call ebx
mov esi, eax
test esi, esi
jne 0x52e1f3
push 0
push str.mIRC32
push 0
push 0
call ebx
mov esi, eax
test esi, esi
je 0x52e28a
push 0xfffffffffffffffa
push esi
call ebp
test eax, eax
je 0x52e278
push 0x104
push 0x5994c8
push eax
call edi
push 0x5994c8
push 0x598248
call fcn.00572b46
add esp, 8
test eax, eax
je 0x52e61a
push 0
push 0x5747a0
push esi
push 0
call ebx
mov esi, eax
test esi, esi
jne 0x52e248
mov ecx, dword [0x5a1afc]
push 0x104
push 0x598248
push ecx
call edi
push 0x5902c8
push 0x5901c8
push 0x5900c8
push 0x5900c0
push 0x598248
call fcn.00563b42
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
push 0x5900c8
push 0x5900c0
push 0x574904
push 0x598248
call edi
push 0x5902c8
push 0x5901c8
push 0x574904
push 0x5994c8
call edi
add esp, 0x34
push 0x598248
xor edx, edx
mov ecx, 0x1615
call fcn.0041c9e0
push eax
push 0x5990e0
call edi
add esp, 0xc
push 1
xor ebp, ebp
push ebp
push ebp
push ebp
push 3
push 4
push ebp
push 0x5990e0
xor edx, edx
mov ecx, 0x1613
call fcn.0041c9e0
mov edx, eax
xor ecx, ecx
call fcn.004b2150
test eax, eax
je 0x52e652
call fcn.0052e0a0
mov ecx, 0x5747a0
call fcn.0052df00
mov ecx, str.mIRC32
call fcn.0052df00
mov ecx, str.mIRC_v6.0
call fcn.0052df00
call fcn.0052da40
mov esi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyA]
lea edx, [esp + 0x18]
push edx
push str.SoftwareMicrosoftWindowsCurrentVersionUninstall
push reloc.WSOCK32.dll_bind
call esi
test eax, eax
mov ebx, dword [sym.imp.ADVAPI32.dll_RegCloseKey]
jne 0x52e398
mov ecx, dword [esp + 0x18]
mov edx, 0x5747a0
call fcn.0052d890
mov eax, dword [esp + 0x18]
push eax
call ebx
lea ecx, [esp + 0x18]
push ecx
push str.Software
push reloc.WSOCK32.dll_accept
call esi
test eax, eax
jne 0x52e3c2
mov ecx, dword [esp + 0x18]
mov edx, 0x5747a0
call fcn.0052d890
mov edx, dword [esp + 0x18]
push edx
call ebx
call fcn.0052dea0
push 1
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
push ecx
mov edx, 0x577a10
mov ecx, 0x598248
mov dword [esp + 0x20], ebp
mov dword [esp + 0x1c], ebp
call fcn.0052db20
mov esi, dword [esp + 0x10]
cmp esi, ebp
je 0x52e596
jmp 0x52e400
mov edx, dword [esi]
push 0x5902c8
push 0x5901c8
push 0x5900c8
push 0x5900c0
push edx
call fcn.00563b42
push 0x5900c8
push 0x5900c0
push 0x574904
push 0x5990e0
call edi
push 0x5990e0
push 0x598248
call fcn.00572b46
add esp, 0x2c
test eax, eax
jne 0x52e58b
mov ecx, dword [esi]
mov edx, str.backup
call fcn.0041d580
test eax, eax
jne 0x52e58b
mov ecx, dword [esi]
mov edx, 0x5994c8
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.mlink32.exe
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.aliases.ini
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, 0x57bfbc
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.popups.ini
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.servers.ini
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, 0x579570
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.control.ini
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.mirc.hlp
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.mirc.gid
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.mirc.fts
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.ircintro.hlp
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.ircintro.fts
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.ircintro.gid
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.readme.txt
call fcn.0041d580
test eax, eax
jne 0x52e580
mov ecx, dword [esi]
mov edx, str.versions.txt
call fcn.0041d580
test eax, eax
je 0x52e58b
mov eax, dword [esi]
push eax
call fcn.00565467
add esp, 4
mov esi, dword [esi + 0x40]
cmp esi, ebp
jne 0x52e400
mov eax, dword [esp + 0x14]
cmp eax, ebp
je 0x52e5bf
mov esi, dword [eax + 0x44]
cmp esi, ebp
je 0x52e5bf
mov ecx, dword [esi]
push ecx
call fcn.00573450
mov eax, dword [esp + 0x18]
add esp, 4
cmp esi, eax
je 0x52e5bf
mov esi, dword [esi + 0x44]
cmp esi, ebp
jne 0x52e5a5
push 0x598248
call fcn.00573450
add esp, 4
lea ecx, [esp + 0x10]
call fcn.004c29d0
lea ecx, [esp + 0x14]
call fcn.004c29d0
push 1
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
mov edx, 0x577a10
mov ecx, 0x598248
call fcn.0052db20
mov esi, dword [esp + 0x10]
cmp esi, ebp
je 0x52e676
mov ecx, dword [esi]
mov edx, 0x5994c8
call fcn.0041d580
test eax, eax
jne 0x52e65c
mov esi, dword [esi + 0x40]
cmp esi, ebp
jne 0x52e601
jmp 0x52e66b
push 1
push 0
push 0
push 0
push 4
push 6
push 0
xor edx, edx
mov ecx, 0x1614
call fcn.0041c9e0
push eax
xor edx, edx
mov ecx, 0x1613
call fcn.0041c9e0
mov edx, eax
xor ecx, ecx
call fcn.004b2150
test eax, eax
jne 0x52e1e0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xc
ret
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004c2730
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ebp
mov ecx, 0x1617
jne 0x52e67b
mov ecx, 0x1616
mov edx, 0x5990e0
call fcn.0041c9e0
push 1
push ebp
push ebp
push ebp
push 1
push 3
push ebp
push 0x5990e0
xor edx, edx
mov ecx, 0x1613
call fcn.0041c9e0
mov edx, eax
xor ecx, ecx
call fcn.004b2150
cmp dword [esp + 0x10], ebp
je 0x52e6b9
mov ecx, 0x598248
call fcn.0041d0c0
lea ecx, [esp + 0x10]
call fcn.004c29d0
lea ecx, [esp + 0x14]
call fcn.004c29d0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xc
ret