Function at 0x4a2030
Capabilities:
Check os version
Get common file path
Get program files directory
Get startup folder
Query environment variable
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d1f72
mov eax, dword fs:[0]
push eax
mov eax, 0x139c
call fcn.0055b970
mov eax, dword [0x6385e0]
xor eax, ebp
mov dword [ebp - 0x54], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x1360], ecx
lea ecx, [ebp - 0x26c]
call fcn.004a35b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x4cc]
call fcn.0042fe80
mov byte [ebp - 4], 1
lea eax, [ebp - 0x25c]
push eax
push 0
push 0
push 7
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a20dd
lea ecx, [ebp - 0x25c]
push ecx
lea ecx, [ebp - 0x11b8]
call fcn.004b3550
mov byte [ebp - 4], 2
lea edx, [ebp - 0x11b8]
push edx
lea eax, [ebp - 0x11c4]
push eax
lea ecx, [ebp - 0x4cc]
call fcn.0042feb0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x11b8]
call fcn.004b3860
lea ecx, [ebp - 0x25c]
push ecx
push 0
push 0
push 0x1d
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a2134
lea edx, [ebp - 0x25c]
push edx
lea ecx, [ebp - 0x11d0]
call fcn.004b3550
mov byte [ebp - 4], 3
lea eax, [ebp - 0x11d0]
push eax
lea ecx, [ebp - 0x11dc]
push ecx
lea ecx, [ebp - 0x4cc]
call fcn.0042feb0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x11d0]
call fcn.004b3860
lea edx, [ebp - 0x25c]
push edx
push 0
push 0
push 0x18
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a218b
lea eax, [ebp - 0x25c]
push eax
lea ecx, [ebp - 0x11e8]
call fcn.004b3550
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x11e8]
push ecx
lea edx, [ebp - 0x11f4]
push edx
lea ecx, [ebp - 0x4cc]
call fcn.0042feb0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x11e8]
call fcn.004b3860
lea eax, [ebp - 0x25c]
push eax
push 0
push 0
push 0x1e
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a21e2
lea ecx, [ebp - 0x25c]
push ecx
lea ecx, [ebp - 0x1200]
call fcn.004b3550
mov byte [ebp - 4], 5
lea edx, [ebp - 0x1200]
push edx
lea eax, [ebp - 0x120c]
push eax
lea ecx, [ebp - 0x4cc]
call fcn.0042feb0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x1200]
call fcn.004b3860
mov ecx, dword [ebp - 0x1360]
mov ecx, dword [ecx + 4]
call fcn.00404b70
cmp eax, 1
jne 0x4a224f
push 0x104
lea edx, [ebp - 0x25c]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 0x6099c8
push 0x104
lea eax, [ebp - 0x25c]
push eax
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1210], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1364], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
jmp 0x4a295b
push 0x104
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push 2
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1214], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1368], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push 0x6099c8
push 0x104
lea eax, [ebp - 0x25c]
push eax
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1218], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x136c], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push 0x104
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push str._spool
push 0x104
lea ecx, [ebp - 0x25c]
push ecx
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x121c], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1370], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
xor eax, eax
mov word [ebp - 0x258], ax
push 0
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1220], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1374], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push 0x104
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push 0
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1224], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1378], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push str.Temp
push 0x104
lea eax, [ebp - 0x25c]
push eax
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1228], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x137c], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push 0x104
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str._system
push 0x104
lea ecx, [ebp - 0x25c]
push ecx
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x122c], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1380], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push 0x104
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
push str.help
push 0x104
lea ecx, [ebp - 0x25c]
push ecx
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1230], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1384], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
push 0x104
lea eax, [ebp - 0x25c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push str.wbem
push 0x104
lea ecx, [ebp - 0x25c]
push ecx
call fcn.0054eb7c
add esp, 0xc
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1234], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1388], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
lea eax, [ebp - 0x25c]
push eax
push 0
push 0
push 0x2b
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a2517
push 0
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1238], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x138c], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
lea eax, [ebp - 0x25c]
push eax
push 0
push 0
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a2573
push str.Internet_Explorer
push 0x104
lea ecx, [ebp - 0x25c]
push ecx
call fcn.0054eb7c
add esp, 0xc
push 0
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x123c], esp
lea edx, [ebp - 0x25c]
push edx
call fcn.004b3550
mov dword [ebp - 0x1390], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
lea ecx, [ebp - 0x4d8]
call fcn.004b34a0
mov byte [ebp - 4], 6
lea eax, [ebp - 0x25c]
push eax
push 0
push 0
push 0x10
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a2651
lea ecx, [ebp - 0x25c]
push ecx
lea ecx, [ebp - 0x4d8]
call fcn.004b38f0
push 0x5c
lea ecx, [ebp - 0x4d8]
call fcn.004b4e90
mov dword [ebp - 0x4e0], eax
cmp dword [ebp - 0x4e0], 0
jle 0x4a2651
mov edx, dword [ebp - 0x4e0]
add edx, 1
mov dword [ebp - 0x4e0], edx
mov eax, dword [ebp - 0x4e0]
push eax
push 0x5c
lea ecx, [ebp - 0x4d8]
call fcn.004b4ed0
mov dword [ebp - 0x4e0], eax
cmp dword [ebp - 0x4e0], 0
jle 0x4a2651
lea ecx, [ebp - 0x4d8]
call fcn.00404b70
sub eax, dword [ebp - 0x4e0]
push eax
mov ecx, dword [ebp - 0x4e0]
push ecx
lea ecx, [ebp - 0x4d8]
call fcn.004b5a90
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1240], esp
lea edx, [ebp - 0x4d8]
push edx
call fcn.004b34d0
mov dword [ebp - 0x1394], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
lea eax, [ebp - 0x474]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jbe 0x4a26ae
push 0x104
lea ecx, [ebp - 0x25c]
push ecx
lea edx, [ebp - 0x474]
push edx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
jbe 0x4a26ae
push 3
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1244], esp
lea eax, [ebp - 0x25c]
push eax
call fcn.004b3550
mov dword [ebp - 0x1398], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
lea ecx, [ebp - 0x25c]
push ecx
push 0
push 0
push 0x23
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x4a2731
lea edx, [ebp - 0x25c]
push edx
lea ecx, [ebp - 0x4ec]
call fcn.004b3550
mov byte [ebp - 4], 7
push 0
lea eax, [ebp - 0x4d8]
push eax
lea ecx, [ebp - 0x4ec]
call fcn.004b69b0
movzx ecx, al
test ecx, ecx
jne 0x4a2722
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1248], esp
lea edx, [ebp - 0x4ec]
push edx
call fcn.004b34d0
mov dword [ebp - 0x139c], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x4ec]
call fcn.004b3860
lea eax, [ebp - 0x4dc]
push eax
push str.SOFTWAREMicrosoftWindows_NTCurrentVersionProfileList
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4a294c
call dword [sym.imp.KERNEL32.dll_GetVersion]
and eax, 0xffff
movzx ecx, ax
and ecx, 0xff
movzx edx, cl
mov dword [ebp - 0x4f0], edx
mov eax, dword [ebp - 0x4f0]
and eax, 0xffff
movzx ecx, ax
cmp ecx, 6
jl 0x4a2898
lea edx, [ebp - 0x4f8]
push edx
push str.S_1_5_19
mov eax, dword [ebp - 0x4dc]
push eax
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4a2898
mov dword [ebp - 0x4fc], 0x208
lea ecx, [ebp - 0x4fc]
push ecx
lea edx, [ebp - 0x25c]
push edx
push 0
push 0
push str.ProfileImagePath
mov eax, dword [ebp - 0x4f8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4a288b
push 0x104
lea ecx, [ebp - 0x704]
push ecx
lea edx, [ebp - 0x25c]
push edx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x4a288b
lea eax, [ebp - 0x704]
push eax
lea ecx, [ebp - 0x1254]
call fcn.004b3550
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x1254]
push ecx
lea edx, [ebp - 0x710]
push edx
call fcn.004131c0
add esp, 8
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x1254]
call fcn.004b3860
push 0
lea eax, [ebp - 0x4d8]
push eax
lea ecx, [ebp - 0x710]
call fcn.004b69b0
movzx ecx, al
test ecx, ecx
jne 0x4a287c
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1258], esp
lea edx, [ebp - 0x710]
push edx
call fcn.004b34d0
mov dword [ebp - 0x13a0], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x710]
call fcn.004b3860
mov eax, dword [ebp - 0x4f8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x4f4]
push ecx
push str.S_1_5_18
mov edx, dword [ebp - 0x4dc]
push edx
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x4a293f
mov dword [ebp - 0x714], 0x208
lea eax, [ebp - 0x714]
push eax
lea ecx, [ebp - 0x25c]
push ecx
push 0
push 0
push str.ProfileImagePath
mov edx, dword [ebp - 0x4f4]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x4a2932
push 0x104
lea eax, [ebp - 0x91c]
push eax
lea ecx, [ebp - 0x25c]
push ecx
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
je 0x4a2932
push 1
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x125c], esp
lea edx, [ebp - 0x91c]
push edx
call fcn.004b3550
mov dword [ebp - 0x13a4], eax
lea ecx, [ebp - 0x26c]
call fcn.004a3610
mov eax, dword [ebp - 0x4f4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x4dc]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4d8]
call fcn.004b3860
lea ecx, [ebp - 0x4ac]
call fcn.004a5600
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x1260], str..sys
lea edx, [ebp - 0x1260]
push edx
lea eax, [ebp - 0x126c]
push eax
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x1270], str..drv
lea ecx, [ebp - 0x1270]
push ecx
lea edx, [ebp - 0x127c]
push edx
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x1280], str..dll
lea eax, [ebp - 0x1280]
push eax
lea ecx, [ebp - 0x128c]
push ecx
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x1290], str..ocx
lea edx, [ebp - 0x1290]
push edx
lea eax, [ebp - 0x129c]
push eax
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x12a0], str..exe
lea ecx, [ebp - 0x12a0]
push ecx
lea edx, [ebp - 0x12ac]
push edx
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x12b0], str..lnk
lea eax, [ebp - 0x12b0]
push eax
lea ecx, [ebp - 0x12bc]
push ecx
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x12c0], str..cpl
lea edx, [ebp - 0x12c0]
push edx
lea eax, [ebp - 0x12cc]
push eax
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x12d0], str..tmp
lea ecx, [ebp - 0x12d0]
push ecx
lea edx, [ebp - 0x12dc]
push edx
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x12e0], str..com
lea eax, [ebp - 0x12e0]
push eax
lea ecx, [ebp - 0x12ec]
push ecx
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
mov dword [ebp - 0x12f0], str..pif
lea edx, [ebp - 0x12f0]
push edx
lea eax, [ebp - 0x12fc]
push eax
lea ecx, [ebp - 0x4ac]
call fcn.004a36d0
lea ecx, [ebp - 0x50]
call fcn.004a5600
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x26c]
push ecx
lea ecx, [ebp - 0x480]
call fcn.004a38a0
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2c]
call fcn.0042fe80
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x48c]
call fcn.004b34a0
mov byte [ebp - 4], 0xf
lea edx, [ebp - 0x30]
push edx
lea eax, [ebp - 0x48c]
push eax
lea ecx, [ebp - 0x480]
call fcn.00432880
movzx ecx, al
test ecx, ecx
je 0x4a2c77
mov edx, dword [ebp - 0x1360]
mov ecx, dword [edx + 4]
call fcn.0041adf0
movzx eax, al
test eax, eax
je 0x4a2b40
jmp 0x4a2c77
lea ecx, [ebp - 0x48c]
push ecx
mov edx, dword [ebp - 0x1360]
mov ecx, dword [edx + 4]
call fcn.0041e330
mov dword [ebp - 0x920], eax
cmp dword [ebp - 0x920], 0
je 0x4a2c72
push 0x5fc5a0
lea ecx, [ebp - 0x48c]
call fcn.004b4780
movzx eax, al
test eax, eax
je 0x4a2b9b
push 1
lea ecx, [ebp - 0x48c]
call fcn.00404b70
sub eax, 1
push eax
lea ecx, [ebp - 0x48c]
call fcn.004b5a90
cmp dword [ebp - 0x30], 3
jne 0x4a2bd4
mov ecx, dword [ebp - 0x1360]
mov edx, dword [ecx + 4]
push edx
lea eax, [ebp - 0x2c]
push eax
push 0
lea ecx, [ebp - 0x50]
push ecx
lea edx, [ebp - 0x48c]
push edx
mov eax, dword [ebp - 0x920]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x920]
mov eax, dword [edx + 8]
call eax
jmp 0x4a2c72
cmp dword [ebp - 0x30], 2
jne 0x4a2c32
mov ecx, dword [0x63e870]
push ecx
lea ecx, [ebp - 0x1308]
call fcn.004b3550
mov byte [ebp - 4], 0x10
mov edx, dword [ebp - 0x1360]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x2c]
push ecx
push 0
lea edx, [ebp - 0x1308]
push edx
lea eax, [ebp - 0x48c]
push eax
mov ecx, dword [ebp - 0x920]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x920]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1308]
call fcn.004b3860
jmp 0x4a2c72
cmp dword [ebp - 0x30], 2
jge 0x4a2c72
mov ecx, dword [ebp - 0x1360]
mov edx, dword [ecx + 4]
push edx
lea eax, [ebp - 0x2c]
push eax
cmp dword [ebp - 0x30], 1
sete cl
movzx edx, cl
push edx
lea eax, [ebp - 0x4ac]
push eax
lea ecx, [ebp - 0x48c]
push ecx
mov edx, dword [ebp - 0x920]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x920]
mov edx, dword [eax + 8]
call edx
jmp 0x4a2b05
mov eax, dword [ebp - 0x1360]
mov ecx, dword [eax + 4]
call fcn.0041adf0
movzx ecx, al
test ecx, ecx
jne 0x4a2f61
xor edx, edx
mov word [ebp - 0x1124], dx
push 0x7fe
push 0
lea eax, [ebp - 0x1122]
push eax
call fcn.00555bf0
add esp, 0xc
lea ecx, [ebp - 0x1124]
push ecx
push 0
push 0
push 8
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
mov dword [ebp - 0x112c], eax
push 6
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
neg eax
sbb eax, eax
add eax, 1
mov byte [ebp - 0x1125], al
lea ecx, [ebp - 0x1134]
call fcn.0047f810
lea edx, [ebp - 0x1310]
push edx
lea ecx, [ebp - 0x2c]
call fcn.00435230
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ebp - 0x1134], ecx
mov dword [ebp - 0x1130], edx
jmp 0x4a2d19
lea ecx, [ebp - 0x1134]
call fcn.0040c980
lea eax, [ebp - 0x1318]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040c9a0
push eax
lea ecx, [ebp - 0x1134]
call fcn.0047f720
movzx ecx, al
test ecx, ecx
je 0x4a2f50
mov edx, dword [ebp - 0x1360]
mov ecx, dword [edx + 4]
call fcn.0041adf0
movzx eax, al
test eax, eax
je 0x4a2d59
jmp 0x4a2f50
lea ecx, [ebp - 0x1134]
call fcn.0047f6d0
push eax
lea ecx, [ebp - 0x1140]
push ecx
call fcn.004787d0
add esp, 8
mov byte [ebp - 4], 0x11
push 0
push str..lnk
lea ecx, [ebp - 0x1140]
call fcn.004b4b20
movzx edx, al
test edx, edx
je 0x4a2f20
movzx eax, word [ebp - 0x1124]
test eax, eax
jne 0x4a2da9
mov byte [ebp - 0x1141], 0
jmp 0x4a2dca
push 0
lea ecx, [ebp - 0x1124]
push ecx
lea ecx, [ebp - 0x1134]
call fcn.00406340
mov ecx, eax
call fcn.004b68a0
mov byte [ebp - 0x1141], al
movzx edx, byte [ebp - 0x1141]
test edx, edx
jne 0x4a2f1e
lea ecx, [ebp - 0x1150]
call fcn.004b34a0
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x1150]
push eax
lea ecx, [ebp - 0x1134]
call fcn.0047f6d0
push eax
mov ecx, dword [ebp - 0x1360]
call fcn.004a33b0
movzx ecx, al
test ecx, ecx
je 0x4a2f0f
push 1
lea edx, [ebp - 0x1150]
push edx
mov eax, dword [ebp - 0x1360]
mov ecx, dword [eax + 4]
call fcn.0041e0d0
mov dword [ebp - 0x1154], eax
cmp dword [ebp - 0x1154], 0
je 0x4a2f0f
mov byte [ebp - 0x115d], 0
lea ecx, [ebp - 0x115c]
call fcn.0047f810
lea ecx, [ebp - 0x1320]
push ecx
lea ecx, [ebp - 0x4cc]
call fcn.00435230
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x115c], edx
mov dword [ebp - 0x1158], eax
jmp 0x4a2e7d
lea ecx, [ebp - 0x115c]
call fcn.0040c980
lea ecx, [ebp - 0x1328]
push ecx
lea ecx, [ebp - 0x4cc]
call fcn.0040c9a0
push eax
lea ecx, [ebp - 0x115c]
call fcn.0047f720
movzx edx, al
test edx, edx
je 0x4a2ed4
push 0
lea ecx, [ebp - 0x115c]
call fcn.0047f6d0
push eax
lea ecx, [ebp - 0x1134]
call fcn.00406340
mov ecx, eax
call fcn.004b69b0
movzx eax, al
test eax, eax
je 0x4a2ed2
mov byte [ebp - 0x115d], 1
jmp 0x4a2ed4
jmp 0x4a2e72
movzx ecx, byte [ebp - 0x115d]
test ecx, ecx
je 0x4a2ef8
lea ecx, [ebp - 0x1134]
call fcn.0047f6d0
push eax
mov ecx, dword [ebp - 0x1154]
call fcn.00412ce0
jmp 0x4a2f0f
lea ecx, [ebp - 0x1134]
call fcn.0047f6d0
push eax
mov ecx, dword [ebp - 0x1154]
call fcn.00412b10
mov byte [ebp - 4], 0x11
lea ecx, [ebp - 0x1150]
call fcn.004b3860
jmp 0x4a2f3c
push 1
lea ecx, [ebp - 0x1134]
call fcn.0047f6d0
push eax
mov edx, dword [ebp - 0x1360]
mov ecx, dword [edx + 4]
call fcn.0041e0d0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1140]
call fcn.004b3860
jmp 0x4a2d0e
movzx eax, byte [ebp - 0x1125]
test eax, eax
je 0x4a2f61
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 0x1360]
mov ecx, dword [ecx + 4]
call fcn.0041adf0
movzx edx, al
test edx, edx
jne 0x4a3321
lea ecx, [ebp - 0x2c]
call fcn.0040f520
push 0
push str.SOFTWAREMozilla
call fcn.00414b30
mov ecx, eax
call fcn.00414830
mov dword [ebp - 0x1164], eax
cmp dword [ebp - 0x1164], 0
je 0x4a3262
push 0
lea ecx, [ebp - 0x1178]
call fcn.00430200
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0x1178]
push eax
mov ecx, dword [ebp - 0x1164]
call fcn.00414060
movzx ecx, al
test ecx, ecx
je 0x4a3253
mov dword [ebp - 0x117c], 0
jmp 0x4a2ff1
mov edx, dword [ebp - 0x117c]
add edx, 1
mov dword [ebp - 0x117c], edx
lea ecx, [ebp - 0x1178]
call fcn.004b9730
cmp dword [ebp - 0x117c], eax
jge 0x4a3253
mov eax, dword [ebp - 0x117c]
push eax
lea ecx, [ebp - 0x1178]
call fcn.00430700
mov ecx, eax
call fcn.004553f0
push eax
push str._sextensions
lea ecx, [ebp - 0x1188]
push ecx
call fcn.004b4d50
add esp, 0xc
mov byte [ebp - 4], 0x14
push 0
lea edx, [ebp - 0x1188]
push edx
mov ecx, dword [ebp - 0x1164]
call fcn.00414800
mov dword [ebp - 0x118c], eax
cmp dword [ebp - 0x118c], 0
je 0x4a323f
mov eax, dword [0x63e870]
push eax
lea ecx, [ebp - 0x119c]
call fcn.004b3550
mov byte [ebp - 4], 0x15
mov ecx, dword [0x63e870]
push ecx
lea ecx, [ebp - 0x11a8]
call fcn.004b3550
mov byte [ebp - 4], 0x16
lea edx, [ebp - 0x119c]
push edx
push 0x609b30
mov ecx, dword [ebp - 0x118c]
call fcn.004141d0
lea eax, [ebp - 0x11a8]
push eax
push str.Plugins
mov ecx, dword [ebp - 0x118c]
call fcn.004141d0
lea ecx, [ebp - 0x119c]
push ecx
call fcn.004b4e70
add esp, 4
movzx edx, al
test edx, edx
jne 0x4a314a
lea eax, [ebp - 0x119c]
push eax
mov ecx, dword [ebp - 0x1360]
mov ecx, dword [ecx + 4]
call fcn.0041e330
mov dword [ebp - 0x1190], eax
cmp dword [ebp - 0x1190], 0
je 0x4a314a
mov edx, dword [0x63e870]
push edx
lea ecx, [ebp - 0x1334]
call fcn.004b3550
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0x1360]
mov ecx, dword [eax + 4]
push ecx
lea edx, [ebp - 0x2c]
push edx
push 1
lea eax, [ebp - 0x1334]
push eax
lea ecx, [ebp - 0x119c]
push ecx
mov edx, dword [ebp - 0x1190]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x1190]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x1334]
call fcn.004b3860
lea eax, [ebp - 0x11a8]
push eax
call fcn.004b4e70
add esp, 4
movzx ecx, al
test ecx, ecx
jne 0x4a31da
lea edx, [ebp - 0x11a8]
push edx
mov eax, dword [ebp - 0x1360]
mov ecx, dword [eax + 4]
call fcn.0041e330
mov dword [ebp - 0x1190], eax
cmp dword [ebp - 0x1190], 0
je 0x4a31da
mov ecx, dword [0x63e870]
push ecx
lea ecx, [ebp - 0x1340]
call fcn.004b3550
mov byte [ebp - 4], 0x18
mov edx, dword [ebp - 0x1360]
mov eax, dword [edx + 4]
push eax
lea ecx, [ebp - 0x2c]
push ecx
push 1
lea edx, [ebp - 0x1340]
push edx
lea eax, [ebp - 0x11a8]
push eax
mov ecx, dword [ebp - 0x1190]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x1190]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 0x16
lea ecx, [ebp - 0x1340]
call fcn.004b3860
mov ecx, dword [ebp - 0x118c]
mov dword [ebp - 0x1348], ecx
mov edx, dword [ebp - 0x1348]
mov dword [ebp - 0x1344], edx
cmp dword [ebp - 0x1344], 0
je 0x4a3217
push 1
mov eax, dword [ebp - 0x1344]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x1344]
mov eax, dword [edx]
call eax
mov dword [ebp - 0x13a8], eax
jmp 0x4a3221
mov dword [ebp - 0x13a8], 0
mov byte [ebp - 4], 0x15
lea ecx, [ebp - 0x11a8]
call fcn.004b3860
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x119c]
call fcn.004b3860
mov byte [ebp - 4], 0x13
lea ecx, [ebp - 0x1188]
call fcn.004b3860
jmp 0x4a2fe2
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x1178]
call fcn.00430250
lea ecx, [ebp - 0x116c]
call fcn.0047f810
lea ecx, [ebp - 0x1350]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.00435230
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x116c], edx
mov dword [ebp - 0x1168], eax
jmp 0x4a329a
lea ecx, [ebp - 0x116c]
call fcn.0040c980
lea ecx, [ebp - 0x1358]
push ecx
lea ecx, [ebp - 0x2c]
call fcn.0040c9a0
push eax
lea ecx, [ebp - 0x116c]
call fcn.0047f720
movzx edx, al
test edx, edx
je 0x4a3321
push 0x609b58
lea ecx, [ebp - 0x116c]
call fcn.00406340
mov ecx, eax
call fcn.004b4780
movzx eax, al
test eax, eax
jne 0x4a331c
push 1
lea ecx, [ebp - 0x116c]
call fcn.0047f6d0
push eax
mov ecx, dword [ebp - 0x1360]
mov ecx, dword [ecx + 4]
call fcn.0041e0d0
mov dword [ebp - 0x11ac], eax
cmp dword [ebp - 0x11ac], 0
je 0x4a331c
lea ecx, [ebp - 0x116c]
call fcn.0047f6d0
push eax
mov ecx, dword [ebp - 0x11ac]
call fcn.00412ce0
jmp 0x4a328f
mov byte [ebp - 0x1359], 1
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x48c]
call fcn.004b3860
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x2c]
call fcn.00409100
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x480]
call fcn.004a38e0
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0x50]
call fcn.0047dfd0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x4ac]
call fcn.0047dfd0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x4cc]
call fcn.00409100
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x26c]
call fcn.004a35f0
mov al, byte [ebp - 0x1359]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x54]
xor ecx, ebp
call fcn.0054d4f5
mov esp, ebp
pop ebp
ret