joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140024250
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
sub rsp, 0x430
xor esi, esi
xor bl, bl
cmp dword [rcx + 0x148], esi
je 0x14002412f
mov eax, 0xffffbf80
mov rbx, qword [rsp + 0x448]
add rsp, 0x430
pop rsi
ret
mov qword [rsp + 0x440], rdi
mov rdi, qword [rcx + 8]
lea rax, [rdi - 0x10]
cmp rax, 0x3f0
ja 0x140024224
mov r9, qword [rsp + 0x468]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
call fcn.140023390
test eax, eax
jne 0x140024213
movzx edx, byte [rsp + 0x31]
lea r9, [rdi - 3]
xor dl, 2
xor r8d, r8d
or dl, byte [rsp + 0x30]
test r9, r9
je 0x1400241bf
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rsp + r8 + 0x32]
inc r8
movzx ecx, al
neg cl
or cl, al
not cl
shr cl, 7
or bl, cl
movzx eax, bl
neg al
or al, bl
not al
movzx eax, al
shr rax, 7
add rsi, rax
cmp r8, r9
jb 0x140024190
or dl, byte [rsp + rsi + 0x32]
lea rcx, [rsp + rsi + 0x33]
cmp rsi, 8
setb al
or al, dl
je 0x1400241da
mov eax, 0xffffbf00
jmp 0x140024213
sub rdi, rcx
lea r8, [rsp + 0x30]
add r8, rdi
cmp r8, qword [rsp + 0x478]
jbe 0x1400241f6
mov eax, 0xffffbc00
jmp 0x140024213
mov rax, qword [rsp + 0x460]
mov rdx, rcx
mov rcx, qword [rsp + 0x470]
mov qword [rax], r8
call fcn.140035790
xor eax, eax
mov edx, 0x400
lea rcx, [rsp + 0x30]
call fcn.1400137a0
jmp 0x140024229
mov eax, 0xffffbf80
mov rdi, qword [rsp + 0x440]
mov rbx, qword [rsp + 0x448]
add rsp, 0x430
pop rsi
ret
sub rsp, 0x58
mov r9d, dword [rcx + 0x148]
test r9d, r9d
je 0x1400242ae
cmp r9d, 1
je 0x140024270
mov eax, 0xffffbf00
add rsp, 0x58
ret
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x30], rax
call fcn.140023d50
add rsp, 0x58
ret
add rsp, 0x58
jmp 0x140024100
Function at 0x140027d50
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov byte [rsp + 8], 0
mov r10, rdx
mov r9, rcx
test r8, r8
je 0x140027d90
sub r10, rcx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r10 + r9]
movzx edx, byte [r9]
lea r9, [r9 + 1]
xor edx, eax
movzx eax, byte [rsp + 8]
or eax, edx
mov byte [rsp + 8], al
sub r8, 1
jne 0x140027d70
movzx eax, byte [rsp + 8]
ret
Function at 0x14002e060
Capabilities:
Hash data using sha224
Hash data using sha256

Disassembly:
sub rsp, 0x28
mov rdx, rcx
mov rcx, qword [rcx + 0x60]
add rcx, 0x3f8
call fcn.14001e4a0
mov rcx, qword [rdx + 0x60]
add rcx, 0x450
call fcn.140020fd0
mov rcx, qword [rdx + 0x60]
xor edx, edx
add rcx, 0x4ac
add rsp, 0x28
jmp fcn.140026e80

Function at 0x14002e610
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [rcx]
lea rdx, [rsp + 0x20]
mov r9, qword [rcx + 0x60]
mov rbx, rcx
mov r8d, dword [rax + 0x144]
not r8d
and r8d, 1
call qword [r9 + 0x528]
mov rcx, rbx
call fcn.14002d550
test eax, eax
jne 0x14002e768
cmp dword [rbx + 0xd8], 0x16
je 0x14002e66b
mov r8b, 0xa
mov dl, 2
mov rcx, rbx
call fcn.14002d8b0
mov eax, 0xffff8900
add rsp, 0x30
pop rbx
ret
mov rdx, qword [rbx + 0xc8]
cmp byte [rdx], 0x14
jne 0x14002e756
mov rax, qword [rbx]
mov ecx, dword [rax + 0x144]
shr rcx, 1
and ecx, 1
lea rax, [rcx*8 + 0x10]
cmp qword [rbx + 0x110], rax
jne 0x14002e756
lea r10, [rdx + 4]
mov byte [rsp + 0x40], 0
lea r10, [r10 + rcx*8]
xor r9d, r9d
lea rax, [rsp + 0x20]
sub r10, rax
nop word [rax + rax]
lea rdx, [rsp + 0x20]
add rdx, r9
inc r9
movzx eax, byte [r10 + rdx]
movzx r8d, byte [rdx]
xor r8d, eax
movzx eax, byte [rsp + 0x40]
or eax, r8d
mov byte [rsp + 0x40], al
cmp r9, 0xc
jb 0x14002e6c0
movzx eax, byte [rsp + 0x40]
test al, al
jne 0x14002e756
mov eax, dword [rsp + 0x28]
movsd xmm0, qword [rsp + 0x20]
mov qword [rbx + 0x188], shutdown
movsd qword [rbx + 0x19c], xmm0
mov dword [rbx + 0x1a4], eax
mov rax, qword [rbx + 0x60]
cmp dword [rax + 0x9a4], 0
je 0x14002e737
mov rax, qword [rbx]
test byte [rax + 0x144], 1
jne 0x14002e73a
mov dword [rbx + 8], 0xa
jmp 0x14002e73a
inc dword [rbx + 8]
mov rax, qword [rbx]
test byte [rax + 0x144], 2
je 0x14002e74e
mov rcx, rbx
call fcn.14002c930
xor eax, eax
add rsp, 0x30
pop rbx
ret
mov r8b, 0x32
mov dl, 2
mov rcx, rbx
call fcn.14002d8b0
mov eax, 0xffff8180
add rsp, 0x30
pop rbx
ret
Function at 0x1400320d0
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], r9
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x458
lea rcx, [0x14005f480]
lea rbp, [rax + 0x10]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx ecx, word [rsp + 0x4a]
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x48]
movzx r9d, word [rsp + 0x46]
movzx r8d, word [rsp + 0x42]
movzx edx, word [rsp + 0x40]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
lea rcx, str._d__d__d__d:_d:_02d
mov dword [rsp + 0x20], r10d
call fcn.14000dfe0
mov rsi, qword [rsp + 0x480]
mov ecx, 1
call fcn.14003b058
mov rbx, rax
call fcn.14000d300
xor r9d, r9d
mov qword [rsp + 0x20], rbp
mov r8, rsi
mov rdx, rbx
mov rdi, rax
mov rcx, qword [rax]
call fcn.14003a830
mov rcx, qword [rdi]
lea rdx, [rsp + 0x50]
mov r9, qword [rsp + 0x480]
or rcx, 1
mov qword [rsp + 0x28], rbp
or r8, 0xffffffffffffffff
mov qword [rsp + 0x20], 0
call fcn.14003aa18
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rcx, [0x14005f480]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add rsp, 0x458
pop rdi
pop rsi
pop rbp
pop rbx
ret

Function at 0x1400329d0
Capabilities:
Create thread
Get memory capacity
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x140
mov rsi, rcx
xor ebp, ebp
lea rcx, [rsp + 0xa0]
xor edx, edx
mov r8d, 0x9c
mov edi, ebp
call fcn.140036450
lea rcx, [rsp + 0xa0]
mov dword [rsp + 0xa0], 0x9c
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x40
call qword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
mov rax, qword [rsp + 0x38]
shr rax, 0x1d
mov qword [rsp + 0x38], rax
test rax, rax
je 0x140032a46
mov edi, eax
shr edi, 1
lea rcx, [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [rsp + 0x90]
cmp ecx, 4
jbe 0x140032a66
mov eax, ecx
shr eax, 1
cmp eax, edi
cmovb edi, eax
mov eax, ecx
shr eax, 1
cmp eax, edi
mov ebx, eax
cmovae ebx, edi
test ebx, ebx
jne 0x140032a88
cmp ecx, 8
jb 0x140032a82
lea ebx, [rcx + rcx*2]
shr ebx, 3
jmp 0x140032a88
cmp ecx, 2
cmovae ebx, eax
test ebx, ebx
mov eax, 1
mov edi, ebp
cmove ebx, eax
test ebx, ebx
je 0x140032add
nop dword [rax + rax]
mov qword [rsp + 0x28], rbp
lea r8, [0x1400329b0]
mov r9, rsi
mov dword [rsp + 0x20], ebp
xor edx, edx
mov dword [rsi + 0x840], edi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
inc edi
cmp edi, ebx
jl 0x140032aa0
lea r11, [rsp + 0x140]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x140033270
Capabilities:
Check mutex on windows
Get hostname

Disassembly:
mov rax, rsp
mov dword [rax + 8], ecx
push rbx
sub rsp, 0x990
lea rdx, [rax + 8]
mov dword [rax + 8], 0x104
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetComputerNameA]
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
lea r8, [rsp + 0x30]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400332d8
test rbx, rbx
je 0x1400332cf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rsp, 0x990
pop rbx
ret
lea rcx, [rsp + 0x140]
call fcn.140032370
lea rcx, [0x14005f480]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsp + 0x140]
call fcn.1400323c0
lea rcx, [rsp + 0x140]
call fcn.1400329d0
lea rcx, [rsp + 0x140]
call fcn.140032b00
int3
push rdi
push r14
sub rsp, 0x48
mov r14d, ecx
mov rdi, rdx
test ecx, ecx
je 0x1400333dd
test rdx, rdx
je 0x1400333dd
mov qword [rsp + 0x60], rbx
mov ecx, 0x1000
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x40], r15
call fcn.140038544
xor r15d, r15d
mov rbx, rax
mov ebp, r15d
lea rsi, [rax + 0x100]
test r14d, r14d
jle 0x1400333c9
sub rdi, rax
nop word [rax + rax]
mov qword [rsp + 0x38], r15
or r9d, 0xffffffff
mov qword [rsp + 0x30], r15
xor edx, edx
movsxd rcx, ebp
add rcx, rsi
mov dword [rsp + 0x28], 0x104
mov qword [rbx], rcx
mov r8, qword [rdi + rbx]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
inc ebp
lea rbx, [rbx + 8]
add ebp, eax
sub r14, 1
jne 0x140033380
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
add rsp, 0x48
pop r14
pop rdi
jmp 0x140033270
Function at 0x140033320
Capabilities:
Check mutex on windows
Get hostname

Disassembly:
mov rax, rsp
mov dword [rax + 8], ecx
push rbx
sub rsp, 0x990
lea rdx, [rax + 8]
mov dword [rax + 8], 0x104
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetComputerNameA]
mov ecx, 0x1388
call qword [sym.imp.KERNEL32.dll_Sleep]
lea r8, [rsp + 0x30]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1400332d8
test rbx, rbx
je 0x1400332cf
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rsp, 0x990
pop rbx
ret
lea rcx, [rsp + 0x140]
call fcn.140032370
lea rcx, [0x14005f480]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
lea rcx, [rsp + 0x140]
call fcn.1400323c0
lea rcx, [rsp + 0x140]
call fcn.1400329d0
lea rcx, [rsp + 0x140]
call fcn.140032b00
int3
push rdi
push r14
sub rsp, 0x48
mov r14d, ecx
mov rdi, rdx
test ecx, ecx
je 0x1400333dd
test rdx, rdx
je 0x1400333dd
mov qword [rsp + 0x60], rbx
mov ecx, 0x1000
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x40], r15
call fcn.140038544
xor r15d, r15d
mov rbx, rax
mov ebp, r15d
lea rsi, [rax + 0x100]
test r14d, r14d
jle 0x1400333c9
sub rdi, rax
nop word [rax + rax]
mov qword [rsp + 0x38], r15
or r9d, 0xffffffff
mov qword [rsp + 0x30], r15
xor edx, edx
movsxd rcx, ebp
add rcx, rsi
mov dword [rsp + 0x28], 0x104
mov qword [rbx], rcx
mov r8, qword [rdi + rbx]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
inc ebp
lea rbx, [rbx + 8]
add ebp, eax
sub r14, 1
jne 0x140033380
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x40]
add rsp, 0x48
pop r14
pop rdi
jmp 0x140033270

Function at 0x1400333f0
Capabilities:
Accept command line arguments

Disassembly:
sub rsp, 0x38
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rsp + 0x20]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ecx, dword [rsp + 0x20]
mov rdx, rax
call fcn.140033320
xor eax, eax
add rsp, 0x38
ret

Function at 0x1400346c0
Capabilities:
Set socket configuration

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x10], rdx
push rbx
sub rsp, 0x30
mov rbx, rcx
lea rdx, [0x140050384]
lea rcx, [rsp + 0x48]
mov r8d, 0x50
call qword [sym.imp.USER32.dll_wsprintfA]
mov rcx, rbx
mov dword [rbx + 4], 0
call fcn.140034a50
lea r8, [rsp + 0x48]
mov rcx, rbx
call fcn.14001f400
test eax, eax
je 0x140034713
or eax, 0xffffffff
add rsp, 0x30
pop rbx
ret
mov rcx, rbx
call fcn.14001f530
movsxd rcx, dword [rbx]
lea r9, [rsp + 0x58]
mov edx, 0xffff
mov dword [rsp + 0x58], 1
mov r8d, 8
mov dword [rsp + 0x20], 4
call qword [sym.imp.WS2_32.dll_setsockopt]
mov eax, 1
add rsp, 0x30
pop rbx
ret

Function at 0x140034ab0
Capabilities:
Initialize winsock library

Disassembly:
sub rsp, 0x1c8
mov ecx, 0x202
lea rdx, [rsp + 0x20]
call qword [sym.imp.WS2_32.dll_WSAStartup]
add rsp, 0x1c8
ret
Function at 0x140037fa4
Capabilities:
Allocate thread local storage

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
lea r9, str.FlsAlloc
xor ecx, ecx
lea r8, [0x140048600]
lea rdx, str.FlsAlloc
call fcn.140037dcc
mov rbx, rax
test rax, rax
je 0x140037fe4
mov rcx, rax
call fcn.1400353cc
mov rcx, rdi
call rbx
jmp 0x140037fea
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x14003804c
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov ebx, ecx
lea r9, str.FlsGetValue
mov ecx, 2
lea r8, [0x140048628]
lea rdx, str.FlsGetValue
call fcn.140037dcc
mov rdi, rax
test rax, rax
je 0x14003808d
mov rcx, rax
call fcn.1400353cc
mov ecx, ebx
call rdi
jmp 0x140038095
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x1400380a0
Capabilities:
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rdx
lea r9, str.FlsSetValue
mov edi, ecx
lea rdx, str.FlsSetValue
mov ecx, 3
lea r8, [0x140048640]
call fcn.140037dcc
mov rsi, rax
test rax, rax
je 0x1400380ec
mov rcx, rax
call fcn.1400353cc
mov rdx, rbx
mov ecx, edi
call rsi
jmp 0x1400380f7
mov rdx, rbx
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x14003c594
Capabilities:
Parse pe header

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r14
push r15
sub rsp, 0x20
mov esi, r8d
mov ebx, edx
mov r14d, ecx
test r8d, r8d
jne 0x14003c368
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14003c368
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14003c368
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14003c368
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14003c368
cmp dword [rcx + 0x84], 0xe
jbe 0x14003c368
cmp dword [rcx + 0xf8], esi
je 0x14003c368
mov ecx, r14d
call fcn.14003c4b0
mov ecx, 2
call fcn.140041c8c
nop
cmp byte [0x14005e628], 0
jne 0x14003c432
mov r15d, 1
mov eax, r15d
xchg dword [0x14005e61c], eax
test ebx, ebx
jne 0x14003c3db
mov rdi, qword [0x14005b020]
mov edx, edi
and edx, 0x3f
lea ecx, [rbx + 0x40]
sub ecx, edx
xor eax, eax
ror rax, cl
xor rax, rdi
mov rcx, qword [0x14005e620]
cmp rcx, rax
je 0x14003c3d2
xor rdi, rcx
mov ecx, edx
ror rdi, cl
mov rcx, rdi
call qword [fcn.14003559c]
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call rdi
lea rcx, [0x14005e638]
jmp 0x14003c3e7
cmp ebx, r15d
jne 0x14003c3ed
lea rcx, [0x14005e650]
call fcn.14003caa4
nop
test ebx, ebx
jne 0x14003c404
lea rdx, [0x140048400]
lea rcx, [0x1400483e0]
call fcn.14003c228
lea rdx, [0x140048410]
lea rcx, [0x140048408]
call fcn.14003c228
movzx eax, byte [0x14005e628]
test esi, esi
cmove eax, r15d
mov byte [0x14005e628], al
jmp 0x14003c432
mov ecx, 2
call fcn.140041ce0
test esi, esi
jne 0x14003c449
mov ecx, r14d
call fcn.14003c464
int3
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret
xor r8d, r8d
xor edx, edx
jmp 0x14003c2f8
Function at 0x1400112a3
Capabilities:
Terminate process

Disassembly:
jmp 0x140016e40
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x28
ret
Function at 0x14001136b
Capabilities:
Parse pe header

Disassembly:
jmp 0x140018190
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x1400181b0
xor al, al
jmp 0x140018231
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x1400181c3
xor al, al
jmp 0x140018231
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x1400181ed
xor al, al
jmp 0x140018231
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x140018201
xor al, al
jmp 0x140018231
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x140018213
xor al, al
jmp 0x140018231
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x14001822f
xor al, al
jmp 0x140018231
mov al, 1
add rsp, 0x38
ret
Function at 0x180003880
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
cmp edx, 1
jne 0x1800038a8
xor eax, eax
lea r8, [0x180003790]
mov r9, rcx
mov qword [rsp + 0x28], rax
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
add rsp, 0x38
ret
Function at 0x1800056f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
sub rsp, 0x98
cmp byte [0x180174ede], 0
je 0x1800059a5
mov qword [rax + 8], rbx
mov ecx, 0x20
mov qword [rax + 0x18], rsi
mov qword [rax - 8], rdi
movaps xmmword [rax - 0x18], xmm6
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor edi, edi
movabs rsi, 0xd80958fc74e988a6
xorps xmm6, xmm6
test ax, ax
je 0x1800057a6
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rsi
call fcn.18002d330
movss xmm0, dword [0x1800d7198]
xorps xmm3, xmm3
mov dword [rsp + 0x70], 1
mov dword [rsp + 0x68], 1
mov edx, dword [rax]
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x48], 1
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x38], xmm6
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm6
call fcn.180020bf0
movabs rax, 0xd24d37cc275948cc
mov dword [0x18011a828], edi
mov qword [0x180177578], rax
lea rax, str.GADGET_PARACHUTE
mov qword [0x18011a8f0], rax
mov dword [0x18011a818], 1
call fcn.18002d330
mov qword [0x180177578], rsi
mov ebx, dword [rax]
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
call fcn.18002d330
mov edx, ebx
mov ecx, dword [rax]
call fcn.180020b60
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rsi
call fcn.18002d330
mov qword [rsp + 0xa8], rdi
mov ecx, dword [rax]
movabs rax, 0x886e37ec497200b6
mov dword [rsp + 0xa8], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0xa8]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], edi
mov dword [0x18011a818], 1
call fcn.18002d330
mov rbx, qword [rsp + 0xa0]
cmp dword [rax], edi
je 0x18000598d
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rsi
call fcn.18002d330
mov qword [rsp + 0xa8], rdi
mov ecx, dword [rax]
movabs rax, 0x47e4e977581c5b55
mov dword [rsp + 0xa8], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0xa8]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], edi
mov dword [0x18011a818], 1
call fcn.18002d330
cmp dword [rax], edi
jne 0x18000598d
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000590e
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rsi
call fcn.18002d330
movss xmm1, dword [0x1800d7000]
xorps xmm3, xmm3
xorps xmm2, xmm2
mov ecx, dword [rax]
call fcn.18001dc20
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180005950
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rsi
call fcn.18002d330
movss xmm2, dword [0x1800d70e8]
xorps xmm3, xmm3
movss xmm1, dword [0x1800d7000]
mov ecx, dword [rax]
call fcn.18001dc20
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18000598d
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rsi
call fcn.18002d330
movss xmm1, dword [0x1800d70e8]
xorps xmm3, xmm3
xorps xmm2, xmm2
mov ecx, dword [rax]
call fcn.18001dc20
mov rdi, qword [rsp + 0x90]
mov rsi, qword [rsp + 0xb0]
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
ret
Function at 0x180009490
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0xa8
cmp byte [0x180174ec0], 0
je 0x1800096df
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800096df
mov qword [rsp + 0xb0], rbx
movabs rbx, 0xd80958fc74e988a6
mov qword [rsp + 0xa0], rdi
xor edi, edi
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rbx
call fcn.18002d330
mov qword [rsp + 0xb8], rdi
mov ecx, dword [rax]
movabs rax, 0x997abd671d25ca0b
mov dword [rsp + 0xb8], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0xb8], rdi
mov qword [0x18011a8f0], rax
mov dword [rsp + 0xb8], 1
mov rax, qword [rsp + 0xb8]
mov qword [0x18011a8f8], rax
mov dword [0x18011a828], edi
mov dword [0x18011a818], 2
call fcn.18002d330
cmp dword [rax], edi
je 0x1800096cf
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
mov dword [0x18011a818], edi
mov dword [0x18011a828], edi
mov qword [0x180177578], rbx
call fcn.18002d330
mov qword [rsp + 0xb8], rdi
mov ecx, dword [rax]
movabs rax, 0x9a9112a0fe9a4713
mov dword [rsp + 0xb8], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0xb8]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], edi
mov qword [0x18011a8f8], rdi
mov dword [0x18011a818], 2
call fcn.18002d330
mov qword [rsp + 0xb8], rdi
mov ebx, dword [rax]
movabs rax, 0x866a4a5fae349510
mov qword [0x180177578], rax
mov dword [rsp + 0xb8], ebx
mov rax, qword [rsp + 0xb8]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], edi
mov dword [0x18011a818], 1
call fcn.18002d330
mov qword [rsp + 0xb8], rdi
xorps xmm6, xmm6
mov dword [rsp + 0xb8], ebx
movss xmm7, dword [rax]
movabs rax, 0x8bb4ef4214e0e6d5
mov qword [0x180177578], rax
addss xmm7, xmm6
mov rax, qword [rsp + 0xb8]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], edi
mov dword [0x18011a818], 1
call fcn.18002d330
movss xmm0, dword [0x1800d711c]
mov edx, ebx
mov dword [rsp + 0x70], 1
mov dword [rsp + 0x68], 1
movss xmm3, dword [rax]
mov dword [rsp + 0x58], 1
addss xmm3, xmm6
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x48], 1
movss dword [rsp + 0x40], xmm6
movss dword [rsp + 0x38], xmm6
movss dword [rsp + 0x30], xmm6
movss dword [rsp + 0x28], xmm0
movss dword [rsp + 0x20], xmm7
call fcn.180020bf0
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov rbx, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xa0]
add rsp, 0xa8
ret
Function at 0x18000a170
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
cmp byte [0x180174eb7], 0
je 0x18000a2d7
mov ecx, 0xa0
mov qword [rsp + 0x20], rbx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
xor ebx, ebx
movabs rcx, 0xd80958fc74e988a6
mov qword [0x180177578], rcx
mov dword [0x18011a818], ebx
mov dword [0x18011a828], ebx
test ax, ax
je 0x18000a245
call fcn.18002d330
mov qword [rsp + 0x38], rbx
mov ecx, dword [rax]
movabs rax, 0x9a9112a0fe9a4713
mov dword [rsp + 0x38], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0x38]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], ebx
mov qword [0x18011a8f8], rbx
mov dword [0x18011a818], 2
call fcn.18002d330
mov qword [rsp + 0x38], rbx
mov ecx, dword [rax]
movabs rax, 0x222ff6a823d122e2
mov dword [rsp + 0x38], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x38], rbx
mov dword [rsp + 0x38], 1
mov qword [0x18011a8f0], rax
mov rax, qword [rsp + 0x38]
mov qword [0x18011a8f8], rax
jmp 0x18000a2bd
call fcn.18002d330
mov qword [rsp + 0x38], rbx
mov ecx, dword [rax]
movabs rax, 0x9a9112a0fe9a4713
mov dword [rsp + 0x38], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0x38]
mov qword [0x18011a8f0], rax
mov dword [0x18011a828], ebx
mov qword [0x18011a8f8], rbx
mov dword [0x18011a818], 2
call fcn.18002d330
mov qword [rsp + 0x38], rbx
mov ecx, dword [rax]
movabs rax, 0x222ff6a823d122e2
mov dword [rsp + 0x38], ecx
mov qword [0x180177578], rax
mov rax, qword [rsp + 0x38]
mov qword [0x18011a8f0], rax
mov qword [0x18011a8f8], rbx
mov dword [0x18011a828], ebx
mov dword [0x18011a818], 2
call fcn.18002d330
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
ret