Function at 0x1400071e0
Capabilities:
Hash data using sha256

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x210], 0xfffffffffffffffe
mov rbx, rdx
mov rdi, rcx
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rbp + 0x20], ymm0
vmovups ymmword [rbp], ymm0
vmovaps ymm0, ymmword [0x140030640]
vmovups ymmword [rbp + 0x40], ymm0
mov qword [rbp + 0x60], 0
mov rcx, rbp
mov qword [rbp + 0x200], r8
vzeroupper
call fcn.140007960
mov rsi, qword [rbp + 0x60]
mov qword [rbp + 0x150], rsi
vmovups ymm0, ymmword [rbp]
vmovups ymm1, ymmword [rbp + 0x20]
vmovups ymm2, ymmword [rbp + 0x40]
vmovups ymmword [rbp + 0x130], ymm2
vmovups ymmword [rbp + 0x110], ymm1
vmovups ymmword [rbp + 0xf0], ymm0
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rbp + 0x178], ymm0
vmovups ymmword [rbp + 0x160], ymm0
lea rdx, [0x140031490]
lea rcx, [rbp + 0xf0]
mov r8d, 1
vzeroupper
call fcn.140007960
mov rax, qword [rbp + 0x150]
and eax, 0x3f
cmp rax, 0x38
jbe 0x1400072f7
lea rcx, [rbp + 0xf0]
lea rdx, [rbp + 0x160]
mov r14d, 0x38
mov r8d, 0x38
call fcn.140007960
mov rax, qword [rbp + 0x150]
and eax, 0x3f
sub r14, rax
jae 0x140007300
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 fcn.14002db90
ud2
mov r14d, 0x38
sub r14, rax
lea r15, [rbp + 0xf0]
lea rdx, [rbp + 0x160]
mov rcx, r15
mov r8, r14
call fcn.140007960
shl rsi, 3
movbe qword [rbp + 0x70], rsi
lea rdx, [rbp + 0x70]
mov r8d, 8
mov rcx, r15
call fcn.140007960
vmovdqu ymm0, ymmword [rbp + 0x130]
vpshufb ymm0, ymm0, ymmword [0x140030700]
vmovdqu ymmword [rbp - 0x60], ymm0
vpxor xmm0, xmm0, xmm0
vmovdqu ymmword [rbp + 0x90], ymm0
vmovdqu ymmword [rbp + 0x70], ymm0
vmovaps ymm0, ymmword [0x140030640]
vmovups ymmword [rbp + 0xb0], ymm0
mov qword [rbp + 0xd0], 0
lea rcx, [rbp + 0x70]
lea rdx, [rbp - 0x60]
mov r8d, 0x20
vzeroupper
call fcn.140007960
vmovups ymm0, ymmword [rbp + 0x70]
vmovups ymm1, ymmword [rbp + 0x90]
vmovups ymm2, ymmword [rbp + 0xb0]
vmovups ymmword [rbp + 0x1a0], ymm2
vmovups ymmword [rbp + 0x180], ymm1
vmovups ymmword [rbp + 0x160], ymm0
mov rsi, qword [rbp + 0xd0]
mov qword [rbp + 0x1c0], rsi
vxorps xmm0, xmm0, xmm0
vmovups ymmword [rbp - 0x28], ymm0
vmovups ymmword [rbp - 0x40], ymm0
lea rdx, [0x140031490]
lea rcx, [rbp + 0x160]
mov r8d, 1
vzeroupper
call fcn.140007960
mov rax, qword [rbp + 0x1c0]
and eax, 0x3f
cmp rax, 0x38
mov qword [rbp + 0xe8], rdi
jbe 0x14000744a
lea rcx, [rbp + 0x160]
lea rdx, [rbp - 0x40]
mov r15d, 0x38
mov r8d, 0x38
call fcn.140007960
mov rax, qword [rbp + 0x1c0]
and eax, 0x3f
sub r15, rax
jae 0x140007453
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 fcn.14002db90
ud2
mov r15d, 0x38
sub r15, rax
lea r14, [rbp + 0x160]
lea rdx, [rbp - 0x40]
mov rcx, r14
mov r8, r15
call fcn.140007960
shl rsi, 3
movbe qword [rbp + 0xe0], rsi
lea rdx, [rbp + 0xe0]
mov r8d, 8
mov rcx, r14
call fcn.140007960
vmovdqu ymm0, ymmword [rbp + 0x1a0]
vpshufb ymm0, ymm0, ymmword [0x140030700]
vmovdqu ymmword [rbp + 0x70], ymm0
add qword [rbp + 0x200], rbx
mov qword [rbp + 0xf0], 1
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rbp + 0xf8], xmm0
vxorps xmm1, xmm1, xmm1
vmovups ymmword [rbp + 0x1c4], ymm1
vmovups ymmword [rbp + 0x1b8], ymm1
vmovups ymmword [rbp + 0x198], ymm1
lea r12, [rbp + 0x178]
vmovups ymmword [rbp + 0x178], ymm1
mov qword [rbp + 0x160], 1
lea r13, [rbp + 0x170]
vmovdqu xmmword [rbp + 0x168], xmm0
mov dil, 1
movabs r15, 0x469ee58469ee5847
xor eax, eax
mov qword [rbp + 0x1f8], rax
mov dword [rbp + 0x20c], 0
jmp 0x140007537
mov rbx, qword [rbp + 0x1f0]
test rbx, rbx
je 0x140007550
cmp rbx, qword [rbp + 0x200]
je 0x140007550
lea rax, [rbx + 1]
jmp 0x140007575
mov rax, qword [rbp + 0x1f8]
cmp rax, 4
je 0x140007695
lea rbx, [rax + rbp]
add rbx, 0x70
inc rax
mov qword [rbp + 0x1f8], rax
xor eax, eax
mov qword [rbp + 0x1f0], rax
movzx ebx, byte [rbx]
test rbx, rbx
sete al
and al, dil
movzx edi, dil
mov ecx, 0
cmove edi, ecx
mov rcx, qword [rbp + 0x178]
cmp rcx, 0x65
jae 0x1400078b6
movzx eax, al
add dword [rbp + 0x20c], eax
lea r9, [rbp + 0x180]
add rcx, r9
mov r8, qword [rbp + 0x160]
mov rax, qword [rbp + 0x170]
add rax, r8
jmp 0x1400075fa
lea r10, [r9 + 1]
movzx r11d, byte [r9]
shl r11, 8
add r11, rbx
mov rdx, r11
shr rdx, 1
mulx rbx, rbx, r15
shr rbx, 3
imul edx, ebx, 0x3a
sub r11d, edx
mov byte [r9], r11b
mov r9, r10
test r9, r9
je 0x140007604
cmp r9, rcx
jne 0x1400075d0
test r8, r8
je 0x14000763a
cmp r8, rax
je 0x14000763a
mov r9, r8
inc r8
xor r10d, r10d
jmp 0x1400075d4
mov byte [rbp + rax + 0x180], bl
mov rdx, qword [rbp + 0x178]
mov rax, r12
inc rdx
mov qword [rax], rdx
mov rbx, rsi
test rbx, rbx
je 0x140007530
mov rdx, rbx
shr rdx, 1
mulx rsi, rsi, r15
shr rsi, 3
imul eax, esi, 0x3a
sub ebx, eax
mov rax, qword [rbp + 0x178]
cmp rax, 0x64
jb 0x140007620
mov rdx, qword [rbp + 0x170]
cmp rdx, qword [rbp + 0x168]
jne 0x140007686
mov rcx, r14
vzeroupper
call fcn.1400020e0
mov rdx, qword [rbp + 0x170]
mov rax, qword [rbp + 0x160]
mov byte [rax + rdx], bl
mov rax, r13
jmp 0x140007631
xor esi, esi
lea rdi, [rbp + 0x160]
jmp 0x1400076ba
mov byte [rbp + rax + 0x180], 0
mov rdx, qword [rbp + 0x178]
mov rax, r12
inc esi
inc rdx
mov qword [rax], rdx
cmp esi, dword [rbp + 0x20c]
jge 0x140007701
mov rax, qword [rbp + 0x178]
cmp rax, 0x64
jb 0x1400076a0
mov rdx, qword [rbp + 0x170]
cmp rdx, qword [rbp + 0x168]
jne 0x1400076f1
mov rcx, rdi
vzeroupper
call fcn.1400020e0
mov rdx, qword [rbp + 0x170]
mov rax, qword [rbp + 0x160]
mov byte [rax + rdx], 0
mov rax, r13
jmp 0x1400076b2
mov rdi, qword [rbp + 0x178]
cmp rdi, 0x65
jae 0x1400078cc
lea rax, [rbp + 0x180]
add rdi, rax
mov r15, qword [rbp + 0x160]
mov rsi, qword [rbp + 0x170]
add rsi, r15
lea r14, str.123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyzC:UsersEvgen.cargo_registry_srcindex.crates.io_6f17d22bba15001f_bitcoin_0.31.1_src_base58.rs
lea rbx, [rbp + 0xf0]
test r15, r15
jne 0x140007775
jmp 0x14000782e
mov rdx, qword [rbp + 0x100]
mov rax, qword [rbp + 0xf0]
mov byte [rax + rdx], r12b
inc rdx
mov qword [rbp + 0x100], rdx
test r15, r15
je 0x14000782e
cmp r15, rsi
je 0x14000782e
dec rsi
mov rax, rsi
movzx ecx, byte [rax]
cmp rcx, 0x39
ja 0x1400078a0
movzx r12d, byte [rcx + r14]
test r12b, r12b
js 0x1400077c0
mov rdx, qword [rbp + 0x100]
cmp rdx, qword [rbp + 0xf8]
jne 0x140007757
mov rcx, rbx
vzeroupper
call fcn.1400020e0
jmp 0x140007750
mov rax, qword [rbp + 0xf8]
mov rdx, qword [rbp + 0x100]
sub rax, rdx
cmp rax, 1
ja 0x1400077e9
mov rcx, rbx
vzeroupper
call fcn.14002d990
mov rdx, qword [rbp + 0x100]
movzx eax, r12b
movzx eax, ax
mov ecx, eax
shr ecx, 6
or ecx, 0xc0
and eax, 0x3f
or eax, 0x80
mov r8, qword [rbp + 0xf0]
movzx eax, ax
shl eax, 8
movzx ecx, cx
or ecx, eax
mov word [r8 + rdx], cx
add rdx, 2
mov qword [rbp + 0x100], rdx
test r15, r15
jne 0x140007775
lea rax, [rbp + 0x180]
cmp rax, rdi
je 0x140007848
dec rdi
xor r15d, r15d
mov rax, rdi
jmp 0x140007784
cmp qword [rbp + 0x168], 0
je 0x14000786b
mov r8, qword [rbp + 0x160]
mov rcx, qword [0x14014d228]
xor edx, edx
vzeroupper
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rbp + 0x100]
mov rcx, qword [rbp + 0xe8]
mov qword [rcx + 0x10], rax
vmovups xmm0, xmmword [rbp + 0xf0]
vmovups xmmword [rcx], xmm0
add rsp, 0x298
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
vzeroupper
ret
lea r8, [0x140031448]
mov edx, 0x3a
vzeroupper
call fcn.14002db10
jmp 0x1400078e3
lea r8, [0x140031478]
mov edx, 0x64
vzeroupper
call fcn.14002db90
jmp 0x1400078e3
lea r8, [0x140031460]
mov edx, 0x64
mov rcx, rdi
vzeroupper
call fcn.14002db90
ud2