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

Disassembly:
mov rax, rsp
sub rsp, 0xb8
cmp byte [0x1805abe2e], 0
je 0x1801388ed
cmp byte [0x1805ab814], 0
je 0x1801388ed
cmp byte [0x1805684f5], 0
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov rbp, qword [str.stt_prop_track_start_02]
mov qword [rax - 0x10], r14
jne 0x180138259
cmp byte [0x1805684f6], 0
je 0x180138268
mov rcx, rbp
call fcn.180136290
mov byte [0x1805684f5], 0
cmp byte [0x1805ab815], 0
jne 0x180138304
cmp byte [0x1805684f4], 0
je 0x1801382cc
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov rcx, rax
mov eax, 0x10624dd3
mul ecx
mov eax, 0x88888889
mov ecx, edx
shr ecx, 6
mul ecx
shr edx, 5
imul eax, edx, 0x3c
sub ecx, eax
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xf
cmp ecx, eax
jne 0x1801382cc
mov byte [0x18054ed7f], 0
mov byte [0x1805684f4], 0
jmp 0x1801382e1
cmp byte [0x18054ed7f], 0
je 0x1801382e1
lea rcx, str.F4_or_R3_activate_walk_in_sky_and_in_a_car__n_press_q_for_up__and_z_for_down__n
call fcn.18006c2c0
mov ecx, 0x5a
call fcn.180136170
test al, al
jne 0x1801382fd
mov ecx, 0x51
call fcn.180136170
test al, al
je 0x180138304
mov byte [0x1805ab815], 1
xor r14d, r14d
mov dword [0x1805870e8], 2
mov qword [rsp + 0xc8], r14
movabs rax, 0x91aef906bca88877
mov qword [0x1805dd278], rax
mov dword [rsp + 0xc8], 2
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc8], r14
mov qword [0x180587120], rax
mov dword [rsp + 0xc8], 0x4f
mov rax, qword [rsp + 0xc8]
mov qword [0x180587128], rax
mov dword [0x1805870f8], r14d
call fcn.1801e4620
lea ecx, [r14 + 0x73]
movzx ebx, byte [rax]
and bl, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x180138393
test bl, bl
jne 0x180138393
movzx eax, byte [0x1805ab80b]
jmp 0x1801383a3
cmp byte [0x1805ab80b], r14b
sete al
mov byte [0x1805ab80b], al
test al, al
je 0x1801388d5
mov qword [rsp + 0xd8], rsi
mov qword [rsp + 0xb0], rdi
mov rdi, 0xffffffffffffffff
mov qword [rsp + 0xa0], r15
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x70], xmm8
inc rdi
cmp byte [rdi + rbp], r14b
jne 0x1801383e0
mov esi, r14d
mov ebx, r14d
test rdi, rdi
je 0x180138418
mov rax, r14
movsx ecx, byte [rax + rbp]
call fcn.180370a88
add eax, ebx
inc esi
imul ebx, eax, 0x401
mov eax, ebx
shr eax, 6
xor ebx, eax
mov eax, esi
cmp rax, rdi
jb 0x1801383f7
movabs r15, 0xd80958fc74e988a6
mov dword [0x1805870e8], r14d
mov qword [0x1805dd278], r15
lea ebx, [rbx + rbx*8]
mov dword [0x1805870f8], r14d
call fcn.1801e4620
mov qword [rsp + 0xc8], r14
mov edi, dword [rax]
movabs rax, 0x3fef770d40960d5a
mov qword [0x1805dd278], rax
mov dword [rsp + 0xc8], edi
mov rax, qword [rsp + 0xc8]
mov qword [0x180587120], rax
mov dword [0x1805870f8], r14d
mov qword [0x180587128], r14
mov dword [0x1805870e8], 2
call fcn.1801e4620
movss xmm3, dword [0x18050552c]
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], 1
movups xmm7, xmmword [rax]
movsd xmm6, qword [rax + 0x10]
mov eax, ebx
shr eax, 0xb
movaps xmm8, xmm7
xor eax, ebx
shufps xmm8, xmm7, 0xaa
imul ecx, eax, 0x8001
movaps xmm2, xmm6
movaps xmm1, xmm8
movsd qword [rsp + 0x60], xmm6
movaps xmm0, xmm7
mov dword [rsp + 0x20], ecx
call fcn.18015bc90
mov qword [rsp + 0xc8], r14
mov ebx, eax
mov dword [rsp + 0xc8], eax
movabs rsi, 0x7239b21a38f536ba
mov rax, qword [rsp + 0xc8]
mov qword [0x180587120], rax
mov dword [0x1805870f8], r14d
mov qword [0x1805dd278], rsi
mov dword [0x1805870e8], 1
call fcn.1801e4620
cmp dword [rax], r14d
jne 0x1801385f8
cmp byte [0x1805abe2e], r14b
je 0x1801385f8
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
mov r8, rax
mov eax, 0x10624dd3
mul r8d
mov eax, 0x10624dd3
shr edx, 6
imul ecx, edx, 0x3e8
sub r8d, ecx
imul r8d
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xfa
cmp r8d, eax
jne 0x1801388a7
lea rdx, [rsp + 0x50]
movaps xmmword [rsp + 0x50], xmm7
mov rcx, rbp
movsd qword [rsp + 0x60], xmm6
call fcn.180137390
mov qword [rsp + 0xc8], r14
movabs rax, 0x428ca6dbd1094446
mov qword [0x1805dd278], rax
mov dword [rsp + 0xc8], ebx
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc8], r14
mov qword [0x180587120], rax
mov dword [rsp + 0xc8], 1
mov rax, qword [rsp + 0xc8]
mov qword [0x180587128], rax
mov dword [0x1805870f8], r14d
mov dword [0x1805870e8], 2
call fcn.1801e4620
jmp 0x1801388a7
mov qword [rsp + 0xc8], r14
mov dword [rsp + 0xc8], ebx
mov rax, qword [rsp + 0xc8]
mov qword [0x180587120], rax
mov dword [0x1805870f8], r14d
mov qword [0x1805dd278], rsi
mov dword [0x1805870e8], 1
call fcn.1801e4620
cmp dword [rax], r14d
je 0x1801388a7
cmp byte [0x1805abe2e], r14b
je 0x1801388a7
mov dword [0x1805870e8], r14d
mov dword [0x1805870f8], r14d
mov qword [0x1805dd278], r15
call fcn.1801e4620
mov qword [rsp + 0xc8], r14
mov edx, dword [rax]
movabs rax, 0x9a9112a0fe9a4713
mov dword [rsp + 0xc8], edx
mov qword [0x1805dd278], rax
mov rax, qword [rsp + 0xc8]
mov qword [0x180587120], rax
mov dword [0x1805870f8], r14d
mov qword [0x180587128], r14
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], r14d
je 0x1801388a7
mov ecx, 0x5a
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1801387cc
mov qword [rsp + 0xc8], r14
movabs rsi, 0xe2587f8cbbd87b1d
mov dword [rsp + 0xc8], 2
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc8], r14
mov qword [0x180587120], rax
mov dword [rsp + 0xc8], 0xe6
mov rax, qword [rsp + 0xc8]
mov qword [0x180587128], rax
mov dword [0x1805870f8], r14d
mov qword [0x1805dd278], rsi
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], r14d
jne 0x1801387cc
mov ecx, 0x51
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x1801387c2
mov qword [rsp + 0xc8], r14
mov dword [rsp + 0xc8], 2
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xc8], r14
mov qword [0x180587120], rax
mov dword [rsp + 0xc8], 0xe7
mov rax, qword [rsp + 0xc8]
mov qword [0x180587128], rax
mov dword [0x1805870f8], r14d
mov qword [0x1805dd278], rsi
mov dword [0x1805870e8], 2
call fcn.1801e4620
cmp dword [rax], r14d
jne 0x1801387c2
subss xmm6, dword [0x1805685c4]
jmp 0x1801387d4
subss xmm6, dword [0x1805685c0]
jmp 0x1801387d4
subss xmm6, dword [0x1805685bc]
movabs rax, 0xafbd61cc738d9eb9
mov qword [rsp + 0xc8], r14
mov qword [0x1805dd278], rax
mov dword [rsp + 0xc8], edi
mov rax, qword [rsp + 0xc8]
mov qword [0x180587120], rax
mov dword [0x1805870f8], r14d
mov qword [0x180587128], r14
mov dword [0x1805870e8], 2
call fcn.1801e4620
mov dword [rsp + 0x28], 1
xorps xmm2, xmm2
xorps xmm1, xmm1
mov dword [rsp + 0x20], r14d
mov ecx, ebx
movsd xmm3, qword [rax + 0x10]
call fcn.18015bbb0
mov eax, dword [0x1805ab81c]
mov ecx, ebx
movss xmm3, dword [0x1805ab818]
movss xmm2, dword [0x1805ab824]
movss xmm1, dword [0x1805ab820]
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], eax
call fcn.18015bbb0
subss xmm8, dword [0x1805ab828]
subss xmm7, dword [0x1805ab82c]
subss xmm6, dword [0x1805685d8]
mov edx, ebx
movabs rcx, 0x621873ece1178967
movaps xmm3, xmm8
movaps xmm2, xmm7
movss dword [rsp + 0x20], xmm6
call fcn.180159e60
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x90]
mov r15, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xd8]
mov rdi, qword [rsp + 0xb0]
movaps xmm8, xmmword [rsp + 0x70]
mov rbp, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xa8]
add rsp, 0xb8
ret