Function at 0x1401f7650
Capabilities:
Encode data using xor
Hash data using sha512
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xf0]
sub rsp, 0x1f0
mov rax, qword [rcx + 0x88]
movabs r8, 0x5be0cd19137e2179
mov qword [rbp + 0x28], rax
mov qword [rbp + 0x148], rax
movabs rax, 0x6a09e667f3bcc908
mov qword [rbp - 0x40], rax
mov rax, qword [rcx + 0x90]
mov qword [rbp + 0x30], rax
mov qword [rbp - 0x30], rax
movabs rax, 0xbb67ae8584caa73b
mov qword [rbp - 0x38], rax
mov rax, qword [rcx + 0x98]
mov qword [rbp + 0x38], rax
mov rsi, rax
movabs rax, 0x3c6ef372fe94f82b
mov dword [rsp], 0x3020100
mov qword [rbp - 0x28], rax
mov rax, qword [rcx + 0xa0]
mov qword [rbp + 0x40], rax
mov r10, rax
movabs rax, 0xa54ff53a5f1d36f1
mov dword [rsp + 4], 0x7060504
mov qword [rbp - 0x20], rax
mov rax, qword [rcx + 0xa8]
mov qword [rbp + 0x48], rax
mov r13, rax
mov rax, qword [rcx + 0xb0]
mov qword [rbp + 0x50], rax
mov rdi, rax
mov rax, qword [rcx + 0xb8]
mov qword [rbp + 0x58], rax
mov qword [rbp - 0x18], rax
mov rax, qword [rcx + 0xc0]
mov qword [rbp + 0x60], rax
mov r14, rax
mov dword [rsp + 8], 0xb0a0908
mov dword [rsp + 0xc], 0xf0e0d0c
mov dword [rsp + 0x10], 0x8040a0e
mov dword [rsp + 0x14], 0x60d0f09
mov dword [rsp + 0x18], 0x2000c01
mov dword [rsp + 0x1c], 0x305070b
mov dword [rsp + 0x20], 0xc080b
mov dword [rsp + 0x24], 0xd0f0205
mov dword [rsp + 0x28], 0x6030e0a
mov dword [rsp + 0x2c], 0x4090107
mov dword [rsp + 0x30], 0x1030907
mov dword [rsp + 0x34], 0xe0b0c0d
mov dword [rsp + 0x38], 0xa050602
mov dword [rsp + 0x3c], 0x80f0004
mov dword [rsp + 0x40], 0x7050009
mov dword [rsp + 0x44], 0xf0a0402
mov dword [rsp + 0x48], 0xc0b010e
mov dword [rsp + 0x4c], 0xd030806
mov dword [rsp + 0x50], 0xa060c02
mov dword [rsp + 0x54], 0x3080b00
mov dword [rsp + 0x58], 0x5070d04
mov dword [rsp + 0x5c], 0x9010e0f
mov dword [rsp + 0x60], 0xf01050c
mov dword [rsp + 0x64], 0xa040d0e
mov dword [rsp + 0x68], 0x3060700
mov dword [rsp + 0x6c], 0xb080209
mov dword [rsp + 0x70], 0xe070b0d
mov dword [rsp + 0x74], 0x903010c
mov dword [rsp + 0x78], 0x40f0005
mov dword [rsp + 0x7c], 0xa020608
mov dword [rbp - 0x80], 0x90e0f06
mov dword [rbp - 0x7c], 0x800030b
mov dword [rbp - 0x78], 0x70d020c
mov dword [rbp - 0x74], 0x50a0401
mov dword [rbp - 0x70], 0x408020a
mov dword [rbp - 0x6c], 0x5010607
mov dword [rbp - 0x68], 0xe090b0f
mov dword [rbp - 0x64], 0xd0c03
mov dword [rbp - 0x60], 0x3020100
mov dword [rbp - 0x5c], 0x7060504
mov dword [rbp - 0x58], 0xb0a0908
mov dword [rbp - 0x54], 0xf0e0d0c
mov dword [rbp - 0x50], 0x8040a0e
mov dword [rbp - 0x4c], 0x60d0f09
mov dword [rbp - 0x48], 0x2000c01
mov dword [rbp - 0x44], 0x305070b
mov rbx, qword [rcx + 0xc8]
lea r9, [rbp + 0x70]
mov r12, qword [rcx + 0xd0]
movabs rax, 0x510e527fade682d1
xor rbx, rax
mov qword [rbp - 0x10], r8
movabs rax, 0x9b05688c2b3e6c1f
movabs r11, 0xe07c265404be4294
xor r12, rax
mov r8d, reloc.WS2_32.dll_recv
test dl, dl
movabs rax, 0x1f83d9abfb41bd6b
cmove r11, rax
lea rax, [rcx + 0xe]
sub r9, rcx
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [rax]
movzx edx, byte [rax + 1]
lea rax, [rax + 8]
shl rdx, 8
xor rdx, rcx
movzx ecx, byte [rax - 9]
shl rdx, 8
xor rdx, rcx
movzx ecx, byte [rax - 0xa]
shl rdx, 8
xor rdx, rcx
movzx ecx, byte [rax - 0xb]
shl rdx, 8
xor rdx, rcx
movzx ecx, byte [rax - 0xc]
shl rdx, 8
xor rdx, rcx
movzx ecx, byte [rax - 0xd]
shl rdx, 8
xor rdx, rcx
movzx ecx, byte [rax - 0xe]
shl rdx, 8
xor rdx, rcx
mov qword [r9 + rax - 0x16], rdx
sub r8, 1
jne 0x1401f7900
lea r15, [rsp + 1]
mov qword [rbp], reloc.WS2_32.dll_inet_ntoa
mov qword [rbp + 0x140], r15
jmp 0x1401f7983
mov r10, rdx
movzx eax, byte [r15 - 1]
mov r8, r13
mov rcx, qword [rbp - 0x40]
mov rdx, qword [rbp + rax*8 + 0x70]
add rdx, r13
add rdx, qword [rbp + 0x148]
mov r9, rdx
mov rax, rdx
xor rax, rbx
xor r9, rbx
mov rbx, qword [rbp + 0x140]
shl rax, 0x20
shr r9, 0x20
xor r9, rax
add rcx, r9
xor r8, rcx
mov rax, rcx
xor rax, r13
shl r8, 0x28
shr rax, 0x18
xor r8, rax
movzx eax, byte [r15]
mov r15, qword [rbp + rax*8 + 0x70]
mov rax, r9
add r15, r8
add r15, rdx
xor rax, r15
xor r9, r15
shl rax, 0x30
shr r9, 0x10
xor rax, r9
mov qword [rbp - 0x40], rax
add rax, rcx
mov qword [rbp + 8], rax
mov rcx, r8
xor r8, rax
xor rcx, rax
movzx eax, byte [rbx + 1]
add r8, r8
shr rcx, 0x3f
xor rcx, r8
mov r8, rdi
mov qword [rbp + 0x18], rcx
mov rdx, qword [rbp + rax*8 + 0x70]
mov rcx, qword [rbp - 0x38]
add rdx, rdi
add rdx, qword [rbp - 0x30]
mov r9, rdx
mov rax, rdx
xor rax, r12
xor r9, r12
shl rax, 0x20
shr r9, 0x20
xor r9, rax
add rcx, r9
xor r8, rcx
mov rax, rcx
xor rax, rdi
shl r8, 0x28
shr rax, 0x18
xor r8, rax
movzx eax, byte [rbx + 2]
mov r12, qword [rbp + rax*8 + 0x70]
mov rax, r9
add r12, rdx
add r12, r8
xor rax, r12
xor r9, r12
shl rax, 0x30
shr r9, 0x10
xor rax, r9
mov qword [rbp - 0x38], rax
add rax, rcx
mov rdi, rax
mov qword [rbp - 8], rax
xor rax, r8
xor rdi, r8
add rax, rax
shr rdi, 0x3f
xor rdi, rax
movzx eax, byte [rbx + 3]
mov rdx, qword [rbp + rax*8 + 0x70]
mov r13, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
add rdx, r13
add rdx, rsi
mov r8, r13
mov r9, rdx
mov rax, rdx
xor rax, r11
xor r9, r11
shl rax, 0x20
shr r9, 0x20
xor r9, rax
add rcx, r9
xor r8, rcx
mov rax, rcx
xor rax, r13
shl r8, 0x28
shr rax, 0x18
xor r8, rax
movzx eax, byte [rbx + 4]
mov r13, qword [rbp + rax*8 + 0x70]
mov rax, r9
add r13, rdx
add r13, r8
xor rax, r13
xor r9, r13
shl rax, 0x30
shr r9, 0x10
xor rax, r9
mov qword [rbp + 0x20], rax
lea r11, [rax + rcx]
mov rcx, qword [rbp - 0x20]
mov rsi, r11
mov rax, r11
xor rax, r8
xor rsi, r8
add rax, rax
shr rsi, 0x3f
xor rsi, rax
movzx eax, byte [rbx + 5]
mov rdx, qword [rbp + rax*8 + 0x70]
mov rax, qword [rbp - 0x10]
add rdx, r14
add rdx, r10
mov r10, rax
xor rax, rdx
xor r10, rdx
shl rax, 0x20
shr r10, 0x20
xor r10, rax
movzx eax, byte [rbx + 6]
add rcx, r10
mov r9, r10
mov r8, rcx
xor r8, r14
xor r14, rcx
mov rax, qword [rbp + rax*8 + 0x70]
add rax, rdx
shl r14, 0x28
shr r8, 0x18
xor r8, r14
add rax, r8
xor r9, rax
mov qword [rbp + 0x10], rax
xor r10, rax
shl r9, 0x30
shr r10, 0x10
xor r9, r10
lea rbx, [r9 + rcx]
mov r14, rbx
mov rax, rbx
xor rax, r8
xor r14, r8
add rax, rax
shr r14, 0x3f
xor r14, rax
mov rax, qword [rbp + 0x140]
movzx eax, byte [rax + 7]
mov rdx, qword [rbp + rax*8 + 0x70]
add rdx, rdi
add rdx, r15
mov r15, qword [rbp + 0x140]
mov r10, rdx
mov rax, rdx
xor rax, r9
xor r10, r9
shl rax, 0x20
shr r10, 0x20
xor r10, rax
lea r8, [r11 + r10]
mov r9, r8
mov rax, r8
xor rax, rdi
xor r9, rdi
shr rax, 0x18
shl r9, 0x28
xor r9, rax
movzx eax, byte [r15 + 8]
mov rax, qword [rbp + rax*8 + 0x70]
add rax, rdx
add rax, r9
mov rcx, rax
mov qword [rbp + 0x148], rax
xor rax, r10
xor rcx, r10
shr rax, 0x10
shl rcx, 0x30
xor rcx, rax
mov qword [rbp - 0x10], rcx
lea rax, [r8 + rcx]
mov rdi, rax
mov qword [rbp - 0x28], rax
xor rax, r9
xor rdi, r9
add rax, rax
shr rdi, 0x3f
xor rdi, rax
movzx eax, byte [r15 + 9]
mov rdx, qword [rbp + rax*8 + 0x70]
add rdx, r12
add rdx, rsi
mov r10, rdx
mov rax, rdx
xor rax, qword [rbp - 0x40]
xor r10, qword [rbp - 0x40]
shl rax, 0x20
shr r10, 0x20
xor r10, rax
lea r8, [rbx + r10]
mov rbx, r10
mov r9, r8
mov rax, r8
xor rax, rsi
xor r9, rsi
shr rax, 0x18
shl r9, 0x28
xor r9, rax
movzx eax, byte [r15 + 0xa]
mov rcx, r9
mov rax, qword [rbp + rax*8 + 0x70]
add rax, rdx
add rax, r9
xor rbx, rax
mov qword [rbp - 0x30], rax
xor r10, rax
shl rbx, 0x30
shr r10, 0x10
xor rbx, r10
lea rax, [r8 + rbx]
xor rcx, rax
mov qword [rbp - 0x20], rax
xor rax, r9
shr rcx, 0x3f
add rax, rax
xor rcx, rax
movzx eax, byte [r15 + 0xb]
mov qword [rbp - 0x18], rcx
mov rdx, qword [rbp + rax*8 + 0x70]
add rdx, r13
add rdx, r14
mov r10, rdx
xor r10, qword [rbp - 0x38]
mov r9, r14
mov r11, qword [rbp + 0x18]
mov rax, rdx
xor rax, qword [rbp - 0x38]
mov r8, qword [rbp + 8]
shl rax, 0x20
shr r10, 0x20
xor r10, rax
movzx eax, byte [r15 + 0xc]
add r8, r10
mov r12, r10
xor r9, r8
xor r14, r8
shl r9, 0x28
mov rsi, qword [rbp + rax*8 + 0x70]
add rsi, rdx
shr r14, 0x18
xor r9, r14
add rsi, r9
mov r14, r9
xor r10, rsi
xor r12, rsi
shr r10, 0x10
shl r12, 0x30
xor r12, r10
mov r10, r11
lea rax, [r12 + r8]
mov r8, qword [rbp - 8]
xor r14, rax
mov qword [rbp - 0x40], rax
xor rax, r9
shr r14, 0x3f
add rax, rax
xor r14, rax
movzx eax, byte [r15 + 0xd]
mov rdx, qword [rbp + rax*8 + 0x70]
add rdx, qword [rbp + 0x10]
add rdx, r11
mov r9, rdx
mov rax, rdx
xor rax, qword [rbp + 0x20]
xor r9, qword [rbp + 0x20]
shl rax, 0x20
shr r9, 0x20
xor r9, rax
movzx eax, byte [r15 + 0xe]
add r8, r9
add r15, 0x10
xor r11, r8
mov qword [rbp + 0x140], r15
shr r11, 0x18
xor r10, r8
add rdx, qword [rbp + rax*8 + 0x70]
shl r10, 0x28
xor r10, r11
add rdx, r10
mov r13, r10
mov r11, rdx
mov rax, rdx
xor rax, r9
xor r11, r9
shr rax, 0x10
shl r11, 0x30
xor r11, rax
add r8, r11
xor r13, r8
mov qword [rbp - 0x38], r8
shr r13, 0x3f
mov rax, r8
xor rax, r10
add rax, rax
xor r13, rax
sub qword [rbp], 1
jne 0x1401f7980
mov rax, qword [rbp + 0x130]
xor rbx, r13
xor rbx, qword [rbp + 0x48]
xor rdi, r12
xor rsi, qword [rbp - 0x28]
xor rdx, qword [rbp - 0x20]
xor r11, qword [rbp - 0x18]
xor rsi, qword [rbp + 0x38]
xor rdx, qword [rbp + 0x40]
xor rdi, qword [rbp + 0x50]
xor r11, qword [rbp + 0x58]
mov rcx, qword [rbp + 0x28]
xor rcx, qword [rbp + 0x148]
xor rcx, qword [rbp - 0x40]
xor r14, qword [rbp - 0x10]
mov qword [rax + 0x88], rcx
mov rcx, qword [rbp + 0x30]
xor rcx, r8
mov qword [rax + 0xa8], rbx
xor rcx, qword [rbp - 0x30]
xor r14, qword [rbp + 0x60]
mov rbx, qword [rsp + 0x238]
mov qword [rax + 0xc0], r14
mov qword [rax + 0x90], rcx
mov qword [rax + 0x98], rsi
mov qword [rax + 0xa0], rdx
mov qword [rax + 0xb0], rdi
mov qword [rax + 0xb8], r11
add rsp, 0x1f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret