Function at 0x140172140
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 - 0x338]
sub rsp, 0x400
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
mov rax, qword [0x14049e608]
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.140338240
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.14016ef10
movups xmm0, xmmword [rsi + 0x88]
xor edx, edx
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]
lea rsi, [0x140000000]
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 + 0x40], xmm0
cmp dword [0x14049e610], 2
movq qword [rbp + 0x60], xmm0
movq qword [rbp + 0x10], xmm0
movq qword [rbp - 0x20], xmm0
movq qword [rbp + 0x70], xmm0
movq qword [rbp + 0x80], xmm0
movq qword [rbp - 0x60], xmm0
movq qword [rbp - 0x80], xmm0
mov qword [rbp + 0xf0], rbx
jl 0x1401724d6
movdqa xmm1, xmmword [0x14045b620]
mov eax, 8
movdqa xmm3, xmmword [0x14045b5d0]
mov r8d, eax
movq qword [rbp - 0x70], xmm1
movdqa xmm0, xmm3
movq qword [rbp + 0x20], xmm1
movq qword [rbp - 0x10], xmm1
movq qword [rbp - 0x40], xmm1
movd xmm4, ecx
pslld xmm0, xmm4
movq qword [rsp + 0x70], xmm0
movdqa xmm0, xmmword [rsp + 0x70]
paddd xmm0, xmmword [rbp - 0x80]
paddd xmm0, xmmword [rbp - 0x70]
pmovsxdq xmm1, xmm0
movdqu xmm0, xmmword [rbp + 0xf8]
pxor xmm1, xmm0
movdqa xmm0, xmmword [0x14045b5c0]
movdqu xmmword [rbp + 0xf8], xmm1
movdqa xmm1, xmmword [rbp - 0x60]
paddd xmm0, xmm3
pslld xmm0, xmm4
movq qword [rbp - 0x50], xmm0
paddd xmm1, xmmword [rbp - 0x50]
paddd xmm1, xmmword [rbp - 0x40]
movdqu xmm0, xmmword [rbp + 0x108]
pmovsxdq xmm1, xmm1
pxor xmm1, xmm0
movdqa xmm0, xmmword [0x14045b5f0]
movdqu xmmword [rbp + 0x108], xmm1
paddd xmm0, xmm3
pslld xmm0, xmm4
movq qword [rbp - 0x30], xmm0
movdqa xmm1, xmmword [rbp - 0x30]
paddd xmm1, xmmword [rbp - 0x20]
paddd xmm1, xmmword [rbp - 0x10]
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x118]
pmovsxdq xmm2, xmm0
movdqa xmm0, xmmword [0x14045b610]
pxor xmm2, xmm1
paddd xmm0, xmm3
pslld xmm0, xmm4
movdqu xmmword [rbp + 0x118], xmm2
movq qword [rbp], xmm0
movdqa xmm1, xmmword [rbp]
paddd xmm1, xmmword [rbp + 0x10]
paddd xmm1, xmmword [rbp + 0x20]
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x128]
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 + rax]
xor qword [rcx], rdx
lea rcx, [rcx + 8]
add rdx, 0x10
sub r8, 1
jne 0x140172500
movzx eax, byte [rbp + 0xf9]
mov rcx, qword [rbp + 0x148]
shr rcx, 0x38
mov rdx, qword [rbp + 0xf0]
mov r9, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x100]
mov rcx, qword [rsi + rcx*8 + 0x415f30]
xor rcx, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x102]
mov rdi, qword [rbp + 0x108]
mov r11, qword [rbp + 0x110]
xor rcx, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x10b]
xor rcx, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x114]
xor rcx, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x11d]
xor rcx, qword [rsi + rax*8 + 0x414f30]
movzx eax, dl
xor rcx, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x126]
xor rcx, qword [rsi + rax*8 + 0x413f30]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rbp + 0x150]
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [rsi + rcx*8 + 0x415f30]
xor rcx, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x101]
xor rcx, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x10a]
xor rcx, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x113]
xor rcx, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x11c]
xor rcx, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x125]
xor rcx, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x12e]
xor rcx, qword [rsi + rax*8 + 0x413f30]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x158]
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [rsi + rcx*8 + 0x415f30]
xor rcx, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x109]
xor rcx, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x112]
xor rcx, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x11b]
xor rcx, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x124]
xor rcx, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x12d]
xor rcx, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x136]
xor rcx, qword [rsi + rax*8 + 0x413f30]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x160]
shr rcx, 0x38
movzx eax, dil
mov rcx, qword [rsi + rcx*8 + 0x415f30]
xor rcx, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x111]
xor rcx, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x11a]
xor rcx, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x123]
xor rcx, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x12c]
xor rcx, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x135]
xor rcx, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x13e]
xor rcx, qword [rsi + rax*8 + 0x413f30]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x168]
shr rcx, 0x38
movzx eax, r11b
mov r13, qword [rsi + rcx*8 + 0x415f30]
xor r13, qword [rsi + rax*8 + 0x413730]
lea rcx, [0x140000000]
movzx eax, byte [rbp + 0x119]
mov rbx, qword [rbp + 0x118]
mov r10, qword [rbp + 0x120]
shr rdx, 0x38
xor r13, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x122]
shr r9, 0x38
mov r12, qword [rsi + rdx*8 + 0x415f30]
shr r8, 0x38
xor r13, qword [rsi + rax*8 + 0x415730]
mov r15, qword [rsi + r9*8 + 0x415f30]
movzx eax, byte [rbp + 0x12b]
mov r14, qword [rsi + r8*8 + 0x415f30]
mov r9, qword [rbp + 0x128]
mov r8, qword [rbp + 0x130]
xor r13, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x134]
shr rdi, 0x38
xor r13, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x13d]
xor r13, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x146]
xor r13, qword [rsi + rax*8 + 0x413f30]
movzx eax, bl
xor r12, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x121]
xor r12, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x12a]
xor r12, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x133]
xor r12, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x13c]
xor r12, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x145]
xor r12, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x14e]
xor r12, qword [rsi + rax*8 + 0x413f30]
movzx eax, r10b
xor r15, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x129]
xor r15, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x132]
xor r15, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x13b]
xor r15, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x144]
xor r15, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x14d]
xor r15, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x156]
xor r15, qword [rsi + rax*8 + 0x413f30]
movzx eax, r9b
xor r14, qword [rsi + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x131]
xor r14, qword [rsi + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x13a]
xor r14, qword [rsi + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x143]
xor r14, qword [rsi + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x14c]
xor r14, qword [rsi + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x155]
xor r14, qword [rsi + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x15e]
xor r14, qword [rsi + rax*8 + 0x413f30]
mov rsi, qword [rsi + rdi*8 + 0x415f30]
movzx eax, r8b
xor rsi, qword [rcx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x139]
xor rsi, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x142]
xor rsi, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x14b]
xor rsi, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x154]
xor rsi, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x15d]
xor rsi, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x166]
xor rsi, qword [rcx + rax*8 + 0x413f30]
mov rdx, qword [rbp + 0x138]
shr r11, 0x38
shr r10, 0x38
shr r9, 0x38
movzx eax, dl
mov rdi, qword [rcx + r11*8 + 0x415f30]
lea r11, [0x140000000]
shr rbx, 0x38
shr r8, 0x38
xor rdi, qword [rcx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x141]
mov r11, qword [r11 + rbx*8 + 0x415f30]
lea rbx, [0x140000000]
mov r10, qword [rbx + r10*8 + 0x415f30]
mov r9, qword [rbx + r9*8 + 0x415f30]
xor rdi, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x14a]
mov r8, qword [rbx + r8*8 + 0x415f30]
xor rdi, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x153]
xor rdi, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x15c]
xor rdi, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x165]
xor rdi, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x16e]
xor rdi, qword [rcx + rax*8 + 0x413f30]
mov rcx, qword [rbp + 0x140]
movzx eax, cl
xor r11, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x149]
xor r11, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x152]
xor r11, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x15b]
xor r11, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x164]
xor r11, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0xf6]
xor r11, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x16d]
xor r11, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x151]
xor r10, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x15a]
xor r10, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x163]
xor r10, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0xf5]
xor r10, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x16c]
xor r10, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0xfe]
xor r10, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x148]
xor r10, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x159]
xor r9, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x162]
xor r9, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0xf4]
xor r9, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x16b]
xor r9, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0xfd]
xor r9, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x106]
xor r9, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x150]
xor r9, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x161]
xor r8, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0xf3]
xor r8, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x16a]
xor r8, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0xfc]
xor r8, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x105]
xor r8, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x10e]
shr rdx, 0x38
shr rcx, 0x38
mov qword [rbp + 0x120], r15
xor r8, qword [rbx + rax*8 + 0x413f30]
mov rdx, qword [rbx + rdx*8 + 0x415f30]
mov rcx, qword [rbx + rcx*8 + 0x415f30]
movzx eax, byte [rbp + 0x158]
mov qword [rbp + 0x128], r14
mov qword [rbp + 0x130], rsi
mov qword [rbp + 0x138], rdi
xor r8, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0xf2]
mov qword [rbp + 0x140], r11
mov qword [rbp + 0x148], r10
mov qword [rbp + 0x150], r9
xor rdx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x169]
mov qword [rbp + 0x158], r8
xor rdx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0xfb]
xor rdx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x104]
xor rdx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x10d]
xor rdx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x116]
xor rdx, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x160]
xor rdx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0xf1]
mov qword [rbp + 0x160], rdx
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0xfa]
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x103]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x10c]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x115]
mov qword [rbp + 0x110], r13
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x11e]
mov qword [rbp + 0x118], r12
xor rcx, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x168]
xor rcx, qword [rbx + rax*8 + 0x413730]
cmp dword [0x14049e610], 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 0x140172f07
movdqa xmm5, xmmword [0x14045b590]
lea rax, [rbp + 0x100]
movdqa xmm6, xmmword [0x14045b5d0]
mov edx, 4
movdqa xmm8, xmmword [rbp + 0x40]
movdqa xmm10, xmmword [rbp + 0x60]
movdqa xmm11, xmmword [rbp + 0x70]
movdqa xmm12, xmmword [rbp + 0x80]
movq qword [rbp + 0x30], xmm5
movdqa xmm7, xmmword [rbp + 0x30]
movq qword [rbp + 0x50], xmm5
movdqa xmm9, xmmword [rbp + 0x50]
movd xmm4, edx
nop word [rax + rax]
movq xmm3, xmm6
movq qword [rbp + 0xa0], xmm5
lea ecx, [rdx - 4]
movq qword [rbp + 0xc0], xmm5
movd xmm1, ecx
lea rax, [rax + 0x40]
pshufd xmm1, xmm1, 0
lea ecx, [rdx - 2]
paddd xmm1, xmm3
movd xmm2, ecx
pshufd xmm2, xmm2, 0
lea ecx, [rdx + 2]
paddd xmm2, xmm3
movq xmm0, xmm4
pslld xmm1, xmm0
movq qword [rbp + 0x90], xmm1
movdqa xmm0, xmmword [rbp + 0x90]
paddd xmm0, xmm12
paddd xmm0, xmmword [rbp + 0xa0]
pmovsxdq xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x50]
pxor xmm1, xmm0
movq xmm0, xmm4
pslld xmm2, xmm0
movdqu xmmword [rax - 0x50], xmm1
movq qword [rbp + 0xb0], xmm2
movdqa xmm0, xmmword [rbp + 0xb0]
paddd xmm0, xmm11
movd xmm2, edx
paddd xmm0, xmmword [rbp + 0xc0]
add edx, 8
pmovsxdq xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
pshufd xmm2, xmm2, 0
pxor xmm1, xmm0
paddd xmm2, xmm3
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm1, xmmword [rax - 0x30]
movq xmm0, xmm4
pslld xmm2, xmm0
movq qword [rbp + 0xd0], xmm2
movdqa xmm0, xmmword [rbp + 0xd0]
paddd xmm0, xmm10
paddd xmm0, xmm9
movq xmm0, xmm0
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movq xmm0, xmm4
movdqu xmmword [rax - 0x30], xmm2
movd xmm1, ecx
lea ecx, [rdx - 4]
pshufd xmm1, xmm1, 0
paddd xmm1, xmm3
pslld xmm1, xmm0
movq qword [rbp + 0xe0], xmm1
movdqa xmm0, xmmword [rbp + 0xe0]
paddd xmm0, xmm8
paddd xmm0, xmm7
movq xmm0, xmm0
movdqu xmm1, xmmword [rax - 0x20]
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [rax - 0x20], xmm2
cmp ecx, 0x10
jl 0x140172dc0
jmp 0x140172f31
mov rcx, qword [rsp + 0x28]
lea rax, [rbp + 0xf0]
inc rcx
mov edx, reloc.WS2_32.dll_recv
nop dword [rax + rax]
xor qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x10
sub rdx, 1
jne 0x140172f20
movzx eax, byte [rbp + 0xf9]
mov rcx, qword [rbp + 0x148]
shr rcx, 0x38
mov rdx, qword [rbp + 0xf0]
mov r9, qword [rbp + 0xf8]
mov r8, qword [rbp + 0x100]
mov rcx, qword [rbx + rcx*8 + 0x415f30]
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x102]
mov rdi, qword [rbp + 0x108]
mov r13, qword [rbp + 0x168]
mov r11, qword [rbp + 0x110]
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x10b]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x114]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x11d]
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, dl
xor rcx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x126]
xor rcx, qword [rbx + rax*8 + 0x413f30]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x150]
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [rbx + rcx*8 + 0x415f30]
xor rcx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x101]
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x10a]
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x113]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x11c]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x125]
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x12e]
xor rcx, qword [rbx + rax*8 + 0x413f30]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x158]
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [rbx + rcx*8 + 0x415f30]
xor rcx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x109]
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x112]
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x11b]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x124]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x12d]
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x136]
xor rcx, qword [rbx + rax*8 + 0x413f30]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x160]
shr rcx, 0x38
movzx eax, dil
mov rcx, qword [rbx + rcx*8 + 0x415f30]
xor rcx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x111]
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x11a]
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x123]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x12c]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x135]
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x13e]
xor rcx, qword [rbx + rax*8 + 0x413f30]
mov qword [rsp + 0x30], rcx
mov rcx, r13
shr rcx, 0x38
movzx eax, r11b
mov rcx, qword [rbx + rcx*8 + 0x415f30]
xor rcx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x119]
mov r10, qword [rbp + 0x120]
shr rdx, 0x38
shr r9, 0x38
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x122]
shr r8, 0x38
shr rdi, 0x38
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x12b]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x134]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x13d]
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x146]
xor rcx, qword [rbx + rax*8 + 0x413f30]
mov rbx, qword [rbp + 0x118]
movzx eax, bl
mov qword [rsp + 0x50], rcx
lea rcx, [0x140000000]
mov r12, qword [rcx + rdx*8 + 0x415f30]
mov r15, qword [rcx + r9*8 + 0x415f30]
xor r12, qword [rcx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x121]
mov r14, qword [rcx + r8*8 + 0x415f30]
mov r9, qword [rbp + 0x128]
mov r8, qword [rbp + 0x130]
xor r12, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x12a]
mov rsi, qword [rcx + rdi*8 + 0x415f30]
xor r12, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x133]
xor r12, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x13c]
xor r12, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x145]
xor r12, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x14e]
xor r12, qword [rcx + rax*8 + 0x413f30]
movzx eax, r10b
xor r15, qword [rcx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x129]
xor r15, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x132]
xor r15, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x13b]
xor r15, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x144]
xor r15, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x14d]
xor r15, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x156]
xor r15, qword [rcx + rax*8 + 0x413f30]
movzx eax, r9b
xor r14, qword [rcx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x131]
xor r14, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x13a]
xor r14, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x143]
xor r14, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x14c]
xor r14, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x155]
xor r14, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x15e]
xor r14, qword [rcx + rax*8 + 0x413f30]
movzx eax, r8b
xor rsi, qword [rcx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x139]
xor rsi, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x142]
xor rsi, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x14b]
xor rsi, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x154]
xor rsi, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x15d]
xor rsi, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x166]
mov rdx, qword [rbp + 0x138]
shr r11, 0x38
shr r10, 0x38
xor rsi, qword [rcx + rax*8 + 0x413f30]
shr r9, 0x38
mov rdi, qword [rcx + r11*8 + 0x415f30]
lea r11, [0x140000000]
movzx eax, dl
shr rbx, 0x38
shr r8, 0x38
xor rdi, qword [rcx + rax*8 + 0x413730]
mov r11, qword [r11 + rbx*8 + 0x415f30]
lea rbx, [0x140000000]
mov r10, qword [rbx + r10*8 + 0x415f30]
mov r9, qword [rbx + r9*8 + 0x415f30]
movzx eax, byte [rbp + 0x141]
mov r8, qword [rbx + r8*8 + 0x415f30]
xor rdi, qword [rcx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x14a]
xor rdi, qword [rcx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x153]
xor rdi, qword [rcx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x15c]
xor rdi, qword [rcx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x165]
xor rdi, qword [rcx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x16e]
xor rdi, qword [rcx + rax*8 + 0x413f30]
mov rcx, qword [rbp + 0x140]
movzx eax, cl
xor r11, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x149]
xor r11, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x152]
xor r11, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x15b]
xor r11, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x164]
xor r11, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0xf6]
xor r11, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x16d]
xor r11, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x151]
xor r10, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x15a]
xor r10, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x163]
xor r10, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0xf5]
xor r10, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x16c]
xor r10, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0xfe]
xor r10, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x148]
xor r10, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x159]
xor r9, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0x162]
xor r9, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0xf4]
xor r9, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x16b]
xor r9, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0xfd]
xor r9, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x106]
xor r9, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x150]
xor r9, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0x161]
xor r8, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0xf3]
xor r8, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x16a]
xor r8, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0xfc]
xor r8, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x105]
shr rdx, 0x38
shr rcx, 0x38
mov qword [rbp + 0x130], rsi
lea rsi, [0x140000000]
xor r8, qword [rbx + rax*8 + 0x414f30]
mov rdx, qword [rbx + rdx*8 + 0x415f30]
mov rcx, qword [rbx + rcx*8 + 0x415f30]
movzx eax, byte [rbp + 0x10e]
mov qword [rbp + 0x120], r15
mov qword [rbp + 0x128], r14
mov qword [rbp + 0x138], rdi
xor r8, qword [rbx + rax*8 + 0x413f30]
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 + 0x413730]
movzx eax, byte [rbp + 0xf2]
mov qword [rbp + 0x158], r8
xor rdx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x169]
xor rdx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0xfb]
xor rdx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x104]
xor rdx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x10d]
xor rdx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x116]
xor rdx, qword [rbx + rax*8 + 0x413f30]
movzx eax, byte [rbp + 0x160]
xor rdx, qword [rbx + rax*8 + 0x413730]
movzx eax, byte [rbp + 0xf1]
mov qword [rbp + 0x160], rdx
mov edx, dword [rsp + 0x20]
add edx, 2
xor rcx, qword [rbx + rax*8 + 0x412f30]
movzx eax, byte [rbp + 0xfa]
mov dword [rsp + 0x20], edx
xor rcx, qword [rbx + rax*8 + 0x415730]
movzx eax, byte [rbp + 0x103]
xor rcx, qword [rbx + rax*8 + 0x412730]
movzx eax, byte [rbp + 0x10c]
xor rcx, qword [rbx + rax*8 + 0x414730]
movzx eax, byte [rbp + 0x115]
xor rcx, qword [rbx + rax*8 + 0x414f30]
movzx eax, byte [rbp + 0x11e]
mov qword [rbp + 0x118], r12
xor rcx, qword [rbx + rax*8 + 0x413f30]
movzx eax, r13b
xor rcx, qword [rbx + rax*8 + 0x413730]
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 0x140172360
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 0x1401737b5
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.1403195b0
lea r11, [rsp + 0x400]
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]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret