Function at 0x18004e3b0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0xb0
cmp byte [0x18006ed85], 1
mov rbx, r9
movaps xmmword [rax - 0x48], xmm9
mov edi, r8d
movsd xmm9, qword [0x180065138]
mov esi, edx
movaps xmmword [rax - 0x58], xmm10
mov ebp, ecx
movsd xmm10, qword [0x180065120]
movaps xmmword [rax - 0x68], xmm11
movss xmm11, dword [0x1800650e4]
movaps xmmword [rsp + 0x30], xmm13
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x78], xmm12
movaps xmmword [rsp + 0x20], xmm14
jne 0x18004e51d
movaps xmm1, xmm10
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
xorps xmm0, xmm0
call qword [sym.imp.OPENGL32.dll_glLineWidth]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov edx, 1
mov ecx, 0x302
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov rax, qword [sym.imp.glew32.dll___glewBlendFuncSeparate]
xor r9d, r9d
mov edx, 0x8003
mov ecx, 0x8001
mov r8d, 1
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 0xc
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 2
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
cmp byte [0x18006ed98], 1
jne 0x18004e5b9
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov edx, 0x8001
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov ecx, 0xb71
call qword [sym.imp.OPENGL32.dll_glDisable]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 4
call qword [0x18006eda0]
mov ecx, 0xb71
call qword [sym.imp.OPENGL32.dll_glEnable]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
cmp byte [0x18006ed86], 1
movsd xmm12, qword [0x180065160]
movss xmm13, dword [0x180065090]
movsd xmm6, qword [0x180065158]
movsd xmm14, qword [str.es_8R]
movaps xmmword [rsp + 0x90], xmm7
jne 0x18004e6ef
call fcn.18004cb20
movss xmm8, dword [0x18006eb5c]
movaps xmm1, xmm13
mov rax, qword [sym.imp.glew32.dll___glewDepthRangef]
cvtps2pd xmm8, xmm8
mulsd xmm8, xmm12
mulsd xmm8, xmm0
movaps xmm0, xmm11
call qword [rax]
movaps xmm0, xmm8
addsd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
addsd xmm0, xmm9
xorps xmm7, xmm7
mulsd xmm0, xmm10
cvtsd2ss xmm7, xmm0
movaps xmm0, xmm8
addsd xmm0, xmm14
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
addsd xmm0, xmm9
xorps xmm6, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm6, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
addsd xmm0, xmm9
movaps xmm3, xmm11
movaps xmm2, xmm7
movaps xmm1, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm0, xmm0
call qword [rax]
movaps xmm0, xmm13
call qword [sym.imp.OPENGL32.dll_glLineWidth]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov edx, 0x8001
mov ecx, 0x8003
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
movsd xmm6, qword [0x180065158]
cmp byte [0x18006ed87], 1
jne 0x18004e727
mov rax, qword [sym.imp.glew32.dll___glewDepthRangef]
movaps xmm1, xmm13
movaps xmm0, xmm11
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
cmp byte [0x18006ed37], 1
jne 0x18004e89c
call fcn.18004cb20
movss xmm8, dword [0x18006eb5c]
movaps xmm1, xmm10
cvtps2pd xmm8, xmm8
mulsd xmm8, xmm12
mulsd xmm8, xmm0
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
xorps xmm0, xmm0
call qword [sym.imp.OPENGL32.dll_glLineWidth]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov edx, 1
mov ecx, 0x302
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov rax, qword [sym.imp.glew32.dll___glewBlendFuncSeparate]
xor r9d, r9d
mov edx, 0x8003
mov ecx, 0x8001
mov r8d, 1
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 0xc
call qword [sym.imp.OPENGL32.dll_glDrawElements]
movaps xmm0, xmm8
addsd xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
addsd xmm0, xmm9
xorps xmm7, xmm7
mulsd xmm0, xmm10
cvtsd2ss xmm7, xmm0
movaps xmm0, xmm8
addsd xmm0, xmm14
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
addsd xmm0, xmm9
xorps xmm6, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm6, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
addsd xmm0, xmm9
movaps xmm3, xmm11
movaps xmm2, xmm7
movaps xmm1, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm0, xmm0
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 2
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
cmp byte [0x18006ed35], 1
movsd xmm8, qword [0x180065178]
movsd xmm14, qword [0x180065150]
jne 0x18004e8f0
call fcn.18004cb20
movss xmm1, dword [0x18006eb5c]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm12
mulsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
andps xmm0, xmmword [0x1800656e0]
mulsd xmm0, xmm8
addsd xmm0, xmm14
cvtsd2ss xmm0, xmm0
call qword [sym.imp.OPENGL32.dll_glLineWidth]
cmp byte [0x18006ed65], 1
jne 0x18004ea29
call fcn.18004cb20
movss xmm1, dword [0x18006eb68]
cvtps2pd xmm1, xmm1
mulsd xmm1, xmm12
mulsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm1, xmm0
lea rdx, [rsp + 0xe0]
andps xmm1, xmmword [0x1800656e0]
xorps xmm6, xmm6
movss xmm0, dword [0x18006eb60]
mov ecx, 0xb70
cvtps2pd xmm0, xmm0
mulsd xmm1, xmm8
addsd xmm1, xmm0
cvtsd2ss xmm6, xmm1
call qword [sym.imp.OPENGL32.dll_glGetFloatv]
movaps xmm1, xmm10
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov edx, 0x1b01
mov ecx, 0x408
call qword [sym.imp.OPENGL32.dll_glPolygonMode]
movaps xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glLineWidth]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
movss xmm0, dword [0x180065284]
xorps xmm2, xmm2
xorps xmm1, xmm1
call qword [rax]
mov edx, 0x8001
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
movsd xmm1, qword [0x180065130]
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
movss xmm1, dword [rsp + 0xe4]
movss xmm0, dword [rsp + 0xe0]
cvtps2pd xmm1, xmm1
cvtps2pd xmm0, xmm0
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
mov edx, 0x1b02
mov ecx, 0x408
call qword [sym.imp.OPENGL32.dll_glPolygonMode]
mov ecx, dword [0x18006ece8]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x18004ea47
cmp byte [0x18006ed2e], 0
sete byte [0x18006ed2e]
cmp byte [0x18006ecce], 1
jne 0x18004ea8b
mov ecx, 0xb71
call qword [sym.imp.OPENGL32.dll_glDisable]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
mov ecx, 0xb71
call qword [sym.imp.OPENGL32.dll_glEnable]
cmp byte [0x18006ed99], 1
jne 0x18004ec4c
call fcn.18004cb20
movaps xmm7, xmm0
movss xmm0, dword [0x18006eb68]
cvtps2pd xmm0, xmm0
mulsd xmm0, xmm12
mulsd xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
movaps xmm6, xmm0
movaps xmm1, xmm10
andps xmm6, xmmword [0x1800656e0]
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mulsd xmm6, xmm8
xorps xmm0, xmm0
addsd xmm6, xmm14
cvtsd2ss xmm0, xmm6
call qword [sym.imp.OPENGL32.dll_glLineWidth]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov edx, 1
mov ecx, 0x302
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov rax, qword [sym.imp.glew32.dll___glewBlendFuncSeparate]
xor r9d, r9d
mov edx, 0x8003
mov ecx, 0x8001
mov r8d, 1
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 0xc
call qword [sym.imp.OPENGL32.dll_glDrawElements]
movss xmm8, dword [0x18006eb5c]
cvtps2pd xmm8, xmm8
mulsd xmm8, xmm12
mulsd xmm8, xmm7
movaps xmm0, xmm8
addsd xmm0, qword [0x180065158]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
addsd xmm0, xmm9
xorps xmm7, xmm7
mulsd xmm0, xmm10
cvtsd2ss xmm7, xmm0
movaps xmm0, xmm8
addsd xmm0, qword [str.es_8R]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
addsd xmm0, xmm9
xorps xmm6, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm6, xmm0
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
addsd xmm0, xmm9
movaps xmm3, xmm11
movaps xmm2, xmm7
movaps xmm1, xmm6
mulsd xmm0, xmm10
cvtsd2ss xmm0, xmm0
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewDepthRangef]
movaps xmm1, xmm13
movaps xmm0, xmm11
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 2
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
cmp byte [0x18006ed2d], 1
movaps xmm14, xmmword [rsp + 0x20]
movaps xmm12, xmmword [rsp + 0x40]
movaps xmm8, xmmword [rsp + 0x80]
movaps xmm7, xmmword [rsp + 0x90]
movaps xmm6, xmmword [rsp + 0xa0]
jne 0x18004ed37
movaps xmm1, xmm10
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov edx, 1
mov ecx, 0x302
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov rax, qword [sym.imp.glew32.dll___glewBlendFuncSeparate]
xor r9d, r9d
mov edx, 0x8003
mov ecx, 0x8001
mov r8d, 1
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movss xmm3, dword [0x18006e934]
movss xmm2, dword [0x18006e930]
movss xmm1, dword [0x18006e92c]
movss xmm0, dword [0x18006e928]
call qword [rax]
call qword [sym.imp.OPENGL32.dll_glPushMatrix]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
call qword [sym.imp.OPENGL32.dll_glPopMatrix]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
jmp 0x18004ed47
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
cmp byte [0x18006ed67], 1
jne 0x18004ee6c
movaps xmm1, xmm10
movaps xmm0, xmm9
call qword [sym.imp.OPENGL32.dll_glDepthRange]
movss xmm0, dword [0x18006eb54]
call qword [sym.imp.OPENGL32.dll_glLineWidth]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov r9b, 1
movzx edx, r9b
movzx r8d, r9b
movzx ecx, dl
call qword [sym.imp.OPENGL32.dll_glColorMask]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glEnable]
mov edx, 1
mov ecx, 0x302
call qword [sym.imp.OPENGL32.dll_glBlendFunc]
mov rax, qword [sym.imp.glew32.dll___glewBlendFuncSeparate]
xor r9d, r9d
mov edx, 0x8003
mov ecx, 0x8001
mov r8d, 1
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
xorps xmm2, xmm2
xorps xmm1, xmm1
xorps xmm0, xmm0
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 0xc
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov rax, qword [sym.imp.glew32.dll___glewBlendColor]
movaps xmm3, xmm11
movss xmm1, dword [0x180065284]
xorps xmm2, xmm2
xorps xmm0, xmm0
call qword [rax]
mov rax, qword [sym.imp.glew32.dll___glewDepthRangef]
movaps xmm1, xmm13
movaps xmm0, xmm11
call qword [rax]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 1
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
movaps xmm1, xmm9
movaps xmm0, xmm10
call qword [sym.imp.OPENGL32.dll_glDepthRange]
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, 2
call qword [sym.imp.OPENGL32.dll_glDrawElements]
mov ecx, 0xbe2
call qword [sym.imp.OPENGL32.dll_glDisable]
jmp 0x18004ee7c
mov r9, rbx
mov r8d, edi
mov edx, esi
mov ecx, ebp
call qword [0x18006eda0]
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop rdi
ret