Function at 0x485790
Capabilities:
Check for time delay via gettickcount
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
push 0xffffffffffffffff
push 0x50624e
mov eax, dword fs:[0]
push eax
sub esp, 0x430
mov eax, dword [0x54b2c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
cmp byte [0x54d072], 0
mov eax, dword [ebp + 8]
mov dword [ebp - 0x430], eax
je 0x4857db
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov eax, dword [ebp - 0x430]
add eax, 0xb4
push eax
lea ecx, [ebp - 0x42c]
push ecx
mov ebx, 0x52013c
mov dword [ebp - 0x434], eax
call fcn.0045c970
add esp, 8
mov dword [ebp - 4], 0
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
mov esi, dword [sym.imp.ole32.dll_OleUninitialize]
test eax, eax
jns 0x485824
xor bl, bl
jmp 0x48587e
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 0x485844
call esi
xor bl, bl
jmp 0x48587e
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x485861
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48587e
call eax
push edi
test eax, eax
jns 0x485874
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x48587e
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x4858e3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x520150
push 0x51ab9c
call fcn.00458f90
mov edx, dword [0x553db4]
add esp, 0xc
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x485908
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa1
call fcn.00472960
cmp byte [0x54d072], 0
je 0x48591c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, 0x520170
call fcn.0045c970
add esp, 8
mov ebx, 1
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], bl
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x485970
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x485986
xor bl, bl
jmp 0x4859dd
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 0x4859a5
call esi
xor bl, bl
jmp 0x4859dd
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4859c2
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4859dd
call eax
push edi
test eax, eax
jns 0x4859d5
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4859dd
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
cmp byte [0x54d072], 0
je 0x485a42
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x520180
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x485a67
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa2
call fcn.00472960
cmp byte [0x54d072], 0
je 0x485a7b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, 0x52019c
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 2
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x485acb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x485ae1
xor bl, bl
jmp 0x485b3b
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 0x485b01
call esi
xor bl, bl
jmp 0x485b3b
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x485b1e
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485b3b
call eax
push edi
test eax, eax
jns 0x485b31
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485b3b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x485ba0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x5201b8
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x485bc5
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa3
call fcn.00472960
cmp byte [0x54d072], 0
je 0x485bd9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, str.webplayerPlayerShell.dll
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 3
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x485c29
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x485c3f
xor bl, bl
jmp 0x485c99
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 0x485c5f
call esi
xor bl, bl
jmp 0x485c99
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x485c7c
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485c99
call eax
push edi
test eax, eax
jns 0x485c8f
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485c99
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x485cfe
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x520210
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x485d23
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa4
call fcn.00472960
cmp byte [0x54d072], 0
je 0x485d37
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, 0x52023c
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 4
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x485d87
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x485d9d
xor bl, bl
jmp 0x485df7
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 0x485dbd
call esi
xor bl, bl
jmp 0x485df7
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x485dda
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485df7
call eax
push edi
test eax, eax
jns 0x485ded
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485df7
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x485e5c
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x520258
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x485e81
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa5
call fcn.00472960
cmp byte [0x54d072], 0
je 0x485e95
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, 0x520280
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 5
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x485ee5
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x485efb
xor bl, bl
jmp 0x485f55
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 0x485f1b
call esi
xor bl, bl
jmp 0x485f55
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x485f38
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485f55
call eax
push edi
test eax, eax
jns 0x485f4b
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x485f55
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x485fba
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x52029c
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x485fdf
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa6
call fcn.00472960
cmp byte [0x54d072], 0
je 0x485ff3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, 0x5202c4
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 6
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486043
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x486059
xor bl, bl
jmp 0x4860b3
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 0x486079
call esi
xor bl, bl
jmp 0x4860b3
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x486096
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4860b3
call eax
push edi
test eax, eax
jns 0x4860a9
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4860b3
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x486118
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x5202f4
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x48613d
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa7
call fcn.00472960
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x428]
push edx
mov ebx, str.stormpop.exe
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 7
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48618d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [ebp - 0x42c]
push str._InstallReg
push ecx
call fcn.004586f0
add esp, 8
test al, al
jne 0x4861c6
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x428]
mov dword [ebp - 0x428], 0xfa8
call fcn.00472960
xor edx, edx
push 0x206
push edx
lea eax, [ebp - 0x21a]
push eax
mov word [ebp - 0x21c], dx
call fcn.004e4be0
add esp, 0xc
lea ecx, [ebp - 0x428]
push ecx
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x438]
push eax
push str.ThreadingModel
push str.CLSIDF6D90F11_9C73_11D3_B32E_00C04F990BB4InProcServer32
push SysReAllocString
mov dword [ebp - 0x428], 0x102
mov dword [ebp - 0x438], 1
call dword [sym.imp.SHLWAPI.dll_SHGetValueW]
test eax, eax
je 0x486398
push 1
push 0x25
lea ecx, [ebp - 0x424]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp byte [0x54d072], 0
je 0x486251
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
lea edx, [ebp - 0x428]
push edx
lea ecx, [ebp - 0x424]
call fcn.00459530
push 0xb
push 0x5203e0
lea ebx, [ebp - 0x428]
mov byte [ebp - 4], 8
call fcn.0045af80
mov edi, dword [ebp - 0x428]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jns 0x48628f
xor bl, bl
jmp 0x4862e9
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 0x4862af
call esi
xor bl, bl
jmp 0x4862e9
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
jne 0x4862cc
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4862e9
call eax
push edi
test eax, eax
jns 0x4862df
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
xor bl, bl
jmp 0x4862e9
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
mov bl, 1
cmp byte [0x54d072], 0
je 0x48634d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x5203f8
push 0x51ab9c
call fcn.00458f90
mov eax, dword [0x553db4]
add esp, 0xc
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
test bl, bl
jne 0x486372
mov edi, dword [ebp - 0x430]
add edi, 0xb8
lea eax, [ebp - 0x438]
mov dword [ebp - 0x438], 0xfa9
call fcn.00472960
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x428]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486398
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
cmp byte [0x54d072], 0
je 0x4863ac
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ecx, dword [ebp - 0x434]
push ecx
lea edx, [ebp - 0x438]
push edx
mov ebx, 0x520418
call fcn.0045c970
add esp, 8
lea edi, [ebp - 0x42c]
mov byte [ebp - 4], 9
call fcn.0045ca50
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x438]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4863fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [ebp - 0x42c]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
js 0x486443
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 0x486441
push str.DllRegisterServer
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x48643a
call eax
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call esi
cmp byte [0x54d072], 0
je 0x4864a8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x520434
push 0x51ab9c
call fcn.00458f90
mov ecx, dword [0x553db4]
add esp, 0xc
push ecx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov eax, dword [0x553db4]
mov edx, dword [0x553cbc]
mov ecx, dword [eax - 0xc]
push edx
push ecx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x42c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4864d1
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004e0040
mov esp, ebp
pop ebp
ret 4