joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140031020
Capabilities:
Query service status

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x70
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov r8d, reloc.OLEAUT32.dll_SafeArrayGetDim
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_OpenSCManagerW]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
jne 0x14003109c
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x3c], eax
mov rcx, qword [rsp + 0x88]
call fcn.140020590
mov eax, dword [rsp + 0x3c]
jmp 0x14003112e
mov rcx, qword [rsp + 0x88]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov r8d, 4
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 0x14003110a
lea rax, [rsp + 0x48]
mov rdi, rax
xor eax, eax
mov ecx, 0x1c
rep stosb byte [rdi], al
lea rdx, [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_QueryServiceStatus]
test eax, eax
je 0x1400310ff
mov eax, dword [rsp + 0x4c]
mov dword [rsp + 0x20], eax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x38], eax
mov rcx, qword [rsp + 0x88]
call fcn.140020590
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x70
pop rdi
ret

Function at 0x140031460
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x250
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov dword [rsp + 0x20], 0
xor eax, eax
mov word [rsp + 0x30], ax
lea rax, [rsp + 0x32]
mov rdi, rax
xor eax, eax
mov ecx, 0x206
rep stosb byte [rdi], al
mov edx, 0x104
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea r8, str._system32_
mov edx, 0x104
lea rcx, [rsp + 0x30]
call fcn.1401fa0ac
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x268]
call fcn.14001f4b0
mov eax, dword [rsp + 0x20]
or eax, 1
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x250
pop rdi
ret
Function at 0x1400332d0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov ecx, 0x400
call fcn.14006dfa0
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x140033381
mov dword [rsp + 0x2c], 0xedb88320
mov dword [rsp + 0x24], 0
jmp 0x14003331a
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0x100
jge 0x140033381
mov eax, dword [rsp + 0x24]
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x28], 8
jmp 0x140033340
mov eax, dword [rsp + 0x28]
dec eax
mov dword [rsp + 0x28], eax
cmp dword [rsp + 0x28], 0
jle 0x14003336e
mov eax, dword [rsp + 0x20]
and eax, 1
test eax, eax
je 0x140033362
mov eax, dword [rsp + 0x20]
shr eax, 1
xor eax, dword [rsp + 0x2c]
mov dword [rsp + 0x20], eax
jmp 0x14003336c
mov eax, dword [rsp + 0x20]
shr eax, 1
mov dword [rsp + 0x20], eax
jmp 0x140033336
movsxd rax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x30]
mov edx, dword [rsp + 0x20]
mov dword [rcx + rax*4], edx
jmp 0x140033310
mov rax, qword [rsp + 0x30]
add rsp, 0x48
ret
Function at 0x1400359d0
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x18
mov byte [rsp + 1], 0
jmp 0x1400359eb
movzx eax, byte [rsp + 1]
inc al
mov byte [rsp + 1], al
movzx eax, byte [rsp + 1]
cmp eax, 4
jge 0x140035a49
mov byte [rsp], 0
jmp 0x140035a04
movzx eax, byte [rsp]
inc al
mov byte [rsp], al
movzx eax, byte [rsp]
cmp eax, 4
jge 0x140035a47
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, [0x140259a80]
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 0x1400359fb
jmp 0x1400359e0
add rsp, 0x18
ret
Function at 0x140036510
Capabilities:
Terminate process

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x98
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x1400365c1
xor edx, edx
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
jne 0x1400365b4
lea r9, [0x140253380]
mov r8d, 2
mov edx, 3
lea rcx, [rsp + 0x70]
call fcn.140038d20
lea rcx, [rsp + 0x30]
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]
lea rcx, [rsp + 0x40]
lea rdx, [rsp + 0x30]
mov rdi, rcx
mov rsi, rdx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov r8d, eax
lea rdx, str._tasp::library_TerminateProcess_err:_lu
lea rcx, [rsp + 0x40]
call fcn.14003b980
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140036623
lea r9, [0x1402534e0]
mov r8d, 2
mov edx, 3
lea rcx, [rsp + 0x80]
call fcn.140038d20
lea rcx, [rsp + 0x50]
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]
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x50]
mov rdi, rcx
mov rsi, rdx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov r8d, eax
lea rdx, str._tasp::library_OpenProcess_err:_lu
lea rcx, [rsp + 0x60]
call fcn.14003b980
mov eax, dword [rsp + 0x20]
add rsp, 0x98
pop rdi
pop rsi
ret
Function at 0x140036640
Capabilities:
Terminate process

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0xc8
mov r8d, dword [rsp + 0xe8]
xor edx, edx
mov ecx, 0x100001
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x140036680
cmp qword [rsp + 0x28], 0xffffffffffffffff
jne 0x14003676e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0x57
jne 0x1400366fe
lea r9, [0x14024f640]
xor r8d, r8d
mov edx, 3
lea rcx, [rsp + 0x90]
call fcn.140038d20
lea rcx, [rsp + 0x60]
mov rdi, rcx
mov rsi, rax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x70]
lea rcx, [rsp + 0x60]
mov rdi, rax
mov rsi, rcx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov r9d, dword [rsp + 0x20]
mov r8d, dword [rsp + 0xe8]
lea rdx, [0x14024f608]
lea rcx, [rsp + 0x70]
call fcn.14003b980
mov eax, 1
jmp 0x1400367fc
lea r9, [0x14024f730]
xor r8d, r8d
mov edx, 3
lea rcx, [rsp + 0xa0]
call fcn.140038d20
lea rcx, [rsp + 0x30]
mov rdi, rcx
mov rsi, rax
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x80]
lea rcx, [rsp + 0x30]
mov rdi, rax
mov rsi, rcx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov r9d, dword [rsp + 0x20]
mov r8d, dword [rsp + 0xe8]
lea rdx, str._tasp::library_KillProcessOfID__dwPID:_lu__err_lu._n
lea rcx, [rsp + 0x80]
call fcn.14003b980
xor eax, eax
jmp 0x1400367fc
xor edx, edx
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov dword [rsp + 0x24], eax
cmp dword [rsp + 0x24], 0
jne 0x1400367ed
lea r9, [0x14024f870]
xor r8d, r8d
mov edx, 3
lea rcx, [rsp + 0xb0]
call fcn.140038d20
lea rcx, [rsp + 0x40]
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]
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x40]
mov rdi, rcx
mov rsi, rdx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov r9d, eax
mov r8d, dword [rsp + 0xe8]
lea rdx, str._tasp::library_TerminateProcess__dwPID:_lu__err_lu._n
lea rcx, [rsp + 0x50]
call fcn.14003b980
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x24]
add rsp, 0xc8
pop rdi
pop rsi
ret
Function at 0x140037010
Capabilities:
Check for sandbox and av modules
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
lea rcx, [0x140253998]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140037045
lea rcx, str.dbghelp.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x140037069
lea rdx, [0x1402539f0]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x40]
mov qword [rcx], rax
jmp 0x140037075
mov rax, qword [rsp + 0x40]
mov qword [rax], 0
mov rax, qword [rsp + 0x40]
cmp qword [rax], 0
je 0x14003708e
lea rax, [0x140252abc]
mov qword [rsp + 0x28], rax
jmp 0x14003709a
lea rax, str.DbgHelp.dll
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x38
ret

Function at 0x1400370b0
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x48
lea rcx, [0x140253af8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400370e5
lea rcx, [0x140253b58]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x140037140
lea rdx, [0x140253a88]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x10], rax
lea rdx, [0x140253c40]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 8], rax
lea rdx, [0x140253c58]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x18], rax
jmp 0x140037167
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x10], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 8], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x18], 0
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x10], 0
je 0x140037181
lea rax, [0x1402538dc]
mov qword [rsp + 0x28], rax
jmp 0x14003718d
lea rax, [0x140253cd0]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x50]
cmp qword [rax + 8], 0
je 0x1400371b2
lea rax, [0x140253b14]
mov qword [rsp + 0x30], rax
jmp 0x1400371be
lea rax, [0x140253d90]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x18], 0
je 0x1400371e3
lea rax, [0x140253b74]
mov qword [rsp + 0x38], rax
jmp 0x1400371ef
lea rax, str.Iphlpapi.dll
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x48
ret
Function at 0x140037690
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x48
lea rcx, [0x140254bf8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400376c5
lea rcx, [0x140254c10]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x140037732
lea rdx, [0x140254c40]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x40], rax
lea rdx, [0x140254cf8]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x48], rax
lea rdx, [0x140254de0]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0x50], rax
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx + 0x50]
mov qword [rax + 0x58], rcx
jmp 0x140037766
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x40], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x48], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x50], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 0x58], 0
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x40], 0
je 0x140037780
lea rax, [0x1402548ac]
mov qword [rsp + 0x28], rax
jmp 0x14003778c
lea rax, [0x140254e30]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x48], 0
je 0x1400377b1
lea rax, [0x1402549e4]
mov qword [rsp + 0x30], rax
jmp 0x1400377bd
lea rax, [0x140254f00]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0x50], 0
je 0x1400377e2
lea rax, [0x140254b84]
mov qword [rsp + 0x38], rax
jmp 0x1400377ee
lea rax, str.Psapi.dll
mov qword [rsp + 0x38], rax
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x48
ret

Function at 0x140037800
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
lea rcx, [0x140255920]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140037835
lea rcx, [0x1402559b8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x14003785d
lea rdx, str.GetDpiForMonitor
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x40]
mov qword [rcx + 0xf0], rax
jmp 0x14003786d
mov rax, qword [rsp + 0x40]
mov qword [rax + 0xf0], 0
mov rax, qword [rsp + 0x40]
cmp qword [rax + 0xf0], 0
je 0x14003788a
lea rax, [0x1402559fc]
mov qword [rsp + 0x28], rax
jmp 0x140037896
lea rax, str.Shcore.dll
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x38
ret
Function at 0x140037990
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x48
lea rcx, [0x1402553a8]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400379c5
lea rcx, [0x140255428]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x140037a0b
lea rdx, [0x140255588]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0xa8], rax
lea rdx, [0x1402555a8]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 0xb0], rax
jmp 0x140037a2b
mov rax, qword [rsp + 0x50]
mov qword [rax + 0xa8], 0
mov rax, qword [rsp + 0x50]
mov qword [rax + 0xb0], 0
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0xa8], 0
je 0x140037a48
lea rax, [0x140255214]
mov qword [rsp + 0x28], rax
jmp 0x140037a54
lea rax, [0x140255780]
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rax, qword [rsp + 0x50]
cmp qword [rax + 0xb0], 0
je 0x140037a7c
lea rax, [0x140255774]
mov qword [rsp + 0x30], rax
jmp 0x140037a88
lea rax, str.User32.dll
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x48
ret
Function at 0x1400389e0
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x58
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x40], rax
cmp qword [0x14032aeb8], 0
jne 0x140038a0c
jmp 0x140038aee
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x38], 0
lea rdx, [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
call qword [0x14032aeb8]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
jne 0x140038a64
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x60]
call fcn.140039770
jmp 0x140038aee
cmp dword [rsp + 0x20], 0xe8
jne 0x140038a7b
lea rcx, str._CMFLAdapter_:No_adapter_information_exists_for_the_local_computer
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [rsp + 0x20], 0x32
jne 0x140038a8f
lea rcx, str._CMFLAdapter_:GetAdaptersInfo_is_not_supported_by_the_operating_system_running_on_the_local_computer
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [rsp + 0x20], 0x6f
jne 0x140038aee
mov eax, dword [rsp + 0x38]
mov ecx, eax
call fcn.1401fca8c
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x38]
mov rcx, qword [rsp + 0x28]
call qword [0x14032aeb8]
mov dword [rsp + 0x20], eax
cmp dword [rsp + 0x20], 0
jne 0x140038aee
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov r8, qword [rsp + 0x68]
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x60]
call fcn.140039770
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x60]
call fcn.14003c550
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x58
ret
Function at 0x14003bc40
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
call fcn.140041cc0
movzx eax, al
test eax, eax
jne 0x14003bc8d
lea rcx, str.CDebugLog::PushLog1
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rsp + 0x58]
call fcn.1401fca4c
add rsp, 0x38
ret
Function at 0x14003c5e0
Capabilities:
Move file

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rsi
push rdi
sub rsp, 0x278
mov qword [rsp + 0x90], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x260], rax
mov rcx, qword [rsp + 0x298]
call fcn.14001bd90
mov r8, 0xffffffffffffffff
lea rdx, str..log.
mov rcx, rax
call fcn.140050590
mov qword [rsp + 0x48], rax
cmp qword [rsp + 0x48], 0xffffffffffffffff
je 0x14003c8ce
lea rcx, [rsp + 0x1e0]
call fcn.14001f530
nop
mov rcx, qword [rsp + 0x298]
call fcn.14001bd90
mov r9, qword [rsp + 0x48]
xor r8d, r8d
lea rdx, [rsp + 0xb0]
mov rcx, rax
call fcn.140050980
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x1e0]
call fcn.140021230
nop
lea rcx, [rsp + 0xb0]
call fcn.14001f8f0
lea rcx, [rsp + 0x160]
call fcn.14001f530
nop
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x160]
xor r8d, r8d
mov rdx, qword [rsp + 0x298]
lea rcx, [0x14032afa8]
call fcn.14002d770
lea rcx, [rsp + 0x160]
call fcn.14001bd90
mov rcx, rax
call fcn.140048800
movzx eax, al
test eax, eax
jne 0x14003c8b3
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x14024ee14]
lea rcx, [rsp + 0x160]
call fcn.14003c8f0
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x14024ee74]
lea rcx, [rsp + 0x160]
call fcn.14003c8f0
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x14024ef14]
lea rcx, [rsp + 0x160]
call fcn.14003c8f0
lea rcx, [rsp + 0x160]
call fcn.14001bd90
mov rcx, rax
call fcn.140048030
mov r9, rax
lea r8, str.__s.log
lea rdx, [rsp + 0xe0]
lea rcx, [0x14032af98]
call fcn.14002bda0
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0x1e0]
call fcn.140022eb0
nop
lea rcx, [rsp + 0xe0]
call fcn.140020590
lea rcx, [rsp + 0x1e0]
call fcn.140021b20
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x298]
call fcn.140021b20
mov rcx, qword [rsp + 0x68]
mov rdx, rcx
mov rcx, rax
call fcn.1401fa6b8
test eax, eax
jne 0x14003c810
lea rdx, [rsp + 0x1e0]
mov rcx, qword [rsp + 0x2a0]
call fcn.1400211f0
jmp 0x14003c8b3
lea r9, [0x14024f060]
xor r8d, r8d
mov edx, 3
lea rcx, [rsp + 0xd0]
call fcn.140038d20
lea rcx, [rsp + 0x80]
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
xor edx, edx
lea rcx, [rsp + 0x1e0]
call fcn.14002f250
mov qword [rsp + 0x50], rax
xor edx, edx
mov rcx, qword [rsp + 0x298]
call fcn.14002f250
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x80]
mov rdi, rcx
mov rsi, rdx
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
rep movsb byte [rdi], byte [rsi]
mov ecx, dword [rsp + 0x40]
mov dword [rsp + 0x20], ecx
mov rcx, qword [rsp + 0x50]
mov r9, rcx
mov r8, rax
lea rdx, str._t_trename__s___s_failed_err_lu.
lea rcx, [rsp + 0xa0]
call fcn.14003b980
nop
lea rcx, [rsp + 0x160]
call fcn.140020590
nop
lea rcx, [rsp + 0x1e0]
call fcn.140020590
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x278
pop rdi
pop rsi
ret
Function at 0x14003eb20
Capabilities:
Print debug messages

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0xc8
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0xb0], rax
cmp dword [rsp + 0xd8], 1
jl 0x14003eb89
mov rax, qword [rsp + 0xd0]
mov eax, dword [rax + 0x5b0]
cmp dword [rsp + 0xd8], eax
jge 0x14003eb89
movsxd rax, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xd0]
mov dword [rcx + rax*4 + 0x588], 1
jmp 0x14003ebc8
mov r9d, dword [rsp + 0xd8]
lea r8, str.CDebugLog_SetFilterLevelArray
lea rdx, [rsp + 0x30]
lea rcx, [0x14032af98]
call fcn.14002bda0
nop
lea rcx, [rsp + 0x30]
call fcn.140021b20
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
nop
lea rcx, [rsp + 0x30]
call fcn.140020590
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0xc8
ret

Function at 0x14003f9f0
Capabilities:
Shutdown system

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword [0x140322b20]
xor rax, rsp
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0x40]
mov edx, 0x28
mov rcx, rax
call qword [sym.imp.ADVAPI32.dll_OpenProcessToken]
mov eax, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
imul rax, rax, 0
lea rax, [rsp + rax + 0x4c]
mov r8, rax
lea rdx, str.SeShutdownPrivilege
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_LookupPrivilegeValueW]
mov dword [rsp + 0x48], 1
mov eax, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
imul rax, rax, 0
mov dword [rsp + rax + 0x54], 2
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x48]
xor edx, edx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_AdjustTokenPrivileges]
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp dword [rsp + 0x80], 0
je 0x14003faa4
mov dword [rsp + 0x38], 4
jmp 0x14003faac
mov dword [rsp + 0x38], 0
mov eax, dword [rsp + 0x38]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
or eax, 9
mov dword [rsp + 0x34], eax
cmp dword [rsp + 0x78], 1
jne 0x14003fad3
mov eax, dword [rsp + 0x30]
or eax, 2
mov dword [rsp + 0x34], eax
jmp 0x14003fae2
cmp dword [rsp + 0x78], 2
jne 0x14003fae2
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x34], eax
xor edx, edx
mov ecx, dword [rsp + 0x34]
call qword [sym.imp.USER32.dll_ExitWindowsEx]
mov dword [rsp + 0x3c], eax
mov eax, dword [rsp + 0x3c]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.1401fe250
add rsp, 0x68
ret
Function at 0x14003fec0
Capabilities:
Start service

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x48
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
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 0x14003ff0e
mov eax, dword [rsp + 0x20]
jmp 0x14003ff8f
mov r8d, 0xf01ff
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_OpenServiceW]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
jne 0x14003ff37
mov eax, dword [rsp + 0x20]
jmp 0x14003ff8f
xor r8d, r8d
xor edx, edx
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_StartServiceW]
test eax, eax
jne 0x14003ff53
mov eax, dword [rsp + 0x20]
jmp 0x14003ff8f
mov dword [rsp + 0x20], 1
cmp qword [rsp + 0x28], 0
je 0x14003ff77
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov qword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_CloseServiceHandle]
mov qword [rsp + 0x30], 0
mov eax, dword [rsp + 0x20]
add rsp, 0x48
ret