Function at 0x1800224a0
Capabilities:
Hash data using sha512
Resolve function by parsing pe exports

Disassembly:
test r8, r8
je 0x180023b58
mov qword [rsp + 8], rcx
mov eax, 0x118
call fcn.1800514e0
sub rsp, rax
mov qword [rsp + 0x110], rbx
mov qword [rsp + 0x108], rbp
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0xf0], r12
mov qword [rsp + 0xe8], r13
mov qword [rsp + 0xe0], r14
mov qword [rsp + 0xd8], r15
lea r15, [rdx + 2]
mov rax, r8
mov r9, rcx
movabs rdi, 0x428a2f98d728ae22
mov qword [rsp + 0x30], r15
mov rbp, qword [r9 + 0x20]
mov rsi, qword [r9 + 0x28]
mov r14, qword [r9 + 0x30]
movzx r8d, byte [r15 - 2]
mov rbx, qword [r9 + 8]
mov r10, qword [r9 + 0x18]
mov r11, qword [r9 + 0x10]
shl r8, 8
sub rax, 1
mov qword [rsp + 0x130], rax
mov rax, qword [r9]
mov rdx, rbp
mov r12, rax
mov qword [rsp + 0xc0], rax
movzx eax, byte [r15 - 1]
or r8, rax
movzx eax, byte [r15]
mov rcx, rbp
shl r8, 8
not rcx
mov r13, rbx
or r8, rax
movzx eax, byte [r15 + 1]
and rcx, r14
shl r8, 8
xor r13, r12
or r8, rax
movzx eax, byte [r15 + 2]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 3]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 4]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 5]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, rbp
ror rax, 0x12
mov qword [rsp + 0x40], r8
xor rdx, rax
mov rax, rbp
ror rax, 0xe
xor rdx, rax
mov rax, rsi
add rdx, qword [r9 + 0x38]
and rax, rbp
mov r9, rbx
xor rcx, rax
and r9, r12
mov rax, r12
add rdx, rcx
mov rcx, r12
add rdx, rdi
mov rdi, r13
add rdx, r8
movzx r8d, byte [r15 + 6]
and rdi, r11
shl r8, 8
add r10, rdx
ror rcx, 0x27
ror rax, 0x22
xor rdi, r9
xor rcx, rax
mov rax, r12
ror rax, 0x1c
xor rcx, rax
lea rax, [rdx + rcx]
add rdi, rax
movzx eax, byte [r15 + 7]
or r8, rax
movzx eax, byte [r15 + 8]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 9]
shl r8, 8
or r8, rax
shl r8, 8
movzx eax, byte [r15 + 0xa]
and r13, rdi
mov rdx, r10
or r8, rax
movzx eax, byte [r15 + 0xb]
xor r13, r9
shl r8, 8
mov rcx, r10
or r8, rax
movzx eax, byte [r15 + 0xc]
not rcx
shl r8, 8
and rcx, rsi
or r8, rax
movzx eax, byte [r15 + 0xd]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r10
ror rax, 0x12
mov qword [rsp + 0x48], r8
xor rdx, rax
mov rax, r10
ror rax, 0xe
xor rdx, rax
mov rax, rbp
and rax, r10
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r15 + 0xe]
add rcx, rax
shl r8, 8
movabs rdx, 0x7137449123ef65cd
add rdx, rcx
mov rcx, rdi
mov rax, rdi
add rdx, r14
add r11, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, rdi
ror rax, 0x1c
xor rcx, rax
lea rax, [rdx + rcx]
mov rdx, r11
mov rcx, r11
add r13, rax
movzx eax, byte [r15 + 0xf]
not rcx
or r8, rax
movzx eax, byte [r15 + 0x10]
and rcx, rbp
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x11]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x12]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x13]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x14]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x15]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r11
ror rax, 0x12
mov qword [rsp + 0x50], r8
xor rdx, rax
mov rax, r11
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r11
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r15 + 0x16]
movabs rdx, 0xb5c0fbcfec4d3b2f
add rcx, rax
shl r8, 8
mov rax, r13
add rdx, rcx
mov rcx, r13
add rdx, rsi
mov rsi, r13
add rbx, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor rsi, r12
mov rax, r13
ror rax, 0x1c
and rsi, rdi
xor rcx, rax
mov rax, r13
and rax, r12
xor rsi, rax
lea rax, [rdx + rcx]
mov rdx, rbx
add rsi, rax
movzx eax, byte [r15 + 0x17]
mov rcx, rbx
or r8, rax
movzx eax, byte [r15 + 0x18]
not rcx
shl r8, 8
and rcx, r10
or r8, rax
movzx eax, byte [r15 + 0x19]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x1a]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x1b]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x1c]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x1d]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, rbx
ror rax, 0x12
mov qword [rsp + 0x58], r8
xor rdx, rax
mov rax, rbx
ror rax, 0xe
xor rdx, rax
mov rax, r11
and rax, rbx
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0xe9b5dba58189dbbc
add rcx, rax
mov rax, rsi
add rdx, rcx
mov rcx, rsi
add rdx, rbp
mov rbp, r13
add r12, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor rbp, rsi
mov rax, rsi
ror rax, 0x1c
and rbp, rdi
xor rcx, rax
mov rax, r13
and rax, rsi
xor rbp, rax
lea rax, [rdx + rcx]
add rbp, rax
movzx eax, byte [r15 + 0x1f]
movzx r8d, byte [r15 + 0x1e]
mov rdx, r12
shl r8, 8
mov rcx, r12
or r8, rax
movzx eax, byte [r15 + 0x20]
not rcx
shl r8, 8
and rcx, r11
or r8, rax
movzx eax, byte [r15 + 0x21]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x22]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x23]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x24]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x25]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r12
ror rax, 0x12
mov qword [rsp + 0x60], r8
xor rdx, rax
mov rax, r12
ror rax, 0xe
xor rdx, rax
mov rax, rbx
and rax, r12
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r15 + 0x26]
add rcx, rax
shl r8, 8
movabs rdx, 0x3956c25bf348b538
add rdx, rcx
mov rcx, rbp
mov rax, rbp
add rdx, r10
mov r10, rsi
add rdi, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor r10, rbp
mov rax, rbp
ror rax, 0x1c
and r10, r13
xor rcx, rax
mov rax, rsi
and rax, rbp
xor r10, rax
lea rax, [rdx + rcx]
add r10, rax
movzx eax, byte [r15 + 0x27]
or r8, rax
movzx eax, byte [r15 + 0x28]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x29]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x2a]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x2b]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x2c]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x2d]
shl r8, 8
or r8, rax
mov qword [rsp + 0x68], r8
mov rdx, rdi
mov rax, rdi
ror rdx, 0x29
ror rax, 0x12
mov rcx, rdi
xor rdx, rax
not rcx
mov rax, rdi
ror rax, 0xe
and rcx, rbx
xor rdx, rax
mov rax, rdi
and rax, r12
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r15 + 0x2e]
add rcx, rax
shl r8, 8
movabs rdx, 0x59f111f1b605d019
add rdx, rcx
mov rcx, r10
mov rax, r10
add rdx, r11
mov r11, rbp
add r13, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor r11, r10
mov rax, r10
ror rax, 0x1c
and r11, rsi
xor rcx, rax
mov rax, rbp
and rax, r10
xor r11, rax
lea rax, [rdx + rcx]
mov rdx, r13
add r11, rax
movzx eax, byte [r15 + 0x2f]
mov rcx, r13
or r8, rax
movzx eax, byte [r15 + 0x30]
not rcx
shl r8, 8
and rcx, r12
or r8, rax
movzx eax, byte [r15 + 0x31]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x32]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x33]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x34]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x35]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r13
ror rax, 0x12
mov qword [rsp + 0x70], r8
xor rdx, rax
mov rax, r13
ror rax, 0xe
xor rdx, rax
mov rax, rdi
and rax, r13
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0x923f82a4af194f9b
add rcx, rax
add rdx, rcx
mov rcx, r11
add rdx, rbx
add rsi, rdx
movzx r8d, byte [r15 + 0x36]
ror rcx, 0x27
mov rax, r11
ror rax, 0x22
shl r8, 8
mov rbx, r10
xor rcx, rax
xor rbx, r11
mov rax, r11
ror rax, 0x1c
and rbx, rbp
xor rcx, rax
mov rax, r10
and rax, r11
xor rbx, rax
lea rax, [rdx + rcx]
mov rdx, rsi
add rbx, rax
movzx eax, byte [r15 + 0x37]
mov rcx, rsi
or r8, rax
movzx eax, byte [r15 + 0x38]
not rcx
shl r8, 8
and rcx, rdi
or r8, rax
movzx eax, byte [r15 + 0x39]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x3a]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x3b]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x3c]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x3d]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, rsi
ror rax, 0x12
mov qword [rsp + 0x78], r8
xor rdx, rax
mov rax, rsi
ror rax, 0xe
xor rdx, rax
mov rax, r13
and rax, rsi
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r15 + 0x3e]
add rcx, rax
shl r8, 8
movabs rdx, 0xab1c5ed5da6d8118
add rdx, rcx
mov rcx, rbx
mov rax, rbx
add rdx, r12
mov r12, r11
add rbp, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor r12, rbx
mov rax, rbx
ror rax, 0x1c
and r12, r10
xor rcx, rax
mov rax, r11
and rax, rbx
xor r12, rax
lea rax, [rdx + rcx]
add r12, rax
movzx eax, byte [r15 + 0x3f]
or r8, rax
movzx eax, byte [r15 + 0x40]
shl r8, 8
or r8, rax
shl r8, 8
movzx eax, byte [r15 + 0x41]
mov rdx, rbp
or r8, rax
movzx eax, byte [r15 + 0x42]
mov rcx, rbp
shl r8, 8
not rcx
mov r9, rbx
or r8, rax
movzx eax, byte [r15 + 0x43]
and rcx, r13
shl r8, 8
and r9, r12
or r8, rax
movzx eax, byte [r15 + 0x44]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x45]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, rbp
ror rax, 0x12
mov qword [rsp + 0x80], r8
xor rdx, rax
mov rax, rbp
ror rax, 0xe
xor rdx, rax
mov rax, rsi
and rax, rbp
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0xd807aa98a3030242
add rcx, rax
mov rax, r12
add rdx, rcx
mov rcx, r12
add rdx, rdi
mov rdi, rbx
add r10, rdx
xor rdi, r12
ror rcx, 0x27
ror rax, 0x22
mov r8, rdi
and r8, r11
xor rcx, rax
mov rax, r12
xor r8, r9
ror rax, 0x1c
xor rcx, rax
lea rax, [rdx + rcx]
mov rdx, r10
add r8, rax
movzx eax, byte [r15 + 0x47]
mov qword [rsp + 0x128], r8
movzx r8d, byte [r15 + 0x46]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x48]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x49]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x4a]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x4b]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x4c]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x4d]
shl r8, 8
or r8, rax
mov rax, r10
ror rdx, 0x29
ror rax, 0x12
mov qword [rsp + 0x88], r8
xor rdx, rax
mov rax, r10
mov rcx, r10
ror rax, 0xe
not rcx
xor rdx, rax
and rcx, rsi
mov rax, rbp
and rax, r10
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [r15 + 0x4e]
add rcx, rax
shl r8, 8
movabs rdx, 0x12835b0145706fbe
add rdx, rcx
add rdx, r13
mov r13, qword [rsp + 0x128]
add r11, rdx
and rdi, r13
mov rcx, r13
ror rcx, 0x27
xor rdi, r9
mov rax, r13
ror rax, 0x22
mov r9, rdi
xor rcx, rax
mov rax, r13
ror rax, 0x1c
xor rcx, rax
lea rax, [rdx + rcx]
mov rdx, r11
mov rcx, r11
add r9, rax
movzx eax, byte [r15 + 0x4f]
not rcx
or r8, rax
movzx eax, byte [r15 + 0x50]
and rcx, rbp
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x51]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x52]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x53]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x54]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x55]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r11
ror rax, 0x12
mov qword [rsp + 0x90], r8
xor rdx, rax
mov rax, r11
ror rax, 0xe
xor rdx, rax
mov rax, r10
and rax, r11
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0x243185be4ee4b28c
add rcx, rax
mov rax, r9
add rdx, rcx
mov rcx, r9
add rdx, rsi
add rbx, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, r9
ror rax, 0x1c
xor rcx, rax
movzx r8d, byte [r15 + 0x56]
mov rsi, qword [rsp + 0x30]
mov r14, r9
shl r8, 8
xor r14, r12
mov rax, r9
and rax, r12
and r14, r13
xor r14, rax
lea rax, [rdx + rcx]
mov rdx, rbx
add r14, rax
movzx eax, byte [r15 + 0x57]
mov rcx, rbx
or r8, rax
movzx eax, byte [r15 + 0x58]
not rcx
shl r8, 8
and rcx, r10
or r8, rax
movzx eax, byte [r15 + 0x59]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x5a]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x5b]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x5c]
shl r8, 8
or r8, rax
movzx eax, byte [r15 + 0x5d]
mov r15, r9
shl r8, 8
xor r15, r14
or r8, rax
ror rdx, 0x29
and r15, r13
mov qword [rsp + 0x98], r8
mov rax, rbx
ror rax, 0x12
xor rdx, rax
mov rax, rbx
ror rax, 0xe
xor rdx, rax
mov rax, r11
and rax, rbx
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [rsi + 0x5e]
add rcx, rax
shl r8, 8
movabs rdx, 0x550c7dc3d5ffb4e2
add rdx, rcx
mov rcx, r14
mov rax, r14
add rdx, rbp
add r12, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, r14
ror rax, 0x1c
xor rcx, rax
mov rax, r9
and rax, r14
xor r15, rax
lea rax, [rdx + rcx]
add r15, rax
movzx eax, byte [rsi + 0x5f]
or r8, rax
movzx eax, byte [rsi + 0x60]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x61]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x62]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x63]
shl r8, 8
mov rdx, r12
or r8, rax
movzx eax, byte [rsi + 0x64]
mov rcx, r12
shl r8, 8
not rcx
or r8, rax
movzx eax, byte [rsi + 0x65]
and rcx, r11
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r12
ror rax, 0x12
mov qword [rsp + 0xa0], r8
xor rdx, rax
mov rax, r12
ror rax, 0xe
xor rdx, rax
mov rax, rbx
and rax, r12
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [rsi + 0x66]
add rcx, rax
shl r8, 8
movabs rdx, 0x72be5d74f27b896f
add rdx, rcx
mov rcx, r15
mov rax, r15
add rdx, r10
mov r10, r14
add r13, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor r10, r15
mov rax, r15
ror rax, 0x1c
and r10, r9
mov qword [rsp + 0x128], r13
xor rcx, rax
mov rax, r14
and rax, r15
xor r10, rax
lea rax, [rdx + rcx]
mov rdx, r13
add r10, rax
movzx eax, byte [rsi + 0x67]
mov rcx, r13
or r8, rax
movzx eax, byte [rsi + 0x68]
not rcx
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x69]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x6a]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x6b]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x6c]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x6d]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r13
ror rax, 0x12
mov qword [rsp + 0xa8], r8
xor rdx, rax
mov rax, r13
ror rax, 0xe
xor rdx, rax
and rcx, rbx
mov rax, r13
mov rdi, r15
and rax, r12
xor rdi, r10
xor rcx, rax
lea rax, [r8 + rdx]
movzx r8d, byte [rsi + 0x6e]
add rcx, rax
shl r8, 8
and rdi, r14
mov rax, r10
movabs rdx, 0x80deb1fe3b1696b1
add rdx, rcx
mov rcx, r10
add rdx, r11
add r9, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, r10
mov qword [rsp + 0x138], r9
ror rax, 0x1c
xor rcx, rax
mov rax, r15
and rax, r10
xor rdi, rax
lea rax, [rdx + rcx]
mov rdx, r9
add rdi, rax
movzx eax, byte [rsi + 0x6f]
mov rcx, r9
or r8, rax
movzx eax, byte [rsi + 0x70]
not rcx
shl r8, 8
and rcx, r12
mov qword [rsp + 0x20], rdi
or r8, rax
movzx eax, byte [rsi + 0x71]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x72]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x73]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x74]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x75]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r9
ror rax, 0x12
mov qword [rsp + 0xb0], r8
xor rdx, rax
mov rax, r9
ror rax, 0xe
xor rdx, rax
mov rax, r13
and rax, r9
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0x9bdc06a725c71235
add rcx, rax
mov rax, rdi
add rdx, rcx
mov rcx, rdi
add rdx, rbx
mov rbx, r10
xor r10, rdi
add r14, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, rdi
ror rax, 0x1c
xor rcx, rax
and r10, r15
movzx r8d, byte [rsi + 0x76]
mov rax, rbx
mov rbp, rdi
and rax, rdi
shl r8, 8
xor r10, rax
lea rax, [rdx + rcx]
mov rdx, r14
add r10, rax
movzx eax, byte [rsi + 0x77]
mov rcx, r14
or r8, rax
movzx eax, byte [rsi + 0x78]
not rcx
shl r8, 8
and rcx, r13
xor rbp, r10
or r8, rax
movzx eax, byte [rsi + 0x79]
and rbp, rbx
shl r8, 8
mov qword [rsp + 0x18], r10
or r8, rax
movzx eax, byte [rsi + 0x7a]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x7b]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x7c]
shl r8, 8
or r8, rax
movzx eax, byte [rsi + 0x7d]
shl r8, 8
or r8, rax
ror rdx, 0x29
mov rax, r14
ror rax, 0x12
mov qword [rsp + 0xb8], r8
xor rdx, rax
mov rax, r14
ror rax, 0xe
xor rdx, rax
mov rax, r9
and rax, r14
xor rcx, rax
lea rax, [r8 + rdx]
movabs rdx, 0xc19bf174cf692694
add rcx, rax
mov rax, r10
add rdx, rcx
mov rcx, r10
add rdx, r12
add r15, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, r10
ror rax, 0x1c
xor rcx, rax
mov rax, rdi
and rax, r10
xor rbp, rax
lea rax, [rdx + rcx]
mov edx, 0x11
add rbp, rax
lea rax, [0x18007e5b8]
mov qword [rsp], rdx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbp
jmp 0x18002331b
mov r9, qword [rsp + 0x138]
mov rdi, rsi
lea r12d, [rdx - 3]
lea r13d, [rdx - 1]
mov sil, dl
lea r11d, [rdx - 7]
and r13d, 0xf
and r12d, 0xf
mov rcx, qword [rsp + r12*8 + 0x40]
and esi, 0xf
mov r8, qword [rsp + rsi*8 + 0x40]
mov rdx, rcx
mov rax, rcx
shr rcx, 6
ror rdx, 0x3d
ror rax, 0x13
xor rdx, rax
mov rax, r8
xor rdx, rcx
mov rcx, r8
shr r8, 7
ror rcx, 8
ror rax, 1
xor rcx, rax
lea eax, [r11 - 1]
xor rcx, r8
and eax, 0xf
add rdx, rcx
mov rcx, r15
add rdx, qword [rsp + rax*8 + 0x40]
not rcx
mov rax, r15
add qword [rsp + r13*8 + 0x40], rdx
and rcx, r9
mov rdx, r15
ror rdx, 0x29
ror rax, 0x12
mov r9, r10
xor rdx, rax
xor r9, rbp
and r10, rbp
mov rax, r15
mov r8, r9
ror rax, 0xe
and r8, rdi
xor rdx, rax
xor r8, r10
mov rax, r14
and rax, r15
xor rcx, rax
mov rax, qword [rsp + 8]
add rdx, rcx
mov rcx, rbp
add rdx, qword [rax - 8]
mov rax, rbp
add rdx, qword [rsp + r13*8 + 0x40]
add rdx, qword [rsp + 0x128]
add rbx, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, rbp
mov qword [rsp + 0x28], rbx
ror rax, 0x1c
xor rcx, rax
lea rax, [rdx + rcx]
add r8, rax
mov rax, qword [rsp]
lea ebp, [rax - 2]
lea ebx, [rax + 1]
mov qword [rsp + 0x128], r8
and ebp, 0xf
and ebx, 0xf
mov rcx, qword [rsp + rbp*8 + 0x40]
mov rdx, qword [rsp + rbx*8 + 0x40]
mov r8, rcx
mov rax, rcx
shr rcx, 6
ror r8, 0x3d
ror rax, 0x13
xor r8, rax
xor r8, rcx
mov rcx, rdx
mov rdi, qword [rsp + 0x28]
ror rcx, 8
mov rax, rdx
ror rax, 1
shr rdx, 7
xor rcx, rax
mov al, r11b
xor rcx, rdx
and eax, 0xf
add r8, rcx
mov rcx, rdi
add r8, qword [rsp + rax*8 + 0x40]
mov rax, rdi
add qword [rsp + rsi*8 + 0x40], r8
mov rdx, qword [rsp + rsi*8 + 0x40]
ror rcx, 0x29
ror rax, 0x12
mov r8, rdi
xor rcx, rax
not r8
mov rax, rdi
ror rax, 0xe
and r8, r14
xor rcx, rax
mov rax, r15
and rax, rdi
xor r8, rax
lea rax, [rdx + rcx]
mov rdx, qword [rsp + 0x128]
add r8, rax
mov rax, qword [rsp + 8]
mov rcx, rdx
add r8, qword [rax]
mov rax, qword [rsp + 0x138]
add r8, rax
mov rax, rdx
add qword [rsp + 0x20], r8
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, rdx
mov rdx, r9
and rdx, qword [rsp + 0x128]
mov r9, qword [rsp]
ror rax, 0x1c
xor rcx, rax
xor rdx, r10
add r9d, 2
lea rax, [r8 + rcx]
mov rcx, qword [rsp + r13*8 + 0x40]
and r9d, 0xf
add rdx, rax
mov r8, rcx
mov rax, rcx
ror r8, 0x3d
ror rax, 0x13
shr rcx, 6
xor r8, rax
mov qword [rsp + 0x138], rdx
mov rdx, qword [rsp + r9*8 + 0x40]
xor r8, rcx
mov rcx, rdx
mov rax, rdx
ror rcx, 8
ror rax, 1
shr rdx, 7
xor rcx, rax
lea eax, [r11 + 1]
mov r11, qword [rsp + 0x20]
xor rcx, rdx
and eax, 0xf
mov rdx, r11
add r8, rcx
add r8, qword [rsp + rax*8 + 0x40]
mov rax, r11
add qword [rsp + rbx*8 + 0x40], r8
ror rdx, 0x29
ror rax, 0x12
xor rdx, rax
mov rax, r11
ror rax, 0xe
xor rdx, rax
mov r8, qword [rsp + 0x10]
mov r10, qword [rsp + 0x18]
mov rax, rdi
mov rdi, qword [rsp + 0x138]
mov rcx, r11
and rax, r11
not rcx
and rcx, r15
xor rcx, rax
mov rax, qword [rsp + 8]
add rdx, rcx
mov rcx, rdi
add rdx, qword [rax + 8]
mov rax, rdi
add rdx, qword [rsp + rbx*8 + 0x40]
add rdx, r14
mov r14, rdi
add r10, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor r14, r8
mov rax, rdi
and r14, qword [rsp + 0x128]
ror rax, 0x1c
mov qword [rsp + 0x18], r10
xor rcx, rax
mov rax, rdi
mov rdi, qword [rsp]
and rax, r8
add edi, 3
xor r14, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + rsi*8 + 0x40]
mov rsi, qword [rsp + 0x10]
add r14, rax
mov r8, rcx
mov rax, rcx
shr rcx, 6
and edi, 0xf
mov rdx, qword [rsp + rdi*8 + 0x40]
ror r8, 0x3d
ror rax, 0x13
xor r8, rax
mov rax, rdx
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
xor rcx, rax
mov rax, qword [rsp]
xor rcx, rdx
add eax, 0xfffffffb
mov rdx, r10
and eax, 0xf
add r8, rcx
mov rcx, r10
add r8, qword [rsp + rax*8 + 0x40]
mov rax, r10
not rcx
add qword [rsp + r9*8 + 0x40], r8
ror rdx, 0x29
ror rax, 0x12
xor rdx, rax
mov rax, r10
mov r10, qword [rsp + 0x28]
ror rax, 0xe
and rcx, r10
xor rdx, rax
mov rax, r11
and rax, qword [rsp + 0x18]
xor rcx, rax
mov rax, qword [rsp + 8]
add rdx, rcx
add rdx, qword [rax + 0x10]
add rdx, qword [rsp + r9*8 + 0x40]
add rdx, r15
add rsi, rdx
mov qword [rsp + 0x10], rsi
mov r11, qword [rsp]
mov rcx, r14
mov rax, r14
ror rcx, 0x27
ror rax, 0x22
add r11d, 4
xor rcx, rax
and r11d, 0xf
mov rax, r14
ror rax, 0x1c
xor rcx, rax
mov rax, qword [rsp + 0x138]
mov r15, rax
and rax, r14
xor r15, r14
and r15, qword [rsp + 0x128]
xor r15, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + rbx*8 + 0x40]
mov rdx, qword [rsp + r11*8 + 0x40]
add r15, rax
mov r8, rcx
mov rax, rcx
shr rcx, 6
ror r8, 0x3d
ror rax, 0x13
mov rbx, r14
xor r8, rax
mov rax, rdx
xor rbx, r15
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
xor rcx, rax
mov rax, qword [rsp]
xor rcx, rdx
add eax, 0xfffffffc
mov rdx, rsi
and eax, 0xf
add r8, rcx
mov rcx, rsi
add r8, qword [rsp + rax*8 + 0x40]
not rcx
mov rax, rsi
add qword [rsp + rdi*8 + 0x40], r8
ror rdx, 0x29
ror rax, 0x12
xor rdx, rax
mov rax, rsi
mov rsi, qword [rsp + 0x20]
ror rax, 0xe
and rcx, rsi
xor rdx, rax
mov rax, qword [rsp + 0x18]
and rax, qword [rsp + 0x10]
xor rcx, rax
mov rax, qword [rsp + 8]
add rdx, rcx
mov rcx, r15
add rdx, qword [rax + 0x18]
mov rax, r15
add rdx, qword [rsp + rdi*8 + 0x40]
add rdx, r10
mov r10, qword [rsp]
add qword [rsp + 0x128], rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
mov rax, r15
ror rax, 0x1c
xor rcx, rax
mov rax, qword [rsp + 0x138]
and rbx, rax
mov rax, r14
and rax, r15
xor rbx, rax
lea rax, [rdx + rcx]
add rbx, rax
add r10d, 5
mov rcx, qword [rsp + r9*8 + 0x40]
mov r9, qword [rsp]
and r10d, 0xf
mov rdx, qword [rsp + r10*8 + 0x40]
mov r8, rcx
mov rax, rcx
shr rcx, 6
ror r8, 0x3d
ror rax, 0x13
xor r8, rax
mov rax, rdx
add r9d, 6
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
and r9d, 0xf
xor rcx, rax
xor rcx, rdx
add r8, rcx
add r8, qword [rsp + r12*8 + 0x40]
mov r12, qword [rsp + 0x18]
add qword [rsp + r11*8 + 0x40], r8
mov r8, qword [rsp + 0x128]
mov rdx, r8
mov rax, r8
mov rcx, r8
ror rdx, 0x29
ror rax, 0x12
not rcx
xor rdx, rax
and rcx, r12
mov rax, r8
ror rax, 0xe
xor rdx, rax
mov rax, r8
and rax, qword [rsp + 0x10]
xor rcx, rax
mov rax, qword [rsp + 8]
add rdx, rcx
mov rcx, rbx
add rdx, qword [rax + 0x20]
mov rax, rbx
add rdx, qword [rsp + r11*8 + 0x40]
add rdx, rsi
mov rsi, r15
add qword [rsp + 0x138], rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
xor rsi, rbx
mov rax, rbx
ror rax, 0x1c
and rsi, r14
xor rcx, rax
mov rax, r15
and rax, rbx
xor rsi, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + rdi*8 + 0x40]
mov rdx, qword [rsp + r9*8 + 0x40]
add rsi, rax
mov r8, rcx
ror r8, 0x3d
mov rax, rcx
shr rcx, 6
ror rax, 0x13
mov qword [rsp + 0x20], rsi
xor r8, rax
mov rax, rdx
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
xor rcx, rax
xor rcx, rdx
add r8, rcx
add r8, qword [rsp + rbp*8 + 0x40]
add qword [rsp + r10*8 + 0x40], r8
mov rbp, qword [rsp + 0x138]
mov rdi, qword [rsp + 0x10]
mov rdx, rbp
mov rax, rbp
mov rcx, rbp
ror rdx, 0x29
ror rax, 0x12
not rcx
xor rdx, rax
and rcx, rdi
mov rax, rbp
ror rax, 0xe
xor rdx, rax
mov rax, qword [rsp + 0x128]
and rax, rbp
xor rcx, rax
mov rax, qword [rsp + 8]
add rdx, rcx
mov rcx, rsi
add rdx, qword [rax + 0x28]
mov rax, rsi
add rdx, qword [rsp + r10*8 + 0x40]
mov r10, rbx
add rdx, r12
xor r10, rsi
add r14, rdx
ror rcx, 0x27
ror rax, 0x22
xor rcx, rax
and r10, r15
mov rax, rsi
ror rax, 0x1c
xor rcx, rax
mov rax, rbx
and rax, rsi
xor r10, rax
lea rax, [rdx + rcx]
mov rcx, qword [rsp + r11*8 + 0x40]
mov r11, qword [rsp + 8]
add r10, rax
mov rax, qword [rsp]
add eax, 7
mov r8, rcx
mov qword [rsp + 0x18], r10
and eax, 0xf
ror r8, 0x3d
mov rdx, qword [rsp + rax*8 + 0x40]
mov rax, rcx
shr rcx, 6
ror rax, 0x13
xor r8, rax
mov rax, rdx
xor r8, rcx
mov rcx, rdx
shr rdx, 7
ror rcx, 8
ror rax, 1
xor rcx, rax
mov rax, r14
xor rcx, rdx
mov rdx, r14
add r8, rcx
mov rcx, r14
add r8, qword [rsp + r13*8 + 0x40]
not rcx
add qword [rsp + r9*8 + 0x40], r8
mov r8, qword [rsp + 0x128]
ror rdx, 0x29
ror rax, 0x12
and rcx, r8
xor rdx, rax
mov rax, r14
ror rax, 0xe
xor rdx, rax
mov rax, rbp
and rax, r14
xor rcx, rax
add rdx, rcx
add rdx, qword [r11 + 0x30]
add rdx, qword [rsp + r9*8 + 0x40]
add rdx, rdi
add r15, rdx
mov rcx, r10
mov rax, r10
ror rcx, 0x27
ror rax, 0x22
add r11, 0x40
xor rcx, rax
mov rax, r10
mov rbp, rsi
ror rax, 0x1c
xor rbp, r10
mov qword [rsp + 8], r11
xor rcx, rax
and rbp, rbx
mov rax, rsi
and rax, r10
xor rbp, rax
lea rax, [rdx + rcx]
mov rdx, qword [rsp]
add edx, 8
add rbp, rax
lea eax, [rdx - 1]
mov qword [rsp + 0x10], rbp
mov qword [rsp], rdx
cmp eax, 0x50
jl 0x180023310
mov r9, qword [rsp + 0x120]
mov rax, qword [rsp + 0xc0]
movabs rdi, 0x428a2f98d728ae22
add rax, rbp
mov qword [r9], rax
mov rax, qword [r9 + 8]
add rax, r10
mov qword [r9 + 8], rax
mov rax, qword [r9 + 0x10]
add rax, rsi
mov qword [r9 + 0x10], rax
mov rax, qword [r9 + 0x18]
add rax, rbx
mov qword [r9 + 0x18], rax
mov rax, qword [r9 + 0x20]
add rax, r15
mov r15, qword [rsp + 0x30]
mov qword [r9 + 0x20], rax
mov rax, qword [r9 + 0x28]
sub r15, 0xffffffffffffff80
add rax, r14
mov qword [rsp + 0x30], r15
mov qword [r9 + 0x28], rax
mov rax, qword [rsp + 0x138]
add rax, qword [r9 + 0x30]
mov qword [r9 + 0x30], rax
mov rax, qword [r9 + 0x38]
add rax, r8
mov qword [r9 + 0x38], rax
mov rax, qword [rsp + 0x130]
test rax, rax
jne 0x180022514
mov r15, qword [rsp + 0xd8]
mov r14, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xe8]
mov r12, qword [rsp + 0xf0]
mov rdi, qword [rsp + 0xf8]
mov rsi, qword [rsp + 0x100]
mov rbp, qword [rsp + 0x108]
mov rbx, qword [rsp + 0x110]
add rsp, 0x118
ret 0