Function at 0x14004c9d0
Capabilities:
Create thread
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r15
lea rbp, [rsp - 0x230]
sub rsp, 0x330
mov rax, qword [0x140077040]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
xor r15d, r15d
mov dword [rbp + 0x70], 0x50
xorps xmm0, xmm0
mov qword [rbp + 0x80], r15
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x90], xmm0
lea rax, [0x14004c4b0]
movdqa xmmword [rbp + 0xa0], xmm1
lea rdi, str.SimpleOverlay
mov qword [rbp + 0xb8], r15
lea rcx, [rbp + 0x70]
mov qword [rbp + 0x78], rax
mov qword [rbp + 0xb0], rdi
mov ebx, r9d
mov dword [rbp + 0x74], 3
mov qword [rbp + 0x88], rdx
call qword [sym.imp.USER32.dll_RegisterClassExW]
call fcn.14004bb70
movss xmm2, dword [0x14006b038]
mov r9d, 0x80000000
movss xmm0, dword [0x14007713c]
movss xmm1, dword [0x140077134]
mulss xmm0, xmm2
mov qword [rsp + 0x58], r15
mulss xmm1, xmm2
cvttss2si r8d, xmm0
movss xmm0, dword [0x140077138]
mulss xmm0, xmm2
cvttss2si ecx, xmm1
movss xmm1, dword [0x14006aeec]
cvttss2si edx, xmm0
movss xmm0, dword [0x140077130]
mulss xmm0, xmm2
movd xmm3, r8d
mov r8, rdi
movd xmm2, edx
mov rdx, qword [rbp + 0xb0]
cvttss2si eax, xmm0
movd xmm0, ecx
mov ecx, 0x80028
cvtdq2ps xmm0, xmm0
movd xmm4, eax
mov rax, qword [rbp + 0x88]
cvtdq2ps xmm4, xmm4
mov qword [rsp + 0x50], rax
mov eax, dword [0x140077e38]
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x40], r15
mov dword [rsp + 0x38], eax
mov eax, dword [0x140077e3c]
mulss xmm4, xmm1
mov dword [rsp + 0x30], eax
cvtdq2ps xmm2, xmm2
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
shufps xmm4, xmm4, 0xe1
mulss xmm0, xmm1
cvtdq2ps xmm3, xmm3
movss xmm4, xmm0
mulss xmm2, xmm1
shufps xmm4, xmm4, 0xc6
mulss xmm3, xmm1
movss xmm4, xmm2
shufps xmm4, xmm4, 0x27
movss xmm4, xmm3
shufps xmm4, xmm4, 0x39
movups xmmword [rbp + 0xc8], xmm4
movups xmmword [0x140077110], xmm4
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov r9d, 2
mov r8b, 0xff
mov rcx, rax
xor edx, edx
mov rsi, rax
call qword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
xorps xmm0, xmm0
lea rdx, [rbp + 0xf0]
mov rcx, rsi
movups xmmword [rbp + 0xf0], xmm0
call qword [sym.imp.USER32.dll_GetClientRect]
xorps xmm0, xmm0
lea rdx, [rbp + 0x1d0]
mov rcx, rsi
movups xmmword [rbp + 0x1d0], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
lea rdx, [rbp + 0xc0]
mov qword [rbp + 0xc0], r15
mov rcx, rsi
call qword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [rbp + 0xc0]
lea rdx, [rbp + 0xc8]
mov dword [rbp + 0xc8], eax
mov rcx, rsi
mov eax, dword [rbp + 0xc4]
mov dword [rbp + 0xcc], eax
mov eax, dword [rbp + 0xf8]
mov dword [rbp + 0xd0], eax
mov eax, dword [rbp + 0xfc]
mov dword [rbp + 0xd4], eax
call qword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
lea rax, [rbp - 0x10]
mov qword [rbp + 0x20], r15
mov qword [rsp + 0x58], rax
xor r9d, r9d
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x34], r15
mov qword [rsp + 0x50], rax
xor r8d, r8d
lea rax, [rbp]
mov qword [rbp + 0x3c], 1
mov qword [rsp + 0x48], rax
mov edx, 1
lea rax, [rbp - 8]
mov qword [rbp + 0x48], 2
mov qword [rsp + 0x40], rax
xor ecx, ecx
lea rax, [rbp + 0x20]
mov qword [rbp + 0x60], 2
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x1c0]
mov dword [rsp + 0x30], 7
mov dword [rsp + 0x28], 2
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x28], 0x78
mov dword [rbp + 0x2c], 1
mov dword [rbp + 0x30], 0x1c
mov dword [rbp + 0x44], 0x20
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x58], 1
mov dword [rbp + 0x1c0], 0xb000
mov dword [rbp + 0x1c4], 0xa000
mov qword [rbp], r15
mov qword [rbp - 0x10], r15
mov qword [rbp - 8], r15
mov qword [rbp + 8], r15
mov dword [rbp + 0xd8], r15d
call qword [sym.imp.d3d11.dll_D3D11CreateDeviceAndSwapChain]
mov rcx, qword [rbp - 8]
lea r9, [rbp + 0x10]
mov qword [rbp + 0x10], r15
lea r8, [0x14006a928]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rdx, qword [rbp + 0x10]
test rdx, rdx
je 0x14004d547
mov rcx, qword [rbp]
lea r9, [rbp + 8]
xor r8d, r8d
mov rax, qword [rcx]
call qword [rax + 0x48]
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov edx, ebx
mov rcx, rsi
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, rsi
call qword [sym.imp.USER32.dll_UpdateWindow]
mov rbx, qword [0x140077e28]
mov ecx, 0x6270
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, qword [0x140077e28]
mov r9, rax
test r8, r8
je 0x14004cda6
movsx rax, word [r8 + 0x60e0]
lea rdx, [r8 + 0x60e4]
mov r10d, dword [r8 + 0x3f68]
lea rdx, [rdx + rax*8]
cmp dword [rdx], r10d
je 0x14004cd9b
lea ecx, [rax + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [r8 + 0x60e4]
sub ecx, eax
mov word [r8 + 0x60e0], cx
movsx rax, cx
lea rdx, [rdx + rax*8]
mov dword [rdx], r10d
mov dword [rdx + 4], r15d
inc word [rdx + 4]
inc dword [r8 + 0x60d8]
test r9, r9
je 0x14004cdb7
xor edx, edx
mov rcx, r9
call fcn.1400039f0
jmp 0x14004cdba
mov rax, r15
mov qword [0x140077e28], rax
call fcn.1400085c0
test rbx, rbx
je 0x14004cdd2
mov qword [0x140077e28], rbx
xor ecx, ecx
call fcn.140028cf0
mov rcx, rsi
call fcn.140033720
mov rdx, qword [rbp - 0x10]
mov rcx, qword [rbp]
call fcn.140033560
mov ecx, 8
call fcn.14005f4c0
lea rcx, [0x140001340]
mov r9, rax
lea r8, [0x14005cad0]
xor edx, edx
mov qword [rax], rcx
lea rcx, [rbp + 0xe8]
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov dword [rsp + 0x20], r15d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp + 0xe0], rax
test rax, rax
je 0x14004d534
mov rbx, qword [0x140077e28]
mov qword [rsp + 0x360], r14
mov rcx, qword [rbx + 0x38]
call fcn.14002d530
mov rcx, qword [rbx + 0x38]
call fcn.14002d850
mov rax, qword [0x140077e28]
lea r14, str.C:_Users_poken_source_repos_Cs2VACisAzz_External_Cheat_cs2_Cheats_Cs2iconfont.ttf
lea r8, [rbp + 0xc0]
mov qword [rbp + 0xc0], r15
mov rcx, r14
mov rdi, qword [rax + 0x38]
call fcn.140006070
mov rbx, rax
test rax, rax
jne 0x14004ce90
mov rax, r15
jmp 0x14004d06e
xorps xmm2, xmm2
movaps xmmword [rsp + 0x320], xmm6
movups xmmword [rbp - 0x50], xmm2
mov eax, 0xffff
mov dword [rbp - 0x50], 0x3f800000
movaps xmmword [rsp + 0x310], xmm7
xorps xmm5, xmm5
movups xmmword [rsp + 0x70], xmm2
mov word [rbp - 0x48], ax
movaps xmmword [rsp + 0x300], xmm8
xorps xmm7, xmm7
movups xmmword [rsp + 0x60], xmm2
mov dword [rbp - 0x4c], 0x3f800000
movaps xmm1, xmmword [rbp - 0x50]
xorps xmm8, xmm8
movups xmmword [rbp - 0x60], xmm2
mov byte [rsp + 0x6c], 1
movdqa xmm0, xmm1
movaps xmmword [rsp + 0x2f0], xmm9
movaps xmm3, xmmword [rsp + 0x60]
xorps xmm9, xmm9
psrldq xmm0, 0xa
movd eax, xmm0
mov dword [rsp + 0x78], 2
mov dword [rsp + 0x7c], 1
movaps xmm4, xmmword [rsp + 0x70]
mov dword [rbp - 0x5c], 0x7f7fffff
movaps xmm6, xmmword [rbp - 0x60]
movaps xmmword [rbp + 0x100], xmm3
movaps xmmword [rbp + 0x110], xmm4
movaps xmmword [rbp + 0x120], xmm2
movaps xmmword [rbp + 0x130], xmm5
movaps xmmword [rbp + 0x140], xmm6
movaps xmmword [rbp + 0x150], xmm1
movaps xmmword [rbp + 0x160], xmm7
movaps xmmword [rbp + 0x170], xmm8
movaps xmmword [rbp + 0x180], xmm9
test al, al
jne 0x14004d000
lea r9, [0x140062921]
nop word [rax + rax]
movzx eax, byte [r9 - 1]
lea rcx, [r9 - 1]
cmp al, 0x2f
je 0x14004cf99
cmp al, 0x5c
je 0x14004cf99
mov r9, rcx
cmp rcx, r14
ja 0x14004cf80
movsd xmm0, qword [0x14006afb8]
lea r8, str._s___.0fpx
mov edx, 0x28
movsd qword [rsp + 0x20], xmm0
lea rcx, [rbp + 0x15a]
call fcn.140005bf0
movaps xmm1, xmmword [rbp + 0x150]
movaps xmm5, xmmword [rbp + 0x130]
movaps xmm2, xmmword [rbp + 0x120]
movaps xmm4, xmmword [rbp + 0x110]
movaps xmm3, xmmword [rbp + 0x100]
movaps xmm9, xmmword [rbp + 0x180]
movaps xmm8, xmmword [rbp + 0x170]
movaps xmm7, xmmword [rbp + 0x160]
movaps xmm6, xmmword [rbp + 0x140]
mov eax, dword [rbp + 0xc0]
lea rdx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm3
mov rcx, rdi
movaps xmmword [rsp + 0x70], xmm4
mov qword [rsp + 0x60], rbx
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x74], 0x41a00000
movaps xmmword [rbp - 0x80], xmm2
movaps xmmword [rbp - 0x70], xmm5
movaps xmmword [rbp - 0x60], xmm6
movaps xmmword [rbp - 0x50], xmm1
movaps xmmword [rbp - 0x40], xmm7
movaps xmmword [rbp - 0x30], xmm8
movaps xmmword [rbp - 0x20], xmm9
call fcn.14002d630
movaps xmm9, xmmword [rsp + 0x2f0]
movaps xmm8, xmmword [rsp + 0x300]
movaps xmm7, xmmword [rsp + 0x310]
movaps xmm6, xmmword [rsp + 0x320]
mov qword [0x140077e10], rax
mov bl, 1
xor dil, dil
nop word [rax + rax]
xor r9d, r9d
mov dword [rsp + 0x20], 1
xor r8d, r8d
lea rcx, [rbp + 0x190]
xor edx, edx
movzx r14d, dil
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x14004d0f9
nop word [rax + rax]
lea rcx, [rbp + 0x190]
call qword [sym.imp.USER32.dll_TranslateMessage]
lea rcx, [rbp + 0x190]
call qword [sym.imp.USER32.dll_DispatchMessageA]
cmp dword [rbp + 0x198], 0x12
lea rcx, [rbp + 0x190]
movzx ebx, bl
cmove ebx, r15d
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
jne 0x14004d0b0
mov rax, qword [0x140077e28]
test rax, rax
je 0x14004d10e
mov rcx, qword [rax + 0x98]
jmp 0x14004d111
mov rcx, r15
cmp qword [rcx + 0x48], r15
jne 0x14004d11c
call fcn.140033040
call fcn.140034130
call fcn.14000af20
mov ecx, 0x50
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004d196
call fcn.14004c210
test al, al
jne 0x14004d144
test dil, dil
je 0x14004d196
test dil, dil
mov edx, 0xffffffec
mov rcx, rsi
sete dil
call qword [sym.imp.USER32.dll_GetWindowLongA]
mov edx, 0xffffffec
mov rcx, rsi
test r14b, r14b
jne 0x14004d17e
btr eax, 0x13
mov r8d, eax
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov rcx, rsi
call qword [sym.imp.USER32.dll_SetForegroundWindow]
jmp 0x14004d18b
bts eax, 0x13
mov r8d, eax
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov ecx, 0x96
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, 0x51
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x14004d1c8
call fcn.14004c210
test al, al
je 0x14004d1c8
cmp byte [0x140077e21], r15b
mov ecx, 0x96
sete byte [0x140077e21]
call qword [sym.imp.KERNEL32.dll_Sleep]
call fcn.14004c210
test al, al
je 0x14004d1dd
test dil, dil
jne 0x14004d1e2
call fcn.1400016f0
jmp 0x14004d1e7
test dil, dil
je 0x14004d1e7
call fcn.14004c6c0
call fcn.14000ce30
mov rcx, qword [rbp - 0x10]
lea r8, [rbp + 8]
xorps xmm0, xmm0
xor r9d, r9d
movups xmmword [rbp + 0x1d0], xmm0
mov edx, 1
mov rax, qword [rcx]
call qword [rax + 0x108]
mov rcx, qword [rbp - 0x10]
lea r8, [rbp + 0x1d0]
mov rdx, qword [rbp + 8]
mov rax, qword [rcx]
call qword [rax + 0x190]
mov rax, qword [0x140077e28]
mov rcx, qword [rax + 0x4b28]
mov rax, qword [rcx]
mov rcx, r15
add rax, 0x48
cmp byte [rax], r15b
cmovne rcx, rax
call fcn.1400323e0
mov rcx, qword [rbp - 8]
xor r8d, r8d
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x40]
test bl, bl
jne 0x14004d080
mov rbx, qword [0x140077e28]
mov r14, qword [rsp + 0x360]
test rbx, rbx
je 0x14004d27f
mov rdi, qword [rbx + 0x98]
jmp 0x14004d282
mov rdi, r15
call fcn.140033440
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14004d296
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi]
test rcx, rcx
je 0x14004d2a4
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14004d2b3
mov rax, qword [rcx]
call qword [rax + 0x10]
and dword [rbx + 0xc], 0xfffffff7
mov r8, qword [0x140077e28]
mov qword [rbx + 0x88], r15
mov qword [rbx + 0x98], r15
test r8, r8
je 0x14004d331
movsx rdx, word [r8 + 0x60e0]
lea rcx, [r8 + 0x60e4]
mov r9d, dword [r8 + 0x3f68]
lea rcx, [rcx + rdx*8]
cmp dword [rcx], r9d
je 0x14004d326
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60e0], cx
movsx rax, cx
lea rcx, [r8 + 0x60e4]
lea rcx, [rcx + rax*8]
mov dword [rcx], r9d
mov dword [rcx + 4], r15d
inc word [rcx + 6]
inc dword [r8 + 0x60dc]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r8, qword [0x140077e28]
test r8, r8
je 0x14004d34f
mov rdi, qword [r8 + 0x90]
jmp 0x14004d352
mov rdi, r15
mov rcx, qword [rdi + 0x38]
lea rbx, [r8 + 8]
test rcx, rcx
je 0x14004d36c
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r8, qword [0x140077e28]
and dword [rbx + 4], 0xfffffff8
mov qword [rbx + 0x78], r15
mov qword [rbx + 0x88], r15
test r8, r8
je 0x14004d3e0
movsx rdx, word [r8 + 0x60e0]
mov r9d, dword [r8 + 0x3f68]
lea rcx, [rdx*8 + 0x60e4]
add rcx, r8
cmp dword [rcx], r9d
je 0x14004d3d5
lea ecx, [rdx + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
mov word [r8 + 0x60e0], cx
movsx rax, cx
lea rcx, [rax*8 + 0x60e4]
add rcx, r8
mov dword [rcx], r9d
mov dword [rcx + 4], r15d
inc word [rcx + 6]
inc dword [r8 + 0x60dc]
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbx, qword [0x140077e28]
mov qword [0x140077e28], rbx
call fcn.140008ad0
mov qword [0x140077e28], r15
test rbx, rbx
je 0x14004d486
mov rcx, rbx
call fcn.140020b90
mov r8, qword [0x140077e28]
test r8, r8
je 0x14004d47d
movsx r10, word [r8 + 0x60e0]
lea rdx, [r8 + 0x60e4]
mov r9d, dword [r8 + 0x3f68]
lea rdx, [rdx + r10*8]
cmp dword [rdx], r9d
je 0x14004d472
lea ecx, [r10 + 1]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
lea rdx, [r8 + 0x60e4]
sub ecx, eax
mov word [r8 + 0x60e0], cx
movsx rax, cx
lea rdx, [rdx + rax*8]
mov dword [rdx], r9d
mov dword [rdx + 4], r15d
inc word [rdx + 6]
inc dword [r8 + 0x60dc]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x14004d495
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x14004d4a4
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp]
test rcx, rcx
je 0x14004d4b3
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x14004d4c2
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, rsi
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rdx, qword [rbp + 0x88]
mov rcx, qword [rbp + 0xb0]
call qword [sym.imp.USER32.dll_UnregisterClassW]
cmp dword [rbp + 0xe8], r15d
je 0x14004d530
call qword [sym.imp.MSVCP140.dll__Thrd_id]
cmp dword [rbp + 0xe8], eax
jne 0x14004d502
mov ecx, 5
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
movaps xmm0, xmmword [rbp + 0xe0]
lea rcx, [rbp + 0x1d0]
xor edx, edx
movdqa xmmword [rbp + 0x1d0], xmm0
call qword [sym.imp.MSVCP140.dll__Thrd_join]
test eax, eax
je 0x14004d530
mov ecx, 2
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
xor eax, eax
jmp 0x14004d54c
mov ecx, 6
mov dword [rbp + 0xe8], r15d
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
int3
mov eax, 1
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.14005f4a0
add rsp, 0x330
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret