Function at 0x14009d490
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rax - 0x288]
sub rsp, 0x370
movaps xmmword [rax - 0x28], xmm6
mov rax, qword [0x140217900]
xor rax, rsp
mov qword [rbp + 0x250], rax
movzx r14d, dl
mov rdi, rcx
xor r15d, r15d
xor edx, edx
mov r8d, 0x104
lea rcx, [rbp + 0x140]
call fcn.14019d420
mov r8d, 0x104
lea rdx, [rbp + 0x140]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov r8d, eax
xorps xmm0, xmm0
movups xmmword [rbp + 0xb0], xmm0
mov qword [rbp + 0xc0], r15
mov qword [rbp + 0xc8], r15
lea rdx, [rbp + 0x140]
lea rcx, [rbp + 0xb0]
call fcn.1400639f0
nop
lea rcx, [rbp + 0xb0]
mov r9, qword [rbp + 0xb0]
mov r10, qword [rbp + 0xc8]
cmp r10, 0xf
cmova rcx, r9
mov rbx, 0xffffffffffffffff
mov rdx, qword [rbp + 0xc0]
test rdx, rdx
je 0x14009d583
lea rax, [rdx - 1]
mov r8, rbx
cmp rax, rbx
cmovb r8, rax
add r8, rcx
cmp byte [r8], 0x5c
je 0x14009d57e
cmp r8, rcx
je 0x14009d583
dec r8
cmp byte [r8], 0x5c
jne 0x14009d570
sub r8, rcx
jmp 0x14009d586
mov r8, rbx
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xa0], xmm1
inc r8
cmp rdx, r8
cmovb r8, rdx
lea rdx, [rbp + 0xb0]
cmp r10, 0xf
cmova rdx, r9
lea rcx, [rbp + 0x90]
call fcn.1400639f0
nop
mov r8, qword [rdi + 0x10]
cmp qword [rdi + 0x18], 0xf
jbe 0x14009d5cf
mov rdi, qword [rdi]
mov rdx, rdi
lea rcx, [rbp + 0x90]
call fcn.140069ae0
lea rdi, [0x140217660]
cmp rdi, rax
je 0x14009d604
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0xf
jbe 0x14009d5f8
mov rax, qword [rax]
mov rdx, rax
mov rcx, rdi
call fcn.14006cfc0
nop
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0xf
jbe 0x14009d645
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d640
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009db47
call fcn.14015b6cc
mov rdx, rdi
cmp qword [reloc.WS2_32.dll_ntohs], 0xf
cmova rdx, qword [0x140217660]
mov dword [rsp + 0x20], 1
mov r9d, 0x40
mov r8d, 1
lea rcx, [rsp + 0x60]
call fcn.14007e170
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea r8, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x60], r8
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x5c], edx
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
mov esi, dword [rsp + rcx + 0x70]
mov qword [rsp + rcx + 0x60], r8
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x5c], edx
lea rcx, [rsp + 0x70]
call fcn.140064f80
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x60], rax
mov rax, qword [rsp + 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x5c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x10], rax
lea rcx, [rbp + 0x10]
call fcn.14015d434
nop
test r14b, r14b
je 0x14009d79f
test esi, esi
jne 0x14009d72d
cmp qword [reloc.WS2_32.dll_ntohs], 0xf
cmova rdi, qword [0x140217660]
mov rcx, rdi
call fcn.14017dc54
nop
mov rdx, qword [rbp + 0xc8]
cmp rdx, 0xf
jbe 0x14009d76e
inc rdx
mov rcx, qword [rbp + 0xb0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009d769
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009daf0
call fcn.14015b6cc
mov rcx, qword [rbp + 0x250]
xor rcx, rsp
call fcn.14015b7e0
lea r11, [rsp + 0x370]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
test esi, esi
je 0x14009d72d
movsd xmm0, qword [str.tWOS_tF_]
movsd qword [rbp + 0x70], xmm0
movzx eax, byte [0x1401c7ff8]
mov byte [rbp + 0x70], 0x43
xor byte [rbp + 0x71], 0x38
xor byte [rbp + 0x72], 0x39
xor byte [rbp + 0x73], 0x3a
xor byte [rbp + 0x74], 0x3b
xor byte [rbp + 0x75], 0x3c
xor byte [rbp + 0x76], 0x3d
xor byte [rbp + 0x77], 0x3e
xor al, 0x3f
mov byte [rbp + 0x78], al
xorps xmm0, xmm0
movups xmmword [rbp + 0x118], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x128], xmm1
lea rax, [rbp + 0x70]
mov r8, rbx
nop dword [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14009d800
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x118]
call fcn.1400639f0
nop
lea rdx, [rbp + 0x118]
cmp qword [rbp + 0x130], 0xf
cmova rdx, qword [rbp + 0x118]
xorps xmm0, xmm0
movups xmmword [rbp + 0x90], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xa0], xmm1
mov r8, rbx
nop word [rax + rax]
inc r8
cmp byte [rdx + r8], 0
jne 0x14009d850
lea rcx, [rbp + 0x90]
call fcn.1400639f0
nop
movups xmm0, xmmword [str.tYWTTH]
movups xmmword [rbp + 0xf0], xmm0
movups xmm1, xmmword [0x1401c7fd8]
movups xmmword [rbp + 0x100], xmm1
movzx eax, byte [0x1401c7fe8]
mov byte [rbp + 0x110], al
mov ecx, r15d
cmp dword [reloc.WS2_32.dll_accept], 2
jl 0x14009d9cc
movdqa xmm4, xmmword [0x1401b3b30]
movdqa xmm3, xmmword [0x1401cc2f0]
movdqa xmm5, xmmword [str.3333]
movdqa xmm0, xmmword [str.7777777777777777]
movdqa xmmword [rbp + 0x70], xmm0
lea rdx, [rbp + 0xf4]
movdqa xmm6, xmmword [0x1401cc2d0]
mov r8d, dword [rbp + 0x70]
nop dword [rax + rax]
movd xmm2, ecx
pshufd xmm2, xmm2, 0
paddd xmm2, xmm4
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx - 4]
xorps xmm2, xmm0
movd dword [rdx - 4], xmm2
lea eax, [rcx + 4]
movd xmm2, eax
pshufd xmm2, xmm2, 0
paddd xmm2, xmm4
movdqa xmm1, xmm2
punpckldq xmm1, xmm2
pmuldq xmm1, xmm3
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
pmuldq xmm0, xmm3
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm5
psubd xmm2, xmm0
andps xmm2, xmm6
packuswb xmm2, xmm2
packuswb xmm2, xmm2
movd xmm0, r8d
paddb xmm2, xmm0
movd xmm0, dword [rdx]
xorps xmm2, xmm0
movd dword [rdx], xmm2
add ecx, 8
lea rdx, [rdx + 8]
cmp ecx, 0x20
jl 0x14009d8e0
cmp ecx, 0x21
jge 0x14009da0e
movsxd rax, ecx
lea r8, [rbp + 0xf0]
add r8, rax
nop dword [rax]
mov eax, 0xa0a0a0a1
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul edx, eax, 0x33
movzx eax, cl
sub al, dl
add al, 0x37
xor byte [r8], al
inc ecx
lea r8, [r8 + 1]
cmp ecx, 0x21
jl 0x14009d9e0
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x80], xmm1
lea rax, [rbp + 0xf0]
mov r8, rbx
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14009da30
lea rdx, [rbp + 0xf0]
lea rcx, [rbp + 0x70]
call fcn.1400639f0
nop
lea rdx, [rbp + 0x70]
cmp qword [rbp + 0x88], 0xf
cmova rdx, qword [rbp + 0x70]
xorps xmm0, xmm0
movups xmmword [rbp + 0xd0], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0xe0], xmm1
mov r8, rbx
inc r8
cmp byte [rdx + r8], 0
jne 0x14009da74
lea rcx, [rbp + 0xd0]
call fcn.1400639f0
lea rcx, [rbp + 0xd0]
mov r8, qword [rbp + 0xd0]
mov r9, qword [rbp + 0xe8]
cmp r9, 0xf
cmova rcx, r8
mov rax, rbx
nop word [rax + rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x14009dab0
lea rdx, [rbp + 0xd0]
cmp r9, 0xf
cmova rdx, r8
lea rcx, [rbp + 0x90]
mov r9, qword [rbp + 0x90]
mov r10, qword [rbp + 0xa8]
cmp r10, 0xf
cmova rcx, r9
inc rbx
cmp byte [rcx + rbx], 0
je 0x14009daf6
jmp 0x14009dae5
call fcn.14017ad3c
nop
lea r8, [rbp + 0x90]
cmp r10, 0xf
cmova r8, r9
mov dword [rsp + 0x48], r15d
lea r9, [rsp + 0x50]
mov qword [rsp + 0x40], r9
mov dword [rsp + 0x38], 0xa
mov dword [rsp + 0x30], reloc.WS2_32.dll_recv
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdx
mov r9d, ebx
mov edx, 0xffffffff
xor ecx, ecx
call sub.WTSAPI32.dll_WTSSendMessageA
mov ecx, 1
call fcn.14017c0c8
nop
call fcn.14017ad3c
int3