Function at 0x14003c960
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x988
movdqa xmmword [rsp + 0x970], xmm11
movdqa xmmword [rsp + 0x960], xmm10
movdqa xmmword [rsp + 0x950], xmm9
movdqa xmmword [rsp + 0x940], xmm8
movaps xmmword [rsp + 0x930], xmm7
movaps xmmword [rsp + 0x920], xmm6
mov rbx, r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x28], rcx
mov rax, qword [0x1403acd78]
xor rax, rsp
mov qword [rsp + 0x918], rax
mov ebp, reloc.WS2_32.dll_ntohs
lea r14, [rsp + 0x260]
nop word [rax + rax]
lea rcx, [rsp + 0xf0]
mov rdx, rbx
call fcn.14003cfb0
lea rdx, [rbx + 0x20]
lea rdi, [rsp + 0x50]
mov rcx, rdi
call fcn.14003cfb0
mov rax, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov r9, qword [rsp + 0xf0]
mov r10, qword [rsp + 0xf8]
lea r11, [r9 + rax]
lea r15, [r10 + rcx]
mov rdx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x100]
lea rsi, [r12 + rdx]
mov r8, qword [rsp + 0x68]
mov r13, qword [rsp + 0x108]
mov qword [r14 - 0x50], r11
lea r11, [r13 + r8]
mov qword [r14 - 0x48], r15
mov r15, qword [rsp + 0x70]
mov qword [r14 - 0x40], rsi
mov rsi, qword [rsp + 0x110]
mov qword [r14 - 0x38], r11
lea r11, [rsi + r15]
mov qword [r14 - 0x30], r11
movabs r11, 0xffffffffffffe
add rax, r11
sub rax, r9
movabs r9, 0xffffffffffffe
add rcx, r9
sub rcx, r10
movabs r9, 0xffffffffffffe
add rdx, r9
sub rdx, r12
movabs r9, 0xffffffffffffe
add r8, r9
sub r8, r13
movabs r9, 0xffffffffffffe
add r15, r9
sub r15, rsi
add rax, 0xffffffffffffffdc
mov qword [r14 - 0x28], rax
mov qword [r14 - 0x20], rcx
mov qword [r14 - 0x18], rdx
mov qword [r14 - 0x10], r8
mov qword [r14 - 8], r15
mov rcx, r14
lea rdx, [rsp + 0xf0]
mov r8, rdi
call fcn.140046350
mov rcx, r14
mov rdx, r14
lea r8, [0x1402f11d0]
call fcn.140046350
add r14, 0x78
add rbx, 0x40
dec rbp
jne 0x14003c9e0
pxor xmm0, xmm0
mov rcx, qword [rsp + 0x28]
movdqu xmmword [rcx + 0x10], xmm0
movdqu xmmword [rcx], xmm0
mov qword [rcx + 0x20], 0
lea rax, [rcx + 0x28]
mov qword [rsp + 0x40], rax
movdqu xmmword [rcx + 0x30], xmm0
movdqu xmmword [rcx + 0x40], xmm0
mov qword [rcx + 0x28], 1
lea rax, [rcx + 0x50]
mov qword [rsp + 0x30], rax
movdqu xmmword [rcx + 0x58], xmm0
movdqu xmmword [rcx + 0x68], xmm0
mov qword [rcx + 0x50], 1
lea rax, [rcx + 0x78]
mov qword [rsp + 0x38], rax
movdqu xmmword [rcx + 0x78], xmm0
movdqu xmmword [rcx + 0x88], xmm0
mov qword [rcx + 0x98], 0
mov ecx, 0x3f
movdqa xmm6, xmmword [0x1402f10b0]
movdqa xmm7, xmmword [0x1402f1170]
movabs r11, 0xffffffff00000000
mov r12, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
nop word cs:[rax + rax]
mov eax, ecx
shr rax, 3
mov r10, qword [rsp + 0x48]
movzx edx, byte [r10 + rax]
mov dword [rsp + 0x24], ecx
and cl, 7
movzx ecx, cl
xor r8d, r8d
bt edx, ecx
setb r8b
movzx edx, byte [r10 + rax + 8]
shr rdx, cl
and edx, 1
movzx r9d, byte [r10 + rax + 0x10]
shr r9, cl
lea rdx, [r8 + rdx*2]
and r9d, 1
lea rdx, [rdx + r9*4]
movzx eax, byte [r10 + rax + 0x18]
shr rax, cl
and eax, 1
lea rax, [rdx + rax*8]
mov edx, 1
lea r8, [rsp + 0x280]
xor ecx, ecx
movdqa xmm1, xmm7
pxor xmm2, xmm2
movdqa xmm3, xmm6
pxor xmm4, xmm4
pxor xmm5, xmm5
pxor xmm8, xmm8
pxor xmm0, xmm0
nop word cs:[rax + rax]
mov r9d, edx
xor r9d, eax
shl r9, 0x20
add r9, r11
movq xmm9, r9
psrad xmm9, 0x1f
pshufd xmm10, xmm9, 0x55
movdqa xmm11, xmm10
pandn xmm11, xmm1
movdqu xmm1, xmmword [r8 - 0x70]
pand xmm1, xmm10
por xmm1, xmm11
movdqa xmm11, xmm10
pandn xmm11, xmm2
movdqu xmm2, xmmword [r8 - 0x60]
pand xmm2, xmm10
por xmm2, xmm11
movdqa xmm11, xmm10
pandn xmm11, xmm3
movdqu xmm3, xmmword [r8 - 0x50]
pand xmm3, xmm10
por xmm3, xmm11
movdqa xmm11, xmm10
pandn xmm11, xmm4
movdqu xmm4, xmmword [r8 - 0x40]
pand xmm4, xmm10
por xmm4, xmm11
movdqa xmm11, xmm10
pandn xmm11, xmm5
movdqu xmm5, xmmword [r8 - 0x30]
pand xmm5, xmm10
por xmm5, xmm11
movdqa xmm11, xmm10
pandn xmm11, xmm8
movdqu xmm8, xmmword [r8 - 0x20]
pand xmm8, xmm10
por xmm8, xmm11
movdqu xmm11, xmmword [r8 - 0x10]
pand xmm11, xmm10
pandn xmm10, xmm0
movdqa xmm0, xmm10
por xmm0, xmm11
mov r9, rcx
pshufd xmm9, xmm9, 0xf5
movq rcx, xmm9
mov r10, qword [r8]
xor r10, r9
and rcx, r10
xor rcx, r9
inc rdx
add r8, 0x78
cmp rdx, 0x10
jne 0x14003cc40
movdqa xmmword [rsp + 0x190], xmm1
movdqa xmmword [rsp + 0x1a0], xmm2
movdqa xmmword [rsp + 0x1b0], xmm3
movdqa xmmword [rsp + 0x1c0], xmm4
movdqa xmmword [rsp + 0x1d0], xmm5
movdqa xmmword [rsp + 0x1e0], xmm8
movdqa xmmword [rsp + 0x1f0], xmm0
mov qword [rsp + 0x200], rcx
mov rax, qword [r12 + 0x28]
mov r10, qword [r12]
mov r11, qword [r12 + 8]
lea rsi, [r10 + rax]
mov rcx, qword [r12 + 0x30]
mov rdx, qword [r12 + 0x38]
mov r13, qword [r12 + 0x10]
mov r8, qword [r12 + 0x40]
mov r15, qword [r12 + 0x18]
mov r9, qword [r12 + 0x48]
mov rbx, qword [r12 + 0x20]
mov qword [rsp + 0xf0], rsi
lea rsi, [r11 + rcx]
mov qword [rsp + 0xf8], rsi
lea rsi, [r13 + rdx]
mov qword [rsp + 0x100], rsi
lea rsi, [r15 + r8]
mov qword [rsp + 0x108], rsi
lea rsi, [rbx + r9]
mov qword [rsp + 0x110], rsi
movabs rsi, 0xffffffffffffe
add rax, rsi
sub rax, r10
add rcx, rsi
sub rcx, r11
add rdx, rsi
sub rdx, r13
add r8, rsi
sub r8, r15
add r9, rsi
sub r9, rbx
add rax, 0xffffffffffffffdc
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rdx
mov qword [rsp + 0x130], r8
mov qword [rsp + 0x138], r9
mov rax, qword [rbp + 0x20]
lea rcx, [rsp + 0x140]
mov qword [rcx + 0x20], rax
movdqu xmm0, xmmword [rbp]
movdqu xmm1, xmmword [rbp + 0x10]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
lea rcx, [rsp + 0x168]
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
lea r8, [0x1402f11d0]
call fcn.140046350
lea rdi, [rsp + 0x50]
mov rcx, rdi
mov rdx, r12
lea r8, [rsp + 0xf0]
call fcn.14003c340
mov rcx, r12
mov rdx, rdi
lea r15, [rsp + 0xc8]
mov r8, r15
call fcn.140046350
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
lea r14, [rsp + 0x78]
mov rdx, r14
lea r13, [rsp + 0xa0]
mov r8, r13
call fcn.140046350
mov rcx, rbp
mov rdx, r13
mov r8, r15
call fcn.140046350
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.140046350
mov rcx, rdi
mov rdx, r12
lea r8, [rsp + 0x190]
call fcn.14003d170
mov rcx, r12
mov rdx, rdi
mov r8, r15
call fcn.140046350
mov rcx, rsi
mov rdx, r14
mov r8, r13
call fcn.140046350
mov rcx, rbp
mov rdx, r13
mov r8, r15
call fcn.140046350
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.140046350
movabs r11, 0xffffffff00000000
mov ecx, dword [rsp + 0x24]
dec ecx
cmp ecx, 0x40
jb 0x14003cbb0
mov rcx, qword [rsp + 0x918]
xor rcx, rsp
call fcn.140279500
movaps xmm6, xmmword [rsp + 0x920]
movaps xmm7, xmmword [rsp + 0x930]
movaps xmm8, xmmword [rsp + 0x940]
movaps xmm9, xmmword [rsp + 0x950]
movaps xmm10, xmmword [rsp + 0x960]
movaps xmm11, xmmword [rsp + 0x970]
add rsp, 0x988
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret