joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400c9580
Capabilities:
Authenticate hmac
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rdi
push r14
sub rsp, 0x20
mov eax, dword [rcx + 0x18]
mov rbx, rcx
mov ebp, r8d
mov r14, rdx
lea ecx, [rax + rax]
mov eax, dword [rbx + 0x20]
add rax, 0x18
add rcx, rax
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdi, rax
test rax, rax
jne 0x1400c95c2
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rbp
ret
lea rcx, [rax + 0x18]
mov qword [rax], rbx
mov qword [rax + 8], rcx
mov eax, dword [rbx + 0x18]
add rax, rcx
mov qword [rsp + 0x48], rsi
mov qword [rdi + 0x10], rax
cmp ebp, dword [rbx + 0x1c]
jbe 0x1400c9609
call qword [rbx]
mov rcx, qword [rdi + 8]
mov r8d, ebp
mov rdx, r14
call qword [rbx + reloc.WS2_32.dll_htonl]
mov r14d, dword [rbx + 0x18]
add r14, qword [rdi + 0x10]
mov rdx, qword [rdi + 8]
mov rcx, r14
call qword [rbx + reloc.WS2_32.dll_recv]
mov rcx, qword [rdi + 8]
mov ebp, dword [rbx + 0x20]
call qword [rbx]
mov rcx, qword [rdi + 0x10]
call qword [rbx]
xor esi, esi
test rbp, rbp
je 0x1400c9662
mov rsi, rbp
nop dword [rax + rax]
movzx eax, byte [r14]
lea rdx, [rsp + 0x40]
xor al, 0x36
mov r8d, 1
mov byte [rsp + 0x40], al
mov rcx, qword [rdi + 8]
call qword [rbx + reloc.WS2_32.dll_htonl]
movzx eax, byte [r14]
lea rdx, [rsp + 0x40]
xor al, 0x5c
lea r14, [r14 + 1]
mov byte [rsp + 0x40], al
mov r8d, 1
mov rcx, qword [rdi + 0x10]
call qword [rbx + reloc.WS2_32.dll_htonl]
sub rbp, 1
jne 0x1400c9620
mov eax, dword [rbx + 0x1c]
cmp rsi, rax
jae 0x1400c96a3
nop word [rax + rax]
mov rcx, qword [rdi + 8]
lea rdx, [0x1400dc362]
mov r8d, 1
call qword [rbx + reloc.WS2_32.dll_htonl]
mov rcx, qword [rdi + 0x10]
lea rdx, [0x1400dc363]
mov r8d, 1
call qword [rbx + reloc.WS2_32.dll_htonl]
mov eax, dword [rbx + 0x1c]
inc rsi
cmp rsi, rax
jb 0x1400c9670
mov rsi, qword [rsp + 0x48]
mov rax, rdi
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rbp
ret

Function at 0x1400ca5dc
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400ca626
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400ca626
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400ca626
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400ca626
cmp dword [rcx + 0x84], 0xe
jbe 0x1400ca626
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1400ca628
xor al, al
add rsp, 0x28
ret
Function at 0x140001001
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [0x14006d8d0]
mov rcx, qword [0x14006d880]
xor edx, edx
mov dword [rax], 1
mov rax, qword [0x14006d8e0]
cmp word [rcx], 0x5a4d
mov dword [rax], 1
mov rax, qword [0x14006d8f0]
mov dword [rax], 1
jne 0x140001083
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
cmp dword [rax], 0x4550
jne 0x140001083
mov ecx, dword [rax + 0x18]
cmp cx, 0x10b
je 0x14000105e
cmp cx, 0x20b
je 0x14000106d
jmp 0x140001083
cmp dword [rax + 0x74], 0xe
jbe 0x140001083
cmp dword [rax + 0xe8], 0
jmp 0x14000107d
cmp dword [rax + 0x84], 0xe
jbe 0x140001083
cmp dword [rax + 0xf8], 0
setne dl
movzx edx, dl
mov rax, qword [0x14006d8c0]
mov dword [0x14007500c], edx
mov ecx, 2
cmp dword [rax], 0
jne 0x14000109f
mov ecx, 1
call sym.__set_app_type
call sym.__p__fmode
mov rdx, qword [0x14006d9b0]
mov edx, dword [rdx]
mov dword [rax], edx
call sym.__p__commode
mov rdx, qword [0x14006d990]
mov edx, dword [rdx]
mov dword [rax], edx
call sym._setargv
mov rax, qword [0x14006d810]
cmp dword [rax], 1
jne 0x1400010e1
mov rcx, qword [sym._matherr]
call sym.__mingw_setusermatherr
xor eax, eax
add rsp, 0x28
ret

Function at 0x14001c790
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov rcx, qword [0x14006d9c0]
mov eax, dword [rcx]
test eax, eax
je 0x14001c7b1
add rcx, 0x161c
add rsp, 0x28
jmp sym._glfwPlatformGetTls
xor edx, edx
mov ecx, 0x10001
call sym._glfwInputError
xor eax, eax
add rsp, 0x28
ret
Function at 0x14001ec40
Capabilities:
Check for unmoving mouse cursor

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rax, qword [0x14006d9c0]
mov eax, dword [rax]
mov rbx, rcx
mov esi, r8d
test eax, eax
je 0x14001eda0
cmp edx, 0x33001
je 0x14001ecb0
cmp edx, 0x33002
je 0x14001edb2
cmp edx, 0x33003
je 0x14001ecf4
cmp edx, 0x33004
je 0x14001edf0
cmp edx, 0x33005
je 0x14001edfd
mov r8d, edx
lea rdx, [0x14005152a]
mov ecx, 0x10003
add rsp, 0x28
pop rbx
pop rsi
jmp sym._glfwInputError
lea eax, [r8 - 0x34001]
lea rdx, str.Invalid_cursor_mode_0x_08X
cmp eax, 2
ja 0x14001ec9b
cmp dword [rcx + 0x7c], r8d
je 0x14001ed93
mov dword [rbx + 0x7c], r8d
lea rdx, [rcx + 0x1e8]
lea r8, [rcx + 0x1f0]
call sym._glfwPlatformGetCursorPos
mov edx, esi
mov rcx, rbx
add rsp, 0x28
pop rbx
pop rsi
jmp sym._glfwPlatformSetCursorMode
xor eax, eax
test r8d, r8d
setne al
cmp dword [rcx + 0x74], eax
je 0x14001ed93
test r8d, r8d
jne 0x14001ed90
cmp byte [rcx + 0x80], 3
jne 0x14001ed1e
mov byte [rcx + 0x80], 0
cmp byte [rbx + 0x81], 3
jne 0x14001ed2e
mov byte [rbx + 0x81], 0
cmp byte [rbx + 0x82], 3
jne 0x14001ed3e
mov byte [rbx + 0x82], 0
cmp byte [rbx + 0x83], 3
jne 0x14001ed4e
mov byte [rbx + 0x83], 0
cmp byte [rbx + 0x84], 3
jne 0x14001ed5e
mov byte [rbx + 0x84], 0
cmp byte [rbx + 0x85], 3
jne 0x14001ed6e
mov byte [rbx + 0x85], 0
cmp byte [rbx + 0x86], 3
jne 0x14001ed7e
mov byte [rbx + 0x86], 0
cmp byte [rbx + 0x87], 3
jne 0x14001ed90
mov byte [rbx + 0x87], 0
nop
mov dword [rbx + 0x74], eax
add rsp, 0x28
pop rbx
pop rsi
ret
xor edx, edx
mov ecx, 0x10001
add rsp, 0x28
pop rbx
pop rsi
jmp sym._glfwInputError
xor ecx, ecx
test r8d, r8d
setne cl
cmp dword [rbx + 0x70], ecx
je 0x14001ed93
test r8d, r8d
jne 0x14001ede3
lea rax, [rbx + 0x88]
lea rdx, [rbx + 0x1e5]
cmp byte [rax], 3
jne 0x14001edda
mov byte [rax], 0
add rax, 1
cmp rax, rdx
jne 0x14001edd2
mov dword [rbx + 0x70], ecx
add rsp, 0x28
pop rbx
pop rsi
ret
xor eax, eax
test r8d, r8d
setne al
mov dword [rcx + 0x78], eax
jmp 0x14001ed93
call sym._glfwPlatformRawMouseMotionSupported
test eax, eax
je 0x14001ee2d
xor edx, edx
test esi, esi
setne dl
cmp dword [rbx + 0x1f8], edx
je 0x14001ed93
mov rcx, rbx
mov dword [rbx + 0x1f8], edx
add rsp, 0x28
pop rbx
pop rsi
jmp sym._glfwPlatformSetRawMouseMotion
lea rdx, str.Raw_mouse_motion_is_not_supported_on_this_system
mov ecx, 0x10008
jmp 0x14001eda7

Function at 0x1400206c0
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
mov rax, qword [0x14006d9c0]
mov eax, dword [rax]
test eax, eax
je 0x1400206d5
mov rcx, rdx
jmp sym._glfwPlatformSetClipboardString
xor edx, edx
mov ecx, 0x10001
jmp sym._glfwInputError

Function at 0x1400206f0
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
sub rsp, 0x28
mov rax, qword [0x14006d9c0]
mov eax, dword [rax]
test eax, eax
je 0x140020710
add rsp, 0x28
jmp sym._glfwPlatformGetClipboardString
xor edx, edx
mov ecx, 0x10001
call sym._glfwInputError
xor eax, eax
add rsp, 0x28
ret
Function at 0x1400241b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, qword [0x14006d9c0]
mov eax, dword [rax]
test eax, eax
je 0x1400241c2
jmp sym._glfwPlatformPollEvents
xor edx, edx
mov ecx, 0x10001
jmp sym._glfwInputError

Function at 0x1400241d0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, qword [0x14006d9c0]
mov eax, dword [rax]
test eax, eax
je 0x1400241e2
jmp sym._glfwPlatformWaitEvents
xor edx, edx
mov ecx, 0x10001
jmp sym._glfwInputError

Function at 0x1400241f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, qword [0x14006d9c0]
mov eax, dword [rax]
test eax, eax
je 0x140024240
ucomisd xmm0, xmm0
jp 0x140024220
jne 0x140024220
pxor xmm1, xmm1
comisd xmm1, xmm0
ja 0x140024220
comisd xmm0, xmmword [0x14006a498]
ja 0x140024220
jmp sym._glfwPlatformWaitEventsTimeout
movapd xmm2, xmm0
movq r8, xmm0
mov ecx, 0x10004
lea rdx, str.Invalid_time__f
jmp sym._glfwInputError
xor edx, edx
mov ecx, 0x10001
jmp sym._glfwInputError

Function at 0x140024500
Capabilities:
Log keystrokes

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1b0
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x190], xmm7
movaps xmmword [rsp + 0x1a0], xmm8
mov r13, qword [0x14006d9c0]
xor eax, eax
mov ecx, 0x20
mov r8d, 0x6d1
xor edx, edx
xor ebx, ebx
lea r12, [rsp + 0x80]
mov rdi, r12
rep stosq qword [rdi], rax
lea rcx, [r13 + 0x1d92]
call sym.memset
movdqa xmm7, xmmword [0x14006afe0]
movdqa xmm8, xmmword [str._abcdefghino]
movdqa xmm6, xmmword [0x14006aff0]
jmp 0x1400245d6
test eax, eax
jle 0x1400245c5
lea rax, [rbx + rbx*4]
mov r9d, 1
mov r8, rdi
mov qword [rsp + 0x38], 0
lea rax, [r13 + rax + 0x1e32]
mov dword [rsp + 0x28], 5
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
add rbx, 1
cmp rbx, 0x13d
je 0x14002465a
movzx edx, word [r13 + rbx*2 + 0x1b18]
cmp dx, 0xffff
je 0x1400245c5
lea eax, [rbx - 0x120]
movsx esi, dx
cmp eax, 0xe
jbe 0x140024685
lea rdi, [rsp + 0x40]
mov edx, 1
mov ecx, esi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov ebp, eax
mov dword [rsp + 0x28], 0
mov r9, rdi
mov r8, r12
mov edx, esi
mov dword [rsp + 0x20], 0x10
mov ecx, ebp
mov r14, qword [sym.imp.USER32.dll_ToUnicode]
call r14
cmp eax, 0xffffffff
jne 0x140024580
mov dword [rsp + 0x28], 0
mov r9, rdi
mov r8, r12
mov edx, esi
mov dword [rsp + 0x20], 0x10
mov ecx, ebp
call r14
jmp 0x140024580
movaps xmm6, xmmword [rsp + 0x180]
movaps xmm7, xmmword [rsp + 0x190]
movaps xmm8, xmmword [rsp + 0x1a0]
add rsp, 0x1b0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
movabs rax, 0x6d0000006a
movaps xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x50], xmm7
lea rdi, [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm6
mov qword [rsp + 0x70], rax
mov dword [rsp + 0x78], 0x6b
mov ebp, dword [rsp + rbx*4 - 0x440]
jmp 0x14002460b
Function at 0x140027360
Capabilities:
Allocate thread local storage

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
mov dword [rbx + 4], eax
je 0x140027390
mov eax, 1
mov dword [rbx], 1
add rsp, 0x20
pop rbx
ret
lea rdx, str.Win32:_Failed_to_allocate_TLS_index
mov ecx, 0x10008
call sym._glfwInputErrorWin32
xor eax, eax
add rsp, 0x20
pop rbx
ret

Function at 0x140027490
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x10
call rsi
mov ecx, 0x11
movsx ebx, ax
call rsi
mov edi, ebx
mov ecx, 0x12
shr edi, 0x1f
mov ebx, edi
or ebx, 2
test ax, ax
cmovns ebx, edi
call rsi
mov ecx, 0x5b
mov edx, ebx
or edx, 4
test ax, ax
cmovs ebx, edx
call rsi
mov ecx, 0x5c
mov edi, eax
call rsi
mov edx, ebx
mov ecx, 0x14
or edx, 8
or di, ax
cmovs ebx, edx
call rsi
mov ecx, 0x90
mov edx, ebx
or edx, 0x10
test al, 1
cmovne ebx, edx
call rsi
mov edx, ebx
or edx, 0x20
test al, 1
cmovne ebx, edx
mov eax, ebx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

Function at 0x140027a80
Capabilities:
Register raw input devices

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x30
mov eax, dword [rcx + 0x1f8]
lea rdi, [rsp + 0x20]
test eax, eax
mov rbx, rcx
jne 0x140027b41
mov rsi, qword [0x14006d9c0]
xor ecx, ecx
mov qword [rsi + 0x2478], 0
call qword [sym.imp.USER32.dll_ClipCursor]
mov rcx, qword [rbx + 0x350]
mov qword [rsi + 0x2480], 0
cvttsd2si edx, qword [rsi + 0x2468]
cvttsd2si eax, qword [rsi + 0x2470]
mov dword [rsp + 0x20], edx
mov dword [rbx + 0x388], edx
mov rdx, rdi
mov dword [rsp + 0x24], eax
mov dword [rbx + 0x38c], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.USER32.dll_SetCursorPos]
cmp dword [rbx + 0x7c], 0x34001
jne 0x140027b30
mov rax, qword [rbx + 0x50]
test rax, rax
je 0x140027b90
mov rcx, qword [rax + 8]
call qword [sym.imp.USER32.dll_SetCursor]
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
xor ecx, ecx
call qword [sym.imp.USER32.dll_SetCursor]
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
mov r8d, 0x10
mov edx, 1
mov rcx, rdi
mov qword [rsp + 0x28], 0
movabs rax, 0x100020001
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x140027a9d
lea rdx, str.Win32:_Failed_to_remove_raw_input_device
mov ecx, 0x10008
call sym._glfwInputErrorWin32
jmp 0x140027a9d
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
Function at 0x140027bb0
Capabilities:
Register raw input devices

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rdi, qword [0x14006d9c0]
lea rsi, [rsp + 0x20]
mov qword [rdi + 0x2478], rcx
mov rbx, rcx
mov rcx, rsi
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
jne 0x140027c70
cmp dword [rbx + 0x7c], 0x34001
jne 0x140027c60
mov rax, qword [rbx + 0x50]
test rax, rax
je 0x140027d00
mov rcx, qword [rax + 8]
call qword [sym.imp.USER32.dll_SetCursor]
mov rcx, rbx
call sym._glfwCenterCursorInContentArea
mov rcx, qword [rbx + 0x350]
mov rdx, rsi
call qword [sym.imp.USER32.dll_GetClientRect]
mov rcx, qword [rbx + 0x350]
mov rdx, rsi
mov rbp, qword [sym.imp.USER32.dll_ClientToScreen]
call rbp
lea rdx, [rsi + 8]
mov rcx, qword [rbx + 0x350]
call rbp
mov rcx, rsi
call qword [sym.imp.USER32.dll_ClipCursor]
mov eax, dword [rbx + 0x1f8]
mov qword [rdi + 0x2480], rbx
test eax, eax
jne 0x140027cb0
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
xor ecx, ecx
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x140027bff
mov rcx, qword [rbx + 0x350]
mov rdx, rsi
call qword [sym.imp.USER32.dll_ScreenToClient]
pxor xmm1, xmm1
pxor xmm0, xmm0
cvtsi2sd xmm1, dword [rsp + 0x20]
cvtsi2sd xmm0, dword [rsp + 0x24]
movsd qword [rdi + 0x2468], xmm1
movsd qword [rdi + 0x2470], xmm0
jmp 0x140027bdf
mov rax, qword [rbx + 0x350]
mov r8d, 0x10
mov edx, 1
mov rcx, rsi
mov qword [rsp + 0x20], 0x20001
mov qword [rsp + 0x28], rax
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x140027c51
lea rdx, str.Win32:_Failed_to_register_raw_input_device
mov ecx, 0x10008
call sym._glfwInputErrorWin32
nop
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
xor ecx, ecx
mov edx, 0x7f00
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
jmp 0x140027bff
Function at 0x14002b320
Capabilities:
Register raw input devices

Disassembly:
sub rsp, 0x38
mov rax, qword [0x14006d9c0]
cmp qword [rax + 0x2478], rcx
je 0x14002b340
add rsp, 0x38
ret
test edx, edx
je 0x14002b390
mov rax, qword [rcx + 0x350]
mov r8d, 0x10
mov edx, 1
mov qword [rsp + 0x20], 0x20001
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x28], rax
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14002b334
lea rdx, str.Win32:_Failed_to_register_raw_input_device
mov ecx, 0x10008
call sym._glfwInputErrorWin32
jmp 0x14002b334
lea rcx, [rsp + 0x20]
mov r8d, 0x10
mov edx, 1
mov qword [rsp + 0x28], 0
movabs rax, 0x100020001
mov qword [rsp + 0x20], rax
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14002b334
lea rdx, str.Win32:_Failed_to_remove_raw_input_device
mov ecx, 0x10008
call sym._glfwInputErrorWin32
jmp 0x14002b334
Function at 0x14002b3f0
Capabilities:
Log keystrokes via polling

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov r13, qword [0x14006d9c0]
mov rdi, qword [sym.imp.USER32.dll_PeekMessageW]
mov r12, qword [sym.imp.USER32.dll_TranslateMessage]
mov rbp, qword [sym.imp.USER32.dll_DispatchMessageW]
lea rsi, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 1
mov rcx, rsi
call rdi
test eax, eax
je 0x14002b472
cmp dword [rsp + 0x58], 0x12
je 0x14002b451
mov rcx, rsi
call r12
mov rcx, rsi
call rbp
jmp 0x14002b424
mov rbx, qword [r13 + 0x3f0]
test rbx, rbx
je 0x14002b424
nop dword [rax]
mov rcx, rbx
call sym._glfwInputWindowCloseRequest
mov rbx, qword [rbx]
test rbx, rbx
jne 0x14002b460
jmp 0x14002b424
call qword [sym.imp.USER32.dll_GetActiveWindow]
test rax, rax
je 0x14002b507
lea rdx, str.GLFW
mov rcx, rax
call qword [sym.imp.USER32.dll_GetPropW]
test rax, rax
mov rbp, rax
je 0x14002b507
movdqa xmm0, xmmword [0x14006b9f0]
lea rbx, [rsp + 0x30]
mov r12, qword [sym.imp.USER32.dll_GetKeyState]
lea r14, [rbx + 0x20]
movaps xmmword [rsp + 0x30], xmm0
movdqa xmm0, xmmword [0x14006ba00]
movaps xmmword [rsp + 0x40], xmm0
movsxd rsi, dword [rbx + 4]
mov ecx, dword [rbx]
movzx r15d, word [r13 + rsi*2 + 0x1ad8]
call r12
test ax, ax
js 0x14002b4fe
cmp byte [rbp + rsi + 0x88], 1
jne 0x14002b4fe
call sym.getKeyMods
xor r9d, r9d
movsx r8d, r15w
mov edx, esi
mov dword [rsp + 0x20], eax
mov rcx, rbp
call sym._glfwInputKey
add rbx, 8
cmp r14, rbx
jne 0x14002b4c3
mov rbx, qword [r13 + 0x2478]
test rbx, rbx
je 0x14002b585
lea rsi, [rsp + 0x30]
mov rcx, qword [rbx + 0x350]
mov rdx, rsi
call qword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [rsp + 0x38]
mov ecx, dword [rsp + 0x3c]
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, ecx
shr edx, 0x1f
sar eax, 1
add edx, ecx
sar edx, 1
cmp dword [rbx + 0x388], eax
jne 0x14002b552
cmp dword [rbx + 0x38c], edx
je 0x14002b585
mov dword [rsp + 0x34], edx
mov rcx, qword [rbx + 0x350]
mov dword [rsp + 0x30], eax
mov dword [rbx + 0x38c], edx
mov rdx, rsi
mov dword [rbx + 0x388], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rsp + 0x34]
mov ecx, dword [rsp + 0x30]
call qword [sym.imp.USER32.dll_SetCursorPos]
nop
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret

Function at 0x14002b5a0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x28
call qword [sym.imp.USER32.dll_WaitMessage]
nop
add rsp, 0x28
jmp sym._glfwPlatformPollEvents

Function at 0x14002b5c0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rsp, 0x38
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mulsd xmm0, qword [0x14006ba10]
mov dword [rsp + 0x20], 0x4ff
cvttsd2si r9, xmm0
call qword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
nop
add rsp, 0x38
jmp sym._glfwPlatformPollEvents
Function at 0x14002bc40
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
xor edx, edx
mov r9d, 0xffffffff
mov rsi, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov r8, rcx
mov rdi, rcx
mov dword [rsp + 0x28], 0
mov ecx, 0xfde9
mov qword [rsp + 0x20], 0
call rsi
test eax, eax
mov ebx, eax
jne 0x14002bc84
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
ret
movsxd rdx, eax
mov ecx, 2
add rdx, rdx
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
test rax, rax
mov rbp, rax
je 0x14002bd43
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
lea rdx, str.Win32:_Failed_to_lock_global_handle
test rax, rax
je 0x14002bd27
xor edx, edx
mov r9d, 0xffffffff
mov r8, rdi
mov dword [rsp + 0x28], ebx
mov ecx, 0xfde9
mov qword [rsp + 0x20], rax
call rsi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
mov rax, qword [0x14006d9c0]
mov rcx, qword [rax + 0x16b8]
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14002bd20
call qword [sym.imp.USER32.dll_EmptyClipboard]
mov rdx, rbp
mov ecx, 0xd
call qword [sym.imp.USER32.dll_SetClipboardData]
nop
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp qword [sym.imp.USER32.dll_CloseClipboard]
lea rdx, str.Win32:_Failed_to_open_clipboard
mov ecx, 0x10008
call sym._glfwInputErrorWin32
mov rcx, rbp
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp qword [sym.imp.KERNEL32.dll_GlobalFree]
lea rdx, str.Win32:_Failed_to_allocate_global_handle_for_clipboard
mov ecx, 0x10008
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
jmp sym._glfwInputErrorWin32

Function at 0x14002bd60
Capabilities:
Open clipboard
Read clipboard data

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rbx, qword [0x14006d9c0]
mov rcx, qword [rbx + 0x16b8]
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x14002bde0
mov ecx, 0xd
call qword [sym.imp.USER32.dll_GetClipboardData]
test rax, rax
mov rsi, rax
je 0x14002be00
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
test rax, rax
mov rdi, rax
je 0x14002be20
mov rcx, qword [rbx + 0x16d0]
call sym.free
mov rcx, rdi
call sym._glfwCreateUTF8FromWideStringWin32
mov rcx, rsi
mov qword [rbx + 0x16d0], rax
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rax, qword [rbx + 0x16d0]
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
lea rdx, str.Win32:_Failed_to_open_clipboard
mov ecx, 0x10008
call sym._glfwInputErrorWin32
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
lea rdx, str.Win32:_Failed_to_convert_clipboard_to_string
mov ecx, 0x10009
call sym._glfwInputErrorWin32
call qword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x14002bdd4
lea rdx, str.Win32:_Failed_to_lock_global_handle
mov ecx, 0x10008
call sym._glfwInputErrorWin32
call qword [sym.imp.USER32.dll_CloseClipboard]
xor eax, eax
jmp 0x14002bdd4
Function at 0x14002c200
Capabilities:
Set thread local storage value

Disassembly:
push rsi
push rbx
sub rsp, 0x28
mov rsi, qword [0x14006d9c0]
mov rax, qword [rsi + 0x2588]
test rcx, rcx
mov rbx, rcx
je 0x14002c260
mov rdx, qword [rcx + 0x280]
mov rcx, qword [rcx + 0x278]
call rax
mov rdx, rbx
test eax, eax
jne 0x14002c246
lea rdx, str.WGL:_Failed_to_make_context_current
mov ecx, 0x10008
call sym._glfwInputErrorWin32
xor edx, edx
lea rcx, [rsi + 0x161c]
add rsp, 0x28
pop rbx
pop rsi
jmp sym._glfwPlatformSetTls
xor edx, edx
xor ecx, ecx
call rax
test eax, eax
jne 0x14002c244
lea rdx, str.WGL:_Failed_to_clear_current_context
jmp 0x14002c23a
Function at 0x14002f4c0
Capabilities:
Link many functions at runtime

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x40
mov rbx, qword [0x14006d9c0]
lea rcx, str.libOSMesa.dll
lea rax, str.OSMesa.dll
movq xmm0, rcx
movq xmm1, rax
punpcklqdq xmm0, xmm1
cmp qword [rbx + 0x26b0], 0
movaps xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], 0
je 0x14002f511
mov esi, 1
mov eax, esi
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret
lea rsi, [rsp + 0x20]
mov rdi, qword [sym.imp.KERNEL32.dll_LoadLibraryA]
jmp 0x14002f530
add rsi, 8
mov rcx, qword [rsi]
test rcx, rcx
je 0x14002f660
call rdi
test rax, rax
mov qword [rbx + 0x26b0], rax
je 0x14002f520
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, str.OSMesaCreateContextExt
mov rcx, rax
call rsi
mov rcx, qword [rbx + 0x26b0]
lea rdx, str.OSMesaCreateContextAttribs
mov qword [rbx + 0x26b8], rax
call rsi
mov rcx, qword [rbx + 0x26b0]
lea rdx, str.OSMesaDestroyContext
mov qword [rbx + 0x26c0], rax
call rsi
mov rcx, qword [rbx + 0x26b0]
lea rdx, str.OSMesaMakeCurrent
mov qword [rbx + 0x26c8], rax
call rsi
mov rcx, qword [rbx + 0x26b0]
lea rdx, str.OSMesaGetColorBuffer
mov qword [rbx + 0x26d0], rax
call rsi
mov rcx, qword [rbx + 0x26b0]
lea rdx, str.OSMesaGetDepthBuffer
mov qword [rbx + 0x26d8], rax
call rsi
mov rcx, qword [rbx + 0x26b0]
lea rdx, str.OSMesaGetProcAddress
mov qword [rbx + 0x26e0], rax
call rsi
cmp qword [rbx + 0x26b8], 0
mov qword [rbx + 0x26e8], rax
je 0x14002f620
cmp qword [rbx + 0x26c8], 0
je 0x14002f620
cmp qword [rbx + 0x26d0], 0
je 0x14002f620
cmp qword [rbx + 0x26d8], 0
je 0x14002f620
cmp qword [rbx + 0x26e0], 0
je 0x14002f620
test rax, rax
jne 0x14002f502
nop dword [rax]
lea rdx, str.OSMesa:_Failed_to_load_required_entry_points
mov ecx, 0x10008
xor esi, esi
call sym._glfwInputError
mov rcx, qword [rbx + 0x26b0]
test rcx, rcx
je 0x14002f507
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, esi
mov qword [rbx + 0x26b0], 0
add rsp, 0x40
pop rbx
pop rsi
pop rdi
ret
lea rdx, str.OSMesa:_Library_not_found
mov ecx, 0x10006
xor esi, esi
call sym._glfwInputError
jmp 0x14002f507