Function at 0x14004afe0
Capabilities:
Hash data using sha256

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x30], 0xfffffffffffffffe
mov rsi, rdx
mov r13, rcx
call fcn.140053160
test byte [rax + 0x19], 2
mov qword [rbp + 0x28], r13
je 0x14004b022
test byte [rax + 0x23], 0x20
jne 0x14004b144
movaps xmm0, xmmword [0x14005c080]
movaps xmmword [rbp - 0x10], xmm0
movaps xmm0, xmmword [0x14005c070]
movaps xmmword [rbp - 0x20], xmm0
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], recv
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
mov rdi, rax
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
mov rbx, rax
mov rax, qword [rsi]
mov rcx, rsi
mov rdx, rdi
call qword [rax + 0x30]
sub rbx, rdi
xor r12d, r12d
mov rdi, rbp
lea r14, [rbp - 0x20]
lea r15, [rbp - 0x60]
nop dword [rax]
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
cmp rbx, 0x40
jb 0x14004b0f9
mov r8d, 0x40
mov rcx, rsi
mov rdx, rdi
call rax
cmp qword [rbp + 0x18], 0x10
mov r13, rdi
jb 0x14004b0b9
mov r13, qword [rbp]
xor eax, eax
nop dword [rax + rax]
mov ecx, dword [r13 + rax*4]
bswap ecx
mov dword [rbp + rax*4 - 0x60], ecx
inc rax
cmp rax, 0x10
jne 0x14004b0c0
mov rcx, r14
mov rdx, r15
call fcn.14004b940
mov qword [rbp + 0x10], 0
mov byte [r13], 0
inc r12
add rbx, 0xffffffffffffffc0
mov r13, qword [rbp + 0x28]
jmp 0x14004b090
mov rdi, rbp
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call rax
mov rsi, qword [rbp + 0x10]
mov rax, qword [rbp + 0x18]
cmp rsi, rax
jae 0x14004b12f
lea rcx, [rsi + 1]
mov qword [rbp + 0x10], rcx
cmp rax, 0x10
jb 0x14004b23d
mov rax, qword [rbp]
jmp 0x14004b240
mov rcx, rbp
mov edx, 1
mov r9b, 0x80
call fcn.140002990
jmp 0x14004b246
movaps xmm0, xmmword [0x14005c080]
movaps xmmword [rbp - 0x10], xmm0
movaps xmm0, xmmword [0x14005c070]
movaps xmmword [rbp - 0x20], xmm0
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], recv
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
mov rdi, rax
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x38]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
mov rbx, rax
mov rax, qword [rsi]
mov rcx, rsi
mov rdx, rdi
call qword [rax + 0x30]
sub rbx, rdi
xor r15d, r15d
mov rdi, rbp
lea r14, [rbp - 0x20]
jmp 0x14004b1c2
mov qword [rbp + 0x10], 0
mov byte [rax], 0
inc r15
add rbx, 0xffffffffffffffc0
mov rax, qword [rsi]
mov rax, qword [rax + 0x18]
cmp rbx, 0x40
jb 0x14004b203
mov r8d, 0x40
mov rcx, rsi
mov rdx, rdi
call rax
cmp qword [rbp + 0x18], 0x10
mov rdx, rdi
jb 0x14004b1eb
mov rdx, qword [rbp]
mov rcx, r14
call fcn.1400566b0
cmp qword [rbp + 0x18], 0x10
mov rax, rdi
jb 0x14004b1b0
mov rax, qword [rbp]
jmp 0x14004b1b0
mov rdi, rbp
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call rax
mov rsi, qword [rbp + 0x10]
mov rax, qword [rbp + 0x18]
cmp rsi, rax
jae 0x14004b47f
lea rcx, [rsi + 1]
mov qword [rbp + 0x10], rcx
cmp rax, 0x10
jb 0x14004b491
mov rax, qword [rbp]
jmp 0x14004b494
mov rax, rbp
mov word [rax + rsi], 0x80
shl r12, 6
add rsi, r12
shl rsi, 3
mov rbx, qword [rbp + 0x10]
mov rax, rbx
cmp rax, 0x3f
jbe 0x14004b270
jmp 0x14004b2aa
mov word [rdx + rax], 0
mov rax, qword [rbp + 0x10]
cmp rax, 0x3f
ja 0x14004b2aa
mov rcx, qword [rbp + 0x18]
cmp rax, rcx
jae 0x14004b290
lea rdx, [rax + 1]
mov qword [rbp + 0x10], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x14004b260
mov rdx, qword [rbp]
jmp 0x14004b260
mov edx, 1
mov rcx, rdi
xor r9d, r9d
call fcn.140002990
mov rax, qword [rbp + 0x10]
cmp rax, 0x3f
jbe 0x14004b270
cmp qword [rbp + 0x18], 0x10
jb 0x14004b2b7
mov rax, qword [rbp]
jmp 0x14004b2ba
mov rax, rbp
xor ecx, ecx
nop dword [rax]
mov edx, dword [rax + rcx*4]
bswap edx
mov dword [rbp + rcx*4 - 0x60], edx
inc rcx
cmp rcx, 0x10
jne 0x14004b2c0
cmp rbx, 0x39
jb 0x14004b2fc
lea rcx, [rbp - 0x20]
lea rdx, [rbp - 0x60]
call fcn.14004b940
xorps xmm0, xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x30], 0
ror rsi, 0x20
mov qword [rbp - 0x28], rsi
lea rcx, [rbp - 0x20]
lea rdx, [rbp - 0x60]
call fcn.14004b940
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], 0
mov qword [r13 + 0x18], recv
mov edx, 0x20
mov rcx, r13
call fcn.140009190
mov rdi, qword [rbp + 0x28]
mov qword [rdi + 0x10], 0
xor esi, esi
jmp 0x14004b360
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
inc rsi
mov rdi, qword [rbp + 0x28]
cmp rsi, 7
ja 0x14004b6df
movzx r9d, byte [rbp + rsi*4 - 0x1d]
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
cmp rax, rcx
jae 0x14004b3a0
lea rdx, [rax + 1]
mov qword [rdi + 0x10], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x14004b391
mov rdx, qword [rdi]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14004b3ad
mov edx, 1
mov rcx, rdi
call fcn.140002990
movzx r9d, byte [rbp + rsi*4 - 0x1e]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14004b3f0
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14004b3d8
mov rdx, qword [rcx]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14004b3fa
mov edx, 1
call fcn.140002990
movzx r9d, byte [rbp + rsi*4 - 0x1f]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14004b430
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14004b425
mov rdx, qword [rcx]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14004b43a
mov edx, 1
call fcn.140002990
movzx r9d, byte [rbp + rsi*4 - 0x20]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14004b470
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14004b350
mov rdx, qword [rcx]
jmp 0x14004b350
mov edx, 1
call fcn.140002990
jmp 0x14004b359
mov rcx, rbp
mov edx, 1
mov r9b, 0x80
call fcn.140002990
jmp 0x14004b49a
mov rax, rbp
mov word [rax + rsi], 0x80
shl r15, 6
add rsi, r15
shl rsi, 3
mov rbx, qword [rbp + 0x10]
mov rax, rbx
cmp rax, 0x3f
jbe 0x14004b4d0
jmp 0x14004b50a
mov word [rdx + rax], 0
mov rax, qword [rbp + 0x10]
cmp rax, 0x3f
ja 0x14004b50a
mov rcx, qword [rbp + 0x18]
cmp rax, rcx
jae 0x14004b4f0
lea rdx, [rax + 1]
mov qword [rbp + 0x10], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x14004b4c0
mov rdx, qword [rbp]
jmp 0x14004b4c0
mov edx, 1
mov rcx, rdi
xor r9d, r9d
call fcn.140002990
mov rax, qword [rbp + 0x10]
cmp rax, 0x3f
jbe 0x14004b4d0
cmp qword [rbp + 0x18], 0x10
jb 0x14004b517
mov rdx, qword [rbp]
jmp 0x14004b51a
mov rdx, rbp
xor eax, eax
nop dword [rax]
mov ecx, dword [rdx + rax*4]
mov dword [rbp + rax*4 - 0x60], ecx
inc rax
cmp rax, 0x10
jne 0x14004b520
cmp rbx, 0x39
jb 0x14004b556
lea rcx, [rbp - 0x20]
call fcn.1400566b0
xorps xmm0, xmm0
movaps xmmword [rbp - 0x40], xmm0
movaps xmmword [rbp - 0x50], xmm0
movaps xmmword [rbp - 0x60], xmm0
mov qword [rbp - 0x30], 0
mov eax, esi
bswap eax
mov dword [rbp - 0x24], eax
shr rsi, 0x20
bswap esi
mov dword [rbp - 0x28], esi
lea rcx, [rbp - 0x20]
lea rdx, [rbp - 0x60]
call fcn.1400566b0
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], 0
mov qword [r13 + 0x18], recv
mov edx, 0x20
mov rcx, r13
call fcn.140009190
mov rdi, qword [rbp + 0x28]
mov qword [rdi + 0x10], 0
xor esi, esi
jmp 0x14004b5c0
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
inc rsi
mov rdi, qword [rbp + 0x28]
cmp rsi, 7
ja 0x14004b6df
movzx r9d, byte [rbp + rsi*4 - 0x1d]
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
cmp rax, rcx
jae 0x14004b600
lea rdx, [rax + 1]
mov qword [rdi + 0x10], rdx
mov rdx, rdi
cmp rcx, 0x10
jb 0x14004b5f1
mov rdx, qword [rdi]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14004b60d
mov edx, 1
mov rcx, rdi
call fcn.140002990
movzx r9d, byte [rbp + rsi*4 - 0x1e]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14004b650
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14004b638
mov rdx, qword [rcx]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14004b65a
mov edx, 1
call fcn.140002990
movzx r9d, byte [rbp + rsi*4 - 0x1f]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14004b690
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14004b685
mov rdx, qword [rcx]
mov byte [rdx + rax], r9b
mov byte [rdx + rax + 1], 0
jmp 0x14004b69a
mov edx, 1
call fcn.140002990
movzx r9d, byte [rbp + rsi*4 - 0x20]
mov rcx, qword [rbp + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
cmp rax, r8
jae 0x14004b6d0
lea rdx, [rax + 1]
mov qword [rcx + 0x10], rdx
mov rdx, rcx
cmp r8, 0x10
jb 0x14004b5b0
mov rdx, qword [rcx]
jmp 0x14004b5b0
mov edx, 1
call fcn.140002990
jmp 0x14004b5b9
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
jb 0x14004b71a
mov rcx, qword [rbp]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14004b715
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14004b731
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140055568
mov rax, rdi
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3