Function at 0x140015d10
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x228
mov qword [rsp + 0x120], r9
mov qword [rsp + 0x130], r8
mov qword [rsp + 0x128], rdx
mov rax, qword [rsp + 0x298]
mov r9, qword [rsp + 0x290]
movzx r12d, byte [rsp + 0x2a8]
movzx r14d, byte [rsp + 0x2a0]
cmp cl, 2
jne 0x140015d93
mov byte [rsp + 0x30], r12b
mov byte [rsp + 0x28], r14b
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x128]
mov rdx, qword [rsp + 0x130]
mov r8, qword [rsp + 0x120]
call fcn.140017940
jmp 0x14001791b
mov qword [rsp + 0x150], rax
mov qword [rsp + 0x158], r9
mov rax, qword [rsp + 0x120]
mov rcx, qword [rax]
mov qword [rsp + 0x100], rcx
mov rbx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x108], rcx
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x110], rcx
mov rdi, qword [rax + 0x20]
mov rsi, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0xf8], rcx
mov r15, qword [rax + 0x38]
xor r9d, r9d
mov rax, qword [rsp + 0x130]
mov rcx, rax
sub rcx, 1
cmovae r9, rcx
and r9, 0xffffffffffffff80
xorps xmm0, xmm0
movaps xmmword [rsp + 0x210], 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
cmp r9, rax
mov r11, rax
cmovb r11, r9
mov r8, rax
sub r8, r11
add r11, qword [rsp + 0x128]
cmp r8, 0x7f
mov qword [rsp + 0x140], r9
jbe 0x140015e74
mov ecx, pe_nt_image_headers64
jmp 0x140015ea2
lea r13, [rsp + 0x1a0]
mov rcx, r13
mov rdx, r11
mov qword [rsp + 0x138], r8
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
mov rcx, qword [rsp + 0x138]
mov r9, qword [rsp + 0x140]
mov r11, r13
xor r12b, 1
not r14b
and r14b, r12b
movzx eax, r14b
neg rax
mov qword [rsp + 0x168], rax
movzx eax, r12b
neg rax
mov qword [rsp + 0x160], rax
xor r8d, r8d
mov qword [rsp + 0x138], rcx
mov qword [rsp + 0x170], r11
jmp 0x14001787b
lea rax, [r8 + 0x80]
mov qword [rsp + 0x148], rax
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x40], rax
mov r14, qword [rsp + 0x168]
mov r9, qword [rsp + 0x158]
add r9, rcx
mov rdx, qword [rsp + 0x150]
adc rdx, 0
mov r8, qword [r11]
mov qword [rsp + 0xd8], r8
mov r10, qword [r11 + 8]
mov qword [rsp + 0x78], r10
mov rcx, qword [rsp + 0x100]
lea rax, [rcx + rdi]
add rax, r8
mov qword [rsp + 0x158], r9
movabs rcx, 0x510e527fade682d1
xor r9, rcx
xor r9, rax
rol r9, 0x20
movabs rcx, 0x6a09e667f3bcc908
lea r8, [r9 + rcx]
mov rcx, r8
xor rcx, rdi
rol rcx, 0x28
add rax, r10
add rax, rcx
xor r9, rax
rol r9, 0x30
mov qword [rsp + 0xc0], r9
add r8, r9
mov qword [rsp + 0x58], r8
xor rcx, r8
rol rcx, 1
mov qword [rsp + 0xf0], rcx
mov rcx, qword [r11 + 0x10]
mov qword [rsp + 0x70], rcx
mov qword [rsp + 0x180], rbx
lea r12, [rbx + rsi]
add r12, rcx
mov qword [rsp + 0x150], rdx
movabs r8, 0x9b05688c2b3e6c1f
xor rdx, r8
xor rdx, r12
rol rdx, 0x20
movabs r8, 0xbb67ae8584caa73b
add r8, rdx
mov r9, r8
xor r9, rsi
rol r9, 0x28
mov rcx, qword [r11 + 0x18]
mov qword [rsp + 0xb8], rcx
add r12, rcx
add r12, r9
xor rdx, r12
rol rdx, 0x30
mov qword [rsp + 0xc8], rdx
add r8, rdx
mov qword [rsp + 0x50], r8
xor r9, r8
rol r9, 1
mov r8, qword [r11 + 0x20]
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x190], rsi
mov rsi, qword [rsp + 0x108]
mov rcx, qword [rsp + 0xf8]
lea rbx, [rsi + rcx]
add rbx, r8
movabs rsi, 0x1f83d9abfb41bd6b
mov rdx, qword [rsp + 0x40]
xor rdx, rsi
xor rdx, rbx
rol rdx, 0x20
mov qword [rsp + 0x188], rdi
movabs rsi, 0x3c6ef372fe94f82b
lea r10, [rdx + rsi]
mov rcx, r10
xor rcx, qword [rsp + 0xf8]
rol rcx, 0x28
mov r8, qword [r11 + 0x28]
mov qword [rsp + 0xa8], r8
add rbx, r8
add rbx, rcx
xor rdx, rbx
rol rdx, 0x30
add r10, rdx
xor rcx, r10
rol rcx, 1
mov rbp, rcx
mov r8, qword [r11 + 0x30]
mov qword [rsp + 0x98], r8
mov rsi, qword [rsp + 0x110]
lea r13, [rsi + r15]
add r13, r8
movabs rsi, 0x5be0cd19137e2179
xor r14, rsi
xor r14, r13
rol r14, 0x20
movabs rsi, 0xa54ff53a5f1d36f1
add rsi, r14
mov qword [rsp + 0x118], r15
mov r15, rsi
xor r15, qword [rsp + 0x118]
rol r15, 0x28
mov r8, qword [r11 + 0x38]
mov qword [rsp + 0x90], r8
add r13, r8
add r13, r15
xor r14, r13
rol r14, 0x30
add rsi, r14
xor r15, rsi
rol r15, 1
mov rcx, qword [r11 + 0x40]
mov qword [rsp + 0x60], rcx
add rax, rcx
add rax, r9
xor r14, rax
rol r14, 0x20
add r10, r14
xor r9, r10
rol r9, 0x28
mov r8, qword [r11 + 0x48]
mov qword [rsp + 0x80], r8
add rax, r8
add rax, r9
xor r14, rax
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
mov rcx, qword [r11 + 0x50]
mov qword [rsp + 0xe0], rcx
add r12, rcx
add r12, rbp
mov rcx, qword [rsp + 0xc0]
xor rcx, r12
rol rcx, 0x20
add rsi, rcx
xor rbp, rsi
rol rbp, 0x28
mov r8, qword [r11 + 0x58]
mov qword [rsp + 0xd0], r8
add r12, r8
add r12, rbp
xor rcx, r12
rol rcx, 0x30
mov qword [rsp + 0xc0], rcx
add rsi, rcx
mov qword [rsp + 0x48], rsi
xor rbp, rsi
rol rbp, 1
mov rdi, r11
mov rcx, qword [r11 + 0x60]
mov qword [rsp + 0xb0], rcx
add rbx, rcx
add rbx, r15
mov rcx, qword [rsp + 0xc8]
xor rcx, rbx
rol rcx, 0x20
mov r11, qword [rsp + 0x58]
add r11, rcx
xor r15, r11
rol r15, 0x28
mov r10, qword [rdi + 0x68]
mov qword [rsp + 0xa0], r10
add rbx, r10
add rbx, r15
xor rcx, rbx
rol rcx, 0x30
mov qword [rsp + 0xc8], rcx
add r11, rcx
xor r15, r11
mov rcx, r11
rol r15, 1
mov rsi, qword [rdi + 0x70]
mov r10, qword [rdi + 0x78]
add r13, rsi
mov qword [rsp + 0xe8], rsi
mov r8, qword [rsp + 0xf0]
add r13, r8
xor rdx, r13
rol rdx, 0x20
mov rdi, qword [rsp + 0x50]
add rdi, rdx
xor r8, rdi
rol r8, 0x28
add r13, r10
mov qword [rsp + 0x88], r10
add r13, r8
xor rdx, r13
rol rdx, 0x30
add rdi, rdx
xor r8, rdi
rol r8, 1
add rax, rsi
add rax, r8
mov r11, qword [rsp + 0xc0]
xor r11, rax
rol r11, 0x20
add rcx, r11
xor r8, rcx
rol r8, 0x28
add rax, qword [rsp + 0xe0]
add rax, r8
xor r11, rax
rol r11, 0x30
add rcx, r11
mov qword [rsp + 0x58], rcx
xor r8, rcx
rol r8, 1
mov qword [rsp + 0xf0], r8
add r12, qword [rsp + 0x68]
add r12, r9
mov rcx, qword [rsp + 0xc8]
xor rcx, r12
rol rcx, 0x20
add rdi, rcx
xor r9, rdi
rol r9, 0x28
add r12, qword [rsp + 0x60]
add r12, r9
xor rcx, r12
rol rcx, 0x30
add rdi, rcx
mov qword [rsp + 0x50], rdi
xor r9, rdi
rol r9, 1
add rbx, qword [rsp + 0x80]
add rbx, rbp
xor rdx, rbx
rol rdx, 0x20
mov rsi, qword [rsp + 0x40]
add rsi, rdx
xor rbp, rsi
rol rbp, 0x28
add rbx, r10
add rbx, rbp
xor rdx, rbx
rol rdx, 0x30
add rsi, rdx
xor rbp, rsi
rol rbp, 1
add r13, qword [rsp + 0xa0]
add r13, r15
xor r14, r13
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r15, r10
rol r15, 0x28
add r13, qword [rsp + 0x98]
add r13, r15
xor r14, r13
rol r14, 0x30
add r10, r14
xor r15, r10
rol r15, 1
add rax, qword [rsp + 0x78]
add rax, r9
xor r14, rax
rol r14, 0x20
add rsi, r14
xor r9, rsi
rol r9, 0x28
add rax, qword [rsp + 0xb0]
add rax, r9
mov qword [rsp + 0xc8], rax
xor r14, rax
rol r14, 0x30
add rsi, r14
mov qword [rsp + 0x40], rsi
xor r9, rsi
rol r9, 1
add r12, qword [rsp + 0xd8]
add r12, rbp
mov rax, r11
xor rax, r12
rol rax, 0x20
add r10, rax
xor rbp, r10
rol rbp, 0x28
add r12, qword [rsp + 0x70]
add r12, rbp
xor rax, r12
mov r11, r12
rol rax, 0x30
add r10, rax
mov qword [rsp + 0x48], r10
mov r12, rax
xor rbp, r10
rol rbp, 1
mov r10, qword [rsp + 0xd0]
add rbx, r10
add rbx, r15
mov rsi, rcx
xor rsi, rbx
rol rsi, 0x20
mov rax, qword [rsp + 0x58]
add rax, rsi
xor r15, rax
rol r15, 0x28
add rbx, qword [rsp + 0x90]
add rbx, r15
xor rsi, rbx
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x58], rax
xor r15, rax
rol r15, 1
mov rdi, qword [rsp + 0xa8]
add r13, rdi
mov rcx, qword [rsp + 0xf0]
add r13, rcx
xor rdx, r13
rol rdx, 0x20
mov r8, rdx
mov rax, qword [rsp + 0x50]
add rax, rdx
xor rcx, rax
rol rcx, 0x28
add r13, qword [rsp + 0xb8]
add r13, rcx
xor r8, r13
rol r8, 0x30
add rax, r8
mov qword [rsp + 0x50], rax
xor rcx, rax
mov rax, rcx
rol rax, 1
mov rdx, qword [rsp + 0xc8]
add rdx, r10
add rdx, rax
xor r12, rdx
rol r12, 0x20
mov rcx, qword [rsp + 0x58]
add rcx, r12
xor rax, rcx
rol rax, 0x28
add rdx, qword [rsp + 0x60]
add rdx, rax
xor r12, rdx
rol r12, 0x30
add rcx, r12
mov qword [rsp + 0x58], rcx
xor rax, rcx
rol rax, 1
add r11, qword [rsp + 0xb0]
add r11, r9
xor rsi, r11
rol rsi, 0x20
mov rcx, qword [rsp + 0x50]
add rcx, rsi
xor r9, rcx
rol r9, 0x28
add r11, qword [rsp + 0xd8]
add r11, r9
xor rsi, r11
rol rsi, 0x30
add rcx, rsi
mov qword [rsp + 0x50], rcx
xor r9, rcx
rol r9, 1
add rbx, rdi
add rbx, rbp
xor r8, rbx
rol r8, 0x20
mov rcx, qword [rsp + 0x40]
add rcx, r8
xor rbp, rcx
rol rbp, 0x28
add rbx, qword [rsp + 0x70]
add rbx, rbp
xor r8, rbx
rol r8, 0x30
add rcx, r8
xor rbp, rcx
rol rbp, 1
add r13, qword [rsp + 0x88]
add r13, r15
xor r14, r13
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r15, r10
rol r15, 0x28
add r13, qword [rsp + 0xa0]
add r13, r15
xor r14, r13
rol r14, 0x30
add r10, r14
xor r15, r10
rol r15, 1
add rdx, qword [rsp + 0xe0]
add rdx, r9
xor r14, rdx
rol r14, 0x20
add rcx, r14
xor r9, rcx
rol r9, 0x28
add rdx, qword [rsp + 0xe8]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add rcx, r14
mov qword [rsp + 0x40], rcx
xor r9, rcx
rol r9, 1
add r11, qword [rsp + 0xb8]
add r11, rbp
mov rcx, r12
xor rcx, r11
rol rcx, 0x20
add r10, rcx
xor rbp, r10
rol rbp, 0x28
add r11, qword [rsp + 0x98]
add r11, rbp
xor rcx, r11
rol rcx, 0x30
mov qword [rsp + 0xc0], rcx
add r10, rcx
mov qword [rsp + 0x48], r10
xor rbp, r10
rol rbp, 1
mov rdi, qword [rsp + 0x90]
add rbx, rdi
add rbx, r15
mov rcx, rsi
xor rcx, rbx
rol rcx, 0x20
mov r10, qword [rsp + 0x58]
add r10, rcx
xor r15, r10
rol r15, 0x28
mov rsi, qword [rsp + 0x78]
add rbx, rsi
add rbx, r15
xor rcx, rbx
rol rcx, 0x30
add r10, rcx
mov qword [rsp + 0x58], r10
xor r15, r10
rol r15, 1
mov r10, qword [rsp + 0x80]
add r13, r10
add r13, rax
xor r8, r13
rol r8, 0x20
mov r12, qword [rsp + 0x50]
add r12, r8
xor rax, r12
rol rax, 0x28
add r13, qword [rsp + 0x68]
add r13, rax
xor r8, r13
rol r8, 0x30
add r12, r8
mov qword [rsp + 0x50], r12
xor rax, r12
rol rax, 1
add rdx, rdi
add rdx, rax
mov rdi, qword [rsp + 0xc0]
xor rdi, rdx
rol rdi, 0x20
mov r12, qword [rsp + 0x58]
add r12, rdi
xor rax, r12
rol rax, 0x28
add rdx, r10
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add r12, rdi
mov qword [rsp + 0x58], r12
xor rax, r12
rol rax, 1
add r11, qword [rsp + 0xb8]
add r11, r9
xor rcx, r11
rol rcx, 0x20
mov r10, qword [rsp + 0x50]
add r10, rcx
xor r9, r10
rol r9, 0x28
add r11, rsi
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r10, rcx
mov qword [rsp + 0x50], r10
xor r9, r10
rol r9, 1
add rbx, qword [rsp + 0xa0]
add rbx, rbp
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rbp, r10
rol rbp, 0x28
add rbx, qword [rsp + 0xb0]
add rbx, rbp
xor r8, rbx
rol r8, 0x30
add r10, r8
xor rbp, r10
rol rbp, 1
add r13, qword [rsp + 0xd0]
add r13, r15
xor r14, r13
rol r14, 0x20
mov rsi, qword [rsp + 0x48]
add rsi, r14
xor r15, rsi
rol r15, 0x28
add r13, qword [rsp + 0xe8]
add r13, r15
xor r14, r13
rol r14, 0x30
add rsi, r14
xor r15, rsi
rol r15, 1
mov r12, r15
add rdx, qword [rsp + 0x70]
add rdx, r9
xor r14, rdx
rol r14, 0x20
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0x98]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0xa8]
add r11, rbp
xor rdi, r11
rol rdi, 0x20
add rsi, rdi
xor rbp, rsi
rol rbp, 0x28
add r11, qword [rsp + 0xe0]
add r11, rbp
xor rdi, r11
rol rdi, 0x30
add rsi, rdi
mov qword [rsp + 0x48], rsi
xor rbp, rsi
rol rbp, 1
mov rsi, rbp
add rbx, qword [rsp + 0x68]
add rbx, r15
xor rcx, rbx
rol rcx, 0x20
mov r10, qword [rsp + 0x58]
add r10, rcx
xor r12, r10
rol r12, 0x28
mov r15, qword [rsp + 0xd8]
add rbx, r15
add rbx, r12
xor rcx, rbx
rol rcx, 0x30
add r10, rcx
xor r12, r10
mov rbp, r10
rol r12, 1
add r13, qword [rsp + 0x88]
add r13, rax
xor r8, r13
rol r8, 0x20
mov r10, qword [rsp + 0x50]
add r10, r8
xor rax, r10
rol rax, 0x28
add r13, qword [rsp + 0x60]
add r13, rax
xor r8, r13
rol r8, 0x30
add r10, r8
xor rax, r10
rol rax, 1
add rdx, qword [rsp + 0x80]
add rdx, rax
xor rdi, rdx
rol rdi, 0x20
add rbp, rdi
xor rax, rbp
rol rax, 0x28
add rdx, r15
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add rbp, rdi
mov qword [rsp + 0x58], rbp
xor rax, rbp
rol rax, 1
mov r15, rax
add r11, qword [rsp + 0xa8]
add r11, r9
xor rcx, r11
rol rcx, 0x20
add r10, rcx
xor r9, r10
rol r9, 0x28
add r11, qword [rsp + 0x90]
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r10, rcx
mov qword [rsp + 0x50], r10
xor r9, r10
rol r9, 1
add rbx, qword [rsp + 0x70]
add rbx, rsi
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rsi, r10
rol rsi, 0x28
add rbx, qword [rsp + 0x68]
add rbx, rsi
xor r8, rbx
rol r8, 0x30
add r10, r8
xor rsi, r10
mov rbp, r10
rol rsi, 1
mov rax, r13
add rax, qword [rsp + 0xe0]
add rax, r12
xor r14, rax
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r12, r10
rol r12, 0x28
add rax, qword [rsp + 0x88]
add rax, r12
xor r14, rax
rol r14, 0x30
add r10, r14
xor r12, r10
mov r13, r10
rol r12, 1
add rdx, qword [rsp + 0xe8]
add rdx, r9
xor r14, rdx
rol r14, 0x20
mov r10, rbp
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0x78]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0xd0]
add r11, rsi
xor rdi, r11
rol rdi, 0x20
mov r10, r13
add r10, rdi
xor rsi, r10
rol rsi, 0x28
mov rbp, qword [rsp + 0xb0]
add r11, rbp
add r11, rsi
xor rdi, r11
rol rdi, 0x30
add r10, rdi
mov qword [rsp + 0x48], r10
xor rsi, r10
rol rsi, 1
add rbx, qword [rsp + 0x98]
add rbx, r12
xor rcx, rbx
rol rcx, 0x20
mov r10, qword [rsp + 0x58]
add r10, rcx
xor r12, r10
rol r12, 0x28
add rbx, qword [rsp + 0x60]
add rbx, r12
xor rcx, rbx
rol rcx, 0x30
add r10, rcx
xor r12, r10
rol r12, 1
add rax, qword [rsp + 0xb8]
add rax, r15
xor r8, rax
rol r8, 0x20
mov r13, qword [rsp + 0x50]
add r13, r8
xor r15, r13
rol r15, 0x28
add rax, qword [rsp + 0xa0]
add rax, r15
xor r8, rax
rol r8, 0x30
add r13, r8
xor r15, r13
rol r15, 1
add rdx, qword [rsp + 0x70]
add rdx, r15
xor rdi, rdx
rol rdi, 0x20
add r10, rdi
xor r15, r10
rol r15, 0x28
add rdx, rbp
add rdx, r15
xor rdi, rdx
rol rdi, 0x30
add r10, rdi
xor r15, r10
mov rbp, r10
rol r15, 1
add r11, qword [rsp + 0x98]
add r11, r9
xor rcx, r11
rol rcx, 0x20
add r13, rcx
xor r9, r13
rol r9, 0x28
add r11, qword [rsp + 0xe0]
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r13, rcx
mov qword [rsp + 0x50], r13
xor r9, r13
rol r9, 1
add rbx, qword [rsp + 0xd8]
add rbx, rsi
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rsi, r10
rol rsi, 0x28
add rbx, qword [rsp + 0xd0]
add rbx, rsi
xor r8, rbx
rol r8, 0x30
add r10, r8
xor rsi, r10
mov r13, r10
rol rsi, 1
add rax, qword [rsp + 0x60]
add rax, r12
xor r14, rax
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r12, r10
rol r12, 0x28
add rax, qword [rsp + 0xb8]
add rax, r12
xor r14, rax
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x48], r10
xor r12, r10
rol r12, 1
add rdx, qword [rsp + 0x68]
add rdx, r9
xor r14, rdx
rol r14, 0x20
mov r10, r13
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0xa0]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0x90]
add r11, rsi
xor rdi, r11
rol rdi, 0x20
mov r10, qword [rsp + 0x48]
add r10, rdi
xor rsi, r10
rol rsi, 0x28
add r11, qword [rsp + 0xa8]
add r11, rsi
xor rdi, r11
rol rdi, 0x30
add r10, rdi
mov qword [rsp + 0x48], r10
xor rsi, r10
rol rsi, 1
add rbx, qword [rsp + 0x88]
add rbx, r12
xor rcx, rbx
rol rcx, 0x20
add rbp, rcx
xor r12, rbp
rol r12, 0x28
add rbx, qword [rsp + 0xe8]
add rbx, r12
xor rcx, rbx
rol rcx, 0x30
add rbp, rcx
xor r12, rbp
mov r10, rbp
rol r12, 1
mov r13, rax
add r13, qword [rsp + 0x78]
mov rax, r15
add r13, r15
xor r8, r13
rol r8, 0x20
mov r15, qword [rsp + 0x50]
add r15, r8
xor rax, r15
rol rax, 0x28
add r13, qword [rsp + 0x80]
add r13, rax
xor r8, r13
rol r8, 0x30
add r15, r8
xor rax, r15
rol rax, 1
add rdx, qword [rsp + 0xb0]
add rdx, rax
xor rdi, rdx
rol rdi, 0x20
add r10, rdi
xor rax, r10
rol rax, 0x28
add rdx, qword [rsp + 0xa8]
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add r10, rdi
mov qword [rsp + 0x58], r10
xor rax, r10
rol rax, 1
add r11, qword [rsp + 0x78]
add r11, r9
xor rcx, r11
rol rcx, 0x20
add r15, rcx
xor r9, r15
rol r9, 0x28
add r11, qword [rsp + 0x88]
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r15, rcx
mov qword [rsp + 0x50], r15
xor r9, r15
rol r9, 1
add rbx, qword [rsp + 0xe8]
mov rbp, rsi
add rbx, rsi
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rbp, r10
rol rbp, 0x28
add rbx, qword [rsp + 0xa0]
add rbx, rbp
xor r8, rbx
rol r8, 0x30
add r10, r8
xor rbp, r10
mov rsi, r10
rol rbp, 1
add r13, qword [rsp + 0x68]
mov r15, r12
add r13, r12
xor r14, r13
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r15, r10
rol r15, 0x28
add r13, qword [rsp + 0xe0]
add r13, r15
xor r14, r13
rol r14, 0x30
add r10, r14
xor r15, r10
mov r12, r10
rol r15, 1
add rdx, qword [rsp + 0xd8]
add rdx, r9
xor r14, rdx
rol r14, 0x20
mov r10, rsi
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0x90]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0x98]
add r11, rbp
xor rdi, r11
rol rdi, 0x20
mov r10, r12
add r10, rdi
xor rbp, r10
rol rbp, 0x28
add r11, qword [rsp + 0xb8]
add r11, rbp
xor rdi, r11
rol rdi, 0x30
add r10, rdi
mov qword [rsp + 0x48], r10
xor rbp, r10
rol rbp, 1
add rbx, qword [rsp + 0x80]
add rbx, r15
xor rcx, rbx
rol rcx, 0x20
mov rsi, qword [rsp + 0x58]
add rsi, rcx
xor r15, rsi
rol r15, 0x28
add rbx, qword [rsp + 0x70]
add rbx, r15
xor rcx, rbx
rol rcx, 0x30
add rsi, rcx
xor r15, rsi
rol r15, 1
add r13, qword [rsp + 0x60]
add r13, rax
xor r8, r13
rol r8, 0x20
mov r12, qword [rsp + 0x50]
add r12, r8
xor rax, r12
rol rax, 0x28
mov r10, qword [rsp + 0xd0]
add r13, r10
add r13, rax
xor r8, r13
rol r8, 0x30
add r12, r8
xor rax, r12
rol rax, 1
add rdx, qword [rsp + 0xa0]
add rdx, rax
xor rdi, rdx
rol rdi, 0x20
add rsi, rdi
xor rax, rsi
rol rax, 0x28
add rdx, r10
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add rsi, rdi
xor rax, rsi
rol rax, 1
add r11, qword [rsp + 0x90]
add r11, r9
xor rcx, r11
rol rcx, 0x20
add r12, rcx
xor r9, r12
rol r9, 0x28
add r11, qword [rsp + 0xe8]
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r12, rcx
xor r9, r12
rol r9, 1
add rbx, qword [rsp + 0xb0]
add rbx, rbp
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rbp, r10
rol rbp, 0x28
add rbx, qword [rsp + 0x78]
add rbx, rbp
xor r8, rbx
rol r8, 0x30
add r10, r8
mov qword [rsp + 0x40], r10
xor rbp, r10
rol rbp, 1
add r13, qword [rsp + 0xb8]
add r13, r15
xor r14, r13
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r15, r10
rol r15, 0x28
add r13, qword [rsp + 0x80]
add r13, r15
xor r14, r13
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x48], r10
xor r15, r10
rol r15, 1
add rdx, qword [rsp + 0xa8]
add rdx, r9
xor r14, rdx
rol r14, 0x20
mov r10, qword [rsp + 0x40]
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0xd8]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0x88]
add r11, rbp
xor rdi, r11
rol rdi, 0x20
mov r10, qword [rsp + 0x48]
add r10, rdi
xor rbp, r10
rol rbp, 0x28
add r11, qword [rsp + 0x68]
add r11, rbp
xor rdi, r11
rol rdi, 0x30
add r10, rdi
mov qword [rsp + 0x48], r10
xor rbp, r10
rol rbp, 1
add rbx, qword [rsp + 0x60]
add rbx, r15
xor rcx, rbx
rol rcx, 0x20
add rsi, rcx
xor r15, rsi
rol r15, 0x28
mov r10, qword [rsp + 0x98]
add rbx, r10
add rbx, r15
xor rcx, rbx
rol rcx, 0x30
add rsi, rcx
xor r15, rsi
rol r15, 1
add r13, qword [rsp + 0x70]
add r13, rax
xor r8, r13
rol r8, 0x20
add r12, r8
xor rax, r12
rol rax, 0x28
add r13, qword [rsp + 0xe0]
add r13, rax
xor r8, r13
rol r8, 0x30
add r12, r8
xor rax, r12
rol rax, 1
add rdx, r10
add rdx, rax
xor rdi, rdx
rol rdi, 0x20
add rsi, rdi
xor rax, rsi
rol rax, 0x28
add rdx, qword [rsp + 0x88]
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add rsi, rdi
xor rax, rsi
rol rax, 1
add r11, qword [rsp + 0xe8]
add r11, r9
xor rcx, r11
rol rcx, 0x20
add r12, rcx
xor r9, r12
rol r9, 0x28
add r11, qword [rsp + 0x80]
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r12, rcx
xor r9, r12
rol r9, 1
add rbx, qword [rsp + 0xd0]
add rbx, rbp
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rbp, r10
rol rbp, 0x28
add rbx, qword [rsp + 0xb8]
add rbx, rbp
xor r8, rbx
rol r8, 0x30
add r10, r8
mov qword [rsp + 0x40], r10
xor rbp, r10
rol rbp, 1
add r13, qword [rsp + 0xd8]
add r13, r15
xor r14, r13
rol r14, 0x20
mov r10, qword [rsp + 0x48]
add r10, r14
xor r15, r10
rol r15, 0x28
add r13, qword [rsp + 0x60]
add r13, r15
xor r14, r13
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x48], r10
xor r15, r10
rol r15, 1
add rdx, qword [rsp + 0xb0]
add rdx, r9
xor r14, rdx
rol r14, 0x20
mov r10, qword [rsp + 0x40]
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0x70]
add rdx, r9
xor r14, rdx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0xa0]
add r11, rbp
xor rdi, r11
rol rdi, 0x20
mov r10, qword [rsp + 0x48]
add r10, rdi
xor rbp, r10
rol rbp, 0x28
add r11, qword [rsp + 0x90]
add r11, rbp
xor rdi, r11
rol rdi, 0x30
add r10, rdi
mov qword [rsp + 0x48], r10
xor rbp, r10
rol rbp, 1
add rbx, qword [rsp + 0x78]
add rbx, r15
xor rcx, rbx
rol rcx, 0x20
add rsi, rcx
xor r15, rsi
rol r15, 0x28
add rbx, qword [rsp + 0x68]
add rbx, r15
xor rcx, rbx
rol rcx, 0x30
add rsi, rcx
xor r15, rsi
rol r15, 1
mov r10, qword [rsp + 0xe0]
add r13, r10
add r13, rax
xor r8, r13
rol r8, 0x20
add r12, r8
xor rax, r12
rol rax, 0x28
add r13, qword [rsp + 0xa8]
add r13, rax
xor r8, r13
rol r8, 0x30
add r12, r8
xor rax, r12
rol rax, 1
add rdx, r10
add rdx, rax
xor rdi, rdx
rol rdi, 0x20
add rsi, rdi
xor rax, rsi
rol rax, 0x28
add rdx, qword [rsp + 0x70]
add rdx, rax
xor rdi, rdx
rol rdi, 0x30
add rsi, rdi
mov qword [rsp + 0x58], rsi
xor rax, rsi
rol rax, 1
add r11, qword [rsp + 0x60]
add r11, r9
xor rcx, r11
rol rcx, 0x20
add r12, rcx
xor r9, r12
rol r9, 0x28
add r11, qword [rsp + 0x68]
add r11, r9
xor rcx, r11
rol rcx, 0x30
add r12, rcx
xor r9, r12
rol r9, 1
add rbx, qword [rsp + 0x90]
add rbx, rbp
xor r8, rbx
rol r8, 0x20
mov r10, qword [rsp + 0x40]
add r10, r8
xor rbp, r10
rol rbp, 0x28
add rbx, qword [rsp + 0x98]
add rbx, rbp
xor r8, rbx
rol r8, 0x30
add r10, r8
mov qword [rsp + 0x40], r10
xor rbp, r10
rol rbp, 1
add r13, qword [rsp + 0x78]
add r13, r15
xor r14, r13
rol r14, 0x20
mov rsi, qword [rsp + 0x48]
add rsi, r14
xor r15, rsi
rol r15, 0x28
add r13, qword [rsp + 0xa8]
add r13, r15
xor r14, r13
rol r14, 0x30
add rsi, r14
xor r15, rsi
rol r15, 1
add rdx, qword [rsp + 0x88]
add rdx, r9
xor r14, rdx
rol r14, 0x20
mov r10, qword [rsp + 0x40]
add r10, r14
xor r9, r10
rol r9, 0x28
add rdx, qword [rsp + 0xd0]
add rdx, r9
xor r14, rdx
rol r14, 0x30
mov qword [rsp + 0xc0], r14
add r10, r14
mov qword [rsp + 0x40], r10
xor r9, r10
rol r9, 1
add r11, qword [rsp + 0x80]
add r11, rbp
xor rdi, r11
rol rdi, 0x20
add rsi, rdi
xor rbp, rsi
rol rbp, 0x28
add r11, qword [rsp + 0xe8]
add r11, rbp
mov qword [rsp + 0xc8], r11
xor rdi, r11
rol rdi, 0x30
add rsi, rdi
mov qword [rsp + 0x48], rsi
xor rbp, rsi
rol rbp, 1
mov r10, qword [rsp + 0xb8]
add rbx, r10
mov r11, r15
add rbx, r15
xor rcx, rbx
rol rcx, 0x20
mov rsi, qword [rsp + 0x58]
add rsi, rcx
xor r11, rsi
rol r11, 0x28
add rbx, qword [rsp + 0xb0]
add rbx, r11
xor rcx, rbx
rol rcx, 0x30
add rsi, rcx
xor r11, rsi
rol r11, 1
mov qword [rsp + 0x178], r11
add r13, qword [rsp + 0xa0]
add r13, rax
xor r8, r13
rol r8, 0x20
add r12, r8
xor rax, r12
rol rax, 0x28
mov r11, qword [rsp + 0xd8]
add r13, r11
add r13, rax
xor r8, r13
rol r8, 0x30
add r12, r8
mov qword [rsp + 0x50], r12
xor rax, r12
rol rax, 1
mov r12, rdx
add r12, r11
add r12, rax
xor rdi, r12
rol rdi, 0x20
add rsi, rdi
xor rax, rsi
rol rax, 0x28
add r12, qword [rsp + 0x78]
add r12, rax
xor rdi, r12
rol rdi, 0x30
add rsi, rdi
mov qword [rsp + 0x58], rsi
mov r11, rdi
xor rax, rsi
rol rax, 1
mov r14, rax
mov r15, qword [rsp + 0xc8]
add r15, qword [rsp + 0x70]
mov rdx, r9
add r15, r9
xor rcx, r15
rol rcx, 0x20
mov r9, qword [rsp + 0x50]
add r9, rcx
xor rdx, r9
rol rdx, 0x28
add r15, r10
add r15, rdx
xor rcx, r15
rol rcx, 0x30
mov qword [rsp + 0xc8], rcx
add r9, rcx
mov qword [rsp + 0x50], r9
xor rdx, r9
rol rdx, 1
add rbx, qword [rsp + 0x68]
add rbx, rbp
xor r8, rbx
rol r8, 0x20
mov rdi, qword [rsp + 0x40]
add rdi, r8
xor rbp, rdi
rol rbp, 0x28
add rbx, qword [rsp + 0xa8]
add rbx, rbp
mov qword [rsp + 0xf0], rbx
xor r8, rbx
rol r8, 0x30
add rdi, r8
mov rcx, r8
xor rbp, rdi
rol rbp, 1
add r13, qword [rsp + 0x98]
mov rax, qword [rsp + 0x178]
add r13, rax
mov r10, qword [rsp + 0xc0]
xor r10, r13
rol r10, 0x20
mov rsi, qword [rsp + 0x48]
add rsi, r10
xor rax, rsi
rol rax, 0x28
add r13, qword [rsp + 0x90]
add r13, rax
xor r10, r13
rol r10, 0x30
add rsi, r10
add r12, qword [rsp + 0x60]
add r12, rdx
xor r10, r12
rol r10, 0x20
add rdi, r10
mov qword [rsp + 0x40], rdi
xor rdx, rdi
rol rdx, 0x28
add r12, qword [rsp + 0x80]
add r12, rdx
xor r10, r12
mov qword [rsp + 0xc0], r10
mov r10, qword [rsp + 0xe8]
add r13, r10
add r12, r10
xor rax, rsi
mov rdi, qword [rsp + 0xe0]
mov r8, r15
add r8, rdi
mov rbx, rbp
add r8, rbp
mov r9, r11
xor r9, r8
rol r9, 0x20
add rsi, r9
xor rbx, rsi
rol rbx, 0x28
add r8, qword [rsp + 0xd0]
add r8, rbx
mov r15, rbx
xor r9, r8
mov rbx, r8
rol r9, 0x30
mov r8, r14
mov r14, r13
add r14, r8
mov r13, rcx
xor r13, r14
rol r13, 0x20
mov r10, qword [rsp + 0x50]
add r10, r13
xor r8, r10
rol r8, 0x28
add rsi, r9
add r14, qword [rsp + 0x88]
add r14, r8
xor r13, r14
mov rcx, r14
rol r13, 0x30
add r10, r13
mov qword [rsp + 0x50], r10
xor r8, r10
rol r8, 1
mov r11, r12
add r11, r8
xor r9, r11
add r11, rdi
add rbx, qword [rsp + 0x68]
mov rbp, rax
rol rbp, 1
mov r12, qword [rsp + 0xc0]
rol r12, 0x30
mov rax, qword [rsp + 0x40]
add rax, r12
mov qword [rsp + 0x40], rax
xor rdx, rax
rol rdx, 1
mov rax, qword [rsp + 0xf0]
add rax, qword [rsp + 0xb0]
add rax, rbp
mov r14, qword [rsp + 0xc8]
xor r14, rax
rol r14, 0x20
mov rdi, qword [rsp + 0x58]
add rdi, r14
xor rbp, rdi
rol rbp, 0x28
mov r10, qword [rsp + 0xa0]
add rax, r10
add rax, rbp
xor r14, rax
rol r14, 0x30
add rdi, r14
add rbx, rdx
xor r14, rbx
add rbx, qword [rsp + 0x60]
add rax, qword [rsp + 0x80]
xor r15, rsi
rol r15, 1
add rax, r15
xor r13, rax
add rax, qword [rsp + 0x88]
add rcx, r10
xor rbp, rdi
rol rbp, 1
add rcx, rbp
xor r12, rcx
add rcx, qword [rsp + 0x98]
rol r9, 0x20
add rdi, r9
xor r8, rdi
rol r8, 0x28
add r11, r8
xor r9, r11
rol r14, 0x20
mov r10, qword [rsp + 0x50]
add r10, r14
xor rdx, r10
rol rdx, 0x28
add rbx, rdx
xor r14, rbx
rol r14, 0x30
add r10, r14
mov qword [rsp + 0x50], r10
xor rdx, r10
rol rdx, 1
add r11, qword [rsp + 0x78]
rol r12, 0x20
add rsi, r12
xor rbp, rsi
rol rbp, 0x28
add rcx, rbp
xor r12, rcx
rol r12, 0x30
add rsi, r12
add r11, rdx
xor r12, r11
add r11, qword [rsp + 0xb0]
add rbx, qword [rsp + 0xd8]
rol r9, 0x30
rol r13, 0x20
mov r10, qword [rsp + 0x40]
add r10, r13
xor r15, r10
rol r15, 0x28
add rax, r15
xor r13, rax
rol r13, 0x30
add r10, r13
xor r15, r10
rol r15, 1
add rdi, r9
add rbx, r15
xor r9, rbx
add rbx, qword [rsp + 0x70]
add rax, qword [rsp + 0xd0]
xor rbp, rsi
rol rbp, 1
add rax, rbp
xor r14, rax
add rax, qword [rsp + 0x90]
add rcx, qword [rsp + 0xa8]
xor r8, rdi
rol r8, 1
add rcx, r8
xor r13, rcx
add rcx, qword [rsp + 0xb8]
rol r12, 0x20
add r10, r12
xor rdx, r10
rol rdx, 0x28
add r11, rdx
xor r12, r11
rol r14, 0x20
add rdi, r14
xor rbp, rdi
rol rbp, 0x28
add rax, rbp
xor r14, rax
rol r14, 0x30
xor qword [rsp + 0x100], r11
add rdi, r14
xor rbp, rdi
xor qword [rsp + 0x100], rdi
rol r9, 0x20
add rsi, r9
xor r15, rsi
mov r11, rsi
rol r15, 0x28
add rbx, r15
xor r9, rbx
mov rdi, qword [rsp + 0x180]
xor rdi, rbx
rol r13, 0x20
mov rbx, qword [rsp + 0x50]
add rbx, r13
xor r8, rbx
rol r8, 0x28
add rcx, r8
xor r13, rcx
rol r13, 0x30
add rbx, r13
xor r8, rbx
xor rdi, rbx
mov rbx, rdi
rol r12, 0x30
mov rdi, qword [rsp + 0x108]
xor rdi, rax
mov rsi, qword [rsp + 0x190]
add r10, r12
xor rdx, r10
xor rdi, r10
mov qword [rsp + 0x108], rdi
mov rdi, qword [rsp + 0x188]
xor qword [rsp + 0x110], rcx
rol r9, 0x30
add r11, r9
xor r15, r11
xor qword [rsp + 0x110], r11
rol r8, 1
xor rdi, r9
xor rdi, r8
rol rdx, 1
xor rsi, r14
xor rsi, rdx
rol r15, 1
xor qword [rsp + 0xf8], r13
xor qword [rsp + 0xf8], r15
rol rbp, 1
xor qword [rsp + 0x118], r12
xor qword [rsp + 0x118], rbp
mov r15, qword [rsp + 0x118]
mov r9, qword [rsp + 0x140]
cmp qword [rsp + 0x198], r9
mov r8, qword [rsp + 0x148]
mov rcx, qword [rsp + 0x138]
mov r11, qword [rsp + 0x170]
je 0x1400178d4
cmp r8, r9
mov qword [rsp + 0x198], r8
je 0x140015ef0
mov rax, r8
sub rax, 0xffffffffffffff80
je 0x14001792f
cmp rax, qword [rsp + 0x130]
ja 0x14001792f
mov rdx, rax
mov rax, qword [rsp + 0x128]
lea r11, [rax + r8]
mov ecx, pe_nt_image_headers64
mov qword [rsp + 0x40], 0
xor r14d, r14d
mov qword [rsp + 0x148], rdx
jmp 0x140015f14
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x100]
mov qword [rax], rcx
mov qword [rax + 8], rbx
mov rcx, qword [rsp + 0x108]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x110]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rdi
mov qword [rax + 0x28], rsi
mov rcx, qword [rsp + 0xf8]
mov qword [rax + 0x30], rcx
mov qword [rax + 0x38], r15
add rsp, 0x228
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2