Function at 0x583940
Capabilities:
Access peb ldr_data

Disassembly:
lea r12, [rsp - 0x70]
cmp r12, qword [r14 + 0x10]
jbe 0x583e1d
push rbp
mov rbp, rsp
sub rsp, 0xe8
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], rdi
mov qword [rsp + 0x20], 0
movups xmmword [rsp + 0x60], xmm15
call sym.crypto_internal_boring.Unreachable
mov rax, qword [rsp + 0x108]
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0xf8]
test byte [rcx], al
mov rdx, qword [rsp + 0xf8]
test byte [rdx], al
mov rcx, qword [rcx + 0x68]
add rax, rcx
mov qword [rdx + 0x68], rax
mov rax, qword [rsp + 0xf8]
test byte [rax], al
cmp qword [rax + 0x60], 0
jg 0x5839d0
jmp 0x583be2
mov rsi, qword [rsp + 0xf8]
test byte [rsi], al
mov rax, qword [rsi + 0x60]
mov qword [rsp + 0x38], rax
mov rsi, qword [rsp + 0xf8]
test byte [rsi], al
lea rdi, [rsi + 0x20]
test byte [rdi], al
cmp rax, 0x40
jbe 0x5839fe
jmp 0x583e12
lea rdi, [rax - 0x40]
mov r8, rdi
neg rdi
sar r8, 0x3f
and rax, r8
lea rsi, [rsi + rax]
lea rsi, [rsi + 0x20]
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], rdi
mov qword [rsp + 0x98], rdi
mov rsi, qword [rsp + 0x108]
mov rdi, qword [rsp + 0x100]
mov r8, qword [rsp + 0x110]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], rsi
mov qword [rsp + 0x80], r8
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0x58], rdi
nop
cmp rsi, rdi
jl 0x583a87
jmp 0x583a8e
mov qword [rsp + 0x58], rsi
jmp 0x583a90
jmp 0x583a90
mov rsi, qword [rsp + 0x88]
cmp qword [rsp + 0x70], rsi
jne 0x583aa2
nop
jmp 0x583ac2
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x50], rcx
mov rbx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x88]
call sym.runtime.memmove
nop
jmp 0x583ac4
jmp 0x583ac4
mov rsi, qword [rsp + 0x58]
mov qword [rsp + 0x30], rsi
mov rdi, qword [rsp + 0xf8]
test byte [rdi], al
mov r8, qword [rsp + 0xf8]
test byte [r8], al
mov r8, qword [r8 + 0x60]
add rsi, r8
mov qword [rdi + 0x60], rsi
mov rsi, qword [rsp + 0xf8]
test byte [rsi], al
cmp qword [rsi + 0x60], 0x40
je 0x583b05
nop
jmp 0x583b85
mov rax, qword [rsp + 0xf8]
test byte [rax], al
add rax, 0x20
test byte [rax], al
jmp 0x583b17
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 0x40
mov qword [rsp + 0xb0], 0x40
mov rcx, qword [rsp + 0xf8]
mov qword [rsp], rcx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], 0x40
mov qword [rsp + 0x18], 0x40
call sym.crypto_sha256.block.abi0
xorps xmm15, xmm15
mov r14, qword [0x0081bc20]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0xf8]
test byte [rax], al
mov qword [rax + 0x60], 0
jmp 0x583b87
jmp 0x583b87
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x110]
jmp 0x583ba6
cmp rax, rcx
jbe 0x583bb0
jmp 0x583e0d
sub rdi, rax
sub rcx, rax
mov r8, rdi
neg rdi
sar rdi, 0x3f
and rax, rdi
add rsi, rax
mov qword [rsp + 0x100], rsi
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], r8
nop
jmp 0x583be4
jmp 0x583be4
mov rsi, qword [rsp + 0x108]
mov qword [rsp + 0x38], rsi
cmp rsi, 0x40
jge 0x583bfc
jmp 0x583cd5
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x38], rcx
and rcx, 0xffffffffffffffc0
mov qword [rsp + 0x28], rcx
mov rdx, qword [rsp + 0x110]
mov rax, qword [rsp + 0x100]
cmp rdx, rcx
jae 0x583c2c
jmp 0x583e08
jmp 0x583c2e
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xb0], rdx
mov rbx, qword [rsp + 0xf8]
mov qword [rsp], rbx
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rcx
mov qword [rsp + 0x18], rdx
call sym.crypto_sha256.block.abi0
xorps xmm15, xmm15
mov r14, qword [0x0081bc20]
mov r14, qword gs:[r14]
mov r14, qword [r14]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x108]
mov rdx, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x110]
jmp 0x583c97
cmp rcx, rax
jae 0x583ca5
nop dword [rax]
jmp 0x583e03
sub rbx, rax
sub rcx, rax
mov rsi, rbx
neg rbx
sar rbx, 0x3f
and rax, rbx
add rdx, rax
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0x108], rcx
mov qword [rsp + 0x110], rsi
jmp 0x583cd7
jmp 0x583cd7
mov rdx, qword [rsp + 0x108]
mov qword [rsp + 0x38], rdx
test rdx, rdx
jne 0x583cee
jmp 0x583de9
mov rdx, qword [rsp + 0xf8]
test byte [rdx], al
add rdx, 0x20
test byte [rdx], al
nop
jmp 0x583d02
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], 0x40
mov qword [rsp + 0xb0], 0x40
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xd8], 0x40
mov qword [rsp + 0xe0], 0x40
mov rdx, qword [rsp + 0x108]
mov rsi, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x110]
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], rdi
mov rsi, qword [rsp + 0xd8]
mov qword [rsp + 0x48], rsi
nop
cmp rsi, rdx
jg 0x583d87
jmp 0x583d8e
mov qword [rsp + 0x48], rdx
jmp 0x583d90
jmp 0x583d90
mov rdx, qword [rsp + 0xd0]
nop dword [rax + rax]
cmp qword [rsp + 0xb8], rdx
jne 0x583dac
jmp 0x583dcd
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x40], rcx
mov rbx, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xd0]
call sym.runtime.memmove
jmp 0x583dcf
jmp 0x583dcf
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x38], rdx
mov rsi, qword [rsp + 0xf8]
test byte [rsi], al
mov qword [rsi + 0x60], rdx
jmp 0x583deb
jmp 0x583deb
mov rax, qword [rsp + 0x20]
mov rcx, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
add rsp, 0xe8
pop rbp
ret
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceB
mov ecx, 0x40
call sym.runtime.panicSliceB
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
jmp sym.crypto_sha256._digest_.Write