Function at 0x14002ec50
Capabilities:
Encode data using xor
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rdi
push rbp
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
mov rax, qword [0x140040010]
xor rax, rsp
mov qword [rbp + 0x27], rax
cmp qword [0x140041038], 0
jne 0x14002ec8c
call fcn.1400224c0
mov rcx, qword [0x140041058]
lea rdx, [rbp - 0x41]
mov rbx, qword [0x140040f00]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rbp - 0x39]
lea rcx, [rbp - 0x31]
sub eax, dword [rbp - 0x41]
movd xmm1, eax
mov eax, dword [rbp - 0x35]
sub eax, dword [rbp - 0x3d]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0x10], xmm1
movss dword [rbx + 0x14], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rbp - 0x31]
xorps xmm1, xmm1
mov rax, rcx
xorps xmm0, xmm0
sub rax, qword [0x140041060]
cvtsi2ss xmm0, qword [0x140041068]
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rbx + 0x18], xmm1
mov qword [0x140041060], rcx
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x10
and al, 1
mov byte [rbx + 0x130], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, 0x12
and al, 1
mov byte [rbx + 0x131], al
call qword [sym.imp.USER32.dll_GetKeyState]
mov rdi, qword [0x140040f00]
shr eax, 0xf
and al, 1
mov byte [rbx + 0x133], 0
mov byte [rbx + 0x132], al
cmp byte [rdi + 0x3af], 0
je 0x14002ed90
cvttss2si eax, dword [rdi + 0x118]
mov rcx, qword [0x140041058]
lea rdx, [rbp - 0x21]
mov dword [rbp - 0x21], eax
cvttss2si eax, dword [rdi + 0x11c]
mov dword [rbp - 0x1d], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rbp - 0x1d]
mov ecx, dword [rbp - 0x21]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rdi + 0x118], 0xff7fffff
mov dword [rdi + 0x11c], 0xff7fffff
call qword [sym.imp.USER32.dll_GetActiveWindow]
cmp rax, qword [0x140041058]
jne 0x14002edf6
lea rcx, [rbp - 0x49]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x14002edf6
mov rcx, qword [0x140041058]
lea rdx, [rbp - 0x49]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x14002edf6
movd xmm0, dword [rbp - 0x49]
movd xmm1, dword [rbp - 0x45]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rdi + 0x118], xmm0
movss dword [rdi + 0x11c], xmm1
cmp byte [rbx + 0xd0], 0
je 0x14002ee06
mov eax, 0xffffffff
jmp 0x14002ee13
mov rax, qword [0x140040f00]
mov eax, dword [rax + 0x1d70]
cmp dword [0x140040178], eax
je 0x14002ee26
mov dword [0x140040178], eax
call fcn.140022610
call fcn.140005a00
mov rcx, qword [0x140040f00]
xor edi, edi
movss xmm6, dword [0x140039838]
xorps xmm7, xmm7
mov dword [rcx + 0x1af4], 0x44098000
mov dword [rcx + 0x1af8], 0x443b8000
mov dword [rcx + 0x1acc], 1
cmp byte [0x140040670], dil
je 0x14002f344
call fcn.14001a2e0
movaps xmm1, xmmword [0x1400399d0]
movaps xmm0, xmmword [0x140039f90]
movups xmmword [rcx + 0x1600], xmm1
movaps xmm1, xmmword [0x140039d30]
movups xmmword [rcx + 0x1620], xmm1
movups xmmword [rcx + 0x15f0], xmm0
movaps xmm0, xmmword [0x140039cb0]
xorps xmm1, xmm1
movups xmmword [rcx + 0x1640], xmm1
movaps xmm1, xmmword [0x140039b90]
movups xmmword [rcx + 0x1610], xmm0
movaps xmm0, xmmword [0x140039d10]
movups xmmword [rcx + 0x1660], xmm1
movaps xmm1, xmmword [0x140039bf0]
movups xmmword [rcx + 0x1630], xmm0
movaps xmm0, xmmword [0x140039d30]
movups xmmword [rcx + 0x1680], xmm1
movups xmmword [rcx + 0x1650], xmm0
movaps xmm0, xmmword [0x140039d50]
xorps xmm1, xmm1
movups xmmword [rcx + 0x16a0], xmm1
movaps xmm1, xmmword [0x1400399a0]
movups xmmword [rcx + 0x1670], xmm0
movups xmmword [rcx + 0x16c0], xmm1
xorps xmm0, xmm0
xorps xmm1, xmm1
movups xmmword [rcx + 0x1690], xmm0
movups xmmword [rcx + 0x16b0], xmm0
movups xmmword [rcx + 0x16d0], xmm0
movups xmmword [rcx + 0x16f0], xmm0
movaps xmm0, xmmword [0x140039f70]
movups xmmword [rcx + 0x16e0], xmm1
movups xmmword [rcx + 0x1700], xmm1
movaps xmm1, xmmword [0x140039a00]
movups xmmword [rcx + 0x1710], xmm0
movups xmmword [rcx + 0x1720], xmm1
movups xmmword [rcx + 0x1730], xmm1
movaps xmm0, xmm1
movaps xmm1, xmmword [0x140039f80]
movaps xmm0, xmmword [0x140039d60]
movups xmmword [rcx + 0x1740], xmm1
movaps xmm1, xmmword [0x140039d40]
movups xmmword [rcx + 0x1750], xmm0
movaps xmm0, xmmword [0x140039cd0]
movups xmmword [rcx + 0x1760], xmm1
movaps xmm1, xmmword [0x140039f70]
movups xmmword [rcx + 0x1770], xmm0
movups xmmword [rcx + 0x1780], xmm1
movups xmmword [rcx + 0x1790], xmm1
movaps xmm0, xmm1
movaps xmm1, xmmword [0x140039b40]
movaps xmm0, xmmword [0x140039c30]
movups xmmword [rcx + 0x17a0], xmm1
movaps xmm1, xmmword [0x140039ee0]
movups xmmword [rcx + 0x17c0], xmm1
movaps xmm1, xmmword [0x140039d60]
movups xmmword [rcx + 0x17b0], xmm0
movaps xmm0, xmmword [0x140039d40]
movups xmmword [rcx + 0x17e0], xmm1
movaps xmm1, xmmword [0x140039ea0]
movups xmmword [rcx + 0x17d0], xmm0
movups xmmword [rcx + 0x17f0], xmm0
movaps xmm0, xmmword [0x140039e10]
movups xmmword [rcx + 0x1850], xmm1
movaps xmm1, xmmword [0x140039d90]
movups xmmword [rcx + 0x1860], xmm0
movaps xmm0, xmmword [0x140039d80]
movups xmmword [rcx + 0x1870], xmm1
movaps xmm1, xmmword [0x140039ac0]
movups xmmword [rcx + 0x1880], xmm0
movaps xmm0, xmmword [0x140039cc0]
movups xmmword [rcx + 0x1890], xmm1
movups xmmword [rcx + 0x18a0], xmm0
mov dword [rcx + 0x155c], edi
mov dword [rcx + 0x158c], edi
mov dword [rcx + 0x157c], edi
mov dword [rcx + 0x15c0], 0x3f800000
mov dword [rcx + 0x1af4], 0x43960000
mov dword [rcx + 0x1af8], 0x437a0000
mov dword [rcx + 0x1acc], 1
movss xmm2, dword [rcx + 0x3b4]
lea rdx, str.FPS____.1f_Fps___n
cvtps2pd xmm2, xmm2
lea rcx, [rbp - 0x19]
movq r8, xmm2
call fcn.140031200
lea rcx, str.Braving_Private_V3
call fcn.140023310
mov rbx, qword [0x140040f00]
mov rax, qword [rbx + 0x19f8]
mov byte [rax + 0x7c], 1
mov rax, qword [rbx + 0x19f8]
cmp byte [rax + 0x7f], dil
jne 0x14002f344
movsxd rcx, dword [rax + 0x1e0]
xor edx, edx
mov rax, qword [rax + 0x1e8]
mov r8d, dword [rax + rcx*4 - 4]
lea rcx, str.MAIN_MENU
call fcn.1400026d0
cmp dword [rbx + 0x1a24], eax
jne 0x14002f10e
mov dword [rbx + 0x1a2c], eax
cmp dword [rbx + 0x1a28], eax
jne 0x14002f11d
mov byte [rbx + 0x1a37], 1
mov ecx, eax
call fcn.140029b40
test al, al
je 0x14002f344
mov dword [rbp - 0x31], 0xb7b9ba93
mov rcx, rdi
mov dword [rbp - 0x2d], 0xa5f8a3b9
mov dword [rbp - 0x29], 0x91999ffa
mov word [rbp - 0x25], 0x100
nop word [rax + rax]
lea eax, [rcx - 0x2e]
xor byte [rbp + rcx - 0x31], al
inc rcx
cmp rcx, 0xc
jb 0x14002f150
lea rdx, [0x140040679]
mov byte [rbp - 0x24], dil
lea rcx, [rbp - 0x31]
call fcn.1400242c0
mov rcx, rdi
mov dword [rbp - 0x31], 0xa2bbbb81
mov dword [rbp - 0x2d], 0x8f9791f6
mov word [rbp - 0x29], 0x100
nop dword [rax + rax]
lea eax, [rcx - 0x2e]
xor byte [rbp + rcx - 0x31], al
inc rcx
cmp rcx, 8
jb 0x14002f190
lea rdx, [0x140040672]
mov byte [rbp - 0x28], dil
lea rcx, [rbp - 0x31]
call fcn.1400242c0
lea rax, [rbp - 0x49]
movss dword [rsp + 0x30], xmm6
lea r9, [rbp - 0x21]
mov qword [rsp + 0x20], rax
lea r8, [0x14004066c]
mov dword [rbp - 0x49], 0x4479c000
lea rcx, [0x1400396f4]
mov dword [rbp - 0x21], 0x41c80000
call fcn.140024920
lea rax, [rbp - 0x21]
movss dword [rsp + 0x30], xmm6
lea r9, [rbp - 0x49]
mov qword [rsp + 0x20], rax
lea r8, [0x140040668]
mov dword [rbp - 0x21], 0x4479c000
lea rcx, str.ESP_DISTANCE
mov dword [rbp - 0x49], 0x41c80000
call fcn.140024920
movss xmm0, dword [0x140040664]
ucomiss xmm0, xmm7
jp 0x14002f22b
je 0x14002f265
movss xmm0, dword [0x1400398b8]
lea rax, [rbp - 0x21]
movss dword [rsp + 0x30], xmm6
lea r9, [rbp - 0x49]
lea r8, [0x140040664]
movss dword [rbp - 0x21], xmm0
lea rcx, str.Smooth
mov qword [rsp + 0x20], rax
mov dword [rbp - 0x49], 0x3f800000
call fcn.140024920
lea rcx, [0x140039710]
call fcn.140023310
mov rcx, rdi
mov dword [rbp - 0x31], 0xa5b5bd81
mov dword [rbp - 0x2d], 0xbcb6beba
mov word [rbp - 0x29], 0xa9
mov byte [rbp - 0x27], 1
nop dword [rax]
lea eax, [rcx - 0x2e]
xor byte [rbp + rcx - 0x31], al
inc rcx
cmp rcx, 9
jb 0x14002f290
lea rdx, [0x140040683]
mov byte [rbp - 0x27], dil
lea rcx, [rbp - 0x31]
call fcn.1400242c0
mov rcx, rdi
mov dword [rbp - 0x31], 0xf5acbc90
mov dword [rbp - 0x2d], 0xb7aab895
mov dword [rbp - 0x29], 0xb9b9a9bf
mov word [rbp - 0x25], 0x100
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx - 0x2e]
xor byte [rbp + rcx - 0x31], al
inc rcx
cmp rcx, 0xc
jb 0x14002f2e0
lea rdx, [0x14004067b]
mov byte [rbp - 0x24], dil
lea rcx, [rbp - 0x31]
call fcn.1400242c0
mov rcx, rdi
mov dword [rbp - 0x21], 0xacbc90
mov byte [rbp - 0x1d], 1
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx - 0x2e]
xor byte [rbp + rcx - 0x21], al
inc rcx
cmp rcx, 3
jb 0x14002f320
lea rdx, [0x14004067a]
mov byte [rbp - 0x1d], dil
lea rcx, [rbp - 0x21]
call fcn.1400242c0
cmp byte [0x140040735], dil
movss xmm2, dword [0x14003985c]
movss xmm1, dword [0x14004065c]
jne 0x14002f41c
ucomiss xmm1, xmm6
jp 0x14002f37d
jne 0x14002f37d
movss xmm0, dword [0x1400398d0]
movss dword [0x140040654], xmm0
jmp 0x14002f41c
ucomiss xmm1, xmm2
jp 0x14002f399
jne 0x14002f399
movss xmm0, dword [0x1400398cc]
movss dword [0x140040654], xmm0
jmp 0x14002f41c
ucomiss xmm1, dword [0x14003986c]
jp 0x14002f3b6
jne 0x14002f3b6
movss xmm0, dword [0x1400398bc]
movss dword [0x140040654], xmm0
jmp 0x14002f41c
ucomiss xmm1, dword [0x140039880]
jp 0x14002f3d3
jne 0x14002f3d3
movss xmm0, dword [0x140039890]
movss dword [0x140040654], xmm0
jmp 0x14002f41c
ucomiss xmm1, dword [0x140039884]
jp 0x14002f3f0
jne 0x14002f3f0
movss xmm0, dword [0x140039888]
movss dword [0x140040654], xmm0
jmp 0x14002f41c
ucomiss xmm1, dword [0x140039888]
jp 0x14002f407
jne 0x14002f407
mov dword [0x140040654], 0x40a00000
jmp 0x14002f41c
ucomiss xmm1, dword [0x140039890]
jp 0x14002f41c
jne 0x14002f41c
mov dword [0x140040654], 0x40000000
movss xmm0, dword [0x140040658]
ucomiss xmm0, xmm7
jp 0x14002f437
jne 0x14002f437
mov dword [0x140040650], 0x40000000
jmp 0x14002f47e
ucomiss xmm0, xmm6
jp 0x14002f44a
jne 0x14002f44a
mov dword [0x140040650], 0x3f800000
jmp 0x14002f47e
ucomiss xmm0, xmm2
jp 0x14002f463
jne 0x14002f463
movss xmm0, dword [0x1400398ac]
movss dword [0x140040650], xmm0
jmp 0x14002f47e
ucomiss xmm1, dword [0x1400398dc]
jp 0x14002f47e
jne 0x14002f47e
movss xmm0, dword [0x1400398d4]
movss dword [0x140040654], xmm0
call fcn.14002cd60
call fcn.140006cd0
mov rcx, qword [0x140041098]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 7]
call qword [rax + 0x1c8]
mov rcx, qword [0x140041098]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 0x1b]
call qword [rax + 0x1c8]
mov rcx, qword [0x140041098]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x140041098]
mov r9d, 1
mov dword [rsp + 0x30], edi
xor r8d, r8d
movss dword [rsp + 0x28], xmm6
xor edx, edx
mov dword [rsp + 0x20], edi
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [0x140041098]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x14002f53a
call fcn.140007170
mov rcx, qword [0x140040f00]
add rcx, 0x1c70
cmp byte [rcx], dil
cmove rcx, rdi
call fcn.140021bf0
mov rcx, qword [0x140041098]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x140041098]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdi
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x14002f5fc
mov rcx, qword [0x140041098]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x14002f5fc
cmp qword [0x140041048], rdi
je 0x14002f5e0
mov rcx, qword [0x140041050]
test rcx, rcx
je 0x14002f59c
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140041050], rdi
mov rcx, qword [0x140041040]
test rcx, rcx
je 0x14002f5b5
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140041040], rdi
mov rcx, qword [0x140041038]
mov rbx, qword [0x140040f00]
test rcx, rcx
je 0x14002f5ce
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [0x140041038], rdi
mov rax, qword [rbx + 0xa0]
mov qword [rax + 8], rdi
mov rcx, qword [0x140041098]
lea rdx, [0x140040f20]
mov rax, qword [rcx]
call qword [rax + 0x80]
call fcn.1400224c0
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.140032840
lea r11, [rsp + 0xe0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop rbp
ret