Function at 0x4872a0
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 0x50aaa6
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 0x4872fb
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, 0x525d4c
mov dword [esp + 0x28], eax
call fcn.0045ce50
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 0x487340
xor bl, bl
jmp 0x48739a
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 0x487360
call esi
xor bl, bl
jmp 0x48739a
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48737d
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48739a
call eax
push edi
test eax, eax
jns 0x487390
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48739a
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487403
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525d60
push 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487403
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x487422
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa1
call fcn.0048d550
cmp byte [0x554092], 0
je 0x487436
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, 0x525d80
call fcn.0045ce50
add esp, 8
mov ebx, 1
lea edi, [esp + 0x14]
mov byte [esp + 0x448], bl
call fcn.0045cf30
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 0x48748a
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 0x48749e
xor bl, bl
jmp 0x4874f5
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 0x4874bd
call esi
xor bl, bl
jmp 0x4874f5
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4874da
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4874f5
call eax
push edi
test eax, eax
jns 0x4874ed
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4874f5
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
cmp byte [0x554092], 0
je 0x48755f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525d90
push 0x520094
call fcn.00459840
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48755f
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x48757e
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa2
call fcn.0048d550
cmp byte [0x554092], 0
je 0x487592
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, 0x525dac
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 2
call fcn.0045cf30
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 0x4875e2
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 0x4875f6
xor bl, bl
jmp 0x487650
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 0x487616
call esi
xor bl, bl
jmp 0x487650
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487633
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487650
call eax
push edi
test eax, eax
jns 0x487646
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487650
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x4876ba
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525dc8
push 0x520094
call fcn.00459840
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4876ba
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x4876d9
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa3
call fcn.0048d550
cmp byte [0x554092], 0
je 0x4876ed
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.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 3
call fcn.0045cf30
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 0x48773d
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 0x487751
xor bl, bl
jmp 0x4877ab
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 0x487771
call esi
xor bl, bl
jmp 0x4877ab
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48778e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4877ab
call eax
push edi
test eax, eax
jns 0x4877a1
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4877ab
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487815
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525e20
push 0x520094
call fcn.00459840
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487815
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x487834
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa4
call fcn.0048d550
cmp byte [0x554092], 0
je 0x487848
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, 0x525e4c
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 4
call fcn.0045cf30
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 0x487898
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 0x4878ac
xor bl, bl
jmp 0x487906
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 0x4878cc
call esi
xor bl, bl
jmp 0x487906
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4878e9
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487906
call eax
push edi
test eax, eax
jns 0x4878fc
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487906
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487970
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525e68
push 0x520094
call fcn.00459840
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487970
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x48798f
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa5
call fcn.0048d550
cmp byte [0x554092], 0
je 0x4879a3
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, 0x525e90
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 5
call fcn.0045cf30
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 0x4879f3
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 0x487a07
xor bl, bl
jmp 0x487a61
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 0x487a27
call esi
xor bl, bl
jmp 0x487a61
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487a44
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487a61
call eax
push edi
test eax, eax
jns 0x487a57
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487a61
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487acb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525eac
push 0x520094
call fcn.00459840
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487acb
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x487aea
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa6
call fcn.0048d550
cmp byte [0x554092], 0
je 0x487afe
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, 0x525ed4
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 6
call fcn.0045cf30
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 0x487b4e
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 0x487b62
xor bl, bl
jmp 0x487bbc
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 0x487b82
call esi
xor bl, bl
jmp 0x487bbc
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487b9f
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487bbc
call eax
push edi
test eax, eax
jns 0x487bb2
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487bbc
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487c26
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525f04
push 0x520094
call fcn.00459840
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487c26
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x487c45
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa7
call fcn.0048d550
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, str.stormpop.exe
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 7
call fcn.0045cf30
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 0x487c95
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.00458940
add esp, 8
test al, al
jne 0x487cc6
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa8
call fcn.0048d550
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2e]
push eax
mov word [esp + 0x30], dx
call fcn.004e95e0
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 0x487e8b
push 1
push 0x25
lea ecx, [esp + 0x234]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp byte [0x554092], 0
je 0x487d44
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x230]
call fcn.00459600
push 0xb
push 0x525ff0
lea ebx, [esp + 0x18]
mov byte [esp + 0x450], 8
call fcn.0045b450
mov edi, dword [esp + 0x10]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487d81
xor bl, bl
jmp 0x487ddb
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 0x487da1
call esi
xor bl, bl
jmp 0x487ddb
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487dbe
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487ddb
call eax
push edi
test eax, eax
jns 0x487dd1
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487ddb
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487e44
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526008
push 0x520094
call fcn.00459840
mov eax, dword [0x55ae78]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487e44
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov ecx, dword [0x55ad7c]
push ecx
call fcn.004e5ab7
add esp, 0x14
test bl, bl
jne 0x487e63
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xfa9
call fcn.0048d550
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 0x487e8b
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 0x48850d
call fcn.0045d300
test al, al
je 0x48827d
cmp byte [0x554092], 0
je 0x487eba
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, 0x526028
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 9
call fcn.0045cf30
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 0x487f0a
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.00459840
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x487f5b
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.004596a0
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458940
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e73a6
add esp, 0x10
test eax, eax
js 0x488273
cmp eax, dword [edi - 8]
jg 0x488273
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x554092], cl
je 0x488004
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x52607c
push 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487ff4
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
add esp, 0x14
cmp byte [0x554092], 0
je 0x488004
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x5260b4
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xb
call fcn.0045cf30
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 0x488054
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.00459840
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x488086
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.004596a0
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458940
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e73a6
add esp, 0x10
test eax, eax
js 0x488273
cmp eax, dword [edi - 8]
jg 0x488273
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x554092], cl
je 0x48812f
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x5260d8
push 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48811f
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
add esp, 0x14
cmp byte [0x554092], 0
je 0x48812f
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x526104
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xc
call fcn.0045cf30
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 0x48817f
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.00459840
mov ebx, dword [esp + 0x20]
add esp, 8
cmp dword [ebx - 4], 1
jle 0x4881af
mov edx, dword [ebx - 0xc]
push edx
mov eax, edi
push eax
call fcn.004596a0
mov ebx, dword [esp + 0x18]
push ebx
push 0
call fcn.00458940
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.004e73a6
add esp, 0x10
test eax, eax
js 0x488273
cmp eax, dword [ebx - 8]
jg 0x488273
xor ecx, ecx
mov dword [ebx - 0xc], eax
mov word [ebx + eax*2], cx
cmp byte [0x554092], cl
je 0x488246
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526124
push 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x488246
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
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 0x48850d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x48850d
push 0x80070057
call fcn.0045a490
cmp byte [0x554092], 0
je 0x488291
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, 0x52614c
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xd
call fcn.0045cf30
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 0x4882e1
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.00458a30
add esp, 8
cmp byte [0x554092], 0
je 0x48836b
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526168
push 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48835b
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
add esp, 0x14
cmp byte [0x554092], 0
je 0x48836b
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x52618c
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xe
call fcn.0045cf30
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 0x4883bb
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.00458a30
add esp, 8
cmp byte [0x554092], 0
je 0x488445
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 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x488435
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
add esp, 0x14
cmp byte [0x554092], 0
je 0x488445
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x5261ec
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xf
call fcn.0045cf30
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 0x488495
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.00458a30
add esp, 8
cmp byte [0x554092], 0
je 0x48850d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x52620c
push 0x520094
call fcn.00459840
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48850d
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8566
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5ab7
add esp, 0x14
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, str.webplayer_npWebStrom.dll
call fcn.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x10
call fcn.0045cf30
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 0x48855d
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 0x488598
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x488598
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x488598
push str.DllRegisterNPPlugin
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x488591
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.0045ce50
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x11
call fcn.0045cf30
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 0x4885e8
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 0x48862d
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 0x48862b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x488624
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 0x488658
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.004e4900
mov esp, ebp
pop ebp
ret 4