joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14003cdd0
Capabilities:
Log keystrokes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push r12
push r14
push r15
sub rsp, 0x1b0
mov rax, qword [0x140093880]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
xor edx, edx
lea rcx, [rsp + 0xa0]
mov r8d, 0x100
call sub.VCRUNTIME140.dll_memset
xor edx, edx
lea rcx, [0x1400a2242]
mov r8d, 0x6d1
call sub.VCRUNTIME140.dll_memset
lea r14, [rsp + 0x40]
mov qword [rsp + 0x1d0], rdi
sub r14, 0x480
lea rbp, [0x1400a1fc8]
xor r12d, r12d
lea r15, [0x1400a22e2]
mov ebx, 0x20
movsx esi, word [rbp]
cmp esi, 0xffffffff
je 0x14003cf88
cmp ebx, 0x140
jb 0x14003ceef
cmp ebx, 0x14e
ja 0x14003ceef
mov dword [rsp + 0x40], 0x60
mov dword [rsp + 0x44], 0x61
mov dword [rsp + 0x48], 0x62
mov dword [rsp + 0x4c], 0x63
mov dword [rsp + 0x50], 0x64
mov dword [rsp + 0x54], 0x65
mov dword [rsp + 0x58], 0x66
mov dword [rsp + 0x5c], 0x67
mov dword [rsp + 0x60], 0x68
mov dword [rsp + 0x64], 0x69
mov dword [rsp + 0x68], 0x6e
mov dword [rsp + 0x6c], 0x6f
mov dword [rsp + 0x70], 0x6a
mov dword [rsp + 0x74], 0x6d
mov dword [rsp + 0x78], 0x6b
mov edi, dword [r14]
jmp 0x14003cefe
mov edx, 1
mov ecx, esi
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
mov edi, eax
mov dword [rsp + 0x28], r12d
lea r9, [rsp + 0x80]
lea r8, [rsp + 0xa0]
mov dword [rsp + 0x20], 0x10
mov edx, esi
mov ecx, edi
call qword [sym.imp.USER32.dll_ToUnicode]
cmp eax, 0xffffffff
jne 0x14003cf51
mov dword [rsp + 0x28], r12d
lea r9, [rsp + 0x80]
lea r8, [rsp + 0xa0]
mov dword [rsp + 0x20], 0x10
mov edx, esi
mov ecx, edi
call qword [sym.imp.USER32.dll_ToUnicode]
cmp eax, 1
jl 0x14003cf88
mov qword [rsp + 0x38], r12
lea r8, [rsp + 0x80]
mov qword [rsp + 0x30], r12
mov r9d, 1
mov dword [rsp + 0x28], 5
xor edx, edx
mov ecx, 0xfde9
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
inc ebx
add r15, 5
add r14, 4
add rbp, 2
cmp ebx, 0x15c
jle 0x14003ce51
mov rdi, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.1400451f0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret

Function at 0x14003d7b0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
xor r10d, r10d
mov edi, r8d
mov rbx, rdx
mov r11d, 0x7fffffff
test ecx, ecx
jle 0x14003d816
mov qword [rsp + 0x10], rsi
imul edi, r9d
mov r9, rdx
mov esi, ecx
nop word [rax + rax]
mov eax, dword [rbx + 4]
mov ecx, r11d
imul eax, dword [rbx]
lea rbx, [rbx + 0x10]
mov r8, r10
mov r10, r9
sub eax, edi
cdq
xor eax, edx
sub eax, edx
cmp eax, r11d
cmovl r11d, eax
cmp eax, ecx
cmovge r10, r8
add r9, 0x10
sub rsi, 1
jne 0x14003d7e0
mov rsi, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
mov rax, r10
pop rdi
ret
Function at 0x14003f620
Capabilities:
Register raw input devices

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
sub rsp, 0x30
mov rbx, rcx
mov qword [0x1400a2928], rcx
lea rcx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x14003f679
mov rcx, qword [rbx + 0x358]
lea rdx, [rsp + 0x40]
call qword [sym.imp.USER32.dll_ScreenToClient]
movd xmm0, dword [rsp + 0x40]
movd xmm1, dword [rsp + 0x44]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
movsd qword [0x1400a2918], xmm0
movsd qword [0x1400a2920], xmm1
mov eax, dword [rbx + 0x84]
cmp eax, 0x34001
je 0x14003f691
cmp eax, 0x34004
je 0x14003f691
xor ecx, ecx
jmp 0x14003f6b0
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x14003f6a0
mov rcx, qword [rcx + 8]
jmp 0x14003f6b0
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
call qword [sym.imp.USER32.dll_SetCursor]
lea r8, [rsp + 0x40]
mov rcx, rbx
lea rdx, [rsp + 0x48]
call qword [0x1400a0120]
movd xmm2, dword [rsp + 0x40]
mov rcx, rbx
movd xmm1, dword [rsp + 0x48]
cvtdq2pd xmm2, xmm2
cvtdq2pd xmm1, xmm1
mulsd xmm2, qword [0x1400505f0]
mulsd xmm1, qword [0x1400505f0]
call qword [0x1400a0028]
mov rcx, rbx
call fcn.14003d350
cmp dword [rbx + 0x200], 0
je 0x14003f745
mov rax, qword [rbx + 0x358]
lea rcx, [rsp + 0x20]
mov edx, 1
mov qword [rsp + 0x20], 0x20001
mov qword [rsp + 0x28], rax
lea r8d, [rdx + 0xf]
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14003f745
lea rdx, str.Win32:_Failed_to_register_raw_input_device
mov ecx, 0x10008
call fcn.1400396c0
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret

Function at 0x14003f750
Capabilities:
Register raw input devices

Disassembly:
sub rsp, 0x38
mov edx, 1
mov dword [rsp + 0x20], 0x20001
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x24], edx
mov qword [rsp + 0x28], 0
lea r8d, [rdx + 0xf]
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14003f792
lea rdx, str.Win32:_Failed_to_remove_raw_input_device
mov ecx, 0x10008
call fcn.1400396c0
add rsp, 0x38
ret
Function at 0x14003f7a0
Capabilities:
Register raw input devices

Disassembly:
push rbx
sub rsp, 0x30
cmp dword [rcx + 0x200], 0
mov rbx, rcx
je 0x14003f7f0
mov edx, 1
mov dword [rsp + 0x20], 0x20001
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x24], edx
mov qword [rsp + 0x28], 0
lea r8d, [rdx + 0xf]
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14003f7f0
lea rdx, str.Win32:_Failed_to_remove_raw_input_device
mov ecx, 0x10008
call fcn.1400396c0
xor ecx, ecx
mov qword [0x1400a2928], 0
call qword [sym.imp.USER32.dll_ClipCursor]
cvttsd2si ecx, qword [0x1400a2918]
mov qword [0x1400a2930], 0
lea rdx, [rsp + 0x40]
cvttsd2si eax, qword [0x1400a2920]
mov dword [rsp + 0x40], ecx
mov dword [rbx + 0x394], ecx
mov rcx, qword [rbx + 0x358]
mov dword [rsp + 0x44], eax
mov dword [rbx + 0x398], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x40]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov eax, dword [rbx + 0x84]
cmp eax, 0x34001
je 0x14003f874
cmp eax, 0x34004
je 0x14003f874
xor ecx, ecx
add rsp, 0x30
pop rbx
jmp qword [sym.imp.USER32.dll_SetCursor]
mov rcx, qword [rbx + 0x58]
test rcx, rcx
je 0x14003f88d
mov rcx, qword [rcx + 8]
add rsp, 0x30
pop rbx
jmp qword [sym.imp.USER32.dll_SetCursor]
mov edx, 0x7f00
xor ecx, ecx
call qword [sym.imp.USER32.dll_LoadCursorW]
mov rcx, rax
add rsp, 0x30
pop rbx
jmp qword [sym.imp.USER32.dll_SetCursor]

Function at 0x14003f8b0
Capabilities:
Register raw input devices

Disassembly:
sub rsp, 0x38
mov rax, qword [rcx + 0x358]
mov edx, 1
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], 0x20001
mov qword [rsp + 0x28], rax
lea r8d, [rdx + 0xf]
call qword [sym.imp.USER32.dll_RegisterRawInputDevices]
test eax, eax
jne 0x14003f8f2
lea rdx, str.Win32:_Failed_to_register_raw_input_device
mov ecx, 0x10008
call fcn.1400396c0
add rsp, 0x38
ret

Function at 0x14003fda0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetKeyState]
movzx ebx, ax
mov ecx, 0x11
shr ebx, 0xf
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, ebx
mov ecx, 0x12
or edi, 2
test ax, ax
cmovns edi, ebx
call qword [sym.imp.USER32.dll_GetKeyState]
mov esi, edi
mov ecx, 0x5c
or esi, 4
test ax, ax
cmovns esi, edi
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x5b
movzx ebx, ax
call qword [sym.imp.USER32.dll_GetKeyState]
mov edi, esi
mov ecx, 0x14
or edi, 8
or bx, ax
cmovns edi, esi
call qword [sym.imp.USER32.dll_GetKeyState]
mov ebx, edi
mov ecx, 0x90
or ebx, 0x10
test al, 1
cmove ebx, edi
call qword [sym.imp.USER32.dll_GetKeyState]
mov rsi, qword [rsp + 0x38]
mov ecx, ebx
or ecx, 0x20
test al, 1
cmove ecx, ebx
mov rbx, qword [rsp + 0x30]
mov eax, ecx
add rsp, 0x20
pop rdi
ret
Function at 0x1400401e0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
sub rsp, 0x28
cmp dword [0x14009ffe0], 0
jne 0x1400401fd
xor edx, edx
mov ecx, 0x10001
add rsp, 0x28
jmp fcn.140039200
xorps xmm0, xmm0
lea rcx, [0x1400a02b8]
movups xmmword [0x1400a0708], xmm0
xor eax, eax
mov dword [0x1400a0708], 0x30001
xor edx, edx
mov dword [0x1400a070c], 0x36001
mov r8d, 0x450
mov qword [0x1400a0710], 1
movups xmmword [0x1400a0718], xmm0
mov qword [0x1400a0738], rax
movups xmmword [0x1400a0728], xmm0
call sub.VCRUNTIME140.dll_memset
movdqa xmm0, xmmword [0x140050670]
xor eax, eax
movdqa xmmword [0x1400a02d0], xmm0
xorps xmm0, xmm0
movups xmmword [0x1400a0280], xmm0
mov dword [0x1400a02e0], 1
movups xmmword [0x1400a02a0], xmm0
mov dword [0x1400a02ec], 1
movups xmmword [0x1400a0290], xmm0
mov dword [0x1400a02f0], 1
movdqa xmm0, xmmword [str._b_b_b_b]
movdqa xmmword [0x1400a0270], xmm0
mov dword [0x1400a02b8], 0x80000000
mov dword [0x1400a02bc], 0x80000000
mov qword [0x1400a02b0], rax
mov dword [0x1400a0280], 0x18
mov dword [0x1400a0284], 8
mov dword [0x1400a02a8], 1
mov dword [0x1400a0740], 0xffffffff
mov dword [0x1400a02fc], 1
add rsp, 0x28
ret

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

Disassembly:
push rdi
sub rsp, 0x20
cmp dword [0x14009ffe0], 0
mov rdi, rcx
jne 0x140040323
xor edx, edx
mov ecx, 0x10001
add rsp, 0x20
pop rdi
jmp fcn.140039200
test rdi, rdi
je 0x1400403ca
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x1400a0758]
test rbx, rbx
je 0x14004037a
mov qword [rsp + 0x38], rsi
xor esi, esi
cmp qword [rbx + 0x58], rdi
jne 0x14004036d
xor edx, edx
cmp dword [0x14009ffe0], esi
jne 0x140040360
mov ecx, 0x10001
call fcn.140039200
jmp 0x14004036d
mov rcx, rbx
mov qword [rbx + 0x58], rsi
call qword [0x1400a0060]
mov rbx, qword [rbx]
test rbx, rbx
jne 0x140040344
mov rsi, qword [rsp + 0x38]
mov rcx, rdi
call qword [0x1400a0058]
mov rcx, qword [0x1400a0750]
lea rdx, [0x1400a0750]
mov rbx, qword [rsp + 0x30]
cmp rcx, rdi
je 0x1400403ae
nop dword [rax + rax]
mov rax, qword [rcx]
mov rdx, rcx
mov rcx, rax
cmp rax, rdi
jne 0x1400403a0
mov rax, qword [rdi]
mov rcx, rdi
mov qword [rdx], rax
mov rdx, qword [0x1400a0000]
add rsp, 0x20
pop rdi
jmp qword [0x14009fff8]
add rsp, 0x20
pop rdi
ret
Function at 0x1400403d0
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [0x14009ffe0], 0
mov rbx, rcx
jne 0x1400403f3
xor edx, edx
mov ecx, 0x10001
add rsp, 0x20
pop rbx
jmp fcn.140039200
test rbx, rbx
je 0x1400404ca
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rcx + 0x2d0], xmm0
movups xmmword [rcx + 0x2e0], xmm0
movups xmmword [rcx + 0x2f0], xmm0
movups xmmword [rcx + 0x300], xmm0
movups xmmword [rcx + 0x310], xmm0
movups xmmword [rcx + 0x320], xmm0
movups xmmword [rcx + 0x330], xmm0
movups xmmword [rcx + 0x340], xmm0
mov qword [rcx + 0x350], rax
mov ecx, dword [0x1400a1988]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp rbx, rax
jne 0x140040481
cmp dword [0x14009ffe0], 0
jne 0x140040468
xor edx, edx
mov ecx, 0x10001
call fcn.140039200
jmp 0x140040481
mov ecx, dword [0x1400a1988]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x140040481
xor ecx, ecx
call qword [rax + 0x250]
mov rcx, rbx
call qword [0x1400a00f8]
mov rcx, qword [0x1400a0758]
lea rdx, [0x1400a0758]
cmp rcx, rbx
je 0x1400404ae
nop dword [rax]
mov rax, qword [rcx]
mov rdx, rcx
mov rcx, rax
cmp rax, rbx
jne 0x1400404a0
mov rax, qword [rbx]
mov rcx, rbx
mov qword [rdx], rax
mov rdx, qword [0x1400a0000]
add rsp, 0x20
pop rbx
jmp qword [0x14009fff8]
add rsp, 0x20
pop rbx
ret
Function at 0x1400404d0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
cmp dword [0x14009ffe0], 0
mov rsi, rcx
jne 0x1400404f6
xor edx, edx
mov ecx, 0x10001
call fcn.140039200
xor eax, eax
add rsp, 0x20
pop rsi
ret
mov ecx, dword [0x1400a1988]
mov qword [rsp + 0x40], rdi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x14004052d
lea rdx, str.Cannot_query_extension_without_a_current_OpenGL_or_OpenGL_ES_context
mov ecx, 0x10002
call fcn.140039200
mov rdi, qword [rsp + 0x40]
xor eax, eax
add rsp, 0x20
pop rsi
ret
cmp byte [rsi], 0
jne 0x140040550
lea rdx, str.Extension_name_cannot_be_an_empty_string
mov ecx, 0x10004
call fcn.140039200
mov rdi, qword [rsp + 0x40]
xor eax, eax
add rsp, 0x20
pop rsi
ret
cmp dword [rax + 0x210], 3
mov qword [rsp + 0x30], rbx
jl 0x1400405db
lea rdx, [rsp + 0x38]
mov ecx, 0x821d
call qword [rax + 0x240]
xor ebx, ebx
cmp dword [rsp + 0x38], ebx
jle 0x1400405bf
nop word [rax + rax]
mov edx, ebx
mov ecx, 0x1f03
call qword [rdi + 0x238]
test rax, rax
je 0x1400405eb
mov r8, rsi
sub r8, rax
nop dword [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x1400405b3
inc rax
test ecx, ecx
jne 0x1400405a0
test edx, edx
je 0x14004061d
inc ebx
cmp ebx, dword [rsp + 0x38]
jl 0x140040580
mov rcx, rsi
mov rax, qword [rdi + 0x268]
mov rbx, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
jmp rax
mov ecx, 0x1f03
call qword [rax + 0x248]
test rax, rax
jne 0x14004060e
lea rdx, str.Extension_string_retrieval_is_broken
mov ecx, 0x10008
call fcn.140039200
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
mov rdx, rax
mov rcx, rsi
call fcn.14003c9f0
test eax, eax
je 0x1400405bf
mov rbx, qword [rsp + 0x30]
mov eax, 1
mov rdi, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret

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

Disassembly:
cmp dword [0x14009ffe0], 0
jne 0x140040655
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a0188]

Function at 0x140040660
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
test rcx, rcx
je 0x140040675
mov qword [rcx], 0
cmp dword [0x14009ffe0], 0
je 0x140040698
mov ecx, dword [0x1400a1980]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rcx, rax
test rax, rax
jne 0x14004069f
add rsp, 0x20
pop rbx
ret
lea rcx, [0x1400a2ac0]
mov eax, dword [rcx + 8]
mov dword [rcx + 8], 0
test rbx, rbx
je 0x1400406b9
test eax, eax
je 0x1400406b9
add rcx, 0xc
mov qword [rbx], rcx
add rsp, 0x20
pop rbx
ret

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

Disassembly:
xor eax, eax
test rdx, rdx
je 0x1400406c9
mov dword [rdx], eax
test r8, r8
je 0x1400406d1
mov dword [r8], eax
cmp dword [0x14009ffe0], eax
jne 0x1400406e5
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a0140]
Function at 0x140040f50
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
xor eax, eax
test rdx, rdx
je 0x140040f59
mov dword [rdx], eax
test r8, r8
je 0x140040f61
mov dword [r8], eax
cmp dword [0x14009ffe0], eax
jne 0x140040f75
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a00c0]

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

Disassembly:
xor eax, eax
test rdx, rdx
je 0x140040f89
mov dword [rdx], eax
test r8, r8
je 0x140040f91
mov dword [r8], eax
cmp dword [0x14009ffe0], eax
jne 0x140040fa5
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a00b8]

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

Disassembly:
xor r10d, r10d
test rdx, rdx
je 0x140040fbb
mov dword [rdx], r10d
test r8, r8
je 0x140040fc3
mov dword [r8], r10d
test r9, r9
je 0x140040fcb
mov dword [r9], r10d
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x140040fd8
mov dword [rax], r10d
cmp dword [0x14009ffe0], r10d
jne 0x140040fed
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
mov qword [rsp + 0x28], rax
jmp qword [0x1400a00c8]

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

Disassembly:
xor eax, eax
test rdx, rdx
je 0x140041269
mov dword [rdx], eax
test r8, r8
je 0x140041271
mov dword [r8], eax
cmp dword [0x14009ffe0], eax
jne 0x140041285
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a0110]

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

Disassembly:
cmp dword [0x14009ffe0], 0
jne 0x1400412a5
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a0158]
Function at 0x140041750
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [0x14009ffe0], 0
mov rbx, rcx
jne 0x140041773
xor edx, edx
mov ecx, 0x10001
add rsp, 0x20
pop rbx
jmp fcn.140039200
mov ecx, dword [0x1400a1988]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, rax
test rbx, rbx
je 0x1400417a6
cmp dword [rbx + 0x208], 0
jne 0x1400417a6
lea rdx, str.Cannot_make_current_with_a_window_that_has_no_OpenGL_or_OpenGL_ES_context
mov ecx, 0x1000a
add rsp, 0x20
pop rbx
jmp fcn.140039200
test rdx, rdx
je 0x1400417c6
test rbx, rbx
je 0x1400417be
mov eax, dword [rax + 0x20c]
cmp dword [rbx + 0x20c], eax
je 0x1400417cb
xor ecx, ecx
call qword [rdx + 0x250]
test rbx, rbx
je 0x1400417dd
mov rcx, rbx
mov rax, qword [rbx + 0x250]
add rsp, 0x20
pop rbx
jmp rax
add rsp, 0x20
pop rbx
ret

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

Disassembly:
cmp dword [0x14009ffe0], 0
jne 0x140041805
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
jmp qword [0x1400a01f8]
Function at 0x140041920
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp dword [0x14009ffe0], 0
mov edi, r8d
mov rbx, rcx
jne 0x14004194f
xor edx, edx
mov ecx, 0x10001
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140039200
mov ecx, edx
sub ecx, 0x33001
je 0x140041aef
sub ecx, 1
je 0x140041aa9
sub ecx, 1
je 0x140041a03
sub ecx, 1
je 0x1400419eb
cmp ecx, 1
je 0x140041997
mov r8d, edx
mov ecx, 0x10003
lea rdx, str.Invalid_input_mode_0x_08X
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140039200
call qword [0x1400a0040]
test eax, eax
jne 0x1400419bc
lea rdx, str.Raw_mouse_motion_is_not_supported_on_this_system
mov ecx, 0x10008
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140039200
xor ecx, ecx
test edi, edi
setne cl
cmp dword [rbx + 0x200], ecx
je 0x140041b46
mov dword [rbx + 0x200], ecx
mov edx, ecx
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp qword [0x1400a0038]
xor ecx, ecx
test edi, edi
setne cl
mov dword [rbx + 0x80], ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
xor ecx, ecx
test edi, edi
setne cl
cmp dword [rbx + 0x7c], ecx
je 0x140041b46
test edi, edi
jne 0x140041a9b
cmp byte [rbx + 0x88], 3
jne 0x140041a2b
mov byte [rbx + 0x88], dil
cmp byte [rbx + 0x89], 3
jne 0x140041a3b
mov byte [rbx + 0x89], 0
cmp byte [rbx + 0x8a], 3
jne 0x140041a4b
mov byte [rbx + 0x8a], 0
cmp byte [rbx + 0x8b], 3
jne 0x140041a5b
mov byte [rbx + 0x8b], 0
cmp byte [rbx + 0x8c], 3
jne 0x140041a6b
mov byte [rbx + 0x8c], 0
cmp byte [rbx + 0x8d], 3
jne 0x140041a7b
mov byte [rbx + 0x8d], 0
cmp byte [rbx + 0x8e], 3
jne 0x140041a8b
mov byte [rbx + 0x8e], 0
cmp byte [rbx + 0x8f], 3
jne 0x140041a9b
mov byte [rbx + 0x8f], 0
mov dword [rbx + 0x7c], ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
xor ecx, ecx
test edi, edi
setne cl
cmp dword [rbx + 0x78], ecx
je 0x140041b46
test edi, edi
jne 0x140041ae1
lea rax, [rbx + 0x90]
mov edx, 0x15d
nop dword [rax]
cmp byte [rax], 3
jne 0x140041ad8
mov byte [rax], 0
inc rax
sub rdx, 1
jne 0x140041ad0
mov dword [rbx + 0x78], ecx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea eax, [r8 - 0x34001]
cmp eax, 3
jbe 0x140041b16
lea rdx, str.Invalid_cursor_mode_0x_08X
mov ecx, 0x10003
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.140039200
cmp dword [rbx + 0x84], edi
je 0x140041b46
lea r8, [rbx + 0x1f8]
mov dword [rbx + 0x84], edi
lea rdx, [rbx + 0x1f0]
mov rcx, rbx
call qword [0x1400a0020]
mov edx, edi
mov rcx, rbx
call qword [0x1400a0030]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140041c90
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
cmp dword [0x14009ffe0], 0
mov eax, r8d
mov r8d, edx
mov r9, rcx
jne 0x140041cae
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
xor edx, edx
test eax, eax
lea eax, [r8 - 0x20003]
setne dl
cmp eax, 0xa
ja case.0x140041cd5.131076
lea r10, [0x140000000]
cdqe
mov ecx, dword [r10 + rax*4 + 0x41d40]
add rcx, r10
jmp rcx
mov dword [r9 + 0x10], edx
ret
cmp qword [r9 + 0x50], 0
mov dword [r9 + 8], edx
jne 0x140041d3f
mov rcx, r9
jmp qword [0x1400a01d0]
cmp qword [r9 + 0x50], 0
mov dword [r9 + 0xc], edx
jne 0x140041d3f
mov rcx, r9
jmp qword [0x1400a01d8]
cmp qword [r9 + 0x50], 0
mov dword [r9 + 0x14], edx
jne 0x140041d3f
mov rcx, r9
jmp qword [0x1400a01e0]
mov dword [r9 + 0x18], edx
ret
mov rcx, r9
mov dword [r9 + 0x1c], edx
jmp qword [0x1400a01f0]
lea rdx, str.Invalid_window_attribute_0x_08X
mov ecx, 0x10003
jmp fcn.140039200
ret

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

Disassembly:
sub rsp, 0x38
mov rdx, qword [rcx]
test rdx, rdx
jne 0x14000ae3f
mov rcx, qword [0x1400981c8]
xor r8d, r8d
add rsp, 0x38
jmp 0x140041db0
cmp dword [rcx + 0x14], 7
jne 0x14000ae73
mov eax, dword [rcx + 8]
lea r8, [rsp + 0x20]
mov dword [rsp + 0x20], eax
mov eax, dword [rcx + 0xc]
mov rcx, qword [0x1400981c8]
mov qword [rsp + 0x28], rdx
mov edx, 1
mov dword [rsp + 0x24], eax
call 0x140041db0
add rsp, 0x38
ret
lea rdx, str.GLFW:_Window_icon_image_must_be_in_R8G8B8A8_pixel_format
mov ecx, 4
add rsp, 0x38
jmp fcn.1400349a0
cmp dword [0x14009ffe0], 0
mov r10, rcx
movsxd r9, edx
jne 0x140041dcb
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
test edx, edx
jns 0x140041de0
lea rdx, str.Invalid_image_count_for_window_icon
mov ecx, 0x10004
jmp fcn.140039200
je 0x140041dfe
xor ecx, ecx
mov rax, r8
cmp dword [rax], 0
jle 0x140041e0b
cmp dword [rax + 4], 0
jle 0x140041e0b
inc rcx
add rax, 0x10
cmp rcx, r9
jl 0x140041de7
mov edx, r9d
mov rcx, r10
jmp qword [0x1400a0108]
lea rdx, str.Invalid_image_dimensions_for_window_icon
mov ecx, 0x10004
jmp fcn.140039200

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

Disassembly:
cmp dword [0x14009ffe0], 0
mov r10d, r9d
mov r11d, r8d
jne 0x140041ebb
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
mov r8d, dword [rsp + 0x28]
mov r9d, dword [rsp + 0x30]
test r8d, r8d
jle 0x140041f12
test r9d, r9d
jle 0x140041f12
mov eax, dword [rsp + 0x38]
cmp eax, 0xfffffffe
jg 0x140041eec
mov r8d, eax
lea rdx, str.Invalid_refresh_rate__i
mov ecx, 0x10004
jmp fcn.140039200
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], r9d
mov dword [rsp + 0x28], r8d
mov dword [rcx + 0x34], r8d
mov r8d, r11d
mov dword [rcx + 0x38], r9d
mov r9d, r10d
mov dword [rcx + 0x48], eax
jmp qword [0x1400a0190]
lea rdx, str.Invalid_window_size__ix_i
mov ecx, 0x10004
jmp fcn.140039200

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

Disassembly:
cmp dword [0x14009ffe0], 0
jne 0x140041f45
xor edx, edx
mov ecx, 0x10001
jmp fcn.140039200
cmp qword [rcx + 0x50], 0
jne 0x140041f53
jmp qword [0x1400a0118]
ret