Function at 0x18018b580
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
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 - 0x17]
sub rsp, 0xf8
mov rdi, rcx
mov dword [rsp + 0x24], 0
mov rax, qword [r8]
mov rcx, r8
call qword [rax + 0x30]
mov r15, rax
mov qword [rbp - 0x21], rax
mov qword [rdi], 0
mov qword [rdi + 8], 0
mov qword [rdi + 0x10], 0
movabs rbx, 0x7fffffffffffffff
test rax, rax
je 0x18018b62c
cmp rax, rbx
ja 0x18018be39
mov edx, 1
mov rcx, rax
call fcn.18009de10
mov rcx, rax
mov qword [rdi], rax
add rax, r15
mov qword [rdi + 0x10], rax
lea rbx, [rcx + r15]
mov r8, r15
xor edx, edx
call fcn.180283390
mov qword [rdi + 8], rbx
movabs rbx, 0x7fffffffffffffff
mov r13d, 1
mov dword [rsp + 0x24], r13d
xor r14d, r14d
mov qword [rbp - 0x61], r14
mov qword [rsp + 0x60], r14
xor edi, edi
mov qword [rsp + 0x58], rdi
mov qword [rbp - 0x79], rdi
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x71], rax
test r15, r15
je 0x18018b6a4
cmp r15, rbx
ja 0x18018be3f
mov edx, r13d
mov rcx, r15
call fcn.18009de10
mov r14, rax
mov qword [rbp - 0x61], rax
mov qword [rsp + 0x60], rax
lea rdi, [rax + r15]
mov qword [rsp + 0x58], rdi
mov rax, rdi
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x71], rax
mov r8, r15
xor edx, edx
mov rcx, r14
call fcn.180283390
mov qword [rbp - 0x79], rdi
xor r12d, r12d
mov qword [rsp + 0x28], r12
xor esi, esi
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x30], rsi
xor eax, eax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
test r15, r15
je 0x18018b70d
cmp r15, rbx
ja 0x18018be45
lea edx, [rsi + 1]
mov rcx, r15
call fcn.18009de10
mov r12, rax
mov qword [rsp + 0x28], rax
lea rsi, [rax + r15]
mov qword [rsp + 0x50], rsi
mov rax, rsi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov r8, r15
xor edx, edx
mov rcx, r12
call fcn.180283390
mov qword [rsp + 0x30], rsi
xor edx, edx
mov rax, qword [rbp + 0x7f]
div r15
mov qword [rbp - 0x29], rdx
mov rcx, rax
mov qword [rbp - 0x31], rax
xor eax, eax
mov qword [rbp - 0x39], rax
test rcx, rcx
je 0x18018bc0c
mov r14, qword [rbp + 0x67]
add r14, 0x58
mov rcx, qword [rbp + 0x77]
mov qword [rbp - 0x69], rcx
movabs r10, 0x2aaaaaaaaaaaaaab
lea r9d, [rax + 1]
mov r15d, r9d
not r15d
shr r15d, 0x1f
shr eax, 0x1f
and r15d, eax
neg r15d
and r15d, 1
mov r8d, reloc.WS2_32.dll_recv
nop dword [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 0x18018b770
mov rsi, qword [r14 + 8]
mov r8, qword [r14]
mov rcx, rsi
sub rcx, r8
mov rax, r10
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r15
ja 0x18018b8ec
nop dword [rax]
mov rbx, qword [rsi - 0x10]
sub rbx, qword [rsi - 0x18]
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x59], xmm0
mov qword [rbp - 0x49], 0
mov r14d, 0
je 0x18018b834
movabs rax, 0x7fffffffffffffff
cmp rbx, rax
ja 0x18018be4b
lea edx, [r14 + 1]
mov rcx, rbx
call fcn.18009de10
mov rdi, rax
mov qword [rbp - 0x59], rax
lea r14, [rax + rbx]
mov qword [rbp - 0x49], r14
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.180283390
mov rbx, r14
mov qword [rbp - 0x51], rbx
jmp 0x18018b83c
mov rbx, qword [rbp - 0x51]
mov rdi, qword [rbp - 0x59]
or r13d, 2
mov dword [rsp + 0x24], r13d
mov r8, rbx
sub r8, rdi
mov rdx, qword [rsi - 0x18]
mov rcx, rdi
call fcn.18018d1e0
mov rcx, qword [rbp + 0x67]
lea rsi, [rcx + 0x58]
mov rax, qword [rsi + 8]
cmp rax, qword [rcx + 0x68]
je 0x18018b87f
xor edx, edx
xor ecx, ecx
mov qword [rax], rdi
mov qword [rax + 8], rbx
mov qword [rax + 0x10], r14
add qword [rsi + 8], 0x18
jmp 0x18018b896
lea r8, [rbp - 0x59]
mov rdx, rax
mov rcx, rsi
call fcn.1800dbfa0
mov rdx, qword [rbp - 0x49]
mov rcx, qword [rbp - 0x59]
and r13d, 0xfffffffd
mov dword [rsp + 0x24], r13d
test rcx, rcx
je 0x18018b8b3
sub rdx, rcx
mov r8d, 1
call fcn.18009df10
nop
mov rsi, qword [rsi + 8]
mov r14, qword [rbp + 0x67]
add r14, 0x58
mov r8, qword [r14]
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
jbe 0x18018b7d0
lea rax, [r15 + r15*2]
lea rdi, [r8 + rax*8]
mov rsi, qword [rsp + 0x58]
mov rcx, rsi
mov r15, qword [rbp - 0x61]
sub rcx, r15
mov rbx, qword [rdi + 8]
sub rbx, qword [rdi]
cmp rcx, rbx
jae 0x18018b962
mov rax, qword [rsp + 0x48]
sub rax, r15
cmp rbx, rax
jbe 0x18018b946
lea r8, [rsp + 0x20]
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.18009da10
mov rax, qword [rbp - 0x71]
mov qword [rsp + 0x48], rax
mov rsi, qword [rbp - 0x79]
mov r15, qword [rsp + 0x60]
mov qword [rbp - 0x61], r15
jmp 0x18018b95d
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rsi
call fcn.180283390
add rsi, rbx
mov qword [rbp - 0x79], rsi
mov qword [rsp + 0x58], rsi
mov rdx, qword [rdi]
mov r8, qword [rdi + 8]
sub r8, rdx
mov rcx, r15
call fcn.18009dfd0
mov rbx, rsi
sub rbx, r15
mov rdx, qword [rsp + 0x40]
sub rdx, r12
cmp rbx, rdx
jbe 0x18018ba19
movabs r8, 0x7fffffffffffffff
cmp rbx, r8
ja 0x18018be33
mov rcx, rdx
shr rcx, 1
mov rax, r8
sub rax, rcx
cmp rdx, rax
jbe 0x18018b9b4
mov rdi, r8
jmp 0x18018b9bf
lea rdi, [rcx + rdx]
cmp rdi, rbx
cmovb rdi, rbx
test r12, r12
je 0x18018b9e3
mov r8d, 1
mov rcx, r12
call fcn.18009df10
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov edx, 1
mov rcx, rdi
call fcn.18009de10
mov r12, rax
mov qword [rsp + 0x28], rax
add rax, rdi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov r8, rbx
mov rdx, r15
mov rcx, r12
call fcn.180282cf0
lea rsi, [r12 + rbx]
jmp 0x18018ba5a
mov rsi, qword [rsp + 0x50]
mov rdi, rsi
sub rdi, r12
mov rdx, r15
mov rcx, r12
cmp rbx, rdi
jbe 0x18018ba4e
mov r8, rdi
call fcn.180282cf0
lea rdx, [rdi + r15]
sub rbx, rdi
mov r8, rbx
mov rcx, rsi
call fcn.180282cf0
add rsi, rbx
jmp 0x18018ba5a
mov r8, rbx
call fcn.180282cf0
lea rsi, [rbx + r12]
mov qword [rsp + 0x50], rsi
mov qword [rsp + 0x30], rsi
mov r15, qword [rbp - 0x21]
mov r10, r15
and r10d, 0x1f
mov rdx, r15
sub rdx, r10
mov r11, qword [rbp - 0x69]
je 0x18018bafd
mov rcx, r12
mov r8, r11
sub r8, r12
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
movups xmmword [rbp - 0x59], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp - 0x49], xmm1
movups xmm0, xmmword [r8 + rcx]
movups xmmword [rbp - 0x19], xmm0
movups xmm1, xmmword [r8 + rcx + 0x10]
movups xmmword [rbp - 9], xmm1
xor eax, eax
nop dword [rax]
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax - 0x19]
movdqu xmm0, xmmword [rbp + rax - 0x59]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax - 0x59], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x18018bac0
movups xmm0, xmmword [rbp - 0x59]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [rbp - 0x49]
movups xmmword [rcx + 0x10], xmm1
add rcx, 0x20
mov rax, rcx
sub rax, r12
cmp rax, rdx
jne 0x18018ba90
cmp rdx, r15
je 0x18018bb91
cmp r10, 8
jb 0x18018bb63
lea rcx, [rdx + r12]
lea r8, [r15 - 1]
add r8, r12
lea r9, [rdx + r11]
lea rax, [r15 - 1]
add rax, r11
cmp rcx, rax
ja 0x18018bb2c
cmp r8, r9
jae 0x18018bb63
and r10d, 7
mov r8, r15
sub r8, r10
mov r9, r11
sub r9, r12
nop dword [rax]
movq xmm1, qword [rcx + r9]
movq xmm0, qword [rcx]
xorps xmm1, xmm0
movq qword [rcx], xmm1
add rdx, 8
lea rcx, [rcx + 8]
cmp rdx, r8
jne 0x18018bb40
cmp rdx, r15
je 0x18018bb91
lea rcx, [rdx + r12]
mov r9, r11
sub r9, r12
mov r8, r15
sub r8, rdx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + r9]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub r8, 1
jne 0x18018bb80
mov rdi, rsi
sub rdi, r12
mov rcx, qword [rbp + 0x6f]
mov rax, qword [rcx]
mov rbx, qword [rax + 0x48]
call qword [rax + 0x30]
mov rcx, rax
xor edx, edx
mov rax, rdi
div rcx
mov r9, rax
mov r8, r12
mov rdx, r12
mov rcx, qword [rbp + 0x6f]
call rbx
mov rbx, qword [rbp + 0x5f]
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
cmp rax, rdi
jae 0x18018bbda
mov rdx, rdi
mov rcx, rbx
call fcn.18009c590
mov r8, rdi
mov rdx, r12
mov rcx, qword [rbx]
call fcn.18009dfd0
mov rax, qword [rbp - 0x39]
inc rax
mov qword [rbp - 0x39], rax
add qword [rbp - 0x69], r15
cmp rax, qword [rbp - 0x31]
jne 0x18018b740
mov rdi, qword [rsp + 0x58]
mov r14, qword [rbp - 0x61]
jmp 0x18018bc10
mov rbx, qword [rbp + 0x5f]
cmp qword [rbp - 0x29], 0
je 0x18018bde4
mov rcx, rdi
sub rcx, r14
mov r13, qword [rbp + 0x67]
mov rbx, qword [r13 + 0x30]
sub rbx, qword [r13 + 0x28]
cmp rcx, rbx
jae 0x18018bc7c
mov rax, qword [rsp + 0x48]
sub rax, r14
cmp rbx, rax
jbe 0x18018bc65
lea r8, [rsp + 0x20]
mov rdx, rbx
lea rcx, [rsp + 0x60]
call fcn.18009da10
mov rax, qword [rbp - 0x71]
mov qword [rsp + 0x48], rax
mov rdi, qword [rbp - 0x79]
mov r14, qword [rsp + 0x60]
jmp 0x18018bc7c
sub rbx, rcx
mov r8, rbx
xor edx, edx
mov rcx, rdi
call fcn.180283390
add rdi, rbx
mov qword [rbp - 0x79], rdi
mov rdx, qword [r13 + 0x28]
mov r8, qword [r13 + 0x30]
sub r8, rdx
mov rcx, r14
call fcn.18009dfd0
sub rdi, r14
mov rdx, qword [rsp + 0x40]
sub rdx, r12
cmp rdi, rdx
jbe 0x18018bd2c
movabs rbx, 0x7fffffffffffffff
cmp rdi, rbx
ja 0x18018be33
mov rcx, rdx
shr rcx, 1
mov rax, rbx
sub rax, rcx
cmp rdx, rax
ja 0x18018bcd2
lea rbx, [rdx + rcx]
cmp rbx, rdi
cmovb rbx, rdi
test r12, r12
je 0x18018bcf6
mov r8d, 1
mov rcx, r12
call fcn.18009df10
xor eax, eax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov edx, 1
mov rcx, rbx
call fcn.18009de10
mov r12, rax
mov qword [rsp + 0x28], rax
add rax, rbx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov r8, rdi
mov rdx, r14
mov rcx, r12
call fcn.180282cf0
lea rsi, [r12 + rdi]
jmp 0x18018bd68
mov rbx, rsi
sub rbx, r12
mov rdx, r14
mov rcx, r12
cmp rdi, rbx
jbe 0x18018bd5c
mov r8, rbx
call fcn.180282cf0
lea rdx, [rbx + r14]
sub rdi, rbx
mov r8, rdi
mov rcx, rsi
call fcn.180282cf0
add rsi, rdi
jmp 0x18018bd68
mov r8, rdi
call fcn.180282cf0
lea rsi, [rdi + r12]
mov qword [rsp + 0x30], rsi
mov rdx, qword [rbp - 0x31]
imul rdx, r15
add rdx, qword [rbp + 0x77]
mov rbx, qword [rbp - 0x29]
mov r8, rbx
mov rcx, r12
call fcn.18009dfd0
xor byte [r12 + rbx], 0x80
sub rsi, r12
mov rdi, qword [rbp + 0x6f]
mov rax, qword [rdi]
mov rbx, qword [rax + 0x48]
mov rcx, rdi
call qword [rax + 0x30]
mov rcx, rax
xor edx, edx
mov rax, rsi
div rcx
mov r9, rax
mov r8, r12
mov rdx, r12
mov rcx, rdi
call rbx
mov rbx, qword [rbp + 0x5f]
mov rax, qword [rbx + 8]
sub rax, qword [rbx]
cmp rax, rsi
jae 0x18018bdd5
mov rdx, rsi
mov rcx, rbx
call fcn.18009c590
mov r8, rsi
mov rdx, r12
mov rcx, qword [rbx]
call fcn.18009dfd0
nop
test r12, r12
je 0x18018be00
mov rdx, qword [rsp + 0x40]
sub rdx, r12
mov r8d, 1
mov rcx, r12
call fcn.18009df10
nop
test r14, r14
je 0x18018be1c
mov rdx, qword [rsp + 0x48]
sub rdx, r14
mov r8d, 1
mov rcx, r14
call fcn.18009df10
nop
mov rax, rbx
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1800030ee
nop
call fcn.1800030ee
int3
call fcn.1800030ee
nop
call fcn.1800030ee
nop
call fcn.1800030ee
int3