Function at 0x18001f000
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x180067048]
xor rax, rsp
mov qword [rsp + 0x80], rax
mov rbp, qword [rsp + 0x100]
mov rbx, rcx
mov qword [rsp + 0x28], rcx
mov r15, r9
lea rcx, [r8 + 0x10]
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x38], r9
mov rdi, r8
mov qword [rsp + 0x40], r8
mov rsi, rdx
mov qword [rsp + 0x48], rdx
call fcn.180040c80
cmp qword [0x18006b828], 0
mov r12, rax
je 0x18001f071
lea rdx, [rsp + 0x50]
call fcn.180014a00
mov r14d, reloc.WS2_32.dll_recv
lea rcx, [rsp + 0x60]
cmp rdi, r14
mov rdx, rsi
cmovb r14, rdi
mov r8, r14
call fcn.180038e30
cmp r14, 0x10
jae 0x18001f0e8
xor ebp, ebp
test r14, r14
je 0x18001f0b1
nop dword [rax + rax]
movzx eax, byte [rsp + rbp + 0x50]
xor byte [rsp + rbp + 0x60], al
inc rbp
cmp rbp, r14
jb 0x18001f0a0
lea rcx, [rsp + 0x50]
mov r8, rbx
add rcx, r14
mov rdx, rcx
call fcn.18001b420
lea rbx, [r14 + 0x10]
mov rcx, r12
mov r8, rbx
lea rdx, [rsp + 0x50]
call fcn.180038e30
mov rax, qword [rsp + 0x30]
mov qword [r15], r12
mov qword [rax], rbx
jmp 0x18001f31f
movups xmm0, xmmword [rsp + 0x50]
mov qword [rsp + 0x98], r13
lea rdi, [rsp + 0x50]
mov qword [rsp + 0x20], reloc.WS2_32.dll_recv
lea r13, [rsp + 0x60]
movups xmmword [r12], xmm0
lea rsi, [rsp + 0x70]
mov r15d, reloc.WS2_32.dll_recv
jne 0x18001f30b
xor ebp, ebp
mov rax, qword [rsp + 0x40]
mov ebx, reloc.WS2_32.dll_recv
mov rdx, qword [rsp + 0x48]
sub rax, r14
cmp rax, rbx
mov rcx, rsi
cmovb rbx, rax
add rdx, r14
mov r8, rbx
call fcn.180038e30
lea rax, [r13 + 0xf]
add r14, rbx
lea rcx, [rdi + 0xf]
cmp rdi, rax
ja 0x18001f183
cmp rcx, r13
jb 0x18001f183
mov r8, r13
mov rax, rdi
sub r8, rdi
mov edx, reloc.WS2_32.dll_recv
nop word [rax + rax]
movzx ecx, byte [r8 + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub rdx, 1
jne 0x18001f170
jmp 0x18001f195
movdqu xmm1, xmmword [rdi]
movdqu xmm0, xmmword [r13]
pxor xmm1, xmm0
movdqu xmmword [rdi], xmm1
mov r8, qword [rsp + 0x28]
mov rdx, rdi
mov rcx, rdi
call fcn.18001b420
test rbx, 0xffffffffffffffef
je 0x18001f2cd
mov qword [rsp + 0x20], rbx
mov r9, rbp
test rbx, rbx
je 0x18001f281
cmp rbx, 0x40
jb 0x18001f25b
lea rcx, [rsi - 1]
lea rax, [rdi - 1]
add rcx, rbx
add rax, rbx
cmp rsi, rax
ja 0x18001f1e5
cmp rcx, rdi
jae 0x18001f25b
mov rdx, rbx
and rdx, 0xffffffffffffffc0
mov rcx, rdi
mov rax, rsi
sub rcx, rsi
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
add r9, 0x40
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rcx + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r9, rdx
jb 0x18001f200
cmp r9, rbx
jae 0x18001f281
mov r8, rdi
lea rcx, [r9 + rsi]
sub r8, rsi
mov rdx, rbx
sub rdx, r9
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18001f270
cmp rbx, 0x10
jae 0x18001f2b1
mov r8, rdi
lea rcx, [rsi + rbx]
sub r8, rsi
mov edx, reloc.WS2_32.dll_recv
sub rdx, rbx
nop dword [rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x18001f2a0
mov r8, qword [rsp + 0x28]
mov rdx, rsi
mov rcx, rsi
call fcn.18001b420
movups xmm0, xmmword [rsi]
movups xmmword [r12 + r15], xmm0
add r15, 0x10
mov r8, qword [rsp + 0x20]
lea rcx, [r12 + r15]
mov rdx, rdi
call fcn.180038e30
add r15, qword [rsp + 0x20]
mov rax, rsi
mov rsi, r13
mov r13, rdi
mov rdi, rax
cmp rbx, 0x10
je 0x18001f120
mov rax, qword [rsp + 0x38]
mov qword [rax], r12
mov rax, qword [rsp + 0x30]
mov qword [rax], r15
jmp 0x18001f317
mov rax, qword [rsp + 0x38]
mov qword [rax], r12
mov qword [rbp], r15
mov r13, qword [rsp + 0x98]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.1800377f0
add rsp, 0xa0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret