Function at 0x14016d330
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 [0x140297200]
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.140205130
cmp rbx, 0x78
lea rdx, [rbp + 0x1f0]
mov r8, rdi
mov rcx, rsi
sbb rax, rax
add rax, 2
add rax, qword [rsi + 0x108]
bswap rax
mov qword [rbp + rdi + 0x1e8], rax
call fcn.14016a160
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]
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]
mov rbx, qword [rbp + 0xf0]
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
nop word [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 [0x140297250], 2
movq qword [rbp + 0x50], xmm0
movq qword [rbp + 0x10], xmm0
movq qword [rbp - 0x30], 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 0x14016d6a3
movdqa xmm3, xmmword [0x140277070]
mov eax, 8
movdqa xmm4, xmmword [0x1402770c0]
movdqa xmm0, xmm3
movdqa xmm1, xmmword [rsp + 0x70]
mov r8d, eax
movdqa xmm2, xmmword [0x140277090]
pslld xmm0, 4
paddd xmm2, xmm3
movsd xmm1, xmm0
pslld xmm2, 4
movdqa xmm0, xmmword [rbp - 0x70]
movsd xmm0, xmm4
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
xorps xmm1, xmm0
movdqa xmm0, xmmword [0x140277060]
paddd xmm0, xmm3
movdqu xmmword [rbp + 0xf8], xmm1
movdqa xmm1, xmmword [rbp - 0x60]
pslld xmm0, 4
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp - 0x40]
movsd xmm0, xmm4
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
xorps xmm1, xmm0
movdqa xmm0, xmmword [rbp - 0x20]
movsd xmm0, xmm2
movdqu xmmword [rbp + 0x108], xmm1
movdqa xmm1, xmmword [rbp - 0x30]
paddd xmm1, xmm0
movdqa xmmword [rbp - 0x20], xmm0
movdqa xmm0, xmmword [rbp - 0x10]
movsd xmm0, xmm4
paddd xmm1, xmm0
movdqa xmmword [rbp - 0x10], xmm0
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x118]
pmovsxdq xmm2, xmm0
movdqa xmm0, xmmword [0x1402770b0]
xorps xmm2, xmm1
movdqa xmm1, xmmword [rbp]
paddd xmm0, xmm3
pslld xmm0, 4
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0x20]
movdqa xmmword [rbp], xmm1
movsd xmm0, xmm4
paddd xmm1, xmmword [rbp + 0x10]
paddd xmm1, xmm0
movdqa xmmword [rbp + 0x20], xmm0
movq xmm0, xmm1
movdqu xmm1, xmmword [rbp + 0x128]
movdqu xmmword [rbp + 0x118], xmm2
pmovsxdq xmm2, xmm0
xorps 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 word [rax + rax]
xor qword [rcx], rdx
lea rcx, [rcx + 8]
add rdx, 0x10
sub r8, 1
jne 0x14016d6d0
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 + 0x22dc50]
xor rcx, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x102]
mov rdi, qword [rbp + 0x108]
mov r11, qword [rbp + 0x110]
xor rcx, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x10b]
xor rcx, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x114]
xor rcx, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x11d]
xor rcx, qword [rsi + rax*8 + 0x230450]
movzx eax, dl
xor rcx, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x126]
xor rcx, qword [rsi + rax*8 + 0x22e450]
mov qword [rsp + 0x30], rcx
mov rcx, qword [rbp + 0x150]
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [rsi + rcx*8 + 0x22dc50]
xor rcx, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x101]
xor rcx, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x10a]
xor rcx, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x113]
xor rcx, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x11c]
xor rcx, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x125]
xor rcx, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x12e]
xor rcx, qword [rsi + rax*8 + 0x22e450]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x158]
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [rsi + rcx*8 + 0x22dc50]
xor rcx, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x109]
xor rcx, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x112]
xor rcx, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x11b]
xor rcx, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x124]
xor rcx, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x12d]
xor rcx, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x136]
xor rcx, qword [rsi + rax*8 + 0x22e450]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x160]
shr rcx, 0x38
movzx eax, dil
mov rcx, qword [rsi + rcx*8 + 0x22dc50]
xor rcx, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x111]
xor rcx, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x11a]
xor rcx, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x123]
xor rcx, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x12c]
xor rcx, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x135]
xor rcx, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x13e]
xor rcx, qword [rsi + rax*8 + 0x22e450]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x168]
shr rcx, 0x38
movzx eax, r11b
mov r13, qword [rsi + rcx*8 + 0x22dc50]
xor r13, qword [rsi + rax*8 + 0x22ec50]
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 + 0x22f450]
movzx eax, byte [rbp + 0x122]
shr r9, 0x38
mov r12, qword [rsi + rdx*8 + 0x22dc50]
shr r8, 0x38
xor r13, qword [rsi + rax*8 + 0x22fc50]
mov r15, qword [rsi + r9*8 + 0x22dc50]
movzx eax, byte [rbp + 0x12b]
mov r14, qword [rsi + r8*8 + 0x22dc50]
mov r9, qword [rbp + 0x128]
mov r8, qword [rbp + 0x130]
xor r13, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x134]
shr rdi, 0x38
xor r13, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x13d]
xor r13, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x146]
xor r13, qword [rsi + rax*8 + 0x22e450]
movzx eax, bl
xor r12, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x121]
xor r12, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x12a]
xor r12, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x133]
xor r12, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x13c]
xor r12, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x145]
xor r12, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x14e]
xor r12, qword [rsi + rax*8 + 0x22e450]
movzx eax, r10b
xor r15, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x129]
xor r15, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x132]
xor r15, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x13b]
xor r15, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x144]
xor r15, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x14d]
xor r15, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x156]
xor r15, qword [rsi + rax*8 + 0x22e450]
movzx eax, r9b
xor r14, qword [rsi + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x131]
xor r14, qword [rsi + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x13a]
xor r14, qword [rsi + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x143]
xor r14, qword [rsi + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x14c]
xor r14, qword [rsi + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x155]
xor r14, qword [rsi + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x15e]
xor r14, qword [rsi + rax*8 + 0x22e450]
mov rsi, qword [rsi + rdi*8 + 0x22dc50]
movzx eax, r8b
xor rsi, qword [rcx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x139]
xor rsi, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x142]
xor rsi, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x14b]
xor rsi, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x154]
xor rsi, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x15d]
xor rsi, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x166]
xor rsi, qword [rcx + rax*8 + 0x22e450]
mov rdx, qword [rbp + 0x138]
shr r11, 0x38
shr r10, 0x38
shr r9, 0x38
movzx eax, dl
mov rdi, qword [rcx + r11*8 + 0x22dc50]
lea r11, [0x140000000]
shr rbx, 0x38
shr r8, 0x38
xor rdi, qword [rcx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x141]
mov r11, qword [r11 + rbx*8 + 0x22dc50]
lea rbx, [0x140000000]
mov r10, qword [rbx + r10*8 + 0x22dc50]
mov r9, qword [rbx + r9*8 + 0x22dc50]
xor rdi, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x14a]
mov r8, qword [rbx + r8*8 + 0x22dc50]
xor rdi, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x153]
xor rdi, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x15c]
xor rdi, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x165]
xor rdi, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x16e]
xor rdi, qword [rcx + rax*8 + 0x22e450]
mov rcx, qword [rbp + 0x140]
movzx eax, cl
xor r11, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x149]
xor r11, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x152]
xor r11, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x15b]
xor r11, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x164]
xor r11, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0xf6]
xor r11, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x16d]
xor r11, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x151]
xor r10, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x15a]
xor r10, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x163]
xor r10, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0xf5]
xor r10, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x16c]
xor r10, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0xfe]
xor r10, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x148]
xor r10, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x159]
xor r9, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x162]
xor r9, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0xf4]
xor r9, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x16b]
xor r9, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0xfd]
xor r9, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x106]
xor r9, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x150]
xor r9, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x161]
xor r8, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0xf3]
xor r8, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x16a]
xor r8, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0xfc]
xor r8, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x105]
xor r8, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x10e]
shr rdx, 0x38
shr rcx, 0x38
mov qword [rbp + 0x120], r15
xor r8, qword [rbx + rax*8 + 0x22e450]
mov rdx, qword [rbx + rdx*8 + 0x22dc50]
mov rcx, qword [rbx + rcx*8 + 0x22dc50]
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 + 0x22ec50]
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 + 0x22fc50]
movzx eax, byte [rbp + 0x169]
mov qword [rbp + 0x158], r8
xor rdx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0xfb]
xor rdx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x104]
xor rdx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x10d]
xor rdx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x116]
xor rdx, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x160]
xor rdx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0xf1]
mov qword [rbp + 0x160], rdx
xor rcx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0xfa]
xor rcx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x103]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x10c]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x115]
mov qword [rbp + 0x110], r13
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x11e]
mov qword [rbp + 0x118], r12
xor rcx, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x168]
xor rcx, qword [rbx + rax*8 + 0x22ec50]
cmp dword [0x140297250], 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 0x14016e0f3
movdqa xmm5, xmmword [0x140277030]
lea rax, [rbp + 0x100]
movdqa xmm6, xmmword [0x140277070]
mov edx, 4
movdqa xmm7, xmmword [rbp + 0x30]
movdqa xmm8, xmmword [rbp + 0x40]
movdqa xmm9, xmmword [rbp + 0x50]
movdqa xmm11, xmmword [rbp + 0x70]
movq qword [rbp + 0x80], xmm5
movdqa xmm12, xmmword [rbp + 0x80]
movq qword [rbp + 0x60], xmm5
movdqa xmm10, xmmword [rbp + 0x60]
nop word [rax + rax]
movdqa xmm2, xmmword [rbp + 0x90]
lea ecx, [rdx - 4]
movd xmm0, ecx
lea rax, [rax + 0x40]
pshufd xmm0, xmm0, 0
lea ecx, [rdx - 2]
movq xmm4, xmm6
movq xmm1, xmm5
paddd xmm0, xmm4
movq xmm3, xmm5
pslld xmm0, 4
movsd xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0xa0]
movsd xmm0, xmm1
movdqa xmmword [rbp + 0x90], xmm2
movdqa xmmword [rbp + 0xa0], xmm0
paddd xmm2, xmm8
paddd xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x50]
pmovsxdq xmm1, xmm2
xorps xmm1, xmm0
movd xmm0, ecx
movdqu xmmword [rax - 0x50], xmm1
lea ecx, [rdx + 2]
movdqa xmm1, xmmword [rbp + 0xb0]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm4
pslld xmm0, 4
movsd xmm1, xmm0
movdqa xmm0, xmmword [rbp + 0xc0]
movdqa xmmword [rbp + 0xb0], xmm1
movsd xmm0, xmm3
paddd xmm1, xmm7
movdqa xmmword [rbp + 0xc0], xmm0
paddd xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
pmovsxdq xmm1, xmm1
xorps xmm1, xmm0
movd xmm0, edx
movdqu xmmword [rax - 0x40], xmm1
add edx, 8
movdqa xmm1, xmmword [rbp + 0xd0]
pshufd xmm0, xmm0, 0
paddd xmm0, xmm4
pslld xmm0, 4
movsd xmm1, xmm0
movdqa xmmword [rbp + 0xd0], xmm1
paddd xmm1, xmm9
paddd xmm1, xmm10
movq xmm0, xmm1
movdqu xmm1, xmmword [rax - 0x30]
pmovsxdq xmm2, xmm0
movdqa xmm0, xmmword [rbp + 0xe0]
xorps xmm2, xmm1
movdqu xmmword [rax - 0x30], xmm2
movd xmm1, ecx
movdqa xmm2, xmm11
pshufd xmm1, xmm1, 0
lea ecx, [rdx - 4]
paddd xmm1, xmm4
pslld xmm1, 4
movsd xmm0, xmm1
movdqa xmmword [rbp + 0xe0], xmm0
paddd xmm2, xmm0
paddd xmm2, xmm12
movq xmm0, xmm2
movdqu xmm1, xmmword [rax - 0x20]
pmovsxdq xmm2, xmm0
xorps xmm2, xmm1
movdqu xmmword [rax - 0x20], xmm2
cmp ecx, 0x10
jl 0x14016df90
jmp 0x14016e121
mov rcx, qword [rsp + 0x28]
lea rax, [rbp + 0xf0]
inc rcx
mov edx, 0x10
nop word [rax + rax]
xor qword [rax], rcx
lea rax, [rax + 8]
add rcx, 0x10
sub rdx, 1
jne 0x14016e110
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 + 0x22dc50]
xor rcx, qword [rbx + rax*8 + 0x22f450]
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 + 0x22fc50]
movzx eax, byte [rbp + 0x10b]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x114]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x11d]
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, dl
xor rcx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x126]
xor rcx, qword [rbx + rax*8 + 0x22e450]
mov qword [rsp + 0x48], rcx
mov rcx, qword [rbp + 0x150]
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [rbx + rcx*8 + 0x22dc50]
xor rcx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x101]
xor rcx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x10a]
xor rcx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x113]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x11c]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x125]
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x12e]
xor rcx, qword [rbx + rax*8 + 0x22e450]
mov qword [rsp + 0x40], rcx
mov rcx, qword [rbp + 0x158]
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [rbx + rcx*8 + 0x22dc50]
xor rcx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x109]
xor rcx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x112]
xor rcx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x11b]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x124]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x12d]
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x136]
xor rcx, qword [rbx + rax*8 + 0x22e450]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rbp + 0x160]
shr rcx, 0x38
movzx eax, dil
mov rcx, qword [rbx + rcx*8 + 0x22dc50]
xor rcx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x111]
xor rcx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x11a]
xor rcx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x123]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x12c]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x135]
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x13e]
xor rcx, qword [rbx + rax*8 + 0x22e450]
mov qword [rsp + 0x30], rcx
mov rcx, r13
shr rcx, 0x38
movzx eax, r11b
mov rcx, qword [rbx + rcx*8 + 0x22dc50]
xor rcx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x119]
mov r10, qword [rbp + 0x120]
shr rdx, 0x38
shr r9, 0x38
xor rcx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x122]
shr r8, 0x38
shr rdi, 0x38
xor rcx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x12b]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x134]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x13d]
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x146]
xor rcx, qword [rbx + rax*8 + 0x22e450]
mov rbx, qword [rbp + 0x118]
movzx eax, bl
mov qword [rsp + 0x50], rcx
lea rcx, [0x140000000]
mov r12, qword [rcx + rdx*8 + 0x22dc50]
mov r15, qword [rcx + r9*8 + 0x22dc50]
xor r12, qword [rcx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x121]
mov r14, qword [rcx + r8*8 + 0x22dc50]
mov r9, qword [rbp + 0x128]
mov r8, qword [rbp + 0x130]
xor r12, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x12a]
mov rsi, qword [rcx + rdi*8 + 0x22dc50]
xor r12, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x133]
xor r12, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x13c]
xor r12, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x145]
xor r12, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x14e]
xor r12, qword [rcx + rax*8 + 0x22e450]
movzx eax, r10b
xor r15, qword [rcx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x129]
xor r15, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x132]
xor r15, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x13b]
xor r15, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x144]
xor r15, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x14d]
xor r15, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x156]
xor r15, qword [rcx + rax*8 + 0x22e450]
movzx eax, r9b
xor r14, qword [rcx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x131]
xor r14, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x13a]
xor r14, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x143]
xor r14, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x14c]
xor r14, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x155]
xor r14, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x15e]
xor r14, qword [rcx + rax*8 + 0x22e450]
movzx eax, r8b
xor rsi, qword [rcx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x139]
xor rsi, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x142]
xor rsi, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x14b]
xor rsi, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x154]
xor rsi, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x15d]
xor rsi, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x166]
mov rdx, qword [rbp + 0x138]
shr r11, 0x38
shr r10, 0x38
xor rsi, qword [rcx + rax*8 + 0x22e450]
shr r9, 0x38
mov rdi, qword [rcx + r11*8 + 0x22dc50]
lea r11, [0x140000000]
movzx eax, dl
shr rbx, 0x38
shr r8, 0x38
xor rdi, qword [rcx + rax*8 + 0x22ec50]
mov r11, qword [r11 + rbx*8 + 0x22dc50]
lea rbx, [0x140000000]
mov r10, qword [rbx + r10*8 + 0x22dc50]
mov r9, qword [rbx + r9*8 + 0x22dc50]
movzx eax, byte [rbp + 0x141]
mov r8, qword [rbx + r8*8 + 0x22dc50]
xor rdi, qword [rcx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x14a]
xor rdi, qword [rcx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x153]
xor rdi, qword [rcx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x15c]
xor rdi, qword [rcx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x165]
xor rdi, qword [rcx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x16e]
xor rdi, qword [rcx + rax*8 + 0x22e450]
mov rcx, qword [rbp + 0x140]
movzx eax, cl
xor r11, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x149]
xor r11, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x152]
xor r11, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x15b]
xor r11, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x164]
xor r11, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0xf6]
xor r11, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x16d]
xor r11, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x151]
xor r10, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x15a]
xor r10, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x163]
xor r10, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0xf5]
xor r10, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x16c]
xor r10, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0xfe]
xor r10, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x148]
xor r10, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x159]
xor r9, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0x162]
xor r9, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0xf4]
xor r9, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x16b]
xor r9, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0xfd]
xor r9, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x106]
xor r9, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x150]
xor r9, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0x161]
xor r8, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0xf3]
xor r8, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x16a]
xor r8, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0xfc]
xor r8, qword [rbx + rax*8 + 0x230c50]
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 + 0x230450]
mov rdx, qword [rbx + rdx*8 + 0x22dc50]
mov rcx, qword [rbx + rcx*8 + 0x22dc50]
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 + 0x22e450]
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 + 0x22ec50]
movzx eax, byte [rbp + 0xf2]
mov qword [rbp + 0x158], r8
xor rdx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x169]
xor rdx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0xfb]
xor rdx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x104]
xor rdx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x10d]
xor rdx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x116]
xor rdx, qword [rbx + rax*8 + 0x22e450]
movzx eax, byte [rbp + 0x160]
xor rdx, qword [rbx + rax*8 + 0x22ec50]
movzx eax, byte [rbp + 0xf1]
mov qword [rbp + 0x160], rdx
mov edx, dword [rsp + 0x20]
add edx, 2
xor rcx, qword [rbx + rax*8 + 0x22f450]
movzx eax, byte [rbp + 0xfa]
mov dword [rsp + 0x20], edx
xor rcx, qword [rbx + rax*8 + 0x22fc50]
movzx eax, byte [rbp + 0x103]
xor rcx, qword [rbx + rax*8 + 0x22d450]
movzx eax, byte [rbp + 0x10c]
xor rcx, qword [rbx + rax*8 + 0x230c50]
movzx eax, byte [rbp + 0x115]
xor rcx, qword [rbx + rax*8 + 0x230450]
movzx eax, byte [rbp + 0x11e]
mov qword [rbp + 0x118], r12
xor rcx, qword [rbx + rax*8 + 0x22e450]
movzx eax, r13b
xor rcx, qword [rbx + rax*8 + 0x22ec50]
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 + 0xf0], rbx
mov qword [rbp + 0x168], rcx
mov qword [rsp + 0x28], rax
cmp edx, 0xe
jl 0x14016d500
xor edx, edx
mov eax, edx
movdqu xmm0, xmmword [rbp + rax + 0x170]
movdqu xmm1, xmmword [rbp + rax + 0xf0]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax + 0x170], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x180]
movdqu xmm1, xmmword [rbp + rax + 0x100]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax + 0x180], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x190]
movdqu xmm1, xmmword [rbp + rax + 0x110]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax + 0x190], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x1a0]
movdqu xmm1, xmmword [rbp + rax + 0x120]
xorps xmm1, xmm0
movdqu xmmword [rbp + rax + 0x1a0], xmm1
add rax, 0x40
cmp rax, 0x80
jb 0x14016e9a0
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.1401d5dd0
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