joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4f65c0
Capabilities:
Create process on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rdi, rcx
mov ecx, dword [rcx + 0x90]
mov ebx, 1
mov eax, ecx
mov sil, bl
and eax, 0xc
cmp al, 0xc
jne 0x4f662e
mov rcx, qword [rdi + 8]
mov qword [rsp + 0x30], rcx
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
mov dword [rsp + 0x40], 0xfffffffe
movsxd rcx, eax
mov qword [rsp + 0x38], rcx
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
mov rcx, qword [rdi + 8]
movsxd rbx, eax
call qword [sym.imp.USER32.dll_GetParent]
mov r8, rbx
lea r9, [rsp + 0x30]
mov edx, 0x4e
jmp 0x4f6658
shr ecx, 2
test bl, cl
je 0x4f6663
mov rcx, qword [rdi + 8]
call qword [sym.imp.USER32.dll_GetDlgCtrlID]
mov rcx, qword [rdi + 8]
mov ebx, eax
call qword [sym.imp.USER32.dll_GetParent]
mov r9, qword [rdi + 8]
movzx r8d, bx
mov edx, 0x111
mov rcx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4f66a6
mov r8, qword [rdi + 0x50]
lea rdx, str.open
xor r9d, r9d
xor ecx, ecx
mov dword [rsp + 0x28], ebx
and qword [rsp + 0x20], 0
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
cmp rax, 0x20
seta sil
test sil, sil
je 0x4f66a6
mov rcx, qword [rdi + 8]
or byte [rdi + 0x94], 2
mov r8d, ebx
xor edx, edx
call qword [sym.imp.USER32.dll_InvalidateRect]
mov rbx, qword [rsp + 0x60]
mov al, sil
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
Function at 0x4fbe38
Capabilities:
Get graphical window text

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0xb0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rdi, rcx
mov rcx, qword [rcx + 0x128]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
inc eax
movsxd rdx, eax
mov eax, 2
mul rdx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.006a43c4
mov rbx, rax
mov qword [rsp + 0xc8], rax
mov rcx, qword [rdi + 0x128]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea r8d, [rax + 1]
mov rdx, rbx
mov rcx, qword [rdi + 0x128]
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rcx, qword [rdi + 0x128]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
movsxd r8, eax
lea r9, [rsp + 0xc0]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.0042100c
nop
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.00402190
nop
lea rcx, [rdi + 0x228]
cmp rax, rcx
je 0x4fbefa
mov r8, qword [rax + 0x20]
mov rdx, qword [rax + 0x28]
call fcn.0040289c
nop
lea rax, [rsp + 0x28]
mov rcx, qword [rsp + 0x50]
cmp rcx, rax
je 0x4fbf2c
test rcx, rcx
je 0x4fbf2c
mov rdx, qword [rsp + 0x28]
sub rdx, rcx
cmp rdx, 0x100
jbe 0x4fbf26
call fcn.006a4944
jmp 0x4fbf2c
call fcn.006a3610
nop
lea rax, [rsp + 0x58]
mov rcx, qword [rsp + 0xa0]
cmp rcx, rax
je 0x4fbf67
test rcx, rcx
je 0x4fbf67
mov rax, qword [rsp + 0x58]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, 0x100
jbe 0x4fbf62
call fcn.006a4944
jmp 0x4fbf67
call fcn.006a3610
mov rcx, rdi
call fcn.004fb020
nop
mov rcx, rbx
call fcn.006a5088
xor eax, eax
mov rbx, qword [rsp + 0xd0]
add rsp, 0xb0
pop rdi
ret
Function at 0x4fc054
Capabilities:
Open clipboard

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x290
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
lea rax, [rsp + 0x30]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x30]
mov qword [rsp + 0x78], rax
xor ebp, ebp
mov word [rsp + 0x30], bp
lea rbx, [rcx + 0x1a0]
lea r9d, [rbp + 2]
or r8, 0xffffffffffffffff
mov edx, 0x100c
mov rcx, qword [rbx]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rsi, rax
cmp eax, 0xffffffff
je 0x4fc14f
mov dword [rsp + 0x20], 0x100
lea r9, [rsp + 0x90]
mov r8d, 3
mov edx, esi
mov rcx, rbx
call fcn.004451d0
mov rdx, qword [rsp + 0x70]
cmp qword [rsp + 0x78], rdx
je 0x4fc0ff
lea r8, [0x00794f70]
lea rdx, [0x00794f6c]
lea rcx, [rsp + 0x30]
call fcn.00406b9c
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x90]
repne scasw ax, word [rdi]
not rcx
lea r8, [rsp + rcx*2 + 0x8e]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x30]
call fcn.00406b9c
movsxd r8, esi
mov edx, 0x100c
mov r9d, 2
mov rcx, qword [rbx]
call qword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
cmp eax, 0xffffffff
jne 0x4fc0bb
mov rcx, qword [0x008669d0]
call qword [sym.imp.USER32.dll_OpenClipboard]
cmp eax, ebp
je 0x4fc16b
lea rcx, [rsp + 0x30]
call fcn.0055cb24
nop
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
cmp rcx, rax
je 0x4fc1a2
cmp rcx, rbp
je 0x4fc1a2
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
sar rdx, 1
add rdx, rdx
cmp rdx, 0x100
jbe 0x4fc19d
call fcn.006a4944
jmp 0x4fc1a2
call fcn.006a3610
xor eax, eax
lea r11, [rsp + 0x290]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x51460c
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov ebx, edx
mov rsi, rcx
cmp r8, 9
je 0x51467d
cmp r8, 0xd
je 0x514636
mov rax, qword [rsp + 0x50]
and dword [rax], 0
jmp 0x5146a3
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x8000
test di, ax
ja 0x51462c
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetKeyState]
test di, ax
ja 0x51462c
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
test di, ax
ja 0x51462c
cmp ebx, 0x100
jne 0x5146a3
mov rcx, rsi
call fcn.005115f0
jmp 0x5146a3
cmp edx, 0x100
jne 0x5146a3
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x8000
mov rcx, rsi
test di, ax
seta dl
call fcn.005147b0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
xor eax, eax
add rsp, 0x20
pop rdi
ret

Function at 0x5146b8
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov ebx, edx
mov rsi, rcx
cmp edx, 0x102
jne 0x5146f0
cmp r8, 8
jne 0x5146e6
lea ecx, [r8 - 7]
mov byte [0x008668e3], cl
jmp 0x514708
xor al, al
mov byte [0x008668e3], al
jmp 0x5146f6
mov al, byte [0x008668e3]
cmp r8, 9
je 0x514775
cmp r8, 0xd
je 0x51472e
cmp r8, 0x2e
je 0x514715
mov rax, qword [rsp + 0x50]
and dword [rax], 0
jmp 0x51479b
movzx eax, al
mov ecx, 1
cmp edx, 0x100
cmove eax, ecx
mov byte [0x008668e3], al
jmp 0x514708
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x8000
test di, ax
ja 0x514708
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetKeyState]
test di, ax
ja 0x514708
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
test di, ax
ja 0x514708
cmp ebx, 0x100
jne 0x51479b
mov rcx, rsi
call fcn.005115f0
jmp 0x51479b
cmp edx, 0x100
jne 0x51479b
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, 0x8000
mov rcx, rsi
test di, ax
seta dl
call fcn.005147b0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
xor eax, eax
add rsp, 0x20
pop rdi
ret
Function at 0x5174bc
Capabilities:
Get graphical window text

Disassembly:
mov rax, rsp
push r12
sub rsp, 0xe0
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rdi, r8
mov rbp, rcx
xor esi, esi
mov dword [rsp + 0x24], esi
mov rax, qword [0x00862cb8]
cmp byte [rax + 0x31a7], sil
jne 0x517515
mov rcx, qword [rax + 0xb8]
test rcx, rcx
je 0x517515
mov edx, 0x327
call fcn.0041024c
jmp 0x51751b
mov al, byte [rax + 0x2dc8]
test al, al
je 0x517529
cmp rdi, 0xd
jne 0x517721
mov rcx, qword [rbp + 0xbb8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
inc eax
movsxd rcx, eax
mov eax, 2
mul rcx
mov rdi, 0xffffffffffffffff
cmovo rax, rdi
mov rcx, rax
call fcn.006a43c4
mov rbx, rax
mov qword [rsp + 0x28], rax
mov rcx, qword [rbp + 0xbb8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea r8d, [rax + 1]
mov rdx, rbx
mov rcx, qword [rbp + 0xbb8]
call qword [sym.imp.USER32.dll_GetWindowTextW]
cmp word [rbx], 0x2d
sete al
mov byte [rbp + 0x848], al
test al, al
je 0x517596
lea rdx, [rbx + 2]
jmp 0x517599
mov rdx, rbx
xor eax, eax
mov rcx, rdi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rdx + rcx*2 - 2]
lea rcx, [rbp + 0x7f8]
call fcn.00406d38
mov rdi, qword [rbp + 0x850]
test rdi, rdi
je 0x5175d4
mov rcx, rdi
call fcn.00583350
mov rcx, rdi
call fcn.006a4944
and qword [rbp + 0x850], 0
mov rax, qword [rbp + 0x840]
cmp rax, qword [rbp + 0x838]
je 0x51770e
mov ecx, 0x50
call fcn.006a494c
mov rdi, rax
mov qword [rsp + 0x30], rax
test rax, rax
je 0x51764e
lea r8, [rsp + 0x20]
lea rdx, [0x0078dc30]
lea rcx, [rsp + 0x40]
call fcn.004023b4
nop
lea rdx, [rbp + 0x7f8]
lea rcx, [rsp + 0x90]
call fcn.0057b9c0
nop
mov esi, 7
mov dword [rsp + 0x24], esi
lea r8, [rsp + 0x40]
mov rdx, rax
mov rcx, rdi
call fcn.005831b8
jmp 0x517650
xor eax, eax
mov qword [rbp + 0x850], rax
mov edi, 0x100
test sil, 4
je 0x5176a7
and esi, 0xfffffffb
mov dword [rsp + 0x24], esi
lea rax, [rsp + 0x90]
mov rcx, qword [rsp + 0xd8]
cmp rcx, rax
je 0x5176a7
test rcx, rcx
je 0x5176a7
mov rax, qword [rsp + 0x90]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, rdi
jbe 0x5176a1
call fcn.006a4944
jmp 0x5176a7
call fcn.006a3610
nop
test sil, 2
je 0x5176e4
lea rax, [rsp + 0x40]
mov rcx, qword [rsp + 0x88]
cmp rcx, rax
je 0x5176e4
test rcx, rcx
je 0x5176e4
mov rax, qword [rsp + 0x40]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, rdi
jbe 0x5176df
call fcn.006a4944
jmp 0x5176e4
call fcn.006a3610
mov rdi, qword [rbp + 0x850]
cmp dword [rdi + 0x48], 0
jne 0x51770e
test rdi, rdi
je 0x517706
mov rcx, rdi
call fcn.00583350
mov rcx, rdi
call fcn.006a4944
and qword [rbp + 0x850], 0
xor edx, edx
mov rcx, rbp
call fcn.00518230
nop
mov rcx, rbx
call fcn.006a5088
mov rax, qword [rsp + 0x110]
and dword [rax], 0
xor eax, eax
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret
Function at 0x5184a4
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
sub rsp, 0x80
mov rax, qword [0x00862cb8]
xor r12d, r12d
mov rbx, rcx
cmp byte [rax + 0x31b6], r12b
jne 0x5184f0
mov rcx, qword [rax + 0xb8]
cmp rcx, r12
je 0x5184f0
mov edx, 0x336
call fcn.0041024c
mov dil, al
jmp 0x5184f7
mov dil, byte [rax + 0x2dd7]
mov rcx, qword [rbx + 0x2b0]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
cmp eax, 0x27
jne 0x518565
mov rcx, qword [rbx + 0x2b0]
lea r8d, [rax + 1]
lea rdx, [rsp + 0x30]
call qword [sym.imp.USER32.dll_GetWindowTextW]
lea rcx, [rsp + 0x30]
call fcn.0058e09c
cmp al, r12b
je 0x518565
mov rcx, qword [rbx + 0x2d0]
lea r9, [0x0079c210]
xor r8d, r8d
mov edx, 0x158
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, qword [rbx + 0x2d0]
xor r9d, r9d
movsxd r8, eax
mov edx, 0x14e
call qword [sym.imp.USER32.dll_SendMessageW]
mov dil, r12b
cmp dil, r12b
je 0x5186d8
mov rdi, qword [rbx + 0x2b0]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xe]
mov rcx, rdi
mov dword [rsp + 0xa0], r12d
mov dword [rsp + 0x20], r12d
call qword [sym.imp.USER32.dll_SendMessageW]
mov rbx, 0xffffffffffffffff
lea ecx, [rax + 1]
mov rbp, rax
mov eax, 2
movsxd rdx, ecx
mul rdx
cmovo rax, rbx
mov rcx, rax
call fcn.006a43c4
movsxd r13, ebp
lea edx, [rbx + 0xe]
lea r8, [r13 + 1]
mov r9, rax
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.USER32.dll_SendMessageW]
lea r9, [rsp + 0x20]
lea r8, [rsp + 0xa0]
mov edx, 0x140
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
cmp byte [0x008668e3], r12b
jne 0x5186c1
mov eax, dword [rsp + 0xa0]
cmp eax, dword [rsp + 0x20]
jne 0x5186c1
cmp eax, ebp
jne 0x5186c1
mov r9, rsi
mov r8, rbx
mov edx, 0x14c
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, ebx
je 0x5186c1
movsxd r12, eax
xor r9d, r9d
mov edx, 0x149
mov r8, r12
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, ebx
je 0x5186c1
lea ecx, [rax + 1]
lea eax, [rbx + 3]
movsxd rdx, ecx
mul rdx
cmovo rax, rbx
mov rcx, rax
call fcn.006a43c4
mov r8, r12
mov edx, 0x148
mov r9, rax
mov rcx, rdi
mov rbx, rax
call qword [sym.imp.USER32.dll_SendMessageW]
lea r8, [r13 + r13]
mov rdx, rsi
mov rcx, rbx
call fcn.006a4bf0
xor r8d, r8d
mov r9, rbx
lea edx, [r8 + 0xc]
mov rcx, rdi
call qword [sym.imp.USER32.dll_SendMessageW]
mov eax, 0xffff0000
movzx r9d, bp
xor r8d, r8d
mov edx, 0x142
mov rcx, rdi
or r9, rax
call qword [sym.imp.USER32.dll_SendMessageW]
mov rcx, rbx
call fcn.006a4944
mov rcx, rsi
call fcn.006a4944
mov r11, qword [rsp + 0xc0]
mov dword [r11], 1
lea r11, [rsp + 0x80]
xor eax, eax
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret
Function at 0x5241a8
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rdi
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rbp, r9
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
and dword [rcx + 8], 0
lea rax, [0x0079c690]
mov qword [rcx], rax
and qword [rcx + 0x18], 0
and qword [rcx + 0x20], 0
and dword [rcx + 0x10], 0
and dword [rcx + 0x14], 0
call fcn.0052373c
test al, al
je 0x52435b
cmp rdi, 2
jne 0x524251
lea ecx, [rdi + 0x16]
call sub.gdiplus.dll_GdipAlloc
mov rdi, rax
test rax, rax
je 0x524246
lea rax, [0x0079c6f0]
mov qword [rdi], rax
and qword [rsp + 0x20], 0
lea r8, [rsp + 0x20]
mov rdx, rbp
mov rcx, rsi
call sub.gdiplus.dll_GdipCreateBitmapFromResource
mov dword [rdi + 0x10], eax
mov rcx, qword [rsp + 0x20]
mov qword [rdi + 8], rcx
jmp 0x524248
xor edi, edi
mov qword [rbx + 0x18], rdi
jmp 0x524352
mov r8, rdi
mov rdx, rbp
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdi, rax
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rbp, rax
test rax, rax
je 0x524352
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x524352
mov esi, eax
mov edx, eax
mov ecx, 2
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rdi, rax
test rax, rax
je 0x524352
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rbp, rbp
je 0x5242d7
test rax, rax
je 0x5242d7
mov r8, rsi
mov rdx, rbp
mov rcx, rax
call fcn.006a4bf0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
and qword [rsp + 0x20], 0
lea r8, [rsp + 0x20]
mov edx, 1
mov rcx, rdi
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
test eax, eax
js 0x524342
mov ecx, 0x18
call sub.gdiplus.dll_GdipAlloc
mov rdi, rax
test rax, rax
je 0x52433c
mov rcx, qword [rsp + 0x20]
lea rax, [0x0079c6f0]
mov qword [rdi], rax
and qword [rsp + 0x28], 0
lea rdx, [rsp + 0x28]
call sub.gdiplus.dll_GdipCreateBitmapFromStream
mov dword [rdi + 0x10], eax
mov rcx, qword [rsp + 0x28]
mov qword [rdi + 8], rcx
jmp 0x52433e
xor edi, edi
mov qword [rbx + 0x18], rdi
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x524352
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, rbx
call fcn.005238d8
nop
mov rax, rbx
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
Function at 0x532e18
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rdi
sub rsp, 0xc0
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov rdi, rdx
mov rbx, rcx
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.00530fa4
nop
mov r8d, 0x623
mov rdx, rax
mov rcx, qword [rbx + 8]
call fcn.00401288
mov ebx, eax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
cmp rcx, rax
je 0x532e8d
test rcx, rcx
je 0x532e8d
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
cmp rdx, 0x100
jbe 0x532e88
call fcn.006a4944
jmp 0x532e8d
call fcn.006a3610
cmp ebx, 1
je 0x532f59
mov r8, rdi
lea rdx, [rsp + 0x30]
mov rcx, qword [0x00862c88]
call fcn.0057d370
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.00401f00
nop
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
cmp rcx, rax
je 0x532ee9
test rcx, rcx
je 0x532ee9
mov rdx, qword [rsp + 0x30]
sub rdx, rcx
cmp rdx, 0x100
jbe 0x532ee4
call fcn.006a4944
jmp 0x532ee9
call fcn.006a3610
test ebx, ebx
jne 0x532f12
mov dword [rsp + 0x28], 1
and qword [rsp + 0x20], 0
xor r9d, r9d
mov r8, qword [rsp + 0xb8]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
jmp 0x532f1d
lea rcx, [rsp + 0x70]
call fcn.00566c1c
nop
lea rax, [rsp + 0x70]
mov rcx, qword [rsp + 0xb8]
cmp rcx, rax
je 0x532f59
test rcx, rcx
je 0x532f59
mov rax, qword [rsp + 0x70]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, 0x100
jbe 0x532f53
call fcn.006a4944
jmp 0x532f59
call fcn.006a3610
nop
mov rbx, qword [rsp + 0xd8]
add rsp, 0xc0
pop rdi
ret
Function at 0x55888c
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0xc0
xor ebx, ebx
cmp dword [0x008668f4], ebx
je 0x5588b2
cmp qword [0x00866968], rbx
setne bl
jmp 0x558a24
lea rcx, [rsp + 0x24]
xor edx, edx
mov r8d, 0x90
call fcn.006aba40
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], __WSAFDIsSet
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rsp + 0x30], 2
mov r11d, ebx
sete r11b
lea rcx, str.USER32
mov dword [0x00866980], r11d
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdi, rax
cmp rax, rbx
je 0x5589e9
lea rdx, [0x0079cef8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866948], rax
cmp rax, rbx
je 0x5589e9
lea rdx, str.MonitorFromWindow
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866950], rax
cmp rax, rbx
je 0x5589e9
lea rdx, str.MonitorFromRect
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866958], rax
cmp rax, rbx
je 0x5589e9
lea rdx, str.MonitorFromPoint
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866960], rax
cmp rax, rbx
je 0x5589e9
lea rdx, str.EnumDisplayMonitors
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866970], rax
cmp rax, rbx
je 0x5589e9
lea rdx, str.EnumDisplayDevicesW
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866978], rax
cmp rax, rbx
je 0x5589e9
mov rcx, rdi
lea rdx, str.GetMonitorInfoW
cmp dword [0x00866980], ebx
jne 0x5589d0
lea rdx, str.GetMonitorInfoA
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x00866968], rax
cmp rax, rbx
je 0x5589e9
mov ebx, 1
jmp 0x558a1a
mov qword [0x00866948], rbx
mov qword [0x00866950], rbx
mov qword [0x00866958], rbx
mov qword [0x00866960], rbx
mov qword [0x00866968], rbx
mov qword [0x00866970], rbx
mov qword [0x00866978], rbx
mov dword [0x008668f4], 1
mov eax, ebx
mov rbx, qword [rsp + 0xd0]
add rsp, 0xc0
pop rdi
ret
Function at 0x55a6c0
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x190
mov qword [rsp + 0x80], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov rbx, r8
mov rax, qword [r8 + 0x28]
cmp rax, qword [r8 + 0x20]
je 0x55a983
cmp edx, 0x36b0
je 0x55a707
cmp edx, 0x3714
je 0x55a707
mov edx, 0xa0
jmp 0x55a70c
mov edx, 0x9e
movsxd rax, edx
cmp byte [rax + rcx + 0x2df8], 0
jne 0x55a72f
mov r8, qword [rcx + 0x30]
test r8, r8
je 0x55a72f
mov rcx, r8
call fcn.004083bc
mov rdi, rax
jmp 0x55a73b
lea rax, [rax + rax*2]
add rax, rax
lea rdi, [rcx + rax*8 + 0x38]
mov rax, qword [rdi + 0x20]
sub rax, qword [rdi + 0x28]
cmp rax, 3
jb 0x55a983
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x1b0]
lea r8, [rsp + 0x1b0]
xor edx, edx
lea rcx, [rsp + 0x150]
call fcn.00415c3c
nop
lea rdx, [0x0079cfd4]
lea rcx, [rsp + 0x150]
call fcn.005407dc
cmp rbx, rax
je 0x55a7a3
mov r8, qword [rbx + 0x20]
mov rdx, qword [rbx + 0x28]
mov rcx, rax
call fcn.0040289c
xor r9d, r9d
lea r8, [rsp + 0x150]
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.0058b150
nop
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.00401f00
nop
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.0058de60
nop
lea rax, [rsp + 0xe0]
mov ebp, 0x100
mov rcx, qword [rsp + 0x128]
cmp rcx, rax
je 0x55a821
test rcx, rcx
je 0x55a821
mov rax, qword [rsp + 0xe0]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, rbp
jbe 0x55a81b
call fcn.006a4944
jmp 0x55a821
call fcn.006a3610
nop
lea rax, [rsp + 0x50]
mov rcx, qword [rsp + 0x78]
cmp rcx, rax
je 0x55a84e
test rcx, rcx
je 0x55a84e
mov rdx, qword [rsp + 0x50]
sub rdx, rcx
cmp rdx, rbp
jbe 0x55a849
call fcn.006a4944
jmp 0x55a84e
call fcn.006a3610
mov edx, 0x20
xor r8d, r8d
lea rcx, [rsp + 0x90]
call fcn.00421278
mov rdi, rax
mov edx, 0x3a
xor r8d, r8d
lea rcx, [rsp + 0x90]
call fcn.00421278
mov rbx, qword [rsp + 0xd8]
cmp rdi, 0xffffffffffffffff
je 0x55a894
cmp rax, 0xffffffffffffffff
je 0x55a894
cmp rdi, rax
jb 0x55a8b8
cmp rax, 1
je 0x55a8b8
cmp rax, 2
jne 0x55a8a6
cmp word [rbx], 0x22
je 0x55a8b8
lea rcx, [rsp + 0x90]
call fcn.005638f8
jmp 0x55a938
mov dword [rsp + 0xe0], WSAGetLastError
and qword [rsp + 0xe8], 0
xor edx, edx
lea r8d, [rdx + 0x58]
lea rcx, [rsp + 0xf0]
call fcn.006aba40
lea r11, [rsp + 0x50]
mov qword [rsp + 0x48], r11
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x40], rax
and qword [rsp + 0x38], 0
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
and dword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x55a938
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
lea rax, [rsp + 0x90]
mov rcx, qword [rsp + 0xd8]
cmp rcx, rax
je 0x55a976
test rcx, rcx
je 0x55a976
mov rax, qword [rsp + 0x90]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, rbp
jbe 0x55a970
call fcn.006a4944
jmp 0x55a976
call fcn.006a3610
nop
lea rcx, [rsp + 0x150]
call fcn.00415b98
lea r11, [rsp + 0x190]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x55ab98
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, 0x20
mov rdi, r9
mov rsi, r8
mov rbx, rdx
cmp rdx, 0x30
jb 0x55abc1
cmp rdx, 0x39
jbe 0x55ac08
cmp rdx, 0x41
jb 0x55abcd
cmp rdx, 0x5a
jbe 0x55ac08
cmp rdx, 0x20
je 0x55ac08
mov al, dl
and al, 0xf0
cmp al, 0x60
je 0x55ac08
cmp rdx, 0xbb
jb 0x55abed
cmp rdx, 0xbf
jbe 0x55ac08
cmp rdx, 0xc0
je 0x55ac08
cmp rdx, 0xdb
jb 0x55ac5c
cmp rdx, 0xdd
ja 0x55ac5c
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetKeyState]
mov ebp, 0x8000
test bp, ax
ja 0x55ac5c
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetKeyState]
test bp, ax
ja 0x55ac5c
mov rax, qword [0x008669e0]
test rax, rax
je 0x55ac5f
mov rcx, qword [rax + 0xc0]
test rcx, rcx
je 0x55ac5f
mov rcx, qword [rcx + 0x10]
mov r9, rsi
mov r8, rbx
mov edx, 0x81f6
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x55ac5f
and dword [rdi], 0
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
xor eax, eax
add rsp, 0x20
pop rdi
ret