Function at 0x140038510
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x208
mov rdi, r9
mov r14, rdx
movzx r12d, byte [rsp + 0x280]
movzx r13d, byte [rsp + 0x278]
mov rax, qword [r8]
mov qword [rsp + 0xf8], rax
mov rax, qword [r8 + 8]
mov qword [rsp + 0x100], rax
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0x108], rax
mov rax, qword [r8 + 0x18]
mov qword [rsp + 0x110], rax
mov rbx, qword [r8 + 0x20]
mov r15, qword [r8 + 0x28]
xor r10d, r10d
mov rax, rdx
sub rax, 1
cmovae r10, rax
mov rax, qword [r8 + 0x30]
mov qword [rsp + 0xe8], rax
and r10, 0xffffffffffffff80
xorps xmm0, 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
movaps xmmword [rsp + 0x180], xmm0
cmp r10, rdx
mov r9, rdx
mov qword [rsp + 0x120], r10
cmovb r9, r10
mov qword [rsp + 0x138], rdx
sub r14, r9
mov qword [rsp + 0x130], rcx
add r9, rcx
mov qword [rsp + 0x128], r8
mov rax, qword [r8 + 0x38]
mov qword [rsp + 0xe0], rax
cmp r14, 0x7f
jbe 0x14003861d
mov r14d, pe_nt_image_headers64
jmp 0x140038636
lea rsi, [rsp + 0x180]
mov rcx, rsi
mov rdx, r9
mov r8, r14
call sub.msvcrt.dll_memcpy
mov r9, rsi
mov rbp, qword [rsp + 0x270]
xor r12b, 1
not r13b
and r13b, r12b
movzx eax, r13b
neg rax
mov qword [rsp + 0x158], rax
movzx eax, r12b
neg rax
mov qword [rsp + 0x150], rax
xor edx, edx
mov qword [rsp + 0x148], r9
mov qword [rsp + 0x140], r14
nop dword [rax + rax]
mov rax, r14
mov r12, r9
mov r13, qword [rsp + 0x150]
mov r8, qword [rsp + 0x158]
mov qword [rsp + 0x40], r8
cmp qword [rsp + 0x120], rdx
je 0x1400386dc
mov rax, rdx
sub rax, 0xffffffffffffff80
je 0x14003a0a7
cmp rax, qword [rsp + 0x138]
ja 0x14003a0a7
mov rax, qword [rsp + 0x130]
lea r12, [rax + rdx]
mov eax, pe_nt_image_headers64
xor r13d, r13d
xor r8d, r8d
mov qword [rsp + 0x40], r8
add rdi, rax
adc rbp, 0
mov rcx, qword [r12]
mov qword [rsp + 0xc0], rcx
mov r10, qword [r12 + 8]
mov qword [rsp + 0x98], r10
mov r9, qword [r12 + 0x10]
mov qword [rsp + 0x58], r9
mov rax, qword [rsp + 0xf8]
lea r8, [rax + rbx]
add r8, rcx
mov qword [rsp + 0x168], rdi
mov qword [rsp + 0x170], rdx
mov rsi, rdi
movabs rax, 0x510e527fade682d1
xor rsi, rax
xor rsi, r8
rol rsi, 0x20
mov rdi, qword [r12 + 0x18]
mov qword [rsp + 0x78], rdi
movabs rax, 0x6a09e667f3bcc908
add rax, rsi
mov rdx, rax
xor rdx, rbx
rol rdx, 0x28
add r8, r10
add r8, rdx
xor rsi, r8
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x38], rax
xor rdx, rax
rol rdx, 1
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x118], r15
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0x100]
lea r14, [rcx + rax]
add r14, r9
mov qword [rsp + 0x160], rbp
movabs rcx, 0x9b05688c2b3e6c1f
xor rbp, rcx
xor rbp, r14
rol rbp, 0x20
movabs rcx, 0xbb67ae8584caa73b
lea rax, [rcx + rbp]
mov rcx, rax
xor rcx, qword [rsp + 0x118]
rol rcx, 0x28
add r14, rdi
add r14, rcx
xor rbp, r14
rol rbp, 0x30
mov qword [rsp + 0xa0], rbp
add rax, rbp
mov qword [rsp + 0x20], rax
xor rcx, rax
rol rcx, 1
mov qword [rsp + 0xd8], rcx
mov r9, qword [r12 + 0x20]
mov qword [rsp + 0x50], r9
mov rcx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xe8]
lea rbp, [rcx + rax]
add rbp, r9
movabs rcx, 0x1f83d9abfb41bd6b
xor r13, rcx
xor r13, rbp
rol r13, 0x20
mov qword [rsp + 0x178], rbx
movabs rcx, 0x3c6ef372fe94f82b
lea r10, [rcx + r13]
mov rdx, r10
xor rdx, qword [rsp + 0xe8]
rol rdx, 0x28
mov rcx, qword [r12 + 0x28]
mov qword [rsp + 0xc8], rcx
add rbp, rcx
add rbp, rdx
xor r13, rbp
rol r13, 0x30
mov qword [rsp + 0xf0], r13
add r10, r13
xor rdx, r10
rol rdx, 1
mov r9, qword [r12 + 0x30]
mov qword [rsp + 0xb0], r9
mov rbx, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x110]
lea r11, [rcx + rbx]
mov qword [rsp + 0xe0], rbx
add r11, r9
movabs rdi, 0x5be0cd19137e2179
mov r15, qword [rsp + 0x40]
xor r15, rdi
xor r15, r11
rol r15, 0x20
movabs r9, 0xa54ff53a5f1d36f1
lea r13, [r15 + r9]
mov rdi, r13
xor rdi, rbx
rol rdi, 0x28
mov r9, qword [r12 + 0x38]
mov qword [rsp + 0x88], r9
add r11, r9
add r11, rdi
xor r15, r11
rol r15, 0x30
add r13, r15
xor rdi, r13
rol rdi, 1
mov r9, qword [r12 + 0x40]
mov qword [rsp + 0x60], r9
add r8, r9
mov rcx, qword [rsp + 0xd8]
add r8, rcx
xor r15, r8
rol r15, 0x20
add r10, r15
xor rcx, r10
rol rcx, 0x28
mov r9, qword [r12 + 0x48]
mov qword [rsp + 0x90], r9
add r8, r9
add r8, rcx
xor r15, r8
rol r15, 0x30
add r10, r15
mov qword [rsp + 0x30], r10
xor rcx, r10
rol rcx, 1
mov r9, qword [r12 + 0x50]
mov qword [rsp + 0xd0], r9
add r14, r9
add r14, rdx
xor rsi, r14
rol rsi, 0x20
add r13, rsi
xor rdx, r13
rol rdx, 0x28
mov r9, qword [r12 + 0x58]
mov qword [rsp + 0xb8], r9
add r14, r9
add r14, rdx
xor rsi, r14
rol rsi, 0x30
add r13, rsi
mov qword [rsp + 0x28], r13
xor rdx, r13
rol rdx, 1
mov r9, qword [r12 + 0x60]
mov qword [rsp + 0x68], r9
add rbp, r9
add rbp, rdi
mov rax, qword [rsp + 0xa0]
xor rax, rbp
rol rax, 0x20
mov r10, qword [rsp + 0x38]
add r10, rax
xor rdi, r10
rol rdi, 0x28
mov rbx, qword [r12 + 0x68]
mov qword [rsp + 0x80], rbx
mov r9, qword [r12 + 0x70]
mov r12, qword [r12 + 0x78]
mov qword [rsp + 0x70], r12
add rbp, rbx
add rbp, rdi
xor rax, rbp
rol rax, 0x30
mov qword [rsp + 0xa0], rax
add r10, rax
xor rdi, r10
rol rdi, 1
add r11, r9
mov qword [rsp + 0xa8], r9
mov r13, qword [rsp + 0x48]
add r11, r13
mov rax, qword [rsp + 0xf0]
xor rax, r11
rol rax, 0x20
mov rbx, qword [rsp + 0x20]
add rbx, rax
xor r13, rbx
rol r13, 0x28
add r11, r12
add r11, r13
xor rax, r11
rol rax, 0x30
add rbx, rax
xor r13, rbx
mov r12, rbx
rol r13, 1
add r8, r9
add r8, r13
xor rsi, r8
rol rsi, 0x20
mov r9, r10
add r9, rsi
xor r13, r9
rol r13, 0x28
add r8, qword [rsp + 0xd0]
add r8, r13
xor rsi, r8
rol rsi, 0x30
add r9, rsi
mov qword [rsp + 0x38], r9
xor r13, r9
rol r13, 1
add r14, qword [rsp + 0x50]
add r14, rcx
mov rbx, qword [rsp + 0xa0]
xor rbx, r14
rol rbx, 0x20
add r12, rbx
xor rcx, r12
rol rcx, 0x28
add r14, qword [rsp + 0x60]
add r14, rcx
xor rbx, r14
rol rbx, 0x30
add r12, rbx
mov qword [rsp + 0x20], r12
xor rcx, r12
rol rcx, 1
add rbp, qword [rsp + 0x90]
add rbp, rdx
xor rax, rbp
rol rax, 0x20
mov r12, qword [rsp + 0x30]
add r12, rax
xor rdx, r12
rol rdx, 0x28
add rbp, qword [rsp + 0x70]
add rbp, rdx
xor rax, rbp
rol rax, 0x30
add r12, rax
xor rdx, r12
rol rdx, 1
add r11, qword [rsp + 0x80]
add r11, rdi
xor r15, r11
rol r15, 0x20
mov r10, qword [rsp + 0x28]
add r10, r15
xor rdi, r10
rol rdi, 0x28
add r11, qword [rsp + 0xb0]
add r11, rdi
xor r15, r11
rol r15, 0x30
add r10, r15
xor rdi, r10
rol rdi, 1
add r8, qword [rsp + 0x98]
add r8, rcx
xor r15, r8
rol r15, 0x20
mov r9, r12
add r9, r15
xor rcx, r9
rol rcx, 0x28
add r8, qword [rsp + 0x68]
add r8, rcx
xor r15, r8
mov r12, r8
rol r15, 0x30
add r9, r15
mov qword [rsp + 0x30], r9
xor rcx, r9
rol rcx, 1
mov qword [rsp + 0xd8], rcx
add r14, qword [rsp + 0xc0]
add r14, rdx
xor rsi, r14
rol rsi, 0x20
add r10, rsi
xor rdx, r10
rol rdx, 0x28
add r14, qword [rsp + 0x58]
add r14, rdx
xor rsi, r14
rol rsi, 0x30
add r10, rsi
mov qword [rsp + 0x28], r10
mov r9, rsi
xor rdx, r10
rol rdx, 1
mov r8, qword [rsp + 0xb8]
add rbp, r8
add rbp, rdi
xor rbx, rbp
rol rbx, 0x20
mov rsi, qword [rsp + 0x38]
add rsi, rbx
xor rdi, rsi
rol rdi, 0x28
add rbp, qword [rsp + 0x88]
add rbp, rdi
xor rbx, rbp
rol rbx, 0x30
add rsi, rbx
xor rdi, rsi
mov rcx, rsi
rol rdi, 1
mov rsi, qword [rsp + 0xc8]
add r11, rsi
add r11, r13
xor rax, r11
rol rax, 0x20
mov r10, qword [rsp + 0x20]
add r10, rax
xor r13, r10
rol r13, 0x28
add r11, qword [rsp + 0x78]
add r11, r13
xor rax, r11
rol rax, 0x30
add r10, rax
xor r13, r10
rol r13, 1
add r12, r8
add r12, r13
xor r9, r12
rol r9, 0x20
add rcx, r9
xor r13, rcx
rol r13, 0x28
add r12, qword [rsp + 0x60]
add r12, r13
xor r9, r12
rol r9, 0x30
add rcx, r9
mov qword [rsp + 0x38], rcx
xor r13, rcx
rol r13, 1
mov qword [rsp + 0x48], r13
add r14, qword [rsp + 0x68]
mov rcx, qword [rsp + 0xd8]
add r14, rcx
xor rbx, r14
rol rbx, 0x20
add r10, rbx
xor rcx, r10
rol rcx, 0x28
add r14, qword [rsp + 0xc0]
add r14, rcx
xor rbx, r14
rol rbx, 0x30
add r10, rbx
mov qword [rsp + 0x20], r10
xor rcx, r10
rol rcx, 1
add rbp, rsi
add rbp, rdx
xor rax, rbp
rol rax, 0x20
mov r10, qword [rsp + 0x30]
add r10, rax
xor rdx, r10
rol rdx, 0x28
add rbp, qword [rsp + 0x58]
add rbp, rdx
xor rax, rbp
rol rax, 0x30
add r10, rax
xor rdx, r10
rol rdx, 1
add r11, qword [rsp + 0x70]
add r11, rdi
xor r15, r11
rol r15, 0x20
mov r8, qword [rsp + 0x28]
add r8, r15
xor rdi, r8
rol rdi, 0x28
add r11, qword [rsp + 0x80]
add r11, rdi
xor r15, r11
rol r15, 0x30
add r8, r15
xor rdi, r8
rol rdi, 1
add r12, qword [rsp + 0xd0]
add r12, rcx
xor r15, r12
rol r15, 0x20
add r10, r15
xor rcx, r10
rol rcx, 0x28
add r12, qword [rsp + 0xa8]
add r12, rcx
xor r15, r12
rol r15, 0x30
add r10, r15
mov qword [rsp + 0x30], r10
xor rcx, r10
rol rcx, 1
mov qword [rsp + 0xd8], rcx
add r14, qword [rsp + 0x78]
add r14, rdx
xor r9, r14
rol r9, 0x20
add r8, r9
xor rdx, r8
rol rdx, 0x28
add r14, qword [rsp + 0xb0]
add r14, rdx
xor r9, r14
rol r9, 0x30
add r8, r9
mov qword [rsp + 0x28], r8
xor rdx, r8
rol rdx, 1
mov qword [rsp + 0x40], rdx
mov r8, qword [rsp + 0x88]
add rbp, r8
add rbp, rdi
xor rbx, rbp
rol rbx, 0x20
mov rsi, qword [rsp + 0x38]
add rsi, rbx
xor rdi, rsi
rol rdi, 0x28
add rbp, qword [rsp + 0x98]
add rbp, rdi
xor rbx, rbp
rol rbx, 0x30
add rsi, rbx
xor rdi, rsi
mov r13, rsi
rol rdi, 1
mov rsi, qword [rsp + 0x90]
add r11, rsi
mov r10, qword [rsp + 0x48]
add r11, r10
xor rax, r11
rol rax, 0x20
mov rcx, qword [rsp + 0x20]
add rcx, rax
xor r10, rcx
rol r10, 0x28
add r11, qword [rsp + 0x50]
add r11, r10
xor rax, r11
rol rax, 0x30
mov qword [rsp + 0xf0], rax
add rcx, rax
xor r10, rcx
mov rdx, rcx
rol r10, 1
add r12, r8
add r12, r10
xor r9, r12
rol r9, 0x20
add r13, r9
xor r10, r13
rol r10, 0x28
add r12, rsi
add r12, r10
xor r9, r12
rol r9, 0x30
add r13, r9
mov qword [rsp + 0x38], r13
xor r10, r13
rol r10, 1
mov rcx, r10
add r14, qword [rsp + 0x78]
mov r13, qword [rsp + 0xd8]
add r14, r13
xor rbx, r14
rol rbx, 0x20
add rdx, rbx
xor r13, rdx
rol r13, 0x28
add r14, qword [rsp + 0x98]
add r14, r13
xor rbx, r14
rol rbx, 0x30
add rdx, rbx
mov qword [rsp + 0x20], rdx
xor r13, rdx
rol r13, 1
add rbp, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x40]
add rbp, rdx
mov r10, qword [rsp + 0xf0]
xor r10, rbp
rol r10, 0x20
mov rsi, qword [rsp + 0x30]
add rsi, r10
xor rdx, rsi
rol rdx, 0x28
add rbp, qword [rsp + 0x68]
add rbp, rdx
xor r10, rbp
rol r10, 0x30
add rsi, r10
xor rdx, rsi
rol rdx, 1
add r11, qword [rsp + 0xb8]
add r11, rdi
xor r15, r11
rol r15, 0x20
mov r8, qword [rsp + 0x28]
add r8, r15
xor rdi, r8
rol rdi, 0x28
add r11, qword [rsp + 0xa8]
add r11, rdi
xor r15, r11
rol r15, 0x30
add r8, r15
xor rdi, r8
rol rdi, 1
add r12, qword [rsp + 0x58]
add r12, r13
xor r15, r12
rol r15, 0x20
add rsi, r15
xor r13, rsi
rol r13, 0x28
add r12, qword [rsp + 0xb0]
add r12, r13
xor r15, r12
rol r15, 0x30
add rsi, r15
mov qword [rsp + 0x30], rsi
xor r13, rsi
rol r13, 1
mov qword [rsp + 0xd8], r13
mov rax, qword [rsp + 0xc8]
add r14, rax
add r14, rdx
xor r9, r14
rol r9, 0x20
add r8, r9
xor rdx, r8
rol rdx, 0x28
add r14, qword [rsp + 0xd0]
add r14, rdx
xor r9, r14
rol r9, 0x30
add r8, r9
mov qword [rsp + 0x28], r8
xor rdx, r8
rol rdx, 1
add rbp, qword [rsp + 0x50]
add rbp, rdi
xor rbx, rbp
rol rbx, 0x20
mov rsi, qword [rsp + 0x38]
add rsi, rbx
xor rdi, rsi
rol rdi, 0x28
mov r8, qword [rsp + 0xc0]
add rbp, r8
add rbp, rdi
xor rbx, rbp
rol rbx, 0x30
add rsi, rbx
xor rdi, rsi
rol rdi, 1
add r11, qword [rsp + 0x70]
add r11, rcx
xor r10, r11
rol r10, 0x20
mov r13, qword [rsp + 0x20]
add r13, r10
xor rcx, r13
rol rcx, 0x28
add r11, qword [rsp + 0x60]
add r11, rcx
mov qword [rsp + 0x40], r11
xor r10, r11
rol r10, 0x30
add r13, r10
xor rcx, r13
rol rcx, 1
add r12, qword [rsp + 0x90]
add r12, rcx
xor r9, r12
rol r9, 0x20
add rsi, r9
xor rcx, rsi
rol rcx, 0x28
add r12, r8
add r12, rcx
mov qword [rsp + 0xa0], r12
xor r9, r12
rol r9, 0x30
add rsi, r9
mov qword [rsp + 0x38], rsi
xor rcx, rsi
rol rcx, 1
mov qword [rsp + 0x48], rcx
add r14, rax
mov r12, qword [rsp + 0xd8]
add r14, r12
xor rbx, r14
rol rbx, 0x20
add r13, rbx
xor r12, r13
rol r12, 0x28
add r14, qword [rsp + 0x88]
add r14, r12
xor rbx, r14
mov rcx, r14
rol rbx, 0x30
add r13, rbx
mov qword [rsp + 0x20], r13
xor r12, r13
rol r12, 1
add rbp, qword [rsp + 0x58]
add rbp, rdx
xor r10, rbp
rol r10, 0x20
mov rsi, qword [rsp + 0x30]
add rsi, r10
xor rdx, rsi
rol rdx, 0x28
add rbp, qword [rsp + 0x50]
add rbp, rdx
xor r10, rbp
rol r10, 0x30
add rsi, r10
mov r11, r10
xor rdx, rsi
rol rdx, 1
mov r13, rdx
mov rax, qword [rsp + 0x40]
add rax, qword [rsp + 0xd0]
add rax, rdi
xor r15, rax
rol r15, 0x20
mov r8, qword [rsp + 0x28]
add r8, r15
xor rdi, r8
rol rdi, 0x28
add rax, qword [rsp + 0x70]
add rax, rdi
xor r15, rax
rol r15, 0x30
add r8, r15
xor rdi, r8
rol rdi, 1
mov r10, qword [rsp + 0xa0]
add r10, qword [rsp + 0xa8]
add r10, r12
xor r15, r10
rol r15, 0x20
add rsi, r15
xor r12, rsi
rol r12, 0x28
add r10, qword [rsp + 0x98]
add r10, r12
xor r15, r10
mov r14, r10
rol r15, 0x30
add rsi, r15
mov qword [rsp + 0x30], rsi
xor r12, rsi
rol r12, 1
add rcx, qword [rsp + 0xb8]
add rcx, rdx
xor r9, rcx
rol r9, 0x20
add r8, r9
xor r13, r8
rol r13, 0x28
add rcx, qword [rsp + 0x68]
add rcx, r13
xor r9, rcx
rol r9, 0x30
add r8, r9
mov qword [rsp + 0x28], r8
xor r13, r8
rol r13, 1
mov r8, qword [rsp + 0xb0]
add rbp, r8
add rbp, rdi
mov r10, rbx
xor r10, rbp
rol r10, 0x20
mov rbx, qword [rsp + 0x38]
add rbx, r10
xor rdi, rbx
rol rdi, 0x28
add rbp, qword [rsp + 0x60]
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add rbx, r10
xor rdi, rbx
rol rdi, 1
add rax, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x48]
add rax, rdx
xor r11, rax
rol r11, 0x20
mov rsi, qword [rsp + 0x20]
add rsi, r11
xor rdx, rsi
rol rdx, 0x28
add rax, qword [rsp + 0x80]
add rax, rdx
xor r11, rax
rol r11, 0x30
add rsi, r11
mov qword [rsp + 0x20], rsi
xor rdx, rsi
rol rdx, 1
add r14, qword [rsp + 0x58]
add r14, rdx
xor r9, r14
rol r9, 0x20
add rbx, r9
xor rdx, rbx
rol rdx, 0x28
add r14, qword [rsp + 0x68]
add r14, rdx
xor r9, r14
rol r9, 0x30
add rbx, r9
mov qword [rsp + 0x38], rbx
mov rsi, r9
xor rdx, rbx
rol rdx, 1
add rcx, r8
add rcx, r12
xor r10, rcx
rol r10, 0x20
mov r8, qword [rsp + 0x20]
add r8, r10
xor r12, r8
rol r12, 0x28
add rcx, qword [rsp + 0xd0]
add rcx, r12
xor r10, rcx
rol r10, 0x30
add r8, r10
mov qword [rsp + 0x20], r8
xor r12, r8
rol r12, 1
add rbp, qword [rsp + 0xc0]
add rbp, r13
mov rbx, r11
xor rbx, rbp
rol rbx, 0x20
mov r9, qword [rsp + 0x30]
add r9, rbx
xor r13, r9
rol r13, 0x28
add rbp, qword [rsp + 0xb8]
add rbp, r13
xor rbx, rbp
rol rbx, 0x30
add r9, rbx
xor r13, r9
rol r13, 1
add rax, qword [rsp + 0x60]
add rax, rdi
xor r15, rax
rol r15, 0x20
mov r8, qword [rsp + 0x28]
add r8, r15
xor rdi, r8
rol rdi, 0x28
add rax, qword [rsp + 0x78]
add rax, rdi
xor r15, rax
rol r15, 0x30
add r8, r15
xor rdi, r8
rol rdi, 1
add r14, qword [rsp + 0x50]
add r14, r12
xor r15, r14
rol r15, 0x20
add r9, r15
xor r12, r9
rol r12, 0x28
add r14, qword [rsp + 0x80]
add r14, r12
mov qword [rsp + 0xa0], r14
xor r15, r14
rol r15, 0x30
add r9, r15
mov qword [rsp + 0x30], r9
xor r12, r9
rol r12, 1
add rcx, qword [rsp + 0x88]
add rcx, r13
xor rsi, rcx
rol rsi, 0x20
add r8, rsi
xor r13, r8
rol r13, 0x28
add rcx, qword [rsp + 0xc8]
add rcx, r13
xor rsi, rcx
rol rsi, 0x30
add r8, rsi
mov qword [rsp + 0x28], r8
xor r13, r8
rol r13, 1
add rbp, qword [rsp + 0x70]
add rbp, rdi
xor r10, rbp
rol r10, 0x20
mov r8, qword [rsp + 0x38]
add r8, r10
xor rdi, r8
rol rdi, 0x28
add rbp, qword [rsp + 0xa8]
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add r8, r10
mov qword [rsp + 0x38], r8
xor rdi, r8
rol rdi, 1
mov r8, qword [rsp + 0x98]
add rax, r8
add rax, rdx
xor rbx, rax
rol rbx, 0x20
mov r9, qword [rsp + 0x20]
add r9, rbx
xor rdx, r9
rol rdx, 0x28
add rax, qword [rsp + 0x90]
add rax, rdx
xor rbx, rax
rol rbx, 0x30
add r9, rbx
xor rdx, r9
rol rdx, 1
mov r11, qword [rsp + 0x68]
mov r14, qword [rsp + 0xa0]
add r14, r11
add r14, rdx
xor rsi, r14
rol rsi, 0x20
mov r11, qword [rsp + 0x38]
add r11, rsi
xor rdx, r11
rol rdx, 0x28
add r14, qword [rsp + 0xc8]
add r14, rdx
xor rsi, r14
rol rsi, 0x30
add r11, rsi
xor rdx, r11
rol rdx, 1
add rcx, r8
add rcx, r12
xor r10, rcx
rol r10, 0x20
add r9, r10
xor r12, r9
rol r12, 0x28
add rcx, qword [rsp + 0x70]
add rcx, r12
xor r10, rcx
rol r10, 0x30
add r9, r10
mov qword [rsp + 0x20], r9
xor r12, r9
rol r12, 1
add rbp, qword [rsp + 0xa8]
add rbp, r13
xor rbx, rbp
rol rbx, 0x20
mov r9, qword [rsp + 0x30]
add r9, rbx
xor r13, r9
rol r13, 0x28
add rbp, qword [rsp + 0x80]
add rbp, r13
xor rbx, rbp
rol rbx, 0x30
add r9, rbx
xor r13, r9
rol r13, 1
add rax, qword [rsp + 0x50]
add rax, rdi
xor r15, rax
rol r15, 0x20
mov r8, qword [rsp + 0x28]
add r8, r15
xor rdi, r8
rol rdi, 0x28
add rax, qword [rsp + 0xd0]
add rax, rdi
xor r15, rax
rol r15, 0x30
add r8, r15
xor rdi, r8
rol rdi, 1
add r14, qword [rsp + 0xc0]
add r14, r12
xor r15, r14
rol r15, 0x20
add r9, r15
xor r12, r9
rol r12, 0x28
add r14, qword [rsp + 0x88]
add r14, r12
xor r15, r14
rol r15, 0x30
add r9, r15
mov qword [rsp + 0x30], r9
xor r12, r9
rol r12, 1
add rcx, qword [rsp + 0xb0]
add rcx, r13
xor rsi, rcx
rol rsi, 0x20
add r8, rsi
xor r13, r8
rol r13, 0x28
add rcx, qword [rsp + 0x78]
add rcx, r13
xor rsi, rcx
rol rsi, 0x30
add r8, rsi
mov qword [rsp + 0x28], r8
xor r13, r8
rol r13, 1
add rbp, qword [rsp + 0x90]
add rbp, rdi
xor r10, rbp
rol r10, 0x20
add r11, r10
xor rdi, r11
rol rdi, 0x28
add rbp, qword [rsp + 0x58]
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add r11, r10
xor rdi, r11
rol rdi, 1
add rax, qword [rsp + 0x60]
add rax, rdx
xor rbx, rax
rol rbx, 0x20
mov r9, qword [rsp + 0x20]
add r9, rbx
xor rdx, r9
rol rdx, 0x28
mov r8, qword [rsp + 0xb8]
add rax, r8
add rax, rdx
xor rbx, rax
rol rbx, 0x30
add r9, rbx
xor rdx, r9
rol rdx, 1
add r14, qword [rsp + 0x80]
add r14, rdx
xor rsi, r14
rol rsi, 0x20
add r11, rsi
xor rdx, r11
rol rdx, 0x28
add r14, r8
add r14, rdx
xor rsi, r14
rol rsi, 0x30
add r11, rsi
xor rdx, r11
rol rdx, 1
add rcx, qword [rsp + 0x88]
add rcx, r12
xor r10, rcx
rol r10, 0x20
add r9, r10
xor r12, r9
rol r12, 0x28
add rcx, qword [rsp + 0xa8]
add rcx, r12
xor r10, rcx
rol r10, 0x30
add r9, r10
mov qword [rsp + 0x20], r9
xor r12, r9
rol r12, 1
add rbp, qword [rsp + 0x68]
add rbp, r13
xor rbx, rbp
rol rbx, 0x20
mov r8, qword [rsp + 0x30]
add r8, rbx
xor r13, r8
rol r13, 0x28
add rbp, qword [rsp + 0x98]
add rbp, r13
xor rbx, rbp
rol rbx, 0x30
add r8, rbx
xor r13, r8
rol r13, 1
add rax, qword [rsp + 0x78]
add rax, rdi
xor r15, rax
rol r15, 0x20
mov r9, qword [rsp + 0x28]
add r9, r15
xor rdi, r9
rol rdi, 0x28
add rax, qword [rsp + 0x90]
add rax, rdi
xor r15, rax
rol r15, 0x30
add r9, r15
xor rdi, r9
rol rdi, 1
add r14, qword [rsp + 0xc8]
add r14, r12
xor r15, r14
rol r15, 0x20
add r8, r15
xor r12, r8
rol r12, 0x28
add r14, qword [rsp + 0xc0]
add r14, r12
xor r15, r14
rol r15, 0x30
add r8, r15
mov qword [rsp + 0x30], r8
xor r12, r8
rol r12, 1
add rcx, qword [rsp + 0x70]
add rcx, r13
xor rsi, rcx
rol rsi, 0x20
add r9, rsi
xor r13, r9
rol r13, 0x28
add rcx, qword [rsp + 0x50]
add rcx, r13
xor rsi, rcx
rol rsi, 0x30
add r9, rsi
mov qword [rsp + 0x28], r9
xor r13, r9
rol r13, 1
add rbp, qword [rsp + 0x60]
add rbp, rdi
xor r10, rbp
rol r10, 0x20
add r11, r10
xor rdi, r11
rol rdi, 0x28
mov r9, qword [rsp + 0xb0]
add rbp, r9
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add r11, r10
xor rdi, r11
rol rdi, 1
add rax, qword [rsp + 0x58]
add rax, rdx
xor rbx, rax
rol rbx, 0x20
mov r8, qword [rsp + 0x20]
add r8, rbx
xor rdx, r8
rol rdx, 0x28
add rax, qword [rsp + 0xd0]
add rax, rdx
xor rbx, rax
rol rbx, 0x30
add r8, rbx
xor rdx, r8
rol rdx, 1
add r14, r9
add r14, rdx
xor rsi, r14
rol rsi, 0x20
add r11, rsi
xor rdx, r11
rol rdx, 0x28
add r14, qword [rsp + 0x70]
add r14, rdx
xor rsi, r14
rol rsi, 0x30
add r11, rsi
mov qword [rsp + 0x38], r11
xor rdx, r11
rol rdx, 1
mov qword [rsp + 0x48], rdx
add rcx, qword [rsp + 0xa8]
add rcx, r12
xor r10, rcx
rol r10, 0x20
add r8, r10
xor r12, r8
rol r12, 0x28
add rcx, qword [rsp + 0x90]
add rcx, r12
xor r10, rcx
rol r10, 0x30
add r8, r10
mov qword [rsp + 0x20], r8
xor r12, r8
rol r12, 1
add rbp, qword [rsp + 0xb8]
mov r8, r13
add rbp, r13
mov r11, rbx
xor r11, rbp
rol r11, 0x20
mov rbx, qword [rsp + 0x30]
add rbx, r11
xor r8, rbx
rol r8, 0x28
add rbp, qword [rsp + 0x78]
add rbp, r8
xor r11, rbp
rol r11, 0x30
add rbx, r11
xor r8, rbx
rol r8, 1
add rax, qword [rsp + 0xc0]
add rax, rdi
xor r15, rax
rol r15, 0x20
mov rdx, qword [rsp + 0x28]
add rdx, r15
xor rdi, rdx
rol rdi, 0x28
add rax, qword [rsp + 0x60]
add rax, rdi
xor r15, rax
rol r15, 0x30
add rdx, r15
xor rdi, rdx
mov r9, rdx
rol rdi, 1
mov r13, r14
add r13, qword [rsp + 0x68]
mov r14, r12
add r13, r12
xor r15, r13
rol r15, 0x20
mov rdx, rbx
add rdx, r15
xor r14, rdx
rol r14, 0x28
add r13, qword [rsp + 0x58]
add r13, r14
xor r15, r13
mov r12, r13
rol r15, 0x30
add rdx, r15
mov qword [rsp + 0x30], rdx
xor r14, rdx
rol r14, 1
add rcx, qword [rsp + 0x80]
add rcx, r8
xor rsi, rcx
rol rsi, 0x20
add r9, rsi
xor r8, r9
rol r8, 0x28
add rcx, qword [rsp + 0x88]
add rcx, r8
xor rsi, rcx
rol rsi, 0x30
add r9, rsi
mov qword [rsp + 0x28], r9
xor r8, r9
rol r8, 1
add rbp, qword [rsp + 0x98]
add rbp, rdi
xor r10, rbp
rol r10, 0x20
mov rbx, qword [rsp + 0x38]
add rbx, r10
xor rdi, rbx
rol rdi, 0x28
add rbp, qword [rsp + 0x50]
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add rbx, r10
xor rdi, rbx
rol rdi, 1
mov r9, qword [rsp + 0xd0]
add rax, r9
mov r13, qword [rsp + 0x48]
add rax, r13
xor r11, rax
rol r11, 0x20
mov rdx, qword [rsp + 0x20]
add rdx, r11
xor r13, rdx
rol r13, 0x28
add rax, qword [rsp + 0xc8]
add rax, r13
xor r11, rax
rol r11, 0x30
add rdx, r11
xor r13, rdx
rol r13, 1
add r12, r9
add r12, r13
xor rsi, r12
rol rsi, 0x20
add rbx, rsi
xor r13, rbx
rol r13, 0x28
add r12, qword [rsp + 0x58]
add r12, r13
xor rsi, r12
rol rsi, 0x30
add rbx, rsi
xor r13, rbx
rol r13, 1
mov qword [rsp + 0x48], r13
add rcx, qword [rsp + 0x60]
add rcx, r14
xor r10, rcx
rol r10, 0x20
add rdx, r10
xor r14, rdx
rol r14, 0x28
add rcx, qword [rsp + 0x50]
add rcx, r14
xor r10, rcx
rol r10, 0x30
add rdx, r10
mov qword [rsp + 0x20], rdx
xor r14, rdx
rol r14, 1
mov r13, r14
add rbp, qword [rsp + 0x88]
add rbp, r8
mov rdx, r11
xor rdx, rbp
rol rdx, 0x20
mov r9, qword [rsp + 0x30]
add r9, rdx
xor r8, r9
rol r8, 0x28
add rbp, qword [rsp + 0xb0]
add rbp, r8
xor rdx, rbp
rol rdx, 0x30
add r9, rdx
mov r11, rdx
xor r8, r9
mov rdx, r9
rol r8, 1
mov r9, rax
add r9, qword [rsp + 0x98]
add r9, rdi
xor r15, r9
rol r15, 0x20
mov r14, qword [rsp + 0x28]
add r14, r15
xor rdi, r14
rol rdi, 0x28
add r9, qword [rsp + 0xc8]
add r9, rdi
xor r15, r9
rol r15, 0x30
add r14, r15
xor rdi, r14
rol rdi, 1
add r12, qword [rsp + 0x70]
add r12, r13
xor r15, r12
rol r15, 0x20
add rdx, r15
xor r13, rdx
rol r13, 0x28
add r12, qword [rsp + 0xb8]
add r12, r13
xor r15, r12
rol r15, 0x30
mov qword [rsp + 0x40], r15
add rdx, r15
mov qword [rsp + 0x30], rdx
xor r13, rdx
rol r13, 1
add rcx, qword [rsp + 0x90]
add rcx, r8
xor rsi, rcx
rol rsi, 0x20
add r14, rsi
xor r8, r14
rol r8, 0x28
add rcx, qword [rsp + 0xa8]
add rcx, r8
xor rsi, rcx
rol rsi, 0x30
add r14, rsi
mov qword [rsp + 0x28], r14
xor r8, r14
rol r8, 1
add rbp, qword [rsp + 0x78]
add rbp, rdi
xor r10, rbp
rol r10, 0x20
add rbx, r10
xor rdi, rbx
rol rdi, 0x28
add rbp, qword [rsp + 0x68]
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add rbx, r10
xor rdi, rbx
mov rax, rbx
rol rdi, 1
add r9, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x48]
add r9, rdx
xor r11, r9
rol r11, 0x20
mov rbx, qword [rsp + 0x20]
add rbx, r11
xor rdx, rbx
rol rdx, 0x28
mov r14, qword [rsp + 0xc0]
add r9, r14
add r9, rdx
xor r11, r9
rol r11, 0x30
mov qword [rsp + 0xf0], r11
add rbx, r11
xor rdx, rbx
rol rdx, 1
add r12, r14
add r12, rdx
mov r11, rdx
xor rsi, r12
rol rsi, 0x20
add rax, rsi
xor r11, rax
rol r11, 0x28
add r12, qword [rsp + 0x98]
add r12, r11
xor rsi, r12
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x38], rax
xor r11, rax
rol r11, 1
mov qword [rsp + 0x48], r11
add rcx, qword [rsp + 0x58]
add rcx, r13
mov rax, r10
xor rax, rcx
rol rax, 0x20
add rbx, rax
xor r13, rbx
rol r13, 0x28
add rcx, qword [rsp + 0x78]
add rcx, r13
xor rax, rcx
mov rdx, rcx
rol rax, 0x30
mov qword [rsp + 0xa0], rax
add rbx, rax
mov qword [rsp + 0x20], rbx
xor r13, rbx
rol r13, 1
mov r10, r13
add rbp, qword [rsp + 0x50]
add rbp, r8
mov rax, qword [rsp + 0xf0]
xor rax, rbp
rol rax, 0x20
mov rbx, qword [rsp + 0x30]
add rbx, rax
xor r8, rbx
rol r8, 0x28
add rbp, qword [rsp + 0xc8]
add rbp, r8
xor rax, rbp
rol rax, 0x30
add rbx, rax
xor r8, rbx
rol r8, 1
add r9, qword [rsp + 0xb0]
add r9, rdi
mov r14, qword [rsp + 0x40]
xor r14, r9
rol r14, 0x20
mov r13, qword [rsp + 0x28]
add r13, r14
xor rdi, r13
rol rdi, 0x28
add r9, qword [rsp + 0x88]
add r9, rdi
xor r14, r9
mov rcx, r9
rol r14, 0x30
add r13, r14
xor rdi, r13
add r12, qword [rsp + 0x60]
add r12, r10
xor r14, r12
rol r14, 0x20
add rbx, r14
xor r10, rbx
rol r10, 0x28
add r12, qword [rsp + 0x90]
add r12, r10
xor r14, r12
mov r15, qword [rsp + 0xd0]
add rdx, r15
add rdx, r8
xor rsi, rdx
rol rsi, 0x20
add r13, rsi
xor r8, r13
mov r11, r13
rol r8, 0x28
mov qword [rsp + 0x40], r8
add rdx, qword [rsp + 0xb8]
add rdx, r8
xor rsi, rdx
rol rsi, 0x30
mov r13, rsi
mov r9, qword [rsp + 0xa8]
add rcx, r9
add r12, r9
add r11, rsi
mov qword [rsp + 0x28], r11
mov rsi, qword [rsp + 0x48]
add rcx, rsi
xor rax, rcx
rol rax, 0x20
mov r9, rax
mov r8, qword [rsp + 0x20]
add r8, rax
xor rsi, r8
rol rsi, 0x28
add rcx, qword [rsp + 0x70]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add r8, r9
xor rsi, r8
rol rsi, 1
add r12, rsi
mov r11, rsi
xor r13, r12
add r12, r15
rol rdi, 1
rol r14, 0x30
add rbx, r14
mov qword [rsp + 0x30], rbx
xor r10, rbx
rol r10, 1
add rbp, qword [rsp + 0x68]
add rbp, rdi
mov rsi, qword [rsp + 0xa0]
xor rsi, rbp
rol rsi, 0x20
mov r15, qword [rsp + 0x38]
add r15, rsi
xor rdi, r15
rol rdi, 0x28
mov rbx, qword [rsp + 0x80]
add rbp, rbx
add rbp, rdi
xor rsi, rbp
rol rsi, 0x30
add rdx, qword [rsp + 0x50]
add r15, rsi
add rdx, r10
xor rsi, rdx
add rdx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
xor rax, qword [rsp + 0x28]
rol rax, 1
mov qword [rsp + 0x40], rax
add rbp, qword [rsp + 0x90]
add rbp, rax
xor r9, rbp
add rbp, qword [rsp + 0x70]
add rcx, rbx
xor rdi, r15
rol rdi, 1
rol r13, 0x20
add r15, r13
xor r11, r15
rol r11, 0x28
add rcx, rdi
xor r14, rcx
add rcx, qword [rsp + 0xb0]
add r12, r11
xor r13, r12
add r12, qword [rsp + 0x98]
rol rsi, 0x20
add r8, rsi
xor r10, r8
rol r10, 0x28
add rdx, r10
xor rsi, rdx
rol rsi, 0x30
add r8, rsi
mov qword [rsp + 0x20], r8
xor r10, r8
rol r10, 1
mov r8, r10
rol r14, 0x20
mov rax, qword [rsp + 0x28]
add rax, r14
xor rdi, rax
rol rdi, 0x28
add rcx, rdi
xor r14, rcx
rol r14, 0x30
add rax, r14
mov r10, rax
mov qword [rsp + 0x28], rax
add r12, r8
xor r14, r12
add r12, qword [rsp + 0x68]
add rdx, qword [rsp + 0xc0]
rol r13, 0x30
add r15, r13
rol r9, 0x20
mov rbx, qword [rsp + 0x30]
add rbx, r9
mov rax, qword [rsp + 0x40]
xor rax, rbx
rol rax, 0x28
add rbp, rax
xor r9, rbp
rol r9, 0x30
add rbx, r9
xor rax, rbx
rol rax, 1
add rdx, rax
xor r13, rdx
add rdx, qword [rsp + 0x58]
xor rdi, r10
rol rdi, 1
add rbp, qword [rsp + 0xb8]
add rbp, rdi
xor rsi, rbp
add rbp, qword [rsp + 0x88]
add rcx, qword [rsp + 0xc8]
xor r11, r15
rol r11, 1
rol r14, 0x20
add rbx, r14
mov qword [rsp + 0x30], rbx
xor r8, rbx
rol r8, 0x28
add rcx, r11
xor r9, rcx
add rcx, qword [rsp + 0x78]
add r12, r8
xor r14, r12
mov rbx, qword [rsp + 0xf8]
xor rbx, r12
mov r10, rsi
rol r10, 0x20
add r15, r10
xor rdi, r15
rol rdi, 0x28
add rbp, rdi
xor r10, rbp
rol r10, 0x30
add r15, r10
xor rdi, r15
xor rbx, r15
mov qword [rsp + 0xf8], rbx
mov rbx, r13
rol rbx, 0x20
mov rsi, qword [rsp + 0x28]
add rsi, rbx
xor rax, rsi
mov r13, rsi
rol rax, 0x28
add rdx, rax
xor rbx, rdx
mov r12, rbx
mov rbx, qword [rsp + 0x100]
xor rbx, rdx
mov r15, qword [rsp + 0x118]
rol r9, 0x20
mov rsi, qword [rsp + 0x20]
add rsi, r9
xor r11, rsi
rol r11, 0x28
add rcx, r11
xor r9, rcx
rol r9, 0x30
add rsi, r9
xor r11, rsi
xor rbx, rsi
mov qword [rsp + 0x100], rbx
xor qword [rsp + 0x108], rbp
rol r14, 0x30
mov rsi, qword [rsp + 0x30]
add rsi, r14
xor r8, rsi
xor qword [rsp + 0x108], rsi
mov rbx, qword [rsp + 0x178]
xor qword [rsp + 0x110], rcx
rol r12, 0x30
add r13, r12
xor rax, r13
xor qword [rsp + 0x110], r13
xor rbx, r12
mov rdx, qword [rsp + 0x170]
rol r11, 1
xor rbx, r11
xor r15, r10
rol r8, 1
xor r15, r8
xor qword [rsp + 0xe8], r9
rol rax, 1
xor qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0xe0]
xor rax, r14
rol rdi, 1
xor rax, rdi
mov qword [rsp + 0xe0], rax
cmp qword [rsp + 0x120], rdx
je 0x14003a03c
sub rdx, 0xffffffffffffff80
mov rdi, qword [rsp + 0x168]
mov r9, qword [rsp + 0x148]
mov r14, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x160]
jmp 0x140038680
mov rax, qword [rsp + 0x128]
mov rcx, qword [rsp + 0xf8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x108]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x110]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rbx
mov qword [rax + 0x28], r15
mov rcx, qword [rsp + 0xe8]
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0xe0]
mov qword [rax + 0x38], rcx
add rsp, 0x208
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2