Function at 0x4840a0
Capabilities:
Check os version
Create directory
Create process on windows
Get common file path
Get session user name
Persist via app paths registry key
Persist via default file association registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5063f1
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1864
call fcn.004e47d0
mov eax, dword [0x54b2c0]
xor eax, esp
mov dword [esp + 0x1860], eax
push ebx
push esi
push edi
mov eax, dword [0x54b2c0]
xor eax, esp
push eax
lea eax, [esp + 0x1878]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea esi, [eax + 0xb4]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x28]
push esi
push eax
mov ebx, 0x51abc8
mov dword [esp + 0x38], esi
call fcn.0045c970
lea ecx, [esp + 0x48]
push esi
push ecx
mov ebx, 0x51ba88
mov dword [esp + 0x1890], 0
call fcn.0045c970
lea edx, [esp + 0x44]
push esi
push edx
mov ebx, str.uninst.exe
mov byte [esp + 0x1898], 1
call fcn.0045c970
mov byte [esp + 0x1898], 2
mov eax, dword [esi]
push 0x5c
push eax
call fcn.004e2d67
add esp, 0x20
test eax, eax
jne 0x484157
or eax, 0xffffffff
jmp 0x48415b
sub eax, dword [esi]
sar eax, 1
lea ecx, [esp + 0x20]
mov edx, esi
call fcn.0045d4c0
push 1
push 0x19
lea eax, [esp + 0x25c]
push eax
mov byte [esp + 0x188c], 3
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0
call esi
lea ecx, [esp + 0x2c]
push ecx
mov ecx, 0x51fa44
call fcn.00459530
lea edx, [esp + 0x3c]
push edx
mov ecx, 0x51fa58
mov byte [esp + 0x1884], 4
call fcn.00459530
lea eax, [esp + 0x44]
push eax
mov ecx, 0x51fa6c
mov byte [esp + 0x1884], 5
call fcn.00459530
push 0
mov byte [esp + 0x1884], 6
call dword [sym.imp.ole32.dll_CoInitialize]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x28]
push 0
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x25c]
push edx
xor edx, edx
mov ebx, 0x51fa84
call fcn.0048e6e0
test eax, eax
jne 0x484213
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1389
call fcn.00472960
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x6c], 0
je 0x4842ec
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x18]
push edx
mov ebx, 0x51baac
call fcn.0045c970
add esp, 8
lea eax, [esp + 0x1c]
push eax
mov ecx, 0x51fa90
mov byte [esp + 0x1884], 7
call fcn.00459530
mov byte [esp + 0x1880], 8
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
push 0
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x25c]
push edx
mov edx, str._DESKTOP
mov ebx, 0x51fab8
call fcn.0048e6e0
test eax, eax
jne 0x48429c
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138a
call fcn.00472960
mov byte [esp + 0x1880], 7
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 0x4842c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 6
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 0x4842ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
push 0x1a
lea ecx, [esp + 0x464]
push ecx
push 0
call esi
test eax, eax
je 0x48432e
lea edi, [esp + 0x45c]
add edi, 0xfffffffe
lea ebx, [ebx]
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x484310
mov ecx, 0x15
mov esi, 0x521698
rep movsd dword es:[edi], dword [esi]
mov esi, dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push str.Baofeng.StormPlayer.WIN7APPID
push edx
lea eax, [esp + 0x464]
push eax
xor edx, edx
xor ebx, ebx
call fcn.0048e6e0
test eax, eax
jne 0x484370
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138b
call fcn.00472960
push 0x104
lea ecx, [esp + 0x258]
push 0
push ecx
call fcn.004e4be0
add esp, 0xc
push 1
push 0x17
lea edx, [esp + 0x25c]
push edx
push 0
call esi
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x258]
call fcn.00459530
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x18]
push edx
mov ebx, 0x518580
mov byte [esp + 0x1888], 9
call fcn.0045c970
push eax
lea eax, [esp + 0x1c]
push eax
mov ebx, 0x51fa84
mov byte [esp + 0x1890], 0xa
call fcn.0045c970
add esp, 0x10
lea edi, [esp + 0x24]
mov byte [esp + 0x1880], 0xb
call fcn.0045ca50
mov byte [esp + 0x1880], 0xa
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 0x484418
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 9
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 0x484440
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x24]
push 0
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x484478
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x28]
push str.Baofeng.StormPlayer.WIN7APPID
push edx
push eax
xor edx, edx
mov ebx, 0x51fa84
call fcn.0048e6e0
test eax, eax
jne 0x484495
mov esi, dword [esp + 0x18]
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138c
call fcn.00472960
jmp 0x484499
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4844c1
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x40]
push 0
push ecx
mov ecx, dword [esp + 0x44]
push eax
xor edx, edx
mov ebx, 0x51fb00
call fcn.0048e6e0
test eax, eax
jne 0x4844d8
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138d
call fcn.00472960
mov eax, dword [esp + 0x24]
test eax, eax
je 0x484500
mov edx, dword [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov edi, dword [esp + 0x34]
push 0
push edx
push eax
xor edx, edx
mov ebx, 0x51fb14
call fcn.0048e6e0
test eax, eax
jne 0x484517
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138e
call fcn.00472960
call dword [sym.imp.ole32.dll_CoUninitialize]
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x50], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x50], 6
jne 0x484630
cmp dword [esp + 0x54], 1
jne 0x484630
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x460]
call fcn.00459530
lea edx, [esp + 0x1c]
push edx
lea eax, [esp + 0x18]
push eax
mov ebx, 0x518580
mov byte [esp + 0x1888], 0xc
call fcn.0045c970
lea ecx, [esp + 0x34]
push ecx
lea edx, [esp + 0x1c]
push edx
mov ebx, eax
mov byte [esp + 0x1890], 0xd
call fcn.0045c8c0
add esp, 0x10
lea edi, [esp + 0x1c]
mov byte [esp + 0x1880], 0xe
call fcn.0045ca50
mov byte [esp + 0x1880], 0xd
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 0x4845c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 0xc
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 0x4845f0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x1c]
push 0
push 0
push 0
push ecx
push str.taskbarpin
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov byte [esp + 0x1880], 9
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x484630
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x28]
push ecx
push 0x51517c
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionApp_PathsStormPlayer.exe
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x484667
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138f
call fcn.00472960
push 0x51fa84
push str.DisplayName
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x484699
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1390
call fcn.00472960
mov edx, dword [esp + 0x34]
push edx
push str.UninstallString
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x4846cb
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1391
call fcn.00472960
mov eax, dword [esp + 0x28]
push eax
push str.DisplayIcon
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x4846fd
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1392
call fcn.00472960
push str.5.21.0131.1111
push str.DisplayVersion
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x48472f
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1393
call fcn.00472960
push str.http:__www.Baofeng.com
push str.URLInfoAbout
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x484761
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1394
call fcn.00472960
push 0x51fc24
push str.Publisher
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045ccd0
add esp, 8
test al, al
jne 0x484793
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1395
call fcn.00472960
push 4
lea ecx, [esp + 0x18]
push ecx
push 4
push str.InstallActiveFlag
push str.SoftwareBaofengStormPlayerUserConfig
push SysReAllocString
mov dword [esp + 0x2c], 1
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov ebx, eax
cmp ebx, 5
jne 0x484895
mov esi, dword [sym.imp.ADVAPI32.dll_GetUserNameW]
lea edx, [esp + 0x10]
push edx
lea eax, [esp + 0x50]
push eax
mov dword [esp + 0x18], 0x202
call esi
push str.SoftwareBaofengStormPlayerUserConfig
push str.CURRENT_USER
push str._s_s
lea ecx, [esp + 0x878]
push 0x800
push ecx
call fcn.004e2d95
add esp, 0x14
push 0xf003f
lea edx, [esp + 0x50]
push edx
push 2
lea edi, [esp + 0x878]
call fcn.0045cf30
test eax, eax
je 0x484891
push 4
lea eax, [esp + 0x18]
push eax
push 4
push str.InstallActiveFlag
push str.SoftwareBaofengStormPlayerUserConfig
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x668]
push edx
mov ebx, eax
mov dword [esp + 0x24], 0x202
call esi
push str.SoftwareBaofengStormPlayerUserConfig
push str.CURRENT_USER
push str._s_s
lea eax, [esp + 0x1078]
push 0x800
push eax
call fcn.004e2d95
add esp, 0x14
push 2
lea ecx, [esp + 0x668]
push ecx
push 3
lea edi, [esp + 0x1078]
call fcn.0045cf30
mov esi, dword [esp + 0x18]
test ebx, ebx
sete al
test al, al
jne 0x4848b5
lea edi, [esi + 0xb8]
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1396
call fcn.00472960
cmp dword [esi + 0x14], 0
je 0x4848f2
push 1
mov ebx, str.InstallType
mov esi, str.SoftwareBaofengStormPlayerUserConfig
call fcn.0045cc60
add esp, 4
test al, al
jne 0x4848ee
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x1398
call fcn.00472960
mov esi, dword [esp + 0x18]
push str.URL:_Storm_Download_Protocol
push 0x51517c
mov edi, str.StormDL
mov ebx, SysReAllocString
call fcn.0045ccd0
push 0x51517c
push str.URL_Protocol
call fcn.0045ccd0
mov edx, dword [esp + 0x40]
push edx
lea eax, [esp + 0x4c]
push eax
mov ebx, 0x51bb30
call fcn.0045c970
lea ecx, [esp + 0x48]
push 0x5185a8
push ecx
lea ecx, [esp + 0x58]
mov byte [esp + 0x18a0], 0xf
call fcn.00489800
push eax
lea edx, [esp + 0x34]
push edx
mov ebx, 0x5185a8
mov byte [esp + 0x18a8], 0x10
call fcn.0045c970
push eax
lea eax, [esp + 0x74]
push eax
mov ebx, str.__TypeDZone__DZUrl__1___FromWeb
mov byte [esp + 0x18b0], 0x11
call fcn.0045c970
add esp, 0x30
mov byte [esp + 0x1880], 0x13
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 0x4849a4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 0x14
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4849cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x48]
push ecx
push 0x51517c
mov edi, str.StormDL_shellopencommand
mov ebx, SysReAllocString
call fcn.0045ccd0
add esp, 8
cmp dword [esi + 0x14], 0
jne 0x484a21
push 1
mov ebx, str.AutoRun
mov esi, str.SoftwareBaofengStormPlayerConfigRepairAutoRun
call fcn.0045cc60
add esp, 4
test al, al
jne 0x484a21
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1399
call fcn.00472960
call fcn.0045cbd0
mov byte [esp + 0x1880], 0xf
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x484a4e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 9
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484a76
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 6
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484a9e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 5
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484ac6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 4
mov eax, dword [esp + 0x3c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484aee
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 3
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484b16
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484b3e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 1
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484b66
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1880], 0
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484b8e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1880], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484bb9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x1878]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1860]
xor ecx, esp
call fcn.004e0040
mov esp, ebp
pop ebp
ret 4