Function at 0x140036790
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 [0x14039bf08]
xor rax, rsp
mov qword [rsp + 0x198], rax
xor ebp, ebp
mov rax, rcx
shr rax, 0x3d
jne 0x1400371a2
cmp dword [r14 + 0x18], 0
jne 0x1400371a2
mov rax, qword [rsp + 0x2b0]
lea rcx, [rax*8]
mov eax, dword [r14 + 0x14]
add rcx, rax
jb 0x1400371a2
shr rcx, 0x20
jne 0x1400371a2
mov qword [rsp + 0x30], rdx
mov ecx, dword [r14 + 0x5c]
mov rdx, qword [rsp + 0x28]
lea rbp, [rcx + rdx]
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 r12, [rax + rdx*8]
mov rax, r12
shr rax, 0x18
mov qword [rsp + 0x58], rax
mov rax, r12
shr rax, 0x10
mov qword [rsp + 0x50], rax
mov rax, r12
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 esi, esi
xor edi, edi
xor ebx, ebx
jmp 0x1400369b0
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, r12d
and eax, r15d
or byte [rsp + 0x18f], al
mov rcx, r14
lea rdx, [rsp + 0x150]
call fcn.14007cdd0
movdqu xmm0, xmmword [r14]
movd xmm1, r15d
pshufd xmm1, xmm1, 0
pand xmm1, xmm0
por xmm15, xmm1
and r15d, dword [r14 + 0x10]
or esi, r15d
sub rdi, r13
add rdi, 0x40
inc rbx
cmp rbx, qword [rsp + 0x60]
je 0x140037164
test rbx, rbx
je 0x1400369d0
xor r13d, r13d
cmp rdi, qword [rsp + 0x2b0]
jae 0x140036a30
jmp 0x1400369f8
mov r13d, dword [r14 + 0x5c]
test r13, r13
je 0x1400369b5
lea rcx, [rsp + 0x150]
mov rdx, qword [rsp + 0x38]
mov r8, r13
call fcn.140265d10
cmp rdi, qword [rsp + 0x2b0]
jae 0x140036a30
mov eax, 0x40
sub rax, r13
mov r8, qword [rsp + 0x2b0]
sub r8, rdi
cmp rax, r8
cmovb r8, rax
test r8, r8
je 0x140036a30
lea rcx, [rsp + r13]
add rcx, 0x150
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rdi]
call fcn.140265d10
cmp r13d, 0x3f
ja 0x140036920
mov rax, qword [rsp + 0x28]
mov ecx, 0x40
sub rcx, r13
mov r9, r13
cmp rcx, 8
jb 0x1400370fa
mov rdx, rdi
sub rdx, r13
movq xmm4, rdx
movq xmm5, rax
cmp rcx, 0x10
jae 0x140036a74
mov r8, r13
xor edx, edx
jmp 0x140036ef8
movdqa xmmword [rsp + 0xa0], xmm15
mov rdx, rcx
and rdx, 0xfffffffffffffff0
movq xmm0, r13
pshufd xmm0, xmm0, 0x44
movdqa xmm1, xmm0
paddq xmm1, xmmword [0x1402db4f0]
movdqa xmm2, xmm0
paddq xmm2, xmmword [0x1402db500]
movdqa xmm6, xmm0
paddq xmm6, xmmword [0x1402db510]
movdqa xmm7, xmm0
paddq xmm7, xmmword [0x1402db520]
movdqa xmm8, xmm0
paddq xmm8, xmmword [0x1402db530]
movdqa xmm11, xmm0
paddq xmm11, xmmword [0x1402db540]
movdqa xmm12, xmm0
paddq xmm12, xmmword [0x1402db550]
paddq xmm0, xmmword [0x1402db560]
movdqa xmmword [rsp + 0x90], xmm4
pshufd xmm3, xmm4, 0x44
movdqa xmmword [rsp + 0xb0], xmm3
movdqa xmmword [rsp + 0x80], xmm5
pshufd xmm13, xmm5, 0x44
lea r8, [rdx + r13]
lea r9, [rsp + r13]
add r9, 0x150
xor r10d, r10d
nop dword [rax]
movdqa xmmword [rsp + 0xd0], xmm12
movdqa xmmword [rsp + 0xe0], xmm11
movdqa xmmword [rsp + 0xf0], xmm8
movdqa xmmword [rsp + 0x100], xmm7
movdqa xmmword [rsp + 0x110], xmm6
movdqa xmmword [rsp + 0x120], xmm2
movdqa xmmword [rsp + 0x130], xmm1
movdqa xmmword [rsp + 0x140], xmm0
movdqa xmm3, xmmword [rsp + 0xb0]
movdqa xmm15, xmm3
paddq xmm15, xmm2
movdqa xmm4, xmm3
paddq xmm4, xmm1
movdqa xmm5, xmm3
paddq xmm5, xmm7
movdqa xmm10, xmm3
paddq xmm10, xmm6
movdqa xmm9, xmm3
paddq xmm9, xmm11
movdqa xmm2, xmm3
paddq xmm2, xmm8
movdqa xmm8, xmm3
paddq xmm8, xmm0
movdqa xmm0, xmm3
paddq xmm0, xmm12
movdqa xmm1, xmm13
pxor xmm1, xmm0
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmm1, xmm13
pxor xmm1, xmm8
movdqa xmm3, xmm13
pxor xmm3, xmm2
movdqa xmmword [rsp + 0xc0], xmm3
movdqa xmm14, xmm13
pxor xmm14, xmm9
movdqa xmm11, xmm13
pxor xmm11, xmm10
movdqa xmm12, xmm13
pxor xmm12, xmm5
movdqa xmm6, xmm13
pxor xmm6, xmm4
movdqa xmm7, xmm0
psubq xmm7, xmm13
pxor xmm7, xmm0
por xmm7, xmmword [rsp + 0x70]
pxor xmm7, xmm0
movdqa xmm0, xmm8
psubq xmm0, xmm13
pxor xmm0, xmm8
por xmm0, xmm1
pxor xmm0, xmm8
movdqa xmm8, xmm2
psubq xmm8, xmm13
pxor xmm8, xmm2
por xmm8, xmm3
pxor xmm8, xmm2
movdqa xmm2, xmm9
psubq xmm2, xmm13
pxor xmm2, xmm9
por xmm2, xmm14
pxor xmm2, xmm9
movdqa xmm9, xmm10
psubq xmm9, xmm13
pxor xmm9, xmm10
por xmm9, xmm11
pxor xmm9, xmm10
movdqa xmm10, xmm5
psubq xmm10, xmm13
pxor xmm10, xmm5
por xmm10, xmm12
pxor xmm10, xmm5
movdqa xmm5, xmm4
psubq xmm5, xmm13
pxor xmm5, xmm4
por xmm5, xmm6
pxor xmm5, xmm4
movdqa xmm4, xmm13
pxor xmm4, xmm15
movdqa xmm3, xmm15
psubq xmm3, xmm13
pxor xmm3, xmm15
por xmm3, xmm4
pxor xmm3, xmm15
pshufd xmm3, xmm3, 0xf5
psrad xmm3, 0x1f
pshufd xmm5, xmm5, 0xf5
psrad xmm5, 0x1f
packssdw xmm3, xmm5
pshufd xmm5, xmm10, 0xf5
psrad xmm5, 0x1f
pshufd xmm9, xmm9, 0xf5
psrad xmm9, 0x1f
packssdw xmm5, xmm9
packssdw xmm5, xmm3
pshufd xmm2, xmm2, 0xf5
psrad xmm2, 0x1f
pshufd xmm3, xmm8, 0xf5
movdqa xmm8, xmmword [rsp + 0xf0]
psrad xmm3, 0x1f
packssdw xmm2, xmm3
pshufd xmm0, xmm0, 0xf5
psrad xmm0, 0x1f
pshufd xmm3, xmm7, 0xf5
movdqa xmm7, xmmword [rsp + 0x100]
psrad xmm3, 0x1f
packssdw xmm0, xmm3
packssdw xmm0, xmm2
packsswb xmm0, xmm5
movdqa xmm5, xmmword [rsp + 0x70]
movdqa xmm2, xmm5
pcmpeqd xmm3, xmm3
paddq xmm2, xmm3
pandn xmm5, xmm2
movdqa xmm2, xmm1
paddq xmm2, xmm3
pandn xmm1, xmm2
movdqa xmm9, xmmword [rsp + 0xc0]
movdqa xmm2, xmm9
paddq xmm2, xmm3
pandn xmm9, xmm2
movdqa xmm2, xmm14
paddq xmm2, xmm3
pandn xmm14, xmm2
movdqa xmm2, xmm11
paddq xmm2, xmm3
pandn xmm11, xmm2
movdqa xmm2, xmm12
paddq xmm2, xmm3
pandn xmm12, xmm2
movdqa xmm2, xmm6
paddq xmm2, xmm3
pandn xmm6, xmm2
movdqa xmm2, xmm4
paddq xmm2, xmm3
pandn xmm4, xmm2
psrlq xmm4, 0x38
psrlq xmm6, 0x38
packuswb xmm4, xmm6
movdqa xmm6, xmmword [rsp + 0x110]
movdqa xmm3, xmmword [reloc.WS2_32.dll_recv]
psrlq xmm12, 0x38
psrlq xmm11, 0x38
packuswb xmm12, xmm11
movdqa xmm11, xmmword [rsp + 0xe0]
packuswb xmm12, xmm4
psrlq xmm14, 0x38
psrlq xmm9, 0x38
packuswb xmm14, xmm9
psrlq xmm1, 0x38
psrlq xmm5, 0x38
packuswb xmm1, xmm5
packuswb xmm1, xmm14
packuswb xmm1, xmm12
movdqa xmm12, xmmword [rsp + 0xd0]
movdqu xmm2, xmmword [r9 + r10]
pand xmm2, xmm0
movdqa xmm0, xmmword [rsp + 0x140]
pand xmm1, xmmword [0x1402db570]
por xmm2, xmm1
movdqa xmm1, xmmword [rsp + 0x130]
movdqu xmmword [r9 + r10], xmm2
movdqa xmm2, xmmword [rsp + 0x120]
add r10, 0x10
paddq xmm0, xmm3
paddq xmm12, xmm3
paddq xmm11, xmm3
paddq xmm8, xmm3
paddq xmm7, xmm3
paddq xmm6, xmm3
paddq xmm2, xmm3
paddq xmm1, xmm3
cmp rdx, r10
jne 0x140036b30
cmp rcx, rdx
movdqa xmm15, xmmword [rsp + 0xa0]
je 0x140036920
test cl, 8
jne 0x140036ee6
add rdx, r13
mov r9, rdx
jmp 0x1400370fa
movdqa xmm4, xmmword [rsp + 0x90]
movdqa xmm5, xmmword [rsp + 0x80]
mov r10, rcx
and r10, 0xfffffffffffffff8
lea r9, [r10 + r13]
movq xmm0, r8
pshufd xmm0, xmm0, 0x44
movdqa xmm1, xmm0
paddq xmm1, xmmword [0x1402db530]
movdqa xmm2, xmm0
paddq xmm2, xmmword [0x1402db540]
movdqa xmm3, xmm0
paddq xmm3, xmmword [0x1402db550]
paddq xmm0, xmmword [0x1402db560]
pshufd xmm4, xmm4, 0x44
pshufd xmm5, xmm5, 0x44
lea r8, [rsp + r13]
add r8, 0x150
nop
movdqa xmm10, xmm4
paddq xmm10, xmm2
movdqa xmm11, xmm4
paddq xmm11, xmm1
movdqa xmm12, xmm4
paddq xmm12, xmm0
movdqa xmm14, xmm4
paddq xmm14, xmm3
movdqa xmm7, xmm5
pxor xmm7, xmm14
movdqa xmm6, xmm5
pxor xmm6, xmm12
movdqa xmm9, xmm5
pxor xmm9, xmm11
movdqa xmm8, xmm5
pxor xmm8, xmm10
movdqa xmm13, xmm14
psubq xmm13, xmm5
pxor xmm13, xmm14
por xmm13, xmm7
pxor xmm13, xmm14
movdqa xmm14, xmm12
psubq xmm14, xmm5
pxor xmm14, xmm12
por xmm14, xmm6
pxor xmm14, xmm12
movdqa xmm12, xmm11
psubq xmm12, xmm5
pxor xmm12, xmm11
por xmm12, xmm9
pxor xmm12, 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, xmm12, 0xf5
psrad xmm10, 0x1f
packssdw xmm11, xmm10
pshufd xmm10, xmm14, 0xf5
psrad xmm10, 0x1f
pshufd xmm12, xmm13, 0xf5
psrad xmm12, 0x1f
packssdw xmm10, xmm12
pcmpeqd xmm12, xmm12
packssdw xmm10, xmm11
movdqa xmm11, xmm7
paddq xmm11, xmm12
pandn xmm7, xmm11
movdqa xmm11, xmm6
paddq xmm11, xmm12
pandn xmm6, xmm11
movdqa xmm11, xmm9
paddq xmm11, xmm12
pandn xmm9, xmm11
movdqa xmm11, xmm8
paddq xmm11, xmm12
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 [0x1402db590]
por xmm7, xmm6
movdqa xmm6, xmmword [0x1402db5a0]
movq qword [r8 + rdx], xmm7
add rdx, 8
paddq xmm0, xmm6
paddq xmm3, xmm6
paddq xmm2, xmm6
paddq xmm1, xmm6
cmp r10, rdx
jne 0x140036f50
cmp rcx, r10
je 0x140036920
lea rcx, [r9 - 0x40]
lea rdx, [rsp + r9]
add rdx, 0x150
add r9, rdi
sub r9, r13
mov r8, rax
neg r8
nop word cs:[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 0x140037120
jmp 0x140036920
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 esi
mov dword [rax + 0x10], esi
mov ebp, 1
mov rcx, qword [rsp + 0x198]
xor rcx, rsp
call fcn.140263300
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