Function at 0x1400d8c24
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 - 0x2010]
mov eax, 0x2110
call fcn.1401282a0
sub rsp, rax
mov rax, qword [0x14016a040]
xor rax, rsp
mov qword [rbp + 0x2000], rax
mov rax, qword [rdx + 0x28]
mov rsi, r9
sub rax, r8
mov qword [rsp + 0x50], rcx
mov rdi, rdx
mov r15, rcx
cmp rax, qword [rdx + 0x30]
jb 0x1400d9777
mov qword [rdx + 0x30], rax
cmp r8, 2
jb 0x1400d9777
xor r13d, r13d
mov rcx, rdi
call fcn.1400ec72c
test rax, rax
jle 0x1400d9777
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdi + 0x28]
sub rcx, rdx
je 0x1400d9777
cmp rax, rcx
jg 0x1400d9777
lea rbx, [rdx + rax]
mov rcx, rdi
mov qword [rsp + 0x20], rbx
call fcn.1400ec72c
mov r14, rbx
mov r12, rax
sub r14, qword [rdi + 0x30]
mov qword [rsp + 0x38], r14
js 0x1400d9777
cmp dword [rsi + 4], 1
jne 0x1400d8f7f
sub rax, 1
je 0x1400d9023
cmp rax, 1
jne 0x1400d8f7f
mov rcx, rdi
call fcn.1400ec72c
mov qword [rsp + 0x30], rax
mov r13, rax
test al, 1
je 0x1400d8f30
mov rcx, rdi
call fcn.1400ec72c
mov rbx, rax
cmp rax, 0x10000
jae 0x1400d8f2b
xor eax, eax
mov r14d, eax
mov r15d, eax
test rbx, rbx
je 0x1400d8d61
mov rcx, rbx
cmp rbx, 0x1000
jb 0x1400d8d48
call fcn.1400d1bd0
jmp 0x1400d8d4d
call fcn.1400f44e0
mov r8, rbx
lea r15, [rax + rbx]
xor edx, edx
mov rcx, rax
mov r14, rax
call fcn.14012a960
mov r8, rbx
mov rdx, r14
mov rcx, rdi
call fcn.1400ec774
xor eax, eax
cmp byte [r14], al
je 0x1400d8eee
sub r15, r14
movabs r8, 0x7fffffffffffffff
cmp r15, r8
je 0x1400d97ad
mov rcx, r15
lea rdx, [r15 + 1]
shr rcx, 1
mov rax, r8
sub rax, rcx
mov qword [rsp + 0x48], rdx
cmp r15, rax
jbe 0x1400d8daf
mov rbx, r8
jmp 0x1400d8dd2
lea rax, [rcx + r15]
mov ebx, 1
cmp rax, rdx
cmovae rbx, rcx
add rbx, r15
jne 0x1400d8dc9
xor r13d, r13d
jmp 0x1400d8de7
cmp rbx, 0x1000
jb 0x1400d8ddc
mov rcx, rbx
call fcn.1400d1bd0
jmp 0x1400d8de4
mov rcx, rbx
call fcn.1400f44e0
mov r13, rax
xor eax, eax
mov r8, r15
mov rdx, r14
mov byte [r15 + r13], al
mov rcx, r13
call fcn.14012ad20
cmp r15, 0x1000
jb 0x1400d8e20
mov rcx, qword [r14 - 8]
add r15, 0x27
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x1400d97a7
mov r14, rcx
mov rdx, r15
mov rcx, r14
call fcn.1400f451c
mov rdx, qword [rsp + 0x48]
lea rcx, [rbp - 0x30]
shl rdx, 2
lea r15, [rbx + r13]
mov r14, r13
call fcn.1400d1aac
mov r8, qword [rbp - 0x28]
mov rcx, r13
mov rdx, qword [rbp - 0x30]
sub r8, rdx
sar r8, 1
call fcn.1400d1d00
mov r9, qword [rbp - 0x30]
lea rcx, [rsi + 0x48]
or rdx, 0xffffffffffffffff
xor eax, eax
inc rdx
cmp word [r9 + rdx*2], ax
jne 0x1400d8e68
cmp rdx, qword [rcx + 0x18]
ja 0x1400d8ea4
cmp qword [rcx + 0x18], 7
mov r13, rcx
jbe 0x1400d8e85
mov r13, qword [rcx]
lea rbx, [rdx + rdx]
mov qword [rcx + 0x10], rdx
mov r8, rbx
mov rdx, r9
mov rcx, r13
call fcn.14012ad20
xor ecx, ecx
mov word [rbx + r13], cx
jmp 0x1400d8ea9
call fcn.1400da138
mov rcx, qword [rbp - 0x30]
test rcx, rcx
je 0x1400d8ee9
mov rdx, qword [rbp - 0x20]
mov rax, rcx
sub rdx, rcx
sar rdx, 1
add rdx, rdx
cmp rdx, 0x1000
jb 0x1400d8ee4
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d97a7
call fcn.1400f451c
mov r13, qword [rsp + 0x30]
test r14, r14
je 0x1400d8f26
sub r15, r14
cmp r15, 0x1000
jb 0x1400d8f1b
mov rcx, qword [r14 - 8]
add r15, 0x27
sub r14, rcx
lea rax, [r14 - 8]
cmp rax, 0x1f
ja 0x1400d97a1
mov r14, rcx
mov rdx, r15
mov rcx, r14
call fcn.1400f451c
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x20]
test r13b, 2
je 0x1400d8f7c
mov rcx, rdi
call fcn.1400ec6e4
mov r11d, eax
test r13b, 4
je 0x1400d9009
test r13b, 8
je 0x1400d8f64
mov rcx, rdi
call fcn.1400ec6e4
mov ecx, eax
shl rcx, 0x20
add rcx, r11
jmp 0x1400d8f6b
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 0x1400d94eb
sub r12, r15
je 0x1400d95bc
sub r12, r15
je 0x1400d9592
sub r12, r15
je 0x1400d93e9
sub r12, r15
je 0x1400d936f
sub r12, r15
je 0x1400d9170
sub r12, r15
je 0x1400d9093
cmp r12, r15
jne 0x1400d94eb
cmp ecx, 3
jne 0x1400d8fe7
mov rax, qword [rdi + 0x28]
sub rax, rbx
cmp rax, r15
jne 0x1400d8fe7
add r14, r15
lea rbx, [rsi + 0x1028]
cmp r14, qword [rbx + 0x10]
jbe 0x1400d907c
mov rdx, r14
mov rcx, rbx
sub rdx, qword [rbx + 8]
call fcn.1400d159c
jmp 0x1400d9080
mov rcx, rdi
call fcn.1400ec6e4
mov ecx, eax
shl rcx, 0x20
add rcx, r11
imul rax, rcx, 0x64
jmp 0x1400d8f78
mov rcx, rdi
mov byte [rsi + 0x1e], 1
call fcn.1400ec72c
mov r11, rax
test al, 1
je 0x1400d9051
mov rcx, rdi
call fcn.1400ec72c
test rax, rax
je 0x1400d9051
mov rdx, qword [r15 + 0x7110]
add rdx, rax
mov qword [rsi + 0x20], rdx
test r11b, 2
je 0x1400d8f7f
mov rcx, rdi
call fcn.1400ec72c
test rax, rax
je 0x1400d8f7f
add rax, qword [r15 + 0x7110]
mov qword [rsi + 0x30], rax
jmp 0x1400d8f7f
mov qword [rbx + 8], r14
mov rdx, qword [rbx]
mov r8, r14
mov rcx, rdi
call fcn.1400ec774
jmp 0x1400d94eb
mov rcx, rdi
call fcn.1400ec72c
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 0x1400d9102
mov rcx, rdi
call fcn.1400ec72c
mov r12d, 0xff
mov rdx, r11
cmp rax, r12
mov ebx, r12d
mov rcx, rdi
cmovb rbx, rax
mov r8, rbx
call fcn.1400ec774
mov byte [rsi + rbx + 0x2118], r13b
jmp 0x1400d9108
mov r12d, 0xff
test r14b, 2
je 0x1400d9136
mov rcx, rdi
call fcn.1400ec72c
cmp rax, r12
mov rbx, r12
mov rdx, r15
mov rcx, rdi
cmovb rbx, rax
mov r8, rbx
call fcn.1400ec774
mov byte [rsi + rbx + 0x2218], r13b
cmp byte [rsi + 0x2116], r13b
je 0x1400d914d
mov rcx, rdi
call fcn.1400ec72c
mov dword [rsi + 0x2318], eax
cmp byte [rsi + 0x2117], r13b
je 0x1400d9164
mov rcx, rdi
call fcn.1400ec72c
mov dword [rsi + 0x231c], eax
mov byte [rsi + 0x2115], 1
jmp 0x1400d94eb
mov rcx, rdi
call fcn.1400ec72c
mov rcx, rdi
mov dword [rsi + 0x1110], eax
call fcn.1400ec72c
and al, r15b
mov rcx, rdi
mov byte [rsi + 0x2114], al
call fcn.1400ec72c
mov byte [rbp], r13b
mov rbx, rax
cmp rax, 0x1fff
jae 0x1400d91ba
mov r8, rax
lea rdx, [rbp]
mov rcx, rdi
call fcn.1400ec774
mov byte [rbp + rbx], r13b
mov rcx, r13
movzx edx, byte [rbp + rcx]
test dl, dl
je 0x1400d91e5
cmp dl, 0x2f
mov eax, edx
mov r8d, 0x5c
cmove eax, r8d
mov byte [rbp + rcx], al
add rcx, r15
cmp rcx, 0x1fff
jb 0x1400d91bd
mov byte [rbp + rcx], r13b
lea r9, [rsi + 0x1114]
mov al, byte [rbp]
lea r8, [rbp]
mov r10d, 0x7ff
jmp 0x1400d935e
movzx edx, al
add r8, r15
mov ecx, 0x80
cmp edx, ecx
jb 0x1400d9309
mov eax, edx
lea r11d, [rcx + 0x40]
and eax, 0xffffffe0
cmp eax, r11d
jne 0x1400d924d
mov al, byte [r8]
and al, r11b
cmp al, cl
jne 0x1400d9366
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 0x1400d9309
mov eax, edx
and eax, 0xfffffff0
cmp eax, 0xe0
jne 0x1400d929c
mov al, byte [r8]
and al, r11b
cmp al, cl
jne 0x1400d9366
mov al, byte [r8 + 1]
and al, r11b
cmp al, cl
jne 0x1400d9366
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 0x1400d9309
mov eax, edx
and eax, 0xfffffff8
cmp eax, 0xf0
jne 0x1400d9366
mov al, byte [r8]
and al, r11b
cmp al, cl
jne 0x1400d9366
mov al, byte [r8 + 1]
and al, r11b
cmp al, cl
jne 0x1400d9366
mov al, byte [r8 + 2]
and al, r11b
cmp al, cl
jne 0x1400d9366
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 0x1400d9366
cmp edx, 0xffff
jbe 0x1400d9353
sub r10d, r15d
js 0x1400d9366
cmp edx, 0x10ffff
ja 0x1400d935b
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 0x1400d935b
mov word [r9], dx
add r9, 2
mov al, byte [r8]
test al, al
jne 0x1400d9203
mov word [r9], r13w
jmp 0x1400d94eb
cmp r14, r15
jl 0x1400d94eb
mov rcx, rdi
call fcn.1400ec72c
mov rcx, rdi
call fcn.1400ec72c
test eax, eax
je 0x1400d94eb
mov r9d, eax
mov byte [rsi + 0x10fb], r15b
lea r8, [0x1401562a0]
mov edx, 0x14
lea rcx, [rbp - 0x30]
call fcn.1400d473c
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2 + 0x28], r13w
jne 0x1400d93b3
cmp rax, 0x800
jae 0x1400d94eb
mov r8d, 0x800
lea rdx, [rbp - 0x30]
sub r8, rax
add rax, 0x14
lea rcx, [rsi + rax*2]
call fcn.1400d4710
jmp 0x1400d94eb
cmp r14, 5
jl 0x1400d94eb
mov rcx, rdi
call fcn.1400ec72c
mov bl, al
mov r13b, al
and bl, r15b
mov r14, rax
and r13b, 2
je 0x1400d944d
mov rcx, rdi
call fcn.1400ec6e4
mov r11d, eax
test bl, bl
je 0x1400d9431
imul rax, r11, 0x3b9aca00
movabs rcx, 0x5e6684f4b3960000
sub rax, rcx
jmp 0x1400d9446
mov rcx, rdi
call fcn.1400ec6e4
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 0x1400d9497
mov rcx, rdi
call fcn.1400ec6e4
mov r11d, eax
test bl, bl
je 0x1400d947b
imul rax, r11, 0x3b9aca00
movabs rcx, 0x5e6684f4b3960000
sub rax, rcx
jmp 0x1400d9490
mov rcx, rdi
call fcn.1400ec6e4
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 0x1400d950f
mov rcx, rdi
call fcn.1400ec6e4
mov r11d, eax
test bl, bl
je 0x1400d94cc
imul rax, r11, 0x3b9aca00
movabs rcx, 0x5e6684f4b3960000
sub rax, rcx
mov qword [rsi + 0x1058], rax
jmp 0x1400d9513
mov rcx, rdi
call fcn.1400ec6e4
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 0x1400d9777
mov r15, qword [rsp + 0x50]
jmp 0x1400d8c8a
test bl, bl
je 0x1400d94e8
test r14b, 0x10
je 0x1400d94e8
test r13b, r13b
je 0x1400d9541
mov rcx, rdi
call fcn.1400ec6e4
mov r11d, 0x3fffffff
mov ebx, 0x3b9aca00
and eax, r11d
cmp eax, ebx
jae 0x1400d954c
add qword [rsi + 0x1048], rax
jmp 0x1400d954c
mov ebx, 0x3b9aca00
mov r11d, 0x3fffffff
xor r13d, r13d
test r12b, r12b
je 0x1400d956a
mov rcx, rdi
call fcn.1400ec6e4
and eax, r11d
cmp eax, ebx
jae 0x1400d956a
add qword [rsi + 0x1050], rax
test r15b, r15b
je 0x1400d94eb
mov rcx, rdi
call fcn.1400ec6e4
and eax, r11d
cmp eax, ebx
jae 0x1400d94eb
add qword [rsi + 0x1058], rax
jmp 0x1400d94eb
mov rcx, rdi
call fcn.1400ec72c
test eax, eax
jne 0x1400d94eb
mov dword [rsi + 0x1078], 3
lea rdx, [rsi + 0x107c]
lea r8d, [rax + 0x20]
jmp 0x1400d9086
mov rcx, rdi
call fcn.1400ec72c
test eax, eax
je 0x1400d95fc
mov r9d, eax
lea r8, [0x140156280]
mov edx, 0x14
lea rcx, [rbp - 0x30]
call fcn.1400d473c
cmp dword [0x14016f7e8], r13d
jne 0x1400d95f0
mov dword [0x14016f7e8], r15d
add dword [0x14016f7ec], r15d
jmp 0x1400d94eb
mov rcx, rdi
call fcn.1400ec72c
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 0x1400d9634
lea rax, [rcx + 1]
mov qword [rdi + 0x30], rax
mov rax, qword [rdi]
mov dl, byte [rcx + rax]
jmp 0x1400d9637
mov dl, r13b
movzx r9d, dl
mov dword [rsi + 0x10f4], r9d
cmp r9d, 0x18
jbe 0x1400d9674
lea r8, str.xc_u
mov edx, 0x14
lea rcx, [rbp - 0x30]
call fcn.1400d473c
cmp dword [0x14016f7e8], r13d
jne 0x1400d966d
mov dword [0x14016f7e8], r15d
add dword [0x14016f7ec], r15d
mov ebx, 0x10
lea rdx, [rsi + 0x10a9]
mov r8d, ebx
mov rcx, rdi
call fcn.1400ec774
lea rdx, [rsi + 0x10b9]
mov r8d, ebx
mov rcx, rdi
call fcn.1400ec774
cmp byte [rsi + 0x10c9], r13b
je 0x1400d975a
lea rbx, [rsi + 0x10ca]
mov r14d, 8
mov r8d, r14d
mov rdx, rbx
mov rcx, rdi
call fcn.1400ec774
lea r8d, [r14 - 4]
mov rcx, rdi
lea rdx, [rsp + 0x28]
call fcn.1400ec774
mov r8d, r14d
mov dword [rsp + 0x60], 0x6a09e667
mov rdx, rbx
mov dword [rsp + 0x64], 0xbb67ae85
lea rcx, [rsp + 0x60]
mov dword [rsp + 0x68], 0x3c6ef372
mov dword [rsp + 0x6c], 0xa54ff53a
mov dword [rsp + 0x70], 0x510e527f
mov dword [rsp + 0x74], 0x9b05688c
mov dword [rsp + 0x78], 0x1f83d9ab
mov dword [rsp + 0x7c], 0x5be0cd19
mov qword [rbp - 0x80], r13
call fcn.1400ec408
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x60]
call fcn.1400ec498
mov eax, dword [rsp + 0x28]
cmp eax, dword [rbp - 0x30]
sete al
cmp dword [rsi + 4], 3
mov byte [rsi + 0x10c9], al
jne 0x1400d975a
cmp qword [rbx], r13
jne 0x1400d975a
mov byte [rsi + 0x10c9], r13b
mov byte [rsi + 0x10a8], r15b
mov dword [rsi + 0x10a4], 5
mov byte [rsi + 0x10a3], r15b
jmp 0x1400d94eb
mov rcx, qword [rbp + 0x2000]
xor rcx, rsp
call fcn.1400f44c0
mov rbx, qword [rsp + 0x2150]
add rsp, 0x2110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140111d6c
int3
call fcn.140111d6c
int3
call fcn.1400d1bbc
int3