Function at 0x140050ca0
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov qword [rax + 0x20], r12
push rbp
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x14014eec0]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov dil, 1
movabs r12, 0xff00ff00ff00ff00
xor r15d, r15d
movss xmm6, dword [0x1400aad08]
nop dword [rax]
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x140154fb0]
lea rcx, [0x140154f80]
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x140050d9e
lea rsi, [rbp + 0x5f]
nop
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
mov qword [rbp - 1], r12
mov qword [rbp + 7], rsi
mov rbx, qword [rsi]
mov rax, rbx
xor rax, r12
mov qword [rbp - 9], rax
mov qword [rsi], r15
lea rcx, [0x140154f80]
call qword [0x140154ed0]
nop
mov qword [rsi], rbx
lea rcx, [0x140154f80]
call qword [sym.imp.USER32.dll_DispatchMessageW]
movzx edi, dil
cmp dword [0x140154f88], 0x12
cmove edi, r15d
movzx ebx, dil
mov dword [rsp + 0x20], 1
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [0x140154fb0]
lea rcx, [0x140154f80]
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x140050d20
test bl, bl
je 0x1400510e1
call qword [sym.imp.USER32.dll_GetForegroundWindow]
mov rcx, qword [0x140154fb8]
cmp rax, rcx
jne 0x140050e17
mov edx, 3
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindow]
mov r10, qword [0x140154fb0]
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
lea rsi, [rbp + 0x5f]
mov qword [rbp - 1], r12
mov qword [rbp + 7], rsi
mov rbx, qword [rsi]
mov rcx, rbx
xor rcx, r12
mov qword [rbp - 9], rcx
mov qword [rsi], r15
mov dword [rsp + 0x30], 3
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], r15d
xor r9d, r9d
xor r8d, r8d
mov rdx, rax
mov rcx, r10
call qword [0x140154ef0]
nop
mov qword [rsi], rbx
mov rcx, qword [0x140154fb8]
xorps xmm0, xmm0
movups xmmword [rbp + 0x17], xmm0
mov qword [rbp + 0xf], r15
lea rdx, [rbp + 0x17]
call qword [sym.imp.USER32.dll_GetClientRect]
lea rdx, [rbp + 0xf]
mov rcx, qword [0x140154fb8]
call qword [sym.imp.USER32.dll_ClientToScreen]
mov eax, dword [rbp + 0xf]
mov dword [rbp + 0x17], eax
mov eax, dword [rbp + 0x13]
mov dword [rbp + 0x1b], eax
call fcn.14000b450
mov rsi, rax
mov rcx, qword [0x140154fb8]
mov qword [rax + 0xc0], rcx
mov dword [rax + 0x10], 0x3c888889
lea rcx, [rbp + 0x27]
call qword [sym.imp.USER32.dll_GetCursorPos]
mov ecx, dword [rbp + 0x27]
sub ecx, dword [rbp + 0xf]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0xd04], xmm0
mov ecx, dword [rbp + 0x2b]
sub ecx, dword [rbp + 0x13]
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rsi + 0xd08], xmm0
xorps xmm1, xmm1
movups xmmword [rbp - 9], xmm1
lea r14, [rbp + 0x5f]
mov qword [rbp - 1], r12
mov qword [rbp + 7], r14
mov rbx, qword [r14]
mov rax, rbx
xor rax, r12
mov qword [rbp - 9], rax
mov qword [r14], r15
mov rax, qword [0x140154eb0]
mov ecx, 1
call rax
nop
mov qword [r14], rbx
test ax, ax
je 0x140050ef0
mov byte [rsi + 0xd0c], 1
mov byte [rsi + 0x3628], 1
mov eax, dword [rsi + 0xd08]
mov dword [rsi + 0x35d4], eax
jmp 0x140050ef7
mov byte [rsi + 0xd0c], 0
mov edx, dword [rbp + 0x23]
mov r10d, dword [rbp + 0x1f]
mov eax, dword [0x1401550a0]
cmp dword [rbp + 0x17], eax
jne 0x140050f29
cmp r10d, dword [0x1401550a8]
jne 0x140050f29
mov eax, dword [0x1401550a4]
cmp dword [rbp + 0x1b], eax
jne 0x140050f29
cmp edx, dword [0x1401550ac]
je 0x140050fb4
movups xmm0, xmmword [rbp + 0x17]
movups xmmword [0x1401550a0], xmm0
mov dword [0x140154ff0], r10d
mov dword [0x140154ff4], edx
mov dword [0x140154f40], r10d
mov dword [0x140154f44], edx
mov r9d, dword [rbp + 0x13]
mov r8d, dword [rbp + 0xf]
mov rcx, qword [0x140154fb0]
xorps xmm0, xmm0
movups xmmword [rbp - 9], xmm0
lea rsi, [rbp + 0x5f]
mov qword [rbp - 1], r12
mov qword [rbp + 7], rsi
mov rbx, qword [rsi]
mov rax, rbx
xor rax, r12
mov qword [rbp - 9], rax
mov qword [rsi], r15
mov dword [rsp + 0x30], 8
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], r10d
xor edx, edx
call qword [0x140154ef0]
nop
mov qword [rsi], rbx
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
lea rdx, [0x140154f40]
call qword [rax + 0x80]
call fcn.14002abe0
call fcn.14002b900
call fcn.140011190
call fcn.14004b260
call fcn.14004ff50
call fcn.140009b80
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 7
call qword [rax + 0x1c8]
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0x1b
call qword [rax + 0x1c8]
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, 0xae
call qword [rax + 0x1c8]
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
mov dword [rsp + 0x30], r15d
movss dword [rsp + 0x28], xmm6
mov dword [rsp + 0x20], r15d
mov r9d, 1
xor r8d, r8d
xor edx, edx
call qword [rax + 0x158]
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
call qword [rax + 0x148]
test eax, eax
js 0x14005107b
call fcn.140012d60
call fcn.14000b210
mov rcx, rax
call fcn.14002ac40
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [rax + 0x88]
cmp eax, 0x88760868
jne 0x140050cf0
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
call qword [rax + 0x18]
cmp eax, 0x88760869
jne 0x140050cf0
call fcn.14002ab50
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
lea rdx, [0x140154f40]
call qword [rax + 0x80]
call fcn.14002a890
jmp 0x140050cf0
call fcn.14002b690
call fcn.14002bc20
xor ecx, ecx
call fcn.1400094f0
mov rcx, qword [0x140154f38]
test rcx, rcx
je 0x140051114
mov rax, qword [rcx]
call qword [rax + 0x150]
mov rcx, qword [0x140154f38]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [0x140154f30]
test rcx, rcx
je 0x140051126
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [0x140154fb0]
call qword [sym.imp.USER32.dll_DestroyWindow]
mov rax, qword [0x140154f90]
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.1400a3de0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov r12, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret