Function at 0x14011b180
Capabilities:
Hash data using sha512

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf8
mov edi, 0x80
mov rsi, r8
mov rbx, rcx
cmp r8, rdi
jb 0x14011b1d7
test sil, 0x7f
je 0x14011b1d7
lea r8d, [rdi - 8]
lea rdx, str.c:_cygwin_home_shachar_zon_new_pkg_lib_openssl_crypto_blake2_blake2b.c
lea rcx, str.len___BLAKE2B_BLOCKBYTES__len___BLAKE2B_BLOCKBYTES__0
call fcn.140184a98
mov rdx, qword [rsp + 0x148]
mov rax, qword [rbx + 0x30]
cmp rsi, rdi
mov r9, qword [rbx]
movabs r15, 0x6a09e667f3bcc908
mov rbp, qword [rbx + 8]
cmovb rdi, rsi
mov r13, qword [rbx + 0x10]
movabs rsi, 0x510e527fade682d1
mov r12, qword [rbx + 0x18]
mov r11, qword [rbx + 0x20]
mov r10, qword [rbx + 0x28]
mov qword [rsp + 0x48], rax
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0x58], rax
nop dword [rax]
nop word [rax + rax]
lea rcx, [rsp + 0x68]
mov r8d, 2
sub rdx, rcx
lea rax, [rsp + 0x68]
nop dword [rax]
nop word [rax + rax]
mov rcx, qword [rdx + rax]
mov qword [rax - 8], rcx
mov rcx, qword [rdx + rax + 8]
mov qword [rax], rcx
mov rcx, qword [rdx + rax + 0x10]
mov qword [rax + 8], rcx
mov rcx, qword [rdx + rax + 0x18]
mov qword [rax + 0x10], rcx
mov rcx, qword [rdx + rax + 0x20]
mov qword [rax + 0x18], rcx
mov rcx, qword [rdx + rax + 0x28]
mov qword [rax + 0x20], rcx
mov rcx, qword [rdx + rax + 0x30]
mov qword [rax + 0x28], rcx
mov rcx, qword [rdx + rax + 0x38]
mov qword [rax + 0x30], rcx
lea rax, [rax + 0x40]
sub r8, 1
jne 0x14011b250
add qword [rbx + 0x40], rdi
lea rdx, [r11 + r9]
mov r14, qword [rbx + 0x40]
cmp r14, rdi
adc qword [rbx + 0x48], r8
add rdx, qword [rsp + 0x60]
xor r14, rdx
xor r14, rsi
mov rsi, qword [rsp + 0x68]
add rsi, rdx
ror r14, 0x20
lea rdx, [r10 + rbp]
add rdx, qword [rsp + 0x70]
mov r9, rdx
xor r9, qword [rbx + 0x48]
lea rcx, [r14 + r15]
xor r11, rcx
ror r11, 0x18
add rsi, r11
xor r14, rsi
ror r14, 0x10
lea rax, [r14 + rcx]
movabs rcx, 0xbb67ae8584caa73b
mov r15, rax
mov qword [rsp + 0x158], rax
xor r15, r11
movabs rax, 0x9b05688c2b3e6c1f
xor r9, rax
rol r15, 1
mov rax, qword [rsp + 0x78]
add rax, rdx
ror r9, 0x20
mov rdx, qword [rsp + 0x80]
add rcx, r9
add rdx, qword [rsp + 0x48]
mov r8, rcx
xor r8, r10
add rdx, r13
mov r13, qword [rsp + 0x88]
mov r10, qword [rsp + 0x58]
add r13, rdx
ror r8, 0x18
add rax, r8
mov rdi, rax
xor rax, r9
ror rax, 0x10
mov r9, rdx
xor r9, qword [rbx + 0x50]
mov rdx, qword [rsp + 0x90]
mov qword [rsp + 0x38], rax
add rdx, r10
add rax, rcx
add rdx, r12
mov r11, rax
mov qword [rsp + 0x20], rax
xor r11, r8
movabs rax, 0x1f83d9abfb41bd6b
xor r9, rax
rol r11, 1
mov rax, qword [rsp + 0x140]
movabs rcx, 0x3c6ef372fe94f82b
ror r9, 0x20
add rcx, r9
mov r8, rcx
xor r8, qword [rsp + 0x48]
ror r8, 0x18
add r13, r8
mov rbp, r13
xor rbp, r9
ror rbp, 0x10
lea r9, [rcx + rbp]
movabs rcx, 0xa54ff53a5f1d36f1
mov rbx, r9
xor rbx, r8
mov r8, rdx
xor r8, qword [rax + 0x58]
movabs rax, 0x5be0cd19137e2179
xor r8, rax
rol rbx, 1
ror r8, 0x20
add rcx, r8
add rdi, qword [rsp + 0xb0]
xor r10, rcx
mov rax, qword [rsp + 0x98]
add rdi, rbx
add rax, rdx
ror r10, 0x18
add rax, r10
mov qword [rsp + 0x58], r10
mov rdx, rax
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0xa8]
xor rdx, r8
ror rdx, 0x10
lea r8, [rdx + rcx]
mov rcx, qword [rsp + 0xa0]
add rcx, r11
mov r10, r8
xor r10, qword [rsp + 0x58]
add rcx, rsi
mov r12, rcx
rol r10, 1
xor r12, rdx
ror r12, 0x20
lea rdx, [r12 + r9]
mov rsi, rdx
xor rsi, r11
ror rsi, 0x18
add rax, rsi
add rax, rcx
mov rcx, rdi
xor r12, rax
mov qword [rsp + 0x50], rax
xor rcx, r14
ror r12, 0x10
mov r14, qword [rsp + 0xc8]
ror rcx, 0x20
lea rax, [rdx + r12]
xor rsi, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb8]
lea rdx, [r8 + rcx]
xor rbx, rdx
rol rsi, 1
ror rbx, 0x18
add rax, rbx
add rdi, rax
mov rax, qword [rsp + 0xc0]
add rax, r10
mov qword [rsp + 0x58], rdi
xor rdi, rcx
add r13, rax
ror rdi, 0x10
add rdx, rdi
mov r8, rdx
mov qword [rsp + 0x30], rdx
mov rdx, qword [rsp + 0x158]
xor r8, rbx
mov rbx, qword [rsp + 0x38]
xor rbx, r13
rol r8, 1
ror rbx, 0x20
add rdx, rbx
mov rcx, rdx
xor rcx, r10
mov r10, qword [rsp + 0x40]
ror rcx, 0x18
lea rax, [rcx + r14]
add r13, rax
xor rbx, r13
mov qword [rsp + 0x48], r13
mov r13, qword [rsp + 0xd0]
ror rbx, 0x10
add rdx, rbx
mov r9, rdx
mov qword [rsp + 0x158], rdx
xor r9, rcx
lea rax, [r15 + r13]
add r10, rax
rol r9, 1
mov rcx, r10
xor rcx, rbp
mov rax, qword [rsp + 0x20]
mov rbp, qword [rsp + 0xd8]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
xor rdx, r15
mov r15, qword [rsp + 0x158]
ror rdx, 0x18
lea rax, [rdx + rbp]
add r10, rax
mov rax, qword [rsp + 0x20]
mov r11, r10
mov qword [rsp + 0x40], r10
mov r10, qword [rsp + 0x50]
xor r11, rcx
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x20], rax
mov rcx, rax
xor rcx, rdx
rol rcx, 1
lea rax, [rcx + r13]
add r10, rax
mov rax, qword [rsp + 0xb0]
xor rdi, r10
ror rdi, 0x20
add r15, rdi
mov rdx, r15
xor rdx, rcx
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x80]
add rax, rsi
mov qword [rsp + 0x50], r10
xor rdi, r10
ror rdi, 0x10
add r15, rdi
mov r10, r15
mov qword [rsp + 0x158], r15
mov r15, qword [rsp + 0x20]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0xa0]
xor rbx, rdx
ror rbx, 0x20
add r15, rbx
mov rcx, r15
xor rcx, rsi
mov rsi, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add rdx, rax
xor rbx, rdx
ror rbx, 0x10
add r15, rbx
mov qword [rsp + 0x38], rbx
mov rbx, r15
mov qword [rsp + 0x20], r15
mov r15, qword [rsp + 0xa8]
xor rbx, rcx
rol rbx, 1
lea rax, [r15 + r8]
add rsi, rax
mov rax, qword [rsp + 0x28]
xor r11, rsi
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
xor rcx, r8
ror rcx, 0x18
lea rax, [rcx + rbp]
add rsi, rax
mov rax, qword [rsp + 0x28]
xor r11, rsi
mov qword [rsp + 0x48], rsi
ror r11, 0x10
mov rsi, qword [rsp + 0x40]
add rax, r11
mov qword [rsp + 0x28], rax
mov r8, rax
xor r8, rcx
lea rax, [r9 + r14]
mov rcx, qword [rsp + 0x30]
add rsi, rax
mov rax, qword [rsp + 0x90]
xor r12, rsi
ror r12, 0x20
add rcx, r12
rol r8, 1
mov qword [rsp + 0x30], rcx
xor rcx, r9
ror rcx, 0x18
add rax, rcx
add rsi, rax
mov rax, qword [rsp + 0x30]
xor r12, rsi
mov qword [rsp + 0x40], rsi
mov rsi, qword [rsp + 0x50]
ror r12, 0x10
add rax, r12
mov qword [rsp + 0x30], rax
mov r9, rax
mov rax, qword [rsp + 0x68]
xor r9, rcx
add rax, rbx
rol r9, 1
add rsi, rax
mov rax, qword [rsp + 0x28]
mov rcx, rsi
xor rcx, r12
mov r12, qword [rsp + 0xc0]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
ror rbx, 0x18
lea rax, [rbx + r12]
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x60]
add rax, r8
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x70]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xb8]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rax, r9
rol r8, 1
add rdx, rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x158]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x88]
add rax, r10
mov qword [rsp + 0x158], r9
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x78]
xor rdx, r10
mov r10, qword [rsp + 0x50]
ror rdx, 0x18
add rax, rdx
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov rcx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xb8]
xor rcx, rdx
rol rcx, 1
add rax, rcx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0xa0]
xor rdx, rcx
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
lea rax, [rbx + r12]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
mov r12, qword [rsp + 0x38]
add rdx, rax
mov rax, qword [rsp + 0x20]
xor r12, rdx
ror r12, 0x20
rol r10, 1
add rax, r12
mov qword [rsp + 0x20], rax
mov rcx, rax
mov rax, qword [rsp + 0x60]
xor rcx, rbx
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x20]
xor r12, rdx
ror r12, 0x10
add rax, r12
mov qword [rsp + 0x38], r12
mov r12, qword [rsp + 0x48]
mov rbx, rax
mov qword [rsp + 0x20], rax
xor rbx, rcx
mov rax, qword [rsp + 0x88]
add rax, r8
rol rbx, 1
add r12, rax
mov rax, qword [rsp + 0x28]
xor r11, r12
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x70]
xor rcx, r8
ror rcx, 0x18
add rax, rcx
add r12, rax
mov rax, qword [rsp + 0x28]
xor r11, r12
mov qword [rsp + 0x48], r12
mov r12, qword [rsp + 0x40]
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x28], rax
mov r8, rax
xor r8, rcx
lea rax, [r9 + rbp]
add r12, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, r12
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
xor rcx, r9
ror rcx, 0x18
lea rax, [rcx + r14]
add r12, rax
mov rax, qword [rsp + 0x30]
xor rsi, r12
mov qword [rsp + 0x40], r12
mov r12, qword [rsp + 0xb0]
ror rsi, 0x10
add rax, rsi
mov r9, rax
mov qword [rsp + 0x30], rax
xor r9, rcx
lea rax, [rbx + r12]
mov rcx, qword [rsp + 0x50]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
ror rbx, 0x18
lea rax, [rbx + r13]
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
mov qword [rsp + 0x28], rax
xor rbx, rax
mov rax, qword [rsp + 0x78]
add rax, r8
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x90]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x98]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rax, r9
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x158], r9
lea rax, [r10 + r15]
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x80]
xor rdx, r10
ror rdx, 0x18
add rax, rdx
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov rcx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x98]
xor rcx, rdx
rol rcx, 1
add rax, rcx
mov r10, qword [rsp + 0x50]
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
ror rdx, 0x18
lea rax, [rdx + r15]
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x78]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rax, rbx
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
lea rax, [r8 + r14]
mov qword [rsp + 0x20], rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
add rcx, rax
rol rbx, 1
mov rax, qword [rsp + 0x28]
xor r11, rcx
mov qword [rsp + 0x48], rcx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xc0]
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add r8, rax
mov rax, qword [rsp + 0x28]
xor r11, r8
mov qword [rsp + 0x48], r8
ror r11, 0x10
add rax, r11
mov r8, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb8]
xor r8, rcx
mov rcx, qword [rsp + 0x40]
add rax, r9
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
ror rsi, 0x20
add rax, rsi
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x30], rax
mov rcx, rax
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
lea rax, [rcx + r13]
add r9, rax
mov rax, qword [rsp + 0x30]
xor rsi, r9
mov qword [rsp + 0x40], r9
ror rsi, 0x10
add rax, rsi
mov qword [rsp + 0x30], rax
mov r9, rax
mov rax, qword [rsp + 0x70]
xor r9, rcx
mov rcx, qword [rsp + 0x50]
add rax, rbx
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
ror rbx, 0x18
add rax, rbx
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x88]
add rax, r8
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
xor rdx, r8
ror rdx, 0x18
lea rax, [rdx + r12]
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x80]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rax, r9
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x158], rcx
xor rcx, r9
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov qword [rsp + 0x48], rdx
mov rax, qword [rsp + 0x38]
mov r9, qword [rsp + 0x158]
xor rax, rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
lea rax, [r10 + rbp]
mov qword [rsp + 0x158], r9
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0xa0]
xor rdx, r10
mov r10, qword [rsp + 0x50]
ror rdx, 0x18
add rax, rdx
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x20], rax
mov rcx, rax
xor rcx, rdx
rol rcx, 1
lea rax, [rcx + r15]
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x60]
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x88]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rax, rbx
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x70]
add rax, r8
rol rbx, 1
add rcx, rax
mov rax, qword [rsp + 0x28]
xor r11, rcx
mov qword [rsp + 0x48], rcx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x80]
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add r8, rax
mov rax, qword [rsp + 0x28]
xor r11, r8
mov qword [rsp + 0x48], r8
ror r11, 0x10
add rax, r11
mov r8, rax
mov qword [rsp + 0x28], rax
xor r8, rcx
lea rax, [r9 + r12]
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
mov qword [rsp + 0x40], rcx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
lea rax, [rcx + rbp]
add r9, rax
mov rax, qword [rsp + 0x30]
xor rsi, r9
mov qword [rsp + 0x40], r9
ror rsi, 0x10
add rax, rsi
mov r9, rax
mov qword [rsp + 0x30], rax
xor r9, rcx
lea rax, [rbx + r13]
mov rcx, qword [rsp + 0x50]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x68]
ror rbx, 0x18
add rax, rbx
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb8]
add rax, r8
rol rbx, 1
add rdx, rax
mov rcx, rdx
mov qword [rsp + 0x58], rdx
xor rcx, rdi
ror rcx, 0x20
mov rax, qword [rsp + 0x30]
add rax, rcx
mov rdi, qword [rsp + 0x58]
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xc0]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x90]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rax, r9
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x78]
add rax, r10
mov qword [rsp + 0x158], r9
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
xor rdx, r10
mov r10, qword [rsp + 0x50]
ror rdx, 0x18
lea rax, [rdx + r14]
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov rcx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x70]
xor rcx, rdx
rol rcx, 1
add rax, rcx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
mov rax, qword [rsp + 0xc0]
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x90]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rax, rbx
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
lea rax, [rcx + r12]
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x60]
add rax, r8
mov qword [rsp + 0x20], rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
add rcx, rax
rol rbx, 1
mov rax, qword [rsp + 0x28]
xor r11, rcx
mov qword [rsp + 0x48], rcx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xb8]
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add r8, rax
mov rax, qword [rsp + 0x28]
xor r11, r8
mov qword [rsp + 0x48], r8
ror r11, 0x10
add rax, r11
mov r8, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xa0]
xor r8, rcx
mov rcx, qword [rsp + 0x40]
add rax, r9
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
mov qword [rsp + 0x40], rcx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x78]
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
add rax, rcx
add r9, rax
mov qword [rsp + 0x40], r9
mov rax, qword [rsp + 0x30]
xor rsi, r9
ror rsi, 0x10
add rax, rsi
mov qword [rsp + 0x30], rax
mov r9, rax
mov rax, qword [rsp + 0x80]
xor r9, rcx
mov rcx, qword [rsp + 0x50]
add rax, rbx
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
ror rbx, 0x18
lea rax, [rbx + r14]
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x98]
add rax, r8
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x88]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
lea rax, [r9 + rbp]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
lea rax, [rcx + r13]
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x158], r9
xor r9, rcx
rol r9, 1
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x68]
add rax, r10
add rcx, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
xor rdx, r10
mov r10, qword [rsp + 0x50]
ror rdx, 0x18
lea rax, [rdx + r15]
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x20], rax
mov rcx, rax
mov rax, qword [rsp + 0xc0]
xor rcx, rdx
rol rcx, 1
add rax, rcx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x88]
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x68]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rax, rbx
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
lea rax, [rcx + rbp]
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rbx
lea rax, [r8 + r13]
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
add rcx, rax
rol rbx, 1
mov rax, qword [rsp + 0x28]
xor r11, rcx
ror r11, 0x20
add rax, r11
mov qword [rsp + 0x48], rcx
mov rcx, rax
mov qword [rsp + 0x28], rax
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
lea rax, [rcx + r14]
add r8, rax
mov rax, qword [rsp + 0x28]
xor r11, r8
mov qword [rsp + 0x48], r8
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x28], rax
mov r8, rax
mov rax, qword [rsp + 0x80]
xor r8, rcx
mov rcx, qword [rsp + 0x40]
add rax, r9
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
mov qword [rsp + 0x40], rcx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
lea rax, [rcx + r12]
add r9, rax
mov rax, qword [rsp + 0x30]
xor rsi, r9
mov qword [rsp + 0x40], r9
ror rsi, 0x10
add rax, rsi
mov qword [rsp + 0x30], rax
mov r9, rax
mov rax, qword [rsp + 0x60]
xor r9, rcx
mov rcx, qword [rsp + 0x50]
add rax, rbx
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x98]
ror rbx, 0x18
add rax, rbx
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
add rax, r8
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov rcx, rdx
mov qword [rsp + 0x58], rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x78]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
xor r8, rdx
lea rax, [r15 + r9]
mov rdx, qword [rsp + 0x48]
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xa0]
add rax, r10
mov qword [rsp + 0x158], r9
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
xor rdx, r10
mov r10, qword [rsp + 0xb8]
ror rdx, 0x18
lea rax, [rdx + r10]
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov rcx, rax
mov qword [rsp + 0x20], rax
xor rcx, rdx
mov rdx, qword [rsp + 0x50]
rol rcx, 1
lea rax, [rcx + r14]
add rdx, rax
mov rax, qword [rsp + 0x158]
xor rdi, rdx
mov qword [rsp + 0x50], rdx
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
xor rdx, rcx
mov rcx, qword [rsp + 0x50]
ror rdx, 0x18
lea rax, [rdx + r10]
add rcx, rax
mov rax, qword [rsp + 0x158]
xor rdi, rcx
mov qword [rsp + 0x50], rcx
ror rdi, 0x10
add rax, rdi
mov rcx, qword [rsp + 0x20]
mov r10, rax
mov qword [rsp + 0x158], rax
xor r10, rdx
mov rax, qword [rsp + 0x98]
mov rdx, qword [rsp + 0x58]
add rax, rbx
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
lea rax, [rcx + r13]
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xc0]
add rax, r8
mov qword [rsp + 0x20], rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
add rcx, rax
rol rbx, 1
mov rax, qword [rsp + 0x28]
xor r11, rcx
mov qword [rsp + 0x48], rcx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x68]
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add r8, rax
mov rax, qword [rsp + 0x28]
xor r11, r8
mov qword [rsp + 0x48], r8
ror r11, 0x10
add rax, r11
mov r8, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x78]
xor r8, rcx
mov rcx, qword [rsp + 0x40]
add rax, r9
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
mov qword [rsp + 0x40], rcx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
lea rax, [r15 + rcx]
add r9, rax
mov rax, qword [rsp + 0x30]
xor rsi, r9
mov qword [rsp + 0x40], r9
ror rsi, 0x10
add rax, rsi
mov r9, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x88]
xor r9, rcx
rol r9, 1
add rax, rbx
mov rcx, qword [rsp + 0x50]
add rcx, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x60]
ror rbx, 0x18
add rax, rbx
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
lea rax, [r8 + rbp]
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x80]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xa0]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rax, r9
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x70]
add rax, r10
mov qword [rsp + 0x158], r9
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
ror rcx, 0x20
add rax, rcx
mov r11, qword [rsp + 0x40]
mov rdx, rax
mov qword [rsp + 0x20], rax
xor rdx, r10
mov r10, qword [rsp + 0x50]
ror rdx, 0x18
lea rax, [rdx + r12]
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x20], rax
mov rcx, rax
mov rax, qword [rsp + 0x90]
xor rcx, rdx
rol rcx, 1
add rax, rcx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
xor rdx, rcx
mov rcx, qword [rsp + 0x20]
ror rdx, 0x18
lea rax, [rdx + rbp]
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
lea rax, [rbx + r13]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
lea rax, [rcx + r15]
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xb8]
add rax, r8
mov qword [rsp + 0x20], rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
add rcx, rax
rol rbx, 1
mov rax, qword [rsp + 0x28]
xor r11, rcx
mov qword [rsp + 0x48], rcx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x78]
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add r8, rax
mov qword [rsp + 0x48], r8
mov rax, qword [rsp + 0x28]
xor r11, r8
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x28], rax
mov r8, rax
mov rax, qword [rsp + 0x60]
xor r8, rcx
mov rcx, qword [rsp + 0x40]
add rax, r9
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
mov qword [rsp + 0x40], rcx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xa0]
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
add rax, rcx
add r9, rax
mov rax, qword [rsp + 0x30]
xor rsi, r9
mov qword [rsp + 0x40], r9
ror rsi, 0x10
add rax, rsi
mov qword [rsp + 0x30], rax
mov r9, rax
mov rax, qword [rsp + 0xc0]
xor r9, rcx
mov rcx, qword [rsp + 0x50]
add rax, rbx
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
mov rsi, qword [rsp + 0x50]
ror rcx, 0x20
add rax, rcx
xor rbx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x70]
ror rbx, 0x18
add rax, rbx
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
lea rax, [r8 + r14]
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x98]
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
ror rdi, 0x10
add rax, rdi
mov qword [rsp + 0x30], rax
mov r8, rax
mov rcx, qword [rsp + 0x158]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x68]
add rax, r9
rol r8, 1
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
lea rax, [r10 + r12]
mov qword [rsp + 0x158], r9
xor r9, rcx
mov rcx, qword [rsp + 0x40]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], rcx
xor rcx, r11
mov r11, qword [rsp + 0x40]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x88]
xor rdx, r10
mov r10, qword [rsp + 0x50]
ror rdx, 0x18
add rax, rdx
add r11, rax
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x40], r11
xor r11, rcx
ror r11, 0x10
add rax, r11
mov rcx, rax
mov qword [rsp + 0x20], rax
xor rcx, rdx
rol rcx, 1
lea rax, [rcx + r12]
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
ror rdi, 0x20
add rax, rdi
mov rdx, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0x70]
xor rdx, rcx
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x158]
xor rdi, r10
mov qword [rsp + 0x50], r10
ror rdi, 0x10
add rax, rdi
mov r10, rax
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0xa0]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rax, rbx
rol r10, 1
add rdx, rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x20]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x20], rcx
xor rcx, rbx
mov rbx, qword [rsp + 0x20]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x10
add rbx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x98]
add rax, r8
mov qword [rsp + 0x20], rbx
xor rbx, rcx
mov rcx, qword [rsp + 0x48]
add rcx, rax
rol rbx, 1
mov rax, qword [rsp + 0x28]
xor r11, rcx
mov qword [rsp + 0x48], rcx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
xor rcx, r8
mov r8, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add r8, rax
mov rax, qword [rsp + 0x28]
xor r11, r8
mov qword [rsp + 0x48], r8
ror r11, 0x10
add rax, r11
mov qword [rsp + 0x28], rax
mov r8, rax
mov rax, qword [rsp + 0x68]
xor r8, rcx
mov rcx, qword [rsp + 0x40]
add rax, r9
add rcx, rax
rol r8, 1
mov rax, qword [rsp + 0x30]
xor rsi, rcx
mov qword [rsp + 0x40], rcx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x88]
xor rcx, r9
mov r9, qword [rsp + 0x40]
ror rcx, 0x18
add rax, rcx
add r9, rax
mov rax, qword [rsp + 0x30]
xor rsi, r9
mov qword [rsp + 0x40], r9
ror rsi, 0x10
add rax, rsi
mov r9, rax
mov qword [rsp + 0x30], rax
xor r9, rcx
lea rax, [rbx + rbp]
mov rcx, qword [rsp + 0x50]
add rcx, rax
rol r9, 1
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rcx
xor rcx, rsi
ror rcx, 0x20
add rax, rcx
mov qword [rsp + 0x28], rax
mov rsi, qword [rsp + 0x50]
xor rbx, rax
mov rax, qword [rsp + 0xb8]
ror rbx, 0x18
add rax, rbx
add rsi, rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x50], rsi
xor rsi, rcx
ror rsi, 0x10
add rax, rsi
xor rbx, rax
mov qword [rsp + 0x28], rax
lea rax, [r15 + r8]
rol rbx, 1
add rdx, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
mov rdi, qword [rsp + 0x58]
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x30], rax
xor rdx, r8
ror rdx, 0x18
lea rax, [rdx + r13]
add rdi, rax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x58], rdi
xor rdi, rcx
mov rcx, qword [rsp + 0x158]
ror rdi, 0x10
add rax, rdi
mov r8, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x78]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rax, r9
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0x38]
xor rax, rdx
ror rax, 0x20
add rcx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x158], rcx
xor rcx, r9
mov r9, qword [rsp + 0x158]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x38]
xor rax, rdx
mov qword [rsp + 0x48], rdx
ror rax, 0x10
add r9, rax
mov qword [rsp + 0x38], rax
lea rax, [r10 + r14]
mov qword [rsp + 0x158], r9
mov r14, qword [rsp + 0x40]
xor r9, rcx
add r14, rax
rol r9, 1
mov rax, qword [rsp + 0x20]
mov rcx, r14
xor rcx, r11
ror rcx, 0x20
add rax, rcx
mov rdx, rax
mov qword [rsp + 0x20], rax
xor rdx, r10
mov r10, qword [rsp + 0x60]
ror rdx, 0x18
lea rax, [rdx + r10]
add r14, rax
mov qword [rsp + 0x40], r14
mov r11, r14
mov rax, qword [rsp + 0x20]
xor r11, rcx
mov r14, qword [rsp + 0x158]
ror r11, 0x10
add rax, r11
mov rcx, rax
mov qword [rsp + 0x20], rax
xor rcx, rdx
rol rcx, 1
lea rax, [rcx + r10]
mov r10, qword [rsp + 0x50]
add r10, rax
mov rax, qword [rsp + 0x68]
xor rdi, r10
ror rdi, 0x20
add r14, rdi
mov rdx, r14
xor rdx, rcx
ror rdx, 0x18
add rax, rdx
add r10, rax
mov rax, qword [rsp + 0x70]
add rax, rbx
mov qword [rsp + 0x50], r10
xor rdi, r10
ror rdi, 0x10
add r14, rdi
mov r10, r14
mov qword [rsp + 0x158], r14
mov r14, qword [rsp + 0x38]
xor r10, rdx
mov rdx, qword [rsp + 0x58]
add rdx, rax
rol r10, 1
mov rax, qword [rsp + 0x20]
xor r14, rdx
ror r14, 0x20
add rax, r14
mov rcx, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x78]
xor rcx, rbx
mov rbx, qword [rsp + 0x48]
ror rcx, 0x18
add rax, rcx
add rdx, rax
mov rax, qword [rsp + 0x20]
xor r14, rdx
ror r14, 0x10
add rax, r14
mov qword [rsp + 0x38], r14
mov r14, rax
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x80]
xor r14, rcx
add rax, r8
rol r14, 1
add rbx, rax
mov rax, qword [rsp + 0x28]
xor r11, rbx
ror r11, 0x20
add rax, r11
mov rcx, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x88]
xor rcx, r8
ror rcx, 0x18
add rax, rcx
add rbx, rax
mov rax, qword [rsp + 0x28]
xor r11, rbx
mov qword [rsp + 0x48], rbx
mov rbx, qword [rsp + 0x40]
ror r11, 0x10
add rax, r11
mov r8, rax
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x90]
xor r8, rcx
rol r8, 1
add rax, r9
add rbx, rax
mov rax, qword [rsp + 0x30]
xor rsi, rbx
ror rsi, 0x20
add rax, rsi
mov rcx, rax
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x98]
xor rcx, r9
ror rcx, 0x18
add rax, rcx
add rbx, rax
mov rax, qword [rsp + 0x30]
xor rsi, rbx
mov qword [rsp + 0x40], rbx
mov rbx, qword [rsp + 0x50]
ror rsi, 0x10
add rax, rsi
mov qword [rsp + 0x30], rax
mov r9, rax
mov rax, qword [rsp + 0xa0]
xor r9, rcx
add rax, r14
rol r9, 1
add rbx, rax
mov rcx, rbx
xor rcx, rsi
mov rsi, qword [rsp + 0x28]
ror rcx, 0x20
add rsi, rcx
xor r14, rsi
ror r14, 0x18
lea rax, [r14 + r15]
add rbx, rax
lea rax, [r8 + r12]
add rdx, rax
mov qword [rsp + 0x50], rbx
mov rax, qword [rsp + 0xb8]
mov r15, rbx
mov rbx, qword [rsp + 0x30]
xor r15, rcx
mov qword [rsp + 0x58], rdx
mov rcx, rdx
xor rcx, rdi
ror r15, 0x10
mov rdi, qword [rsp + 0x58]
add rsi, r15
ror rcx, 0x20
xor r14, rsi
add rbx, rcx
mov qword [rsp + 0x28], rsi
mov rdx, rbx
rol r14, 1
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add rdi, rax
mov rax, qword [rsp + 0xc0]
mov rsi, rdi
mov qword [rsp + 0x58], rdi
mov rdi, qword [rsp + 0x38]
xor rsi, rcx
add rax, r9
ror rsi, 0x10
add rbx, rsi
mov r8, rbx
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x158]
xor r8, rdx
mov rdx, qword [rsp + 0x48]
add rdx, rax
rol r8, 1
mov rax, qword [rsp + 0xc8]
xor rdi, rdx
ror rdi, 0x20
add rbx, rdi
mov rcx, rbx
xor rcx, r9
ror rcx, 0x18
add rax, rcx
add rdx, rax
xor rdi, rdx
mov qword [rsp + 0x48], rdx
lea rax, [r10 + r13]
ror rdi, 0x10
add rbx, rdi
mov qword [rsp + 0x158], rbx
mov r9, rbx
mov rbx, qword [rsp + 0x40]
xor r9, rcx
add rbx, rax
rol r9, 1
mov rcx, rbx
xor rcx, r11
mov r11, qword [rsp + 0x20]
ror rcx, 0x20
add r11, rcx
mov rdx, r11
xor rdx, r10
mov r10, qword [rsp + 0x158]
ror rdx, 0x18
lea rax, [rdx + rbp]
add rbx, rax
mov rbp, rbx
mov qword [rsp + 0x40], rbx
xor rbp, rcx
ror rbp, 0x10
add r11, rbp
mov rcx, r11
xor rcx, rdx
rol rcx, 1
lea rax, [rcx + r13]
mov r13, qword [rsp + 0x50]
add r13, rax
xor rsi, r13
ror rsi, 0x20
add r10, rsi
mov rdx, r10
xor rdx, rcx
ror rdx, 0x18
lea rax, [rdx + r12]
mov r12, qword [rsp + 0x58]
add r13, rax
mov rax, qword [rsp + 0x80]
add rax, r14
xor rsi, r13
add r12, rax
ror rsi, 0x10
mov rax, qword [rsp + 0xa0]
xor rdi, r12
ror rdi, 0x20
add r10, rsi
add r11, rdi
mov qword [rsp + 0x158], r10
mov rbx, r10
mov rcx, r11
mov r10, qword [rsp + 0x28]
xor rcx, r14
ror rcx, 0x18
xor rbx, rdx
mov rdx, qword [rsp + 0x48]
add rax, rcx
add r12, rax
rol rbx, 1
mov rax, qword [rsp + 0xa8]
xor rdi, r12
ror rdi, 0x10
add rax, r8
add r11, rdi
mov qword [rsp + 0x38], rdi
add rdx, rax
mov qword [rsp + 0x20], r11
mov rax, qword [rsp + 0xd8]
xor rbp, rdx
ror rbp, 0x20
mov rdi, r11
xor rdi, rcx
add r10, rbp
mov rcx, r10
rol rdi, 1
xor rcx, r8
ror rcx, 0x18
mov r11, qword [rsp + 0x30]
add rax, rcx
mov r14, qword [rsp + 0x40]
add rdx, rax
mov rax, qword [rsp + 0xc8]
xor rbp, rdx
add rax, r9
mov qword [rsp + 0x48], rdx
add r14, rax
ror rbp, 0x10
mov rax, qword [rsp + 0x90]
xor r15, r14
add r10, rbp
ror r15, 0x20
add r11, r15
mov r8, r10
xor r8, rcx
mov rcx, r11
xor rcx, r9
rol r8, 1
ror rcx, 0x18
add rax, rcx
add r14, rax
mov rax, qword [rsp + 0x68]
add rax, rdi
xor r15, r14
add r13, rax
ror r15, 0x10
mov rax, qword [rsp + 0xc0]
add r11, r15
mov r9, r11
xor r9, rcx
mov rcx, r13
xor rcx, r15
rol r9, 1
mov r15, qword [rsp + 0x38]
ror rcx, 0x20
add r10, rcx
xor rdi, r10
ror rdi, 0x18
add rax, rdi
add r13, rax
mov rax, r13
xor rax, rcx
ror rax, 0x10
add r10, rax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x60]
xor rdi, r10
add rax, r8
mov qword [rsp + 0x28], r10
add r12, rax
rol rdi, 1
mov rax, qword [rsp + 0x70]
mov rcx, r12
xor rcx, rsi
mov rsi, qword [rsp + 0x48]
ror rcx, 0x20
add r11, rcx
mov rdx, r11
xor rdx, r8
ror rdx, 0x18
add rax, rdx
add r12, rax
mov rax, qword [rsp + 0xb8]
add rax, r9
mov r10, r12
add rsi, rax
xor r10, rcx
mov rax, qword [rsp + 0x158]
xor r15, rsi
ror r10, 0x10
add r11, r10
ror r15, 0x20
add rax, r15
mov qword [rsp + 0x30], r11
xor r11, rdx
mov qword [rsp + 0x158], rax
rol r11, 1
mov rcx, rax
xor rcx, r9
mov r9, qword [rsp + 0x158]
mov rax, qword [rsp + 0x98]
ror rcx, 0x18
add rax, rcx
add rsi, rax
mov rax, qword [rsp + 0x88]
add rax, rbx
xor r15, rsi
add r14, rax
ror r15, 0x10
mov rax, qword [rsp + 0x78]
add r9, r15
mov r8, r9
xor r15, rdi
mov rdi, qword [rsp + 0xe0]
xor r8, rcx
xor r9, r13
rol r8, 1
mov r13, qword [rsp + 0x28]
mov rcx, r14
xor rcx, rbp
xor r13, rsi
mov rbp, qword [rsp + 0x20]
movabs rsi, 0x510e527fade682d1
ror rcx, 0x20
add rbp, rcx
mov rdx, rbp
xor rdx, rbx
mov rbx, qword [rsp + 0x140]
ror rdx, 0x18
add rax, rdx
add r14, rax
xor r9, qword [rbx]
mov rax, r14
xor rax, rcx
mov qword [rbx], r9
ror rax, 0x10
add rbp, rax
mov qword [rsp + 0x48], rax
mov rcx, rbp
xor rbp, r12
xor rbp, qword [rbx + 8]
xor rcx, rdx
mov rdx, qword [rsp + 0x148]
mov r12, qword [rsp + 0x30]
add rdx, rdi
mov qword [rbx + 8], rbp
xor r12, r14
xor r13, qword [rbx + 0x10]
mov qword [rbx + 0x10], r13
xor r12, qword [rbx + 0x18]
mov qword [rbx + 0x18], r12
mov rax, qword [rbx + 0x20]
xor rax, r10
rol rcx, 1
xor rcx, rax
mov qword [rsp + 0x148], rdx
mov rax, qword [rsp + 0x58]
mov qword [rbx + 0x20], rcx
xor rax, r8
xor r15, qword [rbx + 0x28]
mov qword [rbx + 0x28], r15
mov r10, r15
mov qword [rsp + 0x158], rcx
mov rcx, qword [rsp + 0x48]
xor rcx, r11
mov qword [rsp + 0x38], r15
xor rcx, qword [rbx + 0x30]
movabs r15, 0x6a09e667f3bcc908
mov r11, qword [rsp + 0x158]
mov qword [rbx + 0x30], rcx
xor rax, qword [rbx + 0x38]
sub qword [rsp + 0x150], rdi
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x58], rax
mov qword [rbx + 0x38], rax
jne 0x14011b230
add rsp, 0xf8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret