joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1401cdbe0
Capabilities:
Resolve dns

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x208
lea rbp, [rsp + 0x80]
mov rax, rdx
mov rsi, rcx
mov rdx, qword [rdx]
mov rdi, qword [rax + 8]
movzx eax, word [rax + 0x10]
mov word [rbp + 0x186], ax
mov rax, qword [0x14038bf20]
cmp rax, 3
jne 0x1401cdd12
lea rax, [rbp + 0x186]
mov qword [rbp + 0x170], rax
cmp rdi, 0x17f
ja 0x1401cdd38
lea rbx, [rbp - 0x60]
mov rcx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbp + rdi - 0x60], 0
inc rdi
lea rcx, [rbp + 0x158]
mov rdx, rbx
mov r8, rdi
call fcn.1401d9e20
cmp qword [rbp + 0x158], 0
je 0x1401cdc81
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x1401cdd03
mov rcx, qword [rbp + 0x160]
xorps xmm0, xmm0
movaps xmmword [rbp + 0x120], xmm0
movaps xmmword [rbp + 0x140], xmm0
movaps xmmword [rbp + 0x130], xmm0
mov dword [rbp + 0x128], 1
mov qword [rbp + 0x178], 0
lea r8, [rbp + 0x120]
lea r9, [rbp + 0x178]
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x1401cdce4
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
mov ecx, 1
jmp 0x1401cdcfc
mov rax, qword [rbp + 0x178]
movzx ecx, word [rbp + 0x186]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], cx
xor ecx, ecx
mov qword [rsi + 8], rax
mov qword [rsi], rcx
mov rax, rsi
add rsp, 0x208
pop rbx
pop rdi
pop rsi
pop rbp
ret
mov rbx, rdx
call fcn.140254010
mov rdx, rbx
lea rax, [rbp + 0x186]
mov qword [rbp + 0x170], rax
cmp rdi, 0x17f
jbe 0x1401cdc37
lea r9, [rbp + 0x170]
mov rcx, rsi
mov r8, rdi
call fcn.140254080
jmp 0x1401cdd03
Function at 0x1401cde80
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push rbp
push rsi
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov rax, rdx
mov rsi, rcx
xorps xmm0, xmm0
movaps xmmword [rbp + 0x10], xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x30], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm0
mov dword [rbp + 0x34], 0x80
lea rdx, [rbp - 0x60]
lea r8, [rbp + 0x34]
mov rcx, rax
call qword [sym.imp.ws2_32.dll_getsockname]
cmp eax, 0xffffffff
je 0x1401cdf0a
mov eax, dword [rbp + 0x34]
movzx ecx, word [rbp - 0x60]
cmp ecx, 0x17
je 0x1401cdf1a
cmp ecx, 2
jne 0x1401cdf58
cmp eax, 0xf
jbe 0x1401cdf72
movzx eax, word [rbp - 0x5e]
rol ax, 8
mov ecx, dword [rbp - 0x5c]
mov word [rsi], 0
mov word [rsi + 6], ax
mov dword [rsi + 2], ecx
jmp 0x1401cdf68
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
jmp 0x1401cdf5f
cmp eax, 0x1b
jbe 0x1401cdf8a
movzx eax, word [rbp - 0x5e]
rol ax, 8
mov ecx, dword [rbp - 0x5c]
mov edx, dword [rbp - 0x48]
movups xmm0, xmmword [rbp - 0x58]
movups xmmword [rbp + 0x24], xmm0
mov word [rsi], 1
movups xmm0, xmmword [rbp + 0x22]
movups xmmword [rsi + 2], xmm0
movzx r8d, word [rbp + 0x32]
mov word [rsi + 0x12], r8w
mov dword [rsi + 0x14], ecx
mov dword [rsi + 0x18], edx
mov word [rsi + 0x1c], ax
jmp 0x1401cdf68
lea rax, str.invalid_argument
mov qword [rsi + 8], rax
mov word [rsi], 2
add rsp, 0xb8
pop rsi
pop rbp
ret
lea rcx, [0x14031b66a]
lea r8, str.library_std_src_sys_common_net.rsassertion_failed:_len___mem::size_of::_c::sockaddr_in___
mov edx, 0x39
call fcn.140255290
lea rcx, str.assertion_failed:_len___mem::size_of::_c::sockaddr_in6___
lea r8, str.library_std_src_sys_common_net.rsassertion_failed:_len___mem::size_of::_c::sockaddr_in___
mov edx, 0x3a
call fcn.140255290
int3
Function at 0x1401e15f0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
lea rbp, [rsp + 0x20]
test r8, r8
je 0x1401e167a
mov rax, rdx
mov rdx, qword [rbp + 0x50]
mov esi, ecx
shr esi, 8
lea r8, [rax + r8*2]
xor r11d, r11d
mov rbx, rax
movzx edi, byte [rax + 1]
add rax, 2
lea r10, [r11 + rdi]
cmp byte [rbx], sil
jne 0x1401e1670
cmp r11, r10
ja 0x1401e16f6
cmp r10, rdx
ja 0x1401e1708
add r11, r9
xor ebx, ebx
nop word cs:[rax + rax]
cmp rdi, rbx
je 0x1401e1672
lea r14, [rbx + 1]
cmp byte [r11 + rbx], cl
mov rbx, r14
jne 0x1401e1650
jmp 0x1401e16d7
ja 0x1401e167a
mov r11, r10
cmp rax, r8
jne 0x1401e1617
mov rdx, qword [rbp + 0x60]
test rdx, rdx
je 0x1401e16db
mov r8, qword [rbp + 0x58]
add rdx, r8
movzx ecx, cx
mov al, 1
nop
lea r10, [r8 + 1]
movzx r9d, byte [r8]
test r9b, r9b
js 0x1401e16b0
mov r8, r10
sub ecx, r9d
jns 0x1401e16ce
jmp 0x1401e16dd
cmp r10, rdx
je 0x1401e16ea
movzx r10d, byte [r8 + 1]
add r8, 2
and r9d, 0x7f
shl r9d, 8
or r9d, r10d
sub ecx, r9d
js 0x1401e16dd
xor al, 1
cmp r8, rdx
jne 0x1401e1690
jmp 0x1401e16dd
xor eax, eax
jmp 0x1401e16dd
mov al, 1
and al, 1
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
lea rcx, str.librarycore_srcunicodeprintable.rs
call fcn.140255150
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r11
mov rdx, r10
call fcn.140255790
lea r8, str.librarycore_srcunicodeprintable.rs
mov rcx, r10
call fcn.140255720
int3
Function at 0x1401e3990
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
push r15
mov rbx, qword [rcx]
mov rdi, rcx
movabs rbp, 0xc2b2ae3d27d4eb4f
movabs rsi, 0x9e3779b185ebca87
movabs r14, 0x27d4eb2f165667c5
movabs r15, 0x7a1435883d4d519d
cmp rbx, 0x20
jb 0x1401e3a7b
mov r8, qword [rcx + 8]
mov r10, qword [rcx + 0x20]
mov rdx, r8
mov r9, qword [rcx + 0x18]
mov rcx, qword [rcx + 0x10]
mov rax, r9
rol rax, 0xc
mov r11, rcx
rol r11, 7
add r11, rax
rol r8, 1
mov rax, r10
rol rax, 0x12
add r11, rax
movabs rax, 0x85ebca77c2b2ae63
add r11, r8
imul rdx, rbp
imul rcx, rbp
imul r9, rbp
imul r10, rbp
rol rdx, 0x1f
imul rdx, rsi
rol rcx, 0x1f
xor r11, rdx
rol r9, 0x1f
imul r11, rsi
imul rcx, rsi
imul r9, rsi
sub r11, r15
rol r10, 0x1f
xor r11, rcx
imul r11, rsi
imul r10, rsi
sub r11, r15
xor r11, r9
imul r11, rsi
sub r11, r15
xor r11, r10
imul r11, rsi
add rax, r11
add rax, rbx
jmp 0x1401e3a83
lea rax, [rbx + r14]
add rax, qword [rcx + 0x18]
and ebx, 0x1f
lea r8, [rdi + 0x28]
cmp rbx, 8
jb 0x1401e3ac7
mov edx, ebx
shr rdx, 3
imul rcx, rdx, 0xfffffffffffffff8
add rbx, rcx
nop dword [rax]
mov rcx, qword [r8]
add r8, 8
imul rcx, rbp
rol rcx, 0x1f
imul rcx, rsi
xor rax, rcx
rol rax, 0x1b
imul rax, rsi
sub rax, r15
sub rdx, 1
jne 0x1401e3aa0
movabs r9, 0x165667b19e3779f9
cmp rbx, 4
jb 0x1401e3af4
mov edx, dword [r8]
add r8, 4
imul rdx, rsi
xor rax, rdx
rol rax, 0x17
imul rax, rbp
add rax, r9
sub rbx, 4
test rbx, rbx
je 0x1401e3b1d
nop dword [rax]
movzx ecx, byte [r8]
lea r8, [r8 + 1]
imul rcx, r14
xor rax, rcx
rol rax, 0xb
imul rax, rsi
sub rbx, 1
jne 0x1401e3b00
mov rbx, qword [rsp + 0x18]
mov rcx, rax
mov rsi, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
shr rcx, 0x21
xor rcx, rax
imul rcx, rbp
mov rbp, qword [rsp + 0x20]
mov rdx, rcx
shr rdx, 0x1d
xor rdx, rcx
imul rdx, r9
mov rax, rdx
shr rax, 0x20
xor rax, rdx
pop r15
pop r14
ret
Function at 0x140241680
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [rcx + 0x60]
movzx r8d, byte [rcx + 0x5c]
test eax, eax
jle 0x1402416bc
mov edx, dword [rcx + 0x288]
lea r11, [0x14038b820]
mov r9d, eax
nop dword [rax]
mov eax, edx
shr rax, 0x18
xor rax, r8
shl edx, 8
xor edx, dword [r11 + rax*4]
mov dword [rcx + 0x288], edx
sub r9, 1
jne 0x1402416a0
mov eax, dword [rcx + 0x5c]
mov byte [rax + rcx + 0x80], 1
movsxd r9, dword [rcx + 0x60]
mov edx, r9d
sub edx, 1
je 0x14024179e
sub edx, 1
je 0x140241790
cmp edx, 1
je 0x140241750
mov byte [r9 + rcx + 0x7c], 1
mov rax, qword [rcx + 0x40]
movsxd rdx, dword [rcx + 0x6c]
mov byte [rdx + rax], r8b
movsxd rdx, dword [rcx + 0x6c]
lea eax, [rdx + 1]
mov dword [rcx + 0x6c], eax
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax + 1], r8b
movsxd rdx, dword [rcx + 0x6c]
lea eax, [rdx + 1]
mov dword [rcx + 0x6c], eax
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax + 1], r8b
movsxd rdx, dword [rcx + 0x6c]
lea eax, [rdx + 1]
mov dword [rcx + 0x6c], eax
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax + 1], r8b
movsxd rdx, dword [rcx + 0x6c]
lea eax, [rdx + 1]
mov dword [rcx + 0x6c], eax
movzx r8d, byte [rcx + 0x60]
mov rax, qword [rcx + 0x40]
sub r8b, 4
mov byte [rdx + rax + 1], r8b
inc dword [rcx + 0x6c]
ret
movsxd rdx, dword [rcx + 0x6c]
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax], r8b
movsxd rdx, dword [rcx + 0x6c]
lea eax, [rdx + 1]
mov dword [rcx + 0x6c], eax
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax + 1], r8b
movsxd rdx, dword [rcx + 0x6c]
lea eax, [rdx + 1]
mov dword [rcx + 0x6c], eax
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax + 1], r8b
inc dword [rcx + 0x6c]
ret
movsxd rdx, dword [rcx + 0x6c]
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax], r8b
jmp 0x14024176f
movsxd rdx, dword [rcx + 0x6c]
mov rax, qword [rcx + 0x40]
mov byte [rdx + rax], r8b
inc dword [rcx + 0x6c]
ret
Function at 0x140249468
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.kernel32.dll_GetModuleHandleW]
test rax, rax
je 0x1402494b2
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1402494b2
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1402494b2
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1402494b2
cmp dword [rcx + 0x84], 0xe
jbe 0x1402494b2
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1402494b4
xor al, al
add rsp, 0x28
ret

Function at 0x140252c10
Capabilities:
Link many functions at runtime

Disassembly:
push rbp
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov qword [rbp], 0xfffffffffffffffe
lea rcx, [0x1402d0e75]
call qword [sym.imp.kernel32.dll_GetModuleHandleA]
test rax, rax
je 0x140252c71
mov rdi, rax
lea rdx, [0x1402d0e96]
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x140252c71
mov rsi, rax
lea rdx, [0x1402d0ea4]
mov rcx, rdi
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x140252c71
mov rdi, rax
xor ebx, ebx
jmp 0x140252cf7
lea rcx, [0x1402d0e30]
call qword [sym.imp.kernel32.dll_GetModuleHandleA]
test rax, rax
je 0x140252d6f
mov rsi, rax
lea rdx, str.NtCreateKeyedEvent
mov rcx, rax
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x140252d6f
mov rdi, rax
lea rdx, str.NtReleaseKeyedEvent
mov rcx, rsi
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x140252d6f
mov rbx, rax
lea rdx, str.NtWaitForKeyedEvent
mov rcx, rsi
call qword [sym.imp.kernel32.dll_GetProcAddress]
test rax, rax
je 0x140252d6f
mov rsi, rax
lea rcx, [rbp - 0x40]
mov edx, 0xc0000000
xor r8d, r8d
xor r9d, r9d
call rdi
test eax, eax
jne 0x140252d6f
mov rdi, qword [rbp - 0x40]
movzx eax, byte [0x14038bda1]
mov ecx, 0x18
mov edx, 8
call fcn.140028250
test rax, rax
je 0x140252da1
mov rcx, rax
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rdi
xor eax, eax
lock cmpxchg qword [0x14038be18], rcx
je 0x140252d63
mov rsi, rax
cmp qword [rcx], 0
mov qword [rbp - 8], rcx
je 0x140252d4c
mov rax, qword [rbp - 8]
mov rcx, qword [rax + 0x10]
call qword [sym.imp.kernel32.dll_CloseHandle]
mov edx, 0x18
mov r8d, 8
mov rcx, qword [rbp - 8]
call fcn.140028260
mov rcx, rsi
mov rax, rcx
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop rbp
ret
lea rax, str.parking_lot_requires_either_NT_Keyed_Events__WinXP__or_WaitOnAddress_WakeByAddress__Win8_
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], 1
mov qword [rbp - 0x30], 8
xorps xmm0, xmm0
movups xmmword [rbp - 0x28], xmm0
lea rdx, str.C:UsersDog.cargo_registry_srcindex.crates.io_6f17d22bba15001fparking_lot_core_0.9.10_src_thread_parkerwindowsmod.rs
lea rcx, [rbp - 0x40]
call fcn.1402551d0
mov qword [rbp - 0x10], rdi
mov qword [rbp - 8], rbx
mov ecx, 8
mov edx, 0x18
call fcn.140254f80
ud2
Function at 0x140254080
Capabilities:
Resolve dns

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x80
lea rbp, [rsp + 0x80]
mov r14, r9
mov rsi, rcx
lea rcx, [rbp - 0x28]
call fcn.1401d59e0
mov rdx, qword [rbp - 0x28]
movabs rax, 0x8000000000000000
cmp rdx, rax
jne 0x140254109
mov rdi, qword [rbp - 0x20]
mov rbx, qword [rbp - 0x18]
xorps xmm0, xmm0
movaps xmmword [rbp - 0x60], xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
mov dword [rbp - 0x58], 1
mov qword [rbp - 8], 0
lea r8, [rbp - 0x60]
lea r9, [rbp - 8]
mov rcx, rdi
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x14025413c
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
mov ecx, 1
jmp 0x140254150
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsi + 8], rax
mov qword [rsi], 1
test rdx, rdx
je 0x140254170
mov rcx, qword [rbp - 0x20]
mov r8d, 1
add rsp, 0x80
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
jmp fcn.140028260
mov rcx, qword [r14]
mov rax, qword [rbp - 8]
movzx ecx, word [rcx]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x18], cx
xor ecx, ecx
mov qword [rsi + 8], rax
mov qword [rsi], rcx
mov byte [rdi], 0
test rbx, rbx
je 0x140254170
mov r8d, 1
mov rcx, rdi
mov rdx, rbx
call fcn.140028260
nop
add rsp, 0x80
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
Function at 0x140001130
Capabilities:
Enumerate process modules
Find taskbar
Get process image filename

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push r14
mov eax, 0x2280
call fcn.1400278a0
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2270], rax
mov r14, rcx
xor edx, edx
lea rcx, str.Shell_TrayWnd
call qword [sym.imp.USER32.dll_FindWindowW]
xor ebx, ebx
lea rdx, [rsp + 0x30]
mov rcx, rax
mov dword [rsp + 0x30], ebx
call qword [sym.imp.USER32.dll_GetWindowThreadProcessId]
lea r8, [rsp + 0x34]
mov dword [r14], ebx
mov edx, 0x2000
mov qword [r14 + 4], 0xffffffffffffffff
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.DLL_K32EnumProcesses]
mov ebp, dword [rsp + 0x34]
shr rbp, 2
test rbp, rbp
je 0x140001250
mov qword [rsp + 0x2298], rdi
mov qword [rsp + 0x2290], rsi
mov edi, dword [rsp + rbx*4 + 0x60]
cmp edi, dword [rsp + 0x30]
jne 0x140001238
mov r8d, edi
xor edx, edx
mov ecx, 0x410
call qword [sym.imp.KERNEL32.DLL_OpenProcess]
mov rsi, rax
test rax, rax
je 0x140001238
mov r8d, 0x104
lea rdx, [rsp + 0x2060]
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_K32GetProcessImageFileNameW]
lea rax, [rsp + 0x40]
mov rcx, rsi
lea r9, [rsp + 0x48]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.DLL_GetProcessTimes]
mov rax, qword [rsp + 0x38]
cmp eax, dword [r14 + 4]
jae 0x14000122f
mov dword [r14], edi
mov qword [r14 + 4], rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
inc rbx
cmp rbx, rbp
jl 0x1400011c2
mov rdi, qword [rsp + 0x2298]
mov rsi, qword [rsp + 0x2290]
mov rax, r14
mov rcx, qword [rsp + 0x2270]
xor rcx, rsp
call fcn.140008df0
lea r11, [rsp + 0x2280]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret

Function at 0x140001280
Capabilities:
Create restart manager session
Enumerate processes that use resource

Disassembly:
mov eax, 0x2a48
call fcn.1400278a0
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2a30], rax
lea r8, [0x14003bde0]
xor edx, edx
lea rcx, [0x14003aa74]
call qword [sym.imp.RstrtMgr.DLL_RmStartSession]
test eax, eax
jne 0x14000134c
lea rcx, [rsp + 0x40]
call fcn.140001130
mov ecx, dword [0x14003aa74]
mov r9d, 1
xor r8d, r8d
xor edx, edx
movsd xmm0, qword [rax]
movsd qword [rsp + 0x60], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x68], eax
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call qword [sym.imp.RstrtMgr.DLL_RmRegisterResources]
mov ecx, dword [0x14003aa74]
lea rax, [rsp + 0x54]
lea r9, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r8, [rsp + 0x50]
mov dword [rsp + 0x50], 0x10
lea rdx, [rsp + 0x58]
call qword [sym.imp.RstrtMgr.DLL_RmGetList]
cmp dword [rsp + 0x54], 0
jne 0x14000134c
mov ecx, dword [0x14003aa74]
xor r8d, r8d
mov edx, 1
call qword [sym.imp.RstrtMgr.DLL_RmShutdown]
xor eax, eax
mov rcx, qword [rsp + 0x2a30]
xor rcx, rsp
call fcn.140008df0
add rsp, 0x2a48
ret
Function at 0x140001660
Capabilities:
Create process on windows
Get common file path
Terminate process

Disassembly:
sub rsp, 0x308
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x2f0], rax
mov ecx, 0x64
call qword [sym.imp.KERNEL32.DLL_Sleep]
mov edx, 0x105
lea rcx, [rsp + 0xe0]
call qword [sym.imp.KERNEL32.DLL_GetWindowsDirectoryW]
lea r8, [0x1400339c0]
mov edx, 0x105
lea rcx, [rsp + 0xe0]
call fcn.140017920
xorps xmm0, xmm0
mov dword [rsp + 0x50], 0x68
lea rax, [rsp + 0xc0]
xor r9d, r9d
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0xe0]
lea rax, [rsp + 0x50]
xor r8d, r8d
mov qword [rsp + 0x40], rax
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x400
mov dword [rsp + 0x20], 1
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
movups xmmword [rsp + 0x88], xmm0
movups xmmword [rsp + 0x98], xmm0
movups xmmword [rsp + 0xa8], xmm0
call qword [sym.imp.KERNEL32.DLL_CreateProcessW]
call qword [sym.imp.KERNEL32.DLL_FreeConsole]
call qword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
xor edx, edx
mov ecx, 1
mov r8d, eax
call qword [sym.imp.KERNEL32.DLL_OpenProcess]
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_TerminateProcess]
xor eax, eax
mov rcx, qword [rsp + 0x2f0]
xor rcx, rsp
call fcn.140008df0
add rsp, 0x308
ret
Function at 0x140001d90
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rbx, rcx
lea rcx, str.ntdll.dll
call qword [sym.imp.KERNEL32.DLL_GetModuleHandleW]
test rax, rax
je 0x140001e8c
lea rdx, str.RtlGetVersion
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
test rax, rax
je 0x140001e8c
mov rcx, rbx
mov dword [rbx], 0x114
call rax
test eax, eax
jne 0x140001e8c
mov ebx, 0x5c
mov dword [rsp + 0x38], eax
mov edx, ebx
mov dword [rsp + 0x3c], 4
lea rcx, str.RegistryMachineSoftwareMicrosoftWindows_NTCurrentVersion
call fcn.14000cb78
movzx edx, bx
lea rcx, [rax + 2]
call fcn.14000cb78
movzx edx, bx
lea rcx, [rax + 2]
call fcn.14000cb78
lea rcx, [rsp + 0x30]
mov r9d, 0x20019
mov qword [rsp + 0x20], rcx
xor r8d, r8d
mov rcx, 0xffffffff80000002
lea rdx, [rax + 2]
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140001e75
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x3c]
mov qword [rsp + 0x28], rax
lea rdx, [0x140034190]
lea rax, [rsp + 0x38]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov eax, dword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140008df0
add rsp, 0x50
pop rbx
ret
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.140008df0
add rsp, 0x50
pop rbx
ret
Function at 0x140002790
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0xc0
mov rsi, rcx
xor r14d, r14d
mov qword [rcx], r14
mov edx, 0x67
xor ecx, ecx
mov r8d, 0xa
call qword [sym.imp.KERNEL32.DLL_FindResourceW]
mov rbx, rax
test rax, rax
je 0x140002834
mov rdx, rax
xor ecx, ecx
call qword [sym.imp.KERNEL32.DLL_LoadResource]
test rax, rax
je 0x140002834
mov rcx, rax
call qword [sym.imp.KERNEL32.DLL_LockResource]
mov rdx, rbx
xor ecx, ecx
mov rbp, rax
call qword [sym.imp.KERNEL32.DLL_SizeofResource]
mov edi, eax
test rbp, rbp
je 0x140002834
test eax, eax
je 0x140002834
mov ecx, 0x18
call fcn.1400186c4
mov rbx, rax
test rax, rax
je 0x140002834
mov ecx, edi
call fcn.1400186c4
mov qword [rbx], rax
mov qword [rbx + 8], rdi
mov qword [rbx + 0x10], r14
test rax, rax
jne 0x140002854
mov rcx, rbx
call fcn.1400182ec
xor eax, eax
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
mov r8, rdi
mov qword [rsi], rbx
mov rdx, rbp
mov rcx, rax
call fcn.140027e00
lea rax, [0x1400026e0]
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x60]
lea rax, [0x1400026f0]
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0x28], rax
lea rax, [fcn.140001bf0]
movaps xmm0, xmmword [rsp + 0x20]
mov qword [rsp + 0x30], rax
lea rax, [0x140002750]
mov qword [rsp + 0x38], rax
lea rax, [0x140002760]
movaps xmm1, xmmword [rsp + 0x30]
mov qword [rsp + 0x40], rax
lea rax, [fcn.140001bf0]
mov qword [rsp + 0x48], rax
lea rax, [fcn.140001bf0]
mov qword [rsp + 0x50], rax
movaps xmmword [rsp + 0x60], xmm0
movaps xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x70], xmm1
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x90], xmm1
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0xb0], r14
call fcn.1400067e0
jmp 0x140002836
Function at 0x140002910
Capabilities:
Create directory
Get common file path
Move file

Disassembly:
push rbx
sub rsp, 0x280
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rbx, rcx
lea rax, [rsp + 0x60]
xor ecx, ecx
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1a
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea r8, str.ExplorerPatchercleanup
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017920
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.DLL_CreateDirectoryW]
lea r8, [0x140033980]
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017920
call qword [sym.imp.KERNEL32.DLL_GetCurrentProcessId]
mov r9d, 0xa
lea rdx, [rsp + 0x30]
mov r8d, r9d
mov ecx, eax
call fcn.140018a74
lea r8, [rsp + 0x30]
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017920
lea r8, [0x140034554]
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017920
mov ecx, dword [0x14003aa70]
lea rdx, [rsp + 0x48]
mov r9d, 0xa
mov r8d, r9d
lea eax, [rcx + 1]
mov dword [0x14003aa70], eax
call fcn.140018a74
lea r8, [rsp + 0x48]
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017920
lea r8, [0x140034558]
mov edx, 0x104
lea rcx, [rsp + 0x60]
call fcn.140017920
lea rdx, [rsp + 0x60]
mov rcx, rbx
call qword [sym.imp.KERNEL32.DLL_MoveFileW]
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.140008df0
add rsp, 0x280
pop rbx
ret
Function at 0x140003730
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Enumerate files recursively

Disassembly:
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x6a0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x690], rax
mov rsi, rcx
mov r8, rcx
lea rcx, [rsp + 0x480]
mov edx, 0x104
call fcn.1400178b8
lea r8, [0x1400345ec]
mov edx, 0x104
lea rcx, [rsp + 0x480]
call fcn.140017920
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x480]
call qword [sym.imp.KERNEL32.DLL_FindFirstFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400037b0
mov eax, 1
jmp 0x14000389b
lea rdx, [0x1400345f4]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.DLL_lstrcmpW]
test eax, eax
je 0x140003856
lea rdx, [0x1400345f8]
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.DLL_lstrcmpW]
test eax, eax
je 0x140003856
mov r8, rsi
lea rcx, [rsp + 0x270]
mov edx, 0x104
call fcn.1400178b8
lea r8, [0x140033980]
mov edx, 0x104
lea rcx, [rsp + 0x270]
call fcn.140017920
lea r8, [rsp + 0x4c]
mov edx, 0x104
lea rcx, [rsp + 0x270]
call fcn.140017920
test byte [rsp + 0x20], 0x10
lea rcx, [rsp + 0x270]
je 0x14000383b
call fcn.140003730
jmp 0x140003852
call qword [sym.imp.KERNEL32.DLL_DeleteFileW]
test eax, eax
jne 0x140003856
lea rcx, [rsp + 0x270]
call fcn.140002910
test eax, eax
je 0x1400038bc
lea rdx, [rsp + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindNextFileW]
test eax, eax
jne 0x1400037b0
mov qword [rsp + 0x6b8], rbx
call qword [sym.imp.KERNEL32.DLL_GetLastError]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.DLL_FindClose]
cmp ebx, 0x12
mov rbx, qword [rsp + 0x6b8]
jne 0x1400038c5
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_RemoveDirectoryW]
mov rcx, qword [rsp + 0x690]
xor rcx, rsp
call fcn.140008df0
mov rsi, qword [rsp + 0x6c0]
add rsp, 0x6a0
pop rdi
ret
mov rcx, rdi
call qword [sym.imp.KERNEL32.DLL_FindClose]
xor eax, eax
jmp 0x14000389b