joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140037fc0
Capabilities:
Create shortcut via ishelllink
Get common file path
Get startup folder

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x1a8]
sub rsp, 0x2a0
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov rbx, rcx
cmp dword [rcx], 0
jne 0x14002daf7
xor eax, eax
jmp 0x14002dcac
mov edx, 1
call fcn.14002d840
test eax, eax
je 0x14002db0f
mov eax, 1
jmp 0x14002dcac
xor eax, eax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov edx, 0x80
lea rcx, [rsp + 0x60]
call fcn.140033c10
nop
lea rcx, [rsp + 0x60]
call fcn.140034050
lea rax, [rbp - 0x80]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 7]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x14002db60
xor ebx, ebx
jmp 0x14002dca0
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov edx, 0x80
lea rcx, [rsp + 0x48]
call fcn.140031390
nop
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x48]
call fcn.140031610
lea rdx, [0x14009c254]
lea rcx, [rsp + 0x48]
call fcn.140031610
lea rdx, str.PopChar.lnk
lea rcx, [rsp + 0x48]
call fcn.140031610
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x68]
cmp dword [rbx], 0
jne 0x14002dbca
mov ebx, 0xffffffff
jmp 0x14002dc91
xor ebx, ebx
mov qword [rsp + 0x38], rbx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
mov ebx, eax
test eax, eax
js 0x14002dc91
lea rax, [rsp + 0x38]
mov qword [rsp + 0x20], rax
lea r9, [0x1400bbc70]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1400bbc90]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
test eax, eax
js 0x14002dc8a
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + 0xa0]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea rdx, str.Shortcut_to_PopChar
call qword [rax + 0x38]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea rdx, str._autorun
call qword [rax + 0x58]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea r8, [rsp + 0x40]
lea rdx, [0x1400bbc80]
call qword [rax]
mov ebx, eax
test eax, eax
js 0x14002dc7f
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
mov r8d, 1
mov rdx, rdi
call qword [rax + 0x30]
mov ebx, eax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
nop
lea rcx, [rsp + 0x48]
call fcn.140031450
not ebx
shr ebx, 0x1f
lea rcx, [rsp + 0x60]
call fcn.140033ca0
mov eax, ebx
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.14005d680
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
cmp dword [0x1401a1570], 0
je 0x140037fdb
mov rcx, qword [rcx + 0x18]
mov edx, 0x17
lea r8d, [rdx - 0x16]
jmp fcn.140058290
mov rcx, qword [rcx + 0x80]
jmp 0x14002dab0
Function at 0x140037ff0
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x58]
call fcn.14002e900
mov rdx, qword [rbx + 0x58]
mov rcx, qword [rbx + 0x18]
call fcn.1400584c0
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004c490

Function at 0x140038020
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x58]
call fcn.14002e8c0
mov rdx, qword [rbx + 0x58]
mov rcx, qword [rbx + 0x18]
call fcn.1400584c0
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004c490
push rbx
sub rsp, 0x20
cmp qword [rcx + 0xb0], 0
mov rbx, rcx
je 0x14004c4ea
cmp qword [rcx + 8], 0
je 0x14004c4ea
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14004c4ea
call fcn.140049730
mov edx, 1
mov rcx, rbx
call fcn.14004a100
mov rcx, rbx
call fcn.14004caa0
mov rcx, rbx
call fcn.14004a240
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14004c4ea
xor edx, edx
add rsp, 0x20
pop rbx
jmp fcn.140043460
add rsp, 0x20
pop rbx
ret

Function at 0x140038dc0
Capabilities:
Get common file path
Get startup folder

Disassembly:
cmp dword [0x1401a1570], 0
je 0x140038dd7
mov rcx, qword [rcx + 0x18]
mov edx, 0x17
jmp fcn.1400578b0
mov rcx, qword [rcx + 0x80]
jmp fcn.14002d950

Function at 0x140039070
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0xa0]
test rcx, rcx
je 0x14003909e
mov r8d, 1
call fcn.140025940
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004e6c0
add rsp, 0x20
pop rbx
ret
mov rcx, qword [rcx + 0x30]
test rcx, rcx
je 0x14004e6d0
xor edx, edx
jmp fcn.140043460
ret

Function at 0x140039270
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov r8d, edx
mov rcx, qword [rcx + 0x18]
mov edx, 0x10
call fcn.140058870
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004e6c0

Function at 0x140039430
Capabilities:
Create process on windows

Disassembly:
sub rsp, 0x38
mov dword [rsp + 0x28], 1
lea r8, str.https:__store.ergonis.com_products_popcharwin
xor r9d, r9d
mov qword [rsp + 0x20], 0
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov qword [0x1401a1138], rax
add rsp, 0x38
ret

Function at 0x140039470
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x58]
call fcn.14002e820
mov rdx, qword [rbx + 0x58]
mov rcx, qword [rbx + 0x18]
call fcn.1400584c0
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004c490

Function at 0x1400394a0
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x58]
call fcn.14002e810
mov rdx, qword [rbx + 0x58]
mov rcx, qword [rbx + 0x18]
call fcn.1400584c0
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004c490
Function at 0x140039510
Capabilities:
Get keyboard layout

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
mov rbx, rdx
mov rcx, qword [rcx + 0x48]
call fcn.1400332f0
mov rdx, qword [rdi + 0x48]
mov rcx, qword [rdi + 0x18]
call fcn.1400588e0
mov rcx, qword [rdi + 0x50]
mov rdx, rbx
call fcn.1400332f0
mov rcx, qword [rdi + 0x10]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.14004c500

Function at 0x140039560
Capabilities:
Get keyboard layout

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
lea eax, [rdx - 0xe000]
mov ebx, edx
mov rdi, rcx
cmp eax, 0x18ff
jbe 0x14003959a
lea eax, [rdx - 0xf0000]
cmp eax, 0xffff
jbe 0x14003959a
lea eax, [rdx - 0x100000]
cmp eax, 0xffff
jbe 0x14003959a
xor eax, eax
jmp 0x14003959f
mov eax, 1
test eax, eax
je 0x1400395c3
mov rcx, qword [rcx + 0x30]
call fcn.140015d30
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x18]
mov r8, qword [rdx + 0x10]
mov rdx, qword [rdx + 0x78]
call fcn.1400588f0
jmp 0x1400395d9
mov rcx, qword [rcx + 0x48]
call fcn.140033260
mov rdx, qword [rdi + 0x48]
mov rcx, qword [rdi + 0x18]
call fcn.1400588e0
mov rcx, qword [rdi + 0x50]
mov edx, ebx
call fcn.140033260
mov rcx, qword [rdi + 0x10]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.14004c500
Function at 0x14003a7d0
Capabilities:
Create process on windows

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x70
mov qword [r11 - 0x48], 0xfffffffffffffffe
mov qword [r11 + 0x10], rbx
mov qword [r11 + 0x18], rsi
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rax, qword [rcx + 0x60]
mov rbx, qword [rax + 0x18]
mov rsi, qword [rbx + 8]
xor eax, eax
mov qword [r11 - 0x40], rax
mov qword [r11 - 0x38], rax
mov qword [r11 - 0x30], rax
mov edx, 0x80
lea rcx, [r11 - 0x40]
call fcn.140031390
nop
cmp qword [rbx + 8], 0
je 0x14003a8fe
cmp dword [rbx + 0x14], 1
jl 0x14003a8fe
test rsi, rsi
je 0x14003a8fe
xor r8d, r8d
lea rdx, [0x1400b8564]
mov rcx, rbx
call fcn.140031f80
xor edi, edi
test eax, eax
je 0x14003a87b
mov r9, rsi
lea r8, str.https:__store.ergonis.com_upgrade
lea rdx, str._s_lk_s
lea rcx, [rsp + 0x38]
call fcn.140032800
mov r8, qword [rsp + 0x40]
jmp 0x14003a907
xor eax, eax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
xor r8d, r8d
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140031350
nop
mov r9, qword [rsp + 0x58]
movsxd rax, dword [rsp + 0x64]
cmp eax, 3
jl 0x14003a8d4
cmp word [r9 + rax*2 - 4], 0x2d
jne 0x14003a8c2
mov ecx, 0x31
mov word [r9 + rax*2 - 2], cx
jmp 0x14003a8d4
cmp word [r9 + rax*2 - 6], 0x2d
jne 0x14003a8d4
mov dword [r9 + rax*2 - 4], 0x31
lea r8, str.https:__store.ergonis.com_upgrade
lea rdx, str._s_lk_s
lea rcx, [rsp + 0x38]
call fcn.140032800
nop
lea rcx, [rsp + 0x50]
call fcn.140031450
mov r8, qword [rsp + 0x40]
jmp 0x14003a907
xor edi, edi
lea r8, str.https:__store.ergonis.com_upgrade
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rdi
xor r9d, r9d
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
mov qword [0x1401a1138], rax
lea rcx, [rsp + 0x38]
call fcn.140031450
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.14005d680
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret

Function at 0x14003a9a0
Capabilities:
Print debug messages

Disassembly:
push rbx
sub rsp, 0x30
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov rbx, qword [0x1401a16a0]
mov qword [rsp + 0x20], 0
mov eax, dword [0x140197cc4]
test eax, eax
je 0x14003a9e6
lea rcx, str.IsolationAware_function_called_after_IsolationAwareCleanup_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x140197cc4]
test eax, eax
jne 0x14003a9ef
call fcn.1400074d0
test eax, eax
je 0x14003aa48
lea rdx, [rsp + 0x20]
mov rcx, qword [section..data]
call qword [sym.imp.KERNEL32.dll_ActivateActCtx]
test eax, eax
je 0x14003aa48
test rbx, rbx
jne 0x14003aa25
lea rcx, str.InitCommonControls
call fcn.140007000
mov rbx, rax
test rax, rax
je 0x14003aa28
mov qword [0x1401a16a0], rax
call rbx
nop
mov rdx, qword [rsp + 0x20]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeactivateActCtx]
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14005d680
add rsp, 0x30
pop rbx
ret
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14005d680
add rsp, 0x30
pop rbx
ret
Function at 0x14003aa60
Capabilities:
Accept command line arguments

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x60
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov rdi, rcx
mov qword [rsp + 0x78], rsi
lea rcx, [0x14003a970]
mov rbx, r8
call fcn.1400679d8
mov rdx, rdi
lea rcx, [rsp + 0x50]
call fcn.1400309c0
call fcn.14003a9a0
test rbx, rbx
je 0x14003ab0b
cmp byte [rbx], 0
je 0x14003ab0b
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov rcx, rax
lea rdx, [rsp + 0x54]
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov rsi, rax
test rax, rax
je 0x14003ab0b
cmp dword [rsp + 0x54], 1
jle 0x14003ab0b
mov ecx, 0x170
call fcn.14005d524
mov rbx, rax
test rax, rax
je 0x14003ab44
xor edx, edx
mov r8d, 0x170
mov rcx, rax
call fcn.140061460
mov r8, qword [rsi + 8]
mov rdx, rdi
mov rcx, rbx
call fcn.140037360
mov rbx, rax
jmp 0x14003ab46
mov ecx, 0x170
call fcn.14005d524
mov rbx, rax
test rax, rax
je 0x14003ab44
mov r8d, 0x170
xor edx, edx
mov rcx, rax
call fcn.140061460
lea r8, [0x14009bc34]
mov rdx, rdi
mov rcx, rbx
call fcn.140037360
mov rbx, rax
jmp 0x14003ab46
xor ebx, ebx
mov rcx, qword [rbx + 8]
xor eax, eax
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
lea edx, [rax + 0x70]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.USER32.dll_LoadAcceleratorsW]
xor r9d, r9d
mov qword [rsp + 0x30], 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x20]
xor edx, edx
mov rdi, rax
call qword [sym.imp.USER32.dll_GetMessageW]
mov rsi, qword [rsp + 0x78]
test eax, eax
je 0x14003abe9
nop dword [rax + rax]
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x14003abd2
lea r8, [rsp + 0x20]
mov rdx, rdi
call qword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x14003abd2
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_DispatchMessageW]
xor r9d, r9d
lea rcx, [rsp + 0x20]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x14003aba0
mov rcx, rbx
call fcn.140037f70
mov edx, 0x170
mov rcx, rbx
call fcn.14005d560
lea rcx, [rsp + 0x50]
call fcn.1400309f0
mov eax, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14005d680
mov rbx, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret

Function at 0x14003f260
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
mov rsi, r8
mov ecx, 0x11
mov rdi, rdx
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x14003f2b3
cmp rdi, 0x1b
jne 0x14003f2d9
mov rcx, rbx
call fcn.140040660
mov rcx, qword [rbx + 0x30]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.14004caa0
cmp rdi, 0x46
je 0x14003f29b
cmp rdi, 0x4c
jne 0x14003f2c4
mov rdx, rdi
jmp 0x14003f2cd
cmp rdi, 0x4d
jne 0x14003f2d9
mov rdx, rdi
mov rcx, qword [rbx + 0x30]
mov r8, rsi
call fcn.14004a990
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400425c0
Capabilities:
Print debug messages

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r13d, r9d
mov r12d, r8d
mov r15d, edx
mov r14d, ecx
mov eax, dword [rsp + 0xb0]
mov dword [rsp + 0x30], eax
xor edi, edi
mov esi, edi
mov qword [rsp + 0x38], rdi
mov rbx, qword [0x1401a16b0]
mov qword [rsp + 0x40], rdi
mov eax, dword [0x140197cc4]
test eax, eax
je 0x14004262c
lea rcx, str.IsolationAware_function_called_after_IsolationAwareCleanup_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x140197cc4]
test eax, eax
jne 0x140042635
call fcn.1400074d0
test eax, eax
je 0x14004264b
lea rdx, [rsp + 0x40]
mov rcx, qword [section..data]
call qword [sym.imp.KERNEL32.dll_ActivateActCtx]
test eax, eax
jne 0x14004266a
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14005d680
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
test rbx, rbx
jne 0x14004268a
lea rcx, str.ImageList_Create
call fcn.140007000
mov rbx, rax
test rax, rax
je 0x1400426a8
mov qword [0x1401a16b0], rax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x20], eax
mov r9d, r13d
mov r8d, r12d
mov edx, r15d
mov ecx, r14d
call rbx
mov rsi, rax
mov qword [rsp + 0x38], rax
mov ebx, edi
test rsi, rsi
sete bl
test ebx, ebx
je 0x1400426bc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rdx, qword [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeactivateActCtx]
test ebx, ebx
je 0x1400426d5
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, rsi
jmp 0x14004264d

Function at 0x1400426e0
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x140195088]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov r12, r8
mov r15d, edx
mov r14, rcx
mov ebx, 0xffffffff
mov dword [rsp + 0x20], ebx
mov rdi, qword [0x1401a16b8]
xor esi, esi
mov qword [rsp + 0x28], rsi
mov eax, dword [0x140197cc4]
test eax, eax
je 0x140042741
lea rcx, str.IsolationAware_function_called_after_IsolationAwareCleanup_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, dword [0x140197cc4]
test eax, eax
jne 0x14004274a
call fcn.1400074d0
test eax, eax
je 0x1400427bf
lea rdx, [rsp + 0x28]
mov rcx, qword [section..data]
call qword [sym.imp.KERNEL32.dll_ActivateActCtx]
test eax, eax
je 0x1400427bf
test rdi, rdi
jne 0x140042780
lea rcx, str.ImageList_ReplaceIcon
call fcn.140007000
mov rdi, rax
test rax, rax
je 0x140042791
mov qword [0x1401a16b8], rax
mov r8, r12
mov edx, r15d
mov rcx, r14
call rdi
mov ebx, eax
mov dword [rsp + 0x20], eax
mov edi, esi
cmp ebx, 0xffffffff
sete dil
test edi, edi
je 0x1400427a6
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov rdx, qword [rsp + 0x28]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_DeactivateActCtx]
test edi, edi
je 0x1400427bf
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, ebx
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.14005d680
mov rbx, qword [rsp + 0x88]
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret
Function at 0x140044da0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov ebx, dword [rcx + 0xf4]
mov rdi, rcx
mov rcx, qword [rcx + 0x118]
mov edx, 9
call fcn.140057cd0
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyState]
and eax, 0x8000
mov dword [rdi + 0xf4], eax
cmp ebx, eax
je 0x140044e0c
mov rcx, qword [rdi + 0x118]
mov edx, 0x21
call fcn.1400578b0
cmp dword [rdi + 0xf4], 0
mov dword [rdi + 0xf0], eax
je 0x140044e17
test eax, eax
je 0x140044e1b
mov edx, 1
mov rcx, rdi
call fcn.140044180
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
test eax, eax
je 0x140044dff
mov edx, 1
mov rcx, rdi
call fcn.140044e40
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140043f60

Function at 0x140044ff0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbx
sub rsp, 0x30
mov eax, dword [rsp + 0x60]
mov rbx, rcx
mov dword [rcx + 0x44], eax
mov eax, dword [rsp + 0x68]
mov dword [rcx + 0xc8], eax
mov dword [rcx + 0x30], edx
mov dword [rcx + 0x34], r8d
mov dword [rcx + 0x40], r9d
cmp edx, 0xffffffff
jne 0x140045090
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x1400450e9
cmp dword [rbx + 0x100], 0
jne 0x14004506e
cmp dword [rbx + 0x104], 0
jne 0x14004506e
cmp dword [rbx + 0xfc], 0
jne 0x140045078
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x140045078
movups xmm0, xmmword [rbx + 0x224]
xor r8d, r8d
lea rdx, [rsp + 0x20]
mov rcx, rbx
movaps xmmword [rsp + 0x20], xmm0
call fcn.1400456e0
add rsp, 0x30
pop rbx
ret
mov dword [rbx + 0xfc], 1
mov rcx, qword [rbx + 0x10]
xor edx, edx
call qword [sym.imp.USER32.dll_ShowWindow]
mov dword [0x1401a1120], eax
add rsp, 0x30
pop rbx
ret
mov rcx, qword [rcx + 0x118]
mov edx, 0x21
call fcn.1400578b0
mov rcx, qword [rbx + 0x118]
mov edx, 9
mov dword [rbx + 0xf0], eax
call fcn.140057cd0
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyState]
and eax, 0x8000
mov dword [rbx + 0xf4], eax
mov eax, dword [rbx + 0xf0]
je 0x1400450ef
test eax, eax
je 0x1400450f3
mov edx, 1
mov rcx, rbx
add rsp, 0x30
pop rbx
jmp fcn.140044180
add rsp, 0x30
pop rbx
ret
test eax, eax
je 0x1400450d7
mov edx, 1
mov rcx, rbx
call fcn.140044e40
mov rcx, rbx
add rsp, 0x30
pop rbx
jmp fcn.140043f60
Function at 0x14004a8b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rdi, rcx
mov edx, 8
mov rcx, qword [rcx + 0xa0]
call fcn.140057cd0
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyState]
mov r8d, dword [rdi + 0x114]
mov esi, 0x8000
mov edx, dword [rdi + 0x110]
movzx ebx, ax
mov r9d, 1
mov rcx, rdi
and ebx, esi
call fcn.14004e6f0
mov rcx, qword [rdi + 0xa0]
mov edx, 0x21
mov dword [rdi + 0xd4], ebx
call fcn.1400578b0
mov rcx, qword [rdi + 0xa0]
mov edx, 9
mov ebx, eax
call fcn.140057cd0
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyState]
test si, ax
je 0x14004a960
mov rcx, qword [rdi + 0x10]
xor edx, edx
test ebx, ebx
sete dl
xor r8d, r8d
call fcn.140049870
mov rcx, qword [rdi + 0x10]
call fcn.140049520
cmp ebx, eax
je 0x14004a960
mov rcx, qword [rdi + 0x10]
call fcn.140049b30
mov rcx, qword [rdi + 0x60]
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rcx, rdi
mov dword [0x1401a1120], eax
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp fcn.14004caa0
Function at 0x14004b6f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rsi, rcx
mov rdi, rdx
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x10
movzx ebx, ax
call qword [sym.imp.USER32.dll_GetKeyState]
shr rdi, 0x10
movsx edi, di
and ebx, 0x8000
je 0x14004b7b4
mov rcx, qword [rsi + 0xa0]
mov edx, 3
mov qword [rsp + 0x30], rbp
call fcn.140057cd0
mov ebx, eax
mov edx, 0xa
cmp ebx, 0x64
mov eax, 0x32
mov ecx, ebx
cmovg edx, eax
cmp ebx, 0x190
mov eax, 0x64
cmovg edx, eax
sub ecx, edx
test edi, edi
lea ebp, [rdx + rbx]
cmovle ebp, ecx
mov rcx, qword [rsi + 0x10]
mov edx, ebp
call fcn.1400497f0
mov rcx, qword [rsi + 0x10]
call fcn.1400494b0
cmp ebx, eax
je 0x14004b79f
mov rcx, qword [rsi + 0xa0]
mov r8d, ebp
mov edx, 3
call fcn.140058870
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
mov rcx, qword [rsi + 0x28]
neg edi
mov edx, edi
call fcn.140050450
mov rcx, qword [rsi + 0x28]
mov ebx, eax
mov edx, dword [rcx + 0x28]
mov rcx, qword [rsi + 0x10]
call fcn.1400498d0
mov rcx, qword [rsi + 0x10]
mov edx, ebx
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
jmp fcn.1400497b0

Function at 0x14004c490
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx + 0x58]
call fcn.14002e8c0
mov rdx, qword [rbx + 0x58]
mov rcx, qword [rbx + 0x18]
call fcn.1400584c0
mov rcx, qword [rbx + 0x10]
add rsp, 0x20
pop rbx
jmp 0x14004c490
push rbx
sub rsp, 0x20
cmp qword [rcx + 0xb0], 0
mov rbx, rcx
je 0x14004c4ea
cmp qword [rcx + 8], 0
je 0x14004c4ea
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14004c4ea
call fcn.140049730
mov edx, 1
mov rcx, rbx
call fcn.14004a100
mov rcx, rbx
call fcn.14004caa0
mov rcx, rbx
call fcn.14004a240
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14004c4ea
xor edx, edx
add rsp, 0x20
pop rbx
jmp fcn.140043460
add rsp, 0x20
pop rbx
ret

Function at 0x14004c500
Capabilities:
Get keyboard layout

Disassembly:
push rbx
sub rsp, 0x20
cmp qword [rcx + 0xb0], 0
mov rbx, rcx
je 0x14004c55a
cmp qword [rcx + 8], 0
je 0x14004c55a
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x14004c55a
call fcn.140049740
mov edx, 1
mov rcx, rbx
call fcn.14004a100
mov rcx, rbx
call fcn.14004caa0
mov rcx, rbx
call fcn.14004a240
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x14004c55a
xor edx, edx
add rsp, 0x20
pop rbx
jmp fcn.140043460
add rsp, 0x20
pop rbx
ret