Function at 0x140037ed0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x238
movdqa xmmword [rsp + 0x220], xmm15
movdqa xmmword [rsp + 0x210], xmm14
movdqa xmmword [rsp + 0x200], xmm13
movdqa xmmword [rsp + 0x1f0], xmm12
movdqa xmmword [rsp + 0x1e0], xmm11
movdqa xmmword [rsp + 0x1d0], xmm10
movdqa xmmword [rsp + 0x1c0], xmm9
movdqa xmmword [rsp + 0x1b0], xmm8
movdqa xmmword [rsp + 0x1a0], xmm7
movdqa xmmword [rsp + 0x190], xmm6
mov qword [rsp + 0x30], r8
mov r14, rcx
mov rcx, qword [rsp + 0x2a0]
mov rax, qword [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0x188], rax
xor ebp, ebp
mov rax, rcx
shr rax, 0x3d
jne 0x1400388d0
cmp dword [r14 + 0x18], 0
jne 0x1400388d0
mov rax, qword [rsp + 0x2a0]
lea rcx, [rax*8]
mov eax, dword [r14 + 0x14]
add rcx, rax
jb 0x1400388d0
shr rcx, 0x20
jne 0x1400388d0
mov r15, r9
mov qword [rsp + 0x20], rdx
mov ecx, dword [r14 + 0x5c]
lea r8, [rcx + r9]
add r8, 0x48
shr r8, 6
lea rdx, [r8 - 1]
mov qword [rsp + 0x60], rdx
mov rdx, qword [rsp + 0x2a0]
add rcx, rdx
add rcx, 0x48
lea rax, [rax + r9*8]
mov rdx, rax
shr rdx, 0x18
mov qword [rsp + 0x48], rdx
mov rdx, rax
shr rdx, 0x10
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x50], rax
shr rax, 8
mov qword [rsp + 0x38], rax
pxor xmm14, xmm14
movdqa xmmword [rsp + 0x170], xmm14
movdqa xmmword [rsp + 0x160], xmm14
movdqa xmmword [rsp + 0x150], xmm14
movdqa xmmword [rsp + 0x140], xmm14
shr rcx, 6
mov qword [rsp + 0x58], rcx
lea rax, [r14 + 0x1c]
mov qword [rsp + 0x28], rax
neg r8
mov qword [rsp + 0x68], r8
movq xmm0, r9
pshufd xmm15, xmm0, 0x44
mov rdi, r9
neg rdi
xor esi, esi
xor ebx, ebx
xor ebp, ebp
jmp 0x140038104
mov r12, rbp
xor r12, qword [rsp + 0x60]
dec r12
and r12, qword [rsp + 0x68]
sar r12, 0x3f
mov rax, qword [rsp + 0x48]
and eax, r12d
or byte [rsp + 0x17c], al
mov rax, qword [rsp + 0x40]
and eax, r12d
or byte [rsp + 0x17d], al
mov rax, qword [rsp + 0x38]
and eax, r12d
or byte [rsp + 0x17e], al
mov rax, qword [rsp + 0x50]
and eax, r12d
or byte [rsp + 0x17f], al
mov rcx, r14
lea rdx, [rsp + 0x140]
call fcn.14007fd10
movdqu xmm0, xmmword [r14]
movd xmm1, r12d
pshufd xmm1, xmm1, 0
pand xmm1, xmm0
por xmm14, xmm1
and r12d, dword [r14 + 0x10]
or esi, r12d
sub rbx, r13
add rbx, 0x40
inc rbp
cmp rbp, qword [rsp + 0x58]
je 0x140038892
test rbp, rbp
je 0x140038120
xor r13d, r13d
cmp rbx, qword [rsp + 0x2a0]
jae 0x140038180
jmp 0x140038148
mov r13d, dword [r14 + 0x5c]
test r13, r13
je 0x140038109
lea rcx, [rsp + 0x140]
mov rdx, qword [rsp + 0x28]
mov r8, r13
call fcn.1402689f0
cmp rbx, qword [rsp + 0x2a0]
jae 0x140038180
mov eax, 0x40
sub rax, r13
mov r8, qword [rsp + 0x2a0]
sub r8, rbx
cmp rax, r8
cmovb r8, rax
test r8, r8
je 0x140038180
lea rcx, [rsp + r13]
add rcx, 0x140
mov rax, qword [rsp + 0x30]
lea rdx, [rax + rbx]
call fcn.1402689f0
cmp r13d, 0x3f
ja 0x140038070
mov eax, 0x40
sub rax, r13
mov r8, r13
cmp rax, 8
jb 0x140038836
mov rcx, rbx
sub rcx, r13
movq xmm4, rcx
cmp rax, 0x10
jae 0x1400381ba
mov rdx, r13
xor ecx, ecx
jmp 0x140038630
movdqa xmmword [rsp + 0x90], xmm14
mov rcx, rax
and rcx, 0xfffffffffffffff0
movq xmm0, r13
pshufd xmm0, xmm0, 0x44
movdqa xmm1, xmm0
paddq xmm1, xmmword [0x1402de590]
movdqa xmm2, xmm0
paddq xmm2, xmmword [0x1402de5a0]
movdqa xmm5, xmm0
paddq xmm5, xmmword [0x1402de5b0]
movdqa xmm6, xmm0
paddq xmm6, xmmword [0x1402de5c0]
movdqa xmm8, xmm0
paddq xmm8, xmmword [0x1402ddff0]
movdqa xmm9, xmm0
paddq xmm9, xmmword [0x1402de000]
movdqa xmm12, xmm0
paddq xmm12, xmmword [0x1402de010]
paddq xmm0, xmmword [0x1402de020]
movdqa xmmword [rsp + 0x80], xmm4
pshufd xmm3, xmm4, 0x44
movdqa xmmword [rsp + 0xa0], xmm3
lea rdx, [rcx + r13]
lea r8, [rsp + r13]
add r8, 0x140
xor r9d, r9d
movdqa xmmword [rsp + 0xc0], xmm12
movdqa xmmword [rsp + 0xd0], xmm9
movdqa xmmword [rsp + 0xe0], xmm8
movdqa xmmword [rsp + 0xf0], xmm6
movdqa xmmword [rsp + 0x100], xmm5
movdqa xmmword [rsp + 0x110], xmm2
movdqa xmmword [rsp + 0x120], xmm1
movdqa xmmword [rsp + 0x130], xmm0
movdqa xmm13, xmmword [rsp + 0xa0]
movdqa xmm7, xmm13
paddq xmm7, xmm2
movdqa xmm3, xmm13
paddq xmm3, xmm1
movdqa xmm4, xmm13
paddq xmm4, xmm6
movdqa xmm11, xmm13
paddq xmm11, xmm5
movdqa xmm10, xmm13
paddq xmm10, xmm9
movdqa xmm1, xmm13
paddq xmm1, xmm8
movdqa xmm9, xmm13
paddq xmm9, xmm0
paddq xmm13, xmm12
movdqa xmm0, xmm13
pxor xmm0, xmm15
movdqa xmmword [rsp + 0x70], xmm0
movdqa xmm2, xmm15
movdqa xmm15, xmm9
pxor xmm15, xmm2
movdqa xmm0, xmm1
pxor xmm0, xmm2
movdqa xmmword [rsp + 0xb0], xmm0
movdqa xmm6, xmm10
pxor xmm6, xmm2
movdqa xmm12, xmm11
pxor xmm12, xmm2
movdqa xmm14, xmm4
pxor xmm14, xmm2
movdqa xmm8, xmm3
pxor xmm8, xmm2
movdqa xmm5, xmm13
psubq xmm5, xmm2
pxor xmm5, xmm13
por xmm5, xmmword [rsp + 0x70]
pxor xmm5, xmm13
movdqa xmm13, xmm9
psubq xmm13, xmm2
pxor xmm13, xmm9
por xmm13, xmm15
pxor xmm13, xmm9
movdqa xmm9, xmm1
psubq xmm9, xmm2
pxor xmm9, xmm1
por xmm9, xmm0
pxor xmm9, xmm1
movdqa xmm1, xmm10
psubq xmm1, xmm2
pxor xmm1, xmm10
por xmm1, xmm6
pxor xmm1, xmm10
movdqa xmm10, xmm11
psubq xmm10, xmm2
pxor xmm10, xmm11
por xmm10, xmm12
pxor xmm10, xmm11
movdqa xmm11, xmm4
psubq xmm11, xmm2
pxor xmm11, xmm4
por xmm11, xmm14
pxor xmm11, xmm4
movdqa xmm4, xmm3
psubq xmm4, xmm2
pxor xmm4, xmm3
por xmm4, xmm8
pxor xmm4, xmm3
movdqa xmm3, xmm7
pxor xmm3, xmm2
movdqa xmm0, xmm7
psubq xmm0, xmm2
pxor xmm0, xmm7
por xmm0, xmm3
pxor xmm0, xmm7
psrad xmm0, 0x1f
pshufd xmm0, xmm0, 0xf5
psrad xmm4, 0x1f
pshufd xmm4, xmm4, 0xf5
packssdw xmm0, xmm4
psrad xmm11, 0x1f
pshufd xmm4, xmm11, 0xf5
pcmpeqd xmm11, xmm11
psrad xmm10, 0x1f
pshufd xmm7, xmm10, 0xf5
packssdw xmm4, xmm7
packssdw xmm4, xmm0
psrad xmm1, 0x1f
pshufd xmm1, xmm1, 0xf5
psrad xmm9, 0x1f
pshufd xmm0, xmm9, 0xf5
movdqa xmm9, xmmword [rsp + 0xd0]
packssdw xmm1, xmm0
psrad xmm13, 0x1f
pshufd xmm0, xmm13, 0xf5
psrad xmm5, 0x1f
pshufd xmm5, xmm5, 0xf5
packssdw xmm0, xmm5
movdqa xmm5, xmmword [rsp + 0x100]
packssdw xmm0, xmm1
packsswb xmm0, xmm4
movdqa xmm4, xmmword [rsp + 0x70]
movdqa xmm1, xmm4
paddq xmm1, xmm11
pandn xmm4, xmm1
movdqa xmm1, xmm15
paddq xmm1, xmm11
pandn xmm15, xmm1
movdqa xmm7, xmmword [rsp + 0xb0]
movdqa xmm1, xmm7
paddq xmm1, xmm11
pandn xmm7, xmm1
movdqa xmm1, xmm6
paddq xmm1, xmm11
pandn xmm6, xmm1
movdqa xmm1, xmm12
paddq xmm1, xmm11
pandn xmm12, xmm1
movdqa xmm1, xmm14
paddq xmm1, xmm11
pandn xmm14, xmm1
movdqa xmm1, xmm8
paddq xmm1, xmm11
pandn xmm8, xmm1
movdqa xmm1, xmm3
paddq xmm1, xmm11
pandn xmm3, xmm1
psrlq xmm3, 0x38
psrlq xmm8, 0x38
packuswb xmm3, xmm8
movdqa xmm8, xmmword [rsp + 0xe0]
psrlq xmm14, 0x38
psrlq xmm12, 0x38
packuswb xmm14, xmm12
movdqa xmm12, xmmword [rsp + 0xc0]
packuswb xmm14, xmm3
psrlq xmm6, 0x38
psrlq xmm7, 0x38
packuswb xmm6, xmm7
psrlq xmm15, 0x38
psrlq xmm4, 0x38
packuswb xmm15, xmm4
packuswb xmm15, xmm6
movdqa xmm6, xmmword [rsp + 0xf0]
movdqa xmm3, xmmword [reloc.WS2_32.dll_recv]
packuswb xmm15, xmm14
movdqu xmm1, xmmword [r8 + r9]
pand xmm1, xmm0
movdqa xmm0, xmmword [rsp + 0x130]
pand xmm15, xmmword [0x1402de5d0]
por xmm1, xmm15
movdqa xmm15, xmm2
movdqa xmm2, xmmword [rsp + 0x110]
movdqu xmmword [r8 + r9], xmm1
movdqa xmm1, xmmword [rsp + 0x120]
add r9, 0x10
paddq xmm0, xmm3
paddq xmm12, xmm3
paddq xmm9, xmm3
paddq xmm8, xmm3
paddq xmm6, xmm3
paddq xmm5, xmm3
paddq xmm2, xmm3
paddq xmm1, xmm3
cmp rcx, r9
jne 0x140038260
cmp rax, rcx
movdqa xmm14, xmmword [rsp + 0x90]
je 0x140038070
test al, 8
jne 0x140038627
add rcx, r13
mov r8, rcx
jmp 0x140038836
movdqa xmm4, xmmword [rsp + 0x80]
mov r9, rax
and r9, 0xfffffffffffffff8
lea r8, [r9 + r13]
movq xmm0, rdx
pshufd xmm0, xmm0, 0x44
movdqa xmm1, xmm0
paddq xmm1, xmmword [0x1402ddff0]
movdqa xmm2, xmm0
paddq xmm2, xmmword [0x1402de000]
movdqa xmm3, xmm0
paddq xmm3, xmmword [0x1402de010]
paddq xmm0, xmmword [0x1402de020]
pshufd xmm4, xmm4, 0x44
lea rdx, [rsp + r13]
add rdx, 0x140
nop word cs:[rax + rax]
movdqa xmm7, xmm4
paddq xmm7, xmm2
movdqa xmm10, xmm4
paddq xmm10, xmm1
movdqa xmm11, xmm4
paddq xmm11, xmm0
movdqa xmm13, xmm4
paddq xmm13, xmm3
movdqa xmm6, xmm13
pxor xmm6, xmm15
movdqa xmm5, xmm11
pxor xmm5, xmm15
movdqa xmm9, xmm10
pxor xmm9, xmm15
movdqa xmm8, xmm7
pxor xmm8, xmm15
movdqa xmm12, xmm13
psubq xmm12, xmm15
pxor xmm12, xmm13
por xmm12, xmm6
pxor xmm12, xmm13
movdqa xmm13, xmm11
psubq xmm13, xmm15
pxor xmm13, xmm11
por xmm13, xmm5
pxor xmm13, xmm11
movdqa xmm11, xmm10
psubq xmm11, xmm15
pxor xmm11, xmm10
por xmm11, xmm9
pxor xmm11, xmm10
movdqa xmm10, xmm7
psubq xmm10, xmm15
pxor xmm10, xmm7
por xmm10, xmm8
pxor xmm10, xmm7
psrad xmm10, 0x1f
pshufd xmm10, xmm10, 0xf5
psrad xmm11, 0x1f
pshufd xmm7, xmm11, 0xf5
packssdw xmm10, xmm7
psrad xmm13, 0x1f
pshufd xmm7, xmm13, 0xf5
psrad xmm12, 0x1f
pshufd xmm11, xmm12, 0xf5
packssdw xmm7, xmm11
pcmpeqd xmm11, xmm11
packssdw xmm7, xmm10
movdqa xmm10, xmm6
paddq xmm10, xmm11
pandn xmm6, xmm10
movdqa xmm10, xmm5
paddq xmm10, xmm11
pandn xmm5, xmm10
movdqa xmm10, xmm9
paddq xmm10, xmm11
pandn xmm9, xmm10
movdqa xmm10, xmm8
paddq xmm10, xmm11
pandn xmm8, xmm10
psrlq xmm8, 0x38
psrlq xmm9, 0x38
packuswb xmm8, xmm9
psrlq xmm5, 0x38
psrlq xmm6, 0x38
packuswb xmm5, xmm6
packsswb xmm7, xmm7
packuswb xmm5, xmm8
movq xmm6, qword [rdx + rcx]
pand xmm6, xmm7
packuswb xmm5, xmm5
pand xmm5, xmmword [0x1402de5f0]
por xmm6, xmm5
movq qword [rdx + rcx], xmm6
movdqa xmm5, xmmword [0x1402de030]
add rcx, 8
paddq xmm0, xmm5
paddq xmm3, xmm5
paddq xmm2, xmm5
paddq xmm1, xmm5
cmp r9, rcx
jne 0x140038690
cmp rax, r9
je 0x140038070
lea rax, [r8 - 0x40]
lea rcx, [rsp + r8]
add rcx, 0x140
add r8, rbx
sub r8, r13
nop dword [rax + rax]
mov rdx, r8
xor rdx, r15
lea r9, [rdi + r8]
xor r9, r8
or r9, rdx
xor r9, r8
sar r9, 0x3f
mov r10, rdx
not r10
dec rdx
and rdx, r10
shr rdx, 0x38
and r9b, byte [rcx]
and dl, 0x80
or dl, r9b
mov byte [rcx], dl
inc rcx
inc r8
inc rax
jne 0x140038850
jmp 0x140038070
pxor xmm0, xmm0
movdqa xmm1, xmm14
punpckhbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm14, xmm0
pshuflw xmm0, xmm14, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
mov rax, qword [rsp + 0x20]
movdqu xmmword [rax], xmm0
bswap esi
mov dword [rax + 0x10], esi
mov ebp, 1
mov rcx, qword [rsp + 0x188]
xor rcx, rsp
call fcn.140265fe0
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x190]
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm8, xmmword [rsp + 0x1b0]
movaps xmm9, xmmword [rsp + 0x1c0]
movaps xmm10, xmmword [rsp + 0x1d0]
movaps xmm11, xmmword [rsp + 0x1e0]
movaps xmm12, xmmword [rsp + 0x1f0]
movaps xmm13, xmmword [rsp + 0x200]
movaps xmm14, xmmword [rsp + 0x210]
movaps xmm15, xmmword [rsp + 0x220]
add rsp, 0x238
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret