Function at 0x14019d680
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x358]
sub rsp, 0x420
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov rax, qword [0x1405c5108]
xor rax, rsp
mov qword [rbp + 0x280], rax
mov rbx, qword [rcx + 0x80]
mov rsi, rcx
mov qword [rsp + 0x60], rcx
mov eax, 0x100
sub rax, rbx
mov qword [rsp + 0x58], r9
mov edi, 0x80
mov byte [rbp + 0x1f0], 0x80
sub rdi, rbx
lea rcx, [rbp + 0x1f1]
cmp rbx, 0x78
cmovae rdi, rax
xor edx, edx
lea r8, [rdi - 9]
call fcn.1403e0ed0
cmp rbx, 0x78
mov r8, rdi
sbb rcx, rcx
add rcx, 2
add rcx, qword [rsi + 0x108]
rol rcx, 0x20
mov rdx, rcx
mov rax, rcx
shl rcx, 0x10
shr rdx, 0x10
shl rax, 0x10
xor rdx, rax
movabs rax, 0xffff0000ffff
and rdx, rax
xor rdx, rcx
mov rcx, rdx
mov rax, rdx
shr rcx, 8
shl rax, 8
xor rcx, rax
shl rdx, 8
movabs rax, 0xff00ff00ff00ff
and rcx, rax
xor rcx, rdx
lea rdx, [rbp + 0x1f0]
mov qword [rbp + rdi + 0x1e8], rcx
mov rcx, rsi
call fcn.14019a3d0
movups xmm0, xmmword [rsi + 0x88]
xor edx, edx
lea rdi, [0x140000000]
movups xmm1, xmmword [rsi + 0x98]
xor eax, eax
mov dword [rsp + 0x20], edx
movups xmmword [rbp + 0x170], xmm0
movups xmm0, xmmword [rsi + 0xa8]
lea ecx, [rdx + 4]
mov qword [rsp + 0x28], rax
movups xmmword [rbp + 0x180], xmm1
movups xmm1, xmmword [rsi + 0xb8]
movups xmmword [rbp + 0x190], xmm0
movups xmm0, xmmword [rsi + 0xc8]
movups xmmword [rbp + 0x1a0], xmm1
movups xmm1, xmmword [rsi + 0xd8]
movups xmmword [rbp + 0x1b0], xmm0
movups xmm0, xmmword [rsi + 0xe8]
movups xmmword [rbp + 0x1c0], xmm1
movups xmm1, xmmword [rsi + 0xf8]
movups xmmword [rbp + 0x1d0], xmm0
movups xmm0, xmmword [rsi + 0x88]
movups xmmword [rbp + 0x1e0], xmm1
movups xmm1, xmmword [rsi + 0x98]
movups xmmword [rbp + 0xf0], xmm0
movups xmm0, xmmword [rsi + 0xa8]
movups xmmword [rbp + 0x100], xmm1
movups xmm1, xmmword [rsi + 0xb8]
movups xmmword [rbp + 0x110], xmm0
movups xmm0, xmmword [rsi + 0xc8]
movups xmmword [rbp + 0x120], xmm1
movups xmm1, xmmword [rsi + 0xd8]
movups xmmword [rbp + 0x130], xmm0
movups xmm0, xmmword [rsi + 0xe8]
movups xmmword [rbp + 0x140], xmm1
movups xmm1, xmmword [rsi + 0xf8]
movups xmmword [rbp + 0x150], xmm0
movups xmmword [rbp + 0x160], xmm1
mov rbx, qword [rbp + 0xf0]
nop dword [rax + rax]
xor rbx, rax
movd xmm0, edx
pshufd xmm0, xmm0, 0
xor eax, eax
xor r8d, r8d
movq qword [rbp + 0x70], xmm0
cmp dword [0x1405c5110], 2
movq qword [rbp + 0x50], xmm0
movq qword [rbp], xmm0
movq qword [rbp - 0x20], xmm0
movq qword [rbp + 0x30], xmm0
movq qword [rbp + 0x40], xmm0
movq qword [rbp - 0x50], xmm0
movq qword [rbp - 0x80], xmm0
mov qword [rbp + 0xf0], rbx
jl 0x14019da57
movdqa xmm3, xmmword [0x140581590]
mov eax, 8
movdqa xmm5, xmmword [0x1405815e0]
movdqa xmm0, xmm3
movdqa xmm1, xmmword [rsp + 0x70]
mov r8d, eax
movd xmm4, ecx
pslld xmm0, xmm4
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp - 0x70]
movsd xmm0, xmm5
movdqa xmmword [rsp + 0x70], xmm1
paddd xmm1, xmmword [rbp - 0x80]
paddd xmm1, xmm0
movdqa xmmword [rbp - 0x70], xmm0
movdqu xmm0, xmmword [rbp + 0xf8]
pmovsxdq xmm1, xmm1
pxor xmm1, xmm0
movdqa xmm0, xmmword [0x140581580]
paddd xmm0, xmm3
pslld xmm0, xmm4
movdqu xmmword [rbp + 0xf8], xmm1
movdqa xmm1, xmmword [rbp - 0x60]
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp - 0x40]
movsd xmm0, xmm5
movdqa xmmword [rbp - 0x60], xmm1
paddd xmm1, xmmword [rbp - 0x50]
paddd xmm1, xmm0
movdqa xmmword [rbp - 0x40], xmm0
movdqu xmm0, xmmword [rbp + 0x108]
pmovsxdq xmm1, xmm1
pxor xmm1, xmm0
movdqa xmm0, xmmword [0x1405815b0]
paddd xmm0, xmm3
pslld xmm0, xmm4
movdqu xmmword [rbp + 0x108], xmm1
movdqa xmm1, xmmword [rbp - 0x30]
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp - 0x10]
movsd xmm0, xmm5
movdqa xmmword [rbp - 0x30], xmm1
paddd xmm1, xmmword [rbp - 0x20]
paddd xmm1, xmm0
movdqa xmmword [rbp - 0x10], xmm0
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x118]
pmovsxdq xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0x10]
pxor xmm2, xmm1
movdqa xmm1, xmmword [0x1405815d0]
movdqu xmmword [rbp + 0x118], xmm2
movdqa xmm2, xmmword [rbp]
paddd xmm1, xmm3
pslld xmm1, xmm4
movsd xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x128]
paddd xmm2, xmm0
movdqa xmmword [rbp + 0x10], xmm0
movdqa xmm0, xmmword [rbp + 0x20]
movsd xmm0, xmm5
paddd xmm2, xmm0
movdqa xmmword [rbp + 0x20], xmm0
movq xmm0, xmm2
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [rbp + 0x128], xmm2
lea rcx, [rbp + 0xf8]
lea rcx, [rcx + rax*8]
lea eax, [r8 + 1]
shl eax, 4
add eax, edx
movsxd rdx, eax
mov eax, reloc.WS2_32.dll_ntohs
sub eax, r8d
mov r8d, eax
nop dword [rax]
xor qword [rcx], rdx
lea rcx, [rcx + 8]
add rdx, 0x10
sub r8, 1
jne 0x14019da80
mov rcx, qword [rbp + 0x148]
shr rcx, 0x38
mov r10, qword [rbp + 0xf0]
mov r9, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x100]
mov rcx, qword [rdi + rcx*8 + 0x533a50]
mov rdx, qword [rbp + 0x108]
mov r11, qword [rbp + 0x110]
movzx eax, r10b
xor rcx, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0xf9]
xor rcx, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x102]
xor rcx, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x10b]
xor rcx, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x114]
xor rcx, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x11d]
xor rcx, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x126]
xor rcx, qword [rdi + rax*8 + 0x535a50]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rbp + 0x150]
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [rdi + rcx*8 + 0x533a50]
xor rcx, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x101]
xor rcx, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x10a]
xor rcx, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x113]
xor rcx, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x11c]
xor rcx, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x125]
xor rcx, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x12e]
xor rcx, qword [rdi + rax*8 + 0x535a50]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x158]
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [rdi + rcx*8 + 0x533a50]
xor rcx, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x109]
xor rcx, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x112]
xor rcx, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x11b]
xor rcx, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x124]
xor rcx, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x12d]
xor rcx, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x136]
xor rcx, qword [rdi + rax*8 + 0x535a50]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x160]
shr rcx, 0x38
movzx eax, dl
mov rcx, qword [rdi + rcx*8 + 0x533a50]
xor rcx, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x111]
xor rcx, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x11a]
xor rcx, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x123]
xor rcx, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x12c]
xor rcx, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x135]
xor rcx, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x13e]
xor rcx, qword [rdi + rax*8 + 0x535a50]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x168]
shr rcx, 0x38
movzx eax, r11b
mov r13, qword [rdi + rcx*8 + 0x533a50]
xor r13, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x119]
mov rbx, qword [rbp + 0x118]
shr r10, 0x38
shr r9, 0x38
xor r13, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x122]
mov r12, qword [rdi + r10*8 + 0x533a50]
mov r15, qword [rdi + r9*8 + 0x533a50]
mov r10, qword [rbp + 0x120]
xor r13, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x12b]
mov r9, qword [rbp + 0x128]
shr r8, 0x38
shr rdx, 0x38
xor r13, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x134]
mov r14, qword [rdi + r8*8 + 0x533a50]
mov r8, qword [rbp + 0x130]
mov rsi, qword [rdi + rdx*8 + 0x533a50]
xor r13, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x13d]
xor r13, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x146]
xor r13, qword [rdi + rax*8 + 0x535a50]
movzx eax, bl
xor r12, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x121]
xor r12, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x12a]
xor r12, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x133]
xor r12, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x13c]
xor r12, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x145]
xor r12, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x14e]
xor r12, qword [rdi + rax*8 + 0x535a50]
movzx eax, r10b
xor r15, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x129]
xor r15, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x132]
xor r15, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x13b]
xor r15, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x144]
xor r15, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x14d]
xor r15, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x156]
xor r15, qword [rdi + rax*8 + 0x535a50]
movzx eax, r9b
xor r14, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x131]
xor r14, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x13a]
xor r14, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x143]
xor r14, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x14c]
xor r14, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x155]
xor r14, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x15e]
xor r14, qword [rdi + rax*8 + 0x535a50]
movzx eax, r8b
xor rsi, qword [rdi + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x139]
xor rsi, qword [rdi + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x142]
xor rsi, qword [rdi + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x14b]
xor rsi, qword [rdi + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x154]
xor rsi, qword [rdi + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x15d]
xor rsi, qword [rdi + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x166]
xor rsi, qword [rdi + rax*8 + 0x535a50]
mov rdx, qword [rbp + 0x138]
mov rcx, qword [rbp + 0x140]
shr r11, 0x38
shr r10, 0x38
shr r9, 0x38
movzx eax, dl
mov rdi, qword [rdi + r11*8 + 0x533a50]
lea r11, [0x140000000]
shr rbx, 0x38
shr r8, 0x38
xor rdi, qword [r11 + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x141]
xor rdi, qword [r11 + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x14a]
xor rdi, qword [r11 + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x153]
xor rdi, qword [r11 + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x15c]
xor rdi, qword [r11 + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x165]
xor rdi, qword [r11 + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x16e]
xor rdi, qword [r11 + rax*8 + 0x535a50]
mov r11, qword [r11 + rbx*8 + 0x533a50]
lea rbx, [0x140000000]
mov r10, qword [rbx + r10*8 + 0x533a50]
mov r9, qword [rbx + r9*8 + 0x533a50]
mov r8, qword [rbx + r8*8 + 0x533a50]
movzx eax, cl
xor r11, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x149]
xor r11, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x152]
xor r11, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x15b]
xor r11, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x164]
xor r11, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0xf6]
xor r11, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x16d]
xor r11, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x151]
xor r10, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x15a]
xor r10, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x163]
xor r10, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0xf5]
xor r10, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x16c]
xor r10, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0xfe]
xor r10, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x148]
xor r10, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x159]
xor r9, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x162]
xor r9, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0xf4]
xor r9, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x16b]
xor r9, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0xfd]
xor r9, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x106]
xor r9, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x150]
xor r9, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x161]
xor r8, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0xf3]
xor r8, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x16a]
xor r8, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0xfc]
xor r8, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x105]
xor r8, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x10e]
xor r8, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x158]
shr rdx, 0x38
shr rcx, 0x38
mov qword [rbp + 0x120], r15
xor r8, qword [rbx + rax*8 + 0x535250]
mov rdx, qword [rbx + rdx*8 + 0x533a50]
mov rcx, qword [rbx + rcx*8 + 0x533a50]
movzx eax, byte [rbp + 0xf2]
mov qword [rbp + 0x128], r14
mov qword [rbp + 0x130], rsi
mov qword [rbp + 0x138], rdi
xor rdx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x169]
mov qword [rbp + 0x140], r11
mov qword [rbp + 0x148], r10
mov qword [rbp + 0x150], r9
xor rdx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0xfb]
mov qword [rbp + 0x158], r8
xor rdx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x104]
xor rdx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x10d]
xor rdx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x116]
xor rdx, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x160]
xor rdx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0xf1]
mov qword [rbp + 0x160], rdx
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0xfa]
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x103]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x10c]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x115]
mov qword [rbp + 0x110], r13
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x11e]
mov qword [rbp + 0x118], r12
xor rcx, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x168]
xor rcx, qword [rbx + rax*8 + 0x535250]
cmp dword [0x1405c5110], 2
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0xf0], rax
mov rax, qword [rsp + 0x38]
mov qword [rbp + 0xf8], rax
mov rax, qword [rsp + 0x40]
mov qword [rbp + 0x100], rax
mov rax, qword [rsp + 0x48]
mov qword [rbp + 0x108], rax
mov qword [rbp + 0x168], rcx
jl 0x14019e4b1
movdqa xmm7, xmmword [0x140581550]
lea rax, [rbp + 0x100]
movdqa xmm8, xmmword [0x140581590]
mov edx, 4
movdqa xmm9, xmmword [rbp + 0x30]
movdqa xmm10, xmmword [rbp + 0x40]
movdqa xmm11, xmmword [rbp + 0x50]
movdqa xmm13, xmmword [rbp + 0x70]
movq qword [rbp + 0x80], xmm7
movdqa xmm14, xmmword [rbp + 0x80]
movq qword [rbp + 0x60], xmm7
movdqa xmm12, xmmword [rbp + 0x60]
movd xmm6, edx
nop dword [rax]
nop dword [rax + rax]
movdqa xmm3, xmmword [rbp + 0x90]
lea ecx, [rdx - 4]
movd xmm2, ecx
lea rax, [rax + 0x40]
pshufd xmm2, xmm2, 0
lea ecx, [rdx - 2]
movq xmm5, xmm8
movq xmm0, xmm6
paddd xmm2, xmm5
pslld xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0xa0]
movsd xmm3, xmm2
movsd xmm0, xmm7
movdqa xmmword [rbp + 0xa0], xmm0
movdqa xmmword [rbp + 0x90], xmm3
paddd xmm3, xmm10
paddd xmm3, xmm0
movd xmm2, ecx
movdqu xmm0, xmmword [rax - 0x50]
lea ecx, [rdx + 2]
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
pmovsxdq xmm1, xmm3
pxor xmm1, xmm0
movd xmm3, ecx
movdqu xmmword [rax - 0x50], xmm1
movdqa xmm1, xmmword [rbp + 0xb0]
movq xmm0, xmm6
pslld xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0xc0]
movsd xmm1, xmm2
pshufd xmm3, xmm3, 0
movdqa xmmword [rbp + 0xb0], xmm1
movsd xmm0, xmm7
paddd xmm1, xmm9
movdqa xmmword [rbp + 0xc0], xmm0
paddd xmm1, xmm0
movd xmm2, edx
movdqu xmm0, xmmword [rax - 0x40]
add edx, 8
pmovsxdq xmm1, xmm1
pxor xmm1, xmm0
pshufd xmm2, xmm2, 0
movdqu xmmword [rax - 0x40], xmm1
lea ecx, [rdx - 4]
paddd xmm2, xmm5
movq xmm0, xmm6
movdqa xmm1, xmm11
paddd xmm3, xmm5
pslld xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0xd0]
movsd xmm0, xmm2
movdqa xmmword [rbp + 0xd0], xmm0
paddd xmm1, xmm0
paddd xmm1, xmm12
movq xmm0, xmm1
movdqu xmm1, xmmword [rax - 0x30]
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movq xmm0, xmm6
movdqa xmm1, xmm13
movdqu xmmword [rax - 0x30], xmm2
pslld xmm3, xmm0
movdqa xmm0, xmmword [rbp + 0xe0]
movsd xmm0, xmm3
movdqa xmmword [rbp + 0xe0], xmm0
paddd xmm1, xmm0
paddd xmm1, xmm14
movq xmm0, xmm1
movdqu xmm1, xmmword [rax - 0x20]
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [rax - 0x20], xmm2
cmp ecx, 0x10
jl 0x14019e340
jmp 0x14019e4e1
mov rcx, qword [rsp + 0x28]
lea rax, [rbp + 0xf0]
inc rcx
mov edx, reloc.WS2_32.dll_recv
nop word [rax + rax]
xor qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x10
sub rdx, 1
jne 0x14019e4d0
mov rcx, qword [rbp + 0x148]
shr rcx, 0x38
mov r10, qword [rbp + 0xf0]
mov r9, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x100]
mov rcx, qword [rbx + rcx*8 + 0x533a50]
mov rdx, qword [rbp + 0x108]
mov r13, qword [rbp + 0x168]
mov r11, qword [rbp + 0x110]
movzx eax, r10b
xor rcx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0xf9]
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x102]
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x10b]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x114]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x11d]
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x126]
xor rcx, qword [rbx + rax*8 + 0x535a50]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x150]
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [rbx + rcx*8 + 0x533a50]
xor rcx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x101]
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x10a]
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x113]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x11c]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x125]
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x12e]
xor rcx, qword [rbx + rax*8 + 0x535a50]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x158]
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [rbx + rcx*8 + 0x533a50]
xor rcx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x109]
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x112]
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x11b]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x124]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x12d]
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x136]
xor rcx, qword [rbx + rax*8 + 0x535a50]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x160]
shr rcx, 0x38
movzx eax, dl
mov rcx, qword [rbx + rcx*8 + 0x533a50]
xor rcx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x111]
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x11a]
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x123]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x12c]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x135]
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x13e]
xor rcx, qword [rbx + rax*8 + 0x535a50]
mov qword [rsp + 0x30], rcx
mov rcx, r13
shr rcx, 0x38
movzx eax, r11b
mov rcx, qword [rbx + rcx*8 + 0x533a50]
xor rcx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x119]
shr r10, 0x38
shr r9, 0x38
shr r8, 0x38
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x122]
shr rdx, 0x38
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x12b]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x134]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x13d]
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x146]
xor rcx, qword [rbx + rax*8 + 0x535a50]
mov rbx, qword [rbp + 0x118]
movzx eax, bl
mov qword [rsp + 0x50], rcx
lea rcx, [0x140000000]
mov r12, qword [rcx + r10*8 + 0x533a50]
mov r15, qword [rcx + r9*8 + 0x533a50]
xor r12, qword [rcx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x121]
mov r10, qword [rbp + 0x120]
mov r14, qword [rcx + r8*8 + 0x533a50]
mov r9, qword [rbp + 0x128]
xor r12, qword [rcx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x12a]
mov r8, qword [rbp + 0x130]
mov rsi, qword [rcx + rdx*8 + 0x533a50]
xor r12, qword [rcx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x133]
xor r12, qword [rcx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x13c]
xor r12, qword [rcx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x145]
xor r12, qword [rcx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x14e]
xor r12, qword [rcx + rax*8 + 0x535a50]
movzx eax, r10b
xor r15, qword [rcx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x129]
xor r15, qword [rcx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x132]
xor r15, qword [rcx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x13b]
xor r15, qword [rcx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x144]
xor r15, qword [rcx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x14d]
xor r15, qword [rcx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x156]
xor r15, qword [rcx + rax*8 + 0x535a50]
movzx eax, r9b
xor r14, qword [rcx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x131]
xor r14, qword [rcx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x13a]
xor r14, qword [rcx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x143]
xor r14, qword [rcx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x14c]
xor r14, qword [rcx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x155]
xor r14, qword [rcx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x15e]
xor r14, qword [rcx + rax*8 + 0x535a50]
movzx eax, r8b
xor rsi, qword [rcx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x139]
xor rsi, qword [rcx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x142]
xor rsi, qword [rcx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x14b]
xor rsi, qword [rcx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x154]
xor rsi, qword [rcx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x15d]
xor rsi, qword [rcx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x166]
mov rdx, qword [rbp + 0x138]
shr r11, 0x38
shr r10, 0x38
xor rsi, qword [rcx + rax*8 + 0x535a50]
shr r9, 0x38
mov rdi, qword [rcx + r11*8 + 0x533a50]
lea r11, [0x140000000]
movzx eax, dl
shr rbx, 0x38
shr r8, 0x38
xor rdi, qword [rcx + rax*8 + 0x535250]
mov r11, qword [r11 + rbx*8 + 0x533a50]
lea rbx, [0x140000000]
mov r10, qword [rbx + r10*8 + 0x533a50]
mov r9, qword [rbx + r9*8 + 0x533a50]
movzx eax, byte [rbp + 0x141]
mov r8, qword [rbx + r8*8 + 0x533a50]
xor rdi, qword [rcx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x14a]
xor rdi, qword [rcx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x153]
xor rdi, qword [rcx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x15c]
xor rdi, qword [rcx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x165]
xor rdi, qword [rcx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x16e]
xor rdi, qword [rcx + rax*8 + 0x535a50]
mov rcx, qword [rbp + 0x140]
movzx eax, cl
xor r11, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x149]
xor r11, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x152]
xor r11, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x15b]
xor r11, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x164]
xor r11, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0xf6]
xor r11, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x16d]
xor r11, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x151]
xor r10, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x15a]
xor r10, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x163]
xor r10, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0xf5]
xor r10, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x16c]
xor r10, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0xfe]
xor r10, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x148]
xor r10, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x159]
xor r9, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0x162]
xor r9, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0xf4]
xor r9, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x16b]
xor r9, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0xfd]
xor r9, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x106]
xor r9, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x150]
xor r9, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0x161]
xor r8, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0xf3]
xor r8, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x16a]
xor r8, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0xfc]
xor r8, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x105]
shr rdx, 0x38
shr rcx, 0x38
mov qword [rbp + 0x138], rdi
lea rdi, [0x140000000]
xor r8, qword [rbx + rax*8 + 0x536a50]
mov rdx, qword [rbx + rdx*8 + 0x533a50]
mov rcx, qword [rbx + rcx*8 + 0x533a50]
movzx eax, byte [rbp + 0x10e]
mov qword [rbp + 0x120], r15
mov qword [rbp + 0x128], r14
mov qword [rbp + 0x130], rsi
xor r8, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x158]
mov qword [rbp + 0x140], r11
mov qword [rbp + 0x148], r10
mov qword [rbp + 0x150], r9
xor r8, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0xf2]
mov qword [rbp + 0x158], r8
xor rdx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x169]
xor rdx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0xfb]
xor rdx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x104]
xor rdx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x10d]
xor rdx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x116]
xor rdx, qword [rbx + rax*8 + 0x535a50]
movzx eax, byte [rbp + 0x160]
xor rdx, qword [rbx + rax*8 + 0x535250]
movzx eax, byte [rbp + 0xf1]
mov qword [rbp + 0x160], rdx
mov edx, dword [rsp + 0x20]
add edx, 2
xor rcx, qword [rbx + rax*8 + 0x534a50]
movzx eax, byte [rbp + 0xfa]
mov dword [rsp + 0x20], edx
xor rcx, qword [rbx + rax*8 + 0x537250]
movzx eax, byte [rbp + 0x103]
xor rcx, qword [rbx + rax*8 + 0x534250]
movzx eax, byte [rbp + 0x10c]
xor rcx, qword [rbx + rax*8 + 0x536250]
movzx eax, byte [rbp + 0x115]
xor rcx, qword [rbx + rax*8 + 0x536a50]
movzx eax, byte [rbp + 0x11e]
mov qword [rbp + 0x118], r12
xor rcx, qword [rbx + rax*8 + 0x535a50]
movzx eax, r13b
xor rcx, qword [rbx + rax*8 + 0x535250]
mov rax, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
mov qword [rbp + 0xf8], rax
mov rax, qword [rsp + 0x38]
mov qword [rbp + 0x100], rax
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x108], rax
mov rax, qword [rsp + 0x50]
mov qword [rbp + 0x110], rax
mov rax, qword [rsp + 0x28]
add rax, 2
mov qword [rbp + 0x168], rcx
mov qword [rbp + 0xf0], rbx
mov ecx, 4
mov qword [rsp + 0x28], rax
cmp edx, 0xe
jl 0x14019d8b0
xor edx, edx
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0x170]
movdqu xmm1, xmmword [rbp + rax + 0xf0]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x170], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x180]
movdqu xmm1, xmmword [rbp + rax + 0x100]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x180], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x190]
movdqu xmm1, xmmword [rbp + rax + 0x110]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x190], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x1a0]
movdqu xmm1, xmmword [rbp + rax + 0x120]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x1a0], xmm1
add rax, 0x40
cmp rax, 0x80
jb 0x14019ed65
mov rax, qword [rbp + 0x1b0]
movabs rcx, 0x2000000000000
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x1b8]
mov qword [rbp + 0x1f8], rax
mov rax, qword [rbp + 0x1c0]
movups xmm0, xmmword [rbp + 0x1f0]
mov qword [rbp + 0x200], rax
mov rax, qword [rbp + 0x1c8]
mov qword [rbp + 0x208], rax
mov rax, qword [rbp + 0x1d0]
movups xmm1, xmmword [rbp + 0x200]
mov qword [rbp + 0x210], rax
mov rax, qword [rbp + 0x1d8]
mov qword [rbp + 0x218], rax
mov rax, qword [rbp + 0x1e0]
mov qword [rbp + 0x220], rax
mov rax, qword [rbp + 0x1e8]
mov qword [rbp + 0x228], rax
mov rax, qword [rsp + 0x58]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rbp + 0x210]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rbp + 0x220]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm1
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x80], rdx
mov qword [rax + 0x88], rdx
mov qword [rax + 0x90], rdx
mov qword [rax + 0x98], rdx
mov qword [rax + 0xa0], rdx
mov qword [rax + 0xa8], rdx
mov qword [rax + 0xb0], rdx
mov qword [rax + 0xb8], rdx
mov qword [rax + 0xc0], rdx
mov qword [rax + 0xc8], rdx
mov qword [rax + 0xd0], rdx
mov qword [rax + 0xd8], rdx
mov qword [rax + 0xe0], rdx
mov qword [rax + 0xe8], rdx
mov qword [rax + 0xf0], rdx
mov qword [rax + 0xf8], rdx
mov qword [rax + 0x100], rcx
mov qword [rax + 0x108], rdx
mov rcx, qword [rbp + 0x280]
xor rcx, rsp
call fcn.1403de160
lea r11, [rsp + 0x420]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret