joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400122c8
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
mov eax, 0x1040
call fcn.140013a50
sub rsp, rax
mov rax, qword [0x1400655b0]
xor rax, rsp
mov qword [rsp + 0x1030], rax
mov edx, 0x400
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemWindowsDirectoryW]
xor ebx, ebx
test eax, eax
je 0x14001234d
lea rax, [0x14004bc00]
mov edx, 0x400
lea r9, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r8, [0x14004bc30]
lea rcx, [rsp + 0x830]
call fcn.140012b48
test eax, eax
jle 0x14001234d
lea rcx, [rsp + 0x830]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140012349
test al, 0x10
jne 0x140012349
mov ebx, 1
mov eax, ebx
jmp 0x14001234f
xor eax, eax
mov rcx, qword [rsp + 0x1030]
xor rcx, rsp
call fcn.140013ab0
add rsp, 0x1040
pop rbx
ret

Function at 0x1400146c0
Capabilities:
Parse pe header

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

Function at 0x14002898c
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov ebx, ecx
test r8d, r8d
jne 0x14002881f
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14002881f
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14002881f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14002881f
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14002881f
cmp dword [rcx + 0x84], 0xe
jbe 0x14002881f
cmp dword [rcx + 0xf8], 0
je 0x14002881f
mov ecx, ebx
call fcn.1400288c0
lea rax, [rbp + 0x18]
mov byte [rbp + 0x28], 0
mov qword [rbp - 0x20], rax
lea r9, [rbp - 0x2c]
lea rax, [rbp + 0x20]
mov qword [rbp - 0x18], rax
lea r8, [rbp - 0x20]
lea rax, [rbp + 0x28]
mov qword [rbp - 0x10], rax
lea rdx, [rbp - 0x28]
mov eax, 2
lea rcx, [rbp - 0x30]
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
call fcn.1400286b0
cmp dword [rbp + 0x20], 0
je 0x14002886c
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140028874
int3
xor r8d, r8d
xor edx, edx
jmp 0x1400287b8

Function at 0x14002921c
Capabilities:
Delete file

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14002923c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.140029374
or eax, 0xffffffff
jmp 0x14002923e
xor eax, eax
add rsp, 0x28
ret

Function at 0x14003371c
Capabilities:
Read file on windows

Disassembly:
sub rsp, 0x28
mov rdx, rcx
test rcx, rcx
jne 0x1400336f9
call fcn.1400293e4
mov dword [rax], socket
call fcn.14002bc30
or eax, 0xffffffff
jmp 0x140033716
sub dword [rcx + 0x10], 1
jns 0x140033708
add rsp, 0x28
jmp fcn.140039c84
mov rax, qword [rcx]
movzx ecx, byte [rax]
inc rax
mov qword [rdx], rax
mov eax, ecx
add rsp, 0x28
ret
jmp 0x1400336d8
Function at 0x140039df0
Capabilities:
Read file on windows

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, 0x20
mov rbx, rcx
test rcx, rcx
jne 0x140039b16
call fcn.1400293e4
mov dword [rax], socket
call fcn.14002bc30
jmp 0x140039c61
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x140039c61
mov eax, dword [rcx + 0x14]
shr eax, 0xc
test al, 1
jne 0x140039c61
mov eax, dword [rcx + 0x14]
shr eax, 1
test al, 1
je 0x140039b45
lock or dword [rcx + 0x14], 0x10
jmp 0x140039c61
lock or dword [rcx + 0x14], 1
mov eax, dword [rcx + 0x14]
test eax, 0x4c0
jne 0x140039b59
call fcn.14003fe78
mov esi, dword [rbx + 0x10]
cmp esi, 1
jne 0x140039b69
mov rax, qword [rbx]
mov bpl, byte [rax]
jmp 0x140039b6c
xor bpl, bpl
mov rdi, qword [rbx + 8]
mov rcx, rbx
mov qword [rbx], rdi
call fcn.140032f90
mov r8d, dword [rbx + 0x20]
mov ecx, eax
mov rdx, rdi
call fcn.140038290
mov dword [rbx + 0x10], eax
lea ecx, [rax + 1]
cmp ecx, 2
jbe 0x140039c4f
mov eax, dword [rbx + 0x14]
test al, 6
jne 0x140039bfd
mov rcx, rbx
call fcn.140032f90
cmp eax, 0xffffffff
je 0x140039be8
mov rcx, rbx
call fcn.140032f90
cmp eax, 0xfffffffe
je 0x140039be8
mov rcx, rbx
call fcn.140032f90
movsxd rdi, eax
lea r14, [0x14007bf20]
mov rcx, rbx
sar rdi, 6
call fcn.140032f90
and eax, 0x3f
lea rcx, [rax + rax*8]
mov rax, qword [r14 + rdi*8]
lea rdx, [rax + rcx*8]
jmp 0x140039bef
lea rdx, [0x1400658e0]
mov al, byte [rdx + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x140039bfd
lock or dword [rbx + 0x14], 0x20
cmp dword [rbx + 0x20], 0x200
jne 0x140039c21
mov eax, dword [rbx + 0x14]
shr eax, 6
test al, 1
je 0x140039c21
mov eax, dword [rbx + 0x14]
shr eax, 8
test al, 1
jne 0x140039c21
mov dword [rbx + 0x20], 0x1000
mov rax, qword [rbx]
cmp esi, 1
jne 0x140039c3f
movzx ecx, byte [rax]
dec dword [rbx + 0x10]
shl cx, 8
movzx eax, bpl
or cx, ax
inc qword [rbx]
jmp 0x140039c4a
movzx ecx, word [rax]
add dword [rbx + 0x10], 0xfffffffe
add qword [rbx], 2
movzx eax, cx
jmp 0x140039c66
neg eax
sbb eax, eax
and eax, 8
add eax, 8
lock or dword [rbx + 0x14], eax
and dword [rbx + 0x10], 0
mov eax, 0xffff
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
jmp 0x140039ae0
Function at 0x140001620
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x460
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x450], rax
xor r12d, r12d
lea r8, str.ntdll.dll
mov rdi, 0xffffffffffffffff
mov dword [rsp + 0x28], r12d
mov r9d, edi
mov qword [rsp + 0x20], r12
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, rdi
mov rcx, rax
call fcn.140002210
mov r9d, edi
mov dword [rsp + 0x28], ebx
lea r8, str.ntdll.dll
mov qword [rsp + 0x20], rax
xor edx, edx
mov ecx, 0xfde9
mov r14, rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov rcx, qword gs:[0x60]
mov rdx, qword [rcx + 0x18]
mov rsi, qword [rdx + 0x20]
test rsi, rsi
je 0x1400017ad
cmp word [rsi + 0x48], r12w
je 0x1400017ad
mov rbp, qword [rsi + 0x50]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, r14
movsxd rdi, eax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
movsxd r15, eax
cmp edi, 0x104
jge 0x1400017a1
cmp r15d, 0x104
jge 0x1400017a1
mov rbx, r12
test rdi, rdi
jle 0x14000173b
nop word [rax + rax]
movzx ecx, word [rbp + rbx*2]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov word [rsp + rbx*2 + 0x240], ax
inc rbx
cmp rbx, rdi
jl 0x140001720
add rbx, rbx
cmp rbx, 0x208
jae 0x1400017f3
mov word [rsp + rbx + 0x240], r12w
mov rbx, r12
test r15d, r15d
jle 0x140001778
nop dword [rax]
movzx ecx, word [r14 + rbx*2]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov word [rsp + rbx*2 + 0x30], ax
inc rbx
cmp rbx, r15
jl 0x140001760
add rbx, rbx
cmp rbx, 0x208
jae 0x1400017f3
lea rdx, [rsp + 0x30]
mov word [rsp + rbx + 0x30], r12w
lea rcx, [rsp + 0x240]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x1400017ed
mov rsi, qword [rsi]
test rsi, rsi
jne 0x1400016d2
lea rcx, str.___Module_not_found_in_PEB
call fcn.1400013e0
xor eax, eax
mov rcx, qword [rsp + 0x450]
xor rcx, rsp
call fcn.140001f10
lea r11, [rsp + 0x460]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret
mov rax, qword [rsi + 0x20]
jmp 0x1400017bb
call fcn.140002038
int3
Function at 0x140001800
Capabilities:
Parse pe header
Resolve function by parsing pe exports

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x110
mov edi, edx
mov r8, rcx
test rcx, rcx
je 0x14000197a
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x14000197a
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
cmp dword [rax], 0x4550
jne 0x14000197a
movups xmm0, xmmword [rax + 0x18]
lea rcx, [rsp + 0x20]
mov qword [r11 + 0x10], rbp
movups xmm1, xmmword [rax + 0x28]
mov qword [r11 + 0x18], rsi
xor r9d, r9d
movups xmmword [rcx], xmm0
mov qword [r11 + 8], rbx
movups xmm0, xmmword [rax + 0x38]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rax + 0x48]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rax + 0x58]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rax + 0x68]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rax + 0x78]
movups xmmword [rcx + 0x50], xmm1
movups xmmword [rcx + 0x60], xmm0
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax + 0x88]
sub rax, 0xffffffffffffff68
movups xmmword [rcx - 0x10], xmm0
movups xmm1, xmmword [rax]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rcx], xmm1
movups xmm1, xmmword [rax + 0x20]
movups xmmword [rcx + 0x10], xmm0
movups xmm0, xmmword [rax + 0x30]
movups xmmword [rcx + 0x20], xmm1
movups xmm1, xmmword [rax + 0x40]
movups xmmword [rcx + 0x30], xmm0
movups xmm0, xmmword [rax + 0x50]
movups xmmword [rcx + 0x40], xmm1
movups xmm1, xmmword [rax + 0x60]
movups xmmword [rcx + 0x50], xmm0
movups xmmword [rcx + 0x60], xmm1
mov eax, dword [r11 - 0x88]
add rax, r8
mov r10d, dword [rax + 0x20]
mov ebp, dword [rax + 0x1c]
add r10, r8
mov r11d, dword [rax + 0x24]
add rbp, r8
mov esi, dword [rax + 0x14]
add r11, r8
test esi, esi
je 0x140001944
nop dword [rax + rax]
movzx eax, word [r11]
mov ecx, dword [r10]
add rcx, r8
mov ebx, dword [rbp + rax*4]
mov eax, 0x77
add rbx, r8
movsx edx, byte [rcx]
test edx, edx
je 0x140001930
nop dword [rax]
imul eax, eax, 0x21
lea rcx, [rcx + 1]
add eax, edx
movsx edx, byte [rcx]
test edx, edx
jne 0x140001920
cmp edi, eax
je 0x140001975
inc r9d
add r11, 2
add r10, 4
cmp r9d, esi
jb 0x140001900
mov edx, edi
lea rcx, str._n_t____Function_with_hash__lu_not_found_n
call fcn.140001440
xor eax, eax
mov rbx, qword [rsp + 0x120]
mov rbp, qword [rsp + 0x128]
mov rsi, qword [rsp + 0x130]
add rsp, 0x110
pop rdi
ret
mov rax, rbx
jmp 0x140001954
xor eax, eax
add rsp, 0x110
pop rdi
ret
Function at 0x140001990
Capabilities:
Create new key via cryptacquirecontext
Encrypt data using aes via winapi
Encrypt or decrypt via wincrypt
Hash data via wincrypt
Initialize hashing via wincrypt

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x60
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rbx, r8
mov dword [rsp + 0x30], 0x3c0
mov rdi, rcx
mov dword [rsp + 0x20], 0xf0000000
xor r8d, r8d
lea rcx, [rsp + 0x40]
mov r9d, 0x18
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x140001a91
mov rcx, qword [rsp + 0x40]
lea rax, [rsp + 0x48]
xor r9d, r9d
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov edx, 0x800c
call qword [sym.imp.ADVAPI32.dll_CryptCreateHash]
test eax, eax
je 0x140001a91
mov rcx, qword [rsp + 0x48]
xor r9d, r9d
mov rdx, rbx
lea r8d, [r9 + 0x10]
call qword [sym.imp.ADVAPI32.dll_CryptHashData]
test eax, eax
je 0x140001a91
mov r8, qword [rsp + 0x48]
lea rax, [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
xor r9d, r9d
mov edx, 0x6610
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_CryptDeriveKey]
test eax, eax
je 0x140001a91
mov rcx, qword [rsp + 0x50]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x28], rax
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptDecrypt]
test eax, eax
je 0x140001a91
mov rcx, qword [rsp + 0x40]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyHash]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.ADVAPI32.dll_CryptDestroyKey]
xor eax, eax
jmp 0x140001a96
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140001f10
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret
Function at 0x1400029d0
Capabilities:
Parse pe header

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

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4d32d2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4f5108]
test eax, eax
je 0x2fc4d336a
lea rax, [0x2fc4f50e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4f5110]
mov qword [rbp - 8], rax
jmp 0x2fc4d334e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4d3342
cmp qword [rbp - 0x10], 0
je 0x2fc4d3342
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4d3308
lea rax, [0x2fc4f50e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4d336b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4d3470
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4d3498
mov eax, 0
jmp 0x2fc4d34e6
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4d34c1
mov eax, 0
jmp 0x2fc4d34e6
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4d34e1
mov eax, 0
jmp 0x2fc4d34e6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4d34ec
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4d356a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4d3561
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4d3561
mov rax, qword [rbp - 8]
jmp 0x2fc4d357f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4d3534
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x140001020
Capabilities:
Find process by pid

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [rcx], 0x85b3e12
mov rbx, rcx
jne 0x140001077
movsxd rax, dword [rcx + 4]
test eax, eax
je 0x140001077
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 0x140001077
call sub.ntoskrnl.exe_PsGetProcessSectionBaseAddress
test rax, rax
je 0x140001077
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 0x14000107c
mov eax, 0xc0000001
add rsp, 0x20
pop rbx
ret

Function at 0x140001084
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp dword [rcx], 0x85b3e12
mov rsi, rcx
je 0x1400010a8
mov eax, 0xc0000001
jmp 0x140001155
xor ebx, ebx
lea r9, [rsp + 0x30]
xor r8d, r8d
mov dword [rsp + 0x30], ebx
lea rdx, [rsp + 0x30]
mov edi, ebx
lea ecx, [rbx + 0x42]
call sub.ntoskrnl.exe_ZwQuerySystemInformation
cmp eax, 0xc0000004
jne 0x140001153
test rdi, rdi
je 0x1400010e0
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
mov edx, dword [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.ntoskrnl.exe_ExAllocatePool]
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x30]
mov rdx, rax
mov ecx, 0x42
mov rdi, rax
call sub.ntoskrnl.exe_ZwQuerySystemInformation
cmp eax, 0xc0000004
je 0x1400010d0
test rdi, rdi
je 0x140001153
mov r8d, dword [rdi]
test r8d, r8d
je 0x140001148
lea rcx, [rdi + 8]
mov rdx, qword [rcx]
and rdx, 0xfffffffffffffffe
test byte [rcx], 1
je 0x14000113d
cmp qword [rcx + 8], 0x200000
jne 0x14000113d
cmp dword [rcx + 0x10], 0x546e6f43
je 0x140001165
inc ebx
add rcx, 0x18
cmp ebx, r8d
jb 0x14000111e
xor edx, edx
mov rcx, rdi
call qword [sym.imp.ntoskrnl.exe_ExFreePoolWithTag]
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rax, qword [rsi + 8]
mov qword [rax], rdx
jmp 0x140001153
Function at 0x140001170
Capabilities:
Find process by pid

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rsi
push rdi
sub rsp, 0x30
cmp dword [rcx], 0x85b3e12
mov rdi, rcx
jne 0x140001235
movsxd rax, dword [rcx + 4]
test eax, eax
je 0x140001235
and qword [r11 + 8], 0
lea rdx, [r11 + 8]
mov rcx, rax
call qword [sym.imp.ntoskrnl.exe_PsLookupProcessByProcessId]
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140001235
call fcn.14000124c
mov rcx, qword [rsp + 0x40]
mov rbx, rax
call qword [sym.imp.ntoskrnl.exe_ObfDereferenceObject]
mov rdx, qword [rdi + 8]
mov rcx, rbx
mov rsi, qword [rdi + 0x18]
call fcn.140001494
test rax, rax
je 0x140001235
mov ecx, eax
mov edx, 0x1000
and ecx, 0xfff
sub edx, ecx
mov rcx, qword [rdi + 0x10]
cmp edx, esi
cmovl esi, edx
and qword [rsp + 0x48], 0
cmp byte [rdi + 0x20], 0
movsxd r8, esi
je 0x140001218
mov rdx, rcx
lea r9, [rsp + 0x48]
mov rcx, rax
call fcn.140001674
jmp 0x140001231
lea rdx, [rsp + 0x48]
mov r9d, 1
mov qword [rsp + 0x20], rdx
mov rdx, rax
call qword [sym.imp.ntoskrnl.exe_MmCopyMemory]
xor eax, eax
jmp 0x14000123a
mov eax, 0xc0000001
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
Function at 0x2fc4d1180
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4d1b82
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4f4108]
test eax, eax
je 0x2fc4d1c1a
lea rax, [0x2fc4f40e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4f4110]
mov qword [rbp - 8], rax
jmp 0x2fc4d1bfe
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4d1bf2
cmp qword [rbp - 0x10], 0
je 0x2fc4d1bf2
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4d1bb8
lea rax, [0x2fc4f40e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4d1c1b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4d1d20
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4d1d48
mov eax, 0
jmp 0x2fc4d1d96
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4d1d71
mov eax, 0
jmp 0x2fc4d1d96
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4d1d91
mov eax, 0
jmp 0x2fc4d1d96
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4d1d9c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4d1e1a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4d1e11
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4d1e11
mov rax, qword [rbp - 8]
jmp 0x2fc4d1e2f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4d1de4
mov eax, 0
add rsp, 0x20
pop rbp
ret

Function at 0x140001d40
Capabilities:
Write file on windows

Disassembly:
push rsi
sub rsp, 0x30
mov rsi, rcx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x58], r9
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov ecx, 2
call fcn.140002290
lea rcx, str.Mingw_w64_runtime_failure:_n
mov edx, 0x1b
mov r8d, 1
mov r9, rax
call sub.msvcrt.dll_fwrite
mov ecx, 2
call fcn.140002290
mov r8, qword [rsp + 0x28]
mov rcx, rax
mov rdx, rsi
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
int3

Function at 0x1400023b0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rax, qword [0x14000b008]
movzx edx, word [rax]
cmp edx, 0x5a4d
jne 0x14000241c
movsxd rdx, dword [rax + 0x3c]
cmp dword [rax + rdx], 0x4550
jne 0x14000241c
add rax, rdx
movzx edx, word [rax + 0x18]
cmp edx, 0x20b
jne 0x14000241c
movzx edx, word [rax + 6]
test edx, edx
je 0x14000241c
sub rcx, qword [0x14000b008]
movzx r8d, word [rax + 0x14]
add rax, r8
add rax, 0x18
jmp 0x140002408
add rax, 0x28
dec edx
je 0x14000241c
mov r8d, dword [rax + 0xc]
cmp rcx, r8
jb 0x140002400
add r8d, dword [rax + 8]
cmp rcx, r8
jae 0x140002400
jmp 0x14000241e
xor eax, eax
ret

Function at 0x140002420
Capabilities:
Parse pe header

Disassembly:
mov rcx, qword [0x14000b008]
movzx edx, word [rcx]
xor eax, eax
cmp edx, 0x5a4d
jne 0x140002455
movsxd rdx, dword [rcx + 0x3c]
cmp dword [rcx + rdx], 0x4550
jne 0x140002455
movzx r8d, word [rcx + rdx + 0x18]
cmp r8d, 0x20b
jne 0x140002455
movzx eax, word [rcx + rdx + 6]
ret

Function at 0x1400024d0
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x14000b008]
movzx ecx, word [rax]
cmp ecx, 0x5a4d
jne 0x1400024fc
movsxd rcx, dword [rax + 0x3c]
cmp dword [rax + rcx], 0x4550
jne 0x1400024fc
movzx ecx, word [rax + rcx + 0x18]
cmp ecx, 0x20b
je 0x1400024fe
xor eax, eax
ret