joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400022b5
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r9, qword [0x1400168c0]
mov r8, rcx
mov rcx, r9
call fcn.1400021e0
test eax, eax
je 0x1400022e1
mov rdx, r8
mov rcx, r9
sub rdx, r9
add rsp, 0x28
jmp fcn.140002204
xor eax, eax
add rsp, 0x28
ret

Function at 0x1400062c2
Capabilities:
Allocate thread local storage

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x140015128], eax
inc eax
jne 0x1400062dc
call sub.msvcrt.dll_abort
nop
add rsp, 0x28
ret

Function at 0x140006464
Capabilities:
Print debug messages

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x90
mov rbx, rcx
test rcx, rcx
je 0x140006502
call fcn.14000912a
dec eax
jne 0x1400064fb
xor eax, eax
lea rdi, [rsp + 0x25]
mov ecx, 0xa
lea rsi, str.Error_cleaning_up_spin_keys_for_thread
rep movsd dword [rdi], dword [rsi]
lea rdi, [rsp + 0x4d]
mov ecx, 0x43
rep stosb byte [rdi], al
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rdx, [rsp + 0x4c]
mov r8d, 0xa
mov ecx, eax
call qword [sym.imp.msvcrt.dll__ultoa]
mov edx, 0x27
lea rcx, [rsp + 0x25]
cmp byte [rcx + rdx], 0
mov eax, edx
je 0x1400064da
inc rdx
cmp rdx, 0x6b
jne 0x1400064c7
jmp 0x1400064f0
cmp edx, 0x6a
je 0x1400064f0
inc eax
movsxd rdx, edx
cdqe
mov byte [rsp + rdx + 0x25], 0xa
mov byte [rsp + rax + 0x25], 0
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call sub.msvcrt.dll_abort
mov qword [rbx], 0xffffffffffffffff
add rsp, 0x90
pop rbx
pop rsi
pop rdi
ret

Function at 0x1400065ae
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r12
push rsi
push rbx
sub rsp, 0x50
call fcn.14000650d
mov ecx, dword [0x140015128]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r12, rax
test rax, rax
jne 0x1400066c7
call fcn.1400063b0
cmp qword [0x14001c048], 0
mov rbx, rax
je 0x1400066c7
test rax, rax
je 0x1400066c7
mov dword [rax + 0x44], 1
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
xor r9d, r9d
xor r8d, r8d
mov edx, 1
xor ecx, ecx
mov dword [rbx + 0x70], eax
call qword [sym.imp.KERNEL32.dll_CreateEventA]
mov qword [rbx + 0x38], 0xffffffffffffffff
lea rcx, [rbx + 0x68]
mov qword [rbx + 0x30], rax
call fcn.140006464
mov rsi, qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rbx + 0xb8], 0
mov qword [rbx + 0x28], 0
call rsi
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov r12, rax
call rsi
mov r8, qword [rsp + 0x48]
lea r9, [rbx + 0x28]
mov rdx, r12
mov dword [rsp + 0x30], 2
mov rcx, rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
jne 0x14000668b
call sub.msvcrt.dll_abort
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov ecx, dword [0x140015128]
mov rdx, rbx
mov dword [rbx + 0xbc], 0
mov dword [rbx + 0xc0], eax
mov al, byte [rbx + 0x40]
and eax, 0xffffffcf
or eax, 0x10
mov byte [rbx + 0x40], al
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x140006686
mov r12, rbx
mov rax, r12
add rsp, 0x50
pop rbx
pop rsi
pop r12
ret
Function at 0x140007287
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r13
push r12
sub rsp, 0x28
mov r13, rcx
call fcn.1400065ae
mov qword [rax + 8], r13
mov rcx, qword [rax + 0x1d8]
mov r12, rax
call fcn.140006d36
test byte [r12 + 0x40], 0x30
jne 0x1400072c5
lea rcx, [r12 + 0xd0]
mov edx, 1
call qword [sym.imp.msvcrt.dll_longjmp]
mov ecx, dword [0x140015128]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r12, rax
test rax, rax
je 0x140007365
cmp qword [rax + 0x28], 0
mov rcx, qword [rax + 0x30]
jne 0x140007309
mov dword [rax], 0xdeadbeef
test rcx, rcx
je 0x1400072f9
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [r12 + 0x30], 0
mov r13d, dword [r12 + 8]
jmp 0x14000734f
mov dword [rax + 0xbc], 1
mov r13d, dword [rax + 8]
test rcx, rcx
je 0x140007322
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [r12 + 0x30], 0
test byte [r12 + 0x44], 4
je 0x140007365
mov dword [r12], 0xdeadbeef
mov rcx, qword [r12 + 0x28]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [r12 + 0x28], 0
mov rcx, r12
call fcn.1400066d3
mov ecx, dword [0x140015128]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov ecx, r13d
call qword [sym.imp.msvcrt.dll__endthreadex]
nop
Function at 0x140001410
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x70
mov rax, qword [0x140043008]
xor rax, rsp
mov qword [rsp + 0x68], rax
lea rax, [0x140001870]
mov ecx, 0x20
mov qword [rsp + 0x30], rax
lea rax, [0x1400017b0]
mov qword [rsp + 0x38], rax
lea rax, [0x140033c70]
mov qword [rsp + 0x40], rax
lea rax, [0x140033eb0]
mov qword [rsp + 0x48], rax
call fcn.140035050
mov r8d, 0x20
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x30]
mov rcx, rax
lea rbx, [rax + 0x20]
mov qword [rsp + 0x60], rbx
call sub.VCRUNTIME140.dll_memmove
lea rcx, [0x140001a10]
mov qword [rsp + 0x58], rbx
call fcn.1400352c4
mov rsi, qword [rsp + 0x58]
xor edi, edi
mov rbx, qword [rsp + 0x50]
cmp rbx, rsi
je 0x1400014d2
nop dword [rax + rax]
mov r8, qword [rbx]
xor r9d, r9d
mov qword [rsp + 0x28], rdi
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateThread]
add rbx, 8
cmp rbx, rsi
jne 0x1400014b0
call fcn.140032580
mov rcx, qword [rsp + 0x50]
test al, al
sete dil
test rcx, rcx
je 0x140001520
mov rdx, qword [rsp + 0x60]
mov rax, rcx
sub rdx, rcx
and rdx, 0xfffffffffffffff8
cmp rdx, 0x1000
jb 0x14000151b
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14000151b
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400352e4
mov eax, edi
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.140035030
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x140001d00
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r10, rcx
mov r9d, 0x270
mov ecx, dword [rcx]
cmp ecx, r9d
jne 0x140001d61
lea r8, [r10 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140001d20
mov ecx, dword [r10]
jmp 0x140001e4a
cmp ecx, 0x4e0
jb 0x140001e4a
lea r11, [r10 + 0x9c4]
mov qword [rsp], rbx
mov eax, dword [r11]
mov ebx, 0xe3
mov edx, dword [r11 + 4]
lea r8, [r11 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 + 0x634]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x140001d80
lea r11, [r10 + 0xd50]
mov ebx, 0x18c
mov eax, dword [r11]
nop dword [rax + rax]
mov edx, eax
lea r8, [r11 + 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 - 0xd4c]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x140001dd0
mov edx, dword [r10 + 0x1380]
xor edx, dword [r10 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, dword [r10 + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x634]
xor ecx, edx
mov dword [r10 + 0x9c0], ecx
xor ecx, ecx
mov dword [r10], ecx
mov eax, ecx
mov edx, dword [r10 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r10], eax
mov ecx, edx
mov eax, dword [r10 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret

Function at 0x140003500
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov r11d, r8d
mov r10, rdx
not r11d
mov r9, rcx
mov eax, r11d
test rdx, rdx
je 0x14000355d
lea rbx, [0x140037b40]
movzx r8d, byte [r9]
lea r9, [r9 + 1]
dec r10
cmp r8b, 0x23
jne 0x140003544
cmp r10, 2
jb 0x140003544
cmp byte [r9], r8b
jne 0x140003544
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
xor rdx, r8
shr eax, 8
xor eax, dword [rbx + rdx*4]
test r10, r10
jne 0x140003520
not eax
mov rbx, qword [rsp + 8]
ret
movzx r8d, byte [rcx]
inc r9
test r8b, r8b
je 0x14000359f
lea rbx, [0x140037b40]
cmp r8b, 0x23
jne 0x140003583
cmp byte [r9], r8b
jne 0x140003583
cmp byte [r9 + 1], r8b
cmove eax, r11d
movzx edx, al
movzx ecx, r8b
movzx r8d, byte [r9]
xor rdx, rcx
shr eax, 8
inc r9
xor eax, dword [rbx + rdx*4]
test r8b, r8b
jne 0x140003570
mov rbx, qword [rsp + 8]
not eax
ret
Function at 0x1400036e0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push r14
sub rsp, 0x20
mov r14, r8
test r8, r8
je 0x1400036fa
mov qword [r8], 0
lea rdx, [0x140037924]
call fcn.1400035b0
mov rbx, rax
test rax, rax
jne 0x14000371a
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
mov qword [rsp + 0x30], rsi
mov rcx, rbx
mov qword [rsp + 0x38], rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
mov esi, eax
cmp eax, 0xffffffff
je 0x140003805
xor edx, edx
mov rcx, rbx
lea r8d, [rdx + 2]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x140003805
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
movsxd rdi, eax
cmp edi, 0xffffffff
je 0x140003805
xor r8d, r8d
mov edx, esi
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
jne 0x140003805
cmp rdi, 0xffffffffffffffff
je 0x140003805
mov rax, qword [0x1400439d0]
test rax, rax
je 0x140003796
inc dword [rax + 0x3b4]
mov rdx, qword [0x1400439c0]
mov rcx, rdi
call sub.api_ms_win_crt_heap_l1_1_0.dll_malloc
mov rsi, rax
test rax, rax
je 0x140003805
mov r9, rbx
mov r8, rdi
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
mov rcx, rbx
cmp rax, rdi
je 0x1400037f2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1400439d0]
test rax, rax
je 0x1400037e1
dec dword [rax + 0x3b4]
mov rdx, qword [0x1400439c0]
mov rcx, rsi
call sub.api_ms_win_crt_heap_l1_1_0.dll_free
jmp 0x14000380e
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x140003800
mov qword [r14], rdi
mov rax, rsi
jmp 0x140003810
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r14
ret
Function at 0x14000f9b0
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rax, qword [0x140043008]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rbx, qword [0x1400439d0]
mov edi, edx
cmp byte [rbx + 0x1f6d], 0
jne 0x14000fa10
cmp byte [rbx + 0x1f6e], 0
jne 0x14000fa10
mov r9d, dword [rbx + 0x3018]
lea r8, str.Tooltip__02d
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.1400033f0
test dil, 1
je 0x14000fb3d
jmp 0x14000fa9c
movss xmm1, dword [rbx + 0x1614]
lea r8, str.Tooltip__02d
mov r9d, dword [rbx + 0x3018]
lea rcx, [rsp + 0x20]
movaps xmm0, xmm1
mov edx, 0x10
mulss xmm0, dword [0x14003c144]
mulss xmm1, dword [0x14003c12c]
addss xmm0, dword [rbx + 0x128]
addss xmm1, dword [rbx + 0x12c]
mov qword [rbx + 0x1ce8], 0
mov dword [rbx + 0x1cd4], 1
movss dword [rbx + 0x1ce0], xmm0
movss dword [rbx + 0x1ce4], xmm1
movss xmm0, dword [rbx + 0x1690]
mulss xmm0, dword [0x14003c0b4]
or dword [rbx + 0x1cd0], 0x41
movss dword [rbx + 0x1d30], xmm0
call fcn.1400033f0
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x14000faf0
lea r11, [0x140037b40]
nop dword [rax]
cmp r9b, 0x23
jne 0x14000fad3
cmp byte [r8], r9b
jne 0x14000fad3
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x14000fac0
not ecx
call fcn.140009910
test rax, rax
je 0x14000fb3d
cmp byte [rax + 0x8e], 0
je 0x14000fb3d
mov byte [rax + 0x95], 1
lea r8, str.Tooltip__02d
mov dword [rax + 0x4c], 0
lea rcx, [rsp + 0x20]
mov byte [rax + 0xb0], 1
mov edx, 0x10
inc dword [rbx + 0x3018]
mov r9d, dword [rbx + 0x3018]
call fcn.1400033f0
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x20c0347
call fcn.14000c070
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140035030
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop rdi
ret

Function at 0x140013e70
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x30b8], 0
lea rbx, [rcx + 0x30c0]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
je 0x140013f17
mov r9d, dword [rbx + 4]
mov qword [rsp + 0x30], r14
xor r14d, r14d
test r9d, r9d
jns 0x140013eca
mov eax, r9d
mov rcx, rbx
cdq
sub eax, edx
mov edx, r14d
sar eax, 1
add eax, r9d
test eax, eax
cmovg edx, eax
call fcn.140015c20
mov r8, rsi
mov dword [rbx], r14d
mov rdx, rbp
mov rcx, rbx
call fcn.140003c20
mov eax, dword [rbx]
mov edx, 1
mov r9, qword [rdi + 0x30b8]
test eax, eax
lea ecx, [rax - 1]
mov rax, qword [rdi + 0x30c8]
cmove ecx, r14d
test rax, rax
movsxd r8, ecx
lea rcx, [0x1400439c8]
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r14, qword [rsp + 0x30]
jmp 0x140013f1f
mov rcx, rbx
call fcn.140003c20
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x140027510
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x140043008]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rcx, qword [0x140043a40]
lea rdx, [rsp + 0x28]
mov rdi, qword [0x1400439d0]
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x28], xmm0
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rsp + 0x30]
lea rcx, [rsp + 0x40]
sub eax, dword [rsp + 0x28]
mov qword [rsp + 0x40], 0
movd xmm1, eax
mov eax, dword [rsp + 0x34]
sub eax, dword [rsp + 0x2c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x10], xmm1
movss dword [rdi + 0x14], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rsp + 0x40]
xorps xmm1, xmm1
mov rax, rcx
xorps xmm0, xmm0
sub rax, qword [0x140043a48]
cvtsi2ss xmm0, qword [0x140043a50]
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
mov qword [0x140043a48], rcx
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x10
and al, 1
mov byte [rdi + 0x140], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x12
and al, 1
mov byte [rdi + 0x141], al
call qword [sym.imp.USER32.dll_GetKeyState]
mov rbx, qword [0x1400439d0]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x143], 0
mov byte [rdi + 0x142], al
cmp byte [rbx + 0x39b], 0
je 0x14002764f
cvttss2si eax, dword [rbx + 0x128]
mov rcx, qword [0x140043a40]
lea rdx, [rsp + 0x38]
mov dword [rsp + 0x38], eax
cvttss2si eax, dword [rbx + 0x12c]
mov dword [rsp + 0x3c], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
test eax, eax
je 0x14002764f
mov edx, dword [rsp + 0x3c]
mov ecx, dword [rsp + 0x38]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rbx + 0x128], 0xff7fffff
mov dword [rbx + 0x12c], 0xff7fffff
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x1400276ce
mov rdx, qword [0x140043a40]
cmp rax, rdx
je 0x140027687
mov rcx, rax
call qword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x1400276ce
lea rcx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x1400276ce
mov rcx, qword [0x140043a40]
lea rdx, [rsp + 0x20]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x1400276ce
movd xmm0, dword [rsp + 0x20]
movd xmm1, dword [rsp + 0x24]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx + 0x128], xmm0
movss dword [rbx + 0x12c], xmm1
cmp byte [rdi + 0xc8], 0
je 0x1400276de
mov eax, 0xffffffff
jmp 0x1400276eb
mov rax, qword [0x1400439d0]
mov eax, dword [rax + 0x1f68]
cmp dword [0x140043264], eax
je 0x1400276fe
mov dword [0x140043264], eax
call fcn.1400270c0
call fcn.140027240
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.140035030
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x140033ab0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x140043008]
xor rax, rsp
mov qword [rsp + 0x58], rax
movzx esi, r9b
mov ebp, r8d
mov r15, rdx
mov qword [rsp + 0x20], rdx
mov r14, qword [rsp + 0xb0]
mov qword [rsp + 0x50], r14
xor r12d, r12d
mov edi, r12d
mov dword [rsp + 0x28], r12d
mov ebx, 1
mov ecx, ebx
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x140033ba9
cmp ebx, 0xc
je 0x140033ba9
mov ebp, ebx
cmp ebx, 0x1b
cmove ebp, r12d
test ebp, ebp
jne 0x140033b45
lea r8d, [rbp + 9]
lea rdx, str.Not_Bound
mov rcx, r14
call fcn.1400012b0
jmp 0x140033b60
movsxd r8, ebx
lea rdx, [rsp + 0x30]
call fcn.140032ec0
or edi, 1
mov rdx, rax
mov rcx, r14
call fcn.140034130
test dil, 1
je 0x140033ba6
and edi, 0xfffffffe
mov rdx, qword [rsp + 0x48]
cmp rdx, 0x10
jb 0x140033ba6
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140033ba1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140033c5a
call fcn.1400352e4
xor sil, sil
inc ebx
cmp ebx, 0x100
jl 0x140033b07
mov qword [rsp + 0x20], 1
lea rcx, [rsp + 0x20]
call fcn.140001b80
test sil, sil
jne 0x140033b02
mov rdx, r14
mov rcx, r15
call fcn.140034200
mov byte [r15 + 0x20], sil
mov dword [r15 + 0x28], ebp
mov rdx, qword [r14 + 0x18]
cmp rdx, 0x10
jb 0x140033c1c
inc rdx
mov rcx, qword [r14]
cmp rdx, 0x1000
jb 0x140033c17
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140033c61
mov rcx, r8
call fcn.1400352e4
mov qword [r14 + 0x10], r12
mov qword [r14 + 0x18], 0xf
mov byte [r14], 0
mov rax, r15
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140035030
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x140034980
Capabilities:
Hash data using fnv

Disassembly:
sub rsp, 0x28
mov rcx, qword [0x140044e30]
xorps xmm0, xmm0
add rcx, 1
js 0x14003499b
cvtsi2ss xmm0, rcx
jmp 0x1400349b0
mov rax, rcx
and ecx, 1
shr rax, 1
or rax, rcx
cvtsi2ss xmm0, rax
addss xmm0, xmm0
divss xmm0, dword [0x140044e20]
call sub.api_ms_win_crt_math_l1_1_0.dll_ceilf
movss xmm1, dword [0x14003c1bc]
xor ecx, ecx
comiss xmm0, xmm1
jb 0x1400349e2
subss xmm0, xmm1
comiss xmm0, xmm1
jae 0x1400349e2
movabs rax, 0x8000000000000000
mov rcx, rax
mov rdx, qword [0x140044e58]
cvttss2si rax, xmm0
add rax, rcx
mov ecx, 8
cmp rax, rcx
cmova rcx, rax
cmp rdx, rcx
jae 0x140034a1b
cmp rdx, 0x200
jae 0x140034a18
lea rdx, [rdx*8]
cmp rdx, rcx
jae 0x140034a1b
mov rdx, rcx
add rsp, 0x28
jmp 0x140034a50
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rcx, rax
mov eax, edi
shl rax, cl
cmp rdx, rax
jbe 0x140034a81
lea rcx, str.invalid_hash_bucket_count
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_]
int3
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x140044e28]
or rax, rdi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x140044e38]
lea rdx, [rdi + rdi]
call fcn.1400342e0
mov rax, qword [0x140044e28]
lea r9, [rdi - 1]
mov qword [0x140044e50], r9
mov qword [0x140044e58], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x140034bf4
mov qword [rsp + 0x40], rsi
movabs rdi, 0x100000001b3
movabs rsi, 0xcbf29ce484222325
movzx edx, byte [rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rsi
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rdi
xor r11, rdx
imul r11, rdi
and r11, r9
shl r11, 4
add r11, qword [0x140044e38]
mov r9, qword [r11]
cmp r9, rbx
jne 0x140034b40
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x140034bb5
mov rdx, qword [r11 + 8]
mov r8d, dword [rax + 0x10]
cmp r8d, dword [rdx + 0x10]
jne 0x140034b7d
mov r10, qword [rdx]
cmp r10, rax
je 0x140034b77
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [r11 + 8], rax
jmp 0x140034bb5
cmp r9, rdx
je 0x140034b91
mov rdx, qword [rdx + 8]
cmp r8d, dword [rdx + 0x10]
je 0x140034bc9
cmp r9, rdx
jne 0x140034b82
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
je 0x140034bef
mov r9, qword [0x140044e50]
jmp 0x140034af1
mov r10, qword [rdx]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x140034bb5
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret