Function at 0x140002520
Capabilities:
Encode data using xor

Disassembly:
test r8d, r8d
jle 0x140002d06
mov r11, rsp
mov dword [r11 + 0x18], r8d
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rbp
sub rsp, 0x300
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 + 0x328], eax
nop word [rax + rax]
shl eax, 7
lea r10, [rsp + 0x46]
movsxd rcx, eax
lea r11, [rsp + 0x4e]
lea rax, [rdx - 7]
xor r14d, r14d
lea rbx, [rsp + 0x56]
lea rdi, [rsp + 0x5e]
lea r8, [rcx + rdx]
sub rcx, r8
lea rsi, [rsp + 0x66]
add rax, rcx
lea r9, [r8 + 0x12]
mov qword [rsp + 0x38], rax
sub r10, r8
mov rbp, qword [rsp + 0x38]
lea rax, [rdx - 6]
add rax, rcx
lea r15, [rcx + rdx]
mov qword [rsp + 8], rax
lea r12, [rcx + rdx]
lea rax, [rdx - 5]
sub r11, r8
add rax, rcx
lea r13, [rcx + rdx]
mov qword [rsp + 0x10], rax
sub rbx, r8
lea rax, [rdx - 4]
sub rdi, r8
add rax, rcx
sub rsi, r8
mov qword [rsp + 0x18], rax
lea rax, [rdx - 3]
add rax, rcx
mov qword [rsp + 0x20], rax
lea rax, [rsp + 0x48]
sub rax, r8
add rax, 0xffffffffffffffee
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
sub rax, r8
add rax, 0xffffffffffffffee
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
sub rax, r8
add rax, 0xffffffffffffffee
mov qword [rsp], rax
nop dword [rax + rax]
lea eax, [r14*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 + r15 - 0xa]
shl rcx, 8
shl rdx, 8
or rdx, rax
mov rax, qword [rsp]
mov qword [r9 + rax], rdx
movzx eax, byte [r9 + r12 - 9]
or rcx, rax
movzx eax, byte [r9 + r13 - 8]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 + rbp]
shl rcx, 8
or rcx, rax
mov rax, qword [rsp + 8]
shl rcx, 8
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]
mov qword [r9 + rax], rcx
movzx eax, byte [r9 - 1]
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
mov rax, qword [rsp + 0x30]
mov qword [r9 + rax], rcx
movzx ecx, byte [r9 + 6]
movzx eax, byte [r9 + 7]
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 + r10], 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 + r11], 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 + rbx], 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 r14d, 8
movzx eax, byte [r9 - 0x1b]
shl rcx, 8
or rcx, rax
movzx eax, byte [r9 - 0x19]
mov qword [r9 + rdi - 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 + rsi - 0x40], rcx
cmp r14d, 0x10
jl 0x140002630
mov r10, qword [rsp + 0xb0]
lea rax, [rsp + 0xb0]
mov rbp, qword [rsp + 0x310]
mov esi, reloc.WS2_32.dll_recv
nop
mov r11, qword [rax - 0x68]
lea rax, [rax + 0x20]
mov rdx, r10
mov r8, r11
ror rdx, 0x13
mov rcx, r11
ror rcx, 1
ror r8, 8
xor r8, rcx
mov rcx, r11
shr rcx, 7
xor r8, rcx
mov rcx, r10
rol rcx, 3
xor rdx, rcx
shr r10, 6
xor r10, rdx
add r10, r8
add r10, qword [rax - 0x90]
add r10, qword [rax - 0x48]
mov qword [rax - 0x10], r10
mov rbx, qword [rax - 0x80]
mov r8, qword [rax - 0x18]
mov r9, rbx
mov rdx, r8
ror r9, 8
ror rdx, 0x13
mov rcx, rbx
ror rcx, 1
xor r9, rcx
mov rcx, rbx
shr rcx, 7
xor r9, rcx
mov rcx, r8
rol rcx, 3
xor rdx, rcx
shr r8, 6
xor rdx, r8
mov rcx, r10
add r9, rdx
rol rcx, 3
add r9, qword [rax - 0x40]
mov r8, r10
ror r8, 0x13
add r11, r9
xor r8, rcx
mov qword [rax - 8], r11
mov rdi, qword [rax - 0x78]
shr r10, 6
mov rdx, rdi
xor r10, r8
ror rdx, 8
mov rcx, rdi
ror rcx, 1
xor rdx, rcx
mov rcx, rdi
shr rcx, 7
xor rdx, rcx
add r10, rdx
add r10, qword [rax - 0x38]
add r10, rbx
mov qword [rax], r10
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, r11
xor r8, rdx
rol rcx, 3
mov rdx, r11
shr r11, 6
ror rdx, 0x13
xor rdx, rcx
xor rdx, r11
add r8, rdx
add r8, qword [rax - 0x30]
add r8, rdi
mov qword [rax + 8], r8
sub rsi, 1
jne 0x140002980
mov rax, qword [rbp + 0x110]
xor edi, edi
mov r11, qword [rbp + 0x108]
mov rsi, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 0x118]
mov qword [rsp + 0x28], rax
mov r14, rax
mov rax, qword [rbp + 0x120]
mov qword [rsp + 0x20], rax
mov r9, rax
mov rax, qword [rbp + 0x128]
mov qword [rsp + 0x18], rax
mov rbx, rax
mov rax, qword [rbp + 0x130]
mov qword [rsp + 0x10], rax
mov r15, rax
mov rax, qword [rbp + 0x138]
mov qword [rsp + 8], rax
mov r12, rax
mov rax, qword [rbp + 0x140]
lea rbp, [0x1400590f0]
mov qword [rsp], rax
mov r13, rax
nop word [rax + rax]
mov r8, rbx
mov rax, rbx
ror rax, 0x12
mov rcx, rbx
rol r8, 0x17
not rcx
xor r8, rax
and rcx, r12
mov rax, rbx
mov r10, r11
ror rax, 0xe
xor r8, rax
rol r10, 0x1e
mov rax, r15
and rax, rbx
xor rcx, rax
mov rax, r11
add r8, rcx
ror rax, 0x1c
add r8, qword [rdi + rbp]
xor r10, rax
add r8, qword [rsp + rdi + 0x40]
mov rax, r11
rol rax, 0x19
add r8, r13
xor r10, rax
add r9, r8
mov rcx, rsi
mov rax, rsi
and rax, r14
xor rcx, r14
and rcx, r11
mov r13, r15
xor rcx, rax
mov rax, r9
ror rax, 0xe
add r10, rcx
add r10, r8
mov rcx, r9
not rcx
mov r8, r9
ror r8, 0x12
and rcx, r15
xor r8, rax
mov rdx, r10
ror rdx, 0x1c
mov rax, r9
rol rax, 0x17
mov r15, r9
xor r8, rax
mov rax, r9
and rax, rbx
mov r9, rsi
xor rcx, rax
mov rax, r10
add r8, rcx
rol rax, 0x19
add r8, qword [rsp + rdi + 0x48]
xor rdx, rax
add r8, qword [rdi + rbp + 8]
mov rcx, rsi
xor rcx, r11
add r8, r12
and rcx, r10
mov rax, r10
rol rax, 0x1e
mov r12, rbx
xor rdx, rax
add rdi, 0x10
mov rax, rsi
lea rbx, [r14 + r8]
and rax, r11
mov r14, r11
xor rcx, rax
mov rsi, r10
add rdx, rcx
lea r11, [rdx + r8]
cmp rdi, 0x280
jl 0x140002b20
mov rbp, qword [rsp + 0x310]
mov rax, qword [rsp + 0x30]
mov rdx, qword [rsp + 0x318]
add rax, r10
add qword [rbp + 0x108], r11
mov qword [rbp + 0x110], rax
mov rax, qword [rsp + 0x28]
add rax, r14
mov qword [rbp + 0x118], rax
mov rax, qword [rsp + 0x20]
add rax, r9
mov qword [rbp + 0x120], rax
mov rax, qword [rsp + 0x18]
add rax, rbx
mov qword [rbp + 0x128], rax
mov rax, qword [rsp + 0x10]
add rax, r15
mov qword [rbp + 0x130], rax
mov rax, qword [rsp + 8]
add rax, r12
mov qword [rbp + 0x138], rax
mov rax, qword [rsp]
add rax, r13
mov qword [rbp + 0x140], rax
mov eax, dword [rsp + 0x328]
inc eax
mov dword [rsp + 0x328], eax
cmp eax, dword [rsp + 0x320]
jl 0x140002570
mov r15, qword [rsp + 0x2c8]
mov r14, qword [rsp + 0x2d0]
mov r13, qword [rsp + 0x2d8]
mov r12, qword [rsp + 0x2e0]
mov rdi, qword [rsp + 0x2e8]
mov rsi, qword [rsp + 0x2f0]
mov rbx, qword [rsp + 0x2f8]
add rsp, 0x300
pop rbp
ret