joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400b4000
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rdi, qword [rsp + 0x90]
mov rbx, 0xffffffffffffffff
mov rax, rbx
mov qword [rsp + 0x30], r8
mov r15, r9
mov r14, r8
mov r10, rdx
nop
cmp word [rdi + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x1400b4040
mov rdx, qword [r14]
lea ebp, [rax*2 + 2]
lea rax, [rsp + 0x30]
mov qword [rsp + 0x30], 0
mov r9d, 0xf003f
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rcx, r10
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
xor esi, esi
test eax, eax
sete sil
test eax, eax
jne 0x1400b40bd
mov rcx, qword [rsp + 0x30]
lea r9d, [rax + 1]
mov dword [rsp + 0x28], ebp
xor r8d, r8d
mov rdx, r15
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x30]
xor esi, esi
test eax, eax
sete sil
test rcx, rcx
je 0x1400b40bd
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rdx, qword [r14]
sub rdx, 0x18
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x1400b40d8
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, esi
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140160a40
mov rbx, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400bc420
Capabilities:
Check mutex on windows

Disassembly:
mov qword [rsp + 8], rcx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x68], rbx
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x78], rsi
mov r13d, r9d
mov rbp, r8
mov rsi, rdx
mov rbx, rcx
lea rax, vtable.LogUtils::LogAppender.0
mov qword [rcx], rax
xor edi, edi
mov qword [rcx + 8], rdi
mov dword [rcx + 0x10], edi
mov byte [rcx + 0x14], 1
mov dword [rcx + 0x18], edi
call fcn.14000a6a0
mov rcx, rax
test rax, rax
je 0x1400bc5f5
mov rax, qword [rax]
call qword [rax + ILCombine]
add rax, 0x18
mov qword [rbx + 0x20], rax
call fcn.14000a6a0
mov rcx, rax
test rax, rax
je 0x1400bc600
mov rax, qword [rax]
call qword [rax + ILCombine]
add rax, 0x18
mov qword [rbx + 0x28], rax
call fcn.14000a6a0
mov rcx, rax
test rax, rax
je 0x1400bc5ea
mov rax, qword [rax]
call qword [rax + ILCombine]
add rax, 0x18
mov qword [rbx + 0x30], rax
mov r14, 0xffffffffffffffff
mov dword [rbx + 0x38], r14d
lea rcx, [rbx + 0x40]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
nop
mov qword [rbx + 0x68], rdi
mov qword [rbx + 0x70], rdi
mov qword [rbx + 0x78], rdi
mov dword [rbx + 0x18], r13d
test rsi, rsi
jne 0x1400bc4fc
mov eax, edi
jmp 0x1400bc50a
mov rax, r14
nop
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400bc500
mov r8d, eax
mov rdx, rsi
lea rcx, [rbx + 0x20]
call fcn.14000cfe0
lea rdx, [rbx + 0x20]
lea rcx, [rbx + 0x28]
call fcn.140024260
test rbp, rbp
je 0x1400bc53d
mov rax, r14
nop
inc rax
cmp word [rbp + rax*2], 0
jne 0x1400bc530
mov edi, eax
mov r8d, edi
mov rdx, rbp
lea rcx, [rbx + 0x30]
call fcn.14000cfe0
lea r8, [rbx + 0x28]
lea rdx, [rsp + 0x20]
mov rcx, rbx
call fcn.1400bd2c0
nop
mov rdx, rax
lea rcx, [rbx + 0x28]
call fcn.140024260
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x1400bc589
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r8, qword [rbx + 0x28]
mov edx, 1
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rbx + 8], rax
test rax, rax
je 0x1400bc5ca
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x1400bc5ca
cmp dword [rbx + 0x18], 0
je 0x1400bc5bf
mov rcx, qword [rbx + 0x20]
call fcn.1401cb0c8
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
mov rax, rbx
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
mov ecx, 0x80004005
call fcn.14000ca90
nop
mov ecx, 0x80004005
call fcn.14000ca90
nop
mov ecx, 0x80004005
call fcn.14000ca90
int3
Function at 0x1400be290
Capabilities:
Print debug messages

Disassembly:
push rbp
push rsi
push rdi
sub rsp, 0x160
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rsp + 0x190], rbx
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rdi, rdx
mov rbx, rcx
xor ebp, ebp
mov dword [rsp + 0x30], ebp
mov dword [rsp + 0x20], 0x180
lea r9d, [rbp + 0x40]
mov r8d, 0x8109
call fcn.1401cbae0
mov esi, eax
test eax, eax
je 0x1400be44f
xor edx, edx
mov r8d, 0xe8
lea rcx, [rsp + 0x60]
call fcn.1401afc90
lea edx, [rbp + 2]
lea r8d, [rbp + 1]
lea rcx, [rsp + 0x60]
call fcn.14002d630
nop
lea rdx, str.open
lea rcx, [rsp + 0x60]
call fcn.14000aa40
mov rcx, rax
mov rdx, rdi
call fcn.14000aa40
mov rcx, rax
lea rdx, str._error.__
call fcn.14000aa40
mov rcx, rax
mov edx, esi
call fcn.14002dd50
mov rcx, rax
lea rdx, [0x140213ef0]
call fcn.14000aa40
nop
movdqa xmm0, xmmword [0x1401f5800]
movdqu xmmword [rsp + 0x48], xmm0
mov word [rsp + 0x38], bp
mov dword [rsp + 0x30], 2
mov rcx, qword [rsp + 0xd8]
test cl, 2
jne 0x1400be3ad
mov rax, qword [rsp + 0xa8]
mov r8, qword [rax]
test r8, r8
je 0x1400be3ad
mov rax, qword [rsp + 0x88]
mov rdx, qword [rax]
cmp r8, qword [rsp + 0xd0]
cmovb r8, qword [rsp + 0xd0]
sub r8, rdx
jmp 0x1400be3e1
test cl, 4
jne 0x1400be3ef
mov rax, qword [rsp + 0xa0]
mov rcx, qword [rax]
test rcx, rcx
je 0x1400be3ef
mov rax, qword [rsp + 0x80]
mov rdx, qword [rax]
mov rax, qword [rsp + 0xb8]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, rcx
sar r8, 1
lea rcx, [rsp + 0x38]
call fcn.14000d810
nop
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 8
cmovae rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rdx, qword [rsp + 0x50]
cmp rdx, 8
jb 0x1400be445
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400be43f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400be48b
call fcn.1401606e8
nop
lea rcx, [rsp + 0x60]
call fcn.14000c6a0
mov ecx, dword [rbx]
cmp ecx, 0xffffffff
je 0x1400be463
xor edx, edx
lea r8d, [rdx + 2]
call fcn.1401cc07c
jmp 0x1400be468
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.140160a40
mov rbx, qword [rsp + 0x190]
add rsp, 0x160
pop rdi
pop rsi
pop rbp
ret
call fcn.1401b3260
nop
int3
Function at 0x1400bf700
Capabilities:
Delete file
Download url
Receive data

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x480
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rsp + 0x470], rax
mov rdi, r9
mov rbx, rdx
mov rbp, rcx
mov qword [rsp + 0x40], r9
xor r14d, r14d
mov esi, r14d
test rdx, rdx
je 0x1400bf7ad
cmp word [rdx], r14w
je 0x1400bf7ad
test r8, r8
je 0x1400bf768
cmp word [r8], r14w
je 0x1400bf768
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor ecx, ecx
call sub.urlmon.dll_URLDownloadToFileW
test eax, eax
js 0x1400bf7ad
jmp 0x1400bf7a8
xor edx, edx
mov r8d, 0x410
lea rcx, [rsp + 0x60]
call fcn.1401afc90
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r14d
mov r9d, 0x104
lea r8, [rsp + 0x60]
mov rdx, rbx
xor ecx, ecx
call sub.urlmon.dll_URLDownloadToCacheFileW
test eax, eax
js 0x1400bf7ad
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov esi, 1
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400bf812
mov eax, dword [rbp + 0x40]
test eax, eax
js 0x1400bf812
lea rcx, vtable._BaseModule::CAutoLocker.0
mov qword [rsp + 0x48], rcx
lea rbx, [rbp + 0x58]
mov qword [rsp + 0x50], rbx
test rbx, rbx
je 0x1400bf7e2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, dword [rbp + 0x40]
test eax, eax
js 0x1400bf7ff
mov dword [rsp + 0x30], esi
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400bf847
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
call qword [rax + ILClone]
nop
test rbx, rbx
je 0x1400bf80e
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rcx, qword [rdi + 0x38]
test rcx, rcx
je 0x1400bf827
mov rax, qword [rcx]
cmp rcx, rdi
setne dl
call qword [rax + 0x20]
mov qword [rdi + 0x38], r14
xor eax, eax
mov rcx, qword [rsp + 0x470]
xor rcx, rsp
call fcn.140160a40
add rsp, 0x480
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
call fcn.1400b4d90
nop
int3
Function at 0x1400da790
Capabilities:
Query or enumerate registry value

Disassembly:
push rbx
push rbp
push rsi
sub rsp, 0x880
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rsp + 0x870], rax
mov rax, r9
mov r10, r8
mov rbx, rdx
mov qword [rsp + 0x58], rdx
mov rsi, qword [rsp + 0x8c0]
xor ebp, ebp
mov dword [rsp + 0x48], ebp
mov qword [rsp + 0x40], rbp
mov qword [rdx + 0x10], rbp
mov qword [rdx + 0x18], 7
mov word [rdx], bp
mov dword [rsp + 0x48], 1
test r8, r8
je 0x1400da8b8
test rax, rax
je 0x1400da8b8
test rsi, rsi
je 0x1400da8b8
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x20], rcx
mov r9d, 0x20219
xor r8d, r8d
mov rdx, rax
mov rcx, r10
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400da8a8
cmp qword [rsp + 0x40], rbp
je 0x1400da8b8
xor edx, edx
mov r8d, 0x802
lea rcx, [rsp + 0x60]
call fcn.1401afc90
mov dword [rsp + 0x4c], 0x800
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
mov r9d, 0xffff
mov r8, rsi
xor edx, edx
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegGetValueW]
test eax, eax
jne 0x1400da8a8
lea rax, [rsp + 0x60]
mov r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], 0
jne 0x1400da890
lea rdx, [rsp + 0x60]
mov rcx, rbx
call fcn.14000d810
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1400da8b8
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rax, rbx
mov rcx, qword [rsp + 0x870]
xor rcx, rsp
call fcn.140160a40
add rsp, 0x880
pop rsi
pop rbp
pop rbx
ret
Function at 0x1400de220
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x50
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov rsi, rdx
mov rdi, rcx
test rcx, rcx
je 0x1400de358
test rdx, rdx
je 0x1400de358
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1400de358
mov rcx, rdi
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
jne 0x1400de358
xor ebx, ebx
mov dword [rsp + 0x80], ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rax + 5]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
mov qword [rsp + 0x40], rax
cmp rax, 0xffffffffffffffff
je 0x1400de34e
xor eax, eax
mov qword [rsp + 0x88], rax
lea rdx, [rsp + 0x88]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400de345
cmp dword [rsp + 0x8c], ebx
jne 0x1400de345
mov edx, dword [rsp + 0x88]
xor r8d, r8d
mov rcx, rsi
call fcn.1400b610c
nop
mov dword [rsp + 0x70], ebx
xor edx, edx
mov rcx, rsi
call fcn.1400b5d8c
mov rdx, rax
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x70]
mov r8d, dword [rsp + 0x88]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x70]
cmp dword [rsp + 0x88], eax
jne 0x1400de345
mov ebx, 1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
add rsp, 0x50
pop rdi
pop rsi
pop rbx
ret
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
add rsp, 0x50
pop rdi
pop rsi
pop rbx
ret
xor eax, eax
add rsp, 0x50
pop rdi
pop rsi
pop rbx
ret
Function at 0x1400e3940
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x20
xor ebx, ebx
lea ecx, [rbx + 0x11]
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 8
test ax, ax
cmovs ebx, ecx
mov ecx, 2
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1400e396f
or ebx, 1
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1400e3982
or ebx, 2
mov ecx, ILClone
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1400e3995
or ebx, 4
mov ecx, reloc.SHELL32.dll_ILClone
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1400e39a8
or ebx, 0x20
mov eax, ebx
add rsp, 0x20
pop rbx
ret
Function at 0x1400e6820
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
mov rsi, rcx
xor r12d, r12d
add rcx, 0x140
mov ebx, r12d
mov r15, r9
mov r14, r8
mov edi, edx
call fcn.14009ffd0
test eax, eax
jle 0x1400e68b4
nop word [rax + rax]
mov edx, ebx
mov byte [rsp + 0x90], r12b
lea rcx, [rsi + 0x140]
call fcn.1400df6d0
lea rcx, [rsp + 0x90]
mov r9, r15
mov qword [rsp + 0x20], rcx
mov r8, r14
mov edx, edi
mov rcx, rax
mov r10, qword [rax]
call qword [r10]
cmp byte [rsp + 0x90], r12b
jne 0x1400e6a28
lea rcx, [rsi + 0x140]
inc ebx
call fcn.14009ffd0
cmp ebx, eax
jl 0x1400e6860
sub edi, 0x100
je 0x1400e69ab
sub edi, 4
je 0x1400e692c
cmp edi, 2
jne 0x1400e6990
mov ecx, r14d
mov dword [rsp + 0x90], r12d
call fcn.1401c1880
mov rcx, qword [rsi + 0x98]
lea r8, [rsp + 0x90]
mov word [rsp + 0x90], ax
lea rdx, [0x1400e8cc0]
mov r9d, 0x8000000a
mov rax, qword [rcx]
call qword [rax + 0x298]
mov rbx, rax
test rax, rax
je 0x1400e6990
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x278]
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0x38]
mov al, 1
jmp 0x1400e6992
cmp qword [rsi + 0xa0], r12
je 0x1400e6990
mov rax, qword [rsi + 0xc8]
xorps xmm0, xmm0
xorps xmm1, xmm1
mov qword [rsp + 0x44], rax
movdqu xmmword [rsp + 0x34], xmm0
mov word [rsp + 0x5e], r12w
movdqu xmmword [rsp + 0x4e], xmm1
mov dword [rsp + 0x30], 6
mov word [rsp + 0x4c], r14w
call fcn.1400e3940
mov word [rsp + 0x4e], ax
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov rcx, qword [rsi + 0xa0]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x40], eax
mov rax, qword [rcx]
call qword [rax + 0x2b0]
xor al, al
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
cmp r14, 9
jne 0x1400e6990
mov rcx, qword [rsi + 0xa0]
test rcx, rcx
je 0x1400e6a0f
mov rax, qword [rcx]
call qword [rax + 0x220]
test al, al
je 0x1400e6a0f
mov rcx, qword [rsi + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x238]
test al, al
je 0x1400e6a0f
mov rcx, qword [rsi + 0xa0]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
lea rdx, str.RichEditUI
call fcn.1401b0510
test rax, rax
je 0x1400e6a0f
mov rcx, qword [rsi + 0xa0]
call fcn.14011dab0
test al, al
jne 0x1400e6990
mov ecx, ILClone
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
mov rcx, rsi
setns dl
call fcn.1400e81d0
mov al, 1
jmp 0x1400e6992
Function at 0x1400f2630
Capabilities:
Get graphical window text

Disassembly:
push rbp
sub rsp, 0x40
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], rdi
mov rax, qword [0x14029e8b8]
xor rax, rbp
mov qword [rbp], rax
cmp byte [rcx + 0x38], 0
mov rbx, rcx
je 0x1400f26f9
cmp qword [rcx + 0x28], 0
je 0x1400f26f9
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea r8d, [rax + 1]
movsxd rax, r8d
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1400f2690
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.140160af0
sub rsp, rcx
lea rdi, [rsp + 0x30]
test rdi, rdi
je 0x1400f26f9
mov rcx, qword [rbx + 8]
mov rdx, rdi
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rcx, qword [rbx + 0x28]
mov rdx, rdi
add rcx, 0x200
call fcn.1400df610
mov rbx, qword [rbx + 0x28]
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax + 0x40]
mov byte [rsp + 0x28], 0
lea r8, str.textchanged
mov rcx, rax
mov qword [rsp + 0x20], 0
xor r9d, r9d
mov rdx, rbx
call fcn.1400e7380
xor eax, eax
mov rcx, qword [rbp]
xor rcx, rbp
call fcn.140160a40
mov rbx, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x28]
lea rsp, [rbp + 0x10]
pop rbp
ret
Function at 0x140105550
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
mov rax, rdx
mov r15, r9
shr rax, 0x10
mov rbp, r8
mov rbx, rdx
mov rdi, rcx
test ax, ax
je 0x1401055b8
cmp word [rdx], 0x3c
jne 0x1401055ae
call fcn.140102dc0
test al, al
jne 0x140105644
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret
xor r8d, r8d
call fcn.140102e90
jmp 0x14010558b
call fcn.1400e3490
mov rcx, rax
mov r8, rbp
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rsi, rax
test rax, rax
je 0x140105593
call fcn.1400e3490
mov rcx, rax
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov r14, rax
test rax, rax
jne 0x1401055f8
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
jmp 0x140105593
mov qword [rdi + 0x148], r15
call fcn.1400e3490
mov rcx, rax
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, r14
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_LockResource]
xor r9d, r9d
mov r8d, ebx
mov rdx, rax
mov rcx, rdi
call fcn.140103210
test al, al
je 0x140105593
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov qword [rdi + 0x150], rbp
mov r9, qword [rsp + 0x68]
mov rdx, r15
mov r8, qword [rsp + 0x60]
mov rcx, rdi
call fcn.140104200
jmp 0x140105595
Function at 0x140116a70
Capabilities:
Contain obfuscated stackstrings

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0x90
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rbp + 0x47], rax
xor r9d, r9d
mov dword [rbp - 0x39], 0x6f0053
lea rax, [0x1402b9d30]
mov dword [rbp - 0x35], 0x740066
lea r8, [rbp - 0x39]
mov dword [rbp - 0x31], 0x610077
sub r8, rax
mov dword [rbp - 0x2d], 0x650072
mov dword [rbp - 0x29], 0x4d005c
mov edx, 0x3a
mov dword [rbp - 0x25], 0x630069
mov dword [rbp - 0x21], 0x6f0072
mov dword [rbp - 0x1d], 0x6f0073
mov dword [rbp - 0x19], 0x740066
mov dword [rbp - 0x15], 0x49005c
mov dword [rbp - 0x11], 0x74006e
mov dword [rbp - 0xd], 0x720065
mov dword [rbp - 9], 0x65006e
mov dword [rbp - 5], 0x200074
mov dword [rbp - 1], 0x780045
mov dword [rbp + 3], 0x6c0070
mov dword [rbp + 7], 0x72006f
mov dword [rbp + 0xb], 0x720065
mov dword [rbp + 0xf], 0x4d005c
mov dword [rbp + 0x13], 0x690061
mov dword [rbp + 0x17], 0x5c006e
mov dword [rbp + 0x1b], 0x650046
mov dword [rbp + 0x1f], 0x740061
mov dword [rbp + 0x23], 0x720075
mov dword [rbp + 0x27], 0x430065
mov dword [rbp + 0x2b], 0x6e006f
mov dword [rbp + 0x2f], 0x720074
mov dword [rbp + 0x33], 0x6c006f
mov dword [rbp + 0x37], 0x5c
lea rcx, [rdx + 0x7fffffc4]
test rcx, rcx
je 0x140116ba3
movzx ecx, word [r8 + rax]
test cx, cx
je 0x140116ba3
mov word [rax], cx
add rax, 2
sub rdx, 1
jne 0x140116b80
test rdx, rdx
lea rcx, [rax - 2]
cmovne rcx, rax
mov word [rcx], r9w
mov rcx, qword [rbp + 0x47]
xor rcx, rsp
call fcn.140160a40
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov r14, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x140119500
Capabilities:
Set registry value

Disassembly:
push rdi
sub rsp, 0x290
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0x2a0], rbx
mov rax, qword [0x14029e8b8]
xor rax, rsp
mov qword [rsp + 0x280], rax
mov rdi, rdx
mov dword [rsp + 0x38], r8d
xor ebx, ebx
mov qword [rsp + 0x40], rbx
lea rcx, [rsp + 0x30]
call fcn.140116700
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.1400a9970
nop
mov rdx, rdi
cmp qword [rdi + 0x18], 8
jb 0x140119560
mov rdx, qword [rdi]
mov r8, qword [rdi + 0x10]
lea rcx, [rsp + 0x50]
call fcn.1400bc1bc
lea rdx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
cmovae rdx, qword [rsp + 0x50]
lea r8, [rsp + 0x40]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
test eax, eax
jne 0x1401195fd
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x70]
call fcn.1401afc90
mov r8d, 0x104
lea rdx, [rsp + 0x70]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rcx, [rsp + 0x70]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
test rax, rax
je 0x1401195fd
mov dword [rsp + 0x28], 4
lea rcx, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
mov r9d, 4
xor r8d, r8d
mov rdx, rax
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov ecx, 1
test eax, eax
cmove ebx, ecx
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x14011960e
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x14011964c
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140119647
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14011966f
call fcn.1401606e8
mov eax, ebx
mov rcx, qword [rsp + 0x280]
xor rcx, rsp
call fcn.140160a40
mov rbx, qword [rsp + 0x2a0]
add rsp, 0x290
pop rdi
ret
call fcn.1401b3260
int3

Function at 0x14011b0b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x90
movzx eax, word [r9 + 0x18]
mov rdi, r9
mov rsi, r8
mov rbx, rcx
cmp ax, 0x41
je 0x14011b126
cmp ax, 0x43
je 0x14011b108
cmp ax, 0x58
jne 0x14011b18e
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14011b18e
lea r8, str.cutkey
jmp 0x14011b174
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14011b18e
lea r8, str.copykey
jmp 0x14011b174
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
je 0x14011b18e
mov rcx, qword [rbx + 0x28]
lea r9, [rsp + 0x30]
mov edx, 0x102b
mov dword [rsp + 0x40], 2
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x3c], 2
mov rcx, qword [rcx + 0x5c0]
call qword [sym.imp.USER32.dll_SendMessageW]
lea r8, str.selectallkey
mov rdx, qword [rbx + 0x28]
mov r9, rsi
mov rcx, qword [rbx + 0x20]
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rdi
call fcn.1400e7380
lea r11, [rsp + 0x90]
xor eax, eax
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x14011f6c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
cmp qword [rcx + 0x610], 0
mov rbp, r9
mov rdi, r8
mov esi, edx
mov rbx, rcx
je 0x14011f770
cmp edx, 0x100
jne 0x14011f74a
cmp di, 0xd
jne 0x14011f74a
cmp byte [rcx + 0x61a], 0
je 0x14011f71d
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x14011f74a
cmp byte [rbx + 0x61b], 0
jne 0x14011f74a
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x14011f746
mov byte [rsp + 0x28], 0
lea r8, str.return
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov rdx, rbx
call fcn.1400e7380
xor eax, eax
jmp 0x14011f775
mov rax, qword [rbx + 0x610]
mov r9, rbp
mov r8, rdi
mov edx, esi
mov rcx, qword [rax + 0x18]
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov r10, qword [rcx]
call qword [r10 + ILCombine]
jmp 0x14011f775
mov eax, 1
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret