Function at 0x180177630
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 - 0x3a8]
sub rsp, 0x470
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 [0x1804be628]
xor rax, rsp
mov qword [rbp + 0x2d0], rax
mov rbx, qword [rcx + 0x80]
mov rsi, rcx
mov qword [rbp - 0x48], rcx
mov eax, 0x100
sub rax, rbx
mov qword [rbp - 0x50], r9
mov edi, 0x80
mov byte [rbp + 0x240], 0x80
sub rdi, rbx
lea rcx, [rbp + 0x241]
cmp rbx, 0x78
cmovae rdi, rax
xor edx, edx
lea r8, [rdi - 9]
call fcn.180321c40
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 + 0x240]
mov qword [rbp + rdi + 0x238], rcx
mov rcx, rsi
call fcn.1801743d0
movups xmm0, xmmword [rsi + 0x88]
xor edx, edx
lea r11, [0x180000000]
movups xmm1, xmmword [rsi + 0x98]
xor eax, eax
mov dword [rsp + 0x20], edx
movups xmmword [rbp + 0x1c0], xmm0
movups xmm0, xmmword [rsi + 0xa8]
lea ecx, [rdx + 4]
mov qword [rsp + 0x28], rax
movups xmmword [rbp + 0x1d0], xmm1
movups xmm1, xmmword [rsi + 0xb8]
movups xmmword [rbp + 0x1e0], xmm0
movups xmm0, xmmword [rsi + 0xc8]
movups xmmword [rbp + 0x1f0], xmm1
movups xmm1, xmmword [rsi + 0xd8]
movups xmmword [rbp + 0x200], xmm0
movups xmm0, xmmword [rsi + 0xe8]
movups xmmword [rbp + 0x210], xmm1
movups xmm1, xmmword [rsi + 0xf8]
movups xmmword [rbp + 0x220], xmm0
movups xmm0, xmmword [rsi + 0x88]
movups xmmword [rbp + 0x230], xmm1
movups xmm1, xmmword [rsi + 0x98]
movups xmmword [rbp + 0x140], xmm0
movups xmm0, xmmword [rsi + 0xa8]
movups xmmword [rbp + 0x150], xmm1
movups xmm1, xmmword [rsi + 0xb8]
movups xmmword [rbp + 0x160], xmm0
movups xmm0, xmmword [rsi + 0xc8]
movups xmmword [rbp + 0x170], xmm1
movups xmm1, xmmword [rsi + 0xd8]
movups xmmword [rbp + 0x180], xmm0
movups xmm0, xmmword [rsi + 0xe8]
movups xmmword [rbp + 0x190], xmm1
movups xmm1, xmmword [rsi + 0xf8]
movups xmmword [rbp + 0x1a0], xmm0
movups xmmword [rbp + 0x1b0], xmm1
nop
xor qword [rbp + 0x140], rax
xor r8d, r8d
movd xmm0, edx
xor eax, eax
cmp dword [0x1804be630], 2
pshufd xmm0, xmm0, 0
movq qword [rbp + 0x80], xmm0
movq qword [rbp + 0xc0], xmm0
movq qword [rbp + 0x60], xmm0
movq qword [rbp + 0x20], xmm0
movq qword [rbp + 0xa0], xmm0
movq qword [rbp + 0xb0], xmm0
movq qword [rbp], xmm0
movq qword [rbp - 0x30], xmm0
jl 0x1801779fe
movdqa xmm3, xmmword [0x1804877e0]
mov eax, 8
movdqa xmm5, xmmword [0x180487830]
movdqa xmm0, xmm3
movdqa xmm1, xmmword [rbp - 0x40]
mov r8d, eax
movdqa xmm2, xmmword [0x180487800]
paddd xmm2, xmm3
movd xmm4, ecx
pslld xmm0, xmm4
pslld xmm2, xmm4
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp - 0x20]
movsd xmm0, xmm5
movdqa xmmword [rbp - 0x40], xmm1
paddd xmm1, xmmword [rbp - 0x30]
paddd xmm1, xmm0
movdqa xmmword [rbp - 0x20], xmm0
movdqu xmm0, xmmword [rbp + 0x148]
pmovsxdq xmm1, xmm1
pxor xmm1, xmm0
movdqa xmm0, xmmword [0x1804877d0]
paddd xmm0, xmm3
pslld xmm0, xmm4
movdqu xmmword [rbp + 0x148], xmm1
movdqa xmm1, xmmword [rbp - 0x10]
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0x10]
movsd xmm0, xmm5
movdqa xmmword [rbp - 0x10], xmm1
paddd xmm1, xmmword [rbp]
paddd xmm1, xmm0
movdqa xmmword [rbp + 0x10], xmm0
movdqu xmm0, xmmword [rbp + 0x158]
pmovsxdq xmm1, xmm1
pxor xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0x30]
movsd xmm0, xmm2
movdqu xmmword [rbp + 0x158], xmm1
movdqa xmm1, xmmword [rbp + 0x20]
paddd xmm1, xmm0
movdqa xmmword [rbp + 0x30], xmm0
movdqa xmm0, xmmword [rbp + 0x40]
movsd xmm0, xmm5
paddd xmm1, xmm0
movdqa xmmword [rbp + 0x40], xmm0
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x168]
pmovsxdq xmm2, xmm0
movdqa xmm0, xmmword [0x180487820]
pxor xmm2, xmm1
movdqa xmm1, xmmword [rbp + 0x50]
paddd xmm0, xmm3
pslld xmm0, xmm4
movdqu xmmword [rbp + 0x168], xmm2
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0x70]
movdqa xmmword [rbp + 0x50], xmm1
movsd xmm0, xmm5
paddd xmm1, xmmword [rbp + 0x60]
paddd xmm1, xmm0
movdqa xmmword [rbp + 0x70], xmm0
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x178]
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [rbp + 0x178], xmm2
lea rcx, [rbp + 0x148]
lea rcx, [rcx + rax*8]
lea eax, [r8 + 1]
shl eax, 4
add eax, edx
movsxd rdx, eax
mov eax, send
sub eax, r8d
mov r8d, eax
xor qword [rcx], rdx
lea rcx, [rcx + 8]
add rdx, 0x10
sub r8, 1
jne 0x180177a20
movzx eax, byte [rbp + 0x149]
mov rcx, qword [rbp + 0x198]
mov r8, qword [rbp + 0x140]
mov r13, qword [rbp + 0x1a0]
mov r10, qword [rbp + 0x148]
mov r12, qword [rbp + 0x1a8]
mov r9, qword [rbp + 0x150]
mov r15, qword [rbp + 0x1b0]
mov rsi, qword [rbp + 0x158]
mov r14, qword [rbp + 0x1b8]
shr rcx, 0x38
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r13
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x152]
shr rcx, 0x38
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x15b]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x164]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x16d]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, r8b
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x176]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x30], rdx
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r12
shr rcx, 0x38
movzx eax, r10b
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x151]
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x15a]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x163]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x16c]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x175]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x17e]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x38], rdx
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r15
movzx eax, r9b
shr rcx, 0x38
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x159]
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x162]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x16b]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x174]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x17d]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x186]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x40], rdx
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r14
movzx eax, sil
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x161]
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x16a]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x173]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x17c]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x185]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x18e]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x48], rdx
mov rbx, qword [rbp + 0x160]
mov rdi, qword [rbp + 0x168]
shr rcx, 0x38
movzx eax, bl
shr r8, 0x38
shr r10, 0x38
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x169]
mov rcx, qword [r11 + r8*8 + 0x4415f0]
shr r9, 0x38
shr rsi, 0x38
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x172]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x17b]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x184]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x18d]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x196]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, dil
mov qword [rsp + 0x50], rdx
lea rdx, [0x180000000]
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x171]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x17a]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x183]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x18c]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x195]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x19e]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
mov r11, qword [rbp + 0x170]
mov qword [rsp + 0x58], rcx
mov rcx, qword [rdx + r10*8 + 0x4415f0]
mov r10, qword [rbp + 0x178]
movzx eax, r11b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x179]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x182]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x18b]
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x194]
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x19d]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1a6]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rdx + r9*8 + 0x4415f0]
mov r9, qword [rbp + 0x180]
movzx eax, r10b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x181]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x18a]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x193]
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x19c]
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1a5]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1ae]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov qword [rsp + 0x68], rcx
mov rcx, qword [rdx + rsi*8 + 0x4415f0]
movzx eax, r9b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x189]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x192]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x19b]
mov r8, qword [rbp + 0x188]
shr rbx, 0x38
shr rdi, 0x38
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1a4]
shr r11, 0x38
shr r10, 0x38
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1ad]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1b6]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rdx + rbx*8 + 0x4415f0]
lea rbx, [0x180000000]
movzx eax, r8b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x191]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x19a]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1a3]
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1ac]
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1b5]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1be]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov rdx, qword [rbp + 0x190]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rbx + rdi*8 + 0x4415f0]
movzx eax, dl
xor rcx, qword [rbx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x199]
xor rcx, qword [rbx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x1a2]
xor rcx, qword [rbx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1ab]
xor rcx, qword [rbx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1b4]
xor rcx, qword [rbx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x146]
xor rcx, qword [rbx + rax*8 + 0x43e5f0]
movzx eax, byte [rbp + 0x1bd]
xor rcx, qword [rbx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1a1]
mov qword [rbp - 0x80], rcx
mov rcx, qword [rbx + r11*8 + 0x4415f0]
lea r11, [0x180000000]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x1aa]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1b3]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x145]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1bc]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x14e]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, byte [rbp + 0x198]
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x1a9]
mov qword [rbp - 0x78], rcx
mov rcx, qword [r11 + r10*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x1b2]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x144]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1bb]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x14d]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x156]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r13b
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x1b1]
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
mov qword [rbp - 0x70], rcx
shr r9, 0x38
shr r8, 0x38
shr rdx, 0x38
mov rcx, qword [r11 + r9*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x143]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1ba]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x14c]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x155]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x15e]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r12b
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x142]
mov qword [rbp - 0x68], rcx
mov rcx, qword [r11 + r8*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1b9]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x14b]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x154]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x15d]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x166]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r15b
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x141]
mov qword [rbp - 0x60], rcx
mov rcx, qword [r11 + rdx*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x14a]
movups xmmword [rbp + 0x140], xmm0
movups xmm0, xmmword [rsp + 0x50]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x153]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x15c]
movups xmmword [rbp + 0x150], xmm1
movups xmm1, xmmword [rsp + 0x60]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x165]
movups xmmword [rbp + 0x170], xmm1
movups xmm1, xmmword [rbp - 0x80]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x16e]
movups xmmword [rbp + 0x160], xmm0
movups xmm0, xmmword [rsp + 0x70]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r14b
movups xmmword [rbp + 0x180], xmm0
movups xmm0, xmmword [rbp - 0x70]
xor rcx, qword [r11 + rax*8 + 0x43edf0]
cmp dword [0x1804be630], 2
mov qword [rbp - 0x58], rcx
movups xmmword [rbp + 0x190], xmm1
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [rbp + 0x1b0], xmm1
movups xmmword [rbp + 0x1a0], xmm0
jl 0x18017846d
movdqa xmm7, xmmword [0x1804877a0]
lea rax, [rbp + 0x150]
movdqa xmm8, xmmword [0x1804877e0]
mov edx, 4
movdqa xmm9, xmmword [rbp + 0x80]
movdqa xmm11, xmmword [rbp + 0xa0]
movdqa xmm12, xmmword [rbp + 0xb0]
movdqa xmm13, xmmword [rbp + 0xc0]
movq qword [rbp + 0xd0], xmm7
movdqa xmm14, xmmword [rbp + 0xd0]
movq qword [rbp + 0x90], xmm7
movdqa xmm10, xmmword [rbp + 0x90]
movd xmm6, edx
nop
movdqa xmm3, xmmword [rbp + 0xe0]
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 + 0xf0]
movsd xmm0, xmm7
movsd xmm3, xmm2
movdqa xmmword [rbp + 0xf0], xmm0
movd xmm2, ecx
lea ecx, [rdx + 2]
pshufd xmm2, xmm2, 0
paddd xmm2, xmm5
movdqa xmmword [rbp + 0xe0], xmm3
paddd xmm3, xmm12
paddd xmm3, xmm0
movdqu xmm0, xmmword [rax - 0x50]
pmovsxdq xmm1, xmm3
pxor xmm1, xmm0
movq xmm0, xmm6
pslld xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0x110]
movdqu xmmword [rax - 0x50], xmm1
movdqa xmm1, xmmword [rbp + 0x100]
movsd xmm0, xmm7
movsd xmm1, xmm2
movdqa xmmword [rbp + 0x110], xmm0
movdqa xmmword [rbp + 0x100], xmm1
paddd xmm1, xmm11
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
paddd xmm2, xmm5
movq xmm0, xmm6
pslld xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0x120]
movdqa xmm1, xmm13
movsd xmm0, xmm2
paddd xmm1, xmm0
movdqa xmmword [rbp + 0x120], xmm0
paddd xmm1, xmm10
movq xmm0, xmm1
movdqu xmm1, xmmword [rax - 0x30]
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movq xmm0, xmm6
movdqu xmmword [rax - 0x30], xmm2
movd xmm1, ecx
lea ecx, [rdx - 4]
pshufd xmm1, xmm1, 0
paddd xmm1, xmm5
pslld xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0x130]
movsd xmm0, xmm1
movdqa xmmword [rbp + 0x130], xmm0
paddd xmm0, xmm9
paddd xmm0, xmm14
movq xmm0, xmm0
movdqu xmm1, xmmword [rax - 0x20]
pmovsxdq xmm2, xmm0
pxor xmm2, xmm1
movdqu xmmword [rax - 0x20], xmm2
cmp ecx, 0x10
jl 0x180178300
jmp 0x180178492
mov rcx, qword [rsp + 0x28]
lea rax, [rbp + 0x140]
inc rcx
mov edx, reloc.WS2_32.dll_recv
xor qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x10
sub rdx, 1
jne 0x180178481
movzx eax, byte [rbp + 0x149]
mov rcx, qword [rbp + 0x198]
mov r8, qword [rbp + 0x140]
mov r13, qword [rbp + 0x1a0]
mov r10, qword [rbp + 0x148]
mov r12, qword [rbp + 0x1a8]
mov r9, qword [rbp + 0x150]
mov r15, qword [rbp + 0x1b0]
mov rsi, qword [rbp + 0x158]
mov r14, qword [rbp + 0x1b8]
shr rcx, 0x38
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r13
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x152]
shr rcx, 0x38
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x15b]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x164]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x16d]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, r8b
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x176]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x30], rdx
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r12
shr rcx, 0x38
movzx eax, r10b
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x151]
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x15a]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x163]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x16c]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x175]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x17e]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x38], rdx
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r15
movzx eax, r9b
shr rcx, 0x38
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x159]
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x162]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x16b]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x174]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x17d]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x186]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x40], rdx
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
mov rcx, r14
movzx eax, sil
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x161]
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x16a]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x173]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x17c]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x185]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x18e]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
mov qword [rsp + 0x48], rdx
mov rbx, qword [rbp + 0x160]
mov rdi, qword [rbp + 0x168]
shr rcx, 0x38
movzx eax, bl
shr r8, 0x38
shr r10, 0x38
mov rdx, qword [r11 + rcx*8 + 0x4415f0]
xor rdx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x169]
mov rcx, qword [r11 + r8*8 + 0x4415f0]
shr r9, 0x38
shr rsi, 0x38
xor rdx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x172]
xor rdx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x17b]
xor rdx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x184]
xor rdx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x18d]
xor rdx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x196]
xor rdx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, dil
mov qword [rsp + 0x50], rdx
lea rdx, [0x180000000]
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x171]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x17a]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x183]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x18c]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x195]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x19e]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
mov r11, qword [rbp + 0x170]
mov qword [rsp + 0x58], rcx
mov rcx, qword [rdx + r10*8 + 0x4415f0]
mov r10, qword [rbp + 0x178]
movzx eax, r11b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x179]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x182]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x18b]
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x194]
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x19d]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1a6]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov qword [rsp + 0x60], rcx
mov rcx, qword [rdx + r9*8 + 0x4415f0]
mov r9, qword [rbp + 0x180]
movzx eax, r10b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x181]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x18a]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x193]
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x19c]
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1a5]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1ae]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov qword [rsp + 0x68], rcx
mov rcx, qword [rdx + rsi*8 + 0x4415f0]
movzx eax, r9b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x189]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x192]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x19b]
mov r8, qword [rbp + 0x188]
shr rbx, 0x38
shr rdi, 0x38
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1a4]
shr r11, 0x38
shr r10, 0x38
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1ad]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1b6]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rdx + rbx*8 + 0x4415f0]
lea rbx, [0x180000000]
movzx eax, r8b
xor rcx, qword [rdx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x191]
xor rcx, qword [rdx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x19a]
xor rcx, qword [rdx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1a3]
xor rcx, qword [rdx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1ac]
xor rcx, qword [rdx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1b5]
xor rcx, qword [rdx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1be]
xor rcx, qword [rdx + rax*8 + 0x43e5f0]
mov rdx, qword [rbp + 0x190]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rbx + rdi*8 + 0x4415f0]
movzx eax, dl
xor rcx, qword [rbx + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x199]
xor rcx, qword [rbx + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x1a2]
xor rcx, qword [rbx + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1ab]
xor rcx, qword [rbx + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1b4]
xor rcx, qword [rbx + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x146]
xor rcx, qword [rbx + rax*8 + 0x43e5f0]
movzx eax, byte [rbp + 0x1bd]
xor rcx, qword [rbx + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1a1]
mov qword [rbp - 0x80], rcx
mov rcx, qword [rbx + r11*8 + 0x4415f0]
lea r11, [0x180000000]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x1aa]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1b3]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x145]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x1bc]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x14e]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, byte [rbp + 0x198]
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x1a9]
mov qword [rbp - 0x78], rcx
mov rcx, qword [r11 + r10*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x1b2]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x144]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x1bb]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x14d]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x156]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r13b
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x1b1]
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
mov qword [rbp - 0x70], rcx
shr r9, 0x38
shr rdx, 0x38
shr r8, 0x38
mov rcx, qword [r11 + r9*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x143]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x1ba]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x14c]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x155]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x15e]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r12b
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x142]
mov qword [rbp - 0x68], rcx
mov rcx, qword [r11 + r8*8 + 0x4415f0]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x1b9]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
movzx eax, byte [rbp + 0x14b]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x154]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x15d]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x166]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r15b
xor rcx, qword [r11 + rax*8 + 0x43edf0]
movzx eax, byte [rbp + 0x141]
mov qword [rbp - 0x60], rcx
mov rcx, qword [r11 + rdx*8 + 0x4415f0]
mov edx, dword [rsp + 0x20]
xor rcx, qword [r11 + rax*8 + 0x43ddf0]
add edx, 2
movzx eax, byte [rbp + 0x14a]
movups xmmword [rbp + 0x140], xmm0
mov dword [rsp + 0x20], edx
movups xmm0, xmmword [rsp + 0x50]
xor rcx, qword [r11 + rax*8 + 0x43fdf0]
movzx eax, byte [rbp + 0x153]
xor rcx, qword [r11 + rax*8 + 0x440df0]
movzx eax, byte [rbp + 0x15c]
movups xmmword [rbp + 0x150], xmm1
movups xmm1, xmmword [rsp + 0x60]
xor rcx, qword [r11 + rax*8 + 0x43f5f0]
movzx eax, byte [rbp + 0x165]
movups xmmword [rbp + 0x170], xmm1
movups xmm1, xmmword [rbp - 0x80]
xor rcx, qword [r11 + rax*8 + 0x4405f0]
movzx eax, byte [rbp + 0x16e]
movups xmmword [rbp + 0x160], xmm0
movups xmm0, xmmword [rsp + 0x70]
xor rcx, qword [r11 + rax*8 + 0x43e5f0]
movzx eax, r14b
movups xmmword [rbp + 0x180], xmm0
movups xmm0, xmmword [rbp - 0x70]
xor rcx, qword [r11 + rax*8 + 0x43edf0]
mov rax, qword [rsp + 0x28]
add rax, 2
mov qword [rbp - 0x58], rcx
mov qword [rsp + 0x28], rax
mov ecx, 4
movups xmmword [rbp + 0x190], xmm1
movups xmm1, xmmword [rbp - 0x60]
movups xmmword [rbp + 0x1a0], xmm0
movups xmmword [rbp + 0x1b0], xmm1
cmp edx, 0xe
jl 0x180177850
xor edx, edx
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0x1c0]
movdqu xmm1, xmmword [rbp + rax + 0x140]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x1c0], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x1d0]
movdqu xmm1, xmmword [rbp + rax + 0x150]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x1d0], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x1e0]
movdqu xmm1, xmmword [rbp + rax + 0x160]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x1e0], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x1f0]
movdqu xmm1, xmmword [rbp + rax + 0x170]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x1f0], xmm1
add rax, 0x40
cmp rax, 0x80
jb 0x180178d16
mov rax, qword [rbp + 0x200]
movabs rcx, 0x2000000000000
mov qword [rbp + 0x240], rax
mov rax, qword [rbp + 0x208]
mov qword [rbp + 0x248], rax
mov rax, qword [rbp + 0x210]
movups xmm0, xmmword [rbp + 0x240]
mov qword [rbp + 0x250], rax
mov rax, qword [rbp + 0x218]
mov qword [rbp + 0x258], rax
mov rax, qword [rbp + 0x220]
movups xmm1, xmmword [rbp + 0x250]
mov qword [rbp + 0x260], rax
mov rax, qword [rbp + 0x228]
mov qword [rbp + 0x268], rax
mov rax, qword [rbp + 0x230]
mov qword [rbp + 0x270], rax
mov rax, qword [rbp + 0x238]
mov qword [rbp + 0x278], rax
mov rax, qword [rbp - 0x50]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rbp + 0x260]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rbp + 0x270]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm1
mov rax, qword [rbp - 0x48]
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 + 0x2d0]
xor rcx, rsp
call fcn.18031edb0
lea r11, [rsp + 0x470]
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