Function at 0x14005bf00
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r15
lea rbp, [r11 - 0x58]
sub rsp, 0x128
mov rax, qword [0x1400d1608]
xor rax, rsp
mov qword [rbp + 0x10], rax
movsxd rsi, dword [rbp + 0x80]
mov r13, r9
mov r12, qword [rbp + 0x88]
movsxd rdi, r8d
cmp edi, 0x10
jl 0x14005c367
cmp edi, esi
jl 0x14005c367
test rcx, rcx
lea r15, [0x1400e42d0]
cmovne r15, rcx
mov qword [rsp + 0x30], r15
test rdx, rdx
je 0x14005c367
test r12, r12
je 0x14005c367
test r9, r9
je 0x14005c367
cmp rdx, qword [str.4.3.3]
lea rcx, [rsp + 0x40]
mov qword [r11 + 8], rbx
mov r8d, 0xb4
lea rbx, [0x1400cec98]
mov qword [r11 - 0x38], r14
cmovne rbx, rdx
xor edx, edx
call fcn.140070680
lea rdx, [rsp + 0x40]
mov rcx, rbx
call fcn.140066100
cmp edi, 0x10
jne 0x14005c10a
lea r8, [rsp + 0x40]
mov rcx, r13
lea rdx, [rbp]
call fcn.140067820
xor r14d, r14d
test esi, esi
jle 0x14005c0ab
cmp esi, 0x40
jb 0x14005c0ab
lea rcx, [rsi - 1]
lea rax, [rbp]
add rax, rcx
lea rdx, [rcx + r12]
cmp r12, rax
ja 0x14005c000
lea rax, [rbp]
cmp rdx, rax
jae 0x14005c0ab
lea rax, [rcx + r15]
cmp r12, rax
ja 0x14005c012
cmp rdx, r15
jae 0x14005c0ab
mov r9, rsi
lea r8, [rbp]
mov rdx, r15
lea r10, [rbp + 0x10]
lea r11, [rbp + 0x20]
and r9, 0xffffffffffffffc0
sub rdx, r12
lea rcx, [r12 + 0x10]
sub r8, r12
sub r10, r12
sub r11, r12
mov rbx, 0xfffffffffffffff0
sub rbx, r12
movdqu xmm0, xmmword [rcx + rdx - 0x10]
add r14d, 0x40
movdqu xmm1, xmmword [r8 + rcx - 0x10]
movdqu xmm2, xmmword [r8 + rcx]
lea rcx, [rcx + 0x40]
pxor xmm1, xmm0
lea rax, [rbx + rcx]
movdqu xmm0, xmmword [rcx + rdx - 0x40]
movdqu xmmword [rcx - 0x50], xmm1
pxor xmm2, xmm0
movdqu xmm0, xmmword [rcx + rdx - 0x30]
movdqu xmm1, xmmword [r10 + rcx - 0x40]
movdqu xmmword [rcx - 0x40], xmm2
pxor xmm1, xmm0
movdqu xmm0, xmmword [rcx + rdx - 0x20]
movdqu xmm2, xmmword [r11 + rcx - 0x40]
movdqu xmmword [rcx - 0x30], xmm1
pxor xmm2, xmm0
movdqu xmmword [rcx - 0x20], xmm2
cmp rax, r9
jl 0x14005c043
movsxd r8, r14d
cmp r8, rsi
jge 0x14005c0db
lea rax, [rbp]
sub r15, rax
lea rax, [rbp]
sub r12, rax
lea rdx, [rbp]
add rdx, r8
inc r8
movzx ecx, byte [r15 + rdx]
xor cl, byte [rdx]
mov byte [r12 + rdx], cl
cmp r8, rsi
jl 0x14005c0c1
mov eax, esi
mov rbx, qword [rsp + 0x160]
mov r14, qword [rsp + 0x120]
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.14006f1f0
add rsp, 0x128
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, edi
xor r14d, r14d
and ecx, 0xf
mov rax, rdi
mov dword [rsp + 0x28], ecx
je 0x14005c1b1
mov esi, ecx
lea r8, [rsp + 0x40]
sub rax, rsi
lea rdx, [rbp]
lea rbx, [rax + r13]
add rax, r12
lea rdi, [rbx - 0x10]
mov qword [rsp + 0x20], rax
mov rcx, rdi
call fcn.140067820
mov r8d, esi
mov rdx, rbx
mov rcx, rdi
call fcn.14006ffd0
mov eax, dword [rsp + 0x28]
lea rdx, [rbp]
mov r8d, reloc.WS2_32.dll_recv
lea rcx, [rsi + rdi]
sub r8, rax
add rdx, rsi
call fcn.14006ffd0
mov edx, r14d
test rsi, rsi
jle 0x14005c1aa
mov r9, qword [rsp + 0x20]
lea rax, [rbp]
mov r8, rdi
sub r8, rax
lea rax, [rbp]
sub r9, rax
nop
lea rcx, [rbp]
add rcx, rdx
inc rdx
movzx eax, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [r9 + rcx], al
cmp rdx, rsi
jl 0x14005c190
mov rcx, qword [rsp + 0x20]
jmp 0x14005c1bc
lea rdi, [r13 - 0x10]
add rdi, rax
lea rcx, [rax + r12]
cmp rdi, r13
jb 0x14005c35c
mov rax, r13
lea rsi, [rbp + 8]
and eax, 3
lea rbx, [rcx - 8]
and r12d, 3
mov qword [rsp + 0x20], rax
neg rsi
mov r15d, eax
lea r8, [rsp + 0x40]
mov rcx, rdi
lea rdx, [rbp]
call fcn.140067820
sub rdi, 0x10
cmp rdi, r13
jb 0x14005c2a6
test r15, r15
jne 0x14005c232
test r12, r12
jne 0x14005c232
mov eax, dword [rbp]
xor eax, dword [rdi]
mov dword [rbx - 8], eax
mov eax, dword [rbp + 4]
xor eax, dword [rdi + 4]
mov dword [rbx - 4], eax
mov eax, dword [rbp + 8]
xor eax, dword [rdi + 8]
mov dword [rbx], eax
mov eax, dword [rbp + 0xc]
xor eax, dword [rdi + 0xc]
mov dword [rbx + 4], eax
sub rbx, 0x10
jmp 0x14005c1e2
lea rcx, [rbx - 8]
mov r8, r14
lea rax, [rbp + 0xf]
cmp rcx, rax
ja 0x14005c24f
lea rax, [rbx + 7]
lea rdx, [rbp]
cmp rax, rdx
jae 0x14005c261
lea rax, [rdi + 0xf]
cmp rcx, rax
ja 0x14005c28c
lea rax, [rbx + 7]
cmp rax, rdi
jb 0x14005c28c
lea rdx, [rbp]
add rdx, r8
inc r8
lea rax, [rsi + rdx]
movzx ecx, byte [rax + rdi + 8]
lea rax, [rsi + rbx]
xor cl, byte [rdx]
mov byte [rax + rdx], cl
cmp r8, 0x10
jl 0x14005c261
sub rbx, 0x10
jmp 0x14005c1e2
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rbp]
pxor xmm1, xmm0
movdqu xmmword [rcx], xmm1
sub rbx, 0x10
jmp 0x14005c1e2
mov r15, qword [rsp + 0x30]
test r12, r12
je 0x14005c336
lea rcx, [rbx - 8]
lea rax, [rbp + 0xf]
cmp rcx, rax
ja 0x14005c2ce
lea rax, [rbx + 7]
lea rdx, [rbp]
cmp rax, rdx
jae 0x14005c2e0
lea rax, [r15 + 0xf]
cmp rcx, rax
ja 0x14005c319
lea rax, [rbx + 7]
cmp rax, r15
jb 0x14005c319
lea rax, [rbp]
sub r15, rax
nop word [rax + rax]
lea rdx, [rbp]
add rdx, r14
lea rax, [rsi + rbx]
inc r14
movzx ecx, byte [r15 + rdx]
xor cl, byte [rdx]
mov byte [rax + rdx], cl
cmp r14, 0x10
jl 0x14005c2f0
mov eax, dword [rbp + 0x80]
jmp 0x14005c0dd
movdqu xmm0, xmmword [r15]
movdqu xmm1, xmmword [rbp]
pxor xmm1, xmm0
movdqu xmmword [rcx], xmm1
mov eax, dword [rbp + 0x80]
jmp 0x14005c0dd
mov eax, dword [rbp]
xor eax, dword [r15]
mov dword [rbx - 8], eax
mov eax, dword [rbp + 4]
xor eax, dword [r15 + 4]
mov dword [rbx - 4], eax
mov eax, dword [rbp + 8]
xor eax, dword [r15 + 8]
mov dword [rbx], eax
mov eax, dword [rbp + 0xc]
xor eax, dword [r15 + 0xc]
mov dword [rbx + 4], eax
mov eax, dword [rbp + 0x80]
jmp 0x14005c0dd
mov eax, 0xffffffff
jmp 0x14005c0ed