Function at 0x14000a940
Capabilities:
Hash data using djb2

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x160
movzx eax, byte [rdx + 2]
mov qword [rsp + 0x158], rcx
movzx ecx, word [rdx]
movzx r10d, byte [rdx + 0xf]
mov rsi, rdx
movzx r11d, word [rsi + 0x1a]
mov rbx, rsi
movzx edi, word [r8 + 0xd]
movzx r14d, word [r8 + 0x1a]
movzx r15d, byte [r9 + 7]
movzx r12d, word [r9 + 0xd]
mov r13d, 0x1502
mov qword [rsp + 0xc8], r9
and eax, 0x1f
shl r10d, 0x10
shl r15d, 0x10
shl eax, 0x10
or rax, rcx
movzx ecx, byte [rdx + 7]
mov qword [rsp + 0x98], rax
movzx eax, word [rdx + 5]
shl ecx, 0x10
or ecx, eax
movzx eax, word [rdx + 0xd]
or r10d, eax
movzx eax, word [rdx + 0x12]
movzx edx, byte [rdx + 0x14]
shl edx, 0x10
or edx, eax
movzx eax, byte [rsi + 0x17]
mov qword [rsp + 0x30], rdx
movzx edx, word [rsi + 0x15]
and eax, 0x1f
shl eax, 0x10
or rax, rdx
movzx edx, byte [rsi + 0x1c]
movzx esi, byte [r8 + 7]
mov qword [rsp + 0xb0], rax
movzx eax, byte [r8 + 2]
shl edx, 0x10
shl esi, 0x10
or edx, r11d
movzx r11d, word [r8]
and eax, 0x1f
shl eax, 0x10
or rax, r11
movzx r11d, word [r8 + 5]
mov rbp, rax
movzx eax, byte [r8 + 0x14]
or esi, r11d
movzx r11d, byte [r8 + 0xf]
shl eax, 0x10
shl r11d, 0x10
or r11d, edi
movzx edi, word [r8 + 0x12]
or eax, edi
movzx edi, word [r8 + 0x15]
mov qword [rsp + 0x10], rax
movzx eax, byte [r8 + 0x17]
and eax, 0x1f
shl eax, 0x10
or rax, rdi
movzx edi, byte [r8 + 0x1c]
mov qword [rsp + 0x38], rax
movzx eax, byte [r9 + 2]
shl edi, 0x10
or edi, r14d
movzx r14d, word [r9]
and eax, 0x1f
shl eax, 0x10
or rax, r14
movzx r14d, word [r9 + 5]
mov qword [rsp + 0xc0], rax
or r15d, r14d
movzx r14d, byte [r9 + 0xf]
shl r14d, 0x10
or r14d, r12d
mov r12d, 0x1501
bextr eax, r10d, r12d
movzx r10d, word [r9 + 0x12]
mov qword [rsp + 0x78], rax
bextr eax, r11d, r12d
mov r11, rbp
mov qword [rsp + 0x20], r11
mov qword [rsp + 8], rax
bextr eax, r14d, r12d
movzx r12d, byte [r9 + 0x1c]
bextr r14d, ecx, r13d
bextr ecx, edi, r13d
mov qword [rsp + 0x58], rax
movzx eax, byte [r9 + 0x14]
mov qword [rsp + 0x18], rcx
bextr ecx, r15d, r13d
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb8], rcx
shl r12d, 0x10
shl eax, 0x10
or eax, r10d
movzx r10d, word [r9 + 0x1a]
mov r9d, 0x1507
mov qword [rsp + 0x48], rax
bextr eax, edx, r13d
mov qword [rsp + 0x80], rax
bextr eax, esi, r13d
mov rsi, qword [rsp + 0x98]
or r12d, r10d
mov r10, rbx
mov qword [rsp + 0xa0], r10
bextr ecx, r12d, r13d
mov r12, rax
mov qword [rsp + 0xf8], rcx
mov ecx, 0x1505
bextr edx, dword [rbx + 2], ecx
bextr edi, dword [r8 + 2], ecx
mov rbx, r8
mov r8, rbp
mov rcx, rsi
mov qword [rsp + 0x70], rbx
imul rcx, rdi
imul r8, rdx
mov rbp, rdi
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x28], rbp
add r8, rcx
mov rcx, rdi
imul rcx, rdx
mov rdi, rax
imul rdi, rdx
mov qword [rsp + 0xf0], r8
mov r8, r11
imul r8, r14
add r8, rcx
mov rcx, rax
imul rcx, rsi
bextr eax, dword [r10 + 7], r9d
mov r9, r11
add r8, rcx
mov ecx, 0x1507
mov qword [rsp + 0xe8], r8
bextr r8d, dword [rbx + 7], ecx
mov rcx, rsi
imul r9, rax
mov r13, rax
mov eax, 0x1504
mov qword [rsp + 0x68], r13
bextr eax, dword [r10 + 0xa], eax
imul rcx, r8
mov qword [rsp + 0x60], r8
mov r10, rax
mov qword [rsp + 0x88], r10
add rdi, rcx
mov rcx, r14
imul rcx, rbp
add r9, rcx
mov ecx, 0x1504
bextr r15d, dword [rbx + 0xa], ecx
add r9, rdi
mov rcx, rsi
mov rdi, rsi
mov rbx, r12
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0xe0], r9
mov r9, qword [rsp + 8]
mov rsi, r15
imul rcx, r15
mov r15, r12
imul r15, r14
mov r12, rbp
imul r12, r13
mov qword [rsp], rsi
add r15, rcx
mov rcx, r8
imul rcx, rdx
add r12, rcx
mov rcx, r11
imul rcx, rax
mov rax, rbx
imul rax, r13
add rcx, r12
mov r12, rbx
add rcx, r15
mov r15, r14
imul r15, r8
mov qword [rsp + 0x150], rcx
mov rcx, rsi
imul rcx, rdx
mov rdx, rbp
add r15, rcx
mov rcx, r9
imul rcx, rdi
add rax, rcx
mov rcx, rbp
add rax, qword [rsp + 0x58]
mov rbp, r10
imul rcx, r10
mov r10, qword [rsp + 0x78]
imul r12, rbp
mov rbp, qword [rsp + 0x90]
mov qword [rsp + 0x148], rax
mov rax, r11
imul rax, r10
add rax, rcx
mov rcx, r14
imul rcx, rsi
mov rsi, qword [rsp + 0x28]
add rax, r15
mov r15, r8
imul r15, r13
mov qword [rsp + 0xd8], rax
mov eax, 0x1506
add r15, rcx
mov rcx, qword [rsp + 0x70]
bextr r14d, dword [rcx + 0xf], eax
mov rcx, rdi
imul rcx, r14
mov qword [rsp + 0x58], r14
add r12, rcx
mov rcx, r9
imul rcx, rbp
add r12, rcx
mov rcx, r10
imul rcx, rdx
mov rdx, qword [rsp + 0xa0]
bextr r13d, dword [rdx + 0xf], eax
mov rax, r9
imul rax, qword [rsp + 0xa8]
mov r9, qword [rsp]
mov rdx, qword [rsp + 0x68]
imul r11, r13
mov qword [rsp + 0x50], r13
add r11, rcx
mov rcx, qword [rsp + 0x10]
add r11, r15
mov r15, rsi
imul r15, r13
add r11, r12
mov r12, rdi
mov qword [rsp + 0x140], r11
mov r11, rbx
imul r11, r10
shr ecx, 3
mov qword [rsp + 0x10], rcx
imul rcx, rdi
mov rdi, qword [rsp + 0x88]
add rax, rcx
mov rcx, qword [rsp + 0x48]
shr ecx, 3
add rax, rcx
mov rcx, r14
imul rcx, rbp
mov qword [rsp + 0x138], rax
mov rax, qword [rsp + 0x30]
add r11, rcx
mov rcx, r8
imul rcx, rdi
add r15, rcx
mov rcx, r9
imul rcx, rdx
shr eax, 3
mov qword [rsp + 0x30], rax
add r15, rcx
mov rcx, qword [rsp + 0x20]
imul rcx, rax
mov rax, qword [rsp + 0xc8]
add rcx, r15
mov r15, r10
imul r15, r8
mov r8, qword [rsp + 0x30]
add rcx, r11
mov r11, qword [rsp + 0x38]
mov qword [rsp + 0x130], rcx
mov rcx, qword [rsp + 0x10]
imul r11, r12
mov r12, rbx
imul r12, r13
mov rbx, qword [rsp + 0x20]
mov r13, qword [rsp + 0x98]
imul rcx, rbp
mov rbp, qword [rsp + 0xa8]
add rcx, r11
movzx r11d, word [rax + 0x15]
add rcx, r11
mov r11, r9
imul r11, rdi
mov r9, qword [rsp + 8]
mov rdi, r10
mov r10, rbx
add r15, r11
mov r11, rbp
imul r11, r14
mov r14, qword [rsp]
add r12, r11
mov r11, r9
imul r11, rdx
imul r9, qword [rsp + 0x88]
imul rdi, r14
add r12, r11
mov r11, r8
imul r11, rsi
mov rsi, qword [rsp + 0xb0]
imul r10, rsi
add r10, r11
mov r11, qword [rsp + 0x70]
add r10, r15
mov r15, qword [rsp + 0x38]
add r10, r12
mov r12d, 0x1505
add r10, rcx
mov rcx, r13
mov qword [rsp + 0x128], r10
bextr edx, dword [r11 + 0x17], r12d
mov r11, qword [rsp + 0x60]
imul r11, qword [rsp + 0x50]
mov qword [rsp + 0x48], rdx
imul rcx, rdx
mov rdx, qword [rsp + 0x10]
add r11, rdi
mov rdi, qword [rsp + 0x58]
mov r10, rdx
imul r10, rbp
mov rbp, qword [rsp + 0x90]
add r10, rcx
mov rcx, r15
imul rcx, rbp
add r10, rcx
bextr ecx, dword [rax + 0x17], r12d
mov r12, qword [rsp + 0x40]
mov rax, rsi
add r10, rcx
imul r12, r8
mov r8, qword [rsp + 0xa0]
mov rcx, rdi
mov qword [rsp + 0x120], r10
mov r10, qword [rsp + 0x68]
imul rcx, r10
add r12, rcx
mov ecx, 0x1505
bextr r8d, dword [r8 + 0x17], ecx
add r12, r9
mov r9, rsi
mov rsi, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
imul rax, rsi
imul rbx, r8
mov qword [rsp + 0xd0], r8
mov r8, qword [rsp + 0x78]
add rbx, rax
add rbx, r11
mov r11, rdx
imul r11, r10
mov r10, qword [rsp + 0xa8]
add rbx, r12
mov r12, rdi
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0x118], rbx
mov rbx, qword [rsp + 0x48]
imul r12, rdi
mov rax, rbx
imul rax, rbp
add r11, rax
mov rax, r15
mov r15, qword [rsp + 0x18]
imul rax, r10
add r11, rax
mov rax, r15
imul rax, r13
mov r13, qword [rsp + 0xd0]
add r11, rax
mov rax, r14
mov r14, qword [rsp + 0x60]
imul rax, qword [rsp + 0x50]
imul rcx, r14
add rcx, rax
mov rax, qword [rsp + 0x40]
imul rax, r9
mov r9, rsi
mov rsi, qword [rsp + 0x20]
imul r9, r13
add rax, r12
mov r12, qword [rsp + 8]
mov rdx, rsi
imul r12, r8
add rax, r12
mov r12, qword [rsp + 0x80]
imul rdx, r12
add rdx, r9
mov r9, r12
mov r12, qword [rsp + 0x20]
imul r9, qword [rsp + 0x28]
add rdx, rcx
mov rcx, r15
imul rcx, rbp
mov r15, qword [rsp + 0x68]
mov rbp, rdi
add rdx, rax
mov rax, qword [rsp + 0xc8]
add rdx, r11
mov r11, qword [rsp + 0x10]
mov qword [rsp + 0x110], rdx
mov eax, dword [rax + 0x1c]
imul r11, rdi
mov rdi, r8
shr eax, 7
add rcx, rax
mov rax, r10
imul rax, rbx
mov rbx, qword [rsp + 0x38]
mov r10, qword [rsp + 8]
mov qword [rsp + 0x108], rcx
mov rcx, rsi
mov rsi, qword [rsp + 0x30]
add r11, rax
mov rax, rbx
imul rax, r15
add r11, rax
mov rax, qword [rsp + 0x70]
mov edx, dword [rax + 0x1c]
mov rax, qword [rsp + 0x98]
shr edx, 7
imul rcx, rax
imul rax, rdx
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x100], rcx
mov rcx, qword [rsp + 0xb0]
add r11, rax
mov rax, rsi
imul rax, qword [rsp]
imul rcx, r14
mov r14, qword [rsp + 0x40]
add rcx, rax
mov rax, r8
mov r8, qword [rsp + 0x58]
mov rdx, r14
imul rdx, r13
mov r13, qword [rsp + 0x70]
imul rax, r8
add rdx, rax
mov rax, r10
imul rax, qword [rsp + 0x50]
add rdx, rax
mov rax, qword [rsp + 0xa0]
mov eax, dword [rax + 0x1c]
shr eax, 7
imul r12, rax
mov qword [rsp + 0xa0], rax
add r12, r9
mov r9, r14
imul r9, qword [rsp + 0x80]
mov r14, qword [rsp + 0xd0]
add r12, rcx
mov rcx, qword [rsp + 0x90]
add r12, rdx
mov rdx, rbx
imul rdx, rbp
mov rbp, qword [rsp + 0x10]
add r12, r11
mov r11, r10
imul r11, rsi
mov r10, qword [rsp + 0x28]
mov rsi, qword [rsp + 0xb0]
mov qword [rsp + 0x20], r12
mov r12, r8
imul rcx, r13
imul r10, rax
mov rax, qword [rsp]
add rdx, rcx
mov rcx, rbp
imul rcx, rdi
mov rdi, qword [rsp + 0x60]
add r11, rcx
mov rcx, qword [rsp + 0x48]
imul rcx, r15
add r11, rcx
mov rcx, r8
mov r8, qword [rsp + 0x50]
imul rcx, r8
add r9, rcx
mov rcx, rdi
imul rcx, r14
add r10, rcx
mov rcx, rsi
imul rcx, rax
add r10, rcx
mov rcx, qword [rsp + 0xa8]
add r10, r9
mov r9, qword [rsp + 0x18]
add r10, r11
mov r11, qword [rsp + 0x30]
add r10, rdx
mov qword [rsp + 0x28], r10
mov r10, qword [rsp + 0x48]
mov rdx, r9
imul rdx, rcx
imul rcx, r13
mov r13, r8
mov qword [rsp + 0x98], rdx
mov rdx, rbx
mov rbx, qword [rsp + 0x78]
imul rdx, rbx
imul rbx, r10
add rdx, rcx
mov rcx, r9
imul rcx, r15
mov r15, qword [rsp + 0xa0]
add rdx, rcx
mov rcx, rbp
imul rcx, r8
mov r8, qword [rsp + 8]
mov qword [rsp + 0x90], rdx
mov rdx, r8
imul rdx, rsi
mov rsi, qword [rsp + 0x80]
add rdx, rcx
mov rcx, r10
imul rcx, qword [rsp + 0x88]
mov r10, rbp
mov r9, rsi
imul r9, rdi
mov rdi, qword [rsp + 0xb0]
add rdx, rcx
mov rcx, rax
imul rcx, r14
mov rax, r14
mov r14, qword [rsp + 0x40]
add r9, rcx
mov rcx, r11
imul rcx, r12
imul r14, r15
add r14, rcx
add r14, r9
mov r9, r8
imul r9, rax
mov r8, qword [rsp + 0x60]
add r14, rdx
mov rdx, rbp
imul rdx, r11
mov rbp, r12
mov qword [rsp + 0x40], r14
mov r14, qword [rsp + 0x38]
add rdx, rbx
mov rbx, r15
imul r8, r15
mov r15, qword [rsp + 0x70]
mov rcx, r14
imul rcx, r13
add rdx, rcx
mov rcx, rdi
imul rcx, r12
mov r12, rax
mov rax, qword [rsp + 0x18]
add r9, rcx
mov rcx, rsi
imul rcx, qword [rsp]
mov rsi, qword [rsp + 0x78]
add r8, rcx
mov rcx, qword [rsp + 0x68]
add r8, r9
mov r9, r14
imul r9, r11
add r8, rdx
mov rdx, r10
imul rdx, rdi
imul rcx, r15
add r8, rcx
mov rcx, rax
mov qword [rsp + 0x60], r8
mov r8, qword [rsp + 0x88]
imul rcx, r8
imul r8, r15
mov qword [rsp + 0xa8], rcx
mov rcx, rax
mov rax, qword [rsp + 0x48]
imul rcx, rsi
add r9, r8
mov r8, qword [rsp]
add r9, rcx
mov qword [rsp + 0x68], r9
mov r9, rdi
mov rdi, qword [rsp + 0x80]
mov rcx, rax
imul rcx, r13
mov r13, rbp
imul r8, rbx
add rdx, rcx
mov rcx, rbp
mov rbp, qword [rsp + 8]
imul rcx, r12
add r8, rcx
mov rcx, rbp
imul rcx, rdi
add r8, rcx
mov rcx, r14
imul rcx, r9
add r8, rdx
mov rdx, rsi
imul rdx, r15
mov rsi, r9
mov r9, r10
imul r9, r12
mov qword [rsp], r8
mov r8, rbp
imul r8, rbx
mov rbp, rdi
add rcx, rdx
mov rdx, r11
imul rdx, rax
add r9, rdx
mov rdx, rdi
imul rdx, r13
imul r13, rbx
add r8, rdx
add r8, r9
mov r9, r14
imul r9, r12
add r8, rcx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 8], r8
mov r8, qword [rsp + 0x18]
mov rdx, r8
imul rdx, rcx
imul rcx, r15
mov qword [rsp + 0x78], rdx
mov rdx, r8
imul rdx, r11
imul r11, r15
add rdx, rcx
mov rcx, rsi
imul rcx, rax
add r9, rcx
mov rcx, r10
imul rcx, rdi
imul r10, rbx
add r13, rcx
mov rcx, r14
imul rcx, rdi
mov rdi, r8
imul rdi, rsi
imul rsi, r15
add r13, r9
mov r9, rax
imul r9, r12
mov qword [rsp + 0x58], r13
mov r13, r14
mov r14, r8
imul r14, r12
imul r12, r15
add qword [rsp + 0x58], rdx
add rcx, r11
add r10, r9
mov r9, r13
imul r9, rbx
add r10, rcx
mov rcx, rbp
imul rcx, rax
add r14, rsi
mov qword [rsp + 0x10], r10
mov rdx, qword [rsp + 0x10]
add r9, rcx
mov rcx, rax
imul rcx, rbx
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x38], r9
mov r9, rbp
imul r9, r15
imul r15, rbx
add qword [rsp + 0x38], r14
add rcx, r12
mov qword [rsp + 0x48], rcx
mov rcx, r8
imul r8, rbx
imul rcx, rbp
mov rbp, qword [rsp + 0xf0]
lea r12, [rdx + rdi]
add r8, r9
mov r9, qword [rsp + 0xc8]
mov qword [rsp + 0x18], r8
mov r8, qword [rsp + 0x100]
lea r10, [rax + r8]
lea r8, [r8 + rax + 0x100000]
mov eax, 0x1505
bextr eax, dword [r9 + 2], eax
add rbp, rax
mov rax, r8
and r8, 0xffffffffffe00000
shr rax, 0x15
sub r10, r8
mov r8, qword [rsp + 0xb8]
lea r14, [rbp + rax]
lea rax, [rax + rbp + 0x100000]
mov qword [rsp + 0xb0], r10
mov r10, qword [rsp + 0xe8]
lea r11, [r10 + r8]
lea r13, [r8 + r10 + 0x100000]
mov r8d, 0x1507
mov r10, r9
bextr r8d, dword [r9 + 7], r8d
mov qword [rsp + 0x80], r11
add qword [rsp + 0xe0], r8
mov r8d, 0x1504
bextr r8d, dword [r9 + 0xa], r8d
mov r9, qword [rsp + 0x150]
lea r11, [r9 + r8]
lea r8, [r8 + r9 + 0x100000]
mov r9, qword [rsp + 0x148]
add qword [rsp + 0xd8], r9
mov r9, r8
and r8, 0xffffffffffe00000
shr r9, 0x15
sub r11, r8
mov r8d, 0x1506
mov qword [rsp + 0xb8], r11
bextr r8d, dword [r10 + 0xf], r8d
mov r11, qword [rsp + 0x140]
lea rsi, [r11 + r8]
lea r8, [r8 + r11 + 0x100000]
mov r11, qword [rsp + 0x130]
mov qword [rsp + 0xa0], rsi
add r11, qword [rsp + 0x138]
mov qword [rsp + 0x88], r8
movzx r8d, byte [r10 + 0x17]
mov r10, qword [rsp + 0x128]
and r8d, 0x1f
shl r8d, 0x10
lea rsi, [r10 + r8]
lea r8, [r8 + r10 + 0x100000]
mov r10, qword [rsp + 0x110]
mov qword [rsp + 0xc0], rsi
mov rsi, qword [rsp + 0x118]
mov qword [rsp + 0x50], r8
mov r8, qword [rsp + 0xf8]
add rsi, qword [rsp + 0x120]
lea rbx, [r10 + r8]
lea r8, [r8 + r10 + 0x100000]
mov r10, qword [rsp + 0x98]
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0x30], r8
mov r8, qword [rsp + 0x108]
add qword [rsp + 0x20], r8
mov r8, qword [rsp + 0x28]
lea rbx, [r8 + r10]
lea r8, [r10 + r8 + 0x100000]
mov r10, qword [rsp + 8]
mov qword [rsp + 0xd0], rbx
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x28], r8
mov r8, qword [rsp + 0x90]
add qword [rsp + 0x40], r8
lea r8, [r10 + rbx]
mov qword [rsp + 0xf8], r8
lea r8, [rbx + r10 + 0x100000]
lea r10, [r15 + 0x100000]
mov rbx, r10
and r10, 0xffffffffffe00000
shr rbx, 0x15
mov qword [rsp + 0xe8], r8
mov r8, qword [rsp + 0x68]
sub r15, r10
mov r10, r13
and r13, 0xffffffffffe00000
shr r10, 0x15
mov qword [rsp + 0x70], r15
mov r15, qword [rsp + 0xe8]
add qword [rsp], r8
lea r8, [rdi + rdx + 0x100000]
mov rdx, r8
and r8, 0xffffffffffe00000
shr rdx, 0x15
sub r12, r8
mov r8, qword [rsp + 0x48]
lea rdi, [r8 + rcx]
lea r8, [rcx + r8 + 0x100000]
mov rcx, r8
and r8, 0xffffffffffe00000
shr rcx, 0x15
sub rdi, r8
mov r8, rax
shr r8, 0x15
add r8, qword [rsp + 0x80]
and rax, 0xffffffffffe00000
sub r14, rax
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x48], r14
sub r8, r13
mov qword [rsp + 0x80], r8
lea r8, [rax + r10]
lea rax, [r10 + rax + 0x100000]
mov r10, rax
and rax, 0xffffffffffe00000
shr r10, 0x15
add r10, qword [rsp + 0xb8]
sub r8, rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + 0x78], r8
mov qword [rsp + 0x68], r10
lea r8, [rax + r9]
lea rax, [r9 + rax + 0x100000]
mov qword [rsp + 0x98], rax
and rax, 0xffffffffffe00000
sub r8, rax
mov rax, qword [rsp + 0x88]
mov qword [rsp + 0x10], r8
mov r8, qword [rsp + 0x20]
shr rax, 0x15
lea r9, [r11 + rax]
lea rax, [rax + r11 + 0x100000]
mov qword [rsp + 0xb8], r9
mov qword [rsp + 8], rax
shr rax, 0x15
add rax, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x50]
shr rax, 0x15
lea r9, [rsi + rax]
lea rax, [rax + rsi + 0x100000]
mov qword [rsp + 0xe0], r9
mov qword [rsp + 0xd8], rax
mov rax, qword [rsp + 0x30]
shr rax, 0x15
lea r9, [r8 + rax]
lea rax, [rax + r8 + 0x100000]
mov r8, qword [rsp + 0x40]
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x28]
shr rax, 0x15
lea r9, [r8 + rax]
lea r13, [rax + r8 + 0x100000]
mov rax, qword [rsp + 0x60]
mov r8, qword [rsp + 0xa8]
mov qword [rsp + 0xf0], r9
lea rbp, [r8 + rax + 0x100000]
mov r8, qword [rsp]
mov r9, rbp
shr r9, 0x15
and rbp, 0xffffffffffe00000
lea rax, [r8 + r9]
lea r11, [r9 + r8 + 0x100000]
mov r8, qword [rsp + 0x58]
mov r9, r15
shr r9, 0x15
and r15, 0xffffffffffe00000
mov qword [rsp + 0x40], rax
lea rax, [r8 + r9]
lea r9, [r9 + r8 + 0x100000]
mov r8, qword [rsp + 0x38]
mov rsi, r9
and r9, 0xffffffffffe00000
shr rsi, 0x15
sub rax, r9
add rsi, r12
mov qword [rsp], rax
mov rax, qword [rsp + 0x18]
mov qword [rsp + 0x18], r11
and r11, 0xffffffffffe00000
lea r10, [rdx + r8 + 0x100000]
lea r14, [r8 + rdx]
imul r8, rbx, 0x9fb67
mov rdx, r10
and r10, 0xffffffffffe00000
shr rdx, 0x15
sub r14, r10
add rdx, rdi
lea r10, [rax + rcx]
lea rcx, [rcx + rax + 0x100000]
imul rax, rbx, 0xfffffffffff59083
add rax, qword [rsp + 0xf8]
mov rdi, rcx
shr rdi, 0x15
add rdi, qword [rsp + 0x70]
and rcx, 0xffffffffffe00000
sub r10, rcx
imul rcx, rbx, 0x215d1
add rcx, qword [rsp + 0x40]
sub rax, r15
imul r15, r14, 0xa2c13
add r15, qword [rsp + 0xb8]
mov qword [rsp + 0x38], rax
imul rax, rbx, 0xa2c13
imul r9, rdi, 0x72d18
imul r12, rdi, 0x9fb67
add r9, rax
imul rax, rbx, 0x72d18
add r12, rax
imul rax, rdi, 0xfffffffffff0c653
add rax, r8
imul r8, rdi, 0xfffffffffff59083
add r8, rcx
imul rcx, rdi, 0xa2c13
sub r8, r11
imul r11, r10, 0x72d18
mov qword [rsp + 0x40], r8
imul r8, rbx, 0xfffffffffff0c653
add r8, qword [rsp + 0xa8]
imul rbx, rdx, 0x72d18
add r8, qword [rsp + 0x60]
add r11, rcx
imul rcx, r10, 0x9fb67
add rcx, r9
imul r9, r10, 0xfffffffffff0c653
add r9, qword [rsp + 0xd0]
add r9, r12
imul r12, r10, 0x215d1
add r12, rax
imul rax, rdi, 0x215d1
imul rdi, rdx, 0xa2c13
add r8, rax
imul rax, r10, 0xfffffffffff59083
add r8, rax
imul rax, r10, 0xa2c13
mov r10, r13
shr r10, 0x15
and r13, 0xffffffffffe00000
sub r8, rbp
imul rbp, r14, 0xfffffffffff0c653
add rbx, rax
imul rax, rdx, 0x9fb67
add rax, r11
imul r11, rdx, 0xfffffffffff0c653
add rbp, rax
imul rax, r14, 0xfffffffffff59083
add r11, rcx
imul rcx, rdx, 0x215d1
add rcx, r9
imul r9, rdx, 0xfffffffffff59083
imul rdx, r14, 0x72d18
add rax, rcx
mov rcx, qword [rsp + 0x28]
add rdx, rdi
imul rdi, r14, 0x9fb67
add r9, r12
add r9, qword [rsp + 0xf0]
add rdi, rbx
imul rbx, r14, 0x215d1
and rcx, 0xffffffffffe00000
mov r14, qword [rsp + 8]
sub rax, rcx
mov rcx, qword [rsp + 0x88]
sub r9, r13
add rbx, r11
imul r11, rsi, 0xa2c13
add r11, qword [rsp + 0xa0]
and r14, 0xffffffffffe00000
and rcx, 0xffffffffffe00000
sub r11, rcx
imul rcx, rsi, 0x72d18
add rcx, r15
sub rcx, r14
imul r14, rsi, 0x9fb67
mov qword [rsp + 8], rcx
mov rcx, qword [rsp + 0x50]
add r14, rdx
imul rdx, rsi, 0xfffffffffff0c653
add rdx, qword [rsp + 0xe0]
add r14, qword [rsp + 0xc0]
and rcx, 0xffffffffffe00000
add rdx, rdi
mov rdi, qword [rsp + 0xd8]
sub r14, rcx
mov qword [rsp + 0x28], r14
mov rcx, rdi
and rdi, 0xffffffffffe00000
shr rcx, 0x15
sub rdx, rdi
imul rdi, rsi, 0x215d1
imul rsi, rsi, 0xfffffffffff59083
add rsi, qword [rsp + 0x90]
add rdi, rcx
mov rcx, qword [rsp + 0x30]
add rdi, rbp
add rdi, qword [rsp + 0xc8]
add rsi, rbx
and rcx, 0xffffffffffe00000
sub rdi, rcx
mov rcx, qword [rsp + 0x98]
shr rcx, 0x15
lea rbx, [r11 + rcx]
lea r12, [r11 + rcx + 0x100000]
mov r11, qword [rsp + 0x20]
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x18]
mov rcx, r11
and r11, 0xffffffffffe00000
shr rcx, 0x15
sub rsi, r11
lea r11, [rax + rcx]
lea rax, [rax + rcx + 0x100000]
lea rcx, [r8 + r10]
shr rbx, 0x15
mov r15, rax
and rax, 0xffffffffffe00000
sar r15, 0x15
sub r11, rax
lea rax, [r8 + r10 + 0x100000]
mov r10, qword [rsp + 0x38]
lea r8, [r10 + rbx]
lea r10, [r10 + rbx + 0x100000]
mov rbx, rax
and rax, 0xffffffffffe00000
sar rbx, 0x15
sub rcx, rax
lea rax, [r14 + 0x100000]
mov rbp, r10
and r10, 0xffffffffffe00000
mov qword [rsp + 0x38], rax
sar rax, 0x15
sar rbp, 0x15
add rbp, qword [rsp]
mov qword [rsp], r12
and r12, 0xffffffffffe00000
sub r8, r10
lea r10, [rdx + rax]
lea r14, [rdx + rax + 0x100000]
lea rdx, [rdi + 0x100000]
mov qword [rsp + 0x18], r10
mov r10, rdx
sar r10, 0x15
and rdx, 0xffffffffffe00000
lea rax, [rsi + r10]
lea r10, [rsi + r10 + 0x100000]
mov r13, r10
and r10, 0xffffffffffe00000
sar r13, 0x15
sub rax, r10
add r13, r11
imul r10, rbp, 0xfffffffffff59083
mov qword [rsp + 0x60], rax
lea rax, [r9 + r15]
lea r9, [r9 + r15 + 0x100000]
mov r15, r9
and r9, 0xffffffffffe00000
sar r15, 0x15
add r10, rdi
mov rdi, r14
sar rdi, 0x15
and r14, 0xffffffffffe00000
sub rax, r9
add r15, rcx
imul r9, rbp, 0x215d1
add r9, qword [rsp + 0x18]
add r10, rdi
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x40]
sub r10, rdx
lea rcx, [rax + rbx + 0x100000]
lea r11, [rax + rbx]
mov rsi, rcx
sar rsi, 0x15
and rcx, 0xffffffffffe00000
add rsi, r8
imul r8, rbp, 0x72d18
add r8, qword [rsp + 0x30]
sub r11, rcx
imul rcx, rbp, 0xa2c13
add rcx, qword [rsp + 0x10]
mov qword [rsp + 0x10], r10
imul rbx, rsi, 0x72d18
imul rdx, rsi, 0xfffffffffff59083
imul rax, rsi, 0xa2c13
add rax, qword [rsp + 0x68]
imul rdi, r11, 0x9fb67
imul r10, r11, 0xfffffffffff0c653
mov qword [rsp + 0x58], r11
add rdx, r9
imul r9, r11, 0xa2c13
add r9, qword [rsp + 0x78]
sub r8, r12
imul r12, rsi, 0x9fb67
add rbx, rcx
imul rcx, rsi, 0x215d1
sub rdx, r14
imul r14, r15, 0xfffffffffff0c653
mov qword [rsp + 0x40], rdx
mov rdx, qword [rsp]
add rdi, rbx
imul rbx, r11, 0xfffffffffff59083
add r12, r8
imul r8, rbp, 0xfffffffffff0c653
add r14, rdi
imul rdi, r13, 0xfffffffffff0c653
add r10, r12
imul r12, r15, 0x72d18
add rcx, r8
imul r8, r11, 0x72d18
sar rdx, 0x15
imul r11, r13, 0xfffffffffff59083
add r12, r9
imul r9, r15, 0x215d1
mov qword [rsp], rdx
add rdi, r12
imul r12, r13, 0x215d1
add r8, rax
mov rax, qword [rsp + 8]
add r11, r14
imul r14, r13, 0x72d18
add r9, r10
mov r10, qword [rsp + 0xb0]
lea rax, [rax + rdx + 0x100000]
imul rdx, r13, 0x9fb67
mov qword [rsp + 0x18], rax
sar rax, 0x15
add rbx, rax
mov rax, qword [rsp + 0x38]
add rbx, rcx
add rbx, qword [rsp + 0x28]
imul rcx, r15, 0xa2c13
add rcx, qword [rsp + 0x80]
and rax, 0xffffffffffe00000
sub rbx, rax
imul rax, r15, 0x9fb67
add rdx, rcx
imul rcx, r13, 0xa2c13
add rax, r8
imul r8, qword [rsp + 0x20], 0xa2c13
add r12, rax
lea rax, [rcx + r10]
lea rcx, [rcx + r10 + 0x100000]
mov r10, qword [rsp + 0x20]
add r8, qword [rsp + 0x48]
add r14, r8
mov r8, rcx
and rcx, 0xffffffffffe00000
sar r8, 0x15
sub rax, rcx
imul rcx, r10, 0x72d18
mov qword [rsp + 0x28], rax
lea rax, [rdx + rcx]
lea rdx, [rcx + rdx + 0x100000]
mov qword [rsp + 0x30], rax
imul rax, r10, 0x9fb67
add rdi, rax
imul rax, r10, 0xfffffffffff0c653
lea rcx, [r12 + rax]
lea rax, [rax + r12 + 0x100000]
mov qword [rsp + 0x38], rcx
imul rcx, rsi, 0xfffffffffff0c653
mov qword [rsp + 0x50], rax
imul rax, r10, 0x215d1
mov rsi, qword [rsp + 0x50]
add r11, rax
imul rax, r10, 0xfffffffffff59083
mov r10, rdx
sar r10, 0x15
lea r13, [r9 + rax]
lea r9, [rax + r9 + 0x100000]
imul rax, rbp, 0x9fb67
add rax, qword [rsp + 8]
add rax, qword [rsp]
add rax, rcx
imul rcx, qword [rsp + 0x58], 0x215d1
add rax, rcx
mov rcx, qword [rsp + 0x18]
and rcx, 0xffffffffffe00000
sub rax, rcx
imul rcx, r15, 0xfffffffffff59083
lea r15, [r8 + r14 + 0x100000]
add rax, rcx
mov rcx, r9
and r9, 0xffffffffffe00000
sar rcx, 0x15
sub r13, r9
lea r9, [rbx + 0x100000]
mov r12, r9
and r9, 0xffffffffffe00000
sar r12, 0x15
sub rbx, r9
lea r9, [r14 + r8]
mov r8, rdx
lea rdx, [rdi + r10]
lea rdi, [r10 + rdi + 0x100000]
mov r10, rsi
sar r10, 0x15
and r8, 0xffffffffffe00000
and rsi, 0xffffffffffe00000
mov qword [rsp + 0x48], rdx
lea rdx, [r11 + r10]
lea r10, [r10 + r11 + 0x100000]
lea r11, [rax + rcx]
lea rax, [rcx + rax + 0x100000]
mov qword [rsp + 0x18], rdx
mov r14, rax
and rax, 0xffffffffffe00000
sar r14, 0x15
mov rdx, r10
sar rdx, 0x15
and r10, 0xffffffffffe00000
sub r11, rax
mov rax, qword [rsp + 0x40]
add r14, rbx
add rdx, r13
mov qword [rsp + 8], r11
mov r11, qword [rsp + 0x60]
lea rbx, [rax + r12]
lea rax, [rax + r12 + 0x100000]
mov qword [rsp], rax
and rax, 0xffffffffffe00000
sub rbx, rax
mov rax, qword [rsp + 0x10]
add rax, 0x100000
mov rcx, rax
sar rcx, 0x15
and rax, 0xffffffffffe00000
lea r12, [r11 + rcx]
lea r11, [r11 + rcx + 0x100000]
mov rcx, r11
sar rcx, 0x15
and r11, 0xffffffffffe00000
imul rbp, rcx, 0x72d18
sub r12, r11
mov r11, r15
sar r11, 0x15
imul r13, rcx, 0xfffffffffff0c653
and r15, 0xffffffffffe00000
add r13, qword [rsp + 0x48]
mov qword [rsp + 0x20], r12
imul r12, rcx, 0xa2c13
add r12, qword [rsp + 0x28]
add rbp, r9
imul r9, rcx, 0x9fb67
add r9, qword [rsp + 0x30]
sub rbp, r15
sub r9, r8
mov r8, rdi
sar r8, 0x15
and rdi, 0xffffffffffe00000
add r9, r11
imul r11, rcx, 0x215d1
imul rcx, rcx, 0xfffffffffff59083
add rcx, qword [rsp + 0x18]
add r11, qword [rsp + 0x38]
sub r13, rdi
sub rcx, r10
mov r10, r12
sar r10, 0x15
sub r11, rsi
and r12d, 0x1fffff
add r10, rbp
add r11, r8
mov r8, r10
sar r8, 0x15
and r10d, 0x1fffff
add r8, r9
mov r15, r8
sar r15, 0x15
and r8d, 0x1fffff
add r15, r13
mov r13, r15
sar r13, 0x15
and r15d, 0x1fffff
add r13, r11
mov rbp, r13
sar rbp, 0x15
and r13d, 0x1fffff
add rbp, rcx
mov r9, rbp
sar r9, 0x15
and ebp, 0x1fffff
add r9, rdx
mov r11, r9
sar r11, 0x15
add r11, qword [rsp + 8]
and r9d, 0x1fffff
mov rdi, r11
sar rdi, 0x15
and r11d, 0x1fffff
add rdi, r14
mov rcx, rdi
sar rcx, 0x15
and edi, 0x1fffff
add rcx, rbx
mov rdx, rcx
mov qword [rsp + 8], rcx
mov rcx, qword [rsp]
sar rdx, 0x15
sar rcx, 0x15
add rcx, qword [rsp + 0x10]
sub rcx, rax
add rcx, rdx
mov rdx, rcx
sar rdx, 0x15
add rdx, qword [rsp + 0x20]
mov qword [rsp], rcx
mov rcx, qword [rsp + 0x158]
mov qword [rsp + 0x10], rdx
sar rdx, 0x15
imul rsi, rdx, 0x72d18
imul rbx, rdx, 0xa2c13
imul rax, rdx, 0x215d1
imul r14, rdx, 0xfffffffffff0c653
add rsi, r10
imul r10, rdx, 0x9fb67
add rbx, r12
add rax, r13
add r14, r15
mov byte [rcx], bl
mov byte [rcx + 1], bh
add r10, r8
imul r8, rdx, 0xfffffffffff59083
add r8, rbp
mov ebp, 0x510
bextr edx, ebx, ebp
sar rbx, 0x15
add rbx, rsi
mov r13, rbx
sar r13, 0x15
add r13, r10
mov r10d, ebx
shr r10d, 0xb
mov r12, r13
sar r12, 0x15
add r12, r14
mov r15, r12
sar r15, 0x15
add r15, rax
mov r14, r15
sar r14, 0x15
add r14, r8
mov r8, r14
sar r8, 0x15
add r8, r9
mov r9d, ebx
shl r9d, 5
or r9d, edx
mov edx, ebx
shr edx, 3
mov rsi, r8
sar rsi, 0x15
mov byte [rcx + 2], r9b
mov r9d, 0x213
mov byte [rcx + 3], dl
add rsi, r11
mov r11d, r13d
mov byte [rcx + 4], r10b
mov r10d, 0x70e
shr r11d, 6
bextr edx, ebx, r9d
mov rax, rsi
sar rax, 0x15
lea edx, [rdx + r13*4]
add rax, rdi
mov rdi, rcx
mov byte [rcx + 5], dl
mov byte [rcx + 6], r11b
mov r11d, r12d
bextr edx, r13d, r10d
shl r11d, 7
or r11d, edx
mov edx, r12d
shr edx, 1
mov byte [rcx + 7], r11b
mov r11d, r12d
mov byte [rcx + 8], dl
mov edx, 0x411
shr r11d, 9
mov byte [rcx + 9], r11b
mov r11d, r15d
bextr edx, r12d, edx
shl r11d, 4
or r11d, edx
mov edx, r15d
shr edx, 4
mov byte [rcx + 0xa], r11b
mov byte [rcx + 0xb], dl
mov edx, 0x114
mov r11d, r15d
shr r11d, 0xc
bextr edx, r15d, edx
mov byte [rcx + 0xc], r11b
mov r11d, r14d
shr r11d, 7
lea edx, [rdx + r14*2]
mov byte [rcx + 0xd], dl
mov edx, 0x60f
mov byte [rcx + 0xe], r11b
mov r11d, r8d
shl r11d, 6
bextr edx, r14d, edx
or r11d, edx
mov edx, r8d
shr edx, 2
mov byte [rcx + 0xf], r11b
mov byte [rcx + 0x10], dl
mov edx, 0x312
mov r11, qword [rsp]
bextr edx, r8d, edx
shr r8d, 0xa
lea edx, [rdx + rsi*8]
mov byte [rcx + 0x11], r8b
mov r8, rax
sar r8, 0x15
mov byte [rcx + 0x12], dl
mov edx, esi
shr edx, 5
shr esi, 0xd
mov byte [rcx + 0x13], dl
mov byte [rcx + 0x14], sil
mov rcx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
and r11d, 0x1fffff
bextr edx, eax, ebp
mov byte [rdi + 0x15], al
mov byte [rdi + 0x16], ah
and ecx, 0x1fffff
and esi, 0x1fffff
add r8, rcx
mov rcx, r8
sar rcx, 0x15
add rcx, r11
mov r11d, r8d
shl r11d, 5
or r11d, edx
mov edx, r8d
shr edx, 3
mov rax, rcx
shr rax, 0x15
mov byte [rdi + 0x17], r11b
mov byte [rdi + 0x18], dl
bextr edx, r8d, r9d
shr r8d, 0xb
add eax, esi
lea edx, [rdx + rcx*4]
mov byte [rdi + 0x19], r8b
bextr r8d, ecx, r10d
shr ecx, 6
mov byte [rdi + 0x1a], dl
mov byte [rdi + 0x1b], cl
mov ecx, eax
shl ecx, 7
or ecx, r8d
mov byte [rdi + 0x1c], cl
mov ecx, eax
shr ecx, 1
mov byte [rdi + 0x1d], cl
mov ecx, eax
shr ecx, 9
shr eax, 0x11
mov byte [rdi + 0x1e], cl
mov byte [rdi + 0x1f], al
add rsp, 0x160
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret