Function at 0x140016fc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rdi
push r12
push r13
push r15
lea rbp, [rsp - 0x98]
sub rsp, 0x198
mov rax, qword [0x140480c38]
xor rax, rsp
mov qword [rbp + 0x70], rax
movzx eax, byte [0x1401fe7c8]
xor r15d, r15d
movsd xmm0, qword [0x1401fe7c0]
mov rdi, rcx
movsd qword [rsp + 0x40], xmm0
lea rcx, [rsp + 0x40]
xor byte [rsp + 0x41], 0x31
mov r13, rdx
xor byte [rsp + 0x42], 0x32
xor byte [rsp + 0x43], 0x33
xor byte [rsp + 0x44], 0x34
xor byte [rsp + 0x45], 0x35
xor byte [rsp + 0x46], 0x36
xor byte [rsp + 0x47], 0x37
xor al, 0x38
mov qword [rsp + 0x38], r9
mov byte [rsp + 0x48], al
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x30], r8
mov byte [rsp + 0x40], 0x68
nop dword [rax]
inc rax
cmp byte [rcx + rax], r15b
jne 0x140017050
mov r12, qword [rdi + 0x18]
mov rcx, rdi
mov rbx, qword [rdi + 0x10]
cmp r12, 0x10
jb 0x14001706d
mov rcx, qword [rdi]
mov qword [rsp + 0x190], rsi
lea r9, [rsp + 0x40]
xor r8d, r8d
mov qword [rsp + 0x188], r14
mov rdx, rbx
mov qword [rsp + 0x20], rax
call fcn.1400067c0
cmp rax, 0xffffffffffffffff
je 0x1400170e3
cmp rbx, rax
jb 0x140017906
mov edx, 8
mov rcx, rbx
sub rcx, rax
cmp rcx, rdx
cmovb rdx, rcx
mov rcx, rdi
cmp r12, 0x10
jb 0x1400170bf
mov rcx, qword [rdi]
sub rbx, rdx
add rcx, rax
mov r8, rbx
add rdx, rcx
sub r8, rax
inc r8
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi + 0x10], rbx
mov r14, qword [rdi + 0x18]
mov r12, r14
jmp 0x1400170e6
mov r14, r12
movzx eax, word [0x1401fe7d8]
lea rcx, [rsp + 0x40]
movsd xmm0, qword [str.Q_VA_R_r]
mov rsi, rbx
movsd qword [rsp + 0x40], xmm0
xor byte [rsp + 0x41], 0x31
xor byte [rsp + 0x42], 0x32
xor byte [rsp + 0x43], 0x33
xor byte [rsp + 0x44], 0x34
xor byte [rsp + 0x45], 0x35
xor byte [rsp + 0x46], 0x36
xor byte [rsp + 0x47], 0x37
mov word [rsp + 0x48], ax
movzx eax, byte [0x1401fe7da]
xor byte [rsp + 0x48], 0x38
xor byte [rsp + 0x49], 0x39
xor al, 0x3a
mov byte [rsp + 0x40], 0x61
mov byte [rsp + 0x4a], al
mov rax, 0xffffffffffffffff
nop
inc rax
cmp byte [rcx + rax], r15b
jne 0x140017150
mov rcx, rdi
cmp r12, 0x10
jb 0x140017165
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rbx
call fcn.1400067c0
cmp rax, 0xffffffffffffffff
je 0x1400171c9
cmp rbx, rax
jb 0x140017906
mov edx, 0xa
mov rcx, rbx
sub rcx, rax
mov rsi, rbx
cmp rcx, rdx
cmovb rdx, rcx
mov rcx, rdi
cmp r12, 0x10
jb 0x1400171aa
mov rcx, qword [rdi]
sub rsi, rdx
add rcx, rax
mov r8, rsi
add rdx, rcx
sub r8, rax
inc r8
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi + 0x10], rsi
mov r14, qword [rdi + 0x18]
cmp byte [0x1401fe7dd], r15b
movzx eax, word [0x1401fe7dc]
mov word [rsp + 0x40], ax
je 0x1400171e8
xor byte [rsp + 0x41], 0x31
mov byte [rsp + 0x40], reloc.WLDAP32.dll_Ordinal_32
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], r15b
jne 0x1400171f4
mov rcx, rdi
cmp r14, 0x10
jb 0x140017209
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rsi
call fcn.1400067c0
mov rdx, rax
mov ecx, 1
cmp rax, 0xffffffffffffffff
je 0x1400172e3
movzx ebx, word [0x1401fe7e0]
movzx r12d, byte [0x1401fe7e1]
nop
cmp rsi, rdx
jb 0x140017906
mov rax, rsi
mov r9, rcx
sub rax, rdx
cmp rax, 1
cmovb r9, rax
mov rax, rdi
cmp r14, 0x10
jb 0x140017266
mov rax, qword [rdi]
sub rsi, r9
lea rcx, [rax + rdx]
mov r8, rsi
sub r8, rdx
lea rdx, [rcx + r9]
inc r8
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi + 0x10], rsi
mov word [rsp + 0x40], bx
test r12b, r12b
je 0x140017297
xor byte [rsp + 0x41], 0x31
mov byte [rsp + 0x40], reloc.WLDAP32.dll_Ordinal_32
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
inc rax
cmp byte [rcx + rax], r15b
jne 0x1400172a3
mov r14, qword [rdi + 0x18]
mov rcx, rdi
cmp r14, 0x10
jb 0x1400172bc
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rsi
call fcn.1400067c0
mov rdx, rax
mov ecx, 1
cmp rax, 0xffffffffffffffff
jne 0x140017240
mov eax, dword [0x1401fe7e4]
lea rcx, [rsp + 0x40]
mov dword [rsp + 0x40], eax
movzx eax, byte [0x1401fe7e8]
xor byte [rsp + 0x41], 0x31
xor byte [rsp + 0x42], 0x32
xor byte [rsp + 0x43], 0x33
xor al, 0x34
mov byte [rsp + 0x40], Ordinal_45
mov byte [rsp + 0x44], al
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp byte [rcx + rax], r15b
jne 0x140017320
mov rcx, rdi
cmp r14, 0x10
jb 0x140017335
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rsi
call fcn.1400067c0
mov rdx, rax
cmp rax, 0xffffffffffffffff
je 0x14001741b
movzx ebx, byte [0x1401fe7f0]
mov r12d, dword [0x1401fe7ec]
cmp rsi, rdx
jb 0x140017906
mov r9d, 4
mov rax, rsi
sub rax, rdx
cmp rax, r9
cmovb r9, rax
mov rax, rdi
cmp r14, 0x10
jb 0x14001738d
mov rax, qword [rdi]
sub rsi, r9
lea rcx, [rax + rdx]
mov r8, rsi
sub r8, rdx
lea rdx, [rcx + r9]
inc r8
call sub.VCRUNTIME140.dll_memmove
mov dword [rsp + 0x40], r12d
lea rcx, [rsp + 0x40]
xor byte [rsp + 0x41], 0x31
movzx eax, bl
xor byte [rsp + 0x42], 0x32
xor byte [rsp + 0x43], 0x33
xor al, 0x34
mov qword [rdi + 0x10], rsi
mov byte [rsp + 0x44], al
mov rax, 0xffffffffffffffff
mov byte [rsp + 0x40], Ordinal_45
nop dword [rax + rax]
inc rax
cmp byte [rcx + rax], r15b
jne 0x1400173e0
mov r14, qword [rdi + 0x18]
mov rcx, rdi
cmp r14, 0x10
jb 0x1400173f9
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rsi
call fcn.1400067c0
mov rdx, rax
cmp rax, 0xffffffffffffffff
jne 0x140017365
cmp byte [0x1401fe7f7], r15b
mov eax, dword [0x1401fe7f4]
mov dword [rsp + 0x40], eax
je 0x140017510
cmp dword [reloc.WS2_32.dll_accept], 2
jl 0x1400174cf
movdqa xmm3, xmmword [0x140201780]
mov ecx, 1
movdqa xmm2, xmm3
movdqa xmm0, xmm3
punpckldq xmm2, xmm3
pmuldq xmm2, xmmword [0x1402017c0]
punpckhdq xmm0, xmm3
pmuldq xmm0, xmmword [0x1402017c0]
shufps xmm2, xmm0, 0xdd
movd xmm0, ecx
mov ecx, Ordinal_32
psrad xmm2, xmm0
movdqa xmm1, xmm2
movd xmm0, ecx
psrld xmm1, xmm0
paddd xmm1, xmm2
pmulld xmm1, xmmword [0x1402017a0]
psubd xmm3, xmm1
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x1402017b0]
packuswb xmm2, xmm2
paddb xmm2, xmmword [0x1402017d0]
movd xmm0, eax
pxor xmm2, xmm0
movd dword [rsp + 0x40], xmm2
jmp 0x140017510
lea r8, [rsp + 0x40]
nop dword [rax]
nop dword [rax + rax]
mov eax, 0x94f2095
lea r8, [r8 + 1]
imul r15d
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x37
movzx eax, r15b
inc r15d
sub al, cl
add al, 0x30
xor byte [r8 - 1], al
cmp r15d, 4
jl 0x1400174e0
lea rcx, [rsp + 0x40]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x140017520
mov r14, qword [rdi + 0x18]
mov rcx, rdi
mov rbx, qword [rdi + 0x10]
cmp r14, 0x10
jb 0x14001753d
mov rcx, qword [rdi]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rbx
call fcn.1400067c0
cmp rax, 0xffffffffffffffff
je 0x14001759e
cmp rbx, rax
jb 0x140017906
mov edx, 3
mov rcx, rbx
sub rcx, rax
cmp rcx, rdx
cmovb rdx, rcx
mov rcx, rdi
cmp r14, 0x10
jb 0x14001757f
mov rcx, qword [rdi]
sub rbx, rdx
add rcx, rax
mov r8, rbx
add rdx, rcx
sub r8, rax
inc r8
call sub.VCRUNTIME140.dll_memmove
mov qword [rdi + 0x10], rbx
mov r14, qword [rdi + 0x18]
cmp qword [r13 + 0x18], 0x10
lea r15, [r13 + 0x10]
mov rax, qword [r15]
mov qword [rsp + 0x40], r15
jb 0x1400175b5
mov r13, qword [r13]
mov rcx, rdi
cmp r14, 0x10
jb 0x1400175c1
mov rcx, qword [rdi]
mov r9, r13
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rbx
call fcn.1400067c0
mov r12, rax
cmp rax, 0xffffffffffffffff
je 0x1400178a4
lea r8, [rax - 1]
mov rcx, rdi
lea rdx, [0x1401fe7f8]
call fcn.140026a50
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
lea rdx, [rax + 1]
cmp rbx, rdx
jb 0x140017906
sub rbx, rdx
mov rsi, r12
sub rsi, rax
mov rax, rdi
dec rsi
cmp rbx, rsi
cmovb rsi, rbx
cmp r14, 0x10
jb 0x140017628
mov rax, qword [rdi]
movabs r14, 0x7fffffffffffffff
lea r13, [rax + rdx]
cmp rsi, r14
ja 0x14001790c
mov eax, reloc.WLDAP32.dll_Ordinal_22
cmp rsi, 0x10
jae 0x14001766f
mov r8, rsi
mov qword [rsp + 0x60], rsi
mov rdx, r13
mov qword [rsp + 0x68], reloc.WS2_32.dll_ntohs
lea rcx, [rsp + 0x50]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rsi + 0x50], 0
jmp 0x1400176be
mov r15, rsi
or r15, 0xf
cmp r15, r14
jbe 0x140017680
mov r15, r14
jmp 0x140017687
cmp r15, rax
cmovb r15, rax
lea rdx, [r15 + 1]
lea rcx, [rsp + 0x50]
call fcn.140003540
mov r8, rsi
mov qword [rsp + 0x50], rax
mov rdx, r13
mov qword [rsp + 0x60], rsi
mov rcx, rax
mov qword [rsp + 0x68], r15
mov rbx, rax
call sub.VCRUNTIME140.dll_memcpy
mov r15, qword [rsp + 0x40]
mov byte [rsi + rbx], 0
mov rcx, qword [rsp + 0x30]
lea rdx, [rsp + 0x50]
call fcn.140008bc0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x14001770a
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140017705
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140017896
call fcn.1400b7470
mov rbx, qword [r15]
mov rsi, rdi
mov r15, qword [rdi + 0x10]
add rbx, r12
mov r12, qword [rdi + 0x18]
cmp r12, 0x10
jb 0x140017724
mov rsi, qword [rdi]
cmp rbx, r15
jae 0x140017786
xor edx, edx
lea rcx, [rsp + 0x70]
mov r8d, 0x100
call sub.VCRUNTIME140.dll_memset
lea rcx, [0x1401fe7f8]
lea rdx, [0x1401fe7fa]
nop dword [rax]
movzx eax, byte [rcx]
inc rcx
mov byte [rsp + rax + 0x70], 1
cmp rcx, rdx
jne 0x140017750
lea rcx, [r15 + rsi]
add rbx, rsi
cmp rbx, rcx
jae 0x140017786
nop dword [rax]
movzx eax, byte [rbx]
cmp byte [rsp + rax + 0x70], 0
je 0x140017800
inc rbx
cmp rbx, rcx
jb 0x140017770
mov rbx, 0xffffffffffffffff
mov r8, rbx
lea rdx, [0x1401fe7f8]
mov rcx, rdi
call fcn.140026960
xorps xmm0, xmm0
mov rsi, rax
movups xmmword [rsp + 0x50], xmm0
cmp r15, rbx
jb 0x140017906
sub rsi, rbx
sub r15, rbx
cmp r15, rsi
cmovb rsi, r15
cmp r12, 0x10
jb 0x1400177c9
mov rdi, qword [rdi]
add rdi, rbx
cmp rsi, r14
ja 0x14001790c
cmp rsi, 0x10
jae 0x140017805
mov r8, rsi
mov qword [rsp + 0x60], rsi
mov rdx, rdi
mov qword [rsp + 0x68], reloc.WS2_32.dll_ntohs
lea rcx, [rsp + 0x50]
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + rsi + 0x50], 0
jmp 0x140017853
sub rbx, rsi
jmp 0x14001778d
mov rax, rsi
or rax, 0xf
cmp rax, r14
ja 0x140017821
mov r14, rax
cmp rax, 0x16
mov eax, reloc.WLDAP32.dll_Ordinal_22
cmovb r14, rax
lea rdx, [r14 + 1]
lea rcx, [rsp + 0x50]
call fcn.140003540
mov r8, rsi
mov qword [rsp + 0x50], rax
mov rdx, rdi
mov qword [rsp + 0x60], rsi
mov rcx, rax
mov qword [rsp + 0x68], r14
mov rbx, rax
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsi + rbx], 0
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x50]
call fcn.140008bc0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0x10
jb 0x1400178d9
mov rcx, qword [rsp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14001789d
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14001789d
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400b7470
jmp 0x1400178d9
mov rax, qword [rsp + 0x30]
cmp rax, rdi
je 0x1400178c5
cmp r14, 0x10
jb 0x1400178b7
mov rdi, qword [rdi]
mov r8, rbx
mov rdx, rdi
mov rcx, rax
call fcn.140004290
mov rcx, qword [rsp + 0x38]
lea rdx, [0x1401fc293]
xor r8d, r8d
call fcn.140004290
mov r14, qword [rsp + 0x188]
mov rsi, qword [rsp + 0x190]
mov rcx, qword [rbp + 0x70]
xor rcx, rsp
call fcn.1400b7590
add rsp, 0x198
pop r15
pop r13
pop r12
pop rdi
pop rbx
pop rbp
ret
call fcn.1400166a0
int3
call fcn.140003520
int3