Function at 0x1400cce90
Capabilities:
Hash data using sha256

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2000]
mov eax, 0x2100
call fcn.140120c90
sub rsp, rax
mov rax, qword [0x14015e020]
xor rax, rsp
mov qword [rbp + 0x1ff0], rax
mov rax, qword [rdx + 0x28]
mov rsi, r9
sub rax, r8
mov qword [rsp + 0x48], rcx
mov rdi, rdx
mov r15, rcx
cmp rax, qword [rdx + 0x30]
jb 0x1400cda30
mov qword [rdx + 0x30], rax
cmp r8, 2
jb 0x1400cda30
xor r13d, r13d
mov rcx, rdi
call fcn.1400e0b64
test rax, rax
jle 0x1400cda30
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x28]
sub rcx, rdx
je 0x1400cda30
cmp rax, rcx
jg 0x1400cda30
lea rbx, [rdx + rax]
mov rcx, rdi
mov qword [rsp + 0x20], rbx
call fcn.1400e0b64
mov r14, rbx
mov r12, rax
sub r14, qword [rdi + 0x30]
mov qword [rsp + 0x38], r14
js 0x1400cda30
cmp dword [rsi + 4], 1
jne 0x1400cd237
sub rax, 1
je 0x1400cd2db
cmp rax, 1
jne 0x1400cd237
mov rcx, rdi
call fcn.1400e0b64
mov qword [rsp + 0x30], rax
mov r13, rax
test al, 1
je 0x1400cd1e8
mov rcx, rdi
call fcn.1400e0b64
mov rbx, rax
cmp rax, 0x10000
jae 0x1400cd1e3
xor eax, eax
mov r14d, eax
mov r15d, eax
test rbx, rbx
je 0x1400ccfef
cmp rbx, 0x1000
jb 0x1400ccfd3
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x1400cda60
call fcn.1400ebc6c
test rax, rax
je 0x1400cda5a
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1400ccfde
mov rcx, rbx
call fcn.1400ebc6c
mov r14, rax
mov r8, rbx
lea r15, [r14 + rbx]
xor edx, edx
mov rcx, r14
call fcn.1400eced0
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.1400e0bac
xor ebx, ebx
cmp byte [r14], bl
je 0x1400cd1a6
sub r15, r14
movabs r8, 0x7fffffffffffffff
cmp r15, r8
je 0x1400cda72
mov rcx, r15
lea rdx, [r15 + 1]
shr rcx, 1
mov rax, r8
sub rax, rcx
mov qword [rsp + 0x40], rdx
cmp r15, rax
jbe 0x1400cd047
mov rbx, r8
movabs rcx, 0x8000000000000026
jmp 0x1400cd070
lea rax, [r15 + rcx]
mov ebx, 1
cmp rax, rdx
cmovae rbx, rcx
add rbx, r15
cmp rbx, 0x1000
jb 0x1400cd08c
lea rcx, [rbx + 0x27]
cmp rcx, rbx
jbe 0x1400cda66
call fcn.1400ebc6c
test rax, rax
je 0x1400cda6c
lea r13, [rax + 0x27]
and r13, 0xffffffffffffffe0
mov qword [r13 - 8], rax
jmp 0x1400cd09f
xor r13d, r13d
test rbx, rbx
je 0x1400cd09f
mov rcx, rbx
call fcn.1400ebc6c
mov r13, rax
xor eax, eax
mov r8, r15
mov rdx, r14
mov byte [r15 + r13], al
mov rcx, r13
call fcn.1400ed290
cmp r15, 0x1000
jb 0x1400cd0d8
mov rcx, qword [r14 - 8]
add r15, 0x27
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x1400cda6c
mov r14, rcx
mov rdx, r15
mov rcx, r14
call fcn.1400eb9e8
mov rdx, qword [rsp + 0x40]
lea rcx, [rbp - 0x40]
shl rdx, 2
lea r15, [rbx + r13]
mov r14, r13
call fcn.1400c5e9c
mov r8, qword [rbp - 0x38]
mov rcx, r13
mov rdx, qword [rbp - 0x40]
sub r8, rdx
sar r8, 1
call fcn.1400c60e0
mov r9, qword [rbp - 0x40]
lea rcx, [rsi + 0x48]
or rdx, 0xffffffffffffffff
xor eax, eax
inc rdx
cmp word [r9 + rdx*2], ax
jne 0x1400cd120
cmp rdx, qword [rcx + 0x18]
ja 0x1400cd15c
cmp qword [rcx + 0x18], 8
mov r13, rcx
jb 0x1400cd13d
mov r13, qword [rcx]
lea rbx, [rdx + rdx]
mov qword [rcx + 0x10], rdx
mov r8, rbx
mov rdx, r9
mov rcx, r13
call fcn.1400ed290
xor ecx, ecx
mov word [rbx + r13], cx
jmp 0x1400cd161
call fcn.1400ce3ec
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400cd1a1
mov rdx, qword [rbp - 0x30]
mov rax, rcx
sub rdx, rcx
sar rdx, 1
add rdx, rdx
cmp rdx, 0x1000
jb 0x1400cd19c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400cda6c
call fcn.1400eb9e8
mov r13, qword [rsp + 0x30]
test r14, r14
je 0x1400cd1de
sub r15, r14
cmp r15, 0x1000
jb 0x1400cd1d3
mov rcx, qword [r14 - 8]
add r15, 0x27
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x1400cda5a
mov r14, rcx
mov rdx, r15
mov rcx, r14
call fcn.1400eb9e8
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x20]
test r13b, 2
je 0x1400cd234
mov rcx, rdi
call fcn.1400e0b1c
mov r11d, eax
test r13b, 4
je 0x1400cd2c1
test r13b, 8
je 0x1400cd21c
mov rcx, rdi
call fcn.1400e0b1c
mov ecx, eax
shl rcx, 0x20
add rcx, r11
jmp 0x1400cd223
imul rcx, r11, 0x3b9aca00
movabs rax, 0xa1997b0b4c6a0000
add rax, rcx
mov qword [rsi + 0x68], rax
xor r13d, r13d
mov ecx, dword [rsi + 4]
mov r15d, 1
lea eax, [rcx - 2]
cmp eax, r15d
ja 0x1400cd7a3
sub r12, r15
je 0x1400cd874
sub r12, r15
je 0x1400cd84a
sub r12, r15
je 0x1400cd6a1
sub r12, r15
je 0x1400cd627
sub r12, r15
je 0x1400cd428
sub r12, r15
je 0x1400cd34b
cmp r12, r15
jne 0x1400cd7a3
cmp ecx, 3
jne 0x1400cd29f
mov rax, qword [rdi + 0x28]
sub rax, rbx
cmp rax, r15
jne 0x1400cd29f
add r14, r15
lea rbx, [rsi + 0x1028]
cmp r14, qword [rbx + 0x10]
jbe 0x1400cd334
mov rdx, r14
mov rcx, rbx
sub rdx, qword [rbx + 8]
call fcn.1400c598c
jmp 0x1400cd338
mov rcx, rdi
call fcn.1400e0b1c
mov ecx, eax
shl rcx, 0x20
add rcx, r11
imul rax, rcx, 0x64
jmp 0x1400cd230
mov rcx, rdi
mov byte [rsi + 0x1e], 1
call fcn.1400e0b64
mov r11, rax
test al, 1
je 0x1400cd309
mov rcx, rdi
call fcn.1400e0b64
test rax, rax
je 0x1400cd309
mov rdx, qword [r15 + 0x7110]
add rdx, rax
mov qword [rsi + 0x20], rdx
test r11b, 2
je 0x1400cd237
mov rcx, rdi
call fcn.1400e0b64
test rax, rax
je 0x1400cd237
add rax, qword [r15 + 0x7110]
mov qword [rsi + 0x30], rax
jmp 0x1400cd237
mov qword [rbx + 8], r14
mov rdx, qword [rbx]
mov r8, r14
mov rcx, rdi
call fcn.1400e0bac
jmp 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b64
mov ecx, eax
lea r11, [rsi + 0x2118]
shr ecx, 2
mov r14, rax
and cl, r15b
mov byte [rsi + 0x2116], cl
mov ecx, eax
shr ecx, 3
and cl, r15b
lea r15, [rsi + 0x2218]
mov byte [rsi + 0x2117], cl
mov byte [r15], r13b
mov byte [r11], r13b
test al, 1
je 0x1400cd3ba
mov rcx, rdi
call fcn.1400e0b64
mov r12d, 0xff
mov rdx, r11
cmp rax, r12
mov ebx, r12d
mov rcx, rdi
cmovb rbx, rax
mov r8, rbx
call fcn.1400e0bac
mov byte [rsi + rbx + 0x2118], r13b
jmp 0x1400cd3c0
mov r12d, 0xff
test r14b, 2
je 0x1400cd3ee
mov rcx, rdi
call fcn.1400e0b64
cmp rax, r12
mov rbx, r12
mov rdx, r15
mov rcx, rdi
cmovb rbx, rax
mov r8, rbx
call fcn.1400e0bac
mov byte [rsi + rbx + 0x2218], r13b
cmp byte [rsi + 0x2116], r13b
je 0x1400cd405
mov rcx, rdi
call fcn.1400e0b64
mov dword [rsi + 0x2318], eax
cmp byte [rsi + 0x2117], r13b
je 0x1400cd41c
mov rcx, rdi
call fcn.1400e0b64
mov dword [rsi + 0x231c], eax
mov byte [rsi + 0x2115], 1
jmp 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b64
mov rcx, rdi
mov dword [rsi + 0x1110], eax
call fcn.1400e0b64
and al, r15b
mov rcx, rdi
mov byte [rsi + 0x2114], al
call fcn.1400e0b64
mov byte [rbp - 0x10], r13b
mov rbx, rax
cmp rax, 0x1fff
jae 0x1400cd472
mov r8, rax
lea rdx, [rbp - 0x10]
mov rcx, rdi
call fcn.1400e0bac
mov byte [rbp + rbx - 0x10], r13b
mov rcx, r13
movzx edx, byte [rbp + rcx - 0x10]
test dl, dl
je 0x1400cd49d
cmp dl, 0x2f
mov eax, edx
mov r8d, 0x5c
cmove eax, r8d
mov byte [rbp + rcx - 0x10], al
add rcx, r15
cmp rcx, 0x1fff
jb 0x1400cd475
mov byte [rbp + rcx - 0x10], r13b
lea r9, [rsi + 0x1114]
mov al, byte [rbp - 0x10]
lea r8, [rbp - 0x10]
mov r10d, 0x7ff
jmp 0x1400cd616
movzx edx, al
add r8, r15
mov ecx, 0x80
cmp edx, ecx
jb 0x1400cd5c1
mov eax, edx
lea r11d, [rcx + 0x40]
and eax, 0xffffffe0
cmp eax, r11d
jne 0x1400cd505
mov al, byte [r8]
and al, r11b
cmp al, cl
jne 0x1400cd61e
movsx ecx, byte [r8]
and edx, 0x1f
mov eax, edx
and ecx, 0x3f
shl eax, 6
mov edx, ecx
or edx, eax
add r8, r15
jmp 0x1400cd5c1
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0xe0
jne 0x1400cd554
mov al, byte [r8]
and al, r11b
cmp al, cl
jne 0x1400cd61e
mov al, byte [r8 + 1]
and al, r11b
cmp al, cl
jne 0x1400cd61e
movsx ecx, byte [r8]
and edx, 0xf
movsx eax, byte [r8 + 1]
and ecx, 0x3f
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, edx
shl eax, 0xc
mov edx, ecx
or edx, eax
add r8, 2
jmp 0x1400cd5c1
mov eax, edx
and eax, 0xfffffff8
cmp eax, 0xf0
jne 0x1400cd61e
mov al, byte [r8]
and al, r11b
cmp al, cl
jne 0x1400cd61e
mov al, byte [r8 + 1]
and al, r11b
cmp al, cl
jne 0x1400cd61e
mov al, byte [r8 + 2]
and al, r11b
cmp al, cl
jne 0x1400cd61e
movsx ecx, byte [r8]
and edx, 7
movsx eax, byte [r8 + 1]
and ecx, 0x3f
and eax, 0x3f
shl ecx, 6
or ecx, eax
movsx eax, byte [r8 + 2]
and eax, 0x3f
shl ecx, 6
or ecx, eax
mov eax, edx
shl eax, 0x12
mov edx, ecx
or edx, eax
add r8, 3
sub r10d, r15d
js 0x1400cd61e
cmp edx, 0xffff
jbe 0x1400cd60b
sub r10d, r15d
js 0x1400cd61e
cmp edx, 0x10ffff
ja 0x1400cd613
lea eax, [rdx - 0x10000]
mov ecx, 0x2800
shr eax, 0xa
sub ax, cx
mov word [r9], ax
mov eax, 0x3ff
and dx, ax
mov eax, 0x2400
sub dx, ax
mov word [r9 + 2], dx
add r9, 4
jmp 0x1400cd613
mov word [r9], dx
add r9, 2
mov al, byte [r8]
test al, al
jne 0x1400cd4bb
mov word [r9], r13w
jmp 0x1400cd7a3
cmp r14, r15
jl 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b64
mov rcx, rdi
call fcn.1400e0b64
test eax, eax
je 0x1400cd7a3
mov r9d, eax
mov byte [rsi + 0x10fb], r15b
lea r8, [0x140149868]
mov edx, 0x14
lea rcx, [rbp - 0x40]
call fcn.1400c8b0c
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2 + 0x28], r13w
jne 0x1400cd66b
cmp rax, 0x800
jae 0x1400cd7a3
mov r8d, 0x800
lea rdx, [rbp - 0x40]
sub r8, rax
add rax, 0x14
lea rcx, [rsi + rax*2]
call fcn.1400c8ae0
jmp 0x1400cd7a3
cmp r14, 5
jl 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b64
mov bl, al
mov r13b, al
and bl, r15b
mov r14, rax
and r13b, 2
je 0x1400cd705
mov rcx, rdi
call fcn.1400e0b1c
mov r11d, eax
test bl, bl
je 0x1400cd6e9
imul rax, r11, 0x3b9aca00
movabs rcx, 0x5e6684f4b3960000
sub rax, rcx
jmp 0x1400cd6fe
mov rcx, rdi
call fcn.1400e0b1c
mov ecx, eax
shl rcx, 0x20
add rcx, r11
imul rax, rcx, 0x64
mov qword [rsi + 0x1048], rax
mov r12b, r14b
and r12b, 4
je 0x1400cd74f
mov rcx, rdi
call fcn.1400e0b1c
mov r11d, eax
test bl, bl
je 0x1400cd733
imul rax, r11, 0x3b9aca00
movabs rcx, 0x5e6684f4b3960000
sub rax, rcx
jmp 0x1400cd748
mov rcx, rdi
call fcn.1400e0b1c
mov ecx, eax
shl rcx, 0x20
add rcx, r11
imul rax, rcx, 0x64
mov qword [rsi + 0x1050], rax
mov r15b, r14b
and r15b, 8
je 0x1400cd7c7
mov rcx, rdi
call fcn.1400e0b1c
mov r11d, eax
test bl, bl
je 0x1400cd784
imul rax, r11, 0x3b9aca00
movabs rcx, 0x5e6684f4b3960000
sub rax, rcx
mov qword [rsi + 0x1058], rax
jmp 0x1400cd7cb
mov rcx, rdi
call fcn.1400e0b1c
mov ecx, eax
shl rcx, 0x20
add rcx, r11
imul rax, rcx, 0x64
mov qword [rsi + 0x1058], rax
xor r13d, r13d
mov rcx, qword [rsp + 0x20]
mov qword [rdi + 0x30], rcx
mov rax, qword [rdi + 0x28]
sub rax, rcx
cmp rax, 2
jb 0x1400cda30
mov r15, qword [rsp + 0x48]
jmp 0x1400ccef6
test bl, bl
je 0x1400cd7a0
test r14b, 0x10
je 0x1400cd7a0
test r13b, r13b
je 0x1400cd7f9
mov rcx, rdi
call fcn.1400e0b1c
mov r11d, 0x3fffffff
mov ebx, 0x3b9aca00
and eax, r11d
cmp eax, ebx
jae 0x1400cd804
add qword [rsi + 0x1048], rax
jmp 0x1400cd804
mov ebx, 0x3b9aca00
mov r11d, 0x3fffffff
xor r13d, r13d
test r12b, r12b
je 0x1400cd822
mov rcx, rdi
call fcn.1400e0b1c
and eax, r11d
cmp eax, ebx
jae 0x1400cd822
add qword [rsi + 0x1050], rax
test r15b, r15b
je 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b1c
and eax, r11d
cmp eax, ebx
jae 0x1400cd7a3
add qword [rsi + 0x1058], rax
jmp 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b64
test eax, eax
jne 0x1400cd7a3
mov dword [rsi + 0x1078], 3
lea rdx, [rsi + 0x107c]
lea r8d, [rax + 0x20]
jmp 0x1400cd33e
mov rcx, rdi
call fcn.1400e0b64
test eax, eax
je 0x1400cd8b4
mov r9d, eax
lea r8, [0x140149880]
mov edx, 0x14
lea rcx, [rbp - 0x40]
call fcn.1400c8b0c
cmp dword [0x140162f60], r13d
jne 0x1400cd8a8
mov dword [0x140162f60], r15d
add dword [0x140162f64], r15d
jmp 0x1400cd7a3
mov rcx, rdi
call fcn.1400e0b64
mov cl, al
shr eax, 1
and cl, r15b
and al, r15b
mov byte [rsi + 0x10d2], al
mov byte [rsi + 0x10c9], cl
mov rcx, qword [rdi + 0x30]
cmp rcx, qword [rdi + 0x28]
jae 0x1400cd8ec
lea rax, [rcx + 1]
mov qword [rdi + 0x30], rax
mov rax, qword [rdi]
mov dl, byte [rcx + rax]
jmp 0x1400cd8ef
mov dl, r13b
movzx r9d, dl
mov dword [rsi + 0x10f4], r9d
cmp r9d, 0x18
jbe 0x1400cd92c
lea r8, str.xc_u
mov edx, 0x14
lea rcx, [rbp - 0x40]
call fcn.1400c8b0c
cmp dword [0x140162f60], r13d
jne 0x1400cd925
mov dword [0x140162f60], r15d
add dword [0x140162f64], r15d
mov ebx, 0x10
lea rdx, [rsi + 0x10a9]
mov r8d, ebx
mov rcx, rdi
call fcn.1400e0bac
lea rdx, [rsi + 0x10b9]
mov r8d, ebx
mov rcx, rdi
call fcn.1400e0bac
cmp byte [rsi + 0x10c9], r13b
je 0x1400cda13
lea rbx, [rsi + 0x10ca]
mov r14d, 8
mov r8d, r14d
mov rdx, rbx
mov rcx, rdi
call fcn.1400e0bac
lea r8d, [r14 - 4]
mov rcx, rdi
lea rdx, [rsp + 0x28]
call fcn.1400e0bac
mov r8d, r14d
mov dword [rsp + 0x50], 0x6a09e667
mov rdx, rbx
mov dword [rsp + 0x54], 0xbb67ae85
lea rcx, [rsp + 0x50]
mov dword [rsp + 0x58], 0x3c6ef372
mov dword [rsp + 0x5c], 0xa54ff53a
mov dword [rsp + 0x60], 0x510e527f
mov dword [rsp + 0x64], 0x9b05688c
mov dword [rsp + 0x68], 0x1f83d9ab
mov dword [rsp + 0x6c], 0x5be0cd19
mov qword [rsp + 0x70], r13
call fcn.1400e0840
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x50]
call fcn.1400e08d0
mov eax, dword [rsp + 0x28]
cmp eax, dword [rbp - 0x40]
sete al
cmp dword [rsi + 4], 3
mov byte [rsi + 0x10c9], al
jne 0x1400cda13
cmp qword [rbx], r13
jne 0x1400cda13
mov byte [rsi + 0x10c9], r13b
mov byte [rsi + 0x10a8], r15b
mov dword [rsi + 0x10a4], 5
mov byte [rsi + 0x10a3], r15b
jmp 0x1400cd7a3
mov rcx, qword [rbp + 0x1ff0]
xor rcx, rsp
call fcn.1400eb9c0
mov rbx, qword [rsp + 0x2140]
add rsp, 0x2100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1400fff74
int3
call fcn.1400c5ad0
int3
call fcn.1400c5ad0
int3
call fcn.1400fff74
int3
call fcn.1400c5fd8
int3