Function at 0x1401b22d0
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 - 0x1a8]
sub rsp, 0x270
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
mov rax, qword [0x140526598]
xor rax, rsp
mov qword [rbp + 0x140], rax
mov rbx, qword [rcx + 0x80]
mov rsi, rcx
mov qword [rbp - 0x58], rcx
mov eax, 0x100
sub rax, rbx
mov qword [rbp - 0x60], r9
mov edi, 0x80
mov byte [rbp + 0xb0], 0x80
sub rdi, rbx
lea rcx, [rbp + 0xb1]
cmp rbx, 0x78
cmovae rdi, rax
xor edx, edx
lea r8, [rdi - 9]
call fcn.140362150
cmp rbx, 0x78
sbb rcx, rcx
add rcx, 2
add rcx, qword [rsi + 0x108]
call fcn.1401af210
mov r8, rdi
mov qword [rbp + rdi + 0xa8], rax
lea rdx, [rbp + 0xb0]
mov rcx, rsi
call fcn.1401af2f0
movups xmm1, xmmword [rsi + 0x98]
mov r8d, 0x20
movups xmm0, xmmword [rsi + 0x88]
mov dword [rsp + 0x20], r8d
movups xmmword [rbp + 0x40], xmm1
movups xmm1, xmmword [rsi + 0xb8]
movups xmmword [rbp + 0x30], xmm0
movups xmm0, xmmword [rsi + 0xa8]
movups xmmword [rbp + 0x60], xmm1
movups xmm1, xmmword [rsi + 0xd8]
movups xmmword [rbp + 0x50], xmm0
movups xmm0, xmmword [rsi + 0xc8]
movups xmmword [rbp + 0x80], xmm1
movups xmm1, xmmword [rsi + 0xf8]
movups xmmword [rbp + 0x70], xmm0
movups xmm0, xmmword [rsi + 0xe8]
movups xmmword [rbp + 0xa0], xmm1
movups xmm1, xmmword [rsi + 0x98]
movups xmmword [rbp + 0x90], xmm0
movups xmm0, xmmword [rsi + 0x88]
movups xmmword [rbp - 0x40], xmm1
movups xmm1, xmmword [rsi + 0xb8]
mov rbx, qword [rbp - 0x38]
mov rdi, qword [rbp - 0x40]
movups xmmword [rbp - 0x50], xmm0
movups xmm0, xmmword [rsi + 0xa8]
mov r12, qword [rbp - 0x50]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rsi + 0xd8]
mov r9, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x20]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rsi + 0xc8]
mov r10, qword [rbp - 0x28]
mov r11, qword [rbp - 0x30]
movups xmmword [rbp], xmm1
movups xmm1, xmmword [rsi + 0xf8]
mov rdx, qword [rbp]
movups xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [rsi + 0xe8]
mov r14, qword [rbp - 8]
mov r15, qword [rbp - 0x10]
mov rsi, qword [rbp - 0x48]
movups xmmword [rbp + 0x20], xmm1
mov rax, qword [rbp + 0x20]
mov r13, qword [rbp + 0x28]
mov qword [rsp + 0x48], rax
movups xmmword [rbp + 0x10], xmm0
mov rax, qword [rbp + 0x18]
mov qword [rsp + 0x40], rax
mov rax, qword [rbp + 0x10]
mov qword [rsp + 0x30], rax
mov rax, qword [rbp + 8]
mov qword [rsp + 0x28], rax
nop word [rax + rax]
lea eax, [r8 - 0x20]
movd xmm7, eax
cdqe
xor r12, rax
pshufd xmm7, xmm7, 0
lea eax, [r8 - 0x10]
mov qword [rsp + 0x68], r12
movsxd r8, eax
movsxd rax, dword [rsp + 0x20]
xor r8, rsi
mov rsi, rax
mov qword [rbp - 0x50], r12
add eax, 0x10
mov qword [rbp - 0x48], r8
xor rsi, rdi
movsxd rdi, eax
mov eax, dword [rsp + 0x20]
xor rdi, rbx
add eax, 0x20
mov qword [rbp - 0x40], rsi
movsxd rbx, eax
mov eax, dword [rsp + 0x20]
xor rbx, r11
add eax, 0x30
mov qword [rbp - 0x38], rdi
movsxd r11, eax
mov eax, dword [rsp + 0x20]
xor r11, r10
add eax, 0x40
mov qword [rbp - 0x30], rbx
movsxd r10, eax
mov eax, dword [rsp + 0x20]
xor r10, rcx
add eax, 0x50
mov qword [rbp - 0x28], r11
movsxd rcx, eax
mov eax, dword [rsp + 0x20]
xor r9, rcx
add eax, 0x60
mov qword [rbp - 0x20], r10
movsxd rcx, eax
xor r15, rcx
mov qword [rbp - 0x18], r9
mov qword [rsp + 0x70], r15
mov qword [rbp - 0x10], r15
mov r15d, dword [rsp + 0x20]
lea eax, [r15 + 0x70]
movsxd rcx, eax
lea eax, [r15 + 0x80]
xor r14, rcx
movsxd rcx, eax
xor rdx, rcx
mov qword [rbp - 0x80], r14
mov qword [rbp - 8], r14
mov r14, qword [rsp + 0x48]
mov qword [rsp + 0x78], rdx
mov qword [rbp], rdx
mov edx, r15d
mov r15, qword [rsp + 0x40]
lea eax, [rdx + 0x90]
movsxd rcx, eax
mov rax, qword [rsp + 0x28]
xor rax, rcx
mov qword [rsp + 0x28], rax
mov qword [rbp + 8], rax
lea eax, [rdx + 0xa0]
movsxd rcx, eax
mov rax, qword [rsp + 0x30]
xor rax, rcx
mov qword [rsp + 0x30], rax
mov qword [rbp + 0x10], rax
lea eax, [rdx + 0xb0]
movsxd rcx, eax
lea eax, [rdx + 0xc0]
xor r15, rcx
movsxd rcx, eax
xor r14, rcx
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r14
mov qword [rbp + 0x20], r14
mov qword [rbp + 0x18], r15
lea eax, [rdx + 0xd0]
movsxd rcx, eax
mov rax, rsi
shr rax, 0x10
xor r13, rcx
movzx edx, al
mov rax, rdi
shr rax, 0x18
movzx ecx, al
mov rax, rbx
shr rax, 0x20
mov qword [rsp + 0x38], r13
mov qword [rbp + 0x28], r13
lea r13, [0x140000000]
mov rdx, qword [r13 + rdx*8 + 0x489690]
xor rdx, qword [r13 + rcx*8 + 0x487e90]
movzx ecx, al
mov rax, r11
shr rax, 0x28
xor rdx, qword [r13 + rcx*8 + 0x48a690]
movzx ecx, al
mov rax, r10
shr rax, 0x30
xor rdx, qword [r13 + rcx*8 + 0x48ae90]
movzx ecx, al
mov rax, r8
shr rax, 8
xor rdx, qword [r13 + rcx*8 + 0x487690]
movzx ecx, al
mov rax, qword [rsp + 0x28]
shr rax, 0x38
xor rdx, qword [r13 + rcx*8 + 0x488690]
xor rdx, qword [r13 + rax*8 + 0x489e90]
movzx eax, r12b
xor rdx, qword [r13 + rax*8 + 0x488e90]
mov rax, rsi
shr rax, 8
mov qword [rsp + 0x60], rdx
movzx edx, al
mov rax, rdi
shr rax, 0x10
movzx ecx, al
mov rax, rbx
shr rax, 0x18
mov rdx, qword [r13 + rdx*8 + 0x488690]
xor rdx, qword [r13 + rcx*8 + 0x489690]
movzx ecx, al
mov rax, r11
shr rax, 0x20
xor rdx, qword [r13 + rcx*8 + 0x487e90]
movzx ecx, al
mov rax, r10
shr rax, 0x28
xor rdx, qword [r13 + rcx*8 + 0x48a690]
movzx ecx, al
mov rax, r9
shr rax, 0x30
xor rdx, qword [r13 + rcx*8 + 0x48ae90]
movzx ecx, al
mov rax, qword [rsp + 0x30]
shr rax, 0x38
xor rdx, qword [r13 + rcx*8 + 0x487690]
mov rcx, r15
shr rcx, 0x38
xor rdx, qword [r13 + rax*8 + 0x489e90]
movzx eax, r8b
xor rdx, qword [r13 + rax*8 + 0x488e90]
movzx eax, sil
mov qword [rsp + 0x58], rdx
lea rdx, [0x140000000]
mov rcx, qword [rdx + rcx*8 + 0x489e90]
xor rcx, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x37]
xor rcx, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x2e]
xor rcx, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x25]
xor rcx, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x1c]
xor rcx, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x13]
xor rcx, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0xa]
mov r15, qword [rsp + 0x68]
shr r15, 0x38
shr rsi, 0x38
xor rcx, qword [rdx + rax*8 + 0x487690]
mov qword [rsp + 0x50], rcx
mov rcx, r14
mov r15, qword [rdx + r15*8 + 0x489e90]
mov rsi, qword [rdx + rsi*8 + 0x489e90]
shr rcx, 0x38
movzx eax, dil
shr r8, 0x38
mov r13, qword [rdx + rcx*8 + 0x489e90]
xor r13, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x2f]
mov rcx, qword [rsp + 0x38]
mov r14, qword [rdx + r8*8 + 0x489e90]
shr rcx, 0x38
xor r13, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x26]
mov r12, qword [rdx + rcx*8 + 0x489e90]
xor r13, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x1d]
xor r13, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x14]
xor r13, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0xb]
xor r13, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 2]
xor r13, qword [rdx + rax*8 + 0x487690]
movzx eax, bl
mov qword [rbp - 0x78], r13
xor r12, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x27]
xor r12, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x1e]
xor r12, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x15]
xor r12, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0xc]
xor r12, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp - 3]
xor r12, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 6]
xor r12, qword [rdx + rax*8 + 0x487690]
movzx eax, r11b
xor r15, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x1f]
xor r15, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x16]
xor r15, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp - 0xd]
xor r15, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp - 4]
xor r15, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 5]
xor r15, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0xe]
xor r15, qword [rdx + rax*8 + 0x487690]
movzx eax, r10b
xor r14, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x17]
xor r14, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 0xe]
xor r14, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp - 5]
xor r14, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 4]
xor r14, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0xd]
xor r14, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x16]
xor r14, qword [rdx + rax*8 + 0x487690]
movzx eax, r9b
xor rsi, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0xf]
xor rsi, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 6]
xor rsi, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp + 3]
xor rsi, qword [rdx + rax*8 + 0x487e90]
lea r13, [0x140000000]
movzx eax, byte [rbp + 0xc]
lea rcx, [0x140000000]
mov r8, qword [rsp + 0x70]
shr rdi, 0x38
shr rbx, 0x38
xor rsi, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x15]
mov rdi, qword [rdx + rdi*8 + 0x489e90]
mov rbx, qword [rcx + rbx*8 + 0x489e90]
shr r11, 0x38
xor rsi, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x1e]
shr r10, 0x38
mov r11, qword [r13 + r11*8 + 0x489e90]
shr r9, 0x38
xor rsi, qword [rdx + rax*8 + 0x487690]
mov r10, qword [r13 + r10*8 + 0x489e90]
movzx eax, r8b
mov r9, qword [r13 + r9*8 + 0x489e90]
xor rdi, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 7]
xor rdi, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp + 2]
xor rdi, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp + 0xb]
xor rdi, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x14]
xor rdi, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x1d]
xor rdi, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x26]
xor rdi, qword [rdx + rax*8 + 0x487690]
mov rdx, qword [rbp - 0x80]
movzx eax, dl
xor rbx, qword [rcx + rax*8 + 0x488e90]
movzx eax, byte [rbp + 1]
xor rbx, qword [rcx + rax*8 + 0x488690]
movzx eax, byte [rbp + 0xa]
xor rbx, qword [rcx + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x13]
xor rbx, qword [rcx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x1c]
xor rbx, qword [rcx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x25]
xor rbx, qword [rcx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x2e]
xor rbx, qword [rcx + rax*8 + 0x487690]
mov rcx, qword [rsp + 0x78]
movzx eax, cl
xor r11, qword [r13 + rax*8 + 0x488e90]
movzx eax, byte [rbp + 9]
xor r11, qword [r13 + rax*8 + 0x488690]
movzx eax, byte [rbp + 0x12]
xor r11, qword [r13 + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x1b]
xor r11, qword [r13 + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x24]
xor r11, qword [r13 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x4a]
xor r11, qword [r13 + rax*8 + 0x487690]
movzx eax, byte [rbp + 0x2d]
xor r11, qword [r13 + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x11]
xor r10, qword [r13 + rax*8 + 0x488690]
movzx eax, byte [rbp + 0x1a]
xor r10, qword [r13 + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x23]
xor r10, qword [r13 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x4b]
xor r10, qword [r13 + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x2c]
xor r10, qword [r13 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x42]
xor r10, qword [r13 + rax*8 + 0x487690]
movzx eax, byte [rsp + 0x28]
xor r10, qword [r13 + rax*8 + 0x488e90]
movzx eax, byte [rbp + 0x19]
xor r9, qword [r13 + rax*8 + 0x488690]
movzx eax, byte [rbp + 0x22]
xor r9, qword [r13 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x4c]
shr r8, 0x38
shr rdx, 0x38
shr rcx, 0x38
xor r9, qword [r13 + rax*8 + 0x48a690]
mov r8, qword [r13 + r8*8 + 0x489e90]
mov rdx, qword [r13 + rdx*8 + 0x489e90]
mov rcx, qword [r13 + rcx*8 + 0x489e90]
movzx eax, byte [rbp + 0x2b]
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], rdi
xor r9, qword [r13 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x43]
mov qword [rbp - 8], rbx
mov qword [rbp], r11
mov qword [rbp + 8], r10
xor r9, qword [r13 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x3a]
xor r9, qword [r13 + rax*8 + 0x487690]
movzx eax, byte [rsp + 0x30]
xor r9, qword [r13 + rax*8 + 0x488e90]
movzx eax, byte [rbp + 0x21]
mov qword [rbp + 0x10], r9
xor r8, qword [r13 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x4d]
xor r8, qword [r13 + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x2a]
xor r8, qword [r13 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x44]
xor r8, qword [r13 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x3b]
xor r8, qword [r13 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x32]
xor r8, qword [r13 + rax*8 + 0x487690]
mov rax, qword [rsp + 0x40]
movzx eax, al
xor r8, qword [r13 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x4e]
mov qword [rbp + 0x18], r8
xor rdx, qword [r13 + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x29]
xor rdx, qword [r13 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x45]
xor rdx, qword [r13 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x3c]
xor rdx, qword [r13 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x33]
xor rdx, qword [r13 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x2a]
xor rdx, qword [r13 + rax*8 + 0x487690]
mov rax, qword [rsp + 0x48]
movzx eax, al
xor rdx, qword [r13 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x4f]
mov qword [rbp + 0x20], rdx
xor rcx, qword [r13 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x46]
xor rcx, qword [r13 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x3d]
xor rcx, qword [r13 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x34]
xor rcx, qword [r13 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x2b]
mov qword [rbp - 0x30], r12
xor rcx, qword [r13 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x22]
mov qword [rbp - 0x28], r15
xor rcx, qword [r13 + rax*8 + 0x487690]
movzx eax, byte [rsp + 0x38]
xor rcx, qword [r13 + rax*8 + 0x488e90]
mov rax, qword [rsp + 0x60]
mov r13, qword [rbp - 0x78]
mov qword [rbp - 0x50], rax
mov rax, qword [rsp + 0x58]
mov qword [rbp - 0x48], rax
mov rax, qword [rsp + 0x50]
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], r13
mov qword [rbp + 0x28], rcx
cmp dword [0x1405265a0], 2
jl 0x1401b2e2e
movdqa xmm4, xmmword [0x1404d5e50]
mov eax, 4
movdqa xmm6, xmmword [0x1404d5e20]
mov edx, eax
movd xmm5, eax
lea rax, [rbp - 0x40]
nop dword [rax]
nop word [rax + rax]
lea ecx, [rdx - 4]
movq xmm0, xmm4
movd xmm2, ecx
lea rax, [rax + 0x40]
pshufd xmm2, xmm2, 0
lea ecx, [rdx - 2]
paddd xmm2, xmm0
movd xmm3, ecx
pshufd xmm3, xmm3, 0
lea ecx, [rdx + 2]
movq xmm1, xmm5
movq xmm0, xmm6
pslld xmm2, xmm1
movq xmm1, xmm7
paddd xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x50]
paddd xmm2, xmm1
movq xmm1, xmm5
pmovsxdq xmm2, xmm2
pxor xmm2, xmm0
movq xmm0, xmm4
movdqu xmmword [rax - 0x50], xmm2
paddd xmm3, xmm0
movq xmm0, xmm6
pslld xmm3, xmm1
movq xmm1, xmm7
paddd xmm3, xmm0
movdqu xmm0, xmmword [rax - 0x40]
paddd xmm3, xmm1
movq xmm1, xmm5
pmovsxdq xmm2, xmm3
pxor xmm2, xmm0
movd xmm3, edx
movdqu xmmword [rax - 0x40], xmm2
add edx, 8
pshufd xmm3, xmm3, 0
movq xmm0, xmm4
paddd xmm3, xmm0
movq xmm0, xmm6
pslld xmm3, xmm1
movq xmm1, xmm7
paddd xmm3, xmm0
movdqu xmm0, xmmword [rax - 0x30]
paddd xmm3, xmm1
movq xmm1, xmm5
pmovsxdq xmm2, xmm3
pxor xmm2, xmm0
movq xmm0, xmm4
movdqu xmmword [rax - 0x30], xmm2
movd xmm2, ecx
lea ecx, [rdx - 4]
pshufd xmm2, xmm2, 0
paddd xmm2, xmm0
movq xmm0, xmm6
pslld xmm2, xmm1
movq xmm1, xmm7
paddd xmm2, xmm0
paddd xmm2, xmm1
movdqu xmm0, xmmword [rax - 0x20]
pmovsxdq xmm2, xmm2
pxor xmm2, xmm0
movdqu xmmword [rax - 0x20], xmm2
cmp ecx, 0x10
jl 0x1401b2d20
jmp 0x1401b2e52
mov eax, dword [rsp + 0x20]
lea rcx, [rbp - 0x50]
add eax, 0xffffffe1
movsxd rdx, eax
mov eax, reloc.WS2_32.dll_recv
xor qword [rcx], rdx
lea rcx, [rcx + 8]
add rdx, 0x10
sub rax, 1
jne 0x1401b2e41
movzx eax, byte [rbp - 0x47]
lea r10, [0x140000000]
mov r13, qword [rbp + 8]
mov rdx, qword [rbp - 0x50]
mov rcx, r13
shr rcx, 0x38
mov r12, qword [rbp + 0x10]
mov r9, qword [rbp - 0x48]
mov r15, qword [rbp + 0x18]
mov rcx, qword [r10 + rcx*8 + 0x489e90]
xor rcx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x3e]
mov r8, qword [rbp - 0x40]
mov r14, qword [rbp + 0x20]
mov rdi, qword [rbp - 0x38]
xor rcx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x35]
xor rcx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x2c]
xor rcx, qword [r10 + rax*8 + 0x48a690]
movzx eax, dl
xor rcx, qword [r10 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x23]
xor rcx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x1a]
xor rcx, qword [r10 + rax*8 + 0x487690]
mov qword [rsp + 0x68], rcx
mov rcx, r12
shr rcx, 0x38
movzx eax, r9b
mov rcx, qword [r10 + rcx*8 + 0x489e90]
xor rcx, qword [r10 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x3f]
xor rcx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x36]
xor rcx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x2d]
xor rcx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x24]
xor rcx, qword [r10 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x1b]
xor rcx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x12]
xor rcx, qword [r10 + rax*8 + 0x487690]
mov qword [rbp - 0x78], rcx
mov rcx, r15
shr rcx, 0x38
movzx eax, r8b
mov rcx, qword [r10 + rcx*8 + 0x489e90]
xor rcx, qword [r10 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x37]
xor rcx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x2e]
xor rcx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x25]
xor rcx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x1c]
xor rcx, qword [r10 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x13]
xor rcx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0xa]
xor rcx, qword [r10 + rax*8 + 0x487690]
mov qword [rsp + 0x60], rcx
mov rcx, r14
shr rcx, 0x38
movzx eax, dil
mov rcx, qword [r10 + rcx*8 + 0x489e90]
xor rcx, qword [r10 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x2f]
xor rcx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x26]
xor rcx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x1d]
xor rcx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x14]
xor rcx, qword [r10 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0xb]
xor rcx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 2]
xor rcx, qword [r10 + rax*8 + 0x487690]
mov qword [rsp + 0x58], rcx
mov rsi, qword [rbp + 0x28]
mov r11, qword [rbp - 0x30]
mov rcx, rsi
shr rcx, 0x38
mov rbx, qword [rbp - 0x28]
movzx eax, r11b
shr rdx, 0x38
mov rcx, qword [r10 + rcx*8 + 0x489e90]
shr r9, 0x38
xor rcx, qword [r10 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x27]
shr r8, 0x38
shr rdi, 0x38
xor rcx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x1e]
xor rcx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x15]
xor rcx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0xc]
xor rcx, qword [r10 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 3]
xor rcx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 6]
xor rcx, qword [r10 + rax*8 + 0x487690]
mov qword [rsp + 0x50], rcx
mov rcx, qword [r10 + rdx*8 + 0x489e90]
lea rdx, [0x140000000]
movzx eax, bl
xor rcx, qword [r10 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x1f]
xor rcx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x16]
xor rcx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0xd]
xor rcx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 4]
xor rcx, qword [r10 + rax*8 + 0x48a690]
movzx eax, byte [rbp + 5]
xor rcx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0xe]
xor rcx, qword [r10 + rax*8 + 0x487690]
mov r10, qword [rbp - 0x20]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rdx + r9*8 + 0x489e90]
mov r9, qword [rbp - 0x18]
movzx eax, r10b
xor rcx, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x17]
xor rcx, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 0xe]
xor rcx, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp - 5]
xor rcx, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 4]
xor rcx, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0xd]
xor rcx, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x16]
xor rcx, qword [rdx + rax*8 + 0x487690]
mov qword [rbp - 0x70], rcx
mov rcx, qword [rdx + r8*8 + 0x489e90]
mov r8, qword [rbp - 0x10]
movzx eax, r9b
xor rcx, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0xf]
xor rcx, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp - 6]
xor rcx, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp + 3]
xor rcx, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0xc]
xor rcx, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x15]
xor rcx, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x1e]
xor rcx, qword [rdx + rax*8 + 0x487690]
movzx eax, r8b
mov qword [rbp - 0x68], rcx
mov rcx, qword [rdx + rdi*8 + 0x489e90]
xor rcx, qword [rdx + rax*8 + 0x488e90]
movzx eax, byte [rbp - 7]
xor rcx, qword [rdx + rax*8 + 0x488690]
movzx eax, byte [rbp + 2]
shr r11, 0x38
shr rbx, 0x38
shr r10, 0x38
xor rcx, qword [rdx + rax*8 + 0x489690]
movzx eax, byte [rbp + 0xb]
shr r9, 0x38
xor rcx, qword [rdx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x14]
xor rcx, qword [rdx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x1d]
xor rcx, qword [rdx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x26]
xor rcx, qword [rdx + rax*8 + 0x487690]
mov rdx, qword [rbp - 8]
movzx eax, dl
mov qword [rsp + 0x70], rcx
lea rcx, [0x140000000]
mov rdi, qword [rcx + r11*8 + 0x489e90]
lea r11, [0x140000000]
mov r11, qword [r11 + rbx*8 + 0x489e90]
lea rbx, [0x140000000]
xor rdi, qword [rcx + rax*8 + 0x488e90]
movzx eax, byte [rbp + 1]
xor rdi, qword [rcx + rax*8 + 0x488690]
movzx eax, byte [rbp + 0xa]
xor rdi, qword [rcx + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x13]
xor rdi, qword [rcx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x1c]
xor rdi, qword [rcx + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x25]
xor rdi, qword [rcx + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x2e]
xor rdi, qword [rcx + rax*8 + 0x487690]
mov rcx, qword [rbp]
movzx eax, cl
mov qword [rbp - 0x80], rdi
xor r11, qword [rbx + rax*8 + 0x488e90]
movzx eax, byte [rbp + 9]
xor r11, qword [rbx + rax*8 + 0x488690]
movzx eax, byte [rbp + 0x12]
xor r11, qword [rbx + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x1b]
xor r11, qword [rbx + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x24]
xor r11, qword [rbx + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x4a]
xor r11, qword [rbx + rax*8 + 0x487690]
movzx eax, byte [rbp + 0x2d]
xor r11, qword [rbx + rax*8 + 0x48ae90]
mov rbx, qword [rbx + r10*8 + 0x489e90]
lea r10, [0x140000000]
movzx eax, byte [rbp + 0x11]
mov qword [rsp + 0x78], r11
xor rbx, qword [r10 + rax*8 + 0x488690]
movzx eax, byte [rbp + 0x1a]
xor rbx, qword [r10 + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x23]
xor rbx, qword [r10 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x4b]
xor rbx, qword [r10 + rax*8 + 0x48ae90]
movzx eax, byte [rbp + 0x2c]
xor rbx, qword [r10 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x42]
xor rbx, qword [r10 + rax*8 + 0x487690]
movzx eax, r13b
xor rbx, qword [r10 + rax*8 + 0x488e90]
mov r10, qword [r10 + r9*8 + 0x489e90]
lea r9, [0x140000000]
movzx eax, byte [rbp + 0x19]
mov qword [rsp + 0x28], rbx
xor r10, qword [r9 + rax*8 + 0x488690]
movzx eax, byte [rbp + 0x22]
xor r10, qword [r9 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x4c]
xor r10, qword [r9 + rax*8 + 0x48a690]
movzx eax, byte [rbp + 0x2b]
xor r10, qword [r9 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x43]
xor r10, qword [r9 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x3a]
shr r8, 0x38
shr rdx, 0x38
shr rcx, 0x38
xor r10, qword [r9 + rax*8 + 0x487690]
mov r8, qword [r9 + r8*8 + 0x489e90]
mov rdx, qword [r9 + rdx*8 + 0x489e90]
mov r13, qword [r9 + rcx*8 + 0x489e90]
mov rcx, qword [rbp - 0x70]
movzx eax, r12b
mov r12, qword [rsp + 0x68]
mov qword [rbp - 0x20], rcx
mov qword [rbp - 8], rdi
xor r10, qword [r9 + rax*8 + 0x488e90]
movzx eax, byte [rbp + 0x21]
mov qword [rsp + 0x30], r10
mov qword [rbp], r11
mov qword [rbp + 8], rbx
xor r8, qword [r9 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x4d]
mov qword [rbp + 0x10], r10
xor r8, qword [r9 + rax*8 + 0x487e90]
movzx eax, byte [rbp + 0x2a]
xor r8, qword [r9 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x44]
xor r8, qword [r9 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x3b]
xor r8, qword [r9 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x32]
xor r8, qword [r9 + rax*8 + 0x487690]
movzx eax, r15b
mov r15, qword [rsp + 0x70]
mov qword [rbp - 0x10], r15
xor r8, qword [r9 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x4e]
mov qword [rsp + 0x40], r8
mov qword [rbp + 0x18], r8
xor rdx, qword [r9 + rax*8 + 0x489690]
movzx eax, byte [rbp + 0x29]
xor rdx, qword [r9 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x45]
xor rdx, qword [r9 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x3c]
xor rdx, qword [r9 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x33]
xor rdx, qword [r9 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x2a]
xor rdx, qword [r9 + rax*8 + 0x487690]
movzx eax, r14b
xor rdx, qword [r9 + rax*8 + 0x488e90]
movzx eax, byte [rbp - 0x4f]
mov qword [rsp + 0x48], rdx
mov qword [rbp - 0x50], r12
mov qword [rbp + 0x20], rdx
xor r13, qword [r9 + rax*8 + 0x488690]
movzx eax, byte [rbp - 0x46]
xor r13, qword [r9 + rax*8 + 0x489690]
movzx eax, byte [rbp - 0x3d]
xor r13, qword [r9 + rax*8 + 0x487e90]
movzx eax, byte [rbp - 0x34]
xor r13, qword [r9 + rax*8 + 0x48a690]
movzx eax, byte [rbp - 0x2b]
xor r13, qword [r9 + rax*8 + 0x48ae90]
movzx eax, byte [rbp - 0x22]
xor r13, qword [r9 + rax*8 + 0x487690]
movzx eax, sil
mov rsi, qword [rbp - 0x78]
mov qword [rbp - 0x48], rsi
xor r13, qword [r9 + rax*8 + 0x488e90]
mov rax, qword [rsp + 0x60]
mov r9, qword [rbp - 0x68]
mov qword [rbp - 0x40], rax
mov rax, qword [rsp + 0x58]
mov qword [rbp - 0x38], rax
mov rax, qword [rsp + 0x50]
mov qword [rbp - 0x30], rax
mov rax, qword [rsp + 0x38]
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x18], r9
mov qword [rbp + 0x28], r13
mov r8d, dword [rsp + 0x20]
mov rdx, r11
mov r10, qword [rsp + 0x38]
add r8d, 2
mov r11, qword [rsp + 0x50]
mov r14, rdi
mov rbx, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
lea eax, [r8 - 0x20]
mov dword [rsp + 0x20], r8d
cmp eax, 0xe
jl 0x1401b24a0
xor eax, eax
nop word [rax + rax]
movdqu xmm0, xmmword [rbp + rax + 0x30]
movdqu xmm1, xmmword [rbp + rax - 0x50]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x30], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x40]
movdqu xmm1, xmmword [rbp + rax - 0x40]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x40], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x50]
movdqu xmm1, xmmword [rbp + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x50], xmm1
movdqu xmm0, xmmword [rbp + rax + 0x60]
movdqu xmm1, xmmword [rbp + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rbp + rax + 0x60], xmm1
add rax, 0x40
cmp rax, 0x80
jb 0x1401b35c0
mov rax, qword [rbp + 0x70]
mov edx, 0x200
mov rcx, qword [rbp - 0x58]
mov qword [rbp + 0xb0], rax
mov rax, qword [rbp + 0x78]
mov qword [rbp + 0xb8], rax
movups xmm0, xmmword [rbp + 0xb0]
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0xc0], rax
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0xc8], rax
movups xmm1, xmmword [rbp + 0xc0]
mov rax, qword [rbp + 0x90]
mov qword [rbp + 0xd0], rax
mov rax, qword [rbp + 0x98]
mov qword [rbp + 0xd8], rax
mov rax, qword [rbp + 0xa0]
mov qword [rbp + 0xe0], rax
mov rax, qword [rbp + 0xa8]
mov qword [rbp + 0xe8], rax
mov rax, qword [rbp - 0x60]
movups xmmword [rax], xmm0
movups xmm0, xmmword [rbp + 0xd0]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rbp + 0xe0]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm1
call fcn.1401af260
mov rcx, qword [rbp + 0x140]
xor rcx, rsp
call fcn.140343400
lea r11, [rsp + 0x270]
mov rbx, qword [r11 + 0x48]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret