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

Disassembly:
mov rax, rsp
push rbp
push rbx
push rdi
push r14
push r15
lea rbp, [rsp - 0x80]
sub rsp, 0x180
movss xmm0, dword [0x1801f0268]
mov r15d, dword [0x1801ca090]
mov qword [rax + 0x18], r12
movaps xmmword [rax - 0x38], xmm6
xorps xmm6, xmm6
ucomiss xmm0, xmm6
mov edi, 4
jne 0x1800199b5
call fcn.18000d340
mov rbx, rax
test rax, rax
je 0x1800199ad
mov rax, qword gs:[0x58]
mov rcx, qword [rax + r15*8]
mov eax, dword [rdi + rcx]
cmp dword [0x1801f06b8], eax
jle 0x1800199a1
lea rcx, [0x1801f06b8]
call fcn.180100388
cmp dword [0x1801f06b8], 0xffffffff
jne 0x1800199a1
mov ecx, 0xc566d10
call fcn.180007500
lea rcx, [0x1801f06b8]
mov qword [0x1801f0510], rax
call fcn.18010031c
mov rax, qword [0x1801f0510]
movss xmm6, dword [rbx + rax]
movss dword [0x1801f0268], xmm6
call fcn.18000d340
mov rcx, rax
call fcn.18000d1d0
mov r14, rax
movabs r12, 0x7fffffff0000
test rax, rax
je 0x180019d35
add rax, 0x20
cmp rax, 0x40000
jbe 0x180019d35
lea rcx, [rax + 8]
cmp rcx, r12
jae 0x180019d35
mov rcx, qword [rax]
add rcx, 0x18
cmp rcx, 0x40000
jbe 0x180019d35
lea rax, [rcx + 4]
cmp rax, r12
jae 0x180019d35
mov eax, dword [rcx]
cmp eax, 0x40547fde
je 0x180019a2a
cmp eax, 0x847b9bf0
jne 0x180019d35
cmp byte [0x1801ca3e4], 0
je 0x180019d35
call fcn.18000d340
mov rcx, rax
call fcn.18000b900
movss xmm0, dword [0x180156178]
comiss xmm0, dword [rax]
jbe 0x180019d35
mov qword [rsp + 0x1c8], r13
mov qword [rsp + 0x1b8], rsi
call fcn.18000d340
lea r13, [0x180000000]
mov rbx, rax
test rax, rax
je 0x180019bdf
mov rcx, qword gs:[0x58]
mov rsi, qword [rcx + r15*8]
mov ecx, dword [0x1801f10b0]
cmp ecx, dword [rsi + rdi]
jle 0x180019acf
lea rcx, [0x1801f10b0]
call fcn.180100388
mov ecx, dword [0x1801f10b0]
cmp ecx, 0xffffffff
jne 0x180019acf
mov ecx, 0xac5e6f4b
call fcn.180007500
lea rcx, [0x1801f10b0]
mov qword [0x1801f08e8], rax
call fcn.18010031c
mov ecx, dword [0x1801f10b0]
mov rax, qword [0x1801f08e8]
cmp qword [rax + rbx], 0
je 0x180019bdf
cmp ecx, dword [rsi + rdi]
jle 0x180019b18
lea rcx, [0x1801f10b0]
call fcn.180100388
cmp dword [0x1801f10b0], 0xffffffff
jne 0x180019b18
mov ecx, 0xac5e6f4b
call fcn.180007500
lea rcx, [0x1801f10b0]
mov qword [0x1801f08e8], rax
call fcn.18010031c
mov rax, qword [0x1801f08e8]
mov rbx, qword [rax + rbx]
test rbx, rbx
je 0x180019bdf
mov eax, dword [rsi + rdi]
cmp dword [0x1801f0568], eax
jle 0x180019b6c
lea rcx, [0x1801f0568]
call fcn.180100388
cmp dword [0x1801f0568], 0xffffffff
jne 0x180019b6c
mov ecx, 0xd8de806e
call fcn.180005e40
lea rcx, [0x1801f0568]
mov rdx, qword [rax]
mov qword [0x1801f0530], rdx
call fcn.18010031c
mov rax, qword [0x1801f0530]
mov rcx, rbx
call rax
test rax, rax
je 0x180019bdf
mov r8, qword [rax]
test r8, r8
je 0x180019bdf
mov r8, qword [r8 + 0x10]
mov edx, 0xffffffff
mov rax, 0xffffffffffffffff
inc rax
cmp byte [r8 + rax], 0
jne 0x180019b95
test eax, eax
je 0x180019bdf
mov r9d, eax
nop word [rax + rax]
movsx ecx, byte [r8]
lea r8, [r8 + 1]
mov eax, edx
shr edx, 8
xor rcx, rax
movzx eax, cl
xor edx, dword [r13 + rax*4 + 0x13c420]
sub r9, 1
jne 0x180019bb0
not edx
cmp edx, 0xafa91f9a
je 0x180019cfb
mov rcx, r14
call fcn.18000c690
mov rdi, rax
lea rbx, [rax + 0x188]
cmp rbx, 0x40000
jbe 0x180019cee
lea rcx, [rbx + 1]
cmp rcx, r12
jae 0x180019cee
movzx ebx, byte [rbx]
call fcn.18000d340
mov rcx, rax
call fcn.18000cc00
movss xmm6, dword [rax]
test bl, bl
je 0x180019cfb
movss xmm0, dword [0x1801f0268]
addss xmm0, dword [0x180155f5c]
comiss xmm6, xmm0
jbe 0x180019cfb
mov r8, qword [0x1801ca1d8]
add r8, 0x2ffe00
mov dword [rsp + 0x40], 7
xor r14d, r14d
mov edx, r14d
mov ecx, r14d
nop
movzx eax, word [rcx + r13 + 0x148340]
inc edx
mov word [rsp + rcx + 0x44], ax
lea rcx, [rcx + 2]
movsxd rax, dword [rsp + 0x40]
cmp edx, eax
jl 0x180019c60
mov word [rsp + rax*2 + 0x44], r14w
lea rdx, [rbp - 0x30]
movups xmm0, xmmword [rsp + 0x30]
mov rcx, rdi
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rsp + 0x50]
movaps xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rsp + 0x60]
movaps xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rbp], xmm1
movups xmm1, xmmword [rbp - 0x80]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rbp - 0x70]
movaps xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rbp - 0x60]
movaps xmmword [rbp + 0x30], xmm0
movups xmm0, xmmword [rbp - 0x50]
movaps xmmword [rbp + 0x40], xmm1
movsd xmm1, qword [rbp - 0x40]
movaps xmmword [rbp + 0x50], xmm0
movsd qword [rbp + 0x60], xmm1
call r8
movss dword [0x1801f0268], xmm6
jmp 0x180019cfe
call fcn.18000d340
mov rcx, rax
call fcn.18000cc00
xor r14d, r14d
mov rsi, qword [rsp + 0x1b8]
mov r13, qword [rsp + 0x1c8]
cmp byte [0x1801ca370], 0
je 0x180019d3a
mov ecx, dword [0x1801ca430]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180019d3a
call fcn.18000c7f0
mov dword [rax], 0x41700000
jmp 0x180019d4b
xor r14d, r14d
jmp 0x180019d0e
movss xmm6, dword [0x18017bd74]
call fcn.18000c7f0
movss dword [rax], xmm6
mov rcx, qword [0x1801ca1d8]
movaps xmm6, xmmword [rsp + 0x170]
add rcx, 0x299c120
cmp rcx, 0x40000
jbe 0x180019d94
lea rax, [rcx + 8]
cmp rax, r12
jae 0x180019d94
mov rdx, qword [rcx]
add rdx, 0xb8
cmp rdx, 0x40000
jbe 0x180019d94
lea rax, [rdx + 8]
cmp rax, r12
jae 0x180019d94
mov rdx, qword [rdx]
jmp 0x180019d97
mov rdx, r14
cmp byte [0x1801ca409], 0
lea rcx, [rdx + 0x48]
je 0x180019de6
cmp rcx, 0x40000
jbe 0x180019dc2
lea rax, [rcx + 4]
cmp rax, r12
jae 0x180019dc2
movss xmm0, dword [0x18017bd78]
movss dword [rcx], xmm0
add rdx, 0x58
cmp rdx, 0x40000
jbe 0x180019e1a
lea rax, [rdx + 4]
cmp rax, r12
jae 0x180019e1a
movss xmm0, dword [0x18017bd68]
movss dword [rdx], xmm0
jmp 0x180019e1a
cmp rcx, 0x40000
jbe 0x180019dfe
lea rax, [rcx + 4]
cmp rax, r12
jae 0x180019dfe
mov dword [rcx], 0x40000000
add rdx, 0x58
cmp rdx, 0x40000
jbe 0x180019e1a
lea rax, [rdx + 4]
cmp rax, r12
jae 0x180019e1a
mov dword [rdx], 0x428c0000
call fcn.18000d340
mov rcx, qword [0x1801ca1d8]
add rcx, 0x299e120
cmp rcx, 0x40000
jbe 0x180019ea7
lea rax, [rcx + 8]
cmp rax, r12
jae 0x180019ea7
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x180019ea7
lea rax, [rcx + 8]
cmp rax, r12
jae 0x180019ea7
mov rdx, qword [rcx]
cmp rdx, 0x40000
jbe 0x180019ea7
lea rax, [rdx + 8]
cmp rax, r12
jae 0x180019ea7
mov rcx, qword [rdx]
add rcx, 0x10
cmp rcx, 0x40000
jbe 0x180019ea7
lea rax, [rcx + 8]
cmp rax, r12
jae 0x180019ea7
mov rcx, qword [rcx]
add rcx, 0x20
cmp rcx, 0x40000
jbe 0x180019ea7
lea rax, [rcx + 8]
cmp rax, r12
jae 0x180019ea7
mov rdx, qword [rcx]
jmp 0x180019eaa
mov rdx, r14
cmp byte [0x1801ca404], 0
je 0x180019f8b
movss xmm1, dword [0x18017bd10]
mov rax, qword [rdx + 0x50]
movss xmm2, dword [0x18017bd14]
movss xmm3, dword [0x18017bd18]
mov dword [rsp + 0x2c], 0x3f800000
mov rcx, qword [rax + 0x28]
movups xmm4, xmmword [rsp + 0x20]
mov rax, qword [rcx + 0x10]
movss xmm4, xmm1
shufps xmm4, xmm4, 0xe1
movss xmm4, xmm2
shufps xmm4, xmm4, 0xc6
movss xmm4, xmm3
shufps xmm4, xmm4, 0xc9
movups xmmword [rax], xmm4
mov rax, qword [rdx + 0x58]
movss xmm0, dword [0x18017bd10]
movss xmm1, dword [0x18017bd14]
movss xmm2, dword [0x18017bd18]
mov rcx, qword [rax + 0x28]
movups xmmword [rsp + 0x20], xmm4
mov dword [rsp + 0x2c], 0x3f800000
movups xmm3, xmmword [rsp + 0x20]
mov rax, qword [rcx + 0x10]
movss xmm3, xmm0
shufps xmm3, xmm3, 0xe1
movss xmm3, xmm1
shufps xmm3, xmm3, 0xc6
movss xmm3, xmm2
shufps xmm3, xmm3, 0xc9
movups xmmword [rax], xmm3
cmp byte [0x1801ca404], 0
jne 0x180019f8b
mov rax, qword [rdx + 0x50]
movdqa xmm0, xmmword [0x180156550]
mov rcx, qword [rax + 0x28]
mov rax, qword [rcx + 0x10]
movups xmmword [rax], xmm0
mov rax, qword [rdx + 0x58]
movdqa xmm0, xmmword [0x180156540]
mov rcx, qword [rax + 0x28]
mov rax, qword [rcx + 0x10]
movups xmmword [rax], xmm0
cmp byte [0x1801ca3e5], 0
je 0x18001a004
call fcn.18000d340
mov rcx, qword [0x1801ca1d8]
add rcx, 0x2998760
cmp rcx, 0x40000
jbe 0x18001a060
lea rax, [rcx + 8]
cmp rax, r12
jae 0x18001a060
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18001a060
lea rax, [rcx + 8]
cmp rax, r12
jae 0x18001a060
mov rcx, qword [rcx]
cmp rcx, 0x40000
jbe 0x18001a060
lea rax, [rcx + 4]
cmp rax, r12
jae 0x18001a060
movss xmm0, dword [0x18017bd58]
movss dword [rcx], xmm0
jmp 0x18001a060
call fcn.18000d340
mov rcx, qword [0x1801ca1d8]
add rcx, 0x2998760
cmp rcx, 0x40000
jbe 0x18001a060
lea rax, [rcx + 8]
cmp rax, r12
jae 0x18001a060
mov rcx, qword [rcx]
add rcx, 0xb8
cmp rcx, 0x40000
jbe 0x18001a060
lea rax, [rcx + 8]
cmp rax, r12
jae 0x18001a060
mov rcx, qword [rcx]
cmp rcx, 0x40000
jbe 0x18001a060
lea rax, [rcx + 4]
cmp rax, r12
jae 0x18001a060
mov dword [rcx], 0xbf800000
cmp byte [0x1801ca3ef], 0
mov r12, qword [rsp + 0x1c0]
je 0x18001a213
call fcn.18000d340
mov rdi, rax
mov eax, 4
mov ebx, eax
test rdi, rdi
je 0x18001a13d
mov rcx, qword gs:[0x58]
mov rdx, qword [rcx + r15*8]
mov ecx, dword [rax + rdx]
cmp dword [0x1801f0474], ecx
jle 0x18001a0d7
lea rcx, [0x1801f0474]
call fcn.180100388
cmp dword [0x1801f0474], 0xffffffff
jne 0x18001a0d7
mov ecx, 0x42722fff
call fcn.180007500
lea rcx, [0x1801f0474]
mov qword [0x1801f09a8], rax
call fcn.18010031c
mov rax, qword [0x1801f09a8]
mov rdi, qword [rdi + rax]
test rdi, rdi
je 0x18001a13d
mov rax, qword gs:[0x58]
mov rcx, qword [rax + r15*8]
mov eax, dword [rbx + rcx]
cmp dword [0x1801f0c78], eax
jle 0x18001a131
lea rcx, [0x1801f0c78]
call fcn.180100388
cmp dword [0x1801f0c78], 0xffffffff
jne 0x18001a131
mov ecx, 0x5c87eb46
call fcn.180007500
lea rcx, [0x1801f0c78]
mov qword [0x1801f0408], rax
call fcn.18010031c
mov rcx, qword [0x1801f0408]
add rcx, rdi
jmp 0x18001a144
lea rcx, [rbp + 0xb0]
mov dword [rcx], r14d
call fcn.18000d340
mov rdi, rax
test rax, rax
je 0x18001a209
mov rdx, qword gs:[0x58]
mov r8, qword [rdx + r15*8]
mov edx, dword [rbx + r8]
cmp dword [0x1801f0474], edx
jle 0x18001a1a3
lea rcx, [0x1801f0474]
call fcn.180100388
cmp dword [0x1801f0474], 0xffffffff
jne 0x18001a1a3
mov ecx, 0x42722fff
call fcn.180007500
lea rcx, [0x1801f0474]
mov qword [0x1801f09a8], rax
call fcn.18010031c
mov rax, qword [0x1801f09a8]
mov rdi, qword [rdi + rax]
test rdi, rdi
je 0x18001a209
mov rax, qword gs:[0x58]
mov rcx, qword [rax + r15*8]
mov eax, dword [rbx + rcx]
cmp dword [0x1801f0768], eax
jle 0x18001a1fd
lea rcx, [0x1801f0768]
call fcn.180100388
cmp dword [0x1801f0768], 0xffffffff
jne 0x18001a1fd
mov ecx, 0xe9efcf2f
call fcn.180007500
lea rcx, [0x1801f0768]
mov qword [0x1801f04f8], rax
call fcn.18010031c
mov rcx, qword [0x1801f04f8]
add rcx, rdi
jmp 0x18001a210
lea rcx, [rbp + 0xb0]
mov dword [rcx], r14d
add rsp, 0x180
pop r15
pop r14
pop rdi
pop rbx
pop rbp
ret