Function at 0x180082140
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
sub rsp, 0xa8
cmp cl, 1
jne 0x1800828e9
mov rcx, qword [0x180109038]
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov qword [rax - 8], rdi
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
call fcn.18000c530
mov rax, qword [0x180109038]
lea rdx, str.GADGET_PARACHUTE
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rdx
movabs rdx, 0xd24d37cc275948cc
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
mov rax, qword [rcx]
mov ebx, dword [rax]
call fcn.18000c530
mov rcx, qword [0x180109038]
movabs rbp, 0xd80958fc74e988a6
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
mov r9b, 1
mov r8d, 1
mov edx, ebx
mov rcx, qword [rax]
mov ecx, dword [rcx]
call fcn.18007a580
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
mov r8b, 1
mov rcx, qword [rax]
mov edx, dword [rcx]
movabs rcx, 0x3882114bde571ad4
call fcn.18004ae20
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
xorps xmm7, xmm7
movss xmm0, dword [0x1800b147c]
mov r9d, 1
movss dword [rsp + 0x70], xmm7
mov r8d, r9d
movss dword [rsp + 0x68], xmm7
mov rcx, qword [rax]
movss dword [rsp + 0x60], xmm7
movss dword [rsp + 0x58], xmm7
movss dword [rsp + 0x50], xmm7
mov edx, dword [rcx]
movabs rcx, 0xd76632d99e4966c8
movss dword [rsp + 0x48], xmm7
movss dword [rsp + 0x40], xmm7
movss dword [rsp + 0x38], xmm0
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
mov dword [rsp + 0x20], 0
call fcn.18004aa00
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
movabs rsi, 0x944955fb2a3935c8
mov rdx, rsi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rax, qword [0x180109038]
lea rbx, str.scr_fbi5a
movabs rdi, 0x6c38af3693a69a91
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rbx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
mov rdx, rdi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
xorps xmm3, xmm3
movss xmm6, dword [0x1800b144c]
xorps xmm2, xmm2
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x58], 0
mov rcx, qword [rax]
mov byte [rsp + 0x50], 0
movss dword [rsp + 0x48], xmm6
mov dword [rsp + 0x40], 0xfedd
mov edx, dword [rcx]
lea rcx, str.scr_fbi5_ped_water_splash
movss dword [rsp + 0x38], xmm7
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
call fcn.18008fc50
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rsi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rax, qword [0x180109038]
mov rdx, rdi
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rbx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
lea rcx, str.scr_fbi5_ped_water_splash
mov byte [rsp + 0x60], 0
xorps xmm3, xmm3
mov byte [rsp + 0x58], 0
xorps xmm2, xmm2
mov byte [rsp + 0x50], 0
mov rdx, qword [rax]
movss dword [rsp + 0x48], xmm6
mov dword [rsp + 0x40], 0x8aae
movss dword [rsp + 0x38], xmm7
mov edx, dword [rdx]
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
call fcn.18008fc50
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rsi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rax, qword [0x180109038]
lea rbx, str.scr_familyscenem
mov rdx, rdi
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rbx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
mov rcx, qword [rax]
xorps xmm3, xmm3
mov byte [rsp + 0x60], 0
xorps xmm2, xmm2
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x50], 0
mov edx, dword [rcx]
lea rcx, str.scr_meth_pipe_smoke
movss dword [rsp + 0x48], xmm6
mov dword [rsp + 0x40], 0xfedd
movss dword [rsp + 0x38], xmm7
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
call fcn.18008fc50
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rsi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rax, qword [0x180109038]
mov rdx, rdi
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rbx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
lea rcx, str.scr_meth_pipe_smoke
mov byte [rsp + 0x60], 0
xorps xmm3, xmm3
mov byte [rsp + 0x58], 0
xorps xmm2, xmm2
mov byte [rsp + 0x50], 0
mov rdx, qword [rax]
movss dword [rsp + 0x48], xmm6
mov dword [rsp + 0x40], 0x8aae
movss dword [rsp + 0x38], xmm7
mov edx, dword [rdx]
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
call fcn.18008fc50
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rsi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rax, qword [0x180109038]
lea rbx, str.scr_agencyheistb
mov rdx, rdi
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rbx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x50], 0
mov rcx, qword [rax]
movss dword [rsp + 0x48], xmm6
mov dword [rsp + 0x40], 0xfedd
movss dword [rsp + 0x38], xmm7
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
mov edx, dword [rcx]
xorps xmm3, xmm3
lea rcx, str.scr_agency3b_elec_box
xorps xmm2, xmm2
call fcn.18008fc50
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rsi
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rax, qword [0x180109038]
mov rdx, rdi
mov ecx, dword [rax + 8]
mov qword [rax + rcx*8 + 0x130], rbx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rax, qword [0x180109038]
lea rcx, str.scr_agency3b_elec_box
mov byte [rsp + 0x60], 0
xorps xmm3, xmm3
mov byte [rsp + 0x58], 0
xorps xmm2, xmm2
mov byte [rsp + 0x50], 0
mov rdx, qword [rax]
movss dword [rsp + 0x48], xmm6
mov dword [rsp + 0x40], 0x8aae
movss dword [rsp + 0x38], xmm7
mov edx, dword [rdx]
movss dword [rsp + 0x30], xmm7
movss dword [rsp + 0x28], xmm7
movss dword [rsp + 0x20], xmm7
call fcn.18008fc50
mov rcx, qword [0x180109038]
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rcx, qword [0x180109038]
mov rax, qword [rcx]
mov ebx, dword [rax]
call fcn.18000c530
mov rax, qword [0x180109038]
movabs rdx, 0x886e37ec497200b6
mov qword [rsp + 0xb8], 0
mov dword [rsp + 0xb8], ebx
mov rcx, qword [rsp + 0xb8]
mov r8d, dword [rax + 8]
mov qword [rax + r8*8 + 0x130], rcx
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rcx, qword [0x180109038]
mov rdi, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xc8]
mov rax, qword [rcx]
cmp dword [rax], 0
je 0x1800828c9
call fcn.18000c530
mov rcx, qword [0x180109038]
mov rdx, rbp
call fcn.18000c5b0
mov rcx, qword [0x180109038]
mov rax, qword [rcx]
mov ebx, dword [rax]
call fcn.18000c530
mov rax, qword [0x180109038]
mov qword [rsp + 0xb8], 0
mov dword [rsp + 0xb8], ebx
mov rcx, qword [rsp + 0xb8]
mov edx, dword [rax + 8]
mov qword [rax + rdx*8 + 0x130], rcx
movabs rdx, 0x47e4e977581c5b55
inc dword [rax + 8]
mov rcx, qword [0x180109038]
call fcn.18000c5b0
mov rax, qword [0x180109038]
mov rcx, qword [rax]
cmp dword [rcx], 0
jne 0x1800828c9
mov ecx, 0x57
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movss xmm6, dword [0x1800b1498]
test ax, ax
je 0x18008287a
call fcn.18007f040
mov ecx, eax
xorps xmm3, xmm3
movaps xmm2, xmm6
xorps xmm1, xmm1
call fcn.1800777c0
mov ecx, 0x53
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800828a4
call fcn.18007f040
movss xmm2, dword [0x1800d44f4]
mov ecx, eax
xorps xmm3, xmm3
xorps xmm1, xmm1
call fcn.1800777c0
mov ecx, 0x10
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x1800828c9
call fcn.18007f040
mov ecx, eax
movaps xmm3, xmm6
xorps xmm2, xmm2
xorps xmm1, xmm1
call fcn.1800777c0
movaps xmm6, xmmword [rsp + 0x90]
mov rbp, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0x80]
add rsp, 0xa8
ret