joyce8/EMBER2024-capa huggingface dataset:
Function at 0x411650
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x485846
mov eax, dword fs:[0]
push eax
sub esp, 0x424
mov eax, dword [0x4b3630]
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 eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov dword [ebp - 0x420], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x41c], eax
mov dword [ebp - 0x430], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x428], ecx
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x418], 0
mov ebx, dword [sym.imp.KERNEL32.dll_LoadLibraryExW]
push 0x60
push 0
push edi
mov byte [ebp - 4], 1
call ebx
mov esi, eax
mov dword [ebp - 0x424], esi
test esi, esi
jne 0x4116fc
push 2
push eax
push edi
call ebx
mov esi, eax
mov dword [ebp - 0x424], eax
test esi, esi
jne 0x4116fc
call fcn.0040ffe0
mov edi, eax
jmp 0x41181b
push dword [ebp - 0x41c]
push dword [ebp - 0x420]
push esi
call dword [sym.imp.KERNEL32.dll_FindResourceW]
mov edi, eax
test edi, edi
jne 0x41171f
call fcn.0040ffe0
jmp 0x41180e
push edi
push esi
call dword [sym.imp.KERNEL32.dll_LoadResource]
mov ebx, eax
mov dword [ebp - 0x420], ebx
test ebx, ebx
jne 0x41173d
call fcn.0040ffe0
jmp 0x41180e
push edi
push esi
call dword [sym.imp.KERNEL32.dll_SizeofResource]
mov edi, eax
mov dword [ebp - 0x41c], edi
lea eax, [edi + 1]
cmp eax, edi
jae 0x41175e
mov edi, 0x8007000e
jmp 0x411810
mov ecx, 2
mov byte [ebp - 4], 2
mul ecx
test edx, edx
ja 0x411854
jb 0x41177c
cmp eax, 0xffffffff
ja 0x411854
cmp eax, 0x400
jbe 0x411791
push eax
lea ecx, [ebp - 0x418]
call fcn.0040fc70
jmp 0x4117b7
lea eax, [ebp - 0x414]
mov dword [ebp - 0x418], eax
jmp 0x4117b7
cmp dword [ebp - 0x418], 0
mov dword [ebp - 4], 1
jne 0x4117ce
mov edi, 0x8007000e
jmp 0x411810
push edi
push dword [ebp - 0x418]
push edi
push ebx
push 0
push 3
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ecx, eax
test ecx, ecx
jne 0x4117ee
call fcn.0040ffe0
jmp 0x41180e
mov eax, dword [ebp - 0x418]
xor edx, edx
push dword [ebp + 0x14]
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x42c]
push dword [ebp - 0x418]
call fcn.004114b0
mov edi, eax
test esi, esi
je 0x41181b
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [ebp - 0x414]
cmp dword [ebp - 0x418], eax
je 0x411834
lea ecx, [ebp - 0x418]
call fcn.004103f0
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.00442126
mov esp, ebp
pop ebp
ret 0x10
push 0x80070216
call fcn.00405f60
int3
Function at 0x412b00
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
test edi, edi
je 0x412b71
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x412b71
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x412b71
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x412b71
mov dword [ebp + 8], eax
lea eax, [ebp + 8]
push eax
push 0x40
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x412b6b
push esi
push ebx
push edi
call fcn.00449bc0
add esp, 0xc
mov dword [ebp - 4], 0
lea eax, [ebp - 4]
push eax
push dword [ebp + 8]
push esi
push edi
call dword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
je 0x412b6b
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x414e30
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x120c
call fcn.004423a0
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x20c]
push 0x208
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x48d5e0
push dword [esi]
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push eax
call esi
push 0x800
lea eax, [ebp - 0xa0c]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0xa0c]
push 1
push 0x19
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x800
lea eax, [ebp - 0x120c]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0xa0c]
push 0x48ee4c
push eax
lea eax, [ebp - 0x120c]
push eax
call esi
push 0
push 0
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x120c]
push eax
push str.__fromdesktop
lea eax, [ebp - 0x20c]
push eax
push 0x48ee7c
call fcn.004159c0
mov ecx, dword [ebp - 4]
add esp, 0x1c
neg eax
sbb eax, eax
xor ecx, ebp
neg eax
pop esi
call fcn.00442126
mov esp, ebp
pop ebp
ret
Function at 0x414f10
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x485b90
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push esi
push edi
mov eax, dword [0x4b3630]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x14]
push eax
call fcn.00418ff0
add esp, 4
push str.Utilsmirror.ico
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], 0
call fcn.00414c80
lea eax, [ebp - 0x10]
push eax
call fcn.00418ff0
add esp, 4
push 0x48d69c
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.00414c80
call fcn.00415f80
lea ecx, [ebp - 0x10]
test al, al
je 0x414f88
push str.JianDesk64.exe
jmp 0x414f8d
push str.JianDesk.exe
call fcn.00414c80
push str.___fromrmenu___mirrorPath__1_
lea ecx, [ebp - 0x10]
call fcn.00414c80
push 0
push 0
push 0x2001f
push 0
push 0
push str.Directory_shelljiandesk
push SysReAllocString
lea ecx, [ebp - 0x20]
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
call fcn.00414d60
mov edi, dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test eax, eax
jne 0x415024
mov esi, dword [ebp - 0x20]
push 0x14
push 0x48f288
push 1
push 0
push 0
push esi
call edi
mov eax, dword [ebp - 0x14]
test eax, eax
je 0x415024
mov edx, eax
lea ebx, [edx + 2]
nop dword [eax]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x415000
sub edx, ebx
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push str.Icon
push esi
call edi
push 0
push 0
push 0x2001f
push 0
push 0
push str.Directory_shelljiandeskcommand
push SysReAllocString
lea ecx, [ebp - 0x20]
call fcn.00414d60
mov esi, dword [ebp - 0x20]
test eax, eax
jne 0x415077
mov eax, dword [ebp - 0x10]
test eax, eax
je 0x415077
mov edx, eax
lea ebx, [edx + 2]
mov cx, word [edx]
add edx, 2
test cx, cx
jne 0x415056
sub edx, ebx
sar edx, 1
lea ecx, [edx*2 + 2]
push ecx
push eax
push 1
push 0
push 0
push esi
call edi
push esi
call dword [sym.imp.ADVAPI32.dll_RegFlushKey]
test esi, esi
je 0x415089
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov edx, dword [ebp - 0x10]
or esi, 0xffffffff
mov byte [ebp - 4], 0
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4150aa
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4150c9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
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 0x415350
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc14
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x414]
push 0x208
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x414]
push 0x48d5e0
push dword [esi]
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
push eax
call esi
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 1
push 0x17
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x48ee7c
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4153ee
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push 0x800
lea eax, [ebp - 0xc14]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x48ee4c
push eax
lea eax, [ebp - 0xc14]
push eax
call esi
push 0
push 0
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0xc14]
push eax
push str.__fromstartmenu
lea eax, [ebp - 0x414]
push eax
push 0x48ee7c
call fcn.004159c0
mov ecx, dword [ebp - 4]
add esp, 0x1c
neg eax
sbb eax, eax
xor ecx, ebp
neg eax
pop esi
call fcn.00442126
mov esp, ebp
pop ebp
ret

Function at 0x415460
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe1c
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
lea eax, [ebp - 0x61c]
push 0x208
push 0
push eax
call fcn.0044a6c0
mov esi, dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x61c]
add esp, 0xc
push 0x48d5e0
push dword [edi]
push eax
call esi
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 1
push 0x17
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x48ee7c
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4154ff
lea eax, [ebp - 0x20c]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push 0x800
lea eax, [ebp - 0xe1c]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x48eea8
push eax
lea eax, [ebp - 0xe1c]
push eax
call esi
push 0x208
lea eax, [ebp - 0x414]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x414]
push str.uninst.exe
push dword [edi]
push eax
call esi
push 1
push 0
lea eax, [ebp - 0x414]
push eax
lea eax, [ebp - 0xe1c]
push eax
push 0
lea eax, [ebp - 0x414]
push eax
push 0x48eed4
call fcn.004159c0
mov ecx, dword [ebp - 4]
add esp, 0x1c
neg eax
sbb eax, eax
xor ecx, ebp
pop edi
neg eax
pop esi
call fcn.00442126
mov esp, ebp
pop ebp
ret
Function at 0x415d20
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x485c7b
mov eax, dword fs:[0]
push eax
mov eax, 0x1008
call fcn.004423a0
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x810]
push 1
push 0x17
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x800
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
call fcn.00406280
mov ecx, eax
test ecx, ecx
je 0x415e38
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1014], eax
push 0x48ee4c
push 0x48ee7c
lea eax, [ebp - 0x1014]
mov dword [ebp - 4], 0
push str._s_s
push eax
call fcn.00406190
mov esi, dword [ebp - 0x1014]
lea eax, [ebp - 0x810]
add esp, 0x10
push esi
push eax
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x415e1b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00442126
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00405f60
int3

Function at 0x415e50
Capabilities:
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x485c7b
mov eax, dword fs:[0]
push eax
mov eax, 0x1008
call fcn.004423a0
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x800
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x810]
push 1
push 0x17
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x800
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
call fcn.00406280
mov ecx, eax
test ecx, ecx
je 0x415f68
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x1014], eax
push 0x48eea8
push 0x48ee7c
lea eax, [ebp - 0x1014]
mov dword [ebp - 4], 0
push str._s_s
push eax
call fcn.00406190
mov esi, dword [ebp - 0x1014]
lea eax, [ebp - 0x810]
add esp, 0x10
push esi
push eax
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x1010]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov edi, eax
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or ecx, 0xffffffff
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x415f4b
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00442126
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00405f60
int3
Function at 0x416080
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2004
call fcn.004423a0
mov eax, dword [0x4b3630]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x800
lea eax, [ebp - 0x804]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x804]
push 1
push 0x19
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x800
lea eax, [ebp - 0x1004]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x804]
push 0x48ee4c
push eax
lea eax, [ebp - 0x1004]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x1004]
push eax
call fcn.00416d40
push 0x800
lea eax, [ebp - 0x1804]
push 0
push eax
call fcn.0044a6c0
add esp, 0x10
lea eax, [ebp - 0x1804]
push 1
push 0x10
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
push 0x800
lea eax, [ebp - 0x2004]
push 0
push eax
call fcn.0044a6c0
add esp, 0xc
lea eax, [ebp - 0x1804]
push 0x48ee4c
push eax
lea eax, [ebp - 0x2004]
push eax
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
lea eax, [ebp - 0x2004]
push eax
call fcn.00416d40
mov ecx, dword [ebp - 4]
add esp, 4
xor ecx, ebp
call fcn.00442126
mov esp, ebp
pop ebp
ret
Function at 0x418ff0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48609b
mov eax, dword fs:[0]
push eax
sub esp, 0x81c
mov eax, dword [0x4b3630]
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, dword [ebp + 8]
mov dword [ebp - 0x828], edi
cmp word [0x4b8f78], 0
jne 0x41912a
push 0x20219
push str.SOFTWAREJianDesk
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x824], 0
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x81c], 0
call fcn.00410c80
mov ebx, dword [ebp - 0x824]
test eax, eax
jne 0x41911f
lea eax, [ebp - 0x814]
mov dword [ebp - 0x814], 0x800
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x818]
push eax
push 0
push str.Setup_Path
push ebx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x41911f
mov eax, dword [ebp - 0x818]
cmp eax, 1
je 0x4190bc
cmp eax, 2
jne 0x41911f
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x4190d9
test al, 1
jne 0x41911f
shr eax, 1
cmp word [ebp + eax*2 - 0x812], 0
je 0x4190e2
jmp 0x41911f
xor eax, eax
mov word [ebp - 0x810], ax
mov ecx, 0x4b8f78
lea esi, [ebp - 0x810]
mov edx, 0x3ff
sub esi, ecx
lea eax, [edx + 0x7ffffbff]
test eax, eax
je 0x419112
movzx eax, word [esi + ecx]
test ax, ax
je 0x419112
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x4190f4
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
test ebx, ebx
je 0x41912a
push ebx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.00406280
mov ecx, eax
test ecx, ecx
je 0x41919a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [edi], eax
push 0x4b8f78
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00410060
test al, al
jne 0x41917c
mov ecx, 0x4b8f78
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x419160
sub ecx, edx
sar ecx, 1
push ecx
push 0x4b8f78
mov ecx, edi
call fcn.0040ab00
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 - 0x10]
xor ecx, ebp
call fcn.00442126
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00405f60
int3
Function at 0x419a70
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48609b
mov eax, dword fs:[0]
push eax
sub esp, 0x81c
mov eax, dword [0x4b3630]
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 ebx, dword [ebp + 8]
mov dword [ebp - 0x828], ebx
cmp word [0x4b6f78], 0
jne 0x419baa
push 0x20219
push str.SOFTWAREJianDesk
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x824]
mov dword [ebp - 0x824], 0
mov dword [ebp - 0x820], 0
mov dword [ebp - 0x81c], 0
call fcn.00410c80
mov edi, dword [ebp - 0x824]
test eax, eax
jne 0x419b9f
lea eax, [ebp - 0x814]
mov dword [ebp - 0x814], 0x800
push eax
lea eax, [ebp - 0x810]
push eax
lea eax, [ebp - 0x818]
push eax
push 0
push 0x48f404
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x419b9f
mov eax, dword [ebp - 0x818]
cmp eax, 1
je 0x419b3c
cmp eax, 2
jne 0x419b9f
mov eax, dword [ebp - 0x814]
test eax, eax
je 0x419b59
test al, 1
jne 0x419b9f
shr eax, 1
cmp word [ebp + eax*2 - 0x812], 0
je 0x419b62
jmp 0x419b9f
xor eax, eax
mov word [ebp - 0x810], ax
mov ecx, 0x4b6f78
lea esi, [ebp - 0x810]
mov edx, 0x3ff
sub esi, ecx
lea eax, [edx + 0x7ffffbff]
test eax, eax
je 0x419b92
movzx eax, word [esi + ecx]
test ax, ax
je 0x419b92
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x419b74
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
test edi, edi
je 0x419baa
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x4b6f78
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jg 0x419bfb
mov ecx, 0x4b6f78
mov esi, str.noset
mov edx, 0x3ff
sub esi, ecx
nop word [eax + eax]
lea eax, [edx + 0x7ffffbff]
test eax, eax
je 0x419bee
movzx eax, word [esi + ecx]
test ax, ax
je 0x419bee
mov word [ecx], ax
add ecx, 2
sub edx, 1
jne 0x419bd0
test edx, edx
lea eax, [ecx - 2]
cmovne eax, ecx
xor ecx, ecx
mov word [eax], cx
call fcn.00406280
mov ecx, eax
test ecx, ecx
je 0x419c6a
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebx], eax
push 0x4b6f78
mov ecx, ebx
mov dword [ebp - 4], 0
call fcn.00410060
test al, al
jne 0x419c4c
mov ecx, 0x4b6f78
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x419c30
sub ecx, edx
sar ecx, 1
push ecx
push 0x4b6f78
mov ecx, ebx
call fcn.0040ab00
mov eax, ebx
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.00442126
mov esp, ebp
pop ebp
ret
push 0x80004005
call fcn.00405f60
int3
Function at 0x41bd60
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48654b
mov eax, dword fs:[0]
push eax
mov eax, 0x101c
call fcn.004423a0
mov eax, dword [0x4b3630]
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 edx, dword [ebp + 0x14]
xor esi, esi
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x101c], edx
mov dword [ebp - 0x1028], esi
mov dword [ebp - 0x1024], esi
mov dword [ebp - 0x1020], esi
lea edx, [ebp - 0x1014]
mov dword [ebp - 4], esi
push edx
push 0x20019
push esi
push eax
push ecx
mov dword [ebp - 0x1014], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x41bea2
mov edi, dword [ebp - 0x1014]
push 0x1000
push eax
mov dword [ebp - 0x1024], eax
lea eax, [ebp - 0x1010]
push eax
mov dword [ebp - 0x1028], edi
call fcn.0044a6c0
add esp, 0xc
mov dword [ebp - 0x1014], 0xffe
lea eax, [ebp - 0x1014]
push eax
lea eax, [ebp - 0x1010]
push eax
lea eax, [ebp - 0x1018]
push eax
push esi
push ebx
push edi
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x41be97
mov eax, dword [ebp - 0x1018]
cmp eax, 1
je 0x41be41
cmp eax, 2
jne 0x41be97
mov eax, dword [ebp - 0x1014]
test eax, eax
je 0x41be5e
test al, 1
jne 0x41be97
shr eax, 1
cmp word [ebp + eax*2 - 0x1012], 0
je 0x41be67
jmp 0x41be97
xor eax, eax
mov word [ebp - 0x1010], ax
lea edx, [ebp - 0x1010]
lea esi, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x41be70
mov ecx, dword [ebp - 0x101c]
lea eax, [ebp - 0x1010]
sub edx, esi
sar edx, 1
push edx
push eax
call fcn.0040ab00
mov esi, 1
test edi, edi
je 0x41bea2
push edi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, esi
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.00442126
mov esp, ebp
pop ebp
ret
Function at 0x41cf80
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x486760
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x4b3630]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
push 0x2001f
push str.SoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced
push SysReAllocString
lea ecx, [ebp - 0x1c]
mov dword [ebx], vtable.CMainWnd.0
mov dword [ebx + 0x24], vtable.CMainWnd.1.0
mov dword [ebx + 0x28], vtable.CMainWnd.2.0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.00410c80
mov esi, eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
test esi, esi
mov esi, dword [ebp - 0x1c]
jne 0x41d016
push 4
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0
push eax
push 4
push 0
push str.SeparateProcess
push esi
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
cmp dword [0x4b6f6c], 0
je 0x41d050
push 0x4b3174
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x4b6f6c]
test ecx, ecx
je 0x41d045
mov eax, dword [ecx]
push 1
call dword [eax + 4]
mov dword [0x4b6f6c], 0
push 0x4b3174
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test esi, esi
je 0x41d05b
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov esi, dword [ebx + 0xa8]
test esi, esi
je 0x41d077
mov ecx, esi
call fcn.0041b3f0
push 0x30
push esi
call fcn.00441e7b
add esp, 8
mov esi, dword [ebx + 0xa0]
lea edi, [ebx + 0xa0]
push dword [esi + 4]
mov ecx, edi
mov dword [ebp - 4], 0
call fcn.00423360
mov eax, dword [edi]
push 0x18
mov dword [eax + 4], esi
mov eax, dword [edi]
mov dword [eax], esi
mov eax, dword [edi]
mov dword [eax + 8], esi
mov dword [edi + 4], 0
push dword [edi]
call fcn.00441e7b
add esp, 8
lea ecx, [ebx + 0x94]
call fcn.0040ba90
lea ecx, [ebx + 0x80]
call fcn.0040ba90
lea ecx, [ebx + 0x2c]
call fcn.00423b90
mov dword [ebx + 0x24], vtable.IChannelListener.0
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x41d0e7
push eax
call fcn.00429beb
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 0x41d460
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
xor eax, eax
mov dword [ebp - 0x1c], 0x510051
mov dword [ebp - 0x18], 0x630053
mov dword [ebp - 0x14], 0x61004c
mov dword [ebp - 0x10], 0x6e0075
mov dword [ebp - 0xc], 0x680063
mov dword [ebp - 8], 0x720065
mov word [ebp - 4], ax
call fcn.00406280
mov ecx, eax
test ecx, ecx
je 0x41d4f0
mov eax, dword [ecx]
push 2
push 0xc
call dword [eax]
test eax, eax
je 0x41d4fa
push esi
mov esi, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
cmp dword [eax - 8], 0xc
jl 0x41d4e6
mov dword [eax - 0xc], 0xc
xor eax, eax
mov ecx, dword [esi]
push 0x18
mov word [ecx + 0x18], ax
lea eax, [ebp - 0x1c]
push eax
push 0x18
push dword [esi]
call fcn.0040d960
add esp, 0x10
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret 4
push 0x80070057
call fcn.00405f60
push 0x80004005
call fcn.00405f60
call fcn.00406b80
int3