Function at 0x140036a70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x248
movdqa xmmword [rsp + 0x230], xmm15
movdqa xmmword [rsp + 0x220], xmm14
movdqa xmmword [rsp + 0x210], xmm13
movdqa xmmword [rsp + 0x200], xmm12
movdqa xmmword [rsp + 0x1f0], xmm11
movdqa xmmword [rsp + 0x1e0], xmm10
movdqa xmmword [rsp + 0x1d0], xmm9
movdqa xmmword [rsp + 0x1c0], xmm8
movdqa xmmword [rsp + 0x1b0], xmm7
movdqa xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x28], r9
mov qword [rsp + 0x40], r8
mov r14, rcx
mov rcx, qword [rsp + 0x2b0]
mov rax, qword [0x1403a8f38]
xor rax, rsp
mov qword [rsp + 0x198], rax
xor ebp, ebp
mov rax, rcx
shr rax, 0x3d
jne 0x140037489
cmp dword [r14 + 0x18], 0
jne 0x140037489
mov rax, qword [rsp + 0x2b0]
lea rcx, [rax*8]
mov eax, dword [r14 + 0x14]
add rcx, rax
jb 0x140037489
shr rcx, 0x20
jne 0x140037489
mov qword [rsp + 0x30], rdx
mov ecx, dword [r14 + 0x5c]
mov rdx, qword [rsp + 0x28]
lea rbp, [rdx + rcx]
add rbp, 0x48
shr rbp, 6
lea r8, [rbp - 1]
mov qword [rsp + 0x68], r8
mov r8, qword [rsp + 0x2b0]
add rcx, r8
add rcx, 0x48
lea rsi, [rax + rdx*8]
mov rax, rsi
shr rax, 0x18
mov qword [rsp + 0x58], rax
mov rax, rsi
shr rax, 0x10
mov qword [rsp + 0x50], rax
mov rax, rsi
shr rax, 8
mov qword [rsp + 0x48], rax
pxor xmm15, xmm15
movdqa xmmword [rsp + 0x180], xmm15
movdqa xmmword [rsp + 0x170], xmm15
movdqa xmmword [rsp + 0x160], xmm15
movdqa xmmword [rsp + 0x150], xmm15
shr rcx, 6
mov qword [rsp + 0x60], rcx
lea rax, [r14 + 0x1c]
mov qword [rsp + 0x38], rax
neg rbp
xor edi, edi
xor r12d, r12d
xor ebx, ebx
jmp 0x140036c8f
mov r15, rbx
xor r15, qword [rsp + 0x68]
dec r15
and r15, rbp
sar r15, 0x3f
mov rax, qword [rsp + 0x58]
and eax, r15d
or byte [rsp + 0x18c], al
mov rax, qword [rsp + 0x50]
and eax, r15d
or byte [rsp + 0x18d], al
mov rax, qword [rsp + 0x48]
and eax, r15d
or byte [rsp + 0x18e], al
mov eax, esi
and eax, r15d
or byte [rsp + 0x18f], al
mov rcx, r14
lea rdx, [rsp + 0x150]
call fcn.14007d8a0
movdqu xmm0, xmmword [r14]
movd xmm1, r15d
pshufd xmm1, xmm1, 0
pand xmm1, xmm0
por xmm15, xmm1
and r15d, dword [r14 + 0x10]
or edi, r15d
sub r12, r13
add r12, 0x40
inc rbx
cmp rbx, qword [rsp + 0x60]
je 0x14003744b
test rbx, rbx
je 0x140036ca0
xor r13d, r13d
jmp 0x140036cbe
mov r13d, dword [r14 + 0x5c]
test r13, r13
je 0x140036c94
lea rcx, [rsp + 0x150]
mov rdx, qword [rsp + 0x38]
mov r8, r13
call fcn.140269610
mov rax, qword [rsp + 0x2b0]
sub rax, r12
jbe 0x140036cf9
mov r8d, 0x40
sub r8, r13
cmp r8, rax
cmovae r8, rax
test r8, r8
je 0x140036cf9
lea rcx, [rsp + r13]
add rcx, 0x150
mov rax, qword [rsp + 0x40]
lea rdx, [rax + r12]
call fcn.140269610
cmp r13d, 0x3f
ja 0x140036c00
mov rax, qword [rsp + 0x28]
mov ecx, 0x40
sub rcx, r13
mov r9, r13
cmp rcx, 8
jb 0x1400373d0
mov rdx, r12
sub rdx, r13
movq xmm4, rdx
movq xmm5, rax
cmp rcx, 0x10
jae 0x140036f4f
mov r8, r13
xor edx, edx
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r9, [r10 + r13]
movq xmm0, r8
pshufd xmm0, xmm0, 0x44
movdqa xmm1, xmm0
paddq xmm1, xmmword [0x1402b20f0]
movdqa xmm2, xmm0
paddq xmm2, xmmword [0x1402b2100]
movdqa xmm3, xmm0
paddq xmm3, xmmword [0x1402b2110]
paddq xmm0, xmmword [0x1402b2120]
pshufd xmm4, xmm4, 0x44
pshufd xmm5, xmm5, 0x44
lea r8, [rsp + r13]
add r8, 0x150
nop word cs:[rax + rax]
movdqa xmm10, xmm4
paddq xmm10, xmm2
movdqa xmm11, xmm4
paddq xmm11, xmm1
movdqa xmm13, xmm4
paddq xmm13, xmm0
movdqa xmm14, xmm4
paddq xmm14, xmm3
movdqa xmm7, xmm5
pxor xmm7, xmm14
movdqa xmm6, xmm5
pxor xmm6, xmm13
movdqa xmm9, xmm5
pxor xmm9, xmm11
movdqa xmm8, xmm5
pxor xmm8, xmm10
movdqa xmm12, xmm14
psubq xmm12, xmm5
pxor xmm12, xmm14
por xmm12, xmm7
pxor xmm12, xmm14
movdqa xmm14, xmm13
psubq xmm14, xmm5
pxor xmm14, xmm13
por xmm14, xmm6
pxor xmm14, xmm13
movdqa xmm13, xmm11
psubq xmm13, xmm5
pxor xmm13, xmm11
por xmm13, xmm9
pxor xmm13, xmm11
movdqa xmm11, xmm10
psubq xmm11, xmm5
pxor xmm11, xmm10
por xmm11, xmm8
pxor xmm11, xmm10
pshufd xmm11, xmm11, 0xf5
psrad xmm11, 0x1f
pshufd xmm10, xmm13, 0xf5
pcmpeqd xmm13, xmm13
psrad xmm10, 0x1f
packssdw xmm11, xmm10
pshufd xmm10, xmm14, 0xf5
psrad xmm10, 0x1f
pshufd xmm12, xmm12, 0xf5
psrad xmm12, 0x1f
packssdw xmm10, xmm12
packssdw xmm10, xmm11
movdqa xmm11, xmm7
paddq xmm11, xmm13
pandn xmm7, xmm11
movdqa xmm11, xmm6
paddq xmm11, xmm13
pandn xmm6, xmm11
movdqa xmm11, xmm9
paddq xmm11, xmm13
pandn xmm9, xmm11
movdqa xmm11, xmm8
paddq xmm11, xmm13
pandn xmm8, xmm11
psrlq xmm8, 0x38
psrlq xmm9, 0x38
packuswb xmm8, xmm9
psrlq xmm6, 0x38
psrlq xmm7, 0x38
packuswb xmm6, xmm7
packsswb xmm10, xmm10
packuswb xmm6, xmm8
movq xmm7, qword [r8 + rdx]
pand xmm7, xmm10
packuswb xmm6, xmm6
pand xmm6, xmmword [0x1402b2150]
por xmm7, xmm6
movdqa xmm6, xmmword [0x1402b2160]
movq qword [r8 + rdx], xmm7
add rdx, 8
paddq xmm0, xmm6
paddq xmm3, xmm6
paddq xmm2, xmm6
paddq xmm1, xmm6
cmp r10, rdx
jne 0x140036da0
cmp rcx, r10
je 0x140036c00
jmp 0x1400373d0
movdqa xmmword [rsp + 0xa0], xmm15
mov rdx, rcx
and rdx, 0xfffffffffffffff0
movq xmm0, r13
pshufd xmm1, xmm0, 0x44
movdqa xmm0, xmm1
paddq xmm0, xmmword [0x1402b20b0]
movdqa xmm2, xmm1
paddq xmm2, xmmword [0x1402b20c0]
movdqa xmm3, xmm1
paddq xmm3, xmmword [0x1402b20d0]
movdqa xmm8, xmm1
paddq xmm8, xmmword [0x1402b20e0]
movdqa xmm11, xmm1
paddq xmm11, xmmword [0x1402b20f0]
movdqa xmm12, xmm1
paddq xmm12, xmmword [0x1402b2100]
movdqa xmm14, xmm1
paddq xmm14, xmmword [0x1402b2110]
paddq xmm1, xmmword [0x1402b2120]
movdqa xmmword [rsp + 0x90], xmm4
pshufd xmm4, xmm4, 0x44
movdqa xmmword [rsp + 0xb0], xmm4
movdqa xmmword [rsp + 0x80], xmm5
pshufd xmm6, xmm5, 0x44
lea r8, [rdx + r13]
lea r9, [rsp + r13]
add r9, 0x150
xor r10d, r10d
nop word cs:[rax + rax]
movdqa xmmword [rsp + 0xd0], xmm14
movdqa xmmword [rsp + 0xe0], xmm12
movdqa xmmword [rsp + 0xf0], xmm11
movdqa xmmword [rsp + 0x100], xmm8
movdqa xmmword [rsp + 0x110], xmm3
movdqa xmmword [rsp + 0x120], xmm2
movdqa xmmword [rsp + 0x130], xmm0
movdqa xmmword [rsp + 0x140], xmm1
movdqa xmm7, xmmword [rsp + 0xb0]
movdqa xmm13, xmm7
paddq xmm13, xmm2
movdqa xmm4, xmm7
paddq xmm4, xmm0
movdqa xmm5, xmm7
paddq xmm5, xmm8
movdqa xmm10, xmm7
paddq xmm10, xmm3
movdqa xmm9, xmm7
paddq xmm9, xmm12
movdqa xmm2, xmm7
paddq xmm2, xmm11
movdqa xmm0, xmm7
paddq xmm0, xmm1
movdqa xmm8, xmm7
paddq xmm8, xmm14
movdqa xmm11, xmm6
pxor xmm11, xmm8
movdqa xmmword [rsp + 0xc0], xmm11
movdqa xmm1, xmm6
pxor xmm1, xmm0
movdqa xmm3, xmm6
pxor xmm3, xmm2
movdqa xmmword [rsp + 0x70], xmm3
movdqa xmm14, xmm6
pxor xmm14, xmm9
movdqa xmm15, xmm6
pxor xmm15, xmm10
movdqa xmm12, xmm6
pxor xmm12, xmm5
movdqa xmm3, xmm6
pxor xmm3, xmm4
movdqa xmm7, xmm8
psubq xmm7, xmm6
pxor xmm7, xmm8
por xmm7, xmm11
pxor xmm7, xmm8
movdqa xmm8, xmm0
psubq xmm8, xmm6
pxor xmm8, xmm0
por xmm8, xmm1
pxor xmm8, xmm0
movdqa xmm0, xmm2
psubq xmm0, xmm6
pxor xmm0, xmm2
por xmm0, xmmword [rsp + 0x70]
pxor xmm0, xmm2
movdqa xmm2, xmm9
psubq xmm2, xmm6
pxor xmm2, xmm9
por xmm2, xmm14
pxor xmm2, xmm9
movdqa xmm9, xmm10
psubq xmm9, xmm6
pxor xmm9, xmm10
por xmm9, xmm15
pxor xmm9, xmm10
movdqa xmm10, xmm5
psubq xmm10, xmm6
pxor xmm10, xmm5
por xmm10, xmm12
pxor xmm10, xmm5
movdqa xmm5, xmm4
psubq xmm5, xmm6
pxor xmm5, xmm4
por xmm5, xmm3
pxor xmm5, xmm4
movdqa xmm4, xmm6
pxor xmm4, xmm13
movdqa xmm11, xmm13
psubq xmm11, xmm6
pxor xmm11, xmm13
por xmm11, xmm4
pxor xmm11, xmm13
pcmpeqd xmm13, xmm13
pshufd xmm11, xmm11, 0xf5
psrad xmm11, 0x1f
pshufd xmm5, xmm5, 0xf5
psrad xmm5, 0x1f
packssdw xmm11, xmm5
pshufd xmm5, xmm10, 0xf5
psrad xmm5, 0x1f
pshufd xmm9, xmm9, 0xf5
psrad xmm9, 0x1f
packssdw xmm5, xmm9
packssdw xmm5, xmm11
movdqa xmm11, xmmword [rsp + 0xf0]
pshufd xmm2, xmm2, 0xf5
psrad xmm2, 0x1f
pshufd xmm0, xmm0, 0xf5
psrad xmm0, 0x1f
packssdw xmm2, xmm0
pshufd xmm0, xmm8, 0xf5
movdqa xmm8, xmmword [rsp + 0x100]
psrad xmm0, 0x1f
pshufd xmm7, xmm7, 0xf5
psrad xmm7, 0x1f
packssdw xmm0, xmm7
movdqa xmm7, xmmword [reloc.WS2_32.dll_recv]
packssdw xmm0, xmm2
packsswb xmm0, xmm5
movdqa xmm5, xmmword [rsp + 0xc0]
movdqa xmm2, xmm5
paddq xmm2, xmm13
pandn xmm5, xmm2
movdqa xmm2, xmm1
paddq xmm2, xmm13
pandn xmm1, xmm2
movdqa xmm9, xmmword [rsp + 0x70]
movdqa xmm2, xmm9
paddq xmm2, xmm13
pandn xmm9, xmm2
movdqa xmm2, xmm14
paddq xmm2, xmm13
pandn xmm14, xmm2
movdqa xmm2, xmm15
paddq xmm2, xmm13
pandn xmm15, xmm2
movdqa xmm2, xmm12
paddq xmm2, xmm13
pandn xmm12, xmm2
movdqa xmm2, xmm3
paddq xmm2, xmm13
pandn xmm3, xmm2
movdqa xmm2, xmm4
paddq xmm2, xmm13
pandn xmm4, xmm2
psrlq xmm4, 0x38
psrlq xmm3, 0x38
packuswb xmm4, xmm3
movdqa xmm3, xmmword [rsp + 0x110]
psrlq xmm12, 0x38
psrlq xmm15, 0x38
packuswb xmm12, xmm15
packuswb xmm12, xmm4
psrlq xmm14, 0x38
psrlq xmm9, 0x38
packuswb xmm14, xmm9
psrlq xmm1, 0x38
psrlq xmm5, 0x38
packuswb xmm1, xmm5
packuswb xmm1, xmm14
movdqa xmm14, xmmword [rsp + 0xd0]
packuswb xmm1, xmm12
movdqa xmm12, xmmword [rsp + 0xe0]
movdqu xmm2, xmmword [r9 + r10]
pand xmm2, xmm0
movdqa xmm0, xmmword [rsp + 0x130]
pand xmm1, xmmword [0x1402b2130]
por xmm2, xmm1
movdqa xmm1, xmmword [rsp + 0x140]
movdqu xmmword [r9 + r10], xmm2
movdqa xmm2, xmmword [rsp + 0x120]
add r10, 0x10
paddq xmm1, xmm7
paddq xmm14, xmm7
paddq xmm12, xmm7
paddq xmm11, xmm7
paddq xmm8, xmm7
paddq xmm3, xmm7
paddq xmm2, xmm7
paddq xmm0, xmm7
cmp rdx, r10
jne 0x140037010
cmp rcx, rdx
movdqa xmm15, xmmword [rsp + 0xa0]
je 0x140036c00
test cl, 8
jne 0x140037434
add rdx, r13
mov r9, rdx
nop dword [rax]
lea rcx, [r9 - 0x40]
lea rdx, [rsp + r9]
add rdx, 0x150
add r9, r12
sub r9, r13
mov r8, rax
neg r8
nop dword [rax + rax]
mov r10, rax
xor r10, r9
lea r11, [r8 + r9]
xor r11, r9
or r11, r10
xor r11, r9
sar r11, 0x3f
mov r15, r10
not r15
dec r10
and r10, r15
shr r10, 0x38
and r11b, byte [rdx]
and r10b, 0x80
or r10b, r11b
mov byte [rdx], r10b
inc rdx
inc r9
inc rcx
jne 0x1400373f0
jmp 0x140036c00
movdqa xmm4, xmmword [rsp + 0x90]
movdqa xmm5, xmmword [rsp + 0x80]
jmp 0x140036d3c
pxor xmm0, xmm0
movdqa xmm1, xmm15
punpckhbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm15, xmm0
pshuflw xmm0, xmm15, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
mov rax, qword [rsp + 0x30]
movdqu xmmword [rax], xmm0
bswap edi
mov dword [rax + 0x10], edi
mov ebp, 1
mov rcx, qword [rsp + 0x198]
xor rcx, rsp
call fcn.140265fa0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x1a0]
movaps xmm7, xmmword [rsp + 0x1b0]
movaps xmm8, xmmword [rsp + 0x1c0]
movaps xmm9, xmmword [rsp + 0x1d0]
movaps xmm10, xmmword [rsp + 0x1e0]
movaps xmm11, xmmword [rsp + 0x1f0]
movaps xmm12, xmmword [rsp + 0x200]
movaps xmm13, xmmword [rsp + 0x210]
movaps xmm14, xmmword [rsp + 0x220]
movaps xmm15, xmmword [rsp + 0x230]
add rsp, 0x248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret