Function at 0x1337c1017c00
Capabilities:
Encode data using xor

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x48
call fcn.1337c102df50
sub rsp, rax
mov r13d, dword [rsp + 0xa0]
xor r12d, r12d
movsxd rdi, r9d
mov rsi, r8
mov r14, rcx
mov r15d, r12d
test edx, edx
jle 0x1337c1017fa1
test r9d, r9d
jle 0x1337c1017fa1
cmp edi, r13d
jg 0x1337c1017f84
cmp r13d, 0xb
jl 0x1337c1017f84
mov qword [rsp + 0x90], rbx
lea rdx, [0x1337c10d29a5]
mov qword [rsp + 0x40], rbp
xor r8d, r8d
movsxd rbp, r13d
mov rcx, rbp
mov qword [rsp + 0x38], rbp
call fcn.1337c0f8d6d0
mov rbx, rax
test rax, rax
jne 0x1337c1017cc8
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov edx, WSACleanup
mov ecx, 4
mov r8d, 0x41
call fcn.1337c0f8aa70
mov eax, 0xffffffff
mov rbx, qword [rsp + 0x90]
mov rbp, qword [rsp + 0x40]
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
add rsi, rdi
mov rdx, r13
add rbx, rbp
mov eax, edi
lea ecx, [rdi - 1]
not eax
shr ecx, 0x1f
shr eax, 0x1f
mov r8, rbx
and ecx, eax
dec rbx
dec ecx
mov eax, ecx
and eax, 1
sub edi, eax
mov eax, ecx
and eax, 1
sub rsi, rax
movzx eax, byte [rsi]
and al, cl
mov byte [rbx], al
sub rdx, 1
jne 0x1337c1017cd1
movzx ebp, byte [r8]
lea r10, [rbx + 2]
xor ebp, 2
movzx eax, al
dec ebp
dec eax
shr ebp, 0x1f
mov r9d, r12d
shr eax, 0x1f
neg ebp
neg eax
mov r8d, 2
and ebp, eax
nop dword [rax + rax]
movzx edx, byte [r10]
lea r10, [r10 + 1]
dec edx
mov eax, r9d
not eax
shr edx, 0x1f
neg edx
and eax, edx
or r9d, edx
mov dword [rsp + 0x30], eax
not eax
mov ecx, dword [rsp + 0x30]
and ecx, r8d
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x30]
inc r8d
and eax, r15d
mov r15d, ecx
or r15d, eax
cmp r8d, r13d
jl 0x1337c1017d30
mov r8d, dword [rsp + 0x88]
mov r12d, r13d
sub r12d, r15d
mov ecx, r8d
dec r12d
mov r11d, 1
sub ecx, r12d
mov eax, r12d
xor eax, r8d
xor ecx, r12d
or ecx, eax
lea eax, [r15 - 0xa]
or eax, r15d
xor ecx, r8d
xor eax, r15d
shr ecx, 0x1f
shr eax, 0x1f
lea r15d, [r13 - 0xb]
dec eax
dec ecx
and ecx, eax
mov edx, r15d
sub edx, r8d
and ebp, ecx
xor edx, r8d
mov eax, r15d
xor eax, r8d
or edx, eax
mov eax, r15d
xor edx, r15d
shr edx, 0x1f
neg edx
mov dword [rsp + 0x88], edx
not edx
mov ecx, dword [rsp + 0x88]
and eax, ecx
mov dword [rsp + 0x88], edx
mov edx, dword [rsp + 0x88]
and edx, r8d
or edx, eax
mov dword [rsp + 0x30], edx
cmp r15d, r11d
jle 0x1337c1017ea2
mov r14d, r13d
sub r14d, r12d
add r14d, 0xfffffff5
nop
mov eax, r14d
and eax, r11d
lea ecx, [rax - 1]
not eax
shr eax, 0x1f
shr ecx, 0x1f
and ecx, eax
mov eax, r13d
sub eax, r11d
dec ecx
movsxd r9, eax
cmp r9, 0xb
jle 0x1337c1017e8a
movzx edi, cl
lea rax, [rbx + 0xb]
mov r10d, edi
movsxd rsi, r11d
not r10d
add r9, 0xfffffffffffffff5
nop dword [rax + rax]
mov dword [rsp + 0x88], edi
lea rax, [rax + 1]
mov ecx, dword [rsp + 0x88]
mov dword [rsp + 0x88], r10d
mov edx, dword [rsp + 0x88]
and dl, byte [rax - 1]
movzx r8d, byte [rsi + rax - 1]
and r8b, cl
or r8b, dl
mov byte [rax - 1], r8b
sub r9, 1
jne 0x1337c1017e50
add r11d, r11d
cmp r11d, r15d
jl 0x1337c1017e10
mov r14, qword [rsp + 0x80]
mov edx, dword [rsp + 0x30]
xor r10d, r10d
test edx, edx
jle 0x1337c1017f1b
mov r11d, r12d
mov rdi, rbx
shr r11d, 0x1f
sub rdi, r14
nop word [rax + rax]
mov eax, r10d
lea r14, [r14 + 1]
sub eax, r12d
inc r10d
shr eax, 0x1f
xor al, r11b
or al, r11b
neg al
movzx ecx, al
movzx eax, bpl
and ecx, eax
mov dword [rsp + 0x88], ecx
not ecx
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x88], ecx
mov ecx, dword [rsp + 0x88]
movzx r9d, byte [rdi + r14 + 0xa]
and r9b, al
movzx eax, byte [r14 - 1]
and al, cl
or r9b, al
mov byte [r14 - 1], r9b
cmp r10d, edx
jl 0x1337c1017ec0
mov rdx, qword [rsp + 0x38]
lea r8, [0x1337c10d29a5]
xor r9d, r9d
mov rcx, rbx
call fcn.1337c0f8d580
xor r9d, r9d
mov dword [rsp + 0x20], 0
mov edx, WSACleanup
mov ecx, 4
mov r8d, 0x9f
call fcn.1337c0f8aa70
mov ecx, ebp
and ecx, 1
call fcn.1337c0f8ac20
mov dword [rsp + 0x88], ebp
not ebp
mov eax, dword [rsp + 0x88]
mov dword [rsp + 0x88], ebp
and eax, r12d
mov ecx, dword [rsp + 0x88]
or eax, ecx
jmp 0x1337c1017cac
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov edx, WSACleanup
mov ecx, 4
mov r8d, 0x9f
call fcn.1337c0f8aa70
mov eax, 0xffffffff
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret