Function at 0x140045b10
Capabilities:
Hash data using sha256

Disassembly:
mov r11, rsp
push rbp
push rbx
push rsi
push r12
push r15
lea rbp, [r11 - 0x5f]
sub rsp, 0xc0
mov rax, qword [0x140177090]
xor rax, rsp
mov qword [rbp + 0x17], rax
movups xmm2, xmmword [0x14013a340]
movups xmm3, xmmword [0x14013a350]
movsxd rsi, r8d
mov r15, rdx
mov r12, rcx
mov ebx, esi
movups xmmword [rbp - 0x29], xmm2
movups xmmword [rbp - 0x19], xmm3
cmp esi, 0xfffffff7
jle 0x140045c5d
mov qword [r11 + 0x20], rdi
mov qword [r11 - 0x30], r13
lea rdi, [rbp - 0x69]
add rdi, rsi
xor r13d, r13d
mov qword [r11 - 0x38], r14
cmp ebx, 0x40
jge 0x140045b9d
xor eax, eax
cmp ebx, 0x40
mov qword [rbp - 0x69], rax
mov qword [rbp - 0x61], rax
mov qword [rbp - 0x59], rax
mov qword [rbp - 0x51], rax
mov qword [rbp - 0x49], rax
mov qword [rbp - 0x41], rax
mov qword [rbp - 0x39], rax
mov qword [rbp - 0x31], rax
jle 0x140045ba6
mov eax, 0x40
jmp 0x140045bae
mov eax, ebx
test ebx, ebx
cmovs eax, r13d
movsxd r8, eax
movsxd rax, ebx
mov rdx, rsi
sub rdx, rax
lea rcx, [rbp - 0x69]
add rdx, r15
call sub.MSVCR120.dll_memcpy
cmp ebx, 0x3f
ja 0x140045bce
mov byte [rdi], 0x80
lea rax, [rbp - 0x67]
mov r8d, reloc.WS2_32.dll_recv
nop dword [rax + rax]
movzx ecx, byte [rax - 2]
movzx edx, byte [rax - 1]
lea rax, [rax + 4]
shl ecx, 8
add edx, ecx
movzx ecx, byte [rax - 4]
shl edx, 8
add edx, ecx
movzx ecx, byte [rax - 3]
shl edx, 8
add edx, ecx
mov dword [rax - 6], edx
dec r8
jne 0x140045be0
cmp ebx, 0x38
jge 0x140045c1a
lea eax, [rsi*8]
mov dword [rbp - 0x2d], eax
lea rdx, [rbp - 0x69]
lea rcx, [rbp - 0x29]
call fcn.1400441f0
sub ebx, 0x40
sub rdi, 0x40
cmp ebx, 0xfffffff7
jg 0x140045b73
movups xmm3, xmmword [0x14013a350]
movups xmm2, xmmword [0x14013a340]
mov r14, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0x108]
movaps xmm0, xmmword [0x14013a320]
movaps xmm1, xmmword [0x14013a330]
lea rdx, [rbp - 0x29]
lea rcx, [rbp - 0x69]
movups xmmword [rbp - 0x69], xmm2
movups xmmword [rbp - 0x59], xmm3
movaps xmmword [rbp - 9], xmm0
movaps xmmword [rbp + 7], xmm1
call fcn.1400441f0
mov ecx, dword [rbp - 0x69]
movzx eax, byte [rbp - 0x69]
mov byte [r12 + 3], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 2], al
mov eax, ecx
shr ecx, 0x18
mov byte [r12], cl
mov ecx, dword [rbp - 0x65]
shr eax, 0x10
mov byte [r12 + 1], al
movzx eax, byte [rbp - 0x65]
mov byte [r12 + 7], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 6], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r12 + 5], al
movzx eax, byte [rbp - 0x61]
mov byte [r12 + 4], cl
mov byte [r12 + 0xb], al
mov ecx, dword [rbp - 0x61]
mov eax, ecx
shr eax, 8
mov byte [r12 + 0xa], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r12 + 9], al
movzx eax, byte [rbp - 0x5d]
mov byte [r12 + 8], cl
mov ecx, dword [rbp - 0x5d]
mov byte [r12 + 0xf], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 0xe], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r12 + 0xd], al
movzx eax, byte [rbp - 0x59]
mov byte [r12 + 0xc], cl
mov ecx, dword [rbp - 0x59]
mov byte [r12 + 0x13], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 0x12], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r12 + 0x11], al
movzx eax, byte [rbp - 0x55]
mov byte [r12 + 0x10], cl
mov ecx, dword [rbp - 0x55]
mov byte [r12 + 0x17], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 0x16], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r12 + 0x15], al
movzx eax, byte [rbp - 0x51]
mov byte [r12 + 0x14], cl
mov ecx, dword [rbp - 0x51]
mov byte [r12 + 0x1b], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 0x1a], al
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r12 + 0x19], al
movzx eax, byte [rbp - 0x4d]
mov byte [r12 + 0x18], cl
mov ecx, dword [rbp - 0x4d]
mov byte [r12 + 0x1f], al
mov eax, ecx
shr eax, 8
mov byte [r12 + 0x1e], al
mov eax, ecx
shr eax, 0x10
shr ecx, 0x18
mov byte [r12 + 0x1d], al
mov byte [r12 + 0x1c], cl
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.140129b50
add rsp, 0xc0
pop r15
pop r12
pop rsi
pop rbx
pop rbp
ret