Function at 0x18004ff10
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x1410]
mov eax, 0x1510
call fcn.180139d90
sub rsp, rax
movaps xmmword [rsp + 0x1500], xmm6
mov rax, qword [0x1801bc5d0]
xor rax, rsp
mov qword [rbp + 0x13a0], rax
mov qword [rsp + 0x1530], rsi
mov qword [rsp + 0x1540], r14
xor r14d, r14d
cmp byte [0x1801bc629], r14b
mov qword [rsp + 0x1548], r15
je 0x180050605
lea ecx, [r14 + 0x52]
mov qword [rsp + 0x1538], r12
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x180050147
mov ecx, dword [0x1801cf51c]
call fcn.1800169d0
test eax, eax
je 0x180050069
call fcn.180007bb0
mov edx, eax
lea rcx, [rsp + 0x78]
xor r8d, r8d
call fcn.180007530
call qword [sym.imp.MSVCP140.dll_unsigned_int___cdecl_std::_Random_device_void_]
mov dword [rbp + 0x1394], 0xffffffff
lea edx, [r14 + 1]
mov dword [rbp + 0x14], eax
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, edx
mov dword [rbp + rdx*4 + 0x14], eax
inc rdx
cmp rdx, 0x270
jb 0x18004ffd0
lea rcx, [rbp + 0x10]
mov dword [rbp + 0x10], 0x270
call fcn.180050770
mov ecx, eax
imul rbx, rcx, 0x64
cmp ebx, 0x5f
ja 0x180050024
nop word [rax + rax]
lea rcx, [rbp + 0x10]
call fcn.180050770
mov ecx, eax
imul rbx, rcx, 0x64
cmp ebx, 0x60
jb 0x180050010
mov ecx, 0x9ca6f755
shr rbx, 0x20
call fcn.18000adb0
movss xmm3, dword [rbp - 0x78]
lea eax, [rbx + 1]
movss xmm2, dword [rbp - 0x80]
mov ecx, 0x65948212
movss xmm1, dword [rsp + 0x78]
mov dword [rsp + 0x30], 0x9ca6f755
mov dword [rsp + 0x28], eax
call fcn.18000abc0
xor edx, edx
mov ecx, eax
call fcn.1800170e0
jmp 0x180050147
mov ecx, dword [0x1801cf51c]
call fcn.180016a10
test eax, eax
je 0x180050147
mov r15d, dword [0x1801cf51c]
mov ecx, r15d
mov byte [0x1801cf105], 1
call fcn.1800173c0
test eax, eax
je 0x18005012e
mov edi, r14d
nop dword [rax]
mov rax, qword gs:[0x20]
mov rbx, qword [rax]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rsi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rsi, 0x989680
jne 0x1800500ca
imul rax, rax, 0x64
jmp 0x1800500e5
cqo
idiv rsi
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rsi
add rax, r8
add rax, 0xee6b280
cmp byte [rbx + 0x20], r14b
jne 0x1800500f5
mov byte [rbx + 0x20], 1
mov qword [rbx + 0x18], rax
mov rcx, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
mov ecx, r15d
call fcn.18004fed0
test eax, eax
je 0x180050147
mov eax, edi
xorps xmm1, xmm1
mov ecx, r15d
cvtsi2ss xmm1, rax
call fcn.1800479c0
inc edi
cmp edi, 0x19
jb 0x1800500a0
jmp 0x180050147
xor r9d, r9d
lea r8, str.Debug_Message
lea rdx, str.Failed_to_request_control_of_the_vehicle_
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, 0x45
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x1800501ca
mov ecx, dword [0x1801cf51c]
call fcn.1800169d0
test eax, eax
je 0x180050170
mov r8d, 1
jmp 0x180050182
mov ecx, dword [0x1801cf51c]
call fcn.180016a10
test eax, eax
je 0x1800501ca
xor r8d, r8d
mov edx, dword [0x1801cf51c]
lea rcx, [rsp + 0x78]
call fcn.180007530
movss xmm0, dword [0x1801a038c]
mov r9d, 0x19
movss xmm2, dword [rbp - 0x78]
movss xmm1, dword [rbp - 0x80]
mov dword [rsp + 0x40], r14d
mov dword [rsp + 0x30], r14d
mov dword [rsp + 0x28], r14d
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rsp + 0x78]
call fcn.180017180
mov ecx, 0x55
movaps xmmword [rsp + 0x14f0], xmm7
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
mov r12, qword [rsp + 0x1538]
jae 0x1800502f6
mov ecx, dword [0x1801cf51c]
call fcn.1800169d0
mov ecx, dword [0x1801cf51c]
test eax, eax
je 0x1800502e2
mov edi, r14d
call fcn.1800075a0
test eax, eax
jne 0x1800502f6
movss xmm7, dword [0x1801a039c]
xorps xmm6, xmm6
cmp edi, 2
jge 0x1800502f6
mov edx, dword [0x1801cf51c]
lea rcx, [rsp + 0x78]
xor r8d, r8d
movss dword [rsp + 0x28], xmm6
call fcn.180007aa0
mov edx, dword [0x1801cf51c]
lea rcx, [rbp - 0x70]
mov r8d, 0xdead
movss dword [rsp + 0x28], xmm7
call fcn.180007aa0
lea rcx, str.WEAPON_STUNGUN
call fcn.180007700
mov ebx, eax
call fcn.180007bb0
movss xmm0, dword [rbp - 0x78]
movss xmm1, dword [rbp - 0x80]
movss xmm3, dword [rsp + 0x78]
movss xmm2, dword [rbp - 0x60]
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x30], r14d
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rbp - 0x70]
movss dword [rsp + 0x20], xmm1
movss xmm1, dword [rbp - 0x68]
call fcn.180007740
mov ecx, dword [0x1801cf51c]
xor r8d, r8d
lea edx, [r8 + 0x64]
call fcn.180013fc0
mov ecx, dword [0x1801cf51c]
inc edi
call fcn.1800075a0
test eax, eax
je 0x180050224
jmp 0x1800502f6
call fcn.180016a10
test eax, eax
je 0x1800502f6
mov ecx, dword [0x1801cf51c]
call fcn.18004fe40
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18005046c
mov ecx, dword [0x1801cf51c]
call fcn.180016860
test eax, eax
je 0x180050414
call fcn.18004f860
mov edx, dword [0x1801cf51c]
lea rcx, [rbp - 0x10]
mov r8d, 1
call fcn.180007530
movss xmm1, dword [rbp - 8]
movss xmm0, dword [rbp - 0x10]
call fcn.18004f920
mov ecx, dword [0x1801cf51c]
call fcn.1800169d0
test eax, eax
jne 0x180050360
mov ecx, dword [0x1801cf51c]
call fcn.180016a10
call fcn.18004fa40
lea rcx, str.Hacks_Keybinds:
call fcn.180027110
call fcn.18004faf0
call fcn.18004fb40
call fcn.18004fbd0
movss xmm1, dword [0x1801a0584]
call fcn.18004fa80
call fcn.18004fa40
lea rcx, str.Hack_1:_F1
call fcn.180027110
call fcn.18004faf0
call fcn.18004fb40
call fcn.18004fbd0
movss xmm1, dword [0x1801a0688]
call fcn.18004fa80
call fcn.18004fa40
lea rcx, str.Hack_2:_F2
call fcn.180027110
call fcn.18004faf0
call fcn.18004fb40
call fcn.18004fbd0
movss xmm1, dword [0x1801a0714]
call fcn.18004fa80
call fcn.18004fa40
lea rcx, str.Hack_3:_F3
call fcn.180027110
call fcn.18004faf0
call fcn.18004fb40
call fcn.18004fbd0
movss xmm1, dword [0x1801a07a4]
call fcn.18004fa80
mov ecx, dword [0x1801cf51c]
call fcn.1800169d0
test eax, eax
je 0x180050437
mov r8d, 1
call fcn.18004fc00
mov byte [0x1801cf106], 1
jmp 0x18005043f
xor r8d, r8d
call fcn.18004fc00
mov ecx, dword [0x1801cf51c]
call fcn.180016a10
test eax, eax
je 0x180050462
mov r8d, 1
call fcn.18004fc00
mov byte [0x1801cf105], 1
jmp 0x18005047a
xor r8d, r8d
call fcn.18004fc00
jmp 0x18005047a
mov byte [0x1801cf106], r14b
mov byte [0x1801cf105], r14b
call fcn.180007bb0
call fcn.1800142e0
mov ecx, eax
lea rdx, [0x1801cf51c]
call fcn.180017a40
test eax, eax
je 0x1800505fd
mov ecx, 2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800505fd
call fcn.18004f860
mov ecx, dword [0x1801cf51c]
call fcn.1800169d0
test eax, eax
jne 0x1800504d5
mov ecx, dword [0x1801cf51c]
call fcn.180016a10
test eax, eax
je 0x1800505fd
movaps xmmword [rsp + 0x14e0], xmm8
movaps xmmword [rsp + 0x14d0], xmm9
movaps xmmword [rsp + 0x14c0], xmm10
movaps xmmword [rsp + 0x14b0], xmm11
call fcn.180007bb0
mov edx, eax
lea rcx, [rbp - 0x40]
mov r8d, 1
call fcn.180007530
mov edx, dword [0x1801cf51c]
lea rcx, [rbp - 0x58]
mov r8d, 1
call fcn.180007530
movss xmm0, dword [0x1801a036c]
mov ebx, r14d
movss xmm9, dword [rbp - 0x48]
movss xmm6, dword [rbp - 0x30]
movss xmm10, dword [rbp - 0x50]
subss xmm9, xmm6
movss xmm7, dword [rbp - 0x38]
movss xmm11, dword [rbp - 0x58]
subss xmm10, xmm7
movss xmm8, dword [rbp - 0x40]
subss xmm11, xmm8
mulss xmm9, xmm0
mulss xmm10, xmm0
mulss xmm11, xmm0
nop
mov dword [rsp + 0x40], 0xff
movaps xmm0, xmm9
movaps xmm2, xmm10
mov dword [rsp + 0x38], 0xff
movd xmm1, ebx
cvtdq2ps xmm1, xmm1
mov dword [rsp + 0x30], 0xff
mulss xmm0, xmm1
movaps xmm3, xmm1
mulss xmm2, xmm1
movaps xmm1, xmm7
addss xmm0, xmm6
mulss xmm3, xmm11
addss xmm2, xmm7
addss xmm3, xmm8
movss dword [rsp + 0x28], xmm0
movaps xmm0, xmm8
movss dword [rsp + 0x20], xmm2
movaps xmm2, xmm6
call fcn.18000a980
inc ebx
cmp ebx, 0x1f4
jl 0x180050570
movaps xmm11, xmmword [rsp + 0x14b0]
movaps xmm10, xmmword [rsp + 0x14c0]
movaps xmm9, xmmword [rsp + 0x14d0]
movaps xmm8, xmmword [rsp + 0x14e0]
movaps xmm7, xmmword [rsp + 0x14f0]
cmp byte [0x1801cf107], r14b
je 0x18005067a
nop
mov ecx, 0x7d8
call fcn.1801392a0
mov ecx, r14d
mov r15, rax
mov dword [rax], 0xfa
call fcn.180007b70
mov ecx, eax
mov rdx, r15
call fcn.18000ad30
movsxd rsi, eax
test eax, eax
jle 0x180050669
lea rbx, [r15 + 8]
mov ecx, dword [rbx]
call fcn.180016860
test eax, eax
je 0x18005065f
mov edi, dword [rbx]
mov ecx, edi
call fcn.1800075a0
test eax, eax
jne 0x18005065f
mov ecx, edi
call fcn.180048150
add rbx, 8
sub rsi, 1
jne 0x180050640
mov rcx, r15
call fcn.180138eb0
inc r14d
cmp r14d, 0x20
jl 0x180050610
cmp byte [0x1801cf518], 0
mov r15, qword [rsp + 0x1548]
mov r14, qword [rsp + 0x1540]
mov rsi, qword [rsp + 0x1530]
je 0x180050740
call fcn.180007bb0
mov r8d, 1
lea rcx, [rbp - 0x28]
mov edx, eax
mov ebx, eax
call fcn.180007530
movss xmm5, dword [0x1801a06d8]
movss xmm2, dword [rbp - 0x18]
movss xmm1, dword [rbp - 0x20]
movaps xmm6, xmm2
movss xmm0, dword [rbp - 0x28]
addss xmm6, xmm5
movaps xmm4, xmm1
subss xmm2, xmm5
movaps xmm3, xmm0
addss xmm4, xmm5
addss xmm3, xmm5
subss xmm1, xmm5
movss dword [rsp + 0x28], xmm6
subss xmm0, xmm5
movss dword [rsp + 0x20], xmm4
call fcn.18004fca0
lea rdx, [rsp + 0x70]
mov ecx, ebx
mov edi, eax
call fcn.18000ad30
test eax, eax
je 0x180050739
mov ecx, dword [rsp + 0x70]
cmp ecx, ebx
je 0x180050729
call fcn.18004f8b0
lea rcx, [rsp + 0x70]
call fcn.18004fc70
lea rdx, [rsp + 0x70]
mov ecx, ebx
call fcn.18000ad30
test eax, eax
jne 0x180050712
mov ecx, edi
call fcn.18004fdf0
mov rcx, qword [rbp + 0x13a0]
xor rcx, rsp
call fcn.180138e90
movaps xmm6, xmmword [rsp + 0x1500]
add rsp, 0x1510
pop rdi
pop rbx
pop rbp
ret