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

Disassembly:
mov qword [rsp + 8], rbx
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0x90
movaps xmmword [rsp + 0x80], xmm7
mov rax, qword [0x140047010]
xor rax, rsp
mov qword [rbp + 0x3f], rax
cmp qword [0x140048250], 0
jne 0x1400337c7
call fcn.140027c90
call fcn.140028090
call fcn.140007490
mov rcx, qword [0x140047c88]
lea rdx, [rbp + 0x2f]
xorps xmm0, xmm0
movups xmmword [rbp + 0x2f], xmm0
call qword [sym.imp.USER32.dll_GetWindowRect]
test eax, eax
je 0x140033819
mov eax, dword [rbp + 0x37]
sub eax, dword [rbp + 0x2f]
movd xmm1, eax
mov eax, dword [rbp + 0x3b]
sub eax, dword [rbp + 0x33]
cvtdq2ps xmm1, xmm1
movd xmm2, eax
cvtdq2ps xmm2, xmm2
movss dword [0x140048228], xmm1
movss dword [0x140048224], xmm2
jmp 0x140033829
movss xmm1, dword [0x140048228]
movss xmm2, dword [0x140048224]
mulss xmm1, dword [0x140040c54]
mov ecx, 0x2d
mulss xmm2, dword [0x140040c54]
movss dword [0x140047ce8], xmm1
movss dword [0x140047cd8], xmm2
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x140033866
cmp byte [0x140047c69], 0
sete byte [0x140047c69]
call fcn.140032e10
movss xmm7, dword [0x140040c78]
xor ebx, ebx
cmp byte [0x140047c69], bl
je 0x140033c3a
movdqa xmm0, xmmword [0x140040e40]
xor eax, eax
movdqu xmmword [rbp + 7], xmm0
mov byte [rbp + 0x1d], al
mov edx, ebx
mov dword [rbp + 0x17], 0xa0b2b7b9
mov word [rbp + 0x1b], 0xd6a6
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0x16
jb 0x1400338b0
xor edx, edx
mov byte [rbp + 0x1d], bl
mov r8d, 0x212a
lea rcx, [rbp + 7]
call fcn.14000b5c0
mov rcx, qword [0x140047c70]
test al, al
je 0x1400338fe
mov dword [rcx + 0x1af4], 0x442f0000
mov dword [rcx + 0x1af8], 0x44228000
mov dword [rcx + 0x1acc], 4
mov rcx, qword [rcx + 0x19f8]
lea rdx, [rbp + 0x1f]
xor r8d, r8d
mov dword [rbp + 0x1f], 0x43e10000
mov dword [rbp + 0x23], 0x44458000
call fcn.14000f410
mov edx, ebx
mov dword [rbp + 0x1f], 0x91908bb7
mov dword [rbp + 0x23], 0x948a84
nop
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 0x1f], al
cmp edx, 7
jb 0x140033930
lea rcx, [rbp + 0x1f]
mov byte [rbp + 0x26], bl
call fcn.140028d90
mov edx, ebx
mov dword [rbp + 0x1f], 0xc49b8da3
mov dword [rbp + 0x23], 0xb7b5a0
nop dword [rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 0x1f], al
cmp edx, 7
jb 0x140033960
lea rdx, [0x140047068]
mov byte [rbp + 0x26], bl
lea rcx, [rbp + 0x1f]
call fcn.14002a1a0
xor eax, eax
mov dword [rbp + 0x1f], 0x868e8ba0
mov byte [rbp + 0x25], al
mov edx, ebx
mov word [rbp + 0x23], 0x928a
nop dword [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 0x1f], al
cmp edx, 6
jb 0x1400339a0
lea rcx, [rbp + 0x1f]
mov byte [rbp + 0x25], bl
call fcn.140028d90
mov edx, ebx
mov dword [rbp + 7], 0x8d908bb7
mov dword [rbp + 0xb], 0xc8828a87
mov dword [rbp + 0xf], 0x8f8e82aa
mov word [rbp + 0x13], 0x86
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xd
jb 0x1400339e0
lea rdx, [0x140047069]
mov byte [rbp + 0x14], bl
lea rcx, [rbp + 7]
call fcn.14002a1a0
xor eax, eax
mov dword [rbp + 7], 0x868e8ba0
mov byte [rbp + 0x13], al
mov edx, ebx
mov dword [rbp + 0xb], 0xa3c7928a
mov dword [rbp + 0xf], 0xccd1938c
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xc
jb 0x140033a20
lea rcx, [rbp + 7]
mov byte [rbp + 0x13], bl
call fcn.140028d90
movss xmm1, dword [0x140040d4c]
movss xmm0, dword [0x140040d04]
call fcn.14000fdd0
call fcn.1400327e0
xor eax, eax
mov dword [rbp + 7], 0x868e8ba0
mov byte [rbp + 0x11], al
mov edx, ebx
mov dword [rbp + 0xb], 0xaec7928a
mov word [rbp + 0xf], 0x9c86
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xa
jb 0x140033a80
lea rax, [rbp + 0x27]
movss dword [rsp + 0x30], xmm7
lea r9, [rbp + 0x1f]
mov qword [rsp + 0x20], rax
lea r8, [0x140047060]
mov byte [rbp + 0x11], bl
lea rcx, [rbp + 7]
mov dword [rbp + 0x27], 0x43fa0000
mov dword [rbp + 0x1f], 0x41a00000
call fcn.14002b4b0
xor eax, eax
mov dword [rbp + 7], 0x8b8c8fb2
mov byte [rbp + 0x11], al
mov edx, ebx
mov dword [rbp + 0xb], 0x8d898e91
mov word [rbp + 0xf], 0x999a
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xa
jb 0x140033ae0
lea rax, [rbp + 0x1f]
movss dword [rsp + 0x30], xmm7
lea r9, [rbp + 0x27]
mov qword [rsp + 0x20], rax
lea r8, [0x140047064]
mov byte [rbp + 0x11], bl
lea rcx, [rbp + 7]
mov dword [rbp + 0x1f], 0x41f00000
mov dword [rbp + 0x27], 0x3f800000
call fcn.14002b4b0
mov edx, ebx
mov dword [rbp + 7], 0x868e8ba0
mov dword [rbp + 0xb], 0xaac7928a
mov dword [rbp + 0xf], 0xd68e8486
mov word [rbp + 0x13], 0xcd
nop dword [rax]
nop word [rax + rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xd
jb 0x140033b50
lea rcx, [rbp + 7]
mov byte [rbp + 0x14], bl
call fcn.140028d90
movss xmm1, dword [0x140040d4c]
xorps xmm0, xmm0
call fcn.14000fdd0
mov edx, ebx
mov dword [rbp + 0x1f], 0xaba1c1c2
mov dword [rbp + 0x23], 0xb4a3ab
nop dword [rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 0x1f], al
cmp edx, 7
jb 0x140033b90
lea rcx, [rbp + 0x1f]
mov byte [rbp + 0x26], bl
call fcn.14002b170
xor eax, eax
mov dword [rbp + 7], 0x97968dac
mov byte [rbp + 0x13], al
mov edx, ebx
mov dword [rbp + 0xb], 0x81a6c680
mov dword [rbp + 0xf], 0x98848884
nop dword [rax]
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xc
jb 0x140033bd0
lea rdx, [0x14004706a]
mov byte [rbp + 0x13], bl
lea rcx, [rbp + 7]
call fcn.14002a1a0
mov edx, ebx
mov dword [rbp + 7], 0x818f8bb2
mov dword [rbp + 0xb], 0xa9c7928b
mov dword [rbp + 0xf], 0x83898780
mov word [rbp + 0x13], 0x99
movsxd rcx, edx
lea eax, [rdx - 0x1f]
inc edx
xor byte [rbp + rcx + 7], al
cmp edx, 0xd
jb 0x140033c11
lea rdx, [0x14004706b]
mov byte [rbp + 0x14], bl
lea rcx, [rbp + 7]
call fcn.14002a1a0
call fcn.14000e6d0
call fcn.140008cc0
mov rcx, qword [0x140047d68]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 7]
call qword [rax + 0x1c8]
mov rcx, qword [0x140047d68]
xor r8d, r8d
mov rax, qword [rcx]
lea edx, [r8 + 0x1b]
call qword [rax + 0x1c8]
mov rcx, qword [0x140047d68]
xor r8d, r8d
mov edx, 0xae
mov rax, qword [rcx]
call qword [rax + 0x1c8]
mov rcx, qword [0x140047d68]
mov r9d, 1
mov dword [rsp + 0x30], ebx
xor r8d, r8d
movss dword [rsp + 0x28], xmm7
xor edx, edx
mov dword [rsp + 0x20], ebx
mov rax, qword [rcx]
call qword [rax + 0x158]
mov rcx, qword [0x140047d68]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x140033cf0
call fcn.140009270
mov rcx, qword [0x140047c70]
add rcx, 0x1c70
cmp byte [rcx], bl
cmove rcx, rbx
call fcn.1400273b0
mov rcx, qword [0x140047d68]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x140047d68]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rbx
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x140033d49
mov rcx, qword [0x140047d68]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x140033d49
call fcn.140027e30
mov rcx, qword [0x140047d68]
lea rdx, [0x140047d20]
mov rax, qword [rcx]
call qword [rax + 0x80]
call fcn.140027c90
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.1400361a0
mov rbx, qword [rsp + 0xa0]
movaps xmm7, xmmword [rsp + 0x80]
add rsp, 0x90
pop rbp
ret