Function at 0x18018a960
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x98
mov rdi, r8
mov rsi, rdx
mov r12, rcx
xor eax, eax
mov dword [rbp + 0x7f], eax
mov dword [rbp - 0x29], eax
cmp r8, qword [rcx + 8]
ja 0x18018b494
mov r15, qword [rcx + 0x70]
mov qword [rbp - 0x21], r15
movabs r11, 0x2aaaaaaaaaaaaaab
movabs r10, 0x7fffffffffffffff
test dl, 3
jne 0x18018b108
xor edx, edx
call fcn.18018a7f0
mov rbx, rax
mov qword [rbp + 0xf], rax
mov edx, 1
mov rcx, r12
call fcn.18018a7f0
mov qword [rbp - 0x19], rax
cmp rdi, 4
jb 0x18018b0f4
mov r14, r15
add rsi, 4
mov qword [rbp + 0x6f], rsi
mov r8d, esi
lea r13d, [rsi - 1]
shr r13d, 0x1f
mov ecx, esi
not ecx
shr ecx, 0x1f
and r13d, ecx
neg r13d
and r13d, 1
mov r9d, reloc.WS2_32.dll_recv
nop dword [rax]
mov rcx, r9
mov edx, 1
shl edx, cl
dec edx
and edx, r8d
lea eax, [rdx - 1]
shr eax, 0x1f
not edx
shr edx, 0x1f
and eax, edx
neg eax
and eax, 1
imul rax, r9
add r13, rax
mov rcx, rax
shr r8d, cl
shr r9, 1
jne 0x18018aa20
mov r9, qword [r12]
mov rbx, qword [rbx]
mov rsi, qword [r12 + 0x40]
mov rdi, r9
and edi, 0x1f
mov rdx, r9
sub rdx, rdi
je 0x18018aaf1
mov rcx, rbx
mov r10, rsi
sub r10, rbx
mov r8, r15
sub r8, rbx
movups xmm0, xmmword [r10 + rcx]
movups xmmword [rbp - 0x49], xmm0
movups xmm1, xmmword [r10 + rcx + 0x10]
movups xmmword [rbp - 0x39], xmm1
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 1], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x11]
movdqu xmm0, xmmword [rbp + rax - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x49], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18018aab0
movups xmm0, xmmword [rbp - 0x49]
movups xmmword [r8 + rcx], xmm0
movups xmm1, xmmword [rbp - 0x39]
movups xmmword [r8 + rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, rbx
cmp rax, rdx
jne 0x18018aa80
cmp rdx, r9
je 0x18018aba4
cmp rdi, 8
jb 0x18018ab75
lea r10, [rdx + r15]
lea r8, [r15 - 1]
add r8, r9
lea rcx, [rdx + rsi]
lea rax, [rsi - 1]
add rax, r9
cmp r10, rax
ja 0x18018ab20
cmp r8, rcx
jae 0x18018ab75
lea r11, [rdx + rbx]
lea rax, [rbx - 1]
add rax, r9
cmp r10, rax
ja 0x18018ab35
cmp r8, r11
jae 0x18018ab75
and edi, 7
mov r8, r9
sub r8, rdi
mov r10, rbx
sub r10, rsi
mov r11, r15
sub r11, rsi
nop word [rax + rax]
movq xmm1, qword [r10 + rcx]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [r11 + rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, r8
jne 0x18018ab50
cmp rdx, r9
je 0x18018aba4
lea rcx, [rdx + rsi]
sub rbx, rsi
mov r8, r15
sub r8, rsi
sub r9, rdx
nop word [rax + rax]
movzx eax, byte [rcx + rbx]
xor al, byte [rcx]
mov byte [rcx + r8], al
lea rcx, [rcx + 1]
sub r9, 1
jne 0x18018ab90
mov r10, qword [r12]
add r15, r10
mov rsi, qword [rbp - 0x19]
mov r11, qword [rsi]
mov rdi, r10
and edi, 0x1f
mov r8, r10
sub r8, rdi
je 0x18018ac3f
mov rcx, r11
mov r9, r14
sub r9, r11
mov rdx, r15
sub rdx, r11
nop
movups xmm0, xmmword [r9 + rcx]
movups xmmword [rbp - 0x49], xmm0
movups xmm1, xmmword [r9 + rcx + 0x10]
movups xmmword [rbp - 0x39], xmm1
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 1], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x11]
movdqu xmm0, xmmword [rbp + rax - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x49], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18018ac00
movups xmm0, xmmword [rbp - 0x49]
movups xmmword [rdx + rcx], xmm0
movups xmm1, xmmword [rbp - 0x39]
movups xmmword [rdx + rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r11
cmp rax, r8
jne 0x18018abd0
cmp r8, r10
je 0x18018ace5
cmp rdi, 8
jb 0x18018acb7
lea r9, [r8 + r15]
lea rdx, [r15 - 1]
add rdx, r10
lea rcx, [r8 + r14]
lea rax, [r10 - 1]
add rax, r14
cmp r9, rax
ja 0x18018ac6e
cmp rdx, rcx
jae 0x18018acb7
lea rbx, [r8 + r11]
lea rax, [r11 - 1]
add rax, r10
cmp r9, rax
ja 0x18018ac83
cmp rdx, rbx
jae 0x18018acb7
and edi, 7
mov rdx, r10
sub rdx, rdi
mov r9, r11
sub r9, r14
movq xmm1, qword [r9 + rcx]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx + r10], xmm1
add r8, 8
lea rcx, [rcx + 8]
cmp r8, rdx
jne 0x18018ac92
cmp r8, r10
je 0x18018ace5
lea rcx, [r8 + r14]
sub r11, r14
mov rdx, r10
sub rdx, r8
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rcx + r11]
xor al, byte [rcx]
mov byte [rcx + r10], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18018acd0
mov r8, qword [r12]
add r15, r8
mov rsi, qword [rsi]
mov rdi, qword [r12 + 0x40]
mov rbx, r8
and ebx, 0x1f
mov rdx, r8
mov r10, rsi
sub r10, rdi
sub rdx, rbx
je 0x18018ad7d
mov rcx, rdi
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x49], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x39], xmm1
movups xmm0, xmmword [rcx + r10]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [rcx + r10 + 0x10]
movups xmmword [rbp - 1], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x11]
movdqu xmm0, xmmword [rbp + rax - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x49], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18018ad40
movups xmm0, xmmword [rbp - 0x49]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x39]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, rdi
cmp rax, rdx
jne 0x18018ad10
cmp rdx, r8
je 0x18018adf1
cmp rbx, 8
jb 0x18018add4
lea rcx, [rdx + rdi]
lea r9, [rdi - 1]
add r9, r8
lea r11, [rdx + rsi]
lea rax, [rsi - 1]
add rax, r8
cmp rcx, rax
ja 0x18018ada8
cmp r9, r11
jae 0x18018add4
and ebx, 7
mov rax, r8
sub rax, rbx
movq xmm1, qword [rcx + r10]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, rax
jne 0x18018adb1
cmp rdx, r8
je 0x18018adf1
lea rcx, [rdx + rdi]
sub r8, rdx
nop dword [rax + rax]
movzx eax, byte [rcx + r10]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x18018ade0
mov r8, qword [r12]
mov rdx, qword [r12 + 0x40]
test r8, r8
je 0x18018ae11
test rdx, rdx
je 0x18018b46a
test r15, r15
je 0x18018b46a
test rdx, rdx
je 0x18018ae28
test r15, r15
je 0x18018ae28
test r8, r8
je 0x18018ae28
mov rcx, r15
call fcn.180282cf0
mov r12, qword [r12]
add r15, r12
mov qword [rbp - 0x21], r15
mov rsi, qword [rbp + 0x67]
mov r14, qword [rsi + 0x60]
mov r8, qword [rsi + 0x58]
mov rcx, r14
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r13
ja 0x18018af8c
nop dword [rax]
mov rbx, qword [r14 - 0x10]
sub rbx, qword [r14 - 0x18]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x39], 0
mov r15d, 0
je 0x18018aed4
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x18018b4be
lea edx, [r15 + 1]
mov rcx, rbx
call fcn.18009de10
mov rdi, rax
mov qword [rbp - 0x49], rax
lea r15, [rax + rbx]
mov qword [rbp - 0x39], r15
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.180283390
mov rbx, r15
mov qword [rbp - 0x41], rbx
jmp 0x18018aedc
mov rbx, qword [rbp - 0x41]
mov rdi, qword [rbp - 0x49]
mov eax, dword [rbp + 0x7f]
or eax, 2
mov dword [rbp + 0x7f], eax
mov dword [rbp - 0x29], eax
mov r8, rbx
sub r8, rdi
mov rdx, qword [r14 - 0x18]
mov rcx, rdi
call fcn.18018d1e0
mov rax, qword [rsi + 0x60]
cmp rax, qword [rsi + 0x68]
je 0x18018af1a
xor edx, edx
xor ecx, ecx
mov qword [rax], rdi
mov qword [rax + 8], rbx
mov qword [rax + 0x10], r15
add qword [rsi + 0x60], 0x18
jmp 0x18018af32
lea r8, [rbp - 0x49]
mov rdx, rax
lea rcx, [rsi + 0x58]
call fcn.1800dbfa0
mov rdx, qword [rbp - 0x39]
mov rcx, qword [rbp - 0x49]
mov r15d, dword [rbp + 0x7f]
and r15d, 0xfffffffd
mov dword [rbp + 0x7f], r15d
mov dword [rbp - 0x29], r15d
test rcx, rcx
je 0x18018af56
sub rdx, rcx
mov r8d, 1
call fcn.18009df10
nop
mov r14, qword [rsi + 0x60]
mov r8, qword [rsi + 0x58]
mov rcx, r14
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r13
jbe 0x18018ae70
mov r15, qword [rbp - 0x21]
lea rax, [r13*2]
add rax, r13
mov rdi, qword [r8 + rax*8]
mov rax, qword [rbp + 0x67]
mov r11, qword [rax + 0x40]
mov rbx, r12
and ebx, 0x1f
mov rdx, r12
mov r9, rdi
sub r9, r11
sub rdx, rbx
je 0x18018b02d
mov rcx, r11
nop word [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x49], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x39], xmm1
movups xmm0, xmmword [r9 + rcx]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [r9 + rcx + 0x10]
movups xmmword [rbp - 1], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x11]
movdqu xmm0, xmmword [rbp + rax - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x49], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18018aff0
movups xmm0, xmmword [rbp - 0x49]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x39]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r11
cmp rax, rdx
jne 0x18018afc0
cmp rdx, r12
je 0x18018b0a1
cmp rbx, 8
jb 0x18018b084
lea rcx, [rdx + r11]
lea r8, [r11 - 1]
add r8, r12
lea r10, [rdx + rdi]
lea rax, [rdi - 1]
add rax, r12
cmp rcx, rax
ja 0x18018b058
cmp r8, r10
jae 0x18018b084
and ebx, 7
mov rax, r12
sub rax, rbx
movq xmm1, qword [r9 + rcx]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, rax
jne 0x18018b061
cmp rdx, r12
je 0x18018b0a1
lea rcx, [rdx + r11]
sub r12, rdx
nop dword [rax + rax]
movzx eax, byte [r9 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r12, 1
jne 0x18018b090
mov r12, qword [rbp + 0x67]
mov r8, qword [r12]
mov rdx, qword [r12 + 0x40]
test r8, r8
je 0x18018b0cd
test rdx, rdx
je 0x18018b46a
test r15, r15
je 0x18018b46a
mov rcx, r15
call fcn.180282cf0
add r15, qword [r12]
mov qword [rbp - 0x21], r15
mov rdi, qword [rbp + 0x77]
sub rdi, 4
mov qword [rbp + 0x77], rdi
mov rsi, qword [rbp + 0x6f]
cmp rdi, 4
jb 0x18018b0f4
mov rbx, qword [rbp + 0xf]
jmp 0x18018a9f0
movabs r11, 0x2aaaaaaaaaaaaaab
movabs r10, 0x7fffffffffffffff
xor r14d, r14d
mov qword [rbp - 0x19], r14
test rdi, rdi
je 0x18018b451
lea r13, [r12 + 0x58]
nop dword [rax]
lea ecx, [rsi + r14]
lea r9d, [rcx + 1]
mov r15d, r9d
not r15d
shr r15d, 0x1f
shr ecx, 0x1f
and r15d, ecx
neg r15d
and r15d, 1
mov r8d, reloc.WS2_32.dll_recv
nop word [rax + rax]
mov rcx, r8
mov edx, 1
shl edx, cl
dec edx
and edx, r9d
lea eax, [rdx - 1]
shr eax, 0x1f
not edx
shr edx, 0x1f
and eax, edx
neg eax
and eax, 1
imul rax, r8
add r15, rax
mov rcx, rax
shr r9d, cl
shr r8, 1
jne 0x18018b150
mov r12, qword [r12]
mov rsi, qword [r13 + 8]
mov r8, qword [r13]
mov rcx, rsi
sub rcx, r8
mov rax, r11
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r15
ja 0x18018b2df
nop dword [rax]
nop word [rax + rax]
mov rbx, qword [rsi - 0x10]
sub rbx, qword [rsi - 0x18]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x49], xmm0
mov qword [rbp - 0x39], 0
mov r14d, 0
je 0x18018b21a
cmp rbx, r10
ja 0x18018b4c4
lea edx, [r14 + 1]
mov rcx, rbx
call fcn.18009de10
mov rdi, rax
mov qword [rbp - 0x49], rax
lea r14, [rax + rbx]
mov qword [rbp - 0x39], r14
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.180283390
mov rbx, r14
mov qword [rbp - 0x41], rbx
jmp 0x18018b222
mov rbx, qword [rbp - 0x41]
mov rdi, qword [rbp - 0x49]
mov eax, dword [rbp + 0x7f]
or eax, 1
mov dword [rbp + 0x7f], eax
mov dword [rbp - 0x29], eax
mov r8, rbx
sub r8, rdi
mov rdx, qword [rsi - 0x18]
mov rcx, rdi
call fcn.18018d1e0
mov rax, qword [r13 + 8]
mov rcx, qword [rbp + 0x67]
cmp rax, qword [rcx + 0x68]
je 0x18018b264
xor edx, edx
xor ecx, ecx
mov qword [rax], rdi
mov qword [rax + 8], rbx
mov qword [rax + 0x10], r14
add qword [r13 + 8], 0x18
jmp 0x18018b27b
lea r8, [rbp - 0x49]
mov rdx, rax
mov rcx, r13
call fcn.1800dbfa0
mov rdx, qword [rbp - 0x39]
mov rcx, qword [rbp - 0x49]
mov r10d, dword [rbp + 0x7f]
and r10d, 0xfffffffe
mov dword [rbp + 0x7f], r10d
mov dword [rbp - 0x29], r10d
test rcx, rcx
je 0x18018b29f
sub rdx, rcx
mov r8d, 1
call fcn.18009df10
nop
mov rsi, qword [r13 + 8]
mov r8, qword [r13]
mov rcx, rsi
sub rcx, r8
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r15
movabs r10, 0x7fffffffffffffff
jbe 0x18018b1c0
mov r14, qword [rbp - 0x19]
lea rax, [r15 + r15*2]
mov rdi, qword [r8 + rax*8]
mov rax, qword [rbp + 0x67]
mov r11, qword [rax + 0x40]
mov rbx, r12
and ebx, 0x1f
mov rdx, r12
mov r9, rdi
sub r9, r11
sub rdx, rbx
je 0x18018b37d
mov rcx, r11
nop word [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x49], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x39], xmm1
movups xmm0, xmmword [r9 + rcx]
movups xmmword [rbp - 0x11], xmm0
movups xmm1, xmmword [r9 + rcx + 0x10]
movups xmmword [rbp - 1], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x11]
movdqu xmm0, xmmword [rbp + rax - 0x49]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x49], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18018b340
movups xmm0, xmmword [rbp - 0x49]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x39]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r11
cmp rax, rdx
jne 0x18018b310
cmp rdx, r12
je 0x18018b3f1
cmp rbx, 8
jb 0x18018b3d4
lea rcx, [rdx + r11]
lea r8, [r11 - 1]
add r8, r12
lea r10, [rdx + rdi]
lea rax, [rdi - 1]
add rax, r12
cmp rcx, rax
ja 0x18018b3a8
cmp r8, r10
jae 0x18018b3d4
and ebx, 7
mov rax, r12
sub rax, rbx
movq xmm1, qword [r9 + rcx]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, rax
jne 0x18018b3b1
cmp rdx, r12
je 0x18018b3f1
lea rcx, [rdx + r11]
sub r12, rdx
nop dword [rax + rax]
movzx eax, byte [r9 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r12, 1
jne 0x18018b3e0
mov r12, qword [rbp + 0x67]
mov r8, qword [r12]
mov rdx, qword [r12 + 0x40]
test r8, r8
je 0x18018b41b
test rdx, rdx
je 0x18018b46a
mov rbx, qword [rbp - 0x21]
test rbx, rbx
je 0x18018b46a
mov rcx, rbx
call fcn.180282cf0
jmp 0x18018b41f
mov rbx, qword [rbp - 0x21]
add rbx, qword [r12]
mov qword [rbp - 0x21], rbx
inc r14
mov qword [rbp - 0x19], r14
cmp r14, qword [rbp + 0x77]
je 0x18018b451
mov rsi, qword [rbp + 0x6f]
movabs r10, 0x7fffffffffffffff
movabs r11, 0x2aaaaaaaaaaaaaab
jmp 0x18018b120
mov rax, qword [r12 + 0x70]
add rsp, 0x98
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov dword [rsp + 0x20], 0x7b
lea r9, [0x1803e49b0]
lea r8, str.copy_mem
lea rdx, str.If_n___0_then_args_are_not_null
lea rcx, str.n___0_implies_in___nullptr__out___nullptr
call fcn.1800d1f70
int3
mov dword [rsp + 0x20], gethostname
lea r9, [0x1803e3c70]
lea r8, str.compute_offsets
lea rdx, str.OCB_offsets
lea rcx, str.blocks___m_max_blocks
call fcn.1800d1f70
nop
call fcn.1800030ee
nop
call fcn.1800030ee
int3