joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140040860
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x18
mov byte [rsp + 1], 0
jmp 0x14004087b
movzx eax, byte [rsp + 1]
inc al
mov byte [rsp + 1], al
movzx eax, byte [rsp + 1]
cmp eax, 4
jge 0x1400408d9
mov byte [rsp], 0
jmp 0x140040894
movzx eax, byte [rsp]
inc al
mov byte [rsp], al
movzx eax, byte [rsp]
cmp eax, 4
jge 0x1400408d7
movzx eax, byte [rsp]
mov rcx, qword [rsp + 0x20]
lea rax, [rcx + rax*4]
movzx ecx, byte [rsp + 1]
movzx eax, byte [rax + rcx]
lea rcx, str.cw
movzx edx, byte [rsp]
mov r8, qword [rsp + 0x20]
lea rdx, [r8 + rdx*4]
movzx r8d, byte [rsp + 1]
movzx eax, byte [rcx + rax]
mov byte [rdx + r8], al
jmp 0x14004088b
jmp 0x140040870
add rsp, 0x18
ret

Function at 0x1400408f0
Capabilities:
Print debug messages

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x248
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x230], rax
mov rax, qword [rsp + 0x250]
cmp dword [rax + 0x20], 0
je 0x14004098a
mov rax, qword [rsp + 0x258]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0xffffffffffffffff
inc qword [rsp + 0x20]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
cmp byte [rax + rcx], 0
jne 0x14004093c
mov rax, qword [rsp + 0x20]
cmp rax, 0x1f4
jae 0x14004098a
mov r9, qword [rsp + 0x258]
mov r8d, dword [rsp + 0x260]
lea rdx, str.STATUS_d_ErrMsg_s
lea rcx, [rsp + 0x30]
call fcn.14001c110
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rsp + 0x230]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x248
ret
Function at 0x1400416e0
Capabilities:
Delete registry key
Delete service
Manipulate safe mode programs

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x188
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov dword [rsp + 0x20], 0
mov rcx, qword [rsp + 0x190]
call fcn.140035f10
test eax, eax
je 0x140041916
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov r9d, 0x1388
xor r8d, r8d
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.14003ffa0
mov r8d, 1
mov rdx, qword [rsp + 0x198]
mov rcx, qword [rsp + 0x190]
call fcn.140041a80
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x50], eax
mov r8d, 0xf003f
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
jne 0x1400417be
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x3c], eax
mov rcx, qword [rsp + 0x198]
call fcn.140020590
mov eax, dword [rsp + 0x3c]
jmp 0x140041975
mov rcx, qword [rsp + 0x198]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov r8d, 0x10000
mov rdx, rax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x1400418ff
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_DeleteService]
test eax, eax
je 0x14004180f
mov dword [rsp + 0x20], 1
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov qword [rsp + 0x68], 0
lea rcx, [rsp + 0xf0]
call fcn.14001f530
nop
mov eax, dword [rsp + 0x1a0]
and eax, 1
test eax, eax
je 0x140041895
lea rdx, str.SYSTEMCurrentControlSetControlSafeBootMinimal_
lea rcx, [rsp + 0xf0]
call fcn.140021260
mov rdx, qword [rsp + 0x198]
lea rcx, [rsp + 0xf0]
call fcn.140022eb0
mov dword [rsp + 0x58], 0
lea rcx, [rsp + 0xf0]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov rdx, rax
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov eax, dword [rsp + 0x1a0]
and eax, 2
test eax, eax
je 0x1400418f2
lea rdx, str.SYSTEMCurrentControlSetControlSafeBootNetwork_
lea rcx, [rsp + 0xf0]
call fcn.140021260
mov rdx, qword [rsp + 0x198]
lea rcx, [rsp + 0xf0]
call fcn.140022eb0
lea rcx, [rsp + 0xf0]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov rdx, rax
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
nop
lea rcx, [rsp + 0xf0]
call fcn.140020590
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x54], eax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
jmp 0x14004195c
lea rax, [rsp + 0x70]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x190]
add rax, 0x250
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call fcn.14001f4b0
mov qword [rsp + 0x48], rax
mov r8d, 1
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x190]
call fcn.140042470
mov dword [rsp + 0x20], eax
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x38], eax
mov rcx, qword [rsp + 0x198]
call fcn.140020590
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x188
ret
Function at 0x140041990
Capabilities:
Initialize winsock library
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x278
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rax, qword [rsp + 0x280]
cmp dword [rax], 0
je 0x1400419ce
mov eax, 1
jmp 0x140041a67
mov dword [rsp + 0x20], 0
lea rcx, [0x14025a320]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rdx, [rsp + 0xc0]
mov cx, 0x202
call qword [sym.imp.WS2_32.dll_WSAStartup]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
je 0x140041a4d
mov r9d, dword [rsp + 0x24]
lea r8, str.PAPI_WSAStartup_failed:__d_n
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x280]
call fcn.14002bda0
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call fcn.140021b20
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
lea rcx, [rsp + 0x40]
call fcn.140020590
jmp 0x140041a55
mov dword [rsp + 0x20], 1
mov rax, qword [rsp + 0x280]
mov ecx, dword [rsp + 0x20]
mov dword [rax], ecx
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x278
ret
Function at 0x140041a80
Capabilities:
Check for time delay via gettickcount
Query service status
Resolve function by parsing pe exports

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x70
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x24], 0
mov dword [rsp + 0x38], 0x1388
mov rcx, qword [rsp + 0x80]
call fcn.140035f10
test eax, eax
je 0x140041bd8
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov r8d, 0xf003f
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x140041b08
mov eax, dword [rsp + 0x20]
jmp 0x140041bdc
mov rcx, qword [rsp + 0x88]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov r8d, 0xf01ff
mov rdx, rax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x140041bcd
lea rax, [rsp + 0x40]
mov rdi, rax
xor eax, eax
mov ecx, 0x1c
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rsp + 0x24], eax
xor eax, eax
cmp eax, 1
je 0x140041bc2
mov dword [rsp + 0x3c], 0
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x140041b99
mov eax, dword [rsp + 0x90]
cmp dword [rsp + 0x44], eax
jne 0x140041b97
mov dword [rsp + 0x20], 1
jmp 0x140041bc2
jmp 0x140041ba3
mov dword [rsp + 0x20], 0
jmp 0x140041bc2
call qword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [rsp + 0x24]
cmp eax, dword [rsp + 0x38]
jb 0x140041bb5
jmp 0x140041bc2
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140041b5d
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x70
pop rdi
ret

Function at 0x140041c10
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov rcx, qword [rsp + 0x68]
call fcn.1400061b0
mov r9, rax
lea r8, str.CDebugLog::WriteConf_text_s
lea rdx, [rsp + 0x30]
lea rcx, [0x14032af98]
call fcn.14002be70
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call fcn.1400061b0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rcx, [rsp + 0x30]
call fcn.140006170
mov rcx, qword [rsp + 0x68]
call fcn.1400061b0
mov rcx, qword [rsp + 0x60]
add rcx, 0x350
xor r9d, r9d
mov r8, rax
mov rdx, rcx
lea rcx, [0x14032afa8]
call fcn.14004da50
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x60]
add rax, 0x5b8
mov rdx, qword [rsp + 0x68]
mov rcx, rax
call fcn.14000c9f0
mov eax, dword [rsp + 0x20]
add rsp, 0x58
ret
Function at 0x140042470
Capabilities:
Delete registry value
Persist via run registry key
Query or enumerate registry value
Set registry value

Disassembly:
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x4b0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x4a0], rax
mov dword [rsp + 0x30], 1
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9d, 0xf003f
xor r8d, r8d
lea rdx, str.SOFTWAREMicrosoftWindowsCurrentVersionRunServices
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x1400424f3
mov dword [rsp + 0x44], 0
mov rcx, qword [rsp + 0x4c8]
call fcn.140020590
mov eax, dword [rsp + 0x44]
jmp 0x1400426b5
cmp dword [rsp + 0x4d0], 1
je 0x140042664
mov eax, 2
imul rax, rax, 0
mov ecx, 0x22
mov word [rsp + rax + 0x80], cx
mov eax, 2
imul rax, rax, 1
lea rax, [rsp + rax + 0x80]
mov r8d, 0x104
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, [0x140256e28]
lea rcx, [rsp + 0x80]
call fcn.14001c200
cmp dword [rsp + 0x4d0], 0
jne 0x1400425d2
lea rax, [rsp + 0x80]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], 0xffffffffffffffff
inc qword [rsp + 0x38]
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x38]
cmp word [rax + rcx*2], 0
jne 0x14004256d
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x48], eax
mov rcx, qword [rsp + 0x4c8]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov ecx, dword [rsp + 0x48]
mov dword [rsp + 0x28], ecx
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x20], rcx
mov r9d, 1
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
jmp 0x140042662
mov dword [rsp + 0x70], 0x208
mov dword [rsp + 0x74], 1
mov eax, dword [rsp + 0x70]
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x290]
mov rdi, rcx
xor eax, eax
mov rcx, qword [rsp + 0x58]
rep stosb byte [rdi], al
mov rcx, qword [rsp + 0x4c8]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x290]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x74]
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x290]
call fcn.1401fa488
test eax, eax
je 0x140042662
mov dword [rsp + 0x30], 0
jmp 0x140042691
cmp dword [rsp + 0x4d0], 1
jne 0x140042691
mov rcx, qword [rsp + 0x4c8]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov rdx, rax
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x40], eax
mov rcx, qword [rsp + 0x4c8]
call fcn.140020590
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x4a0]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x4b0
pop rdi
ret
Function at 0x1400426d0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x18
mov byte [rsp], 0
jmp 0x1400426ed
movzx eax, byte [rsp]
inc al
mov byte [rsp], al
movzx eax, byte [rsp]
cmp eax, 0x10
jge 0x140042720
movzx eax, byte [rsp]
movzx ecx, byte [rsp]
mov rdx, qword [rsp + 0x28]
movzx ecx, byte [rdx + rcx]
mov rdx, qword [rsp + 0x20]
movzx eax, byte [rdx + rax]
xor eax, ecx
movzx ecx, byte [rsp]
mov rdx, qword [rsp + 0x20]
mov byte [rdx + rcx], al
jmp 0x1400426e4
add rsp, 0x18
ret
Function at 0x14004cf90
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
mov eax, 0x10a8
call fcn.1401fe1f0
sub rsp, rax
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x1090], rax
mov rax, qword [rsp + 0x10c0]
mov qword [rax], 0
mov rax, qword [rsp + 0x10c8]
mov dword [rax], 0
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
mov rcx, qword [rsp + 0x10b8]
call fcn.14001bd90
mov qword [rsp + 0x58], rax
mov rcx, qword [rsp + 0x58]
call fcn.140048030
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x8000027
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 1
mov edx, 0x80000000
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0xffffffffffffffff
jne 0x14004d069
mov dword [rsp + 0x50], 0
mov qword [rsp + 0x48], 0
jmp 0x14004d219
xor edx, edx
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rcx, qword [rsp + 0x10c8]
mov dword [rcx], eax
mov rax, qword [rsp + 0x10c8]
cmp dword [rax], 0
jle 0x14004d219
mov rax, qword [rsp + 0x10c8]
mov eax, dword [rax]
add eax, 2
cdqe
mov rcx, rax
call fcn.14006dfa0
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x10c0]
mov rcx, qword [rsp + 0x60]
mov qword [rax], rcx
mov rax, qword [rsp + 0x10c0]
cmp qword [rax], 0
je 0x14004d20b
mov rax, qword [rsp + 0x10c8]
movsxd rax, dword [rax]
mov rcx, qword [rsp + 0x10c0]
mov rcx, qword [rcx]
mov byte [rcx + rax], 0
mov rax, qword [rsp + 0x10c8]
mov eax, dword [rax]
inc eax
cdqe
mov rcx, qword [rsp + 0x10c0]
mov rcx, qword [rcx]
mov byte [rcx + rax], 0
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x80]
mov r8d, 0x1000
lea rdx, [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x54], eax
cmp dword [rsp + 0x54], 0
je 0x14004d201
cmp dword [rsp + 0x80], 0
je 0x14004d201
mov rax, qword [rsp + 0x10c8]
mov ecx, dword [rsp + 0x40]
cmp dword [rax], ecx
jne 0x14004d174
jmp 0x14004d201
mov eax, dword [rsp + 0x80]
mov rcx, qword [rsp + 0x10c8]
mov edx, dword [rsp + 0x40]
mov ecx, dword [rcx]
sub ecx, edx
mov ecx, ecx
mov edx, dword [rsp + 0x40]
mov r8, qword [rsp + 0x10c0]
add rdx, qword [r8]
mov qword [rsp + 0x68], rdx
mov r9d, eax
lea r8, [rsp + 0x90]
mov edx, ecx
mov rax, qword [rsp + 0x68]
mov rcx, rax
call fcn.1401f9564
mov eax, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x40]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x40], eax
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x80]
mov r8d, 0x1000
lea rdx, [rsp + 0x90]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov dword [rsp + 0x54], eax
jmp 0x14004d146
mov dword [rsp + 0x50], 1
jmp 0x14004d219
mov rax, qword [rsp + 0x10c8]
mov dword [rax], 0
jmp 0x14004d21b
cmp qword [rsp + 0x48], 0
je 0x14004d22e
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x1090]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x10a8
ret
Function at 0x14004d7c0
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x138
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x8000020
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov r8d, 3
mov edx, 0x80000000
mov rcx, qword [rsp + 0x158]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0xffffffffffffffff
jne 0x14004d8e0
lea r9, [0x1402551b0]
xor r8d, r8d
mov edx, 3
lea rcx, [rsp + 0x88]
call fcn.140038d20
lea rcx, [rsp + 0x78]
mov rdi, rcx
mov rsi, rax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x40], eax
mov rdx, qword [rsp + 0x158]
lea rcx, [rsp + 0xa0]
call fcn.14001f4b0
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x58], rax
xor edx, edx
mov rcx, qword [rsp + 0x58]
call fcn.14002f250
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x78]
mov rdi, rcx
mov rsi, rdx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov ecx, dword [rsp + 0x40]
mov r9d, ecx
mov r8, rax
lea rdx, str._tasp::library_CreateFile__strfilename:_s__err_lu.
lea rcx, [rsp + 0x60]
call fcn.14003b980
nop
lea rcx, [rsp + 0xa0]
call fcn.140020590
xor eax, eax
jmp 0x14004d906
lea rdx, [rsp + 0x120]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x128]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x138
pop rdi
pop rsi
ret

Function at 0x14004d920
Capabilities:
Write file on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0xe8
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xd0], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov rdx, qword [rsp + 0x110]
mov rcx, qword [rsp + 0x40]
call fcn.14001f4b0
mov qword [rsp + 0x48], rax
mov byte [rsp + 0x20], 1
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0xf8]
lea rdx, [rsp + 0xd0]
mov rcx, qword [rsp + 0xf0]
call fcn.14004cf00
mov dword [rsp + 0x38], eax
cmp dword [rsp + 0x38], 0
je 0x14004d9b3
xor eax, eax
jmp 0x14004da35
cmp qword [rsp + 0x100], 0
je 0x14004d9c8
cmp dword [rsp + 0x108], 0
jne 0x14004d9dc
mov rcx, qword [rsp + 0xd0]
call fcn.1401fbb28
mov eax, 1
jmp 0x14004da35
movsxd rax, dword [rsp + 0x108]
mov r9, qword [rsp + 0xd0]
mov r8, rax
mov edx, 1
mov rcx, qword [rsp + 0x100]
call fcn.1401fc1ac
mov dword [rsp + 0x34], eax
mov rcx, qword [rsp + 0xd0]
call fcn.1401fbb28
mov eax, dword [rsp + 0x108]
cmp dword [rsp + 0x34], eax
jne 0x14004da29
mov dword [rsp + 0x30], 1
jmp 0x14004da31
mov dword [rsp + 0x30], 0
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0xd8]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0xe8
ret
Function at 0x140052d20
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x4f0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x4e0], rax
mov dword [rsp + 0x30], 0
lea rcx, [rsp + 0x40]
call fcn.14001f530
nop
lea rax, [rsp + 0x2d0]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x23
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x140052d98
lea rdx, [rsp + 0x2d0]
lea rcx, [rsp + 0x40]
call fcn.140021260
jmp 0x140052dfa
xor eax, eax
mov word [rsp + 0xc0], ax
lea rax, [rsp + 0xc2]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
mov edx, 0x104
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea rcx, [rsp + 0x40]
call fcn.14001bd90
mov r8d, 3
lea rdx, [rsp + 0xc0]
mov rcx, rax
call fcn.140047b80
lea rdx, str.ProgramData
lea rcx, [rsp + 0x40]
call fcn.140022f20
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x508]
call fcn.14001f3a0
mov eax, dword [rsp + 0x30]
or eax, 1
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x40]
call fcn.140020590
mov rax, qword [rsp + 0x508]
mov rcx, qword [rsp + 0x4e0]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x4f0
pop rdi
ret

Function at 0x140055de0
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x78
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x68], rax
xor edx, edx
mov rcx, qword [rsp + 0x88]
call fcn.14002f250
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1400060b0
nop
mov rax, qword [rsp + 0x80]
add rax, 0x3f8
mov rcx, rax
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov rdx, rax
lea rcx, [0x14032afa8]
call fcn.14004d7c0
mov dword [rsp + 0x30], eax
cmp dword [rsp + 0x30], 0xa00000
jl 0x140055e7d
mov rax, qword [rsp + 0x80]
add rax, 0x3f8
mov rcx, rax
call fcn.140021b20
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rcx, [rsp + 0x48]
call fcn.1400079b0
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x48]
call fcn.1400061b0
mov rcx, qword [rsp + 0x80]
add rcx, 0x3f8
lea rdx, [0x14025de58]
mov qword [rsp + 0x20], rdx
mov rdx, qword [rsp + 0x38]
mov r9d, edx
mov r8, rax
mov rdx, rcx
lea rcx, [0x14032afa8]
call fcn.14004d920
nop
lea rcx, [rsp + 0x48]
call fcn.140006170
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x78
ret
Function at 0x14005e700
Capabilities:
Enumerate processes on remote desktop session host
Terminate process

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x78
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x60], 0
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
mov r8d, 1
xor edx, edx
xor ecx, ecx
call sub.WTSAPI32.dll_WTSEnumerateProcessesW
test eax, eax
jne 0x14005e777
mov dword [rsp + 0x3c], 0
mov rcx, qword [rsp + 0x88]
call fcn.140057ae0
mov eax, dword [rsp + 0x3c]
jmp 0x14005e87d
mov dword [rsp + 0x30], 0
jmp 0x14005e78b
mov eax, dword [rsp + 0x30]
inc eax
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x60]
cmp dword [rsp + 0x30], eax
jae 0x14005e85a
mov dword [rsp + 0x34], 0
jmp 0x14005e7ad
mov eax, dword [rsp + 0x34]
inc eax
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x34]
mov qword [rsp + 0x48], rax
mov rcx, qword [rsp + 0x88]
call fcn.140050610
mov rcx, qword [rsp + 0x48]
cmp rcx, rax
jae 0x14005e855
mov eax, dword [rsp + 0x34]
mov edx, eax
mov rcx, qword [rsp + 0x88]
call fcn.1400218d0
mov rcx, rax
call fcn.140048030
mov ecx, dword [rsp + 0x30]
imul rcx, rcx, 0x18
mov rdx, rax
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + rcx + 8]
call fcn.1401fa488
test eax, eax
jne 0x14005e850
mov eax, dword [rsp + 0x30]
imul rax, rax, 0x18
mov rcx, qword [rsp + 0x58]
mov r8d, dword [rcx + rax + 4]
xor edx, edx
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rsp + 0x40], rax
cmp qword [rsp + 0x40], 0
je 0x14005e850
xor edx, edx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14005e855
jmp 0x14005e7a3
jmp 0x14005e781
mov rcx, qword [rsp + 0x58]
call sub.WTSAPI32.dll_WTSFreeMemory
mov dword [rsp + 0x38], 1
mov rcx, qword [rsp + 0x88]
call fcn.140057ae0
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x78
ret