Function at 0x14003d420
Capabilities:
Encode data using xor

Disassembly:
test r8, r8
je 0x14003de20
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push r13
lea rbp, [rax - 0x1e8]
sub rsp, 0x2d8
mov qword [rax - 0x18], rbx
mov r13, rcx
mov qword [rax - 0x20], rsi
xor ecx, ecx
mov qword [rax - 0x28], rdi
mov qword [rax - 0x30], r12
mov qword [rax - 0x38], r14
mov qword [rax - 0x40], r15
mov dword [rbp + 0x208], ecx
nop dword [rax]
mov r9d, ecx
lea r11, [rsp + 0x30]
shl r9d, 7
mov r10d, 3
add r9, rdx
nop word [rax + rax]
lea eax, [r10*8 - 0x18]
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 - 0x10]
mov qword [r11 - 0x10], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 - 8]
mov qword [r11 - 8], rdx
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8]
mov qword [r11], rdx
movzx edx, byte [rax + r9]
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
shl rdx, 8
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 8]
mov qword [r11 + 8], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x10]
mov qword [r11 + 0x10], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x18]
mov qword [r11 + 0x18], rdx
movzx edx, byte [rax + r9]
shl rdx, 8
mov ecx, eax
movzx eax, byte [rax + r9 + 1]
or rdx, rax
shl rdx, 8
movzx eax, byte [rcx + r9 + 2]
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
lea r11, [r11 + 0x40]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10*8 + 0x20]
mov qword [r11 - 0x20], rdx
lea r10d, [r10 + 8]
movzx edx, byte [rax + r9 + 1]
mov ecx, eax
movzx eax, byte [rax + r9]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r9 + 7]
shl rdx, 8
or rdx, rax
lea eax, [r10 - 3]
mov qword [r11 - 0x18], rdx
cmp eax, 0x10
jb 0x14003d490
mov eax, recv
nop dword [rax]
lea ecx, [rax - 0xd]
mov r9, qword [rsp + rcx*8 + 0x20]
mov ecx, eax
mov rdx, r9
ror rdx, 8
mov r14, qword [rsp + rcx*8 + 0x20]
mov r15, r14
mov rcx, r14
ror rcx, 0x13
ror r15, 0x3d
xor r15, rcx
mov rcx, r14
shr rcx, 6
xor r15, rcx
mov rcx, r9
ror rcx, 1
xor rdx, rcx
mov rcx, r9
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 0xe]
add r15, rdx
add r15, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax - 5]
add r15, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 2]
mov qword [rsp + rcx*8 + 0x20], r15
lea ecx, [rax - 0xc]
mov r10, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 1]
mov rsi, qword [rsp + rcx*8 + 0x20]
mov rdx, r10
ror rdx, 8
mov r8, rsi
ror r8, 0x3d
mov rcx, rsi
ror rcx, 0x13
xor r8, rcx
mov rcx, rsi
shr rcx, 6
xor r8, rcx
mov rcx, r10
ror rcx, 1
xor rdx, rcx
mov rcx, r10
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 4]
add r8, rdx
mov rdx, r15
ror rdx, 0x3d
add r8, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 3]
add r9, r8
mov qword [rsp + rcx*8 + 0x20], r9
mov rdi, r9
lea ecx, [rax - 0xb]
mov r11, qword [rsp + rcx*8 + 0x20]
mov r8, r11
mov rcx, r11
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r11
shr rcx, 7
xor r8, rcx
mov rcx, r15
ror rcx, 0x13
xor rdx, rcx
mov rcx, r15
shr rcx, 6
xor rdx, rcx
lea ecx, [rax - 3]
add r8, rdx
add r8, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 4]
add r10, r8
mov qword [rsp + rcx*8 + 0x20], r10
lea ecx, [rax - 0xa]
mov rbx, qword [rsp + rcx*8 + 0x20]
ror rdi, 0x3d
mov r8, r10
mov rcx, r9
ror rcx, 0x13
mov rdx, rbx
xor rdi, rcx
ror r8, 0x3d
ror rdx, 8
mov rcx, rbx
ror rcx, 1
xor rdx, rcx
shr r9, 6
xor rdi, r9
mov rcx, rbx
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 2]
add rdi, rdx
add rdi, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 5]
add rdi, r11
mov qword [rsp + rcx*8 + 0x20], rdi
lea ecx, [rax - 9]
mov r11, qword [rsp + rcx*8 + 0x20]
mov rcx, r10
ror rcx, 0x13
mov rdx, r11
xor r8, rcx
shr r10, 6
xor r8, r10
ror rdx, 8
mov rcx, r11
mov r10, rdi
ror rcx, 1
xor rdx, rcx
ror r10, 0x3d
mov rcx, r11
shr rcx, 7
xor rdx, rcx
lea ecx, [rax - 1]
add r8, rdx
add r8, qword [rsp + rcx*8 + 0x20]
lea ecx, [rax + 6]
add rbx, r8
mov qword [rsp + rcx*8 + 0x20], rbx
mov rdx, rbx
lea ecx, [rax - 8]
ror rdx, 0x3d
mov r9, qword [rsp + rcx*8 + 0x20]
mov r8, r9
mov rcx, r9
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r9
shr rcx, 7
xor r8, rcx
mov rcx, rdi
ror rcx, 0x13
xor r10, rcx
shr rdi, 6
xor r10, rdi
lea edi, [rax + 8]
lea rcx, [r11 + r8]
add r10, rcx
lea ecx, [rax + 7]
add r10, r14
mov qword [rsp + rcx*8 + 0x20], r10
lea ecx, [rax - 7]
mov r11, qword [rsp + rcx*8 + 0x20]
mov r8, r11
mov rcx, r11
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r11
shr rcx, 7
xor r8, rcx
mov rcx, rbx
ror rcx, 0x13
xor rdx, rcx
shr rbx, 6
xor rdx, rbx
lea rcx, [r9 + r8]
add rdx, rcx
mov r8, r10
add rdx, rsi
ror r8, 0x3d
mov qword [rsp + rdi*8 + 0x20], rdx
lea ecx, [rax - 6]
mov r9, qword [rsp + rcx*8 + 0x20]
add eax, 9
mov rcx, r10
mov rdx, r9
ror rcx, 0x13
xor r8, rcx
ror rdx, 8
shr r10, 6
mov rcx, r9
ror rcx, 1
xor r8, r10
xor rdx, rcx
shr r9, 7
xor rdx, r9
lea rcx, [r11 + r8]
add rdx, rcx
lea ecx, [rdi + 2]
add rdx, r15
mov qword [rsp + rax*8 + 0x20], rdx
mov eax, edi
cmp ecx, 0x50
jb 0x14003d820
mov rax, qword [r13 + 8]
xor edi, edi
mov r14, qword [r13 + 0x10]
mov rsi, rax
mov r11, qword [r13 + 0x18]
mov rbx, qword [r13 + 0x20]
mov r15, qword [r13 + 0x28]
mov r12, qword [r13 + 0x30]
mov r8, qword [r13 + 0x40]
mov qword [rsp + 0x18], rax
mov rax, qword [r13 + 0x38]
mov r13, rax
mov qword [rsp + reloc.WS2_32.dll_recv], 0x10
jmp 0x14003db04
mov r8, qword [rsp]
mov rdx, r15
mov rax, r15
ror rax, 0x12
mov rcx, r15
ror rdx, 0x29
not rcx
xor rdx, rax
and rcx, r13
mov rax, r15
mov r9, r14
ror rax, 0xe
xor r9, r11
xor rdx, rax
and r9, rsi
mov rax, r12
and rax, r15
xor rcx, rax
lea rax, [0x1401e1d80]
add rdx, rcx
mov rcx, rsi
add rdx, qword [rdi + rax]
mov rax, rsi
add rdx, qword [rsp + rdi + 0x20]
ror rax, 0x22
add rdx, r8
ror rcx, 0x27
xor rcx, rax
mov rax, rsi
ror rax, 0x1c
xor rcx, rax
lea r10, [rbx + rdx]
mov rax, r14
mov rbx, r14
and rax, r11
xor rbx, rsi
xor r9, rax
lea rax, [rdx + rcx]
mov rdx, r10
add r9, rax
ror rdx, 0x29
and rbx, r9
mov rax, r10
ror rax, 0x12
mov rcx, r10
xor rdx, rax
not rcx
and rcx, r12
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r15
xor rcx, rax
lea rax, [0x1401e1d80]
add rdx, rcx
mov rcx, r9
add rdx, qword [rsp + rdi + 0x28]
add rdx, qword [rdi + rax + 8]
mov rax, r9
ror rax, 0x22
add rdx, r13
ror rcx, 0x27
xor rcx, rax
mov rax, r9
ror rax, 0x1c
xor rcx, rax
lea r8, [r11 + rdx]
mov rax, r14
mov qword [rsp], r8
and rax, rsi
xor rbx, rax
lea rax, [rdx + rcx]
mov rdx, r8
add rbx, rax
ror rdx, 0x29
mov rax, r8
ror rax, 0x12
xor rdx, rax
mov rax, r8
ror rax, 0xe
xor rdx, rax
mov rcx, r8
mov rax, r10
and rax, r8
not rcx
and rcx, r15
mov r11, r9
xor rcx, rax
xor r11, rsi
add rdx, rcx
lea rax, [0x1401e1d80]
add rdx, qword [rdi + rax + 0x10]
and r11, rbx
add rdx, qword [rsp + rdi + 0x30]
mov rax, rbx
ror rax, 0x22
add rdx, r12
mov rcx, rbx
ror rcx, 0x27
xor rcx, rax
mov rax, rbx
ror rax, 0x1c
lea r13, [r14 + rdx]
xor rcx, rax
mov r8, r13
ror r8, 0x29
mov rax, r9
and rax, rsi
mov r14, r9
xor r11, rax
xor r14, rbx
lea rax, [rdx + rcx]
mov rcx, r13
add r11, rax
not rcx
and rcx, r10
and r14, r11
mov rax, r13
mov rdx, r11
ror rax, 0x12
xor r8, rax
ror rdx, 0x27
mov rax, r13
ror rax, 0xe
xor r8, rax
mov rax, qword [rsp]
and rax, r13
xor rcx, rax
lea rax, [0x1401e1d80]
add r8, rcx
add r8, qword [rdi + rax + 0x18]
mov rax, r11
add r8, qword [rsp + rdi + 0x38]
ror rax, 0x22
add r8, r15
xor rdx, rax
mov rax, r11
ror rax, 0x1c
xor rdx, rax
mov rax, r9
and rax, rbx
lea r12, [rsi + r8]
xor r14, rax
mov rcx, r12
not rcx
and rcx, qword [rsp]
lea rax, [r8 + rdx]
add r14, rax
mov r8, r12
ror r8, 0x29
mov rax, r12
ror rax, 0x12
xor r8, rax
mov rax, r12
ror rax, 0xe
xor r8, rax
mov rax, r13
and rax, r12
xor rcx, rax
lea rax, [0x1401e1d80]
add r8, rcx
add r8, qword [rdi + rax + 0x20]
add r8, qword [rsp + rdi + 0x40]
lea rdi, [rdi + 0x28]
add r8, r10
mov rdx, r14
ror rdx, 0x27
mov rax, r14
ror rax, 0x22
mov rsi, rbx
xor rdx, rax
xor rsi, r11
and rsi, r14
lea r15, [r9 + r8]
mov rax, r14
ror rax, 0x1c
xor rdx, rax
mov rax, rbx
and rax, r11
xor rsi, rax
lea rax, [r8 + rdx]
add rsi, rax
sub qword [rsp + 0x10], 1
jne 0x14003db00
mov ecx, dword [rbp + 0x208]
mov rax, qword [rsp + 0x18]
inc ecx
mov rdx, qword [rbp + 0x1f8]
add rax, rsi
mov qword [rsp + 8], r13
mov r13, qword [rbp + 0x1f0]
mov dword [rbp + 0x208], ecx
mov qword [r13 + 8], rax
add qword [r13 + 0x10], r14
add qword [r13 + 0x18], r11
add qword [r13 + 0x20], rbx
add qword [r13 + 0x28], r15
add qword [r13 + 0x30], r12
mov rax, qword [rsp + 8]
add qword [r13 + 0x38], rax
mov rax, qword [rsp]
add qword [r13 + 0x40], rax
mov eax, ecx
cmp rax, qword [rbp + 0x200]
jb 0x14003d470
mov r15, qword [rsp + 0x2a8]
mov r14, qword [rsp + 0x2b0]
mov r12, qword [rsp + 0x2b8]
mov rdi, qword [rsp + 0x2c0]
mov rsi, qword [rsp + 0x2c8]
mov rbx, qword [rsp + 0x2d0]
add rsp, 0x2d8
pop r13
pop rbp
ret