Function at 0x140045cd0
Capabilities:
Hash data using sha1
Hash data using sha224
Hash data using sha256

Disassembly:
push rbx
mov r10, r9
mov r11, r8
mov rbx, rdx
test rcx, rcx
je case.default.0x140045d05
mov eax, dword [rcx + 8]
dec eax
cmp eax, 6
ja case.default.0x140045d05
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0x45d8c]
add rcx, rdx
jmp rcx
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x140054920
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x140056760
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x140058190
mov r9d, 1
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x140049860
xor r9d, r9d
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x140049860
mov r9d, 1
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x14004a7e0
xor r9d, r9d
mov r8, r10
mov rdx, r11
mov rcx, rbx
pop rbx
jmp 0x14004a7e0
mov eax, 0xffffaf00
pop rbx
ret
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x47]
sub rsp, 0xa0
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rbp + 0x37], rax
xorps xmm0, xmm0
xor eax, eax
mov qword [rbp - 0x39], rax
mov rdi, r8
movups xmmword [rbp - 0x11], xmm0
movups xmmword [rbp - 1], xmm0
movups xmmword [rbp + 0xf], xmm0
movups xmmword [rbp + 0x1f], xmm0
test r9d, r9d
jne 0x1400498d9
mov dword [rbp - 0x31], 0x6a09e667
mov dword [rbp - 0x2d], 0xbb67ae85
mov dword [rbp - 0x29], 0x3c6ef372
mov dword [rbp - 0x25], 0xa54ff53a
mov dword [rbp - 0x21], 0x510e527f
mov dword [rbp - 0x1d], 0x9b05688c
mov dword [rbp - 0x19], 0x1f83d9ab
mov dword [rbp - 0x15], 0x5be0cd19
jmp 0x140049911
mov dword [rbp - 0x31], 0xc1059ed8
mov dword [rbp - 0x2d], 0x367cd507
mov dword [rbp - 0x29], 0x3070dd17
mov dword [rbp - 0x25], 0xf70e5939
mov dword [rbp - 0x21], 0xffc00b31
mov dword [rbp - 0x1d], 0x68581511
mov dword [rbp - 0x19], 0x64f98fa7
mov dword [rbp - 0x15], 0xbefa4fa4
mov r8, rdx
mov dword [rbp + 0x2f], r9d
mov rdx, rcx
lea rcx, [rbp - 0x39]
call fcn.140049c90
mov ebx, eax
test eax, eax
jne 0x140049938
mov rdx, rdi
lea rcx, [rbp - 0x39]
call fcn.1400499a0
mov ebx, eax
mov edx, WSAGetLastError
lea rcx, [rbp - 0x39]
call fcn.1400386b0
mov eax, ebx
mov rcx, qword [rbp + 0x37]
xor rcx, rsp
call fcn.14001a6d0
add rsp, 0xa0
pop rdi
pop rbx
pop rbp
ret
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x110
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov rdi, r8
mov rbp, rdx
mov rsi, rcx
xor edx, edx
mov r8d, 0xd8
lea rcx, [rsp + 0x20]
mov ebx, r9d
call fcn.140068930
mov edx, ebx
lea rcx, [rsp + 0x20]
call fcn.14004ac90
mov ebx, eax
test eax, eax
jne 0x14004a856
mov r8, rbp
lea rcx, [rsp + 0x20]
mov rdx, rsi
call fcn.14004adc0
mov ebx, eax
test eax, eax
jne 0x14004a856
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.14004a910
mov ebx, eax
mov edx, 0xd8
lea rcx, [rsp + 0x20]
call fcn.1400386b0
mov eax, ebx
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.14001a6d0
mov rbx, qword [rsp + 0x148]
add rsp, 0x110
pop rdi
pop rsi
pop rbp
ret
push rbp
push rbx
push rsi
push rdi
push r14
lea rbp, [rsp - 0x37]
sub rsp, 0x90
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov qword [rbp - 0x39], 0
xorps xmm0, xmm0
mov dword [rbp - 0x31], 0x67452301
mov r14, r8
mov dword [rbp - 0x2d], 0xefcdab89
mov rbx, rdx
mov dword [rbp - 0x29], 0x98badcfe
mov rdi, rcx
mov dword [rbp - 0x25], 0x10325476
movups xmmword [rbp - 0x21], xmm0
movups xmmword [rbp - 0x11], xmm0
movups xmmword [rbp - 1], xmm0
movups xmmword [rbp + 0xf], xmm0
test rdx, rdx
je 0x1400549c8
mov dword [rbp - 0x39], edx
cmp rdx, 0x40
jb 0x1400549b4
nop
mov rdx, rdi
lea rcx, [rbp - 0x39]
call fcn.140053e60
mov esi, eax
test eax, eax
jne 0x140054b10
add rdi, 0x40
sub rbx, 0x40
cmp rbx, 0x40
jae 0x140054990
test rbx, rbx
je 0x1400549c8
mov r8, rbx
lea rcx, [rbp - 0x21]
mov rdx, rdi
call fcn.140068bd0
mov edx, dword [rbp - 0x39]
lea rcx, [rbp - 0x21]
and edx, 0x3f
mov byte [rbp + rdx - 0x21], 0x80
inc edx
mov eax, edx
add rcx, rax
cmp edx, 0x38
ja 0x1400549f5
mov r8d, 0x38
sub r8d, edx
xor edx, edx
call fcn.140068930
jmp 0x140054a31
mov r8d, 0x40
sub r8d, edx
xor edx, edx
call fcn.140068930
lea rdx, [rbp - 0x21]
lea rcx, [rbp - 0x39]
call fcn.140053e60
mov esi, eax
test eax, eax
jne 0x140054b10
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x21], xmm0
mov qword [rbp + 0xf], rax
movups xmmword [rbp - 0x11], xmm0
movups xmmword [rbp - 1], xmm0
mov ecx, dword [rbp - 0x39]
mov eax, dword [rbp - 0x35]
lea edx, [rax*8]
mov eax, ecx
shr eax, 0x1d
lea ecx, [rcx*8]
or edx, eax
mov byte [rbp + 0x17], cl
mov eax, ecx
mov byte [rbp + 0x1b], dl
shr eax, 8
mov byte [rbp + 0x18], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 0x19], al
mov eax, edx
shr eax, 8
mov byte [rbp + 0x1c], al
mov eax, edx
shr edx, 0x18
shr ecx, 0x18
mov byte [rbp + 0x1e], dl
lea rdx, [rbp - 0x21]
mov byte [rbp + 0x1a], cl
lea rcx, [rbp - 0x39]
shr eax, 0x10
mov byte [rbp + 0x1d], al
call fcn.140053e60
mov esi, eax
test eax, eax
jne 0x140054b10
movzx eax, byte [rbp - 0x31]
mov byte [r14], al
movzx eax, byte [rbp - 0x30]
mov byte [r14 + 1], al
movzx eax, byte [rbp - 0x2f]
mov byte [r14 + 2], al
movzx eax, byte [rbp - 0x2e]
mov byte [r14 + 3], al
movzx eax, byte [rbp - 0x2d]
mov byte [r14 + 4], al
movzx eax, byte [rbp - 0x2c]
mov byte [r14 + 5], al
movzx eax, byte [rbp - 0x2b]
mov byte [r14 + 6], al
movzx eax, byte [rbp - 0x2a]
mov byte [r14 + 7], al
movzx eax, byte [rbp - 0x29]
mov byte [r14 + 8], al
movzx eax, byte [rbp - 0x28]
mov byte [r14 + 9], al
movzx eax, byte [rbp - 0x27]
mov byte [r14 + 0xa], al
movzx eax, byte [rbp - 0x26]
mov byte [r14 + 0xb], al
movzx eax, byte [rbp - 0x25]
mov byte [r14 + 0xc], al
movzx eax, byte [rbp - 0x24]
mov byte [r14 + 0xd], al
movzx eax, byte [rbp - 0x23]
mov byte [r14 + 0xe], al
movzx eax, byte [rbp - 0x22]
mov byte [r14 + 0xf], al
mov edx, 0x58
lea rcx, [rbp - 0x39]
call fcn.1400386b0
mov eax, esi
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14001a6d0
add rsp, 0x90
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
push rbp
push rdi
push r12
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rbp + 0x1f], rax
xorps xmm0, xmm0
mov dword [rbp - 0x41], 0x67452301
mov r12, r8
mov dword [rbp - 0x3d], 0xefcdab89
mov r8, rdx
mov dword [rbp - 0x39], 0x98badcfe
mov rdx, rcx
mov dword [rbp - 0x35], 0x10325476
xor eax, eax
mov dword [rbp - 0x31], 0xc3d2e1f0
lea rcx, [rbp - 0x49]
mov qword [rbp - 0x49], rax
movups xmmword [rbp - 0x2d], xmm0
movups xmmword [rbp - 0x1d], xmm0
movups xmmword [rbp - 0xd], xmm0
movups xmmword [rbp + 3], xmm0
call fcn.140056d00
mov edi, eax
test eax, eax
jne 0x140056aad
mov r8d, dword [rbp - 0x49]
mov eax, dword [rbp - 0x45]
mov qword [rsp + 0xe8], rbx
mov qword [rsp + 0xa8], rsi
lea rsi, [0x140097bf0]
lea ecx, [r8*8]
mov qword [rsp + 0xa0], r13
lea edx, [rax*8]
mov byte [rbp + 0x17], cl
mov qword [rsp + 0x98], r14
lea r13d, [rdi + 0x40]
mov eax, r8d
mov qword [rsp + 0x90], r15
shr eax, 0x1d
mov r14d, r8d
or edx, eax
and r14d, 0x3f
mov eax, ecx
mov byte [rbp + 0x1b], dl
shr eax, 8
mov byte [rbp + 0x18], al
mov eax, ecx
shr eax, 0x10
mov byte [rbp + 0x19], al
mov eax, edx
shr eax, 8
mov byte [rbp + 0x1c], al
mov eax, edx
shr eax, 0x10
shr ecx, 0x18
mov byte [rbp + 0x1d], al
mov eax, 0x38
sub eax, r14d
shr edx, 0x18
mov byte [rbp + 0x1a], cl
mov ecx, 0x78
sub ecx, r14d
mov byte [rbp + 0x1e], dl
cmp r14d, 0x38
cmovae eax, ecx
mov ebx, eax
test eax, eax
je 0x140056923
add r8d, ebx
mov r15d, r13d
sub r15d, r14d
mov dword [rbp - 0x49], r8d
cmp r8d, ebx
jae 0x140056897
inc dword [rbp - 0x45]
test r14d, r14d
je 0x1400568da
cmp rbx, r15
jb 0x1400568da
mov eax, r14d
lea rcx, [rbp - 0x2d]
add rcx, rax
mov r8, r15
mov rdx, rsi
call fcn.140068bd0
lea rdx, [rbp - 0x2d]
lea rcx, [rbp - 0x49]
call fcn.140054e30
mov edi, eax
test eax, eax
jne 0x140056a85
mov r8d, dword [rbp - 0x49]
add rsi, r15
sub rbx, r15
xor r14d, r14d
cmp rbx, r13
jb 0x140056905
nop
mov rdx, rsi
lea rcx, [rbp - 0x49]
call fcn.140054e30
mov edi, eax
test eax, eax
jne 0x140056a85
add rsi, r13
sub rbx, r13
cmp rbx, r13
jae 0x1400568e0
mov r8d, dword [rbp - 0x49]
test rbx, rbx
je 0x140056923
mov eax, r14d
lea rcx, [rbp - 0x2d]
add rcx, rax
mov r8, rbx
mov rdx, rsi
call fcn.140068bd0
mov r8d, dword [rbp - 0x49]
mov r14d, r8d
lea rsi, [rbp + 0x17]
and r14d, 0x3f
mov ebx, 8
sub r13d, r14d
add r8d, ebx
mov r15d, r13d
mov dword [rbp - 0x49], r8d
cmp r8d, ebx
jae 0x140056948
inc dword [rbp - 0x45]
test r14d, r14d
je 0x1400569bb
cmp r15, rbx
ja 0x1400569bb
mov eax, r14d
lea rcx, [rbp - 0x2d]
add rcx, rax
lea rdx, [rbp + 0x17]
mov r8, r15
call fcn.140068bd0
lea rdx, [rbp - 0x2d]
lea rcx, [rbp - 0x49]
call fcn.140054e30
mov edi, eax
test eax, eax
jne 0x140056a85
lea rsi, [rbp + 0x17]
sub rbx, r15
add rsi, r15
xor r14d, r14d
cmp rbx, 0x40
jb 0x1400569b6
mov rdx, rsi
lea rcx, [rbp - 0x49]
call fcn.140054e30
mov edi, eax
test eax, eax
jne 0x140056a85
add rsi, 0x40
sub rbx, 0x40
cmp rbx, 0x40
jae 0x140056992
test rbx, rbx
je 0x1400569d0
mov eax, r14d
lea rcx, [rbp - 0x2d]
add rcx, rax
mov r8, rbx
mov rdx, rsi
call fcn.140068bd0
movzx eax, byte [rbp - 0x41]
xor edi, edi
mov byte [r12], al
movzx eax, byte [rbp - 0x40]
mov byte [r12 + 1], al
movzx eax, byte [rbp - 0x3f]
mov byte [r12 + 2], al
movzx eax, byte [rbp - 0x3e]
mov byte [r12 + 3], al
movzx eax, byte [rbp - 0x3d]
mov byte [r12 + 4], al
movzx eax, byte [rbp - 0x3c]
mov byte [r12 + 5], al
movzx eax, byte [rbp - 0x3b]
mov byte [r12 + 6], al
movzx eax, byte [rbp - 0x3a]
mov byte [r12 + 7], al
movzx eax, byte [rbp - 0x39]
mov byte [r12 + 8], al
movzx eax, byte [rbp - 0x38]
mov byte [r12 + 9], al
movzx eax, byte [rbp - 0x37]
mov byte [r12 + 0xa], al
movzx eax, byte [rbp - 0x36]
mov byte [r12 + 0xb], al
movzx eax, byte [rbp - 0x35]
mov byte [r12 + 0xc], al
movzx eax, byte [rbp - 0x34]
mov byte [r12 + 0xd], al
movzx eax, byte [rbp - 0x33]
mov byte [r12 + 0xe], al
movzx eax, byte [rbp - 0x32]
mov byte [r12 + 0xf], al
movzx eax, byte [rbp - 0x31]
mov byte [r12 + 0x10], al
movzx eax, byte [rbp - 0x30]
mov byte [r12 + 0x11], al
movzx eax, byte [rbp - 0x2f]
mov byte [r12 + 0x12], al
movzx eax, byte [rbp - 0x2e]
mov byte [r12 + 0x13], al
mov r14, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
mov rsi, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xe8]
mov r15, qword [rsp + 0x90]
mov edx, 0x5c
lea rcx, [rbp - 0x49]
call fcn.1400386b0
mov eax, edi
mov rcx, qword [rbp + 0x1f]
xor rcx, rsp
call fcn.14001a6d0
add rsp, 0xb0
pop r12
pop rdi
pop rbp
ret
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x90
mov rax, qword [0x1400b1008]
xor rax, rsp
mov qword [rsp + 0x80], rax
xorps xmm0, xmm0
mov dword [rsp + 0x28], 0x67452301
mov rdi, r8
mov dword [rsp + 0x2c], 0xefcdab89
mov r8, rdx
mov dword [rsp + 0x30], 0x98badcfe
mov rdx, rcx
mov dword [rsp + 0x34], 0x10325476
xor eax, eax
mov dword [rsp + 0x38], 0xc3d2e1f0
lea rcx, [rsp + 0x20]
mov qword [rsp + 0x20], rax
movups xmmword [rsp + 0x3c], xmm0
movups xmmword [rsp + 0x4c], xmm0
movups xmmword [rsp + 0x5c], xmm0
movups xmmword [rsp + 0x6c], xmm0
call fcn.1400583e0
mov ebx, eax
test eax, eax
jne 0x14005821d
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.140058250
mov ebx, eax
mov edx, 0x5c
lea rcx, [rsp + 0x20]
call fcn.1400386b0
mov eax, ebx
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.14001a6d0
mov rbx, qword [rsp + 0xb8]
add rsp, 0x90
pop rdi
ret