Function at 0x180021dc0
Capabilities:
Hash data using sha256

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rsi
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xf0
mov rax, rcx
mov ecx, dword [rcx]
mov esi, 3
mov dword [rsp + 0x24], ecx
lea r15d, [rsi + 0x1d]
cmp ecx, 0xf4240
je 0x1800220e0
mov dword [rsp + 0x20], ecx
mov qword [rsp + 0xe0], r12
lea r12, [rax + 8]
mov rcx, rax
mov r9, r12
mov byte [rbp + 0x7f], sil
call fcn.180021a60
mov esi, eax
test eax, eax
jne 0x1800220d8
xor ecx, ecx
xor eax, eax
mov qword [rsp + 0x118], rbx
mov qword [rbp - 0x79], rax
mov qword [rbp - 0x71], rax
mov qword [rbp - 0x69], rax
mov qword [rbp - 0x61], rax
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xd8], r13
mov eax, ecx
mov qword [rsp + 0xd0], r14
mov qword [rbp - 9], rcx
mov dword [rbp - 0x79], 0x6a09e667
mov dword [rbp - 0x75], 0xbb67ae85
mov dword [rbp - 0x71], 0x3c6ef372
mov dword [rbp - 0x19], eax
mov dword [rbp - 0x6d], 0xa54ff53a
mov dword [rbp - 0x69], 0x510e527f
mov dword [rbp - 0x65], 0x9b05688c
mov dword [rbp - 0x61], 0x1f83d9ab
mov dword [rbp - 0x5d], 0x5be0cd19
mov qword [rbp - 0x15], rcx
lea r14d, [r15 - 0x1f]
lea r13, [rbp + 0x7f]
mov esi, ecx
nop
mov edi, 0x40
lea rcx, [rbp - 0x59]
mov rdx, r13
sub edi, eax
cmp r14d, edi
cmovb edi, r14d
add rcx, rax
mov r8d, edi
mov ebx, edi
call fcn.18002efa0
mov eax, dword [rbp - 0x19]
add r13, rbx
add eax, edi
sub r14d, edi
mov dword [rbp - 0x19], eax
cmp eax, 0x40
jne 0x180021f2a
lea rax, [rbp - 0x59]
mov r8d, reloc.WS2_32.dll_recv
nop
mov ecx, dword [rax]
lea rax, [rax + 4]
mov edx, ecx
rol ecx, 8
and ecx, 0xff00ff
ror edx, 8
and edx, 0xff00ff00
or edx, ecx
mov dword [rax - 4], edx
dec r8
jne 0x180021ee0
lea rcx, [rbp - 0x79]
call fcn.1800255f0
mov esi, eax
test eax, eax
jne 0x180021f33
mov ecx, dword [rbp - 0x15]
mov eax, ecx
add ecx, 0x40
mov dword [rbp - 0x15], ecx
cmp ecx, eax
jae 0x180021f25
inc dword [rbp - 0x11]
xor eax, eax
mov dword [rbp - 0x19], eax
test r14d, r14d
jne 0x180021ea0
mov r14, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xd8]
test esi, esi
jne 0x1800220c2
lea r8d, [rsi + 0x37]
lea rcx, [rbp - 0x79]
mov rdx, r12
call fcn.180025a40
mov esi, eax
test eax, eax
jne 0x1800220c2
lea rdx, [rbp + 7]
lea rcx, [rbp - 0x79]
call fcn.180025cb0
mov esi, eax
test eax, eax
jne 0x1800220c2
xor edi, edi
lea r10, [rbp + 0x26]
lea rdx, [r12 + 0x36]
sub r10, r12
movzx r8d, di
mov r9, r15
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx]
movzx ecx, byte [r10 + rdx - 0x36]
lea rdx, [rdx - 1]
add cx, ax
add r8w, cx
mov byte [rdx + 1], r8b
shr r8w, 8
dec r9
jne 0x180021fa0
test r8w, r8w
je 0x180021ff5
mov r9, r12
lea rcx, [r12 + 0x16]
neg r9
lea rax, [r9 + rcx]
test rax, rax
js 0x180021ff5
movzx eax, byte [rcx]
dec rcx
add r8w, ax
mov byte [rcx + 1], r8b
shr r8w, 8
test r8w, r8w
jne 0x180021fd3
mov rbx, qword [rbp + 0x67]
mov edx, gethostname
mov rcx, r12
lea r8, [rbx + 0x3f]
mov r9d, edx
call fcn.180021d20
mov eax, dword [rsp + 0x24]
mov ecx, eax
rol eax, 8
and eax, 0xff00ff
ror ecx, 8
and ecx, 0xff00ff00
or ecx, eax
movzx eax, byte [r12 + 0x36]
mov dword [rsp + 0x20], ecx
movzx edx, byte [rsp + 0x23]
add dx, ax
movzx eax, byte [rsp + 0x22]
mov byte [r12 + 0x36], dl
shr dx, 8
add dx, ax
movzx eax, byte [r12 + 0x35]
add dx, ax
movzx eax, byte [rsp + 0x21]
mov byte [r12 + 0x35], dl
shr dx, 8
add dx, ax
movzx eax, byte [r12 + 0x34]
add dx, ax
movzx eax, byte [r12 + 0x33]
mov byte [r12 + 0x34], dl
shr dx, 8
add dx, ax
movzx eax, cl
add dx, ax
mov byte [r12 + 0x33], dl
shr dx, 8
test dx, dx
je 0x1800220be
lea rcx, [r12 + 0x32]
neg r12
nop word [rax + rax]
lea rax, [r12 + rcx]
test rax, rax
js 0x1800220be
movzx eax, byte [rcx]
dec rcx
add dx, ax
mov byte [rcx + 1], dl
shr dx, 8
test dx, dx
jne 0x1800220a0
mov esi, edi
jmp 0x1800220c6
mov rbx, qword [rbp + 0x67]
inc dword [rbx]
mov rdi, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0x118]
mov r12, qword [rsp + 0xe0]
lea rax, [rbp + 7]
mov byte [rax], 0
lea rax, [rax + 1]
dec r15d
jne 0x1800220e4
neg esi
sbb eax, eax
and eax, 2
add rsp, 0xf0
pop r15
pop rsi
pop rbp
ret