Function at 0x1400380d0
Capabilities:
Encode data using xor

Disassembly:
test r8d, r8d
jle 0x1400388d1
mov r11, rsp
mov dword [r11 + 0x18], r8d
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
sub rsp, 0x310
mov qword [r11 - 0x10], rbx
xor eax, eax
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x38], r14
mov qword [r11 - 0x40], r15
mov dword [rsp + 0x338], eax
nop word [rax + rax]
shl eax, 7
lea r10, [rsp + 0x58]
movsxd rcx, eax
lea r11, [rsp + 0x60]
lea rax, [rdx - 0xa]
xor r13d, r13d
lea rdi, [rsp + 0x56]
lea rsi, [rsp + 0x5e]
lea r8, [rcx + rdx]
sub rcx, r8
lea r14, [rsp + 0x66]
add rax, rcx
lea r15, [rsp + 0x6e]
mov qword [rsp], rax
lea r12, [rsp + 0x76]
mov rbp, qword [rsp]
lea rax, [rdx - 9]
add rax, rcx
lea rbx, [rsp + 0x50]
mov qword [rsp + 8], rax
lea r9, [r8 + 0x12]
lea rax, [rdx - 8]
sub r10, r8
add rax, rcx
sub r11, r8
mov qword [rsp + 0x10], rax
sub rdi, r8
lea rax, [rdx - 7]
sub rsi, r8
add rax, rcx
sub r14, r8
mov qword [rsp + 0x18], rax
sub r15, r8
lea rax, [rdx - 6]
sub r12, r8
add rax, rcx
mov qword [rsp + 0x20], rax
lea rax, [rdx - 5]
add rax, rcx
mov qword [rsp + 0x28], rax
lea rax, [rdx - 4]
add rax, rcx
mov qword [rsp + 0x30], rax
lea rax, [rdx - 3]
add rax, rcx
mov qword [rsp + 0x38], rax
sub rbx, r8
nop word [rax + rax]
lea eax, [r13*8]
movsxd rcx, eax
movzx eax, byte [rcx + r8]
movzx edx, byte [rcx + r8 + 1]
shl rax, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 2]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 3]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 4]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 5]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 6]
shl rdx, 8
or rdx, rax
movzx eax, byte [rcx + r8 + 7]
movzx ecx, byte [r9 + rbp]
shl rcx, 8
shl rdx, 8
or rdx, rax
mov rax, qword [rsp + 8]
mov qword [rbx + r9 - 0x12], rdx
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x10]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x18]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x20]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x28]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x30]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
mov rax, qword [rsp + 0x38]
shl rcx, 8
movzx eax, byte [r9 + rax]
or rcx, rax
movzx eax, byte [r9 - 1]
mov qword [r9 + r10 - 0x12], rcx
movzx ecx, byte [r9 - 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 1]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 2]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 3]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 4]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 5]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 7]
mov qword [r9 + r11 - 0x12], rcx
movzx ecx, byte [r9 + 6]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 9]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xa]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xb]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xc]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xd]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0xf]
mov qword [r9 + rdi], rcx
movzx ecx, byte [r9 + 0xe]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x10]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x11]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x12]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x13]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x17]
mov qword [r9 + rsi], rcx
movzx ecx, byte [r9 + 0x16]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x18]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x19]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1c]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1d]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x1f]
mov qword [r9 + r14], rcx
movzx ecx, byte [r9 + 0x1e]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x20]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x21]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x22]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x23]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + 0x24]
shl rcx, 8
lea r9, [r9 + 0x40]
or rcx, rax
add r13d, 8
movzx eax, byte [r9 - 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x19]
mov qword [r9 + r15 - 0x40], rcx
movzx ecx, byte [r9 - 0x1a]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x18]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x16]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x14]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x13]
shl rcx, 8
or rcx, rax
mov qword [r9 + r12 - 0x40], rcx
cmp r13d, 0x10
jl 0x1400381e0
mov r11, qword [rsp + 0xc0]
lea rax, [rsp + 0xc0]
mov rbp, qword [rsp + 0x320]
mov edi, reloc.WS2_32.dll_recv
mov r10, qword [rax - 0x68]
lea rax, [rax + 0x20]
mov r9, r11
mov rcx, r11
rol rcx, 3
mov rdx, r10
ror rdx, 8
ror r9, 0x13
xor r9, rcx
shr r11, 6
xor r9, r11
mov rcx, r10
ror rcx, 1
xor rdx, rcx
mov rcx, r10
shr rcx, 7
xor rdx, rcx
add r9, rdx
add r9, qword [rax - 0x90]
add r9, qword [rax - 0x48]
mov qword [rax - 0x10], r9
mov r11, qword [rax - 0x80]
mov rdx, qword [rax - 0x18]
mov r8, rdx
mov rcx, rdx
ror r8, 0x13
rol rcx, 3
xor r8, rcx
shr rdx, 6
xor r8, rdx
mov rcx, r11
ror rcx, 1
mov rdx, r11
ror rdx, 8
xor rdx, rcx
mov rcx, r11
shr rcx, 7
xor rdx, rcx
mov rcx, r9
add r8, rdx
rol rcx, 3
add r8, qword [rax - 0x40]
add r10, r8
mov r8, r9
ror r8, 0x13
xor r8, rcx
mov qword [rax - 8], r10
mov rbx, qword [rax - 0x78]
shr r9, 6
mov rcx, rbx
xor r8, r9
ror rcx, 1
mov rdx, rbx
ror rdx, 8
xor rdx, rcx
mov rcx, rbx
shr rcx, 7
xor rdx, rcx
add r8, rdx
add r8, qword [rax - 0x38]
add r11, r8
mov qword [rax], r11
mov rdx, qword [rax - 0x70]
mov r8, rdx
mov rcx, rdx
shr rdx, 7
ror r8, 8
ror rcx, 1
xor r8, rcx
mov rcx, r10
xor r8, rdx
rol rcx, 3
mov rdx, r10
shr r10, 6
ror rdx, 0x13
xor rdx, rcx
xor rdx, r10
add r8, rdx
add r8, qword [rax - 0x30]
add r8, rbx
mov qword [rax + 8], r8
sub rdi, 1
jne 0x140038530
mov rax, qword [rbp + 0x108]
xor esi, esi
mov qword [rsp + 0x38], rax
mov rbx, rax
mov rax, qword [rbp + 0x110]
mov qword [rsp + 0x30], rax
mov r14, rax
mov rax, qword [rbp + 0x118]
mov qword [rsp + 0x28], rax
mov r15, rax
mov rax, qword [rbp + 0x120]
mov qword [rsp + 0x20], rax
mov r8, rax
mov rax, qword [rbp + 0x128]
mov qword [rsp + 0x18], rax
mov rdi, rax
mov rax, qword [rbp + 0x130]
mov qword [rsp + 0x10], rax
mov r12, rax
mov rax, qword [rbp + 0x138]
mov qword [rsp + 8], rax
mov r13, rax
mov rax, qword [rbp + 0x140]
mov qword [rsp + 0x40], rax
mov rbp, rax
nop dword [rax]
mov r10, rbx
mov r9, rdi
rol r9, 0x17
mov rax, rdi
ror rax, 0x12
mov rcx, rdi
xor r9, rax
rol r10, 0x1e
not rcx
mov rax, rdi
ror rax, 0xe
and rcx, r13
xor r9, rax
mov r11, r14
mov rax, r12
and rax, rdi
xor rcx, rax
lea rax, [0x14012e870]
add r9, rcx
mov rcx, r14
add r9, qword [rsi + rax]
xor rcx, r15
add r9, qword [rsp + rsi + 0x50]
and rcx, rbx
add r9, rbp
mov rax, rbx
ror rax, 0x1c
add r8, r9
xor r10, rax
mov rbp, r12
mov rax, rbx
rol rax, 0x19
xor r10, rax
mov rax, r14
and rax, r15
xor rcx, rax
mov rax, r8
ror rax, 0x12
add r10, rcx
add r10, r9
mov rcx, r8
not rcx
mov r9, r8
rol r9, 0x17
and rcx, r12
xor r9, rax
mov rdx, r10
mov rax, r8
ror rdx, 0x1c
ror rax, 0xe
mov r12, r8
xor r9, rax
mov rax, r8
and rax, rdi
mov r8, r14
xor rcx, rax
mov r14, r10
add r9, rcx
lea rax, [0x14012e870]
add r9, qword [rsp + rsi + 0x58]
mov rcx, r8
add r9, qword [rsi + rax + 8]
xor rcx, rbx
add r9, r13
and rcx, r10
mov rax, r10
mov r13, rdi
rol rax, 0x19
add rsi, 0x10
xor rdx, rax
mov rax, r10
rol rax, 0x1e
lea rdi, [r15 + r9]
mov r15, rbx
xor rax, rdx
and rbx, r8
add rax, r9
xor rbx, rcx
add rbx, rax
cmp rsi, 0x280
jl 0x1400386d0
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x328]
add rax, rbx
mov qword [rsp], rbp
mov rbp, qword [rsp + 0x320]
mov qword [rbp + 0x108], rax
mov rax, qword [rsp + 0x30]
add rax, r10
mov qword [rbp + 0x110], rax
mov rax, qword [rsp + 0x28]
add rax, r15
mov qword [rbp + 0x118], rax
mov rax, qword [rsp + 0x20]
add rax, r8
mov qword [rbp + 0x120], rax
mov rax, qword [rsp + 0x18]
add rax, rdi
mov qword [rbp + 0x128], rax
mov rax, qword [rsp + 0x10]
add rax, r12
mov qword [rbp + 0x130], rax
mov rax, qword [rsp + 8]
add rax, r13
mov qword [rbp + 0x138], rax
mov rax, qword [rsp]
add rax, qword [rsp + 0x40]
mov qword [rbp + 0x140], rax
mov eax, dword [rsp + 0x338]
inc eax
mov dword [rsp + 0x338], eax
cmp eax, dword [rsp + 0x330]
jl 0x140038120
mov r15, qword [rsp + 0x2d8]
mov r14, qword [rsp + 0x2e0]
mov r13, qword [rsp + 0x2e8]
mov r12, qword [rsp + 0x2f0]
mov rdi, qword [rsp + 0x2f8]
mov rsi, qword [rsp + 0x300]
mov rbx, qword [rsp + 0x308]
add rsp, 0x310
pop rbp
ret