Function at 0x1400adfc8
Capabilities:
Encode data using xor
Hash data using sha512
Resolve function by parsing pe exports

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