Function at 0x486940
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 0x509fc6
mov eax, dword fs:[0]
push eax
sub esp, 0x430
mov eax, dword [0x5512c0]
xor eax, esp
mov dword [esp + 0x428], eax
push ebx
push esi
push edi
mov eax, dword [0x5512c0]
xor eax, esp
push eax
lea eax, [esp + 0x440]
mov dword fs:[0], eax
cmp byte [0x553092], 0
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], eax
je 0x48699b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov eax, dword [esp + 0x18]
add eax, 0xb4
push eax
lea ecx, [esp + 0x18]
push ecx
mov ebx, 0x5249d0
mov dword [esp + 0x28], eax
call fcn.0045c900
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 0x4869e0
xor bl, bl
jmp 0x486a3a
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 0x486a00
call esi
xor bl, bl
jmp 0x486a3a
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x486a1d
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486a3a
call eax
push edi
test eax, eax
jns 0x486a30
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486a3a
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x486aa3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x5249e4
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x486aa3
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x486ac2
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa1
call fcn.00472e80
cmp byte [0x553092], 0
je 0x486ad6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x14]
push edx
mov ebx, 0x524a04
call fcn.0045c900
add esp, 8
mov ebx, 1
lea edi, [esp + 0x14]
mov byte [esp + 0x448], bl
call fcn.0045c9e0
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 0x486b2a
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 0x486b3e
xor bl, bl
jmp 0x486b95
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 0x486b5d
call esi
xor bl, bl
jmp 0x486b95
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x486b7a
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486b95
call eax
push edi
test eax, eax
jns 0x486b8d
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486b95
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
cmp byte [0x553092], 0
je 0x486bff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524a14
push 0x51ef9c
call fcn.004596f0
mov ecx, dword [0x559e78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x486bff
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov edx, dword [0x559d7c]
push edx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x486c1e
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa2
call fcn.00472e80
cmp byte [0x553092], 0
je 0x486c32
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x524a30
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 2
call fcn.0045c9e0
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 0x486c82
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 0x486c96
xor bl, bl
jmp 0x486cf0
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 0x486cb6
call esi
xor bl, bl
jmp 0x486cf0
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x486cd3
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486cf0
call eax
push edi
test eax, eax
jns 0x486ce6
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486cf0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x486d5a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524a4c
push 0x51ef9c
call fcn.004596f0
mov ecx, dword [0x559e78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x486d5a
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov edx, dword [0x559d7c]
push edx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x486d79
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa3
call fcn.00472e80
cmp byte [0x553092], 0
je 0x486d8d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, str.webplayerPlayerShell.dll
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 3
call fcn.0045c9e0
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 0x486ddd
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 0x486df1
xor bl, bl
jmp 0x486e4b
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 0x486e11
call esi
xor bl, bl
jmp 0x486e4b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x486e2e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486e4b
call eax
push edi
test eax, eax
jns 0x486e41
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486e4b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x486eb5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524aa4
push 0x51ef9c
call fcn.004596f0
mov ecx, dword [0x559e78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x486eb5
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov edx, dword [0x559d7c]
push edx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x486ed4
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa4
call fcn.00472e80
cmp byte [0x553092], 0
je 0x486ee8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x524ad0
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 4
call fcn.0045c9e0
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 0x486f38
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 0x486f4c
xor bl, bl
jmp 0x486fa6
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 0x486f6c
call esi
xor bl, bl
jmp 0x486fa6
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x486f89
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486fa6
call eax
push edi
test eax, eax
jns 0x486f9c
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x486fa6
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x487010
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524aec
push 0x51ef9c
call fcn.004596f0
mov ecx, dword [0x559e78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x487010
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov edx, dword [0x559d7c]
push edx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x48702f
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa5
call fcn.00472e80
cmp byte [0x553092], 0
je 0x487043
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x524b14
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 5
call fcn.0045c9e0
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 0x487093
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 0x4870a7
xor bl, bl
jmp 0x487101
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 0x4870c7
call esi
xor bl, bl
jmp 0x487101
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4870e4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487101
call eax
push edi
test eax, eax
jns 0x4870f7
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487101
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x48716b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524b30
push 0x51ef9c
call fcn.004596f0
mov ecx, dword [0x559e78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x48716b
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov edx, dword [0x559d7c]
push edx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x48718a
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa6
call fcn.00472e80
cmp byte [0x553092], 0
je 0x48719e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, 0x524b58
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 6
call fcn.0045c9e0
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 0x4871ee
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 0x487202
xor bl, bl
jmp 0x48725c
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 0x487222
call esi
xor bl, bl
jmp 0x48725c
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48723f
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48725c
call eax
push edi
test eax, eax
jns 0x487252
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48725c
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x4872c6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524b88
push 0x51ef9c
call fcn.004596f0
mov ecx, dword [0x559e78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x4872c6
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov edx, dword [0x559d7c]
push edx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x4872e5
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa7
call fcn.00472e80
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, str.stormpop.exe
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 7
call fcn.0045c9e0
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 0x487335
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 0x487366
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa8
call fcn.00472e80
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2e]
push eax
mov word [esp + 0x30], dx
call fcn.004e8ae0
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 0x48752b
push 1
push 0x25
lea ecx, [esp + 0x234]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp byte [0x553092], 0
je 0x4873e4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x230]
call fcn.004594a0
push 0xb
push 0x524c70
lea ebx, [esp + 0x18]
mov byte [esp + 0x450], 8
call fcn.0045b2d0
mov edi, dword [esp + 0x10]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487421
xor bl, bl
jmp 0x48747b
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 0x487441
call esi
xor bl, bl
jmp 0x48747b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48745e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48747b
call eax
push edi
test eax, eax
jns 0x487471
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48747b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x553092], 0
je 0x4874e4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524c88
push 0x51ef9c
call fcn.004596f0
mov eax, dword [0x559e78]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x4874e4
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov ecx, dword [0x559d7c]
push ecx
call fcn.004e4fb7
add esp, 0x14
test bl, bl
jne 0x487503
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xfa9
call fcn.00472e80
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 0x48752b
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 0x487bad
call fcn.0045cdb0
test al, al
je 0x48791d
cmp byte [0x553092], 0
je 0x48755a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov edx, dword [esp + 0x20]
push edx
lea eax, [esp + 0x20]
push eax
mov ebx, 0x524ca8
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 9
call fcn.0045c9e0
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 0x4875aa
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [0x550f18]
mov eax, dword [edx + 0xc]
mov ecx, 0x550f18
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.004596f0
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x4875fb
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00459540
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458940
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e68a0
add esp, 0x10
test eax, eax
js 0x487913
cmp eax, dword [edi - 8]
jg 0x487913
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x553092], cl
je 0x4876a4
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524cfc
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x487694
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
add esp, 0x14
cmp byte [0x553092], 0
je 0x4876a4
call ebx
mov dword [0x559d74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x524d34
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xb
call fcn.0045c9e0
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 0x4876f4
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.004596f0
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x487726
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00459540
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458940
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e68a0
add esp, 0x10
test eax, eax
js 0x487913
cmp eax, dword [edi - 8]
jg 0x487913
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x553092], cl
je 0x4877cf
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524d58
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x4877bf
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
add esp, 0x14
cmp byte [0x553092], 0
je 0x4877cf
call ebx
mov dword [0x559d74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x524d84
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xc
call fcn.0045c9e0
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 0x48781f
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.004596f0
mov ebx, dword [esp + 0x20]
add esp, 8
cmp dword [ebx - 4], 1
jle 0x48784f
mov edx, dword [ebx - 0xc]
push edx
mov eax, edi
push eax
call fcn.00459540
mov ebx, dword [esp + 0x18]
push ebx
push 0
call fcn.00458940
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.004e68a0
add esp, 0x10
test eax, eax
js 0x487913
cmp eax, dword [ebx - 8]
jg 0x487913
xor ecx, ecx
mov dword [ebx - 0xc], eax
mov word [ebx + eax*2], cx
cmp byte [0x553092], cl
je 0x4878e6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524da4
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x4878e6
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
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 0x487bad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x487bad
push 0x80070057
call fcn.0045a310
cmp byte [0x553092], 0
je 0x487931
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x524dcc
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xd
call fcn.0045c9e0
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 0x487981
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 [0x553092], 0
je 0x487a0b
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524de8
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x4879fb
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
add esp, 0x14
cmp byte [0x553092], 0
je 0x487a0b
call ebx
mov dword [0x559d74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x524e0c
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xe
call fcn.0045c9e0
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 0x487a5b
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 [0x553092], 0
je 0x487ae5
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524e38
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x487ad5
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
add esp, 0x14
cmp byte [0x553092], 0
je 0x487ae5
call ebx
mov dword [0x559d74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x524e6c
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xf
call fcn.0045c9e0
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 0x487b35
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 [0x553092], 0
je 0x487bad
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x559d78], eax
sub eax, dword [0x559d74]
mov edi, 0x559e78
push eax
push 0x524e8c
push 0x51ef9c
call fcn.004596f0
mov edx, dword [0x559e78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x559d7c]
test eax, eax
je 0x487bad
mov ecx, dword [0x559e78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e7a60
mov eax, dword [0x559d7c]
push eax
call fcn.004e4fb7
add esp, 0x14
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, str.webplayer_npWebStrom.dll
call fcn.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x10
call fcn.0045c9e0
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 0x487bfd
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 0x487c38
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x487c38
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x487c38
push str.DllRegisterNPPlugin
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x487c31
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.0045c900
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x11
call fcn.0045c9e0
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 0x487c88
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 0x487ccd
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 0x487ccb
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x487cc4
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 0x487cf8
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.004e3e00
mov esp, ebp
pop ebp
ret 4