Function at 0x487340
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 0x50ae46
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 0x48739b
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, 0x525ce8
mov dword [esp + 0x28], eax
call fcn.0045ce40
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 0x4873e0
xor bl, bl
jmp 0x48743a
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 0x487400
call esi
xor bl, bl
jmp 0x48743a
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48741d
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48743a
call eax
push edi
test eax, eax
jns 0x487430
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48743a
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x4874a3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525cfc
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4874a3
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x4874c2
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa1
call fcn.00473430
cmp byte [0x554092], 0
je 0x4874d6
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, 0x525d1c
call fcn.0045ce40
add esp, 8
mov ebx, 1
lea edi, [esp + 0x14]
mov byte [esp + 0x448], bl
call fcn.0045cf20
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 0x48752a
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 0x48753e
xor bl, bl
jmp 0x487595
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 0x48755d
call esi
xor bl, bl
jmp 0x487595
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48757a
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487595
call eax
push edi
test eax, eax
jns 0x48758d
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487595
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
cmp byte [0x554092], 0
je 0x4875ff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525d2c
push 0x52009c
call fcn.00459820
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4875ff
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x48761e
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa2
call fcn.00473430
cmp byte [0x554092], 0
je 0x487632
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, 0x525d48
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 2
call fcn.0045cf20
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 0x487682
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 0x487696
xor bl, bl
jmp 0x4876f0
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 0x4876b6
call esi
xor bl, bl
jmp 0x4876f0
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4876d3
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4876f0
call eax
push edi
test eax, eax
jns 0x4876e6
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4876f0
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x48775a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525d64
push 0x52009c
call fcn.00459820
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x48775a
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x487779
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa3
call fcn.00473430
cmp byte [0x554092], 0
je 0x48778d
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.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 3
call fcn.0045cf20
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 0x4877dd
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 0x4877f1
xor bl, bl
jmp 0x48784b
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 0x487811
call esi
xor bl, bl
jmp 0x48784b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x48782e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48784b
call eax
push edi
test eax, eax
jns 0x487841
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48784b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x4878b5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525dbc
push 0x52009c
call fcn.00459820
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4878b5
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x4878d4
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa4
call fcn.00473430
cmp byte [0x554092], 0
je 0x4878e8
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, 0x525de8
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 4
call fcn.0045cf20
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 0x487938
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 0x48794c
xor bl, bl
jmp 0x4879a6
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 0x48796c
call esi
xor bl, bl
jmp 0x4879a6
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487989
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4879a6
call eax
push edi
test eax, eax
jns 0x48799c
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4879a6
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487a10
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525e04
push 0x52009c
call fcn.00459820
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487a10
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x487a2f
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa5
call fcn.00473430
cmp byte [0x554092], 0
je 0x487a43
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, 0x525e2c
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 5
call fcn.0045cf20
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 0x487a93
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 0x487aa7
xor bl, bl
jmp 0x487b01
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 0x487ac7
call esi
xor bl, bl
jmp 0x487b01
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487ae4
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487b01
call eax
push edi
test eax, eax
jns 0x487af7
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487b01
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487b6b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525e48
push 0x52009c
call fcn.00459820
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487b6b
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x487b8a
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa6
call fcn.00473430
cmp byte [0x554092], 0
je 0x487b9e
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, 0x525e70
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 6
call fcn.0045cf20
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 0x487bee
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 0x487c02
xor bl, bl
jmp 0x487c5c
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 0x487c22
call esi
xor bl, bl
jmp 0x487c5c
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487c3f
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487c5c
call eax
push edi
test eax, eax
jns 0x487c52
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487c5c
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487cc6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525ea0
push 0x52009c
call fcn.00459820
mov ecx, dword [0x55ae78]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487cc6
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov edx, dword [0x55ad7c]
push edx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x487ce5
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa7
call fcn.00473430
mov eax, dword [esp + 0x20]
push eax
lea ecx, [esp + 0x14]
push ecx
mov ebx, str.stormpop.exe
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 7
call fcn.0045cf20
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 0x487d35
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 0x487d66
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0xfa8
call fcn.00473430
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x2e]
push eax
mov word [esp + 0x30], dx
call fcn.004e98c0
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 0x487f2b
push 1
push 0x25
lea ecx, [esp + 0x234]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp byte [0x554092], 0
je 0x487de4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad74], eax
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x230]
call fcn.004595d0
push 0xb
push 0x525f88
lea ebx, [esp + 0x18]
mov byte [esp + 0x450], 8
call fcn.0045b440
mov edi, dword [esp + 0x10]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x487e21
xor bl, bl
jmp 0x487e7b
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 0x487e41
call esi
xor bl, bl
jmp 0x487e7b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x487e5e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487e7b
call eax
push edi
test eax, eax
jns 0x487e71
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x487e7b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x554092], 0
je 0x487ee4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x525fa0
push 0x52009c
call fcn.00459820
mov eax, dword [0x55ae78]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x487ee4
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov ecx, dword [0x55ad7c]
push ecx
call fcn.004e5d97
add esp, 0x14
test bl, bl
jne 0x487f03
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0xfa9
call fcn.00473430
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 0x487f2b
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 0x4885ad
call fcn.0045d2f0
test al, al
je 0x48831d
cmp byte [0x554092], 0
je 0x487f5a
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, 0x525fc0
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 9
call fcn.0045cf20
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 0x487faa
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.00459820
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x487ffb
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00459670
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458900
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e7680
add esp, 0x10
test eax, eax
js 0x488313
cmp eax, dword [edi - 8]
jg 0x488313
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x554092], cl
je 0x4880a4
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526014
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x488094
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
add esp, 0x14
cmp byte [0x554092], 0
je 0x4880a4
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x52604c
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xb
call fcn.0045cf20
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 0x4880f4
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.00459820
mov edi, dword [esp + 0x20]
add esp, 8
cmp dword [edi - 4], 1
jle 0x488126
mov edx, dword [edi - 0xc]
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.00459670
mov edi, dword [esp + 0x18]
push edi
push 0
call fcn.00458900
mov eax, dword [edi - 8]
push eax
push edi
call fcn.004e7680
add esp, 0x10
test eax, eax
js 0x488313
cmp eax, dword [edi - 8]
jg 0x488313
xor ecx, ecx
mov dword [edi - 0xc], eax
mov word [edi + eax*2], cx
cmp byte [0x554092], cl
je 0x4881cf
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526070
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4881bf
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
add esp, 0x14
cmp byte [0x554092], 0
je 0x4881cf
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x52609c
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xc
call fcn.0045cf20
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 0x48821f
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.00459820
mov ebx, dword [esp + 0x20]
add esp, 8
cmp dword [ebx - 4], 1
jle 0x48824f
mov edx, dword [ebx - 0xc]
push edx
mov eax, edi
push eax
call fcn.00459670
mov ebx, dword [esp + 0x18]
push ebx
push 0
call fcn.00458900
mov eax, dword [ebx - 8]
push eax
push ebx
call fcn.004e7680
add esp, 0x10
test eax, eax
js 0x488313
cmp eax, dword [ebx - 8]
jg 0x488313
xor ecx, ecx
mov dword [ebx - 0xc], eax
mov word [ebx + eax*2], cx
cmp byte [0x554092], cl
je 0x4882e6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x5260bc
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4882e6
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
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 0x4885ad
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4885ad
push 0x80070057
call fcn.0045a480
cmp byte [0x554092], 0
je 0x488331
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, 0x5260e4
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xd
call fcn.0045cf20
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 0x488381
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 0x48840b
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526100
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4883fb
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
add esp, 0x14
cmp byte [0x554092], 0
je 0x48840b
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x526124
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xe
call fcn.0045cf20
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 0x48845b
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 0x4884e5
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x526150
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4884d5
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
add esp, 0x14
cmp byte [0x554092], 0
je 0x4884e5
call ebx
mov dword [0x55ad74], eax
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x526184
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0xf
call fcn.0045cf20
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 0x488535
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 0x4885ad
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x55ad78], eax
sub eax, dword [0x55ad74]
mov edi, 0x55ae78
push eax
push 0x5261a4
push 0x52009c
call fcn.00459820
mov edx, dword [0x55ae78]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x55ad7c]
test eax, eax
je 0x4885ad
mov ecx, dword [0x55ae78]
mov edx, dword [ecx - 0xc]
push eax
push edx
push 2
push ecx
call fcn.004e8840
mov eax, dword [0x55ad7c]
push eax
call fcn.004e5d97
add esp, 0x14
mov ecx, dword [esp + 0x20]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, str.webplayer_npWebStrom.dll
call fcn.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x10
call fcn.0045cf20
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 0x4885fd
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 0x488638
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x488638
push edi
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x488638
push str.DllRegisterNPPlugin
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x488631
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.0045ce40
add esp, 8
lea edi, [esp + 0x14]
mov byte [esp + 0x448], 0x11
call fcn.0045cf20
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 0x488688
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 0x4886cd
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 0x4886cb
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4886c4
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 0x4886f8
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.004e4be0
mov esp, ebp
pop ebp
ret 4