Function at 0x180091c20
Capabilities:
Hash data using sha256

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0x100
mov eax, dword [0x180270d2c]
xor r15d, r15d
mov dword [rbp - 0x45], eax
mov rdi, r9
mov eax, dword [0x180270d28]
mov rsi, r8
mov dword [rbp - 0x41], eax
mov r14, rdx
mov eax, dword [0x180270d18]
mov rbx, rcx
not eax
mov dword [rbp - 0x49], r15d
shr eax, 0xa
mov qword [rbp - 0x39], r15
mov qword [rbp - 0x31], r15
mov qword [rbp - 0x29], r15
mov qword [rbp - 0x21], r15
mov qword [rbp - 0x19], r15
mov qword [rbp - 0x11], r15
mov dword [rbp - 0x3d], eax
test rcx, rcx
jne 0x180091c9a
mov eax, 0x80004005
jmp 0x180092027
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x38], r15
call qword [rax + 0x40]
mov rax, qword [rbx]
lea r8, [rsp + 0x40]
not dword [rbp - 0x41]
lea rdx, [0x1801e1dd8]
mov rcx, rbx
mov qword [rbp - 0x71], r15
mov qword [rbp - 0x61], r15
mov qword [rsp + 0x40], r15
call qword [rax]
test eax, eax
js 0x180092022
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180092022
not dword [rbp - 0x45]
test rsi, rsi
je 0x180091d9d
mov rax, qword [rsi]
lea r8, [rbp - 0x61]
lea rdx, [0x1801e1dd8]
mov rcx, rsi
call qword [rax]
test eax, eax
js 0x180092022
mov rcx, qword [rbp - 0x61]
test rcx, rcx
je 0x180092022
mov qword [rbp + 0x57], 0xffffffffffffffff
lea r8, [rbp + 0x57]
mov rax, qword [rcx]
lea rdx, [rbp - 0x71]
call qword [rax + 0x30]
mov esi, eax
test eax, eax
jns 0x180091d55
mov rcx, qword [rbp - 0x61]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
mov eax, esi
jmp 0x180092027
mov rcx, qword [rsp + 0x40]
mov r8, qword [rbp + 0x57]
mov rdx, qword [rbp - 0x71]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov rcx, qword [rbp - 0x61]
mov esi, eax
mov rdx, qword [rbp - 0x71]
mov r8, qword [rcx]
call qword [r8 + 0x38]
mov rcx, qword [rbp - 0x61]
mov rdx, qword [rcx]
call qword [rdx + 0x10]
or dword [r14], 0x10
mov rcx, qword [rsp + 0x40]
test esi, esi
jns 0x180091d9d
mov rax, qword [rcx]
call qword [rax + 0x10]
mov eax, esi
jmp 0x180092027
mov qword [rbp - 0x71], r15
lea r8, [rbp + 0x57]
mov qword [rbp + 0x57], r15
lea rdx, [rbp - 0x71]
mov rax, qword [rcx]
call qword [rax + 0x30]
mov esi, eax
test eax, eax
js 0x180091d43
mov rax, qword [rbx]
lea r8, [rbp - 0x69]
lea rdx, [rbp - 0x59]
mov qword [rbp - 0x59], r15
mov rcx, rbx
mov qword [rbp - 0x69], r15
call qword [rax + 0x28]
test eax, eax
js 0x180092027
mov ecx, dword [0x180270d38]
mov eax, dword [0x180270d3c]
not ecx
not eax
xor ecx, eax
mov rax, qword [rbp - 0x69]
mov dword [rbp - 0x49], ecx
add rax, 0x48
mov rcx, qword [rbp + 0x57]
add rcx, rax
call fcn.1801a2110
mov qword [rdi], rax
mov r9, rax
test rax, rax
jne 0x180091e18
mov eax, 0x8ffd0008
jmp 0x180092027
mov rax, qword [rbp - 0x69]
xor edx, edx
mov r8, qword [rbp + 0x57]
add rax, 0x48
add r8, rax
mov rcx, r9
call fcn.1801a340e
cmp dword [rbp + 0x7f], r15d
lea r9, [0x180270cf0]
mov rsi, qword [rbp + 0x77]
movabs rax, 0x302e334d52443556
movabs rcx, 0x312e334d52443556
mov r8d, 2
cmovne rcx, rax
mov rax, qword [rdi]
mov qword [rax], rcx
movzx eax, byte [rsp + 0x30]
mov rdx, qword [rbp + 0x57]
mov rcx, qword [rbp - 0x69]
mov byte [rsp + 0x48], al
movzx eax, byte [rsp + 0x31]
mov byte [rbp - 0x80], al
movzx eax, byte [rsp + 0x32]
mov byte [rbp - 0x7f], al
movzx eax, byte [rsp + 0x33]
mov byte [rbp - 0x7e], al
movzx eax, byte [rsp + 0x37]
mov byte [rbp - 0x7d], al
movzx eax, byte [rsp + 0x36]
mov byte [rbp - 0x7c], al
movzx eax, byte [rsp + 0x35]
mov byte [rbp - 0x7b], al
movzx eax, byte [rsp + 0x34]
mov byte [rbp - 0x7a], al
movzx eax, byte [rsp + 0x3b]
mov byte [rbp - 0x79], al
movzx eax, byte [rsp + 0x3a]
mov byte [rbp - 0x78], al
movzx eax, byte [rsp + 0x39]
mov byte [rbp - 0x77], al
movzx eax, byte [rsp + 0x38]
mov byte [rbp - 0x76], al
movzx eax, byte [rsp + 0x3f]
mov byte [rbp - 0x75], al
movzx eax, byte [rsp + 0x3e]
mov byte [rbp - 0x74], al
movzx eax, byte [rsp + 0x3d]
mov byte [rbp - 0x73], al
movzx eax, byte [rsp + 0x3c]
mov byte [rbp - 0x72], al
mov eax, dword [rsp + 0x48]
mov dword [rbp - 5], eax
mov eax, dword [rbp - 0x7d]
mov dword [rbp - 1], eax
mov eax, dword [rbp - 0x79]
mov dword [rbp + 3], eax
mov eax, dword [rbp - 0x75]
mov dword [rbp + 7], eax
lea eax, [rdx + rcx]
mov dword [rbp + 0xf], eax
mov dword [rsi], 8
mov eax, dword [0x180270d20]
xor dword [rbp - 0x41], eax
mov eax, dword [0x180270d34]
xor dword [rbp - 0x45], eax
lea rax, [rbp - 0x49]
mov dword [rbp + 0x17], edx
mov rdx, qword [rdi]
mov dword [rbp + 0x13], ecx
add rdx, 8
lea rcx, [rbp - 9]
mov qword [rsp + 0x20], rax
mov dword [rbp - 9], 0x48
mov dword [rbp + 0xb], 2
mov qword [rbp + 0x1b], r15
mov qword [rbp + 0x23], r15
mov qword [rbp + 0x2b], 0xffffffffffffffff
mov dword [rbp + 0x33], 0x5f0d0a00
call fcn.18009b0a0
add dword [rsi], 0x40
mov r10d, r15d
nop
mov rax, qword [rdi]
mov r9d, r15d
movsxd rcx, r10d
lea r8, [rax + 8]
add rax, 0xb
add r8, rcx
add rax, rcx
nop word [rax + rax]
movzx ecx, byte [rax]
lea rax, [rax - 2]
movzx edx, byte [r8]
add r9d, 2
mov byte [r8], cl
lea r8, [r8 + 2]
mov byte [rax + 2], dl
movzx ecx, byte [rax + 1]
movzx edx, byte [r8 - 1]
mov byte [r8 - 1], cl
mov byte [rax + 1], dl
cmp r9d, 2
jb 0x180091f90
add r10d, 4
cmp r10d, 0x40
jb 0x180091f70
mov ecx, dword [rsi]
add rcx, qword [rdi]
mov r8, qword [rbp - 0x69]
mov rdx, qword [rbp - 0x59]
call fcn.1801a3408
mov eax, dword [rbp - 0x69]
add dword [rsi], eax
mov ecx, dword [rsi]
add rcx, qword [rdi]
mov r8, qword [rbp + 0x57]
mov rdx, qword [rbp - 0x71]
call fcn.1801a3408
mov eax, dword [rbp + 0x57]
mov rcx, rbx
add dword [rsi], eax
mov rax, qword [rbx]
mov rdx, qword [rbp - 0x59]
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rbp - 0x71]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0x10]
xor eax, eax
jmp 0x180092027
mov eax, 0x8ffd0485
lea r11, [rsp + 0x100]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret