Function at 0x14003a390
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
mov qword [rsp + 0x128], r9
mov qword [rsp + 0x130], r8
mov qword [rsp + 0x100], rdx
mov r15, qword [rsp + 0x288]
mov r14, qword [rsp + 0x280]
movzx r12d, byte [rsp + 0x298]
movzx ebp, byte [rsp + 0x290]
cmp cl, 2
jne 0x14003a415
mov byte [rsp + 0x30], r12b
mov byte [rsp + 0x28], bpl
mov qword [rsp + 0x20], r15
mov rcx, qword [rsp + 0x100]
mov rdx, qword [rsp + 0x130]
mov r8, qword [rsp + 0x128]
mov r9, r14
call fcn.1400392c0
jmp 0x14003bf81
mov rax, qword [rsp + 0x128]
mov rsi, qword [rax]
mov rcx, qword [rax + 8]
mov qword [rsp + 0x108], rcx
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x110], rcx
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x118], rcx
mov rbx, qword [rax + 0x20]
mov rdi, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0xf8], rcx
xor r9d, r9d
mov rcx, qword [rsp + 0x130]
mov rdx, rcx
sub rdx, 1
cmovae r9, rdx
mov rax, qword [rax + 0x38]
mov qword [rsp + 0xf0], rax
and r9, 0xffffffffffffff80
xorps xmm0, xmm0
movaps xmmword [rsp + 0x200], xmm0
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x190], xmm0
cmp r9, rcx
mov rdx, rcx
mov qword [rsp + 0x140], r9
cmovb rdx, r9
mov r8, rcx
sub r8, rdx
add rdx, qword [rsp + 0x100]
cmp r8, 0x7f
jbe 0x14003a4ee
mov ecx, pe_nt_image_headers64
jmp 0x14003a517
lea r13, [rsp + 0x190]
mov rcx, r13
mov qword [rsp + 0xe8], rbx
mov rbx, r8
call sub.msvcrt.dll_memcpy
mov rcx, rbx
mov rbx, qword [rsp + 0xe8]
mov rdx, r13
movzx eax, r12b
dec rax
mov qword [rsp + 0x160], rax
or bpl, r12b
movzx eax, bpl
dec rax
mov qword [rsp + 0x158], rax
neg qword [rsp + 0x140]
mov r10d, pe_nt_image_headers64
mov qword [rsp + 0x150], rcx
mov qword [rsp + 0x148], rdx
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x140]
lea rbp, [rax + r10]
mov r9, rdx
mov rax, rcx
mov r12, qword [rsp + 0x160]
mov r11, qword [rsp + 0x158]
mov qword [rsp + 0x188], rbp
cmp rbp, 0x80
je 0x14003a5bd
test r10, r10
je 0x14003bf95
cmp r10, qword [rsp + 0x130]
ja 0x14003bf95
mov eax, pe_nt_image_headers64
mov r9, qword [rsp + 0x100]
xor r12d, r12d
xor r11d, r11d
mov qword [rsp + 0x168], r10
add r14, rax
adc r15, 0
mov rax, qword [r9]
mov qword [rsp + 0xd0], rax
mov rdx, qword [r9 + 8]
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x180], rsi
lea r8, [rsi + rbx]
add r8, rax
mov qword [rsp + 0x178], r14
mov qword [rsp + 0xe8], rbx
movabs rax, 0x510e527fade682d1
xor r14, rax
xor r14, r8
rol r14, 0x20
movabs rax, 0x6a09e667f3bcc908
add rax, r14
mov rcx, rax
xor rcx, qword [rsp + 0xe8]
rol rcx, 0x28
add r8, rdx
add r8, rcx
xor r14, r8
rol r14, 0x30
mov qword [rsp + 0x50], r14
add rax, r14
mov qword [rsp + 0x48], rax
xor rcx, rax
rol rcx, 1
mov rsi, rcx
mov rcx, qword [r9 + 0x10]
mov qword [rsp + 0x78], rcx
mov rax, qword [rsp + 0x108]
lea r13, [rax + rdi]
add r13, rcx
mov qword [rsp + 0x170], r15
movabs rdx, 0x9b05688c2b3e6c1f
xor r15, rdx
xor r15, r13
rol r15, 0x20
movabs rdx, 0xbb67ae8584caa73b
lea rax, [r15 + rdx]
mov qword [rsp + 0x120], rdi
mov rcx, rax
xor rcx, qword [rsp + 0x120]
rol rcx, 0x28
mov rdx, qword [r9 + 0x18]
mov qword [rsp + 0x80], rdx
add r13, rdx
add r13, rcx
xor r15, r13
rol r15, 0x30
add rax, r15
mov qword [rsp + 0x38], rax
xor rcx, rax
rol rcx, 1
mov qword [rsp + 0xb8], rcx
mov rcx, qword [r9 + 0x20]
mov qword [rsp + 0x68], rcx
mov rdx, qword [rsp + 0x110]
mov r10, qword [rsp + 0xf8]
lea rbp, [rdx + r10]
add rbp, rcx
movabs rdx, 0x1f83d9abfb41bd6b
xor r12, rdx
xor r12, rbp
rol r12, 0x20
movabs rdx, 0x3c6ef372fe94f82b
lea rdi, [r12 + rdx]
mov rax, rdi
xor rax, qword [rsp + 0xf8]
rol rax, 0x28
mov rcx, qword [r9 + 0x28]
mov qword [rsp + 0x60], rcx
add rbp, rcx
add rbp, rax
xor r12, rbp
rol r12, 0x30
add rdi, r12
xor rax, rdi
rol rax, 1
mov r10, rax
mov rcx, qword [r9 + 0x30]
mov qword [rsp + 0xa0], rcx
mov rdx, qword [rsp + 0x118]
mov rax, qword [rsp + 0xf0]
lea rbx, [rdx + rax]
add rbx, rcx
movabs rdx, 0x5be0cd19137e2179
xor r11, rdx
xor r11, rbx
rol r11, 0x20
movabs rdx, 0xa54ff53a5f1d36f1
lea rax, [r11 + rdx]
mov r14, rax
xor r14, qword [rsp + 0xf0]
rol r14, 0x28
mov rcx, qword [r9 + 0x38]
mov qword [rsp + 0xa8], rcx
add rbx, rcx
add rbx, r14
xor r11, rbx
rol r11, 0x30
add rax, r11
xor r14, rax
rol r14, 1
mov rdx, qword [r9 + 0x40]
mov qword [rsp + 0x88], rdx
add r8, rdx
mov rcx, qword [rsp + 0xb8]
add r8, rcx
xor r11, r8
rol r11, 0x20
add rdi, r11
xor rcx, rdi
rol rcx, 0x28
mov rdx, qword [r9 + 0x48]
mov qword [rsp + 0x98], rdx
add r8, rdx
add r8, rcx
xor r11, r8
rol r11, 0x30
add rdi, r11
mov qword [rsp + 0x58], rdi
xor rcx, rdi
rol rcx, 1
mov qword [rsp + 0xb8], rcx
mov rdx, qword [r9 + 0x50]
mov qword [rsp + 0xe0], rdx
add r13, rdx
add r13, r10
mov rdx, qword [rsp + 0x50]
xor rdx, r13
rol rdx, 0x20
mov rcx, rax
add rcx, rdx
xor r10, rcx
rol r10, 0x28
mov rax, qword [r9 + 0x58]
mov qword [rsp + 0xc8], rax
add r13, rax
add r13, r10
xor rdx, r13
rol rdx, 0x30
mov qword [rsp + 0x50], rdx
add rcx, rdx
mov qword [rsp + 0x40], rcx
xor r10, rcx
rol r10, 1
mov qword [rsp + 0x138], r10
mov rdx, qword [r9 + 0x60]
mov qword [rsp + 0x90], rdx
add rbp, rdx
add rbp, r14
xor r15, rbp
rol r15, 0x20
mov r10, qword [rsp + 0x48]
add r10, r15
xor r14, r10
rol r14, 0x28
mov rdx, qword [r9 + 0x68]
mov qword [rsp + 0xb0], rdx
mov rdi, qword [r9 + 0x70]
mov rcx, qword [r9 + 0x78]
mov qword [rsp + 0xc0], rcx
add rbp, rdx
add rbp, r14
xor r15, rbp
rol r15, 0x30
add r10, r15
xor r14, r10
rol r14, 1
add rbx, rdi
mov rax, rdi
mov qword [rsp + 0xd8], rdi
add rbx, rsi
xor r12, rbx
rol r12, 0x20
mov rdi, qword [rsp + 0x38]
add rdi, r12
xor rsi, rdi
rol rsi, 0x28
add rbx, rcx
add rbx, rsi
xor r12, rbx
rol r12, 0x30
add rdi, r12
xor rsi, rdi
mov rdx, rdi
mov rcx, rsi
rol rcx, 1
add r8, rax
add r8, rcx
mov rax, qword [rsp + 0x50]
xor rax, r8
rol rax, 0x20
add r10, rax
xor rcx, r10
rol rcx, 0x28
add r8, qword [rsp + 0xe0]
add r8, rcx
xor rax, r8
rol rax, 0x30
add r10, rax
xor rcx, r10
mov rdi, r10
rol rcx, 1
add r13, qword [rsp + 0x68]
mov rsi, qword [rsp + 0xb8]
add r13, rsi
xor r15, r13
rol r15, 0x20
add rdx, r15
xor rsi, rdx
rol rsi, 0x28
add r13, qword [rsp + 0x88]
add r13, rsi
xor r15, r13
rol r15, 0x30
add rdx, r15
mov qword [rsp + 0x38], rdx
xor rsi, rdx
rol rsi, 1
mov rdx, rsi
add rbp, qword [rsp + 0x98]
mov r9, qword [rsp + 0x138]
add rbp, r9
xor r12, rbp
rol r12, 0x20
mov r10, qword [rsp + 0x58]
add r10, r12
xor r9, r10
rol r9, 0x28
add rbp, qword [rsp + 0xc0]
add rbp, r9
xor r12, rbp
rol r12, 0x30
add r10, r12
xor r9, r10
mov rsi, r10
rol r9, 1
add rbx, qword [rsp + 0xb0]
add rbx, r14
xor r11, rbx
rol r11, 0x20
mov r10, qword [rsp + 0x40]
add r10, r11
xor r14, r10
rol r14, 0x28
add rbx, qword [rsp + 0xa0]
add rbx, r14
xor r11, rbx
rol r11, 0x30
add r10, r11
xor r14, r10
rol r14, 1
add r8, qword [rsp + 0x70]
add r8, rdx
xor r11, r8
rol r11, 0x20
add rsi, r11
xor rdx, rsi
rol rdx, 0x28
add r8, qword [rsp + 0x90]
add r8, rdx
xor r11, r8
rol r11, 0x30
add rsi, r11
mov qword [rsp + 0x58], rsi
xor rdx, rsi
rol rdx, 1
add r13, qword [rsp + 0xd0]
add r13, r9
xor rax, r13
rol rax, 0x20
add r10, rax
xor r9, r10
rol r9, 0x28
add r13, qword [rsp + 0x78]
add r13, r9
mov qword [rsp + 0x40], r13
xor rax, r13
rol rax, 0x30
add r10, rax
xor r9, r10
rol r9, 1
mov rsi, qword [rsp + 0xc8]
add rbp, rsi
add rbp, r14
xor r15, rbp
rol r15, 0x20
add rdi, r15
xor r14, rdi
rol r14, 0x28
add rbp, qword [rsp + 0xa8]
add rbp, r14
xor r15, rbp
rol r15, 0x30
add rdi, r15
xor r14, rdi
rol r14, 1
add rbx, qword [rsp + 0x60]
add rbx, rcx
xor r12, rbx
rol r12, 0x20
mov r13, qword [rsp + 0x38]
add r13, r12
xor rcx, r13
rol rcx, 0x28
add rbx, qword [rsp + 0x80]
add rbx, rcx
xor r12, rbx
rol r12, 0x30
add r13, r12
xor rcx, r13
rol rcx, 1
add r8, rsi
add r8, rcx
xor rax, r8
rol rax, 0x20
add rdi, rax
xor rcx, rdi
rol rcx, 0x28
add r8, qword [rsp + 0x88]
add r8, rcx
xor rax, r8
rol rax, 0x30
add rdi, rax
mov qword [rsp + 0x48], rdi
xor rcx, rdi
rol rcx, 1
mov rdi, qword [rsp + 0x40]
add rdi, qword [rsp + 0x90]
add rdi, rdx
xor r15, rdi
rol r15, 0x20
add r13, r15
xor rdx, r13
rol rdx, 0x28
add rdi, qword [rsp + 0xd0]
add rdi, rdx
mov qword [rsp + 0x40], rdi
xor r15, rdi
rol r15, 0x30
add r13, r15
mov qword [rsp + 0x38], r13
xor rdx, r13
rol rdx, 1
add rbp, qword [rsp + 0x60]
add rbp, r9
xor r12, rbp
rol r12, 0x20
mov rdi, qword [rsp + 0x58]
add rdi, r12
xor r9, rdi
rol r9, 0x28
add rbp, qword [rsp + 0x78]
add rbp, r9
xor r12, rbp
rol r12, 0x30
add rdi, r12
xor r9, rdi
rol r9, 1
add rbx, qword [rsp + 0xc0]
add rbx, r14
xor r11, rbx
rol r11, 0x20
add r10, r11
xor r14, r10
rol r14, 0x28
add rbx, qword [rsp + 0xb0]
add rbx, r14
xor r11, rbx
rol r11, 0x30
add r10, r11
xor r14, r10
rol r14, 1
mov r13, r14
add r8, qword [rsp + 0xe0]
add r8, rdx
xor r11, r8
rol r11, 0x20
add rdi, r11
xor rdx, rdi
rol rdx, 0x28
add r8, qword [rsp + 0xd8]
add r8, rdx
xor r11, r8
rol r11, 0x30
add rdi, r11
mov qword [rsp + 0x58], rdi
xor rdx, rdi
rol rdx, 1
mov r14, qword [rsp + 0x40]
add r14, qword [rsp + 0x80]
add r14, r9
xor rax, r14
rol rax, 0x20
add r10, rax
xor r9, r10
rol r9, 0x28
add r14, qword [rsp + 0xa0]
add r14, r9
xor rax, r14
rol rax, 0x30
mov qword [rsp + 0x50], rax
add r10, rax
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
mov r10, r9
mov rax, qword [rsp + 0xa8]
add rbp, rax
add rbp, r13
xor r15, rbp
rol r15, 0x20
mov rdi, qword [rsp + 0x48]
add rdi, r15
xor r13, rdi
rol r13, 0x28
add rbp, qword [rsp + 0x70]
add rbp, r13
xor r15, rbp
rol r15, 0x30
add rdi, r15
xor r13, rdi
mov r9, rdi
rol r13, 1
mov rsi, qword [rsp + 0x98]
add rbx, rsi
add rbx, rcx
xor r12, rbx
rol r12, 0x20
mov rdi, qword [rsp + 0x38]
add rdi, r12
xor rcx, rdi
rol rcx, 0x28
add rbx, qword [rsp + 0x68]
add rbx, rcx
xor r12, rbx
rol r12, 0x30
add rdi, r12
mov qword [rsp + 0x38], rdi
xor rcx, rdi
rol rcx, 1
add r8, rax
add r8, rcx
mov rax, qword [rsp + 0x50]
xor rax, r8
rol rax, 0x20
add r9, rax
xor rcx, r9
rol rcx, 0x28
add r8, rsi
add r8, rcx
xor rax, r8
rol rax, 0x30
add r9, rax
xor rcx, r9
rol rcx, 1
add r14, qword [rsp + 0x80]
mov rdi, rdx
add r14, rdx
xor r15, r14
rol r15, 0x20
mov rdx, qword [rsp + 0x38]
add rdx, r15
xor rdi, rdx
rol rdi, 0x28
add r14, qword [rsp + 0x70]
add r14, rdi
xor r15, r14
rol r15, 0x30
add rdx, r15
mov qword [rsp + 0x38], rdx
xor rdi, rdx
rol rdi, 1
add rbp, qword [rsp + 0xb0]
add rbp, r10
xor r12, rbp
rol r12, 0x20
mov rsi, qword [rsp + 0x58]
add rsi, r12
xor r10, rsi
rol r10, 0x28
add rbp, qword [rsp + 0x90]
add rbp, r10
xor r12, rbp
rol r12, 0x30
add rsi, r12
xor r10, rsi
rol r10, 1
add rbx, qword [rsp + 0xc8]
add rbx, r13
xor r11, rbx
rol r11, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, r11
xor r13, rdx
rol r13, 0x28
add rbx, qword [rsp + 0xd8]
add rbx, r13
xor r11, rbx
rol r11, 0x30
add rdx, r11
xor r13, rdx
rol r13, 1
add r8, qword [rsp + 0x78]
add r8, rdi
xor r11, r8
rol r11, 0x20
add rsi, r11
xor rdi, rsi
rol rdi, 0x28
add r8, qword [rsp + 0xa0]
add r8, rdi
xor r11, r8
rol r11, 0x30
add rsi, r11
mov qword [rsp + 0x58], rsi
xor rdi, rsi
rol rdi, 1
add r14, qword [rsp + 0x60]
add r14, r10
xor rax, r14
rol rax, 0x20
add rdx, rax
xor r10, rdx
rol r10, 0x28
add r14, qword [rsp + 0xe0]
add r14, r10
xor rax, r14
rol rax, 0x30
mov qword [rsp + 0x50], rax
add rdx, rax
mov qword [rsp + 0x40], rdx
xor r10, rdx
rol r10, 1
add rbp, qword [rsp + 0x68]
add rbp, r13
mov rdx, r15
xor rdx, rbp
rol rdx, 0x20
mov rax, r9
add rax, rdx
xor r13, rax
rol r13, 0x28
mov rsi, qword [rsp + 0xd0]
add rbp, rsi
add rbp, r13
xor rdx, rbp
rol rdx, 0x30
add rax, rdx
xor r13, rax
rol r13, 1
add rbx, qword [rsp + 0xc0]
add rbx, rcx
xor r12, rbx
rol r12, 0x20
mov r9, qword [rsp + 0x38]
add r9, r12
xor rcx, r9
rol rcx, 0x28
add rbx, qword [rsp + 0x88]
add rbx, rcx
xor r12, rbx
rol r12, 0x30
add r9, r12
xor rcx, r9
rol rcx, 1
add r8, qword [rsp + 0x98]
add r8, rcx
mov r15, qword [rsp + 0x50]
xor r15, r8
rol r15, 0x20
add rax, r15
xor rcx, rax
rol rcx, 0x28
add r8, rsi
add r8, rcx
xor r15, r8
rol r15, 0x30
mov qword [rsp + 0x50], r15
add rax, r15
mov qword [rsp + 0x48], rax
xor rcx, rax
rol rcx, 1
add r14, qword [rsp + 0x60]
add r14, rdi
xor rdx, r14
rol rdx, 0x20
add r9, rdx
xor rdi, r9
rol rdi, 0x28
add r14, qword [rsp + 0xa8]
add r14, rdi
xor rdx, r14
rol rdx, 0x30
add r9, rdx
mov r15, rdx
xor rdi, r9
rol rdi, 1
add rbp, qword [rsp + 0x78]
add rbp, r10
xor r12, rbp
rol r12, 0x20
mov rsi, qword [rsp + 0x58]
add rsi, r12
xor r10, rsi
rol r10, 0x28
add rbp, qword [rsp + 0x68]
add rbp, r10
xor r12, rbp
rol r12, 0x30
add rsi, r12
xor r10, rsi
rol r10, 1
add rbx, qword [rsp + 0xe0]
add rbx, r13
xor r11, rbx
rol r11, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, r11
xor r13, rdx
rol r13, 0x28
add rbx, qword [rsp + 0xc0]
add rbx, r13
xor r11, rbx
rol r11, 0x30
add rdx, r11
xor r13, rdx
rol r13, 1
add r8, qword [rsp + 0xd8]
add r8, rdi
xor r11, r8
rol r11, 0x20
add rsi, r11
xor rdi, rsi
rol rdi, 0x28
add r8, qword [rsp + 0x70]
add r8, rdi
xor r11, r8
rol r11, 0x30
add rsi, r11
mov qword [rsp + 0x58], rsi
xor rdi, rsi
rol rdi, 1
add r14, qword [rsp + 0xc8]
add r14, r10
mov rax, qword [rsp + 0x50]
xor rax, r14
rol rax, 0x20
add rdx, rax
xor r10, rdx
rol r10, 0x28
add r14, qword [rsp + 0x90]
add r14, r10
xor rax, r14
rol rax, 0x30
mov qword [rsp + 0x50], rax
add rdx, rax
mov qword [rsp + 0x40], rdx
xor r10, rdx
rol r10, 1
add rbp, qword [rsp + 0xa0]
add rbp, r13
xor r15, rbp
rol r15, 0x20
mov rax, qword [rsp + 0x48]
add rax, r15
xor r13, rax
rol r13, 0x28
add rbp, qword [rsp + 0x88]
add rbp, r13
xor r15, rbp
rol r15, 0x30
add rax, r15
xor r13, rax
rol r13, 1
add rbx, qword [rsp + 0x80]
add rbx, rcx
xor r12, rbx
rol r12, 0x20
mov rsi, r12
add r9, r12
xor rcx, r9
rol rcx, 0x28
add rbx, qword [rsp + 0xb0]
add rbx, rcx
xor rsi, rbx
rol rsi, 0x30
add r9, rsi
xor rcx, r9
mov rdx, r9
mov r9, rcx
rol r9, 1
add r8, qword [rsp + 0x78]
add r8, r9
mov r12, qword [rsp + 0x50]
xor r12, r8
rol r12, 0x20
add rax, r12
xor r9, rax
rol r9, 0x28
add r8, qword [rsp + 0x90]
add r8, r9
xor r12, r8
rol r12, 0x30
add rax, r12
mov qword [rsp + 0x48], rax
xor r9, rax
rol r9, 1
mov rcx, r14
add rcx, qword [rsp + 0xa0]
add rcx, rdi
xor r15, rcx
rol r15, 0x20
add rdx, r15
xor rdi, rdx
rol rdi, 0x28
add rcx, qword [rsp + 0xe0]
add rcx, rdi
xor r15, rcx
rol r15, 0x30
add rdx, r15
mov qword [rsp + 0x38], rdx
xor rdi, rdx
rol rdi, 1
add rbp, qword [rsp + 0xd0]
mov r14, r10
add rbp, r10
xor rsi, rbp
rol rsi, 0x20
mov rdx, qword [rsp + 0x58]
add rdx, rsi
xor r14, rdx
rol r14, 0x28
add rbp, qword [rsp + 0xc8]
add rbp, r14
xor rsi, rbp
rol rsi, 0x30
add rdx, rsi
xor r14, rdx
rol r14, 1
add rbx, qword [rsp + 0x88]
add rbx, r13
xor r11, rbx
rol r11, 0x20
mov r10, qword [rsp + 0x40]
add r10, r11
xor r13, r10
rol r13, 0x28
add rbx, qword [rsp + 0x80]
add rbx, r13
xor r11, rbx
rol r11, 0x30
add r10, r11
xor r13, r10
rol r13, 1
add r8, qword [rsp + 0x68]
add r8, rdi
xor r11, r8
rol r11, 0x20
add rdx, r11
xor rdi, rdx
rol rdi, 0x28
add r8, qword [rsp + 0xb0]
add r8, rdi
xor r11, r8
rol r11, 0x30
add rdx, r11
xor rdi, rdx
rol rdi, 1
add rcx, qword [rsp + 0xa8]
add rcx, r14
xor r12, rcx
rol r12, 0x20
add r10, r12
xor r14, r10
rol r14, 0x28
add rcx, qword [rsp + 0x60]
add rcx, r14
xor r12, rcx
rol r12, 0x30
add r10, r12
xor r14, r10
rol r14, 1
add rbp, qword [rsp + 0xc0]
add rbp, r13
xor r15, rbp
rol r15, 0x20
mov rax, qword [rsp + 0x48]
add rax, r15
xor r13, rax
rol r13, 0x28
add rbp, qword [rsp + 0xd8]
add rbp, r13
xor r15, rbp
rol r15, 0x30
add rax, r15
mov qword [rsp + 0x48], rax
xor r13, rax
rol r13, 1
add rbx, qword [rsp + 0x70]
add rbx, r9
xor rsi, rbx
rol rsi, 0x20
mov rax, qword [rsp + 0x38]
add rax, rsi
xor r9, rax
rol r9, 0x28
add rbx, qword [rsp + 0x98]
add rbx, r9
xor rsi, rbx
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x38], rax
xor r9, rax
rol r9, 1
add r8, qword [rsp + 0x90]
add r8, r9
mov rax, r12
xor rax, r8
rol rax, 0x20
mov r12, qword [rsp + 0x48]
add r12, rax
xor r9, r12
rol r9, 0x28
add r8, qword [rsp + 0x60]
add r8, r9
xor rax, r8
rol rax, 0x30
add r12, rax
mov qword [rsp + 0x48], r12
xor r9, r12
rol r9, 1
add rcx, qword [rsp + 0x70]
add rcx, rdi
xor r15, rcx
rol r15, 0x20
mov r12, qword [rsp + 0x38]
add r12, r15
xor rdi, r12
rol rdi, 0x28
add rcx, qword [rsp + 0xc0]
add rcx, rdi
xor r15, rcx
rol r15, 0x30
add r12, r15
mov qword [rsp + 0x38], r12
xor rdi, r12
rol rdi, 1
add rbp, qword [rsp + 0xd8]
add rbp, r14
xor rsi, rbp
rol rsi, 0x20
add rdx, rsi
xor r14, rdx
rol r14, 0x28
add rbp, qword [rsp + 0xb0]
add rbp, r14
xor rsi, rbp
rol rsi, 0x30
add rdx, rsi
xor r14, rdx
rol r14, 1
add rbx, qword [rsp + 0x68]
add rbx, r13
xor r11, rbx
rol r11, 0x20
add r10, r11
xor r13, r10
rol r13, 0x28
add rbx, qword [rsp + 0xe0]
add rbx, r13
xor r11, rbx
rol r11, 0x30
add r10, r11
xor r13, r10
rol r13, 1
add r8, qword [rsp + 0xd0]
add r8, rdi
xor r11, r8
rol r11, 0x20
add rdx, r11
xor rdi, rdx
rol rdi, 0x28
add r8, qword [rsp + 0xa8]
add r8, rdi
xor r11, r8
rol r11, 0x30
add rdx, r11
mov qword [rsp + 0x58], rdx
xor rdi, rdx
rol rdi, 1
add rcx, qword [rsp + 0xa0]
add rcx, r14
xor rax, rcx
rol rax, 0x20
add r10, rax
xor r14, r10
rol r14, 0x28
add rcx, qword [rsp + 0x80]
add rcx, r14
xor rax, rcx
rol rax, 0x30
add r10, rax
mov qword [rsp + 0x40], r10
xor r14, r10
rol r14, 1
add rbp, qword [rsp + 0x98]
add rbp, r13
xor r15, rbp
rol r15, 0x20
mov r12, qword [rsp + 0x48]
add r12, r15
xor r13, r12
rol r13, 0x28
add rbp, qword [rsp + 0x78]
add rbp, r13
xor r15, rbp
rol r15, 0x30
add r12, r15
xor r13, r12
rol r13, 1
add rbx, qword [rsp + 0x88]
add rbx, r9
xor rsi, rbx
rol rsi, 0x20
mov r10, qword [rsp + 0x38]
add r10, rsi
xor r9, r10
rol r9, 0x28
mov rdx, qword [rsp + 0xc8]
add rbx, rdx
add rbx, r9
xor rsi, rbx
rol rsi, 0x30
add r10, rsi
xor r9, r10
rol r9, 1
add r8, qword [rsp + 0xb0]
add r8, r9
xor rax, r8
rol rax, 0x20
add r12, rax
xor r9, r12
rol r9, 0x28
add r8, rdx
add r8, r9
xor rax, r8
rol rax, 0x30
add r12, rax
xor r9, r12
rol r9, 1
add rcx, qword [rsp + 0xa8]
add rcx, rdi
xor r15, rcx
rol r15, 0x20
add r10, r15
xor rdi, r10
rol rdi, 0x28
add rcx, qword [rsp + 0xd8]
add rcx, rdi
xor r15, rcx
rol r15, 0x30
add r10, r15
mov qword [rsp + 0x38], r10
xor rdi, r10
rol rdi, 1
add rbp, qword [rsp + 0x90]
add rbp, r14
xor rsi, rbp
rol rsi, 0x20
mov rdx, qword [rsp + 0x58]
add rdx, rsi
xor r14, rdx
rol r14, 0x28
add rbp, qword [rsp + 0x70]
add rbp, r14
xor rsi, rbp
rol rsi, 0x30
add rdx, rsi
xor r14, rdx
rol r14, 1
add rbx, qword [rsp + 0x80]
add rbx, r13
xor r11, rbx
rol r11, 0x20
mov r10, qword [rsp + 0x40]
add r10, r11
xor r13, r10
rol r13, 0x28
add rbx, qword [rsp + 0x98]
add rbx, r13
mov qword [rsp + 0x48], rbx
xor r11, rbx
rol r11, 0x30
add r10, r11
xor r13, r10
rol r13, 1
add r8, qword [rsp + 0x60]
add r8, rdi
xor r11, r8
rol r11, 0x20
add rdx, r11
xor rdi, rdx
rol rdi, 0x28
add r8, qword [rsp + 0xd0]
add r8, rdi
xor r11, r8
rol r11, 0x30
mov qword [rsp + 0xb8], r11
add rdx, r11
mov qword [rsp + 0x58], rdx
xor rdi, rdx
rol rdi, 1
mov r11, qword [rsp + 0xc0]
add rcx, r11
add rcx, r14
xor rax, rcx
rol rax, 0x20
add r10, rax
xor r14, r10
rol r14, 0x28
add rcx, qword [rsp + 0x68]
add rcx, r14
xor rax, rcx
rol rax, 0x30
add r10, rax
mov qword [rsp + 0x40], r10
mov rbx, rax
xor r14, r10
rol r14, 1
add rbp, qword [rsp + 0x88]
add rbp, r13
xor r15, rbp
rol r15, 0x20
mov rdx, r12
add rdx, r15
xor r13, rdx
rol r13, 0x28
mov rax, qword [rsp + 0xa0]
add rbp, rax
add rbp, r13
xor r15, rbp
rol r15, 0x30
add rdx, r15
xor r13, rdx
rol r13, 1
mov qword [rsp + 0x50], r13
mov r10, qword [rsp + 0x48]
add r10, qword [rsp + 0x78]
add r10, r9
xor rsi, r10
rol rsi, 0x20
mov r12, qword [rsp + 0x38]
add r12, rsi
xor r9, r12
rol r9, 0x28
add r10, qword [rsp + 0xe0]
add r10, r9
xor rsi, r10
rol rsi, 0x30
add r12, rsi
xor r9, r12
rol r9, 1
add r8, rax
add r8, r9
xor rbx, r8
rol rbx, 0x20
add rdx, rbx
xor r9, rdx
rol r9, 0x28
add r8, r11
add r8, r9
xor rbx, r8
rol rbx, 0x30
add rdx, rbx
mov qword [rsp + 0x48], rdx
mov rax, rbx
xor r9, rdx
rol r9, 1
add rcx, qword [rsp + 0xd8]
mov r11, rdi
add rcx, rdi
mov rdx, r15
xor rdx, rcx
rol rdx, 0x20
add r12, rdx
xor r11, r12
rol r11, 0x28
add rcx, qword [rsp + 0x98]
add rcx, r11
xor rdx, rcx
mov rbx, rcx
rol rdx, 0x30
add r12, rdx
mov qword [rsp + 0x38], r12
xor r11, r12
rol r11, 1
mov r13, rbp
add r13, qword [rsp + 0xc8]
add r13, r14
xor rsi, r13
rol rsi, 0x20
mov r12, qword [rsp + 0x58]
add r12, rsi
xor r14, r12
rol r14, 0x28
add r13, qword [rsp + 0x80]
add r13, r14
xor rsi, r13
rol rsi, 0x30
add r12, rsi
xor r14, r12
mov rdi, r12
rol r14, 1
mov r15, r10
add r15, qword [rsp + 0xd0]
mov rbp, qword [rsp + 0x50]
add r15, rbp
mov r12, qword [rsp + 0xb8]
xor r12, r15
rol r12, 0x20
mov r10, qword [rsp + 0x40]
add r10, r12
xor rbp, r10
rol rbp, 0x28
add r15, qword [rsp + 0x88]
add r15, rbp
xor r12, r15
rol r12, 0x30
add r10, r12
xor rbp, r10
rol rbp, 1
add r8, qword [rsp + 0x90]
add r8, r11
xor r12, r8
rol r12, 0x20
add rdi, r12
xor r11, rdi
rol r11, 0x28
add r8, qword [rsp + 0x78]
add r8, r11
xor r12, r8
rol r12, 0x30
add rdi, r12
xor r11, rdi
rol r11, 1
add rbx, qword [rsp + 0xb0]
add rbx, r14
xor rax, rbx
rol rax, 0x20
add r10, rax
xor r14, r10
rol r14, 0x28
add rbx, qword [rsp + 0xa8]
add rbx, r14
xor rax, rbx
rol rax, 0x30
add r10, rax
mov qword [rsp + 0x40], r10
mov rcx, rax
xor r14, r10
rol r14, 1
add r13, qword [rsp + 0x70]
add r13, rbp
xor rdx, r13
rol rdx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rdx
xor rbp, rax
rol rbp, 0x28
add r13, qword [rsp + 0x68]
add r13, rbp
xor rdx, r13
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x48], rax
xor rbp, rax
rol rbp, 1
mov r10, qword [rsp + 0xe0]
add r15, r10
add r15, r9
xor rsi, r15
rol rsi, 0x20
mov rax, qword [rsp + 0x38]
add rax, rsi
xor r9, rax
rol r9, 0x28
add r15, qword [rsp + 0x60]
add r15, r9
xor rsi, r15
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x38], rax
xor r9, rax
rol r9, 1
add r8, r10
add r8, r9
xor rcx, r8
rol rcx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rcx
xor r9, rax
rol r9, 0x28
add r8, qword [rsp + 0x78]
add r8, r9
xor rcx, r8
rol rcx, 0x30
add rax, rcx
mov qword [rsp + 0x48], rax
xor r9, rax
rol r9, 1
add rbx, qword [rsp + 0x88]
add rbx, r11
xor rdx, rbx
rol rdx, 0x20
mov rax, qword [rsp + 0x38]
add rax, rdx
xor r11, rax
rol r11, 0x28
add rbx, qword [rsp + 0x68]
add rbx, r11
xor rdx, rbx
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x38], rax
xor r11, rax
rol r11, 1
add r13, qword [rsp + 0xa8]
add r13, r14
xor rsi, r13
rol rsi, 0x20
add rdi, rsi
xor r14, rdi
rol r14, 0x28
add r13, qword [rsp + 0xa0]
add r13, r14
xor rsi, r13
rol rsi, 0x30
add rdi, rsi
xor r14, rdi
rol r14, 1
add r15, qword [rsp + 0x70]
add r15, rbp
xor r12, r15
rol r12, 0x20
mov r10, qword [rsp + 0x40]
add r10, r12
xor rbp, r10
rol rbp, 0x28
add r15, qword [rsp + 0x60]
add r15, rbp
xor r12, r15
rol r12, 0x30
add r10, r12
xor rbp, r10
rol rbp, 1
add r8, qword [rsp + 0xc0]
add r8, r11
xor r12, r8
rol r12, 0x20
add rdi, r12
xor r11, rdi
rol r11, 0x28
add r8, qword [rsp + 0xc8]
add r8, r11
xor r12, r8
rol r12, 0x30
add rdi, r12
mov qword [rsp + 0x58], rdi
xor r11, rdi
rol r11, 1
add rbx, qword [rsp + 0x98]
add rbx, r14
mov rax, rcx
xor rax, rbx
rol rax, 0x20
add r10, rax
xor r14, r10
rol r14, 0x28
add rbx, qword [rsp + 0xd8]
add rbx, r14
xor rax, rbx
rol rax, 0x30
add r10, rax
mov qword [rsp + 0x40], r10
xor r14, r10
rol r14, 1
add r13, qword [rsp + 0x80]
add r13, rbp
mov rcx, rdx
xor rcx, r13
rol rcx, 0x20
mov rdx, qword [rsp + 0x48]
add rdx, rcx
xor rbp, rdx
rol rbp, 0x28
add r13, qword [rsp + 0x90]
add r13, rbp
xor rcx, r13
rol rcx, 0x30
mov qword [rsp + 0x50], rcx
add rdx, rcx
xor rbp, rdx
rol rbp, 1
add r15, qword [rsp + 0xb0]
add r15, r9
xor rsi, r15
rol rsi, 0x20
mov rdi, qword [rsp + 0x38]
add rdi, rsi
xor r9, rdi
rol r9, 0x28
mov r10, qword [rsp + 0xd0]
add r15, r10
add r15, r9
xor rsi, r15
rol rsi, 0x30
add rdi, rsi
xor r9, rdi
rol r9, 1
add r8, r10
add r8, r9
xor rax, r8
rol rax, 0x20
add rdx, rax
xor r9, rdx
rol r9, 0x28
add r8, qword [rsp + 0x70]
add r8, r9
xor rax, r8
rol rax, 0x30
add rdx, rax
mov qword [rsp + 0x48], rdx
xor r9, rdx
rol r9, 1
mov qword [rsp + 0x38], r9
add rbx, qword [rsp + 0x78]
add rbx, r11
mov r9, qword [rsp + 0x50]
xor r9, rbx
rol r9, 0x20
mov r10, rdi
add r10, r9
xor r11, r10
rol r11, 0x28
add rbx, qword [rsp + 0x80]
add rbx, r11
xor r9, rbx
rol r9, 0x30
mov qword [rsp + 0x50], r9
add r10, r9
xor r11, r10
rol r11, 1
mov rcx, r11
add r13, qword [rsp + 0x68]
add r13, r14
xor rsi, r13
rol rsi, 0x20
mov rdx, qword [rsp + 0x58]
add rdx, rsi
xor r14, rdx
rol r14, 0x28
add r13, qword [rsp + 0x60]
add r13, r14
mov qword [rsp + 0x138], r13
xor rsi, r13
rol rsi, 0x30
add rdx, rsi
xor r14, rdx
rol r14, 1
add r15, qword [rsp + 0xa0]
add r15, rbp
xor r12, r15
rol r12, 0x20
mov rdi, qword [rsp + 0x40]
add rdi, r12
xor rbp, rdi
rol rbp, 0x28
add r15, qword [rsp + 0xa8]
add r15, rbp
xor r12, r15
rol r12, 0x30
add rdi, r12
xor rbp, rdi
mov r9, rdi
add r8, qword [rsp + 0x88]
add r8, r11
xor r12, r8
rol r12, 0x20
add rdx, r12
mov qword [rsp + 0x58], rdx
xor rcx, rdx
rol rcx, 0x28
mov qword [rsp + 0xb8], rcx
add r8, qword [rsp + 0x98]
add r8, rcx
xor r12, r8
mov rdi, qword [rsp + 0xe0]
add rbx, rdi
add rbx, r14
xor rax, rbx
rol rax, 0x20
add r9, rax
xor r14, r9
rol r14, 0x28
add rbx, qword [rsp + 0xc8]
add rbx, r14
xor rax, rbx
rol rax, 0x30
mov rdx, qword [rsp + 0xd8]
add r15, rdx
add r8, rdx
mov rdx, rax
add r9, rax
mov qword [rsp + 0x40], r9
mov r9, qword [rsp + 0x38]
add r15, r9
mov r11, rsi
xor r11, r15
rol r11, 0x20
mov rax, r10
add rax, r11
xor r9, rax
rol r9, 0x28
mov r10, qword [rsp + 0xc0]
add r15, r10
add r15, r9
xor r11, r15
rol r11, 0x30
add rax, r11
mov qword [rsp + 0x38], rax
xor r9, rax
rol r9, 1
add r8, r9
xor rdx, r8
mov rcx, rdx
add r8, rdi
rol rbp, 1
rol r12, 0x30
mov rax, qword [rsp + 0x58]
add rax, r12
mov qword [rsp + 0x58], rax
mov rsi, qword [rsp + 0xb8]
xor rsi, rax
rol rsi, 1
mov qword [rsp + 0xb8], rsi
mov rax, qword [rsp + 0x138]
add rax, qword [rsp + 0x90]
add rax, rbp
mov r13, qword [rsp + 0x50]
xor r13, rax
rol r13, 0x20
mov rdi, qword [rsp + 0x48]
add rdi, r13
xor rbp, rdi
mov rdx, rdi
rol rbp, 0x28
mov rdi, qword [rsp + 0xb0]
add rax, rdi
add rax, rbp
xor r13, rax
rol r13, 0x30
add rbx, qword [rsp + 0x68]
add rdx, r13
add rbx, rsi
xor r13, rbx
add rbx, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x40]
xor r14, rsi
rol r14, 1
add rax, qword [rsp + 0x98]
add rax, r14
xor r11, rax
add rax, r10
add r15, rdi
xor rbp, rdx
rol rbp, 1
rol rcx, 0x20
add rdx, rcx
xor r9, rdx
rol r9, 0x28
add r15, rbp
xor r12, r15
add r15, qword [rsp + 0xa0]
add r8, r9
xor rcx, r8
add r8, qword [rsp + 0x70]
rol r13, 0x20
mov r10, qword [rsp + 0x38]
add r10, r13
mov rdi, qword [rsp + 0xb8]
xor rdi, r10
rol rdi, 0x28
add rbx, rdi
xor r13, rbx
rol r13, 0x30
add r10, r13
mov qword [rsp + 0x38], r10
xor rdi, r10
rol rdi, 1
rol r12, 0x20
add rsi, r12
xor rbp, rsi
rol rbp, 0x28
add r15, rbp
xor r12, r15
rol r12, 0x30
add rsi, r12
mov qword [rsp + 0x40], rsi
add r8, rdi
xor r12, r8
add r8, qword [rsp + 0x90]
add rbx, qword [rsp + 0xd0]
rol rcx, 0x30
add rdx, rcx
rol r11, 0x20
mov r10, qword [rsp + 0x58]
add r10, r11
xor r14, r10
rol r14, 0x28
add rax, r14
xor r11, rax
rol r11, 0x30
add r10, r11
xor r14, r10
rol r14, 1
add rbx, r14
xor rcx, rbx
mov qword [rsp + 0x50], rcx
add rbx, qword [rsp + 0x78]
xor rbp, rsi
rol rbp, 1
add rax, qword [rsp + 0xc8]
add rax, rbp
xor r13, rax
add rax, qword [rsp + 0xa8]
add r15, qword [rsp + 0x60]
xor r9, rdx
rol r9, 1
rol r12, 0x20
add r10, r12
mov rcx, rdi
xor rcx, r10
rol rcx, 0x28
add r15, r9
xor r11, r15
add r15, qword [rsp + 0x80]
add r8, rcx
xor r12, r8
mov rdi, qword [rsp + 0x180]
xor rdi, r8
mov r8, r13
rol r8, 0x20
mov rsi, rdx
add rsi, r8
mov r13, rbp
xor r13, rsi
rol r13, 0x28
add rax, r13
xor r8, rax
rol r8, 0x30
add rsi, r8
xor r13, rsi
xor rdi, rsi
mov rsi, rdi
mov rdi, qword [rsp + 0x50]
rol rdi, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, rdi
xor r14, rdx
rol r14, 0x28
add rbx, r14
xor rdi, rbx
mov rbp, rdi
mov rdi, qword [rsp + 0x108]
xor rdi, rbx
rol r11, 0x20
mov rbx, qword [rsp + 0x38]
add rbx, r11
xor r9, rbx
rol r9, 0x28
add r15, r9
xor r11, r15
rol r11, 0x30
add rbx, r11
xor r9, rbx
xor rdi, rbx
mov qword [rsp + 0x108], rdi
mov rdi, qword [rsp + 0x110]
xor rdi, rax
rol r12, 0x30
add r10, r12
xor rcx, r10
xor rdi, r10
mov qword [rsp + 0x110], rdi
mov r10, qword [rsp + 0xf8]
mov rdi, qword [rsp + 0x118]
xor rdi, r15
rol rbp, 0x30
add rdx, rbp
xor r14, rdx
xor rdi, rdx
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x118], rdi
xor qword [rsp + 0xe8], rbp
mov rbx, qword [rsp + 0xe8]
rol r9, 1
xor rbx, r9
xor qword [rsp + 0x120], r8
rol rcx, 1
xor qword [rsp + 0x120], rcx
mov rdi, qword [rsp + 0x120]
xor r10, r11
rol r14, 1
xor r10, r14
mov qword [rsp + 0xf8], r10
xor rax, r12
rol r13, 1
xor rax, r13
mov qword [rsp + 0xf0], rax
cmp qword [rsp + 0x188], 0x80
je 0x14003bf32
sub qword [rsp + 0x100], 0xffffffffffffff80
mov r10, qword [rsp + 0x168]
sub r10, 0xffffffffffffff80
mov r14, qword [rsp + 0x178]
mov r15, qword [rsp + 0x170]
mov rcx, qword [rsp + 0x150]
mov rdx, qword [rsp + 0x148]
jmp 0x14003a560
mov rax, qword [rsp + 0x128]
mov qword [rax], rsi
mov rcx, qword [rsp + 0x108]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x110]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rbx
mov qword [rax + 0x28], rdi
mov rcx, qword [rsp + 0xf8]
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0xf0]
mov qword [rax + 0x38], rcx
add rsp, 0x218
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2