Function at 0x14006abc0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
lea rbp, [rsp + 0x30]
mov rax, qword [0x1402bff08]
xor rax, rbp
mov qword [rbp + 0x40], rax
mov rbx, rcx
mov qword [rbp + 0x28], rcx
xor ecx, ecx
movsxd r14, r9d
mov rdi, r8
mov qword [rbp], r8
mov dword [rbp + 0xc], edx
mov r12d, ecx
mov eax, dword [rbx + 8]
mov r13d, 0xffffffff
mov dword [rbp + 8], eax
lea esi, [rcx + 1]
neg eax
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rcx
sbb r15w, r15w
not r15w
and r15w, 0x80
cmp dword [rbx + 0x10], ecx
jne 0x14006ad37
cmp dword [rbx + 0x48], ecx
je 0x14006ad30
cmp dword [rbx + 0x4c], r14d
jge 0x14006ad30
mov eax, dword [rbx + 0x58]
test eax, eax
jne 0x14006ad23
lea r9, [rbp + 0x10]
xor r8d, r8d
mov rdx, r14
mov rcx, rdi
call fcn.14004d8fc
test eax, eax
jne 0x14006ad30
mov rdi, qword [rbp + 0x10]
cmp rdi, r14
jae 0x14006acf7
cmp rdi, r13
jae 0x14006ac8f
mov eax, 0xffffffe7
cmp rdi, rax
jae 0x14006ac8f
lea rcx, [rdi + 0x18]
call fcn.1401cd1cc
jmp 0x14006ac91
xor eax, eax
movsxd rdx, edi
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
call fcn.14008e668
mov rcx, qword [rbp]
lea r9, [rbp + 0x10]
mov r8, rax
mov qword [rbp + 0x18], rax
mov rdx, r14
mov r12, rax
call fcn.14004d8fc
test eax, eax
jne 0x14006ad2c
add qword [rbx + 0x68], r14
lea rcx, [rbp + 0x30]
and dword [rbx + 0x5c], eax
movzx edx, r15w
and dword [rbx + 0x58], eax
mov rdi, r12
mov r14, qword [rbp + 0x10]
mov eax, 0xc000
movzx r8d, word [rbp + 0xc]
or dx, ax
mov r9d, r14d
call fcn.1400a9314
movsxd r12, eax
add qword [rbx + 0x68], r12
jmp 0x14006ad10
add dword [rbx + 0x5c], esi
mov eax, dword [rbx + 0x5c]
mov rdi, qword [rbp]
cmp eax, dword [rbx + 0x54]
jle 0x14006ad30
mov eax, dword [rbx + 0x50]
and dword [rbx + 0x5c], r12d
mov dword [rbx + 0x58], eax
mov rax, qword [rbp + 0x18]
mov qword [rbp + 0x18], rax
mov qword [rbp], rdi
test r12d, r12d
jne 0x14006ad55
jmp 0x14006ad30
jle 0x14006ad30
dec eax
mov dword [rbx + 0x58], eax
jmp 0x14006ad30
mov rdi, qword [rbp]
movzx r8d, word [rbp + 0xc]
jmp 0x14006ad3d
mov dword [rbx + 0x10], ecx
xor r8d, r8d
mov edx, 0x8000
lea rcx, [rbp + 0x30]
or dx, r15w
mov r9d, r14d
call fcn.1400a9314
mov r12d, eax
cmp dword [rbp + 8], 0
jne 0x14006aea3
lea eax, [r12 + 4]
add eax, r14d
movsxd r13, eax
mov eax, 0xffffffc7
cmp r13, rax
jae 0x14006ada1
lea rax, [r13 + 0x38]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x14006ad8b
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1401c1440
sub rsp, rcx
lea rcx, [rsp + 0x30]
jmp 0x14006ada3
xor ecx, ecx
mov r9d, esi
mov r8d, 8
mov rdx, r13
call fcn.14008e668
movsxd r15, r12d
mov rdi, rax
lea rcx, [rax + 8]
mov qword [rax], rcx
add rax, r15
test r12d, r12d
je 0x14006addc
mov r8, r15
lea rdx, [rbp + 0x30]
mov rcx, rdi
call fcn.1401c2db0
lea rax, [r15 + rdi]
mov edx, 4
mov rcx, rax
call fcn.1400cd150
lea r11, [r15 + rdi]
mov eax, dword [r11]
test r14d, r14d
jle 0x14006ae71
movsxd r10, r14d
xor edx, edx
mov r8, r10
sar r8, 2
test r8, r8
jle 0x14006ae32
mov rbx, qword [rbp]
xor r9d, r9d
mov edx, r8d
mov r11d, eax
mov ecx, dword [rbx + r9*4]
lea rax, [r15 + r9*4]
xor ecx, r11d
add r9, rsi
mov dword [rax + rdi + 4], ecx
cmp r9, r8
jl 0x14006ae13
mov rbx, qword [rbp + 0x28]
lea r11, [r15 + rdi]
shl edx, 2
movsxd r8, edx
cmp r8, r10
jge 0x14006ae71
mov rbx, qword [rbp]
mov eax, edx
and eax, 0x80000003
jge 0x14006ae51
sub eax, esi
or eax, 0xfffffffc
add eax, esi
cdqe
add edx, esi
mov cl, byte [rax + r11]
lea rax, [r15 + r8]
xor cl, byte [r8 + rbx]
add r8, rsi
mov byte [rax + rdi + 4], cl
cmp r8, r10
jl 0x14006ae41
mov rbx, qword [rbp + 0x28]
mov rcx, qword [rbx + 0x88]
call fcn.14008e898
test eax, eax
je 0x14006af38
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x14006ae96
mov rcx, qword [rax]
jmp 0x14006ae98
xor ecx, ecx
mov r9, r13
mov r8, rdi
jmp 0x14006af2f
mov rcx, qword [rbx]
call fcn.140097350
test eax, eax
je 0x14006af45
mov rcx, qword [rbx + 0x88]
call fcn.14008e898
test r14d, r14d
jle 0x14006af11
test eax, eax
je 0x14006aee9
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x14006aed9
mov rcx, qword [rax]
jmp 0x14006aedb
xor ecx, ecx
movsxd r9, r12d
lea r8, [rbp + 0x30]
xor edx, edx
call fcn.14007d464
mov rcx, qword [rbx + 0x88]
call fcn.14008e898
test eax, eax
je 0x14006af38
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x14006af0a
mov rcx, qword [rax]
jmp 0x14006af0c
xor ecx, ecx
movsxd r9, r14d
jmp 0x14006ae9b
test eax, eax
je 0x14006af38
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x14006af26
mov rcx, qword [rax]
jmp 0x14006af28
xor ecx, ecx
movsxd r9, r12d
lea r8, [rbp + 0x30]
xor edx, edx
call fcn.14007d464
mov esi, eax
xor edi, edi
test esi, esi
sete dil
jmp 0x14006afff
lea eax, [r14 + r12]
movsxd rdi, eax
cmp rdi, r13
jae 0x14006af66
mov eax, 0xffffffe7
cmp rdi, rax
jae 0x14006af66
lea rcx, [rdi + 0x18]
call fcn.1401cd1cc
jmp 0x14006af68
xor eax, eax
xor r9d, r9d
xor r8d, r8d
mov rdx, rdi
mov rcx, rax
call fcn.14008e668
movsxd r13, r12d
mov r15, rax
test r12d, r12d
je 0x14006afaa
test rax, rax
jne 0x14006af9b
call fcn.1401ccb48
mov dword [rax], reloc.WS2_32.dll_shutdown
call fcn.1401cc7b8
jmp 0x14006afaa
mov r8, r13
lea rdx, [rbp + 0x30]
mov rcx, r15
call fcn.1401c2db0
mov r8, qword [rbp]
lea rcx, [r15 + r13]
movsxd rdx, r14d
mov r9, rdx
call section..text
mov rcx, qword [rbx + 0x88]
call fcn.14008e898
test eax, eax
je 0x14006afef
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x14006afde
mov rcx, qword [rax]
jmp 0x14006afe0
xor ecx, ecx
mov r9, rdi
mov r8, r15
xor edx, edx
call fcn.14007d464
mov esi, eax
xor edi, edi
mov rcx, r15
test esi, esi
sete dil
call fcn.14008e748
movsxd rcx, r14d
movsxd rdx, r12d
lea rax, [rdx + rcx]
add qword [rbx + 0x78], rax
mov rax, qword [rbp + 0x18]
test rax, rax
je 0x14006b020
mov rcx, rax
call fcn.14008e748
jmp 0x14006b027
add rcx, rdx
add qword [rbx + 0x68], rcx
mov eax, edi
mov rcx, qword [rbp + 0x40]
xor rcx, rbp
call fcn.1401c0ed0
lea rsp, [rbp + 0x58]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret