Function at 0x18016ea40
Capabilities:
Encode data using xor
Hash data using whirlpool

Disassembly:
test r8, r8
je 0x18016fe31
mov r11, rsp
push rbp
push rbx
lea rbp, [r11 - 0x3c8]
sub rsp, 0x4b8
movaps xmmword [r11 - 0x38], xmm6
mov rax, qword [0x180428208]
xor rax, rsp
mov qword [rbp + 0x380], rax
movups xmm6, xmmword [rdx]
mov qword [r11 + 0x10], rsi
mov rbx, rcx
mov qword [r11 + 0x18], rdi
mov qword [r11 + 0x20], r12
mov qword [r11 - 0x18], r13
mov qword [r11 - 0x20], r14
mov qword [r11 - 0x28], r15
mov qword [rbp + 0x58], r8
mov qword [rbp + 0x18], rcx
movaps xmmword [rbp + 0x70], xmm6
mov qword [rsp + 0x78], 0
nop word [rax + rax]
psrldq xmm6, 8
movq rcx, xmm6
cmp rcx, 0x40
jb 0x18016fe32
mov rax, qword [rbp + 0x70]
xor edx, edx
mov qword [rsp + 0x70], rax
mov r8d, 0x280
add rax, 0x40
mov qword [rbp + 0x60], rax
lea rax, [rcx - 0x40]
mov qword [rbp + 0x68], rax
lea rcx, [rbp + 0x100]
movaps xmm6, xmmword [rbp + 0x60]
movaps xmmword [rbp + 0x70], xmm6
call fcn.180283390
mov rdx, qword [rbx]
lea r8, [0x180372900]
mov qword [rbp + 0x10], rdx
lea r13, [rbp + 0xc8]
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x48], 0xa
mov rax, qword [rdx]
mov rcx, qword [rdx + 0x10]
mov qword [rbp + 0xd0], rcx
mov rcx, qword [rdx + 0x18]
mov qword [rbp + 0xd8], rcx
mov rcx, qword [rdx + 0x20]
mov qword [rbp + 0xe0], rcx
mov rcx, qword [rdx + 0x28]
mov qword [rbp + 0xe8], rcx
mov rcx, qword [rdx + 0x30]
mov qword [rbp + 0xf0], rcx
mov rcx, qword [rdx + 0x38]
mov qword [rbp + 8], rax
mov qword [rbp + 0xc0], rax
mov rax, qword [rdx + 8]
mov qword [rbp + 0xf8], rcx
mov qword [rbp + 0xc8], rax
nop word [rax + rax]
mov r12, qword [r13 + 0x30]
lea r9, [0x180372100]
mov r10, qword [r13 + 0x28]
mov r14, rax
mov r11, qword [r13 + 0x20]
mov rax, r12
mov rbx, qword [r13 + 0x18]
shr rax, 0x30
movzx ecx, al
mov rax, r10
mov rdi, qword [r13 + 0x10]
mov rsi, qword [r13 + 8]
shr rax, 0x28
mov rdx, qword [r9 + rcx*8]
mov r15, qword [r13 - 8]
movzx ecx, al
ror rdx, 8
mov rax, qword [r9 + rcx*8]
ror rax, 0x10
xor rdx, rax
mov rax, r11
shr rax, 0x20
movzx ecx, al
mov rax, qword [r9 + rcx*8]
ror rax, 0x18
xor rdx, rax
mov rax, rbx
shr rax, 0x18
movzx ecx, al
mov rax, qword [r9 + rcx*8]
ror rax, 0x20
xor rdx, rax
mov rax, rdi
shr rax, 0x10
movzx ecx, al
mov rax, qword [r9 + rcx*8]
ror rax, 0x28
xor rdx, rax
mov rax, rsi
shr rax, 8
movzx ecx, al
mov rax, qword [r9 + rcx*8]
ror rax, 0x30
xor rdx, rax
movzx eax, r14b
mov rcx, qword [r9 + rax*8]
mov rax, r15
ror rcx, 0x38
xor rdx, rcx
shr rax, 0x38
mov rcx, r10
shr rcx, 0x20
xor rdx, qword [r9 + rax*8]
mov rax, r12
xor rdx, qword [r8]
shr rax, 0x28
movzx eax, al
mov qword [r13 + 0x38], rdx
movzx edx, cl
mov rax, qword [r9 + rax*8]
ror rax, 0x10
mov rcx, qword [r9 + rdx*8]
ror rcx, 0x18
xor rax, rcx
mov rcx, r11
shr rcx, 0x18
movzx edx, cl
mov rcx, qword [r9 + rdx*8]
ror rcx, 0x20
xor rax, rcx
mov rcx, rbx
shr rcx, 0x10
movzx edx, cl
mov rcx, qword [r9 + rdx*8]
ror rcx, 0x28
xor rax, rcx
mov rcx, rdi
shr rcx, 8
movzx edx, cl
mov rcx, qword [r9 + rdx*8]
ror rcx, 0x30
xor rax, rcx
mov rcx, r15
shr rcx, 0x30
movzx edx, cl
mov rcx, qword [r9 + rdx*8]
ror rcx, 8
xor rax, rcx
movzx ecx, sil
mov rdx, qword [r9 + rcx*8]
mov rcx, r14
shr rcx, 0x38
ror rdx, 0x38
xor rax, rdx
xor rax, qword [r9 + rcx*8]
mov rcx, r12
shr rcx, 0x20
movzx edx, cl
lea rcx, [0x180372100]
mov qword [r13 + 0x40], rax
mov r8, qword [rcx + rdx*8]
mov rcx, r10
shr rcx, 0x18
movzx edx, cl
lea rcx, [0x180372100]
ror r8, 0x18
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x20
xor r8, rcx
mov rcx, r11
shr rcx, 0x10
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x28
xor r8, rcx
mov rcx, rbx
shr rcx, 8
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x30
xor r8, rcx
mov rcx, r14
shr rcx, 0x30
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 8
xor r8, rcx
mov rcx, r15
shr rcx, 0x28
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
lea rdx, [0x180372100]
ror rcx, 0x10
xor r8, rcx
movzx ecx, dil
mov rdx, qword [rdx + rcx*8]
mov rcx, rsi
shr rcx, 0x38
ror rdx, 0x38
xor r8, rdx
lea rdx, [0x180372100]
xor r8, qword [rdx + rcx*8]
mov rcx, r12
shr rcx, 0x18
movzx edx, cl
lea rcx, [0x180372100]
mov qword [r13 + 0x48], r8
mov r8, qword [rcx + rdx*8]
mov rcx, r10
shr rcx, 0x10
movzx edx, cl
lea rcx, [0x180372100]
ror r8, 0x20
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x28
xor r8, rcx
mov rcx, r11
shr rcx, 8
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x30
xor r8, rcx
mov rcx, rsi
shr rcx, 0x30
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 8
xor r8, rcx
mov rcx, r14
shr rcx, 0x28
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x10
xor r8, rcx
mov rcx, r15
shr rcx, 0x20
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
lea rdx, [0x180372100]
ror rcx, 0x18
xor r8, rcx
movzx ecx, bl
mov rdx, qword [rdx + rcx*8]
mov rcx, rdi
shr rcx, 0x38
ror rdx, 0x38
xor r8, rdx
lea rdx, [0x180372100]
xor r8, qword [rdx + rcx*8]
mov rcx, r12
shr rcx, 0x10
movzx edx, cl
lea rcx, [0x180372100]
mov qword [r13 + 0x50], r8
mov r8, qword [rcx + rdx*8]
mov rcx, r10
shr rcx, 8
movzx edx, cl
lea rcx, [0x180372100]
ror r8, 0x28
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x30
xor r8, rcx
mov rcx, rdi
shr rcx, 0x30
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 8
xor r8, rcx
mov rcx, rsi
shr rcx, 0x28
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x10
xor r8, rcx
mov rcx, r14
shr rcx, 0x20
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x18
xor r8, rcx
mov rcx, r15
shr rcx, 0x18
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
lea rdx, [0x180372100]
ror rcx, 0x20
xor r8, rcx
movzx ecx, r11b
mov rdx, qword [rdx + rcx*8]
ror rdx, 0x38
xor r8, rdx
mov rcx, rbx
shr rcx, 0x38
lea rdx, [0x180372100]
xor r8, qword [rdx + rcx*8]
mov rcx, r12
shr rcx, 8
movzx edx, cl
lea rcx, [0x180372100]
mov qword [r13 + 0x58], r8
mov r8, qword [rcx + rdx*8]
mov rcx, rbx
shr rcx, 0x30
movzx edx, cl
lea rcx, [0x180372100]
ror r8, 0x30
mov rcx, qword [rcx + rdx*8]
ror rcx, 8
xor r8, rcx
mov rcx, rdi
shr rcx, 0x28
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x10
xor r8, rcx
mov rcx, rsi
shr rcx, 0x20
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x18
xor r8, rcx
mov rcx, r14
shr rcx, 0x18
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x20
xor r8, rcx
mov rcx, r15
shr rcx, 0x10
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
lea rdx, [0x180372100]
ror rcx, 0x28
xor r8, rcx
movzx ecx, r10b
mov rdx, qword [rdx + rcx*8]
mov rcx, r11
shr rcx, 0x38
ror rdx, 0x38
xor r8, rdx
lea rdx, [0x180372100]
xor r8, qword [rdx + rcx*8]
mov rcx, r11
shr rcx, 0x30
movzx edx, cl
lea rcx, [0x180372100]
mov qword [r13 + 0x60], r8
mov r8, qword [rcx + rdx*8]
mov rcx, rbx
shr rcx, 0x28
movzx edx, cl
lea rcx, [0x180372100]
ror r8, 8
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x10
xor r8, rcx
mov rcx, rdi
shr rcx, 0x20
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x18
xor r8, rcx
mov rcx, rsi
shr rcx, 0x18
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
lea r13, [r13 + 0x40]
ror rcx, 0x20
xor r8, rcx
shr r11, 0x28
mov rcx, r14
shr rbx, 0x20
shr rcx, 0x10
movzx edx, cl
lea rcx, [0x180372100]
shr rdi, 0x18
shr rsi, 0x10
shr r14, 8
mov rcx, qword [rcx + rdx*8]
ror rcx, 0x28
xor r8, rcx
mov rcx, r15
shr rcx, 8
movzx edx, cl
lea rcx, [0x180372100]
mov rcx, qword [rcx + rdx*8]
lea rdx, [0x180372100]
ror rcx, 0x30
xor r8, rcx
movzx ecx, r12b
shr r12, 0x38
mov rdx, qword [rdx + rcx*8]
mov rcx, r10
ror rdx, 0x38
xor r8, rdx
shr rcx, 0x38
shr r10, 0x30
lea rdx, [0x180372100]
xor r8, qword [rdx + rcx*8]
mov qword [r13 + 0x28], r8
movzx ecx, r10b
lea r10, [0x180372100]
mov r8, qword [r10 + rcx*8]
ror r8, 8
movzx ecx, r11b
mov rdx, qword [r10 + rcx*8]
ror rdx, 0x10
xor r8, rdx
movzx ecx, bl
mov rdx, qword [r10 + rcx*8]
ror rdx, 0x18
xor r8, rdx
movzx ecx, dil
mov rdx, qword [r10 + rcx*8]
ror rdx, 0x20
xor r8, rdx
movzx ecx, sil
mov rdx, qword [r10 + rcx*8]
ror rdx, 0x28
xor r8, rdx
movzx ecx, r14b
mov rdx, qword [r10 + rcx*8]
ror rdx, 0x30
xor r8, rdx
movzx ecx, r15b
mov rdx, qword [r10 + rcx*8]
ror rdx, 0x38
xor r8, rdx
xor r8, qword [r10 + r12*8]
mov qword [r13 + 0x30], r8
mov r8, qword [rsp + 0x60]
add r8, 8
sub qword [rsp + 0x48], 1
mov qword [rsp + 0x60], r8
jne 0x18016eb80
mov rax, qword [rsp + 0x70]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movq rcx, xmm0
movaps xmmword [rbp + 0x80], xmm0
mov r10d, ecx
mov edx, ecx
shl r10d, 0x10
mov eax, edx
and eax, 0xff0000
movaps xmmword [rbp + 0x90], xmm1
mov r8, rcx
movaps xmmword [rbp + 0xa0], xmm2
shr r8, 0x20
and ecx, 0xff00
or r10d, ecx
movaps xmmword [rbp + 0xb0], xmm3
mov rcx, qword [rbp + 0x88]
mov r9, r8
shl r10d, 8
and rdx, 0xffffffffff000000
shl r10, 8
mov r11d, ecx
or r10, rax
shl r11d, 0x10
mov eax, r8d
shl r10, 0x10
shl eax, 0x10
and r8d, 0xff00
or eax, r8d
or r10, rdx
shl eax, 8
mov r8, rcx
shr r8, 0x20
mov edx, ecx
and ecx, 0xff00
or r11d, ecx
shl r10, 8
or r10, rax
shl r11d, 8
shl r11, 8
mov rax, r9
and eax, 0xff0000
shr r9, 0x10
or rax, r9
movq rcx, xmm1
shr rax, 8
mov r9, r8
or r10, rax
mov ebx, ecx
mov eax, edx
shl ebx, 0x10
and eax, 0xff0000
mov qword [rbp], r10
or r11, rax
and rdx, 0xffffffffff000000
mov eax, r8d
shl r11, 0x10
shl eax, 0x10
or r11, rdx
and r8d, 0xff00
shl r11, 8
or eax, r8d
mov edx, ecx
shl eax, 8
mov r8, rcx
or r11, rax
shr r8, 0x20
mov rax, r9
and ecx, 0xff00
and eax, 0xff0000
shr r9, 0x10
or rax, r9
or ebx, ecx
shr rax, 8
mov r9, r8
or r11, rax
mov qword [rbp + 0x20], r11
shl ebx, 8
mov rcx, qword [rbp + 0x98]
mov eax, edx
and eax, 0xff0000
shl rbx, 8
or rbx, rax
and rdx, 0xffffffffff000000
mov eax, r8d
shl rbx, 0x10
shl eax, 0x10
and r8d, 0xff00
or eax, r8d
or rbx, rdx
shl eax, 8
mov edi, ecx
shl edi, 0x10
mov r8, rcx
shr r8, 0x20
mov edx, ecx
and ecx, 0xff00
or edi, ecx
shl rbx, 8
or rbx, rax
shl edi, 8
mov rax, r9
shl rdi, 8
and eax, 0xff0000
shr r9, 0x10
or rax, r9
movq rcx, xmm2
shr rax, 8
mov r9, r8
or rbx, rax
mov esi, ecx
shl esi, 0x10
mov eax, edx
and eax, 0xff0000
mov qword [rbp + 0x28], rbx
or rdi, rax
and rdx, 0xffffffffff000000
mov eax, r8d
shl rdi, 0x10
shl eax, 0x10
or rdi, rdx
and r8d, 0xff00
shl rdi, 8
or eax, r8d
mov edx, ecx
shl eax, 8
mov r8, rcx
or rdi, rax
shr r8, 0x20
mov rax, r9
and ecx, 0xff00
and eax, 0xff0000
shr r9, 0x10
or rax, r9
or esi, ecx
shr rax, 8
mov r9, r8
or rdi, rax
shl esi, 8
shl rsi, 8
mov eax, edx
and eax, 0xff0000
mov qword [rbp + 0x30], rdi
or rsi, rax
and rdx, 0xffffffffff000000
mov eax, r8d
shl rsi, 0x10
shl eax, 0x10
or rsi, rdx
and r8d, 0xff00
shl rsi, 8
or eax, r8d
shl eax, 8
or rsi, rax
mov rax, r9
and eax, 0xff0000
shr r9, 0x10
or rax, r9
shr rax, 8
mov rcx, qword [rbp + 0xa8]
or rsi, rax
mov r14d, ecx
mov edx, ecx
mov r8, rcx
shl r14d, 0x10
and ecx, 0xff00
shr r8, 0x20
or r14d, ecx
mov qword [rbp + 0x38], rsi
mov eax, edx
shl r14d, 8
and eax, 0xff0000
shl r14, 8
or r14, rax
mov r9, r8
mov eax, r8d
shl r14, 0x10
shl eax, 0x10
and r8d, 0xff00
or eax, r8d
and rdx, 0xffffffffff000000
shl eax, 8
or r14, rdx
movq rcx, xmm3
shl r14, 8
or r14, rax
mov edx, ecx
mov r15d, ecx
mov r8, rcx
shl r15d, 0x10
and ecx, 0xff00
or r15d, ecx
shr r8, 0x20
mov rcx, qword [rbp + 0xb8]
mov rax, r9
and eax, 0xff0000
shl r15d, 8
shl r15, 8
shr r9, 0x10
or rax, r9
mov r9, r8
shr rax, 8
or r14, rax
mov eax, edx
and eax, 0xff0000
mov qword [rbp + 0x40], r14
or r15, rax
and rdx, 0xffffffffff000000
mov eax, r8d
shl r15, 0x10
shl eax, 0x10
or r15, rdx
mov edx, ecx
and r8d, 0xff00
or eax, r8d
shl r15, 8
shl eax, 8
mov r8, rcx
or r15, rax
shr r8, 0x20
mov rax, r9
shr r9, 0x10
and eax, 0xff0000
or rax, r9
mov r9, r8
shr rax, 8
or r15, rax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
or ecx, eax
mov qword [rbp + 0x48], r15
shl ecx, 8
mov eax, edx
shl rcx, 8
and eax, 0xff0000
or rcx, rax
and rdx, 0xffffffffff000000
shl rcx, 0x10
or rcx, rdx
mov r13, qword [rbp + 0xd0]
mov eax, r8d
shl eax, 0x10
and r8d, 0xff00
or eax, r8d
shl rcx, 8
shl eax, 8
xor r13, rbx
or rcx, rax
mov qword [rsp + 0x28], r13
mov rax, r9
mov qword [rsp + 0x70], 0xa
and eax, 0xff0000
shr r9, 0x10
or rax, r9
mov rdx, r10
xor rdx, qword [rbp + 0xc0]
mov r12, r11
xor r12, qword [rbp + 0xc8]
shr rax, 8
or rcx, rax
mov qword [rsp + 0x60], rdx
mov rax, qword [rbp + 0xd8]
xor rax, rdi
mov qword [rbp + 0x50], rcx
mov qword [rsp + 0x30], rax
mov rax, rsi
xor rax, qword [rbp + 0xe0]
mov qword [rsp + 0x38], rax
mov rax, r14
xor rax, qword [rbp + 0xe8]
lea r14, [0x180372100]
mov qword [rsp + 0x40], rax
mov rax, r15
xor rax, qword [rbp + 0xf0]
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0xf8]
xor rax, rcx
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x58], rax
lea rax, [rbp + 0x108]
mov qword [rsp + 0x68], rax
jmp 0x18016f61f
mov rdx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x48]
mov r13, qword [rsp + 0x28]
lea rdi, [0x180372100]
mov rax, r12
shr rax, 0x30
mov r8, rdx
movzx ecx, al
mov r9, rdx
mov rax, r13
shr r8, 0x30
shr rax, 0x30
mov r11, rdx
shr r9, 0x28
mov r10, qword [r14 + rcx*8]
movzx ecx, al
mov rax, r12
shr rax, 0x28
shr r11, 0x20
mov rsi, qword [r14 + rcx*8]
movzx ecx, al
mov rax, qword [rsp + 0x30]
shr rax, 0x30
mov rbx, qword [r14 + rcx*8]
lea r14, [0x180372100]
movzx ecx, al
mov rax, qword [rdi + rcx*8]
mov qword [rbp - 0x80], rax
mov rax, r13
shr rax, 0x28
movzx ecx, al
mov rax, r12
shr rax, 0x20
mov r15, qword [rdi + rcx*8]
movzx ecx, al
mov rax, qword [rsp + 0x38]
shr rax, 0x30
mov r13, qword [rdi + rcx*8]
mov rdi, rdx
movzx ecx, al
lea rax, [0x180372100]
shr rdi, 0x18
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x68], rax
mov rax, qword [rsp + 0x30]
shr rax, 0x28
movzx ecx, al
mov rax, qword [r14 + rcx*8]
mov qword [rbp - 0x78], rax
mov rax, qword [rsp + 0x28]
shr rax, 0x20
movzx ecx, al
mov rax, qword [r14 + rcx*8]
mov qword [rbp - 0x60], rax
mov rax, r12
shr rax, 0x18
movzx ecx, al
mov rax, qword [r14 + rcx*8]
mov r14, rdx
mov qword [rbp - 0x70], rax
mov rax, qword [rsp + 0x40]
shr rax, 0x30
movzx ecx, al
lea rax, [0x180372100]
shr r14, 0x10
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x58], rax
mov rax, qword [rsp + 0x38]
shr rax, 0x28
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x48], rax
mov rax, qword [rsp + 0x30]
shr rax, 0x20
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x50], rax
mov rax, qword [rsp + 0x28]
shr rax, 0x18
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x38], rax
mov rax, r12
shr rax, 0x10
mov r12, rdx
movzx ecx, al
lea rax, [0x180372100]
mov byte [rsp + 0x20], dl
shr r12, 8
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x40], rax
mov rax, qword [rsp + 0x50]
shr rax, 0x30
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x30], rax
mov rax, qword [rsp + 0x40]
shr rax, 0x28
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x10], rax
mov rax, qword [rsp + 0x38]
shr rax, 0x20
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 8], rax
mov rax, qword [rsp + 0x30]
shr rax, 0x18
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x28], rax
mov rax, qword [rsp + 0x28]
shr rax, 0x10
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x18], rax
mov rax, qword [rsp + 0x48]
shr rax, 8
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
mov qword [rbp - 0x20], rax
mov rax, qword [rsp + 0x58]
shr rax, 0x30
movzx ecx, al
lea rax, [0x180372100]
mov rdx, qword [rax + rcx*8]
mov rax, qword [rsp + 0x50]
shr rax, 0x28
movzx ecx, al
lea rax, [0x180372100]
ror rdx, 8
mov rax, qword [rax + rcx*8]
ror rax, 0x10
xor rdx, rax
mov rax, qword [rsp + 0x40]
shr rax, 0x20
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
ror rax, 0x18
xor rdx, rax
mov rax, qword [rsp + 0x38]
shr rax, 0x18
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
ror rax, 0x20
xor rdx, rax
mov rax, qword [rsp + 0x30]
shr rax, 0x10
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
ror rax, 0x28
xor rdx, rax
mov rax, qword [rsp + 0x28]
shr rax, 8
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
lea rcx, [0x180372100]
ror rax, 0x30
xor rdx, rax
movzx eax, byte [rsp + 0x48]
mov rcx, qword [rcx + rax*8]
mov rax, qword [rsp + 0x60]
shr rax, 0x38
ror rcx, 0x38
xor rcx, rdx
lea rdx, [0x180372100]
xor rcx, qword [rdx + rax*8]
mov rax, qword [rsp + 0x68]
xor rcx, qword [rax - 8]
mov rax, qword [rsp + 0x58]
shr rax, 0x28
mov qword [rsp + 0x60], rcx
movzx ecx, al
mov rax, qword [rsp + 0x50]
shr rax, 0x20
mov rdx, qword [rdx + rcx*8]
movzx ecx, al
lea rax, [0x180372100]
ror rdx, 0x10
mov rax, qword [rax + rcx*8]
ror rax, 0x18
xor rdx, rax
mov rax, qword [rsp + 0x40]
shr rax, 0x18
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
ror rax, 0x20
xor rdx, rax
mov rax, qword [rsp + 0x38]
shr rax, 0x10
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
ror rax, 0x28
xor rdx, rax
mov rax, qword [rsp + 0x30]
shr rax, 8
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
lea rcx, [0x180372100]
ror rax, 0x30
xor rdx, rax
movzx eax, byte [rsp + 0x28]
mov rcx, qword [rcx + rax*8]
movzx eax, r8b
ror rcx, 0x38
xor rdx, rcx
lea rcx, [0x180372100]
mov r8, qword [rcx + rax*8]
mov rax, qword [rsp + 0x48]
shr rax, 0x38
ror r8, 8
xor r8, rdx
lea rdx, [0x180372100]
xor r8, qword [rdx + rax*8]
mov rax, qword [rsp + 0x68]
xor r8, qword [rax]
mov rax, qword [rsp + 0x58]
shr rax, 0x20
movzx ecx, al
mov rax, qword [rsp + 0x50]
shr rax, 0x18
mov qword [rsp + 0x48], r8
mov rdx, qword [rdx + rcx*8]
movzx ecx, al
lea rax, [0x180372100]
ror rdx, 0x18
mov rax, qword [rax + rcx*8]
ror rax, 0x20
xor rdx, rax
mov rax, qword [rsp + 0x40]
shr rax, 0x10
movzx ecx, al
lea rax, [0x180372100]
ror r10, 8
ror rbx, 0x10
ror rsi, 8
mov rax, qword [rax + rcx*8]
ror rax, 0x28
xor rdx, rax
mov rax, qword [rsp + 0x38]
shr rax, 8
movzx ecx, al
lea rax, [0x180372100]
mov rax, qword [rax + rcx*8]
lea rcx, [0x180372100]
ror rax, 0x30
xor rdx, rax
movzx eax, byte [rsp + 0x30]
mov rcx, qword [rcx + rax*8]
ror rcx, 0x38
xor rdx, rcx
movzx eax, r9b
lea rcx, [0x180372100]
mov r9, qword [rcx + rax*8]
mov rax, qword [rsp + 0x28]
shr rax, 0x38
ror r9, 0x10
xor r9, rdx
xor r9, r10
lea r10, [0x180372100]
xor r9, qword [r10 + rax*8]
mov rax, qword [rsp + 0x68]
xor r9, qword [rax + 8]
mov rax, qword [rsp + 0x58]
shr rax, 0x18
movzx ecx, al
mov rax, qword [rsp + 0x50]
shr rax, 0x10
mov qword [rsp + 0x28], r9
mov rdx, qword [r10 + rcx*8]
movzx ecx, al
ror rdx, 0x20
mov rax, qword [r10 + rcx*8]
ror rax, 0x28
xor rdx, rax
mov rax, qword [rsp + 0x40]
shr rax, 8
movzx ecx, al
mov rax, qword [r10 + rcx*8]
ror rax, 0x30
xor rdx, rax
movzx eax, r11b
mov r11, qword [rsp + 0x38]
mov rcx, qword [r10 + rax*8]
ror rcx, 0x18
xor rdx, rcx
movzx eax, r11b
mov r10, qword [r10 + rax*8]
mov rax, qword [rsp + 0x30]
shr rax, 0x38
ror r10, 0x38
xor r10, rdx
xor r10, rbx
lea rbx, [0x180372100]
xor r10, rsi
mov rsi, qword [rsp + 0x50]
xor r10, qword [rbx + rax*8]
mov rax, qword [rsp + 0x68]
xor r10, qword [rax + 0x10]
mov rax, qword [rsp + 0x58]
shr rax, 0x10
movzx ecx, al
mov rax, rsi
shr rax, 8
mov qword [rsp + 0x30], r10
mov rdx, qword [rbx + rcx*8]
movzx ecx, al
ror rdx, 0x28
mov rax, qword [rbx + rcx*8]
ror rax, 0x30
xor rdx, rax
movzx eax, dil
lea rdi, [0x180372100]
ror r15, 0x10
ror r13, 0x18
mov rcx, qword [rbx + rax*8]
mov rbx, qword [rsp + 0x40]
ror rcx, 0x20
xor rdx, rcx
movzx eax, bl
mov rcx, qword [rdi + rax*8]
mov rax, qword [rbp - 0x80]
ror rax, 8
ror rcx, 0x38
xor rdx, rcx
xor rdx, r15
mov r15, qword [rsp + 0x58]
xor rdx, rax
mov rax, r11
shr rax, 0x38
xor rdx, r13
mov r13, qword [rsp + 0x68]
mov r11, rdx
xor r11, qword [rdi + rax*8]
mov rax, r15
xor r11, qword [r13 + 0x18]
shr rax, 8
movzx ecx, al
movzx eax, r14b
lea r14, [0x180372100]
mov qword [rsp + 0x38], r11
mov rdi, qword [rdi + rcx*8]
mov rcx, qword [r14 + rax*8]
ror rdi, 0x30
ror rcx, 0x28
xor rdi, rcx
movzx eax, sil
mov rcx, qword [r14 + rax*8]
mov rax, qword [rbp - 0x78]
ror rax, 0x10
ror rcx, 0x38
xor rdi, rcx
xor rdi, rax
mov rax, qword [rbp - 0x70]
ror rax, 0x20
xor rdi, rax
mov rax, qword [rbp - 0x68]
ror rax, 8
xor rdi, rax
mov rax, qword [rbp - 0x60]
ror rax, 0x18
xor rdi, rax
mov rax, rbx
shr rax, 0x38
xor rdi, qword [r14 + rax*8]
xor rdi, qword [r13 + 0x20]
movzx eax, r12b
mov qword [rsp + 0x40], rdi
mov rdx, qword [r14 + rax*8]
ror rdx, 0x30
movzx eax, r15b
mov rcx, qword [r14 + rax*8]
mov rax, qword [rbp - 0x58]
ror rax, 8
ror rcx, 0x38
xor rdx, rcx
xor rdx, rax
mov rax, qword [rbp - 0x50]
ror rax, 0x18
xor rdx, rax
mov rax, qword [rbp - 0x48]
ror rax, 0x10
xor rdx, rax
mov rax, qword [rbp - 0x40]
ror rax, 0x28
xor rdx, rax
mov rax, qword [rbp - 0x38]
ror rax, 0x20
xor rdx, rax
mov rax, rsi
shr rax, 0x38
xor rdx, qword [r14 + rax*8]
movzx eax, byte [rsp + 0x20]
xor rdx, qword [r13 + 0x28]
mov qword [rsp + 0x50], rdx
mov rsi, qword [r14 + rax*8]
mov rax, qword [rbp - 0x30]
ror rax, 8
ror rsi, 0x38
xor rsi, rax
mov rax, qword [rbp - 0x28]
ror rax, 0x20
xor rsi, rax
mov rax, qword [rbp - 0x20]
ror rax, 0x30
xor rsi, rax
mov rax, qword [rbp - 0x18]
ror rax, 0x28
xor rsi, rax
mov rax, qword [rbp - 0x10]
ror rax, 0x10
xor rsi, rax
mov rax, qword [rbp - 8]
ror rax, 0x18
xor rsi, rax
mov rax, r15
shr rax, 0x38
xor rsi, qword [r14 + rax*8]
xor rsi, qword [r13 + 0x30]
add r13, 0x40
sub qword [rsp + 0x70], 1
mov qword [rsp + 0x58], rsi
mov qword [rsp + 0x68], r13
jne 0x18016f610
mov rbx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp]
xor rcx, qword [rbp + 8]
xor rcx, qword [rsp + 0x60]
mov qword [rax], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x20]
xor rcx, qword [rax + 8]
xor rcx, r8
mov qword [rax + 8], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x28]
xor rcx, qword [rax + 0x10]
xor rcx, r9
mov qword [rax + 0x10], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x30]
xor rcx, qword [rax + 0x18]
xor rcx, r10
mov qword [rax + 0x18], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x38]
xor rcx, qword [rax + 0x20]
xor rcx, r11
mov qword [rax + 0x20], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x40]
xor rcx, qword [rax + 0x28]
xor rcx, rdi
mov qword [rax + 0x28], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x48]
xor rcx, qword [rax + 0x30]
xor rcx, rdx
mov qword [rax + 0x30], rcx
mov rax, qword [rbx]
mov rcx, qword [rbp + 0x50]
xor rcx, qword [rax + 0x38]
xor rcx, rsi
mov qword [rax + 0x38], rcx
mov rax, qword [rsp + 0x78]
inc rax
mov qword [rsp + 0x78], rax
cmp rax, qword [rbp + 0x58]
jne 0x18016eab0
mov r14, qword [rsp + 0x4a8]
mov r13, qword [rsp + 0x4b0]
mov r12, qword [rsp + 0x4e8]
mov rdi, qword [rsp + 0x4e0]
mov rsi, qword [rsp + 0x4d8]
mov r15, qword [rsp + 0x4a0]
mov rcx, qword [rbp + 0x380]
xor rcx, rsp
call fcn.1800a5910
movaps xmm6, xmmword [rsp + 0x490]
add rsp, 0x4b8
pop rbx
pop rbp
ret
lea r8, [0x1803e4d70]
lea rdx, str.take
lea rcx, str.remaining_____count
call fcn.1800d2170
int3