joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4711a0
Capabilities:
Get graphical window text

Disassembly:
mov eax, dword [ebx]
push esi
push eax
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea esi, [eax + 1]
test esi, esi
jns 0x4711bb
push 0x80070057
call fcn.00459fc0
mov eax, dword [edi]
mov edx, dword [eax - 8]
mov ecx, 1
sub ecx, dword [eax - 4]
sub edx, esi
or ecx, edx
jge 0x4711d7
mov eax, esi
mov ecx, edi
call fcn.004593e0
mov eax, dword [edi]
push esi
push eax
mov eax, dword [ebx]
push eax
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov esi, eax
cmp esi, 0xffffffff
jne 0x4711fe
mov eax, dword [edi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x471202
push ecx
push eax
call fcn.004e26e4
add esp, 8
test eax, eax
js 0x4711b1
mov ecx, dword [edi]
cmp eax, dword [ecx - 8]
jg 0x4711b1
mov dword [ecx - 0xc], eax
mov ecx, dword [edi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, esi
pop esi
ret

Function at 0x471450
Capabilities:
Check internet connectivity via wininet

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5067b0
mov eax, dword fs:[0]
push eax
sub esp, 0xc
push esi
push edi
mov eax, dword [0x54b2c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov eax, dword [esi + 0x1a0]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x47156c
lea ecx, [ebp - 0x10]
xor edi, edi
push ecx
mov dword [ebp - 0x10], edi
call dword [sym.imp.SensApi.dll_IsNetworkAlive]
test eax, eax
jne 0x4714d5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, edi
je 0x47156c
push edi
lea edx, [ebp - 0x10]
push edx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
je 0x47156c
mov al, byte [ebp - 0x10]
test al, 0x20
jne 0x47156c
test al, 7
je 0x47156c
cmp byte [esi + 0x230], 0
jne 0x47156c
mov byte [esi + 0x230], 1
mov eax, dword [0x54af18]
mov edx, dword [eax + 0xc]
mov ecx, 0x54af18
call edx
add eax, 0x10
mov dword [ebp - 0x14], eax
push str.5.21.0131.1111
mov dword [ebp - 4], edi
push str.http:__action.logger.baofeng.com_ninstall_action.html
push str._s_type3uidver_sstartmi_overendrls2envbitmovie
lea edi, [ebp - 0x14]
call fcn.00458f90
mov edi, dword [ebp - 0x14]
add esp, 8
add edi, 0xfffffff0
mov eax, edi
mov dword [ebp - 0x18], esp
mov esi, esp
call fcn.0045cb40
add eax, 0x10
mov dword [esi], eax
mov byte [ebp - 4], 1
mov esi, dword [0x553cc8]
call fcn.0046a3c0
mov esi, eax
mov byte [ebp - 4], 0
call fcn.00473d30
mov dword [ebp - 4], 0xffffffff
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x47156c
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x471eb0
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5066d6
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x54b2c0]
xor eax, esp
mov dword [esp + 0x218], eax
push ebx
push esi
push edi
mov eax, dword [0x54b2c0]
xor eax, esp
push eax
lea eax, [esp + 0x230]
mov dword fs:[0], eax
mov eax, dword [0x553cc8]
cmp dword [eax + 0x24], 0
je 0x471f40
push 0x5186b0
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [0x553cb0], eax
test eax, eax
je 0x47204d
push 0x5186dc
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x47204d
push 5
push 0
push 0
push str.http:__www.baofeng.com_permit.html
push 0x518064
push 0
call eax
jmp 0x47204d
xor ecx, ecx
push 0x206
push ecx
lea edx, [esp + 0x26]
push edx
mov word [esp + 0x28], cx
call fcn.004e4be0
add esp, 0xc
lea eax, [esp + 0x1c]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call fcn.00459530
push 0xb
push str.License.txt
lea ebx, [esp + 0x1c]
mov dword [esp + 0x240], 6
call fcn.0045af80
mov eax, dword [0x553cc0]
mov esi, dword [esp + 0x14]
push str.RESOURCE_DATA
push 0x88
push eax
mov edi, eax
call dword [sym.imp.KERNEL32.dll_FindResourceW]
test eax, eax
je 0x472022
push esi
mov ecx, edi
call fcn.00458760
add esp, 4
test al, al
je 0x472022
lea edx, [esp + 0x18]
push edx
mov ecx, str.notepad.exe
call fcn.00459530
mov byte [esp + 0x238], 7
mov eax, dword [esp + 0x14]
mov ecx, dword [eax - 0xc]
push ecx
push eax
lea ebx, [esp + 0x20]
call fcn.0045af80
mov eax, dword [esp + 0x18]
push eax
push 0
call fcn.004586f0
mov byte [esp + 0x240], 6
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x472022
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [esp + 0x238], 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 0x47204d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x230]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x218]
xor ecx, esp
call fcn.004e0040
mov esp, ebp
pop ebp
ret
Function at 0x472a90
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
sub esp, 0x1c
push ebx
xor ebx, ebx
push esi
push edi
cmp dword [eax - 0xc], ebx
jne 0x472ac8
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x472abf
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 1
call esi
lea ecx, [ebp - 8]
push ecx
mov ecx, dword [ebp + 8]
lea edx, [ebp - 0x10]
mov edi, eax
push edx
lea eax, [ebp - 0x18]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x472b05
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 0xc]
shrd edx, eax, 0x14
shr eax, 0x14
mov dword [ecx], edx
mov ebx, 1
push edi
call esi
mov eax, dword [ebp + 8]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x472b27
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x4733f0
Capabilities:
Check mutex on windows
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5065d8
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push esi
push edi
mov eax, dword [0x54b2c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
push 0x51a414
xor ebx, ebx
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esi + 0x7c], eax
cmp eax, ebx
je 0x47343d
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x473459
push str.Storm2SetupMutex
push ebx
push 0x1f0001
call dword [sym.imp.KERNEL32.dll_OpenMutexW]
cmp eax, ebx
je 0x473487
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esi + 0xc8], bl
jne 0x473473
push ebx
push 0x519664
push 0x51a438
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00473580
push ebx
push ebx
push ebx
push ebx
mov dword [esi + 0x6c], 1
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push ebx
push ebx
push esi
push 0x473ea0
push ebx
push ebx
mov dword [esi + 0x74], eax
mov dword [esi + 0x78], ebx
mov dword [esi + 0x70], ebx
call fcn.004e1318
mov dword [esi + 0x70], eax
mov eax, dword [0x54af18]
mov edx, dword [eax + 0xc]
add esp, 0x18
mov ecx, 0x54af18
call edx
add eax, 0x10
mov dword [ebp - 0x10], eax
push str.5.21.0131.1111
push str.http:__action.logger.baofeng.com_ninstall_action.html
push str._s_type1uidver_sstart1mi_overendrlsenvbitmovie
lea edi, [ebp - 0x10]
mov dword [ebp - 4], ebx
call fcn.00458f90
mov edi, dword [ebp - 0x10]
add esp, 8
add edi, 0xfffffff0
mov eax, edi
mov dword [ebp - 0x14], esp
mov ebx, esp
call fcn.0045cb40
add eax, 0x10
mov dword [ebx], eax
call fcn.00473d30
mov ebx, esi
call fcn.004736a0
mov dword [ebp - 4], 0xffffffff
test eax, eax
jne 0x47354a
lea eax, [edi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x473536
mov ecx, dword [edi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push edi
call eax
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x473563
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x473580
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov eax, dword [0x54b2c0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x118]
mov ebx, 0x114
push eax
mov esi, ecx
mov dword [ebp - 0x118], ebx
call edi
cmp dword [ebp - 0x114], 6
jne 0x4735d0
cmp dword [ebp - 0x110], 1
jne 0x4735d0
push 0x51a4fc
mov ebx, 1
jmp 0x4735fa
lea ecx, [ebp - 0x118]
push ecx
mov dword [ebp - 0x118], ebx
call edi
cmp dword [ebp - 0x114], 5
jne 0x473603
mov ebx, 1
cmp dword [ebp - 0x110], ebx
jne 0x473603
push 0x51a500
lea eax, [esi + 0x64]
push eax
call fcn.00459440
call fcn.0045ce30
add esi, 0x68
mov ebx, 1
test al, al
je 0x47361b
push 0x51a500
jmp 0x473620
push 0x51a4fc
push esi
call fcn.00459440
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004e0040
mov esp, ebp
pop ebp
ret
Function at 0x474160
Capabilities:
Get session information
Get session user name

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push ebx
push esi
push 0x51517c
push edi
xor ebx, ebx
xor esi, esi
call fcn.00459440
lea eax, [ebp - 8]
push eax
lea ecx, [ebp - 4]
push ecx
push 5
push 0xffffffffffffffff
push esi
mov dword [ebp - 4], esi
mov dword [ebp - 8], esi
call dword [sym.imp.WTSAPI32.dll_WTSQuerySessionInformationW]
test eax, eax
je 0x4741d1
mov edx, dword [ebp - 4]
cmp edx, esi
jne 0x47419f
xor eax, eax
jmp 0x4741b3
mov eax, edx
lea ebx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x4741a4
sub eax, ebx
sar eax, 1
push edx
push edi
mov ebx, eax
call fcn.00459440
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.WTSAPI32.dll_WTSFreeMemory]
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x4742c0
Capabilities:
Create thread

Disassembly:
mov ecx, dword [ebx + 0xbc]
push esi
mov esi, dword [ebx + 0xb8]
cmp esi, ecx
je 0x4742f4
mov eax, ecx
sub eax, ecx
push edi
sar eax, 2
lea edi, [eax*4]
push edi
push ecx
push esi
call fcn.004e00b0
add esp, 0xc
add edi, esi
mov dword [ebx + 0xbc], edi
pop edi
push 0
push 0
push ebx
push 0x474510
push 0
push 0
call fcn.004e1318
add esp, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop esi
ret
Function at 0x474320
Capabilities:
Check for time delay via gettickcount
Check internet connectivity via wininet
Print debug messages
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5064e8
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x54b2c0]
xor eax, esp
push eax
lea eax, [esp + 0x20]
mov dword fs:[0], eax
cmp byte [0x54d072], 0
je 0x474360
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ebx, dword [ebp + 8]
push ebx
call fcn.00487b70
cmp byte [0x54d072], 0
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
je 0x4743cf
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x51ab88
push 0x51ab9c
call fcn.00458f90
mov eax, dword [0x553db4]
add esp, 0xc
push eax
call esi
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
add ebx, 0xb4
push ebx
lea ecx, [esp + 0x1c]
push ecx
mov ebx, 0x51abc8
call fcn.0045c970
xor ebx, ebx
mov dword [esp + 0x30], ebx
mov edx, dword [esp + 0x20]
push ebx
push edx
call fcn.004586f0
mov dword [esp + 0x38], 0xffffffff
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
add esp, 0x10
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x474421
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
push 1
call fcn.00458a70
add esp, 4
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], ebx
call dword [sym.imp.SensApi.dll_IsNetworkAlive]
test eax, eax
jne 0x474474
call dword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x4744f5
push ebx
lea edx, [esp + 0x18]
push edx
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
test eax, eax
je 0x4744f5
mov al, byte [esp + 0x14]
test al, 0x20
jne 0x4744f5
test al, 7
je 0x4744f5
cmp byte [0x54d072], bl
je 0x474487
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb4], eax
mov ebx, dword [ebp + 8]
call fcn.00486ab0
push ebx
call fcn.004870e0
cmp byte [0x54d072], 0
je 0x4744f5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x553cb8], eax
sub eax, dword [0x553cb4]
mov edi, 0x553db4
push eax
push 0x51abe8
push 0x51ab9c
call fcn.00458f90
mov eax, dword [0x553db4]
add esp, 0xc
push eax
call esi
mov eax, dword [0x553db4]
mov ecx, dword [0x553cbc]
mov edx, dword [eax - 0xc]
push ecx
push edx
push 2
push eax
call fcn.004e3b98
mov eax, dword [0x553cbc]
push eax
call fcn.004e11f7
add esp, 0x14
mov ecx, dword [esp + 0x20]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x47e280
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x507626
mov eax, dword fs:[0]
push eax
sub esp, 0x218
mov eax, dword [0x54b2c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [edi + 0x5c]
sub eax, 0x10
call fcn.0045cb40
lea ebx, [eax + 0x10]
mov dword [ebp - 0x224], ebx
lea esi, [ebp - 0x220]
mov eax, edi
mov dword [ebp - 4], 0
call fcn.00474290
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x220]
push esi
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsSameRootW]
neg eax
sbb eax, eax
push esi
inc eax
push ebx
mov ecx, edi
mov dword [edi + 0x44], eax
call fcn.00488ef0
push 0
push ebx
mov dword [ebp - 0x21c], eax
call fcn.0045c300
add esp, 8
cmp dword [ebp - 0x21c], 0
jne 0x47e35f
lea eax, [esi - 0x10]
mov byte [ebp - 4], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47e332
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47e355
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0x3ea
jmp 0x47e3e8
xor ecx, ecx
push 0x206
push ecx
lea edx, [ebp - 0x216]
push edx
mov word [ebp - 0x218], cx
call fcn.004e4be0
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
push esi
lea ecx, [ebp - 0x218]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathIsSameRootW]
add esi, 0xfffffff0
mov dword [edi + 0x40], eax
mov byte [ebp - 4], 0
lea edx, [esi + 0xc]
or eax, 0xffffffff
lock xadd dword [edx], eax
dec eax
test eax, eax
jg 0x47e3c0
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
lea eax, [ebx - 0x10]
mov dword [ebp - 4], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x47e3e3
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 esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e0040
mov esp, ebp
pop ebp
ret
Function at 0x485630
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x506296
mov eax, dword fs:[0]
push eax
sub esp, 0x21c
mov eax, dword [0x54b2c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [edi + 0xb4]
sub eax, 0x10
mov dword [ebp - 0x224], edi
call fcn.0045cb40
lea esi, [eax + 0x10]
mov dword [ebp - 0x228], esi
mov dword [ebp - 4], 0
test esi, esi
je 0x485691
call fcn.00486a10
test eax, eax
jne 0x4856ac
add edi, 0xb8
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], 0x1f41
call fcn.00472960
push 1
push 0x23
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [ebp - 0x220]
push ecx
lea ecx, [ebp - 0x218]
call fcn.00459530
push 0x15
push str.BaofengStormPlayer_
lea ebx, [ebp - 0x220]
mov byte [ebp - 4], 1
call fcn.0045af80
mov esi, dword [ebp - 0x220]
test esi, esi
je 0x4856fa
call fcn.00486a10
test eax, eax
jne 0x48571b
mov edi, dword [ebp - 0x224]
add edi, 0xb8
lea eax, [ebp - 0x21c]
mov dword [ebp - 0x21c], 0x1f42
call fcn.00472960
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x220]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x485741
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x228]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x48576a
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 - 0x10]
xor ecx, ebp
call fcn.004e0040
mov esp, ebp
pop ebp
ret
Function at 0x486800
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50612c
mov eax, dword fs:[0]
push eax
sub esp, 0x22c
mov eax, dword [0x54b2c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 1
push 0x23
lea eax, [ebp - 0x218]
push eax
push 0
mov esi, ecx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
lea ecx, [ebp - 0x238]
push ecx
lea ecx, [ebp - 0x218]
call fcn.00459530
push eax
lea edx, [ebp - 0x230]
push edx
mov ebx, str.BaofengStormPlayerProfilesConfig.ini
mov dword [ebp - 4], 0
call fcn.0045c970
add esp, 8
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x238]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486897
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esi + 0xb4]
push ecx
lea edx, [ebp - 0x234]
push edx
mov ebx, str.crt.dll
call fcn.0045c970
add esp, 8
mov bl, 3
mov byte [ebp - 4], bl
cmp dword [esi + 0x4c], 0
jne 0x4868d1
mov eax, dword [ebp - 0x234]
push 8
push 0
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
mov dword [esi + 0x4c], eax
mov edx, dword [0x54af18]
mov eax, dword [edx + 0xc]
mov ecx, 0x54af18
call eax
add eax, 0x10
mov dword [ebp - 0x22c], eax
lea ecx, [ebp - 0x228]
push ecx
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx edx, word [ebp - 0x222]
movzx eax, word [ebp - 0x226]
movzx ecx, word [ebp - 0x228]
push edx
push eax
push ecx
push str._4d_.2d_.2d
lea edi, [ebp - 0x22c]
call fcn.00458f90
mov edx, dword [ebp - 0x230]
mov edi, dword [ebp - 0x22c]
add esp, 0x10
push edx
push edi
push 0x517f34
push str.INSTALL
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov esi, dword [esi + 0x4c]
test esi, esi
je 0x48697f
push str.CrtSetInstallDate
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
test esi, esi
je 0x48697f
cmp dword [edi - 4], 1
jle 0x486979
mov eax, dword [edi - 0xc]
push eax
lea ecx, [ebp - 0x22c]
push ecx
call fcn.00459320
mov edi, dword [ebp - 0x22c]
push edi
call esi
add esp, 4
lea eax, [edi - 0x10]
mov byte [ebp - 4], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x48699e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x234]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4869c4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x230]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4869ed
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 - 0x10]
xor ecx, ebp
call fcn.004e0040
mov esp, ebp
pop ebp
ret
Function at 0x486a10
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4fad78
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x54b2c0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push esi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x486a8d
mov dword [ebp - 0x54], vtable.CAccessRight.0
xor eax, eax
push 0x3e
push eax
lea ecx, [ebp - 0x4e]
mov dword [ebp - 4], 0
push ecx
mov word [ebp - 0x50], ax
call fcn.004e4be0
add esp, 0xc
push 0x20
push 0x5185ac
lea edx, [ebp - 0x50]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
push 0
lea eax, [ebp - 0x50]
push eax
push esi
call fcn.0045b0b0
add esp, 0xc
mov eax, 1
jmp 0x486a8f
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004e0040
mov esp, ebp
pop ebp
ret

Function at 0x486c90
Capabilities:
Enumerate files on windows
Enumerate files recursively

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x50702b
mov eax, dword fs:[0]
push eax
sub esp, 0x674
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
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
mov ebx, ecx
test esi, esi
jne 0x486cd1
xor eax, eax
jmp 0x486d8e
push 0x51862c
push esi
push 0x518600
lea eax, [ebp - 0x428]
push 0x104
push eax
mov edi, 1
call fcn.004e2d95
add esp, 0x14
lea ecx, [ebp - 0x678]
push ecx
lea edx, [ebp - 0x428]
push edx
mov dword [ebp - 4], 0
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov dword [ebp - 0x680], eax
cmp eax, 0xffffffff
je 0x486cca
cmp word [ebp - 0x64c], 0x2e
je 0x486d67
test byte [ebp - 0x678], 0x10
je 0x486dac
lea eax, [ebp - 0x64c]
push eax
push esi
push str._s_s_
lea ecx, [ebp - 0x220]
push 0x104
push ecx
call fcn.004e2d95
add esp, 0x14
push 1
lea eax, [ebp - 0x220]
xor edx, edx
push eax
mov ecx, ebx
mov word [ebp - 0x1a], dx
call fcn.00486c90
mov edi, eax
mov edx, dword [ebp - 0x680]
lea ecx, [ebp - 0x678]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
jne 0x486d1b
mov eax, dword [ebp - 0x680]
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, edi
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 8
cmp dword [ebp + 0xc], 0
je 0x486d67
lea ecx, [ebp - 0x67c]
push ecx
lea ecx, [ebp - 0x64c]
call fcn.00459530
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x67c]
push str.ASBarBroker.exe
push edx
call fcn.004e2807
add esp, 8
test eax, eax
jne 0x486dec
push eax
push esi
call fcn.0045c300
add esp, 8
mov edi, eax
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x67c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x486d67
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x486d67