Function at 0x14003c840
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x9a8
movdqa xmmword [rsp + 0x990], xmm13
movdqa xmmword [rsp + 0x980], xmm12
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 [0x14039fd98]
xor rax, rsp
mov qword [rsp + 0x918], rax
mov ebp, reloc.WS2_32.dll_ntohs
lea r14, [rsp + 0x260]
nop dword [rax + rax]
lea rcx, [rsp + 0xf0]
mov rdx, rbx
call fcn.14003ce90
lea rdx, [rbx + 0x20]
lea rdi, [rsp + 0x50]
mov rcx, rdi
call fcn.14003ce90
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
add rdx, r9
sub rdx, r12
add r8, r9
sub r8, r13
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.140046220
mov rcx, r14
mov rdx, r14
lea r8, [0x1402de6d0]
call fcn.140046220
add r14, 0x78
add rbx, 0x40
dec rbp
jne 0x14003c8d0
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 [0x1402de020]
movdqa xmm7, xmmword [0x1402de670]
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 ecx, 1
lea rdx, [rsp + 0x280]
xor r10d, r10d
movdqa xmm0, xmm7
pxor xmm8, xmm8
movdqa xmm5, xmm6
pxor xmm4, xmm4
pxor xmm2, xmm2
pxor xmm3, xmm3
pxor xmm1, xmm1
nop word cs:[rax + rax]
mov r8, r10
mov r9d, ecx
xor r9d, eax
shl r9, 0x20
add r9, r11
movq xmm9, r9
sar r9, 0x3f
pshufd xmm9, xmm9, 0x44
psrad xmm9, 0x1f
pshufd xmm9, xmm9, 0xf5
movdqa xmm10, xmm9
pandn xmm10, xmm0
movdqu xmm0, xmmword [rdx - 0x70]
movdqa xmm11, xmm9
pandn xmm11, xmm8
movdqu xmm8, xmmword [rdx - 0x60]
movdqa xmm12, xmm9
pandn xmm12, xmm5
movdqu xmm5, xmmword [rdx - 0x50]
movdqa xmm13, xmm9
pandn xmm13, xmm4
movdqu xmm4, xmmword [rdx - 0x40]
pand xmm0, xmm9
por xmm0, xmm10
pand xmm8, xmm9
por xmm8, xmm11
pand xmm5, xmm9
por xmm5, xmm12
pand xmm4, xmm9
por xmm4, xmm13
movdqa xmm10, xmm9
pandn xmm10, xmm2
movdqu xmm2, xmmword [rdx - 0x30]
pand xmm2, xmm9
por xmm2, xmm10
movdqa xmm10, xmm9
pandn xmm10, xmm3
movdqu xmm3, xmmword [rdx - 0x20]
pand xmm3, xmm9
por xmm3, xmm10
movdqu xmm10, xmmword [rdx - 0x10]
pand xmm10, xmm9
pandn xmm9, xmm1
movdqa xmm1, xmm9
por xmm1, xmm10
mov r10, qword [rdx]
xor r10, r8
and r10, r9
xor r10, r8
inc rcx
add rdx, 0x78
cmp rcx, 0x10
jne 0x14003cb10
movdqa xmmword [rsp + 0x190], xmm0
movdqa xmmword [rsp + 0x1a0], xmm8
movdqa xmmword [rsp + 0x1b0], xmm5
movdqa xmmword [rsp + 0x1c0], xmm4
movdqa xmmword [rsp + 0x1d0], xmm2
movdqa xmmword [rsp + 0x1e0], xmm3
movdqa xmmword [rsp + 0x1f0], xmm1
mov qword [rsp + 0x200], r10
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, [0x1402de6d0]
call fcn.140046220
lea rdi, [rsp + 0x50]
mov rcx, rdi
mov rdx, r12
lea r8, [rsp + 0xf0]
call fcn.14003c220
mov rcx, r12
mov rdx, rdi
lea r15, [rsp + 0xc8]
mov r8, r15
call fcn.140046220
mov rsi, qword [rsp + 0x40]
mov rcx, rsi
lea r14, [rsp + 0x78]
mov rdx, r14
lea r13, [rsp + 0xa0]
mov r8, r13
call fcn.140046220
mov rcx, rbp
mov rdx, r13
mov r8, r15
call fcn.140046220
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.140046220
mov rcx, rdi
mov rdx, r12
lea r8, [rsp + 0x190]
call fcn.14003d050
mov rcx, r12
mov rdx, rdi
mov r8, r15
call fcn.140046220
mov rcx, rsi
mov rdx, r14
mov r8, r13
call fcn.140046220
mov rcx, rbp
mov rdx, r13
mov r8, r15
call fcn.140046220
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.140046220
movabs r11, 0xffffffff00000000
mov ecx, dword [rsp + 0x24]
dec ecx
cmp ecx, 0x40
jb 0x14003ca80
mov rcx, qword [rsp + 0x918]
xor rcx, rsp
call fcn.140265fe0
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]
movaps xmm12, xmmword [rsp + 0x980]
movaps xmm13, xmmword [rsp + 0x990]
add rsp, 0x9a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret