Function at 0x483a30
Capabilities:
Check os version
Create directory
Create process on windows
Get common file path
Get session user name
Get startup folder
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 0x506e97
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1874
call fcn.004e5180
mov eax, dword [0x54c2c0]
xor eax, esp
mov dword [esp + 0x1870], eax
push ebx
push esi
push edi
mov eax, dword [0x54c2c0]
xor eax, esp
push eax
lea eax, [esp + 0x1888]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
lea esi, [eax + 0xb4]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x2c]
push esi
push eax
mov ebx, 0x51bd30
mov dword [esp + 0x2c], esi
call fcn.0045c4b0
lea ecx, [esp + 0x50]
push esi
push ecx
mov ebx, 0x51cc50
mov dword [esp + 0x18a0], 0
call fcn.0045c4b0
lea edx, [esp + 0x4c]
push esi
push edx
mov ebx, str.uninst.exe
mov byte [esp + 0x18a8], 1
call fcn.0045c4b0
lea eax, [esp + 0x68]
push esi
push eax
mov ebx, 0x51cca4
mov byte [esp + 0x18b0], 2
call fcn.0045c4b0
lea ecx, [esp + 0x54]
push esi
push ecx
mov ebx, 0x51cc74
mov byte [esp + 0x18b8], 3
call fcn.0045c4b0
mov byte [esp + 0x18b8], 4
mov eax, dword [esi]
push 0x5c
push eax
call fcn.004e3727
add esp, 0x30
test eax, eax
jne 0x483b17
or eax, 0xffffffff
jmp 0x483b1b
sub eax, dword [esi]
sar eax, 1
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x38]
call fcn.0045d000
push 1
push 0x19
lea edx, [esp + 0x64]
push edx
push 0
mov byte [esp + 0x18a0], 5
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea eax, [esp + 0x30]
push eax
mov ecx, 0x520d5c
call fcn.00459410
lea ecx, [esp + 0x58]
push ecx
mov ecx, 0x520d70
mov byte [esp + 0x1894], 6
call fcn.00459410
lea edx, [esp + 0x54]
push edx
mov ecx, 0x520d84
mov byte [esp + 0x1894], 7
call fcn.00459410
lea eax, [esp + 0x40]
push eax
mov ecx, 0x520d9c
mov byte [esp + 0x1894], 8
call fcn.00459410
lea ecx, [esp + 0x28]
push ecx
mov ecx, 0x520db0
mov byte [esp + 0x1894], 9
call fcn.00459410
push 0
mov byte [esp + 0x1894], 0xa
call dword [sym.imp.ole32.dll_CoInitialize]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
push 0
push esi
lea edx, [esp + 0x64]
push edx
xor edx, edx
mov ebx, 0x520dc4
call fcn.0048edf0
test eax, eax
jne 0x483bfb
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0x1389
call fcn.00489ce0
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xc8], 0
je 0x483c86
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x20]
push edx
mov ebx, 0x51cc74
call fcn.0045c4b0
add esp, 8
push 0
mov byte [esp + 0x1894], 0xb
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0x20]
push esi
lea eax, [esp + 0x64]
push eax
mov edx, 0x520dd0
mov ebx, 0x520de4
call fcn.0048edf0
test eax, eax
jne 0x483c65
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138a
call fcn.00489ce0
mov byte [esp + 0x1890], 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
jmp 0x483d19
mov ecx, dword [0x554ce8]
cmp byte [ecx + 0xb9], 0
je 0x483d25
mov edx, dword [esp + 0x24]
push edx
lea eax, [esp + 0x20]
push eax
mov ebx, 0x51cc74
call fcn.0045c4b0
add esp, 8
push 0
push esi
lea ecx, [esp + 0x64]
mov byte [esp + 0x1898], 0xc
mov edi, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x34]
mov edx, 0x520dd0
mov ebx, 0x520de4
call fcn.0048edf0
test eax, eax
jne 0x483cf8
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138a
call fcn.00489ce0
jmp 0x483cfd
call fcn.00488e30
mov byte [esp + 0x1890], 0xa
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 0x483d25
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
push 0x1a
lea ecx, [esp + 0x474]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x483d6c
lea edi, [esp + 0x46c]
add edi, 0xfffffffe
jmp 0x483d50
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x483d50
mov ecx, 0x15
mov esi, 0x522c18
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
push str.Baofeng.StormPlayer.WIN7APPID
push esi
lea edx, [esp + 0x474]
push edx
xor edx, edx
xor ebx, ebx
call fcn.0048edf0
test eax, eax
jne 0x483daa
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138b
call fcn.00489ce0
mov eax, dword [esp + 0x18]
cmp byte [eax + 0xc8], bl
jne 0x483dff
mov ecx, dword [0x554ce8]
cmp byte [ecx + 0xb9], bl
je 0x483dff
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
push 0
push esi
lea edx, [esp + 0x474]
push edx
xor edx, edx
xor ebx, ebx
call fcn.0048edf0
test eax, eax
jne 0x483dff
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x139c
call fcn.00489ce0
push 0x104
lea eax, [esp + 0x60]
push 0
push eax
call fcn.004e5590
add esp, 0xc
push 1
push 0x17
lea ecx, [esp + 0x64]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea edx, [esp + 0x20]
push edx
lea ecx, [esp + 0x60]
call fcn.00459410
push 5
push 0x520e2c
lea ebx, [esp + 0x28]
mov byte [esp + 0x1898], 0xd
call fcn.0045ae80
mov eax, dword [esp + 0x20]
mov edi, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
push 0
push eax
call edi
push 6
push 0x520e38
call fcn.0045ae80
mov ecx, dword [esp + 0x20]
push 0
push ecx
call edi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x483e95
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
push str.Baofeng.StormPlayer.WIN7APPID
push esi
push eax
xor edx, edx
mov ebx, 0x520dc4
call fcn.0048edf0
test eax, eax
jne 0x483eb0
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138c
call fcn.00489ce0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x483ed4
mov ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x50]
push 0
push esi
push eax
xor edx, edx
mov ebx, 0x520e48
call fcn.0048edf0
test eax, eax
jne 0x483eef
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x139a
call fcn.00489ce0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x483f13
mov ecx, dword [esp + 0x54]
mov edi, dword [esp + 0x3c]
push 0
push esi
push eax
xor edx, edx
mov ebx, 0x520e54
call fcn.0048edf0
test eax, eax
jne 0x483f2e
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138e
call fcn.00489ce0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x483f52
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x48]
push 0
push esi
push eax
xor edx, edx
mov ebx, 0x520e68
call fcn.0048edf0
test eax, eax
jne 0x483f6d
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x138d
call fcn.00489ce0
mov edx, dword [esp + 0x18]
cmp byte [edx + 0xc8], 0
jne 0x483f88
mov eax, dword [0x554ce8]
cmp byte [eax + 0xb9], 0
je 0x483fc7
mov eax, dword [esp + 0x20]
test eax, eax
je 0x483fac
mov ecx, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
push 0
push esi
push eax
xor edx, edx
mov ebx, 0x520de4
call fcn.0048edf0
test eax, eax
jne 0x483fc7
mov edi, dword [esp + 0x18]
lea eax, [esp + 0x10]
add edi, 0xb8
mov dword [esp + 0x10], 0x139b
call fcn.00489ce0
call dword [sym.imp.ole32.dll_CoUninitialize]
lea ecx, [esp + 0x264]
push ecx
mov dword [esp + 0x268], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0x268], 6
jne 0x4840ec
cmp dword [esp + 0x26c], 1
jne 0x4840ec
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x470]
call fcn.00459410
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x18]
push ecx
mov ebx, 0x5194e0
mov byte [esp + 0x1898], 0xe
call fcn.0045c4b0
lea edx, [esp + 0x38]
push edx
lea ecx, [esp + 0x1c]
push ecx
mov ebx, eax
mov byte [esp + 0x18a0], 0xf
call fcn.0045c400
add esp, 0x10
lea edi, [esp + 0x1c]
mov byte [esp + 0x1890], 0x10
call fcn.0045c590
mov byte [esp + 0x1890], 0xf
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 0x484084
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 0xe
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 0x4840ac
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 + 0x1890], 0xd
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 0x4840ec
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push ecx
push 0x51966c
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionApp_PathsStormPlayer.exe
mov ebx, reloc.OLEAUT32.dll_SysReAllocString
call fcn.0045c810
mov esi, dword [esp + 0x20]
add esp, 8
test al, al
jne 0x484127
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x138f
call fcn.00489ce0
push 0x520dc4
push str.DisplayName
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045c810
add esp, 8
test al, al
jne 0x484159
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1390
call fcn.00489ce0
mov edx, dword [esp + 0x3c]
push edx
push str.UninstallString
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045c810
add esp, 8
test al, al
jne 0x48418b
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1391
call fcn.00489ce0
mov eax, dword [esp + 0x2c]
push eax
push str.DisplayIcon
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045c810
add esp, 8
test al, al
jne 0x4841bd
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1392
call fcn.00489ce0
push str.5.27.0731.1111
push str.DisplayVersion
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045c810
add esp, 8
test al, al
jne 0x4841ef
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1393
call fcn.00489ce0
push str.http:__www.Baofeng.com
push str.URLInfoAbout
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045c810
add esp, 8
test al, al
jne 0x484221
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1394
call fcn.00489ce0
push 0x520f7c
push str.Publisher
mov edi, str.SoftwareMicrosoftWindowsCurrentVersionUninstallStormPlayer
call fcn.0045c810
add esp, 8
test al, al
jne 0x484253
lea edi, [esi + 0xb8]
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1395
call fcn.00489ce0
push 4
lea ecx, [esp + 0x20]
push ecx
push 4
push str.InstallActiveFlag
push str.SoftwareBaofengStormPlayerUserConfig
push SysReAllocString
mov dword [esp + 0x34], 1
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
mov ebx, eax
cmp ebx, 5
jne 0x484357
mov esi, dword [sym.imp.ADVAPI32.dll_GetUserNameW]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x268]
push eax
mov dword [esp + 0x1c], 0x202
call esi
push str.SoftwareBaofengStormPlayerUserConfig
push str.CURRENT_USER
push str._s_s
lea ecx, [esp + 0x888]
push 0x800
push ecx
call fcn.004e3755
add esp, 0x14
push 0xf003f
lea edx, [esp + 0x268]
push edx
push 2
lea edi, [esp + 0x888]
call fcn.0045ca70
test eax, eax
je 0x484357
push 4
lea eax, [esp + 0x20]
push eax
push 4
push str.InstallActiveFlag
push str.SoftwareBaofengStormPlayerUserConfig
push SysReAllocString
call dword [sym.imp.SHLWAPI.dll_SHSetValueW]
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x678]
push edx
mov ebx, eax
mov dword [esp + 0x18], 0x202
call esi
push str.SoftwareBaofengStormPlayerUserConfig
push str.CURRENT_USER
push str._s_s
lea eax, [esp + 0x1088]
push 0x800
push eax
call fcn.004e3755
add esp, 0x14
push 2
lea ecx, [esp + 0x678]
push ecx
push 3
lea edi, [esp + 0x1088]
call fcn.0045ca70
test ebx, ebx
sete al
test al, al
jne 0x48437b
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1396
call fcn.00489ce0
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x14], 0
je 0x4843b8
push 1
mov ebx, str.InstallType
mov esi, str.SoftwareBaofengStormPlayerUserConfig
call fcn.0045c7a0
add esp, 4
test al, al
jne 0x4843b8
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x1398
call fcn.00489ce0
push str.URL:_Storm_Download_Protocol
push 0x51966c
mov edi, str.StormDL
mov ebx, SysReAllocString
call fcn.0045c810
push 0x51966c
push str.URL_Protocol
call fcn.0045c810
mov eax, dword [esp + 0x34]
push eax
lea ecx, [esp + 0x60]
push ecx
mov ebx, 0x51ccf8
call fcn.0045c4b0
lea edx, [esp + 0x28]
push 0x519508
push edx
lea ecx, [esp + 0x6c]
mov byte [esp + 0x18b0], 0x11
call fcn.00489aa0
push eax
lea eax, [esp + 0x38]
push eax
mov ebx, 0x519508
mov byte [esp + 0x18b8], 0x12
call fcn.0045c4b0
push eax
lea ecx, [esp + 0x70]
push ecx
mov ebx, str.__TypeDZone__DZUrl__1___FromWeb
mov byte [esp + 0x18c0], 0x13
call fcn.0045c4b0
add esp, 0x30
mov byte [esp + 0x1890], 0x15
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x48446a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 0x16
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 0x484492
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x44]
push ecx
push 0x51966c
mov edi, str.StormDL_shellopencommand
mov ebx, SysReAllocString
call fcn.0045c810
mov edx, dword [esp + 0x20]
add esp, 8
cmp dword [edx + 0x14], 0
jne 0x4844eb
push 1
mov ebx, str.AutoRun
mov esi, str.SoftwareBaofengStormPlayerConfigRepairAutoRun
call fcn.0045c7a0
add esp, 4
test al, al
jne 0x4844eb
mov edi, dword [esp + 0x18]
add edi, 0xb8
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x1399
call fcn.00489ce0
call fcn.0045c710
mov byte [esp + 0x1890], 0x11
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 0x484518
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 0xd
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484540
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 0xa
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 0x484568
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 9
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 0x484590
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 8
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 0x4845b8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 7
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4845e0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 6
mov eax, dword [esp + 0x58]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x484608
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 5
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 0x484630
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 4
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 0x484658
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 3
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 0x484680
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 2
mov eax, dword [esp + 0x50]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4846a8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 1
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 0x4846d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0x1890], 0
mov eax, dword [esp + 0x48]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4846f8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x1890], 0xffffffff
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 0x484723
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x1888]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1870]
xor ecx, esp
call fcn.004e0a00
mov esp, ebp
pop ebp
ret 4