Function at 0x4871f0
Capabilities:
Check for time delay via gettickcount
Check if file exists
Get common file path
Link many functions at runtime
Print debug messages
Query or enumerate registry value
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x50a9d6
mov eax, dword fs:[0]
push eax
sub esp, 0x430
mov eax, dword [0x5522c0]
xor eax, esp
mov dword [esp + 0x428], eax
push ebx
push esi
push edi
mov eax, dword [0x5522c0]
xor eax, esp
push eax
lea eax, [esp + 0x440]
mov dword fs:[0], eax
cmp byte [0x554092], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], eax
je 0x48724b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov eax, dword [esp + 0x18]
add eax, 0xb4
push eax
lea ecx, [esp + 0x18]
push ecx
mov ebx, 0x525d9c
mov dword [esp + 0x28], eax
call fcn.0045ce00
add esp, 8
mov dword [esp + 0x448], 0
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
mov esi, dword [sym.imp.ole32.dll_OleUninitialize]
test eax, eax
jns 0x487290
xor bl, bl
jmp 0x4872ea
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x4872b0
call esi
xor bl, bl
jmp 0x4872ea
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4872cd
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4872ea
call eax
push edi
test eax, eax
jns 0x4872e0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4872ea
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487353
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525db0
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487353
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x487372
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa1
call fcn.0048d490
cmp byte [0x554092], 0
je 0x487386
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x14]
push edx
mov ebx, 0x525dd0
call fcn.0045ce00
add esp, 8
mov ebx, 1
lea edi, [esp + 0x14]
mov byte [esp + 0x448], bl
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4873da
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x4873ee
xor bl, bl
jmp 0x487445
push ebx
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x48740d
call esi
xor bl, bl
jmp 0x487445
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48742a
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487445
call eax
push edi
test eax, eax
jns 0x48743d
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487445
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
cmp byte [0x554092], 0
je 0x4874af
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525de0
push 0x5200e4
call fcn.004597f0
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4874af
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov edx, dword [0x55ad7c]
push edx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x4874ce
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa2
call fcn.0048d490
cmp byte [0x554092], 0
je 0x4874e2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x525dfc
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 2
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x487532
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487546
xor bl, bl
jmp 0x4875a0
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x487566
call esi
xor bl, bl
jmp 0x4875a0
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487583
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4875a0
call eax
push edi
test eax, eax
jns 0x487596
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4875a0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x48760a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525e18
push 0x5200e4
call fcn.004597f0
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48760a
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov edx, dword [0x55ad7c]
push edx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x487629
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa3
call fcn.0048d490
cmp byte [0x554092], 0
je 0x48763d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, str.webplayerPlayerShell.dll
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 3
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x48768d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x4876a1
xor bl, bl
jmp 0x4876fb
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x4876c1
call esi
xor bl, bl
jmp 0x4876fb
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4876de
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4876fb
call eax
push edi
test eax, eax
jns 0x4876f1
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4876fb
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487765
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525e70
push 0x5200e4
call fcn.004597f0
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487765
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov edx, dword [0x55ad7c]
push edx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x487784
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa4
call fcn.0048d490
cmp byte [0x554092], 0
je 0x487798
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x525e9c
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 4
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4877e8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x4877fc
xor bl, bl
jmp 0x487856
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x48781c
call esi
xor bl, bl
jmp 0x487856
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487839
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487856
call eax
push edi
test eax, eax
jns 0x48784c
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487856
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x4878c0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525eb8
push 0x5200e4
call fcn.004597f0
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4878c0
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov edx, dword [0x55ad7c]
push edx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x4878df
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa5
call fcn.0048d490
cmp byte [0x554092], 0
je 0x4878f3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x525ee0
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 5
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x487943
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487957
xor bl, bl
jmp 0x4879b1
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x487977
call esi
xor bl, bl
jmp 0x4879b1
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487994
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4879b1
call eax
push edi
test eax, eax
jns 0x4879a7
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4879b1
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487a1b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525efc
push 0x5200e4
call fcn.004597f0
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487a1b
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov edx, dword [0x55ad7c]
push edx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x487a3a
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa6
call fcn.0048d490
cmp byte [0x554092], 0
je 0x487a4e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x525f24
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 6
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x487a9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487ab2
xor bl, bl
jmp 0x487b0c
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x487ad2
call esi
xor bl, bl
jmp 0x487b0c
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487aef
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487b0c
call eax
push edi
test eax, eax
jns 0x487b02
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487b0c
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487b76
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525f54
push 0x5200e4
call fcn.004597f0
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487b76
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov edx, dword [0x55ad7c]
push edx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x487b95
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa7
call fcn.0048d490
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, str.stormpop.exe
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 7
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x487be5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push str._InstallReg
push ecx
call fcn.00458900
add esp, 8
test al, al
jne 0x487c16
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa8
call fcn.0048d490
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2e]
push eax
mov word [esp + 0x30], dx
call fcn.004e9520
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x24]
push eax
push str.ThreadingModel
push str.CLSIDF6D90F11_9C73_11D3_B32E_00C04F990BB4InProcServer32
push SysReAllocString
mov dword [esp + 0x28], 0x102
mov dword [esp + 0x34], 1
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
je 0x487ddb
push 1
push 0x25
lea ecx, [esp + 0x234]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp byte [0x554092], 0
je 0x487c94
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x230]
call fcn.004595b0
push 0xb
push 0x526040
lea ebx, [esp + 0x18]
mov byte [esp + 0x450], 8
call fcn.0045b400
mov edi, dword [esp + 0x10]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487cd1
xor bl, bl
jmp 0x487d2b
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jae 0x487cf1
call esi
xor bl, bl
jmp 0x487d2b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487d0e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487d2b
call eax
push edi
test eax, eax
jns 0x487d21
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487d2b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487d94
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526058
push 0x5200e4
call fcn.004597f0
mov eax, dword [0x55ae78]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487d94
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov ecx, dword [0x55ad7c]
push ecx
call fcn.004e59f8
add esp, 0x14
test bl, bl
jne 0x487db3
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xfa9
call fcn.0048d490
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x487ddb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x18]
cmp dword [ecx + 0x6c], 0
je 0x48845d
call fcn.0045d2b0
test al, al
je 0x4881cd
cmp byte [0x554092], 0
je 0x487e0a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov edx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
mov ebx, 0x526078
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 9
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x487e5a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x551f18]
mov eax, dword [edx + 0xc]
mov ecx, 0x551f18
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov byte [esp + 0x448], 0xa
mov ecx, dword [esp + 0x14]
push ecx
push str.regsvr32__s___s_
lea edi, [esp + 0x20]
call fcn.004597f0
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x487eab
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00459650
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458900
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e72e4
add esp, 0x10
test eax, eax
js 0x4881c3
cmp eax, dword [edi - 8]
jg 0x4881c3
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x554092], cl
je 0x487f54
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x5260cc
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487f44
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
cmp byte [0x554092], 0
je 0x487f54
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x526104
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xb
call fcn.0045cee0
mov byte [esp + 0x448], 0xa
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x487fa4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push str.regsvr32__s___s_
lea edi, [esp + 0x20]
call fcn.004597f0
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x487fd6
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00459650
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458900
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e72e4
add esp, 0x10
test eax, eax
js 0x4881c3
cmp eax, dword [edi - 8]
jg 0x4881c3
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x554092], cl
je 0x48807f
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526128
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48806f
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
cmp byte [0x554092], 0
je 0x48807f
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x526154
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xc
call fcn.0045cee0
mov byte [esp + 0x448], 0xa
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4880cf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push ecx
push str.regsvr32__s___s_
lea edi, [esp + 0x20]
call fcn.004597f0
mov ebx, dword [esp + 0x20]
add esp, 8
cmp dword [ebx - 4], 1
jle 0x4880ff
mov edx, dword [ebx - 0xc]
push edx
mov eax, edi
push eax
call fcn.00459650
mov ebx, dword [esp + 0x18]
push ebx
push 0
call fcn.00458900
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.004e72e4
add esp, 0x10
test eax, eax
js 0x4881c3
cmp eax, dword [ebx - 8]
jg 0x4881c3
xor ecx, ecx
mov dword [ebx - 0xc], eax
mov word [ebx + eax*2], cx
cmp byte [0x554092], cl
je 0x488196
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526174
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x488196
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
lea eax, [ebx - 0x10]
mov byte [esp + 0x448], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48845d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x48845d
push 0x80070057
call fcn.0045a440
cmp byte [0x554092], 0
je 0x4881e1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x52619c
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xd
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x488231
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push 1
push ecx
call fcn.004589f0
add esp, 8
cmp byte [0x554092], 0
je 0x4882bb
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x5261b8
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4882ab
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
cmp byte [0x554092], 0
je 0x4882bb
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x5261dc
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xe
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48830b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push 1
push ecx
call fcn.004589f0
add esp, 8
cmp byte [0x554092], 0
je 0x488395
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526208
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x488385
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
cmp byte [0x554092], 0
je 0x488395
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x52623c
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xf
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4883e5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x14]
push 1
push ecx
call fcn.004589f0
add esp, 8
cmp byte [0x554092], 0
je 0x48845d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x52625c
push 0x5200e4
call fcn.004597f0
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48845d
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e84a4
mov eax, dword [0x55ad7c]
push eax
call fcn.004e59f8
add esp, 0x14
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, str.webplayer_npWebStrom.dll
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x10
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4884ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
mov edi, eax
test eax, eax
je 0x4884e8
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x4884e8
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x4884e8
push str.DllRegisterNPPlugin
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4884e1
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, str.npBFWebBrowserPlugin.dll
call fcn.0045ce00
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x11
call fcn.0045cee0
mov byte [esp + 0x448], 0
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x488538
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x14]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
js 0x48857d
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 8
push 0
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov edi, eax
cmp edi, 0x20
jb 0x48857b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x488574
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov dword [esp + 0x448], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4885a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x440]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x428]
xor ecx, esp
call fcn.004e4840
mov esp, ebp
pop ebp
ret 4