Function at 0x1617fea7a90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x58
mov rax, qword [0x1617fefd018]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r12, rcx
movsxd r15, r9d
mov ecx, dword [rcx + 8]
add ecx, r15d
mov qword [rbp - 0x28], r8
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x30], rdx
lea eax, [rcx + 0xc]
movsxd rcx, ecx
add rcx, 0xc
mov dword [rbp - 0x38], eax
call fcn.1617feaa3b4
mov ecx, 5
mov qword [rbp - 0x30], rax
call qword [sym.imp.WS2_32.dll_htonl]
mov r14, 0xffffffffffffffff
mov dword [rbp - 0x18], eax
mov esi, eax
lea r13, [0x1617ff023b0]
mov rdx, r14
inc rdx
cmp byte [rdx + r13], 0
jne 0x1617fea7b01
test edx, edx
je 0x1617fea7b52
movzx eax, byte [0x1617ff023b0]
xor byte [rbp - 0x18], al
xor eax, eax
cmp edx, 1
setne al
mov ecx, eax
movzx eax, byte [rcx + r13]
xor byte [rbp - 0x17], al
xor eax, eax
inc ecx
cmp ecx, edx
cmovne eax, ecx
mov ecx, eax
movzx eax, byte [rax + r13]
xor byte [rbp - 0x16], al
xor eax, eax
inc ecx
cmp ecx, edx
cmovne eax, ecx
movzx eax, byte [rax + r13]
xor byte [rbp - 0x15], al
mov esi, dword [rbp - 0x18]
mov ecx, dword [r12 + 8]
call qword [sym.imp.WS2_32.dll_htonl]
mov edi, eax
mov dword [rbp - 0x18], eax
mov rdx, r14
inc rdx
cmp byte [rdx + r13], 0
jne 0x1617fea7b65
test edx, edx
je 0x1617fea7bb6
movzx eax, byte [0x1617ff023b0]
xor byte [rbp - 0x18], al
xor eax, eax
cmp edx, 1
setne al
mov ecx, eax
movzx eax, byte [rcx + r13]
xor byte [rbp - 0x17], al
xor eax, eax
inc ecx
cmp ecx, edx
cmovne eax, ecx
mov ecx, eax
movzx eax, byte [rax + r13]
xor byte [rbp - 0x16], al
xor eax, eax
inc ecx
cmp ecx, edx
cmovne eax, ecx
movzx eax, byte [rax + r13]
xor byte [rbp - 0x15], al
mov edi, dword [rbp - 0x18]
mov r8, qword [r12]
test edx, edx
je 0x1617fea7bfd
movsxd r10, dword [r12 + 8]
xor r9d, r9d
test r10, r10
jle 0x1617fea7bfd
movsxd r11, edx
xor edx, edx
movzx eax, byte [rdx + r13]
lea rcx, [rdx + 1]
xor byte [r8], al
lea r8, [r8 + 1]
lea eax, [r9 + 1]
xor r9d, r9d
cmp rcx, r11
cmovne r9d, eax
xor edx, edx
cmp rcx, r11
cmovne rdx, rcx
sub r10, 1
jne 0x1617fea7bd0
mov ecx, r15d
call qword [sym.imp.WS2_32.dll_htonl]
mov ebx, eax
mov dword [rbp - 0x18], eax
mov rdx, r14
nop
inc rdx
cmp byte [rdx + r13], 0
jne 0x1617fea7c10
test edx, edx
je 0x1617fea7c61
movzx eax, byte [0x1617ff023b0]
xor byte [rbp - 0x18], al
xor eax, eax
cmp edx, 1
setne al
mov ecx, eax
movzx eax, byte [rcx + r13]
xor byte [rbp - 0x17], al
xor eax, eax
inc ecx
cmp ecx, edx
cmovne eax, ecx
mov ecx, eax
movzx eax, byte [rax + r13]
xor byte [rbp - 0x16], al
xor eax, eax
inc ecx
cmp ecx, edx
cmovne eax, ecx
movzx eax, byte [rax + r13]
xor byte [rbp - 0x15], al
mov ebx, dword [rbp - 0x18]
mov rcx, r15
call fcn.1617feaa3b4
mov rdx, qword [rbp - 0x28]
mov r8, r15
mov rcx, rax
mov r13, rax
call fcn.1617fec8190
lea rax, [0x1617ff023b0]
inc r14
cmp byte [rax + r14], 0
jne 0x1617fea7c82
test r14d, r14d
je 0x1617fea7ce3
xor r8d, r8d
test r15, r15
jle 0x1617fea7ce3
movsxd r11, r14d
xor edx, edx
mov r9, r13
mov r10, r15
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + rax]
lea rcx, [rdx + 1]
xor byte [r9], al
lea r9, [r9 + 1]
lea eax, [r8 + 1]
xor r8d, r8d
cmp rcx, r11
cmovne r8d, eax
xor edx, edx
cmp rcx, r11
lea rax, [0x1617ff023b0]
cmovne rdx, rcx
sub r10, 1
jne 0x1617fea7cb0
mov r14, qword [rbp - 0x30]
mov dword [r14], esi
lea rcx, [r14 + 8]
mov dword [r14 + 4], edi
movsxd r8, dword [r12 + 8]
mov rdx, qword [r12]
call fcn.1617fec8190
movsxd rax, dword [r12 + 8]
lea rcx, [r14 + 0xc]
mov r8, r15
mov dword [rax + r14 + 8], ebx
movsxd rdx, dword [r12 + 8]
add rcx, rdx
mov rdx, r13
call fcn.1617fec8190
mov rbx, qword [rbp - 0x20]
xorps xmm0, xmm0
mov eax, dword [rbp - 0x38]
movups xmmword [rbx], xmm0
mov qword [rbx + 8], r14
mov dword [rbx], eax
mov rcx, qword [r12]
call fcn.1617feaa344
mov rcx, r13
call fcn.1617feaa344
mov rax, rbx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1617feaa320
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret