Function at 0x140045180
Capabilities:
Encrypt data using hc-128

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x148
mov dword [rsp], 0
jmp 0x1400451a2
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
cmp dword [rsp], 8
jge 0x1400451c2
movsxd rax, dword [rsp]
movsxd rcx, dword [rsp]
mov rdx, qword [rsp + 0x150]
mov eax, dword [rdx + rax*4 + 8]
mov dword [rsp + rcx*4 + 8], eax
jmp 0x14004519a
mov dword [rsp], 0
jmp 0x1400451d3
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
cmp dword [rsp], 0x10
jge 0x14004529f
mov eax, dword [rsp]
shl eax, 2
cdqe
mov rcx, qword [rsp + 0x158]
add rcx, rax
mov rax, rcx
mov ecx, 1
imul rcx, rcx, 0
movzx eax, byte [rax + rcx]
and eax, 0xff
shl eax, 0x18
mov ecx, dword [rsp]
shl ecx, 2
movsxd rcx, ecx
mov rdx, qword [rsp + 0x158]
add rdx, rcx
mov rcx, rdx
mov edx, 1
imul rdx, rdx, 1
movzx ecx, byte [rcx + rdx]
and ecx, 0xff
shl ecx, 0x10
or eax, ecx
mov ecx, dword [rsp]
shl ecx, 2
movsxd rcx, ecx
mov rdx, qword [rsp + 0x158]
add rdx, rcx
mov rcx, rdx
mov edx, 1
imul rdx, rdx, 2
movzx ecx, byte [rcx + rdx]
and ecx, 0xff
shl ecx, 8
or eax, ecx
mov ecx, dword [rsp]
shl ecx, 2
movsxd rcx, ecx
mov rdx, qword [rsp + 0x158]
add rdx, rcx
mov rcx, rdx
mov edx, 1
imul rdx, rdx, 3
movzx ecx, byte [rcx + rdx]
and ecx, 0xff
or eax, ecx
movsxd rcx, dword [rsp]
mov dword [rsp + rcx*4 + 0x40], eax
jmp 0x1400451cb
mov dword [rsp], reloc.WS2_32.dll_recv
jmp 0x1400452b0
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
cmp dword [rsp], 0x40
jge 0x140045397
mov eax, dword [rsp]
sub eax, 2
cdqe
mov eax, dword [rsp + rax*4 + 0x40]
shr eax, 0x11
mov ecx, dword [rsp]
sub ecx, 2
movsxd rcx, ecx
mov ecx, dword [rsp + rcx*4 + 0x40]
shl ecx, 0xf
or eax, ecx
mov ecx, dword [rsp]
sub ecx, 2
movsxd rcx, ecx
mov ecx, dword [rsp + rcx*4 + 0x40]
shr ecx, 0x13
mov edx, dword [rsp]
sub edx, 2
movsxd rdx, edx
mov edx, dword [rsp + rdx*4 + 0x40]
shl edx, 0xd
or ecx, edx
xor eax, ecx
mov ecx, dword [rsp]
sub ecx, 2
movsxd rcx, ecx
mov ecx, dword [rsp + rcx*4 + 0x40]
shr ecx, 0xa
xor eax, ecx
mov ecx, dword [rsp]
sub ecx, 7
movsxd rcx, ecx
add eax, dword [rsp + rcx*4 + 0x40]
mov ecx, dword [rsp]
sub ecx, 0xf
movsxd rcx, ecx
mov ecx, dword [rsp + rcx*4 + 0x40]
shr ecx, 7
mov edx, dword [rsp]
sub edx, 0xf
movsxd rdx, edx
mov edx, dword [rsp + rdx*4 + 0x40]
shl edx, 0x19
or ecx, edx
mov edx, dword [rsp]
sub edx, 0xf
movsxd rdx, edx
mov edx, dword [rsp + rdx*4 + 0x40]
shr edx, 0x12
mov r8d, dword [rsp]
sub r8d, 0xf
movsxd r8, r8d
mov r8d, dword [rsp + r8*4 + 0x40]
shl r8d, 0xe
or edx, r8d
xor ecx, edx
mov edx, dword [rsp]
sub edx, 0xf
movsxd rdx, edx
mov edx, dword [rsp + rdx*4 + 0x40]
shr edx, 3
xor ecx, edx
add eax, ecx
mov ecx, dword [rsp]
sub ecx, 0x10
movsxd rcx, ecx
add eax, dword [rsp + rcx*4 + 0x40]
movsxd rcx, dword [rsp]
mov dword [rsp + rcx*4 + 0x40], eax
jmp 0x1400452a8
mov dword [rsp], 0
jmp 0x1400453a8
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
cmp dword [rsp], 0x40
jge 0x14004565d
mov eax, 4
imul rax, rax, 7
mov ecx, 4
imul rcx, rcx, 4
mov ecx, dword [rsp + rcx + 8]
shr ecx, 6
mov edx, 4
imul rdx, rdx, 4
mov edx, dword [rsp + rdx + 8]
shl edx, 0x1a
or ecx, edx
mov edx, 4
imul rdx, rdx, 4
mov edx, dword [rsp + rdx + 8]
shr edx, 0xb
mov r8d, 4
imul r8, r8, 4
mov r8d, dword [rsp + r8 + 8]
shl r8d, 0x15
or edx, r8d
xor ecx, edx
mov edx, 4
imul rdx, rdx, 4
mov edx, dword [rsp + rdx + 8]
shr edx, 0x19
mov r8d, 4
imul r8, r8, 4
mov r8d, dword [rsp + r8 + 8]
shl r8d, 7
or edx, r8d
xor ecx, edx
mov eax, dword [rsp + rax + 8]
add eax, ecx
mov ecx, 4
imul rcx, rcx, 6
mov edx, 4
imul rdx, rdx, 4
mov r8d, 4
imul r8, r8, 5
mov r9d, 4
imul r9, r9, 6
mov r9d, dword [rsp + r9 + 8]
mov r8d, dword [rsp + r8 + 8]
xor r8d, r9d
mov edx, dword [rsp + rdx + 8]
and edx, r8d
mov ecx, dword [rsp + rcx + 8]
xor ecx, edx
add eax, ecx
movsxd rcx, dword [rsp]
lea rdx, [0x1401f8520]
add eax, dword [rdx + rcx*4]
movsxd rcx, dword [rsp]
add eax, dword [rsp + rcx*4 + 0x40]
mov dword [rsp + 0x28], eax
mov eax, 4
imul rax, rax, 0
mov eax, dword [rsp + rax + 8]
shr eax, 2
mov ecx, 4
imul rcx, rcx, 0
mov ecx, dword [rsp + rcx + 8]
shl ecx, 0x1e
or eax, ecx
mov ecx, 4
imul rcx, rcx, 0
mov ecx, dword [rsp + rcx + 8]
shr ecx, 0xd
mov edx, 4
imul rdx, rdx, 0
mov edx, dword [rsp + rdx + 8]
shl edx, 0x13
or ecx, edx
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0
mov ecx, dword [rsp + rcx + 8]
shr ecx, 0x16
mov edx, 4
imul rdx, rdx, 0
mov edx, dword [rsp + rdx + 8]
shl edx, 0xa
or ecx, edx
xor eax, ecx
mov ecx, 4
imul rcx, rcx, 0
mov edx, 4
imul rdx, rdx, 1
mov edx, dword [rsp + rdx + 8]
mov ecx, dword [rsp + rcx + 8]
or ecx, edx
mov edx, 4
imul rdx, rdx, 2
and ecx, dword [rsp + rdx + 8]
mov edx, 4
imul rdx, rdx, 0
mov r8d, 4
imul r8, r8, 1
mov r8d, dword [rsp + r8 + 8]
mov edx, dword [rsp + rdx + 8]
and edx, r8d
or ecx, edx
add eax, ecx
mov dword [rsp + 0x2c], eax
mov eax, 4
imul rax, rax, 3
mov eax, dword [rsp + rax + 8]
add eax, dword [rsp + 0x28]
mov ecx, 4
imul rcx, rcx, 3
mov dword [rsp + rcx + 8], eax
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x28]
add ecx, eax
mov eax, ecx
mov ecx, 4
imul rcx, rcx, 7
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 7
mov eax, dword [rsp + rax + 8]
mov dword [rsp + 0x30], eax
mov eax, 4
imul rax, rax, 6
mov ecx, 4
imul rcx, rcx, 7
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 5
mov ecx, 4
imul rcx, rcx, 6
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 4
mov ecx, 4
imul rcx, rcx, 5
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 3
mov ecx, 4
imul rcx, rcx, 4
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 2
mov ecx, 4
imul rcx, rcx, 3
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 1
mov ecx, 4
imul rcx, rcx, 2
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 0
mov ecx, 4
imul rcx, rcx, 1
mov eax, dword [rsp + rax + 8]
mov dword [rsp + rcx + 8], eax
mov eax, 4
imul rax, rax, 0
mov ecx, dword [rsp + 0x30]
mov dword [rsp + rax + 8], ecx
jmp 0x1400453a0
mov dword [rsp], 0
jmp 0x14004566e
mov eax, dword [rsp]
inc eax
mov dword [rsp], eax
cmp dword [rsp], 8
jge 0x14004569e
movsxd rax, dword [rsp]
movsxd rcx, dword [rsp]
mov rdx, qword [rsp + 0x150]
mov eax, dword [rdx + rax*4 + 8]
add eax, dword [rsp + rcx*4 + 8]
movsxd rcx, dword [rsp]
mov rdx, qword [rsp + 0x150]
mov dword [rdx + rcx*4 + 8], eax
jmp 0x140045666
add rsp, 0x148
ret