Function at 0x14020fc80
Capabilities:
Encode data using xor

Disassembly:
push rsi
push r15
sub rsp, 0xd8
mov rax, qword [0x1403ad830]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rsi, rcx
mov qword [rsp + 0x40], r8
mov rcx, qword [rsp + 0x118]
mov eax, r9d
mov dword [rsp + 0x30], eax
mov r15d, edx
mov qword [rsp + 0x38], rcx
test rcx, rcx
jne 0x14020fcd4
cmp dword [rsp + 0x120], ecx
jbe 0x14020fcd4
mov eax, 0xffffff7c
jmp 0x14020fee7
mov ecx, eax
mov qword [rsp + 0xc0], rdi
call fcn.1401ccdf0
movsxd rdi, eax
test eax, eax
js 0x14020fff6
lea ecx, [rdi*2 + 2]
cmp r15d, ecx
jb 0x14020fff6
mov qword [rsp + 0xd0], rbx
mov rcx, r15
mov qword [rsp + 0xc8], rbp
call fcn.1401c5b90
mov rbx, rax
test rax, rax
jne 0x14020fd26
lea eax, [rbx - 0x7d]
jmp 0x14020fecf
mov qword [rsp + 0xb8], r12
mov r8, r15
xor edx, edx
mov qword [rsp + 0xb0], r13
mov rcx, rbx
call fcn.140285450
mov r13, qword [rsp + 0x128]
lea eax, [rdi + 1]
mov ecx, dword [rsp + 0x110]
mov r12d, r15d
movsxd rdx, eax
sub r12d, edi
dec r12d
mov qword [rsp + 0x28], r13
mov r8d, r12d
mov dword [rsp + 0x20], edi
add rdx, rsi
mov r9, rbx
call fcn.14020ece0
mov ebp, eax
test eax, eax
je 0x14020fd8d
mov rcx, rbx
call fcn.1401c5b70
mov eax, ebp
jmp 0x14020febf
xor ebp, ebp
mov qword [rsp + 0xa8], r14
mov r9d, ebp
test edi, edi
je 0x14020fe85
cmp edi, 0x40
jb 0x14020fe57
lea edx, [rdi - 1]
mov eax, edi
add rdx, rbx
lea rcx, [rsi + 1]
add rax, rsi
cmp rbx, rax
ja 0x14020fdc8
cmp rdx, rcx
jae 0x14020fe57
mov eax, edi
mov r10d, edi
and eax, 0x3f
sub r10d, eax
mov r8d, reloc.WS2_32.dll_recvfrom
nop dword [rax]
mov edx, r9d
lea eax, [r8 - 0x10]
movdqu xmm1, xmmword [rax + rsi]
mov eax, r8d
lea ecx, [r8 - 1]
add r9d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r8 + 0xf]
movdqu xmm0, xmmword [rcx + rbx]
movdqu xmm1, xmmword [rax + rsi]
lea eax, [r8 + 0x10]
pxor xmm1, xmm0
movdqu xmmword [rcx + rbx], xmm1
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rsi]
lea eax, [r8 + 0x20]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
lea edx, [r8 + 0x1f]
add r8d, 0x40
movdqu xmm0, xmmword [rdx + rbx]
movdqu xmm1, xmmword [rax + rsi]
pxor xmm1, xmm0
movdqu xmmword [rdx + rbx], xmm1
cmp r9d, r10d
jb 0x14020fde0
cmp r9d, edi
jae 0x14020fe85
mov edx, r9d
lea r8d, [r9 + 1]
add rdx, rbx
add r8, rsi
mov eax, edi
sub eax, r9d
mov r9d, eax
movzx eax, byte [r8]
lea r8, [r8 + 1]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x14020fe71
mov ecx, dword [rsp + 0x110]
lea r9, [rdi + rbx]
mov qword [rsp + 0x28], r13
mov r8d, edi
mov rdx, rbx
mov dword [rsp + 0x20], r12d
call fcn.14020ece0
mov r13d, eax
test eax, eax
je 0x14020ff02
mov rcx, rbx
call fcn.1401c5b70
mov eax, r13d
mov r14, qword [rsp + 0xa8]
mov r12, qword [rsp + 0xb8]
mov r13, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.140283120
add rsp, 0xd8
pop r15
pop rsi
ret
test r12d, r12d
je 0x14020ff27
mov ecx, edi
mov r9d, r12d
nop dword [rax]
lea r8d, [rcx + 1]
mov eax, ecx
movzx ecx, byte [rax + rbx]
xor byte [r8 + rsi], cl
mov ecx, r8d
sub r9, 1
jne 0x14020ff10
mov rcx, rbx
call fcn.1401c5b70
lea ebx, [rdi*2 + 1]
lea r10d, [r15 - 1]
cmp ebx, r10d
jae 0x14020ff54
mov r9d, ebx
add r9, rsi
cmp byte [r9], bpl
jne 0x14020ff54
inc ebx
inc r9
cmp ebx, r10d
jb 0x14020ff45
mov r8d, dword [rsp + 0x120]
lea r9, [rsp + 0x50]
mov rdx, qword [rsp + 0x38]
mov ecx, dword [rsp + 0x30]
mov dword [rsp + 0x20], edi
call fcn.1401cc820
test eax, eax
jne 0x14020feb7
test edi, edi
jle 0x14020ffad
lea rdx, [rsp + 0x50]
mov r8, rdi
sub r8, rdx
mov rax, rbp
add r8, rsi
lea rcx, [rsp + 0x50]
add rcx, rax
inc rax
movzx edx, byte [rcx + r8 + 1]
movzx ecx, byte [rcx]
xor edx, ecx
or ebp, edx
cmp rax, rdi
jl 0x14020ff90
movzx ecx, byte [rsi]
movzx edx, byte [rbx + rsi]
xor edx, 1
add edx, ebp
add edx, ecx
lea eax, [rdx - 1]
not edx
shr eax, 0x1f
shr edx, 0x1f
neg al
neg dl
movsx ecx, al
movsx eax, dl
lea edx, [rbx + 1]
and ecx, eax
mov rax, qword [rsp + 0x40]
and edx, ecx
not ecx
and ecx, r15d
or edx, ecx
mov ecx, edx
add rcx, rsi
sub r15d, edx
mov qword [rax], rcx
mov eax, r15d
jmp 0x14020feb7
mov eax, 0xffffff53
jmp 0x14020fedf