Function at 0x64e6f0
Capabilities:
Encode data using xor
Hash data using tiger

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x58
mov esi, dword [rcx + 0x58]
mov rdi, r8
mov qword [rsp + 0xa8], rdx
and esi, 0x3f
mov r11, rcx
lea rbx, [0x00858a70]
jbe 0x64f6e6
lea rax, [rax + 0x20]
lea rcx, [rsp + 0xb0]
mov edx, 0x40
sub rdx, rsi
mov qword [rax], rdx
cmp rdx, r8
mov rdx, qword [rsp + 0xa8]
cmovae rax, rcx
lea rcx, [rsi + r11]
mov rbx, qword [rax]
mov r8, rbx
call fcn.006a4bf0
mov rdx, qword [rsp + 0xa8]
mov r11, qword [rsp + 0xa0]
add qword [r11 + 0x58], rbx
add rdx, rbx
sub rdi, rbx
lea rax, [rbx + rsi]
lea rbx, [0x00858a70]
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x28], rdi
cmp rax, 0x40
jne 0x64f6e6
mov r9, qword [r11 + 0x50]
mov rax, qword [r11 + 0x38]
mov rbp, qword [r11]
mov r10, qword [r11 + 0x40]
mov r12, qword [r11 + 8]
mov rdi, qword [r11 + 0x30]
mov r13, qword [r11 + 0x10]
mov r14, qword [r11 + 0x18]
mov r15, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x38], r9
xor r9, rbp
mov qword [rsp + 0x30], r10
mov qword [rsp + 0xb0], rdi
mov rax, r9
shr rax, 0x30
movzx edx, al
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r12
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r10
add r8, qword [r11 + 0x48]
shr rax, 0x30
movzx edx, al
lea r11, [r8 + r8*4]
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
mov rax, r10
xor r11, r13
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
add r8, r9
lea r9, [r8 + r8*4]
mov rax, r11
shr rax, 0x30
movzx edx, al
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r11
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, r14
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
movzx edx, al
lea r10, [r8 + r8*4]
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r15
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r11
movzx edx, al
lea r11, [r8 + r8*4]
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
sub r11, r8
xor r11, rsi
mov rax, r10
shr rax, 0x28
movzx edx, al
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r11
shr rax, 0x30
add r8, r9
movzx edx, al
lea r9, [r8 + r8*4]
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r11
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, rdi
lea rdi, [0x00858a70]
mov r8, qword [rbx + rdx*8 + 0x800]
mov rax, r11
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
mov r10, qword [rsp + 0xb8]
movzx edx, al
lea rbx, [r8 + r8*4]
mov rax, r9
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r9
shr rax, 0x28
sub rbx, r8
movzx edx, al
mov rax, r9
xor rbx, r10
mov r8, qword [rdi + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
xor r8, qword [rdi + rcx*8 + 0x1800]
mov rax, r9
shr rax, 0x38
xor r8, qword [rdi + rax*8]
mov rax, rbx
shr rax, 0x30
add r8, r11
lea r11, [0x00858a70]
movzx edx, al
lea rdi, [r8 + r8*4]
mov rax, rbx
mov r8, qword [r11 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rbx
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor r8, qword [r11 + rcx*8 + 0x800]
movabs rcx, 0xa5a5a5a5a5a5a5a5
xor r8, qword [r11 + rax*8]
mov rax, r10
xor rax, rcx
mov rcx, qword [rsp + 0xb0]
sub rdi, r8
sub rbp, rax
xor r12, rbp
add r13, r12
mov rax, r12
not rax
shl rax, 0x13
xor rax, r13
sub r14, rax
xor r15, r14
add rsi, r15
mov rax, r15
not rax
shr rax, 0x17
xor rax, rsi
sub rcx, rax
xor r10, rcx
add rbp, r10
mov rax, r10
not rax
xor rdi, rbp
shl rax, 0x13
xor rax, rbp
sub r12, rax
xor r13, r12
add r14, r13
mov rax, r13
not rax
shr rax, 0x17
xor rax, r14
sub r15, rax
xor rsi, r15
add rcx, rsi
mov qword [rsp + 0x20], rsi
mov rax, rcx
mov qword [rsp + 0xb0], rcx
movabs rcx, 0x123456789abcdef
xor rax, rcx
sub r10, rax
mov rax, rbx
shr rax, 0x28
mov qword [rsp + 0xb8], r10
movzx edx, al
mov rax, rbx
mov r8, qword [r11 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rbx
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rbx
xor r8, qword [r11 + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [r11 + rax*8]
add r8, r9
lea r9, [r8 + r8*4]
mov rax, rdi
shr rax, 0x30
movzx edx, al
mov rax, rdi
mov r8, qword [r11 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rdi
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, dil
xor r8, qword [r11 + rcx*8 + 0x800]
xor r8, qword [r11 + rax*8]
mov rax, rdi
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, r12
mov rax, rdi
mov r10, qword [r11 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rdi
xor r10, qword [r11 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rdi
xor r10, qword [r11 + rcx*8 + 0x1800]
shr rax, 0x38
xor r10, qword [r11 + rax*8]
mov rax, r9
shr rax, 0x30
add r10, rbx
movzx edx, al
mov rax, r9
mov r8, qword [r11 + rdx*8 + 0x1800]
shr rax, 0x20
imul r10, r10, 7
movzx ecx, al
mov rax, r9
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [r11 + rcx*8 + 0x800]
xor r8, qword [r11 + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r13
mov rax, r9
mov r11, qword [r11 + rdx*8 + 0x800]
shr rax, 0x18
lea rdx, [0x00858a70]
movzx ecx, al
mov rax, r9
xor r11, qword [rdx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r11, qword [rdx + rcx*8 + 0x1800]
shr rax, 0x38
xor r11, qword [rdx + rax*8]
mov rax, r10
shr rax, 0x30
add r11, rdi
lea rdi, [0x00858a70]
movzx edx, al
mov rax, r10
imul r11, r11, 7
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
xor r11, r14
mov rax, r10
mov rbx, qword [rdi + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor rbx, qword [rdi + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor rbx, qword [rdi + rcx*8 + 0x1800]
shr rax, 0x38
xor rbx, qword [rdi + rax*8]
mov rax, r11
shr rax, 0x30
add rbx, r9
movzx edx, al
mov rax, r11
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x20
imul rbx, rbx, 7
movzx ecx, al
mov rax, r11
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r11
shr rax, 0x28
sub rbx, r8
movzx edx, al
xor rbx, r15
mov rax, r11
mov r9, qword [rdi + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r9, qword [rdi + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r9, qword [rdi + rcx*8 + 0x1800]
shr rax, 0x38
xor r9, qword [rdi + rax*8]
mov rax, rbx
shr rax, 0x30
add r9, r10
lea r10, [0x00858a70]
movzx edx, al
mov rax, rbx
imul r9, r9, 7
mov r8, qword [r10 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rbx
xor r8, qword [r10 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor r8, qword [r10 + rcx*8 + 0x800]
xor r8, qword [r10 + rax*8]
mov rax, rbx
shr rax, 0x28
sub r9, r8
movzx edx, al
mov rax, rbx
xor r9, rsi
mov rdi, qword [r10 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rbx
xor rdi, qword [r10 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
xor rdi, qword [r10 + rcx*8 + 0x1800]
mov rax, rbx
shr rax, 0x38
xor rdi, qword [r10 + rax*8]
mov rax, r9
shr rax, 0x30
add rdi, r11
mov r11, qword [rsp + 0xb0]
movzx edx, al
mov rax, r9
imul rdi, rdi, 7
mov r8, qword [r10 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [r10 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [r10 + rcx*8 + 0x800]
xor r8, qword [r10 + rax*8]
mov rax, r9
shr rax, 0x28
sub rdi, r8
movzx edx, al
xor rdi, r11
mov rax, r9
mov rsi, qword [r10 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor rsi, qword [r10 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor rsi, qword [r10 + rcx*8 + 0x1800]
shr rax, 0x38
xor rsi, qword [r10 + rax*8]
mov rax, rdi
shr rax, 0x30
add rsi, rbx
mov rbx, qword [rsp + 0xb8]
movzx edx, al
mov rax, rdi
imul rsi, rsi, 7
mov r8, qword [r10 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rdi
xor r8, qword [r10 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, dil
xor r8, qword [r10 + rcx*8 + 0x800]
xor r8, qword [r10 + rax*8]
mov rax, rdi
shr rax, 0x28
sub rsi, r8
lea r8, [0x00858a70]
movzx edx, al
xor rsi, rbx
mov rax, rdi
mov r10, qword [r10 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rdi
xor r10, qword [r8 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rdi
xor r10, qword [r8 + rcx*8 + 0x1800]
shr rax, 0x38
xor r10, qword [r8 + rax*8]
mov rax, rsi
shr rax, 0x30
add r10, r9
movzx edx, al
mov rax, rsi
imul r10, r10, 7
shr rax, 0x20
movzx ecx, al
mov r8, qword [r8 + rdx*8 + 0x1800]
lea rdx, [0x00858a70]
mov rax, rsi
xor r8, qword [rdx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, sil
xor r8, qword [rdx + rcx*8 + 0x800]
movabs rcx, 0xa5a5a5a5a5a5a5a5
xor r8, qword [rdx + rax*8]
mov rax, rbx
xor rax, rcx
mov rcx, qword [rsp + 0x20]
sub r10, r8
sub rbp, rax
xor r12, rbp
add r13, r12
mov rax, r12
not rax
shl rax, 0x13
xor rax, r13
sub r14, rax
xor r15, r14
add rcx, r15
mov rax, r15
not rax
shr rax, 0x17
xor rax, rcx
sub r11, rax
xor rbx, r11
add rbp, rbx
mov rax, rbx
not rax
xor r10, rbp
shl rax, 0x13
xor rax, rbp
lea rbp, [0x00858a70]
sub r12, rax
xor r13, r12
add r14, r13
mov rax, r13
not rax
shr rax, 0x17
xor rax, r14
sub r15, rax
xor rcx, r15
add r11, rcx
mov qword [rsp + 0x20], rcx
movabs rcx, 0x123456789abcdef
mov rax, r11
mov qword [rsp + 0xb0], r11
xor rax, rcx
sub rbx, rax
mov rax, rsi
shr rax, 0x28
mov qword [rsp + 0xb8], rbx
movzx edx, al
mov rax, rsi
mov r11, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rsi
xor r11, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rsi
xor r11, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r11, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x30
add r11, rdi
movzx edx, al
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
imul r11, r11, 7
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
xor r11, r12
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r11
shr rax, 0x30
add r8, rsi
movzx edx, al
lea r9, [r8 + r8*8]
mov rax, r11
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r11
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, r13
mov rax, r11
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
movzx edx, al
lea r10, [r8 + r8*8]
mov rax, r9
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
mov rax, r9
xor r10, r14
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r11
movzx edx, al
lea rbx, [r8 + r8*8]
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x28
sub rbx, r8
movzx edx, al
xor rbx, r15
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, rbx
shr rax, 0x30
add r8, r9
movzx edx, al
lea r9, [r8 + r8*8]
mov rax, rbx
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rbx
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, rbx
shr rax, 0x28
sub r9, r8
xor r9, qword [rsp + 0x20]
movzx edx, al
mov rax, rbx
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rbx
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rbx
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
movzx edx, al
mov rax, r9
lea r11, [r8 + r8*8]
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
xor r8, qword [rbp + rcx*8 + 0x1000]
mov rdi, qword [rsp + 0xb0]
mov rax, r9
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x28
sub r11, r8
movzx edx, al
xor r11, rdi
mov rax, r9
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r11
shr rax, 0x30
add r8, rbx
lea rbx, [0x00858a70]
movzx edx, al
lea r10, [r8 + r8*8]
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, qword [rsp + 0xb8]
sub r10, r8
xor r10, rax
mov rax, r11
shr rax, 0x28
movzx edx, al
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r9
movzx edx, al
lea r9, [r8 + r8*8]
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r10
sub r9, r8
shr rax, 0x28
movzx edx, al
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x800]
mov rdi, qword [rsp + 0x28]
mov rdx, qword [rsp + 0xa8]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1800]
mov rcx, qword [rsp + 0x30]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
add r8, r11
mov r11, qword [rsp + 0xa0]
sub r10, qword [r11 + 0x48]
lea rax, [r8 + r8*8]
xor rcx, rax
mov rax, qword [rsp + 0x38]
mov qword [r11 + 0x48], r10
add rax, r9
mov qword [r11 + 0x40], rcx
mov qword [r11 + 0x50], rax
cmp rdi, 0x40
jb 0x650676
mov rax, rdi
shr rax, 6
mov qword [rsp + 0x30], rax
imul rax, rax, 0xffffffffffffffc0
add rdi, rax
mov qword [rsp + 0x28], rdi
nop dword [rax + rax]
mov rax, qword [rdx + 0x38]
mov r9, qword [r11 + 0x50]
mov rbp, qword [rdx]
mov r12, qword [rdx + 8]
mov r13, qword [rdx + 0x10]
mov rdi, qword [rdx + 0x30]
mov r10, qword [r11 + 0x40]
mov r14, qword [rdx + 0x18]
mov r15, qword [rdx + 0x20]
mov rsi, qword [rdx + 0x28]
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0x40], r9
xor r9, rbp
mov qword [rsp + 0x38], r10
mov qword [rsp + 0xb0], rdi
mov rax, r9
shr rax, 0x30
movzx edx, al
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r12
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r10
add r8, qword [r11 + 0x48]
shr rax, 0x30
movzx edx, al
lea r11, [r8 + r8*4]
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
mov rax, r10
xor r11, r13
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
add r8, r9
lea r9, [r8 + r8*4]
mov rax, r11
shr rax, 0x30
movzx edx, al
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r11
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, r14
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
movzx edx, al
lea r10, [r8 + r8*4]
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r15
mov rax, r9
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r11
movzx edx, al
lea r11, [r8 + r8*4]
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
sub r11, r8
xor r11, rsi
mov rax, r10
shr rax, 0x28
movzx edx, al
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r11
shr rax, 0x30
add r8, r9
movzx edx, al
lea r9, [r8 + r8*4]
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r11
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, rdi
lea rdi, [0x00858a70]
mov r8, qword [rbx + rdx*8 + 0x800]
mov rax, r11
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
mov r10, qword [rsp + 0xb8]
movzx edx, al
lea rbx, [r8 + r8*4]
mov rax, r9
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r9
shr rax, 0x28
sub rbx, r8
movzx edx, al
mov rax, r9
xor rbx, r10
mov r8, qword [rdi + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
xor r8, qword [rdi + rcx*8 + 0x1800]
mov rax, r9
shr rax, 0x38
xor r8, qword [rdi + rax*8]
mov rax, rbx
shr rax, 0x30
add r8, r11
lea r11, [0x00858a70]
movzx edx, al
lea rdi, [r8 + r8*4]
mov rax, rbx
mov r8, qword [r11 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rbx
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor r8, qword [r11 + rcx*8 + 0x800]
movabs rcx, 0xa5a5a5a5a5a5a5a5
xor r8, qword [r11 + rax*8]
mov rax, r10
xor rax, rcx
mov rcx, qword [rsp + 0xb0]
sub rdi, r8
sub rbp, rax
xor r12, rbp
add r13, r12
mov rax, r12
not rax
shl rax, 0x13
xor rax, r13
sub r14, rax
xor r15, r14
add rsi, r15
mov rax, r15
not rax
shr rax, 0x17
xor rax, rsi
sub rcx, rax
xor r10, rcx
add rbp, r10
mov rax, r10
not rax
xor rdi, rbp
shl rax, 0x13
xor rax, rbp
sub r12, rax
xor r13, r12
add r14, r13
mov rax, r13
not rax
shr rax, 0x17
xor rax, r14
sub r15, rax
xor rsi, r15
add rcx, rsi
mov qword [rsp + 0x20], rsi
mov rax, rcx
mov qword [rsp + 0xb0], rcx
movabs rcx, 0x123456789abcdef
xor rax, rcx
sub r10, rax
mov rax, rbx
shr rax, 0x28
mov qword [rsp + 0xb8], r10
movzx edx, al
mov rax, rbx
mov r8, qword [r11 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rbx
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rbx
xor r8, qword [r11 + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [r11 + rax*8]
add r8, r9
lea r9, [r8 + r8*4]
mov rax, rdi
shr rax, 0x30
movzx edx, al
mov rax, rdi
mov r8, qword [r11 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rdi
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, dil
xor r8, qword [r11 + rcx*8 + 0x800]
xor r8, qword [r11 + rax*8]
mov rax, rdi
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, r12
mov rax, rdi
mov r10, qword [r11 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rdi
xor r10, qword [r11 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rdi
xor r10, qword [r11 + rcx*8 + 0x1800]
shr rax, 0x38
xor r10, qword [r11 + rax*8]
mov rax, r9
shr rax, 0x30
add r10, rbx
movzx edx, al
mov rax, r9
mov r8, qword [r11 + rdx*8 + 0x1800]
shr rax, 0x20
imul r10, r10, 7
movzx ecx, al
mov rax, r9
xor r8, qword [r11 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [r11 + rcx*8 + 0x800]
xor r8, qword [r11 + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
xor r10, r13
mov rax, r9
mov r11, qword [r11 + rdx*8 + 0x800]
shr rax, 0x18
lea rdx, [0x00858a70]
movzx ecx, al
mov rax, r9
xor r11, qword [rdx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r11, qword [rdx + rcx*8 + 0x1800]
shr rax, 0x38
xor r11, qword [rdx + rax*8]
mov rax, r10
shr rax, 0x30
add r11, rdi
lea rdi, [0x00858a70]
movzx edx, al
mov rax, r10
imul r11, r11, 7
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
xor r11, r14
mov rax, r10
mov rbx, qword [rdi + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor rbx, qword [rdi + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor rbx, qword [rdi + rcx*8 + 0x1800]
shr rax, 0x38
xor rbx, qword [rdi + rax*8]
mov rax, r11
shr rax, 0x30
add rbx, r9
movzx edx, al
mov rax, r11
mov r8, qword [rdi + rdx*8 + 0x1800]
shr rax, 0x20
imul rbx, rbx, 7
movzx ecx, al
mov rax, r11
xor r8, qword [rdi + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rdi + rcx*8 + 0x800]
xor r8, qword [rdi + rax*8]
mov rax, r11
shr rax, 0x28
sub rbx, r8
movzx edx, al
xor rbx, r15
mov rax, r11
mov r9, qword [rdi + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r9, qword [rdi + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r9, qword [rdi + rcx*8 + 0x1800]
shr rax, 0x38
xor r9, qword [rdi + rax*8]
mov rax, rbx
shr rax, 0x30
add r9, r10
lea r10, [0x00858a70]
movzx edx, al
mov rax, rbx
imul r9, r9, 7
mov r8, qword [r10 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rbx
xor r8, qword [r10 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor r8, qword [r10 + rcx*8 + 0x800]
xor r8, qword [r10 + rax*8]
mov rax, rbx
shr rax, 0x28
sub r9, r8
movzx edx, al
mov rax, rbx
xor r9, rsi
mov rdi, qword [r10 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rbx
xor rdi, qword [r10 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
xor rdi, qword [r10 + rcx*8 + 0x1800]
mov rax, rbx
shr rax, 0x38
xor rdi, qword [r10 + rax*8]
mov rax, r9
shr rax, 0x30
add rdi, r11
mov r11, qword [rsp + 0xb0]
movzx edx, al
mov rax, r9
imul rdi, rdi, 7
mov r8, qword [r10 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [r10 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [r10 + rcx*8 + 0x800]
xor r8, qword [r10 + rax*8]
mov rax, r9
shr rax, 0x28
sub rdi, r8
movzx edx, al
xor rdi, r11
mov rax, r9
mov rsi, qword [r10 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor rsi, qword [r10 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor rsi, qword [r10 + rcx*8 + 0x1800]
shr rax, 0x38
xor rsi, qword [r10 + rax*8]
mov rax, rdi
shr rax, 0x30
add rsi, rbx
mov rbx, qword [rsp + 0xb8]
movzx edx, al
mov rax, rdi
imul rsi, rsi, 7
mov r8, qword [r10 + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rdi
xor r8, qword [r10 + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, dil
xor r8, qword [r10 + rcx*8 + 0x800]
xor r8, qword [r10 + rax*8]
mov rax, rdi
shr rax, 0x28
sub rsi, r8
lea r8, [0x00858a70]
movzx edx, al
xor rsi, rbx
mov rax, rdi
mov r10, qword [r10 + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rdi
xor r10, qword [r8 + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rdi
xor r10, qword [r8 + rcx*8 + 0x1800]
shr rax, 0x38
xor r10, qword [r8 + rax*8]
mov rax, rsi
shr rax, 0x30
add r10, r9
movzx edx, al
mov rax, rsi
imul r10, r10, 7
shr rax, 0x20
movzx ecx, al
mov r8, qword [r8 + rdx*8 + 0x1800]
lea rdx, [0x00858a70]
mov rax, rsi
xor r8, qword [rdx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, sil
xor r8, qword [rdx + rcx*8 + 0x800]
movabs rcx, 0xa5a5a5a5a5a5a5a5
xor r8, qword [rdx + rax*8]
mov rax, rbx
xor rax, rcx
mov rcx, qword [rsp + 0x20]
sub r10, r8
sub rbp, rax
xor r12, rbp
add r13, r12
mov rax, r12
not rax
shl rax, 0x13
xor rax, r13
sub r14, rax
xor r15, r14
add rcx, r15
mov rax, r15
not rax
shr rax, 0x17
xor rax, rcx
sub r11, rax
xor rbx, r11
add rbp, rbx
mov rax, rbx
not rax
xor r10, rbp
shl rax, 0x13
xor rax, rbp
lea rbp, [0x00858a70]
sub r12, rax
xor r13, r12
add r14, r13
mov rax, r13
not rax
shr rax, 0x17
xor rax, r14
sub r15, rax
xor rcx, r15
add r11, rcx
mov qword [rsp + 0x20], rcx
movabs rcx, 0x123456789abcdef
mov rax, r11
mov qword [rsp + 0xb0], r11
xor rax, rcx
sub rbx, rax
mov rax, rsi
shr rax, 0x28
mov qword [rsp + 0xb8], rbx
movzx edx, al
mov rax, rsi
mov r11, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rsi
xor r11, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rsi
xor r11, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r11, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x30
add r11, rdi
movzx edx, al
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
imul r11, r11, 7
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x28
sub r11, r8
movzx edx, al
xor r11, r12
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r11
shr rax, 0x30
add r8, rsi
movzx edx, al
lea r9, [r8 + r8*8]
mov rax, r11
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r11
shr rax, 0x28
sub r9, r8
movzx edx, al
xor r9, r13
mov rax, r11
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
movzx edx, al
lea r10, [r8 + r8*8]
mov rax, r9
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x28
sub r10, r8
movzx edx, al
mov rax, r9
xor r10, r14
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r11
movzx edx, al
lea rbx, [r8 + r8*8]
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r10
shr rax, 0x28
sub rbx, r8
movzx edx, al
xor rbx, r15
mov rax, r10
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r10
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, rbx
shr rax, 0x30
add r8, r9
movzx edx, al
lea r9, [r8 + r8*8]
mov rax, rbx
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, rbx
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, bl
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, rbx
shr rax, 0x28
sub r9, r8
xor r9, qword [rsp + 0x20]
movzx edx, al
mov rax, rbx
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, rbx
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, rbx
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x30
add r8, r10
movzx edx, al
mov rax, r9
lea r11, [r8 + r8*8]
mov r8, qword [rbp + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
xor r8, qword [rbp + rcx*8 + 0x1000]
mov rdi, qword [rsp + 0xb0]
mov rax, r9
shr rax, 0x10
movzx ecx, al
movzx eax, r9b
xor r8, qword [rbp + rcx*8 + 0x800]
xor r8, qword [rbp + rax*8]
mov rax, r9
shr rax, 0x28
sub r11, r8
movzx edx, al
xor r11, rdi
mov rax, r9
mov r8, qword [rbp + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r9
xor r8, qword [rbp + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbp + rax*8]
mov rax, r11
shr rax, 0x30
add r8, rbx
lea rbx, [0x00858a70]
movzx edx, al
lea r10, [r8 + r8*8]
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r11b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, qword [rsp + 0xb8]
sub r10, r8
xor r10, rax
mov rax, r11
shr rax, 0x28
movzx edx, al
mov rax, r11
mov r8, qword [rbx + rdx*8 + 0x800]
shr rax, 0x18
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
movzx ecx, al
mov rax, r11
xor r8, qword [rbx + rcx*8 + 0x1800]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
mov rax, r10
shr rax, 0x30
add r8, r9
movzx edx, al
lea r9, [r8 + r8*8]
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x1800]
shr rax, 0x20
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 0x10
movzx ecx, al
movzx eax, r10b
xor r8, qword [rbx + rcx*8 + 0x800]
xor r8, qword [rbx + rax*8]
mov rax, r10
sub r9, r8
shr rax, 0x28
movzx edx, al
mov rax, r10
mov r8, qword [rbx + rdx*8 + 0x800]
mov rdx, qword [rsp + 0xa8]
shr rax, 0x18
movzx ecx, al
mov rax, r10
add rdx, 0x40
xor r8, qword [rbx + rcx*8 + 0x1000]
shr rax, 8
mov qword [rsp + 0xa8], rdx
movzx ecx, al
mov rax, r10
xor r8, qword [rbx + rcx*8 + 0x1800]
mov rcx, qword [rsp + 0x38]
shr rax, 0x38
xor r8, qword [rbx + rax*8]
add r8, r11
mov r11, qword [rsp + 0xa0]
sub r10, qword [r11 + 0x48]
add qword [r11 + 0x58], 0x40
lea rax, [r8 + r8*8]
xor rcx, rax
mov rax, qword [rsp + 0x40]
mov qword [r11 + 0x48], r10
add rax, r9
sub qword [rsp + 0x30], 1
mov qword [r11 + 0x40], rcx
mov qword [r11 + 0x50], rax
jne 0x64f710
mov rdi, qword [rsp + 0x28]
mov r8, rdi
mov rcx, r11
call fcn.006a4bf0
mov r11, qword [rsp + 0xa0]
add qword [r11 + 0x58], rdi
add rsp, 0x58
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret