Function at 0x140183da0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x108
movdqa xmmword [rsp + 0xf0], xmm8
movdqa xmmword [rsp + 0xe0], xmm7
movdqa xmmword [rsp + 0xd0], xmm6
mov rsi, r8
mov rax, qword [0x14024f018]
xor rax, rsp
mov qword [rsp + 0xc8], rax
cmp edx, 0x100
je 0x140183eea
cmp edx, 0xc0
je 0x140184055
mov r12d, 1
cmp edx, 0x80
jne 0x1401842a8
mov dword [rsi + 0xf0], 0xa
movdqu xmm7, xmmword [rcx]
movdqu xmmword [rsi], xmm7
lea rbx, [rsp + 0x50]
add rsi, 0x10
xor r12d, r12d
pxor xmm6, xmm6
lea r14, [rsp + 0x40]
lea r15, [0x140229af0]
xor edi, edi
movdqa xmmword [rbx + 0x60], xmm6
movdqa xmmword [rbx + 0x50], xmm6
movdqa xmmword [rbx + 0x40], xmm6
movdqa xmmword [rbx + 0x30], xmm6
movdqa xmmword [rbx + 0x20], xmm6
movdqa xmmword [rbx + 0x10], xmm6
movdqa xmmword [rbx], xmm6
movdqa xmmword [rsp + 0x40], xmm7
mov rcx, r14
call fcn.140199c00
mov rcx, r14
call fcn.140199e70
mov rcx, r14
call fcn.140199c00
movdqa xmm1, xmmword [rsp + 0x40]
movzx eax, byte [rdi + r15]
movd xmm0, eax
movdqa xmm2, xmm1
psrld xmm2, 8
pslld xmm1, 0x18
por xmm1, xmm2
psrldq xmm1, 0xc
pxor xmm0, xmm7
pxor xmm0, xmm1
movdqa xmm1, xmm0
pslldq xmm1, 4
pxor xmm1, xmm0
movdqa xmm2, xmm0
pslldq xmm2, 8
pslldq xmm0, 0xc
pxor xmm0, xmm2
pxor xmm0, xmm1
movdqu xmmword [rsi], xmm0
inc rdi
add rsi, 0x10
movdqa xmm7, xmm0
cmp rdi, 0xa
jne 0x140183e3b
jmp 0x1401842a8
mov dword [rsi + 0xf0], reloc.WS2_32.dll_ntohl
movdqu xmm7, xmmword [rcx]
movdqu xmmword [rsi], xmm7
movdqu xmm6, xmmword [rcx + 0x10]
movdqu xmmword [rsi + 0x10], xmm6
lea rbx, [rsp + 0x50]
mov edi, 0x30
lea r15, [0x140229af0]
pxor xmm8, xmm8
lea r14, [rsp + 0x40]
movdqa xmmword [rbx + 0x60], xmm8
movdqa xmmword [rbx + 0x50], xmm8
movdqa xmmword [rbx + 0x40], xmm8
movdqa xmmword [rbx + 0x30], xmm8
movdqa xmmword [rbx + 0x20], xmm8
movdqa xmmword [rbx + 0x10], xmm8
movdqa xmmword [rbx], xmm8
movdqa xmmword [rsp + 0x40], xmm6
mov rcx, r14
call fcn.140199c00
mov rcx, r14
call fcn.140199e70
mov rcx, r14
call fcn.140199c00
movzx eax, byte [r15]
movd xmm0, eax
pxor xmm0, xmm7
movdqa xmm7, xmmword [rsp + 0x40]
movdqa xmm1, xmm7
psrld xmm1, 8
pslld xmm7, 0x18
por xmm7, xmm1
psrldq xmm7, 0xc
pxor xmm7, xmm0
movdqa xmm0, xmm7
pslldq xmm0, 4
pxor xmm0, xmm7
movdqa xmm1, xmm7
pslldq xmm1, 8
pslldq xmm7, 0xc
pxor xmm7, xmm1
pxor xmm7, xmm0
movdqu xmmword [rsi + rdi - 0x10], xmm7
cmp rdi, 0xf0
je 0x1401842a5
movdqa xmmword [rbx + 0x60], xmm8
movdqa xmmword [rbx + 0x50], xmm8
movdqa xmmword [rbx + 0x40], xmm8
movdqa xmmword [rbx + 0x30], xmm8
movdqa xmmword [rbx + 0x20], xmm8
movdqa xmmword [rbx + 0x10], xmm8
movdqa xmmword [rbx], xmm8
movdqa xmmword [rsp + 0x40], xmm7
mov rcx, r14
call fcn.140199c00
mov rcx, r14
call fcn.140199e70
mov rcx, r14
call fcn.140199c00
movdqa xmm0, xmmword [rsp + 0x40]
psrldq xmm0, 0xc
pxor xmm6, xmm0
movdqa xmm0, xmm6
pslldq xmm0, 4
pxor xmm0, xmm6
movdqa xmm1, xmm6
pslldq xmm1, 8
pslldq xmm6, 0xc
pxor xmm6, xmm1
pxor xmm6, xmm0
movdqu xmmword [rsi + rdi], xmm6
add rdi, 0x20
inc r15
jmp 0x140183f21
mov dword [rsi + 0xf0], ntohl
lea rax, [rsp + 0x30]
lea rbx, [rsp + 0x20]
movups xmm0, xmmword [rcx]
movaps xmmword [rax], xmm0
movdqu xmm0, xmmword [rcx]
movdqu xmmword [rsi], xmm0
mov rcx, qword [rcx + 0x10]
mov qword [rbx], rcx
mov qword [rbx + 8], 0
add rsi, 0x30
xor edi, edi
pxor xmm6, xmm6
lea r14, [rsp + 0x40]
lea r15, [0x140229af0]
movdqa xmm8, xmmword [0x140229090]
movdqa xmm7, xmmword [0x1402290a0]
mov r12, rax
movdqa xmmword [rsp + 0xb0], xmm6
movdqa xmmword [rsp + 0xa0], xmm6
movdqa xmmword [rsp + 0x90], xmm6
movdqa xmmword [rsp + 0x80], xmm6
movdqa xmmword [rsp + 0x70], xmm6
movdqa xmmword [rsp + 0x60], xmm6
movdqa xmmword [rsp + 0x50], xmm6
movdqa xmmword [rsp + 0x40], xmm6
movaps xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x40], xmm0
mov rcx, r14
call fcn.140199c00
mov rcx, r14
call fcn.140199e70
mov rcx, r14
call fcn.140199c00
movdqa xmm0, xmmword [rsp + 0x40]
movzx eax, byte [r15 + rdi*2]
movd xmm1, eax
movdqa xmm2, xmmword [r12]
pxor xmm1, xmm2
pslldq xmm1, 8
por xmm1, xmmword [rbx]
movdqa xmm3, xmm0
psrld xmm3, 8
pslld xmm0, 0x18
por xmm0, xmm3
pshufd xmm0, xmm0, 0xd4
pand xmm0, xmm8
pxor xmm0, xmm1
pshufd xmm3, xmm0, 0xaa
pand xmm3, xmm7
pxor xmm3, xmm0
movdqa xmmword [rbx], xmm3
shufps xmm2, xmm1, 0x4e
psrldq xmm3, 0xc
pxor xmm3, xmm2
movdqa xmm0, xmm3
pslldq xmm0, 4
pxor xmm0, xmm3
movdqa xmm1, xmm3
pslldq xmm1, 8
pslldq xmm3, 0xc
pxor xmm3, xmm1
pxor xmm3, xmm0
movdqa xmmword [r12], xmm3
movups xmm0, xmmword [rbx]
movups xmmword [rsi - 0x20], xmm0
movups xmm0, xmmword [r12]
movups xmmword [rsi - 0x10], xmm0
movdqa xmmword [rsp + 0xb0], xmm6
movdqa xmmword [rsp + 0xa0], xmm6
movdqa xmmword [rsp + 0x90], xmm6
movdqa xmmword [rsp + 0x80], xmm6
movdqa xmmword [rsp + 0x70], xmm6
movdqa xmmword [rsp + 0x60], xmm6
movdqa xmmword [rsp + 0x50], xmm6
movdqa xmmword [rsp + 0x40], xmm6
movaps xmm0, xmmword [r12]
movaps xmmword [rsp + 0x40], xmm0
mov rcx, r14
call fcn.140199c00
mov rcx, r14
call fcn.140199e70
mov rcx, r14
call fcn.140199c00
movdqa xmm0, xmmword [rsp + 0x40]
movzx eax, byte [r15 + rdi*2 + 1]
movaps xmm2, xmmword [rbx]
movaps xmm1, xmmword [r12]
shufps xmm2, xmm1, 0x4e
movd xmm3, eax
pxor xmm3, xmm2
movdqa xmm2, xmm0
psrld xmm2, 8
pslld xmm0, 0x18
por xmm0, xmm2
psrldq xmm0, 0xc
pxor xmm0, xmm3
movdqa xmm2, xmm0
pslldq xmm2, 4
pxor xmm2, xmm0
movdqa xmm3, xmm0
pslldq xmm3, 8
pslldq xmm0, 0xc
pxor xmm0, xmm3
pxor xmm0, xmm2
movdqa xmmword [rbx], xmm0
psrldq xmm1, 8
psrldq xmm0, 0xc
pxor xmm0, xmm1
movdqa xmm1, xmm0
psllq xmm1, 0x20
pxor xmm1, xmm0
movdqa xmmword [r12], xmm1
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rsi], xmm0
inc rdi
add rsi, 0x30
mov rax, rbx
mov rbx, r12
cmp rdi, 4
jne 0x1401840ad
xor r12d, r12d
mov rcx, qword [rsp + 0xc8]
xor rcx, rsp
call fcn.140106490
mov eax, r12d
movaps xmm6, xmmword [rsp + 0xd0]
movaps xmm7, xmmword [rsp + 0xe0]
movaps xmm8, xmmword [rsp + 0xf0]
add rsp, 0x108
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret