Function at 0x140007a40
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
mov rbx, rdx
mov rdi, rcx
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0x1e0], ymm0
vmovups ymmword [rsp + 0x1c0], ymm0
vmovaps ymm0, ymmword [0x140061400]
vmovups ymmword [rsp + 0x200], ymm0
mov qword [rsp + 0x220], 0
lea rcx, [rsp + 0x1c0]
mov qword [rsp + 0xc0], r8
vzeroupper
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
mov rsi, qword [rsp + 0x220]
mov qword [rsp + 0x130], rsi
vmovups ymm0, ymmword [rsp + 0x1c0]
vmovups ymm1, ymmword [rsp + 0x1e0]
vmovups ymm2, ymmword [rsp + 0x200]
vmovups ymmword [rsp + 0x110], ymm2
vmovups ymmword [rsp + 0xf0], ymm1
vmovups ymmword [rsp + 0xd0], ymm0
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0x48], ymm0
vmovups ymmword [rsp + 0x30], ymm0
lea rdx, [0x140064038]
lea rcx, [rsp + 0xd0]
mov r8d, 1
vzeroupper
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
mov rax, qword [rsp + 0x130]
and eax, 0x3f
cmp rax, 0x38
jbe 0x140007b6c
lea rcx, [rsp + 0xd0]
lea rdx, [rsp + 0x30]
mov r14d, 0x38
mov r8d, 0x38
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
mov rax, qword [rsp + 0x130]
and eax, 0x3f
sub r14, rax
jae 0x140007b75
lea r8, str.C:UsersEvgen.cargo_registry_srcindex.crates.io_6f17d22bba15001f_bitcoin_hashes_0.13.0_src_sha256.rs
mov edx, 0x38
mov rcx, r14
call dbg.slice_end_index_len_fail
ud2
mov r14d, 0x38
sub r14, rax
lea r15, [rsp + 0xd0]
lea rdx, [rsp + 0x30]
mov rcx, r15
mov r8, r14
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
shl rsi, 3
movbe qword [rsp + 0x150], rsi
lea rdx, [rsp + 0x150]
mov r8d, 8
mov rcx, r15
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
vmovdqu ymm0, ymmword [rsp + 0x110]
vpshufb ymm0, ymm0, ymmword [0x140061420]
vmovdqu ymmword [rsp + 0x268], ymm0
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [rsp + 0x170], ymm0
vmovdqu ymmword [rsp + 0x150], ymm0
vmovaps ymm0, ymmword [0x140061400]
vmovups ymmword [rsp + 0x190], ymm0
mov qword [rsp + 0x1b0], 0
lea rcx, [rsp + 0x150]
lea rdx, [rsp + 0x268]
mov r8d, 0x20
vzeroupper
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
vmovups ymm0, ymmword [rsp + 0x150]
vmovups ymm1, ymmword [rsp + 0x170]
vmovups ymm2, ymmword [rsp + 0x190]
vmovups ymmword [rsp + 0x70], ymm2
vmovups ymmword [rsp + 0x50], ymm1
vmovups ymmword [rsp + 0x30], ymm0
mov rsi, qword [rsp + 0x1b0]
mov qword [rsp + 0x90], rsi
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rsp + 0x248], ymm0
vmovups ymmword [rsp + 0x230], ymm0
lea rdx, [0x140064038]
lea rcx, [rsp + 0x30]
mov r8d, 1
vzeroupper
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
mov rax, qword [rsp + 0x90]
and eax, 0x3f
cmp rax, 0x38
mov qword [rsp + 0x140], rdi
jbe 0x140007ce7
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x230]
mov r15d, 0x38
mov r8d, 0x38
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
mov rax, qword [rsp + 0x90]
and eax, 0x3f
sub r15, rax
jae 0x140007cf0
lea r8, str.C:UsersEvgen.cargo_registry_srcindex.crates.io_6f17d22bba15001f_bitcoin_hashes_0.13.0_src_sha256.rs
mov edx, 0x38
mov rcx, r15
call dbg.slice_end_index_len_fail
ud2
mov r15d, 0x38
sub r15, rax
lea rdi, [rsp + 0x30]
lea rdx, [rsp + 0x230]
mov rcx, rdi
mov r8, r15
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
shl rsi, 3
movbe qword [rsp + 0x148], rsi
lea rdx, [rsp + 0x148]
mov r8d, 8
mov rcx, rdi
call sym.__bitcoin_hashes::sha256::HashEngine_as_bitcoin_hashes::HashEngine_::input::h665d905229a49ba7
vmovdqu ymm0, ymmword [rsp + 0x70]
vpshufb ymm0, ymm0, ymmword [0x140061420]
vmovdqu ymmword [rsp + 0x150], ymm0
mov rbp, rbx
add qword [rsp + 0xc0], rbx
mov qword [rsp + 0xd0], 1
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0xd8], xmm0
vxorps xmm1, xmm1, xmm1
vmovups ymmword [rsp + 0x94], ymm1
vmovups ymmword [rsp + 0x88], ymm1
vmovups ymmword [rsp + 0x68], ymm1
lea r12, [rsp + 0x48]
vmovups ymmword [rsp + 0x48], ymm1
mov qword [rsp + 0x30], 1
lea r13, [rsp + 0x40]
vmovdqu xmmword [rsp + 0x38], xmm0
mov dil, 1
movabs rsi, 0x469ee58469ee5847
xor eax, eax
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0x2c], 0
nop word cs:[rax + rax]
test rbp, rbp
je 0x140007df0
cmp rbp, qword [rsp + 0xc0]
je 0x140007df0
mov rax, rbp
inc rbp
jmp 0x140007e19
mov rcx, qword [rsp + 0xc8]
cmp rcx, 4
je 0x140007f2f
lea rax, [rsp + rcx]
add rax, 0x150
inc rcx
mov qword [rsp + 0xc8], rcx
xor ebp, ebp
movzx r15d, byte [rax]
test r15, r15
sete al
and al, dil
movzx edi, dil
mov ecx, 0
cmove edi, ecx
mov rcx, qword [rsp + 0x48]
cmp rcx, 0x65
jae 0x140008137
movzx eax, al
add dword [rsp + 0x2c], eax
lea r9, [rsp + 0x50]
add rcx, r9
mov r8, qword [rsp + 0x30]
mov rax, qword [rsp + 0x40]
add rax, r8
jmp 0x140007e8b
lea r10, [r9 + 1]
movzx r11d, byte [r9]
shl r11, 8
add r11, r15
mov rdx, r11
shr rdx, 1
mulx r15, r15, rsi
shr r15, 3
imul edx, r15d, 0x3a
sub r11d, edx
mov byte [r9], r11b
mov r9, r10
test r9, r9
je 0x140007e95
cmp r9, rcx
jne 0x140007e60
test r8, r8
je 0x140007eb0
cmp r8, rax
je 0x140007eb0
mov r9, r8
inc r8
xor r10d, r10d
jmp 0x140007e64
test r15, r15
jne 0x140007ee0
jmp 0x140007dd0
mov byte [rsp + rax + 0x50], r14b
mov rdx, qword [rsp + 0x48]
mov rax, r12
inc rdx
mov qword [rax], rdx
cmp r15, 0x3a
mov r15, rbx
jb 0x140007dd0
mov rdx, r15
shr rdx, 1
mulx rbx, rbx, rsi
shr rbx, 3
imul eax, ebx, 0x3a
mov r14d, r15d
sub r14d, eax
mov rax, qword [rsp + 0x48]
cmp rax, 0x64
jb 0x140007ec0
mov rdx, qword [rsp + 0x40]
cmp rdx, qword [rsp + 0x38]
jne 0x140007f21
lea rcx, [rsp + 0x30]
vzeroupper
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h1119258b79c3f89b
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov byte [rax + rdx], r14b
mov rax, r13
jmp 0x140007ecd
mov esi, dword [rsp + 0x2c]
test esi, esi
jle 0x140007f8c
lea rdi, [rsp + 0x30]
jmp 0x140007f57
mov byte [rsp + rax + 0x50], 0
mov rdx, qword [rsp + 0x48]
mov rax, r12
inc rdx
mov qword [rax], rdx
dec esi
je 0x140007f8c
mov rax, qword [rsp + 0x48]
cmp rax, 0x64
jb 0x140007f40
mov rdx, qword [rsp + 0x40]
cmp rdx, qword [rsp + 0x38]
jne 0x140007f7e
mov rcx, rdi
vzeroupper
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h1119258b79c3f89b
mov rdx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x30]
mov byte [rax + rdx], 0
mov rax, r13
jmp 0x140007f4d
mov rdi, qword [rsp + 0x48]
cmp rdi, 0x65
jae 0x14000814d
lea rax, [rsp + 0x50]
add rdi, rax
mov r15, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x40]
add rsi, r15
lea r14, str.123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzC:UsersEvgen.cargo_registry_srcindex.crates.io_6f17d22bba15001f_bitcoin_0.31.1_src_base58.rs
lea rbx, [rsp + 0xd0]
test r15, r15
jne 0x140007ff0
jmp 0x1400080b3
mov rax, qword [rsp + 0xd0]
mov byte [rax + rdx], bpl
inc rdx
mov qword [rsp + 0xe0], rdx
test r15, r15
je 0x1400080b3
cmp r15, rsi
je 0x1400080b3
dec rsi
mov rax, rsi
movzx ecx, byte [rax]
cmp rcx, 0x39
ja 0x140008121
movzx ebp, byte [rcx + r14]
test bpl, bpl
js 0x140008040
mov rdx, qword [rsp + 0xe0]
cmp rdx, qword [rsp + 0xd8]
jne 0x140007fd0
mov rcx, rbx
vzeroupper
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h1119258b79c3f89b
mov rdx, qword [rsp + 0xe0]
jmp 0x140007fd0
mov rax, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
sub rax, rdx
cmp rax, 1
ja 0x14000806c
mov rcx, rbx
vzeroupper
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hfbd8c0513b760195
mov rdx, qword [rsp + 0xe0]
movzx eax, bpl
movzx eax, ax
mov ecx, eax
shr ecx, 6
or ecx, 0xc0
and eax, 0x3f
or eax, 0x80
mov r8, qword [rsp + 0xd0]
movzx eax, ax
shl eax, 8
movzx ecx, cx
or ecx, eax
mov word [r8 + rdx], cx
add rdx, 2
mov qword [rsp + 0xe0], rdx
test r15, r15
jne 0x140007ff0
lea rax, [rsp + 0x50]
cmp rax, rdi
je 0x1400080cb
dec rdi
xor r15d, r15d
mov rax, rdi
jmp 0x140007fff
cmp qword [rsp + 0x38], 0
je 0x1400080e9
mov r8, qword [rsp + 0x30]
mov rcx, qword [0x140181128]
xor edx, edx
vzeroupper
call fcn.1400430bc
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0x140]
mov qword [rcx + 0x10], rax
vmovups xmm0, xmmword [rsp + 0xd0]
vmovups xmmword [rcx], xmm0
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
lea r8, [0x140063ff0]
mov edx, 0x3a
vzeroupper
call dbg.panic_bounds_check
jmp 0x140008164
lea r8, [0x140064020]
mov edx, 0x64
vzeroupper
call dbg.slice_end_index_len_fail
jmp 0x140008164
lea r8, [0x140064008]
mov edx, 0x64
mov rcx, rdi
vzeroupper
call dbg.slice_end_index_len_fail
ud2