Function at 0x180087300
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 - 0x100]
sub rsp, 0x200
mov rax, qword [rcx + 0x88]
movabs rsi, 0x6a09e667f3bcc908
mov r15, qword [rcx + 0xc8]
mov r10, rax
mov qword [rbp + 0x38], rax
movabs r12, 0xbb67ae8584caa73b
mov rax, qword [rcx + 0x90]
movabs r14, 0x5be0cd19137e2179
mov qword [rbp + 0x40], rax
mov qword [rbp - 0x38], rax
mov rax, qword [rcx + 0x98]
mov qword [rbp + 0x48], rax
mov r13, rax
movabs rax, 0x3c6ef372fe94f82b
mov dword [rsp], 0x3020100
mov qword [rbp - 0x30], rax
mov rax, qword [rcx + 0xa0]
mov qword [rbp + 0x50], rax
mov qword [rbp - 0x40], rax
movabs rax, 0xa54ff53a5f1d36f1
mov qword [rbp - 0x28], rax
mov rax, qword [rcx + 0xa8]
mov qword [rbp + 0x58], rax
mov rbx, rax
mov rax, qword [rcx + 0xb0]
mov qword [rbp + 0x60], rax
mov qword [rbp - 0x20], rax
mov rax, qword [rcx + 0xb8]
mov qword [rbp + 0x68], rax
mov qword [rbp - 0x18], rax
mov rax, qword [rcx + 0xc0]
mov qword [rbp + 0x70], rax
mov qword [rbp + 0x158], rax
movabs rax, 0x510e527fade682d1
mov dword [rsp + 4], 0x7060504
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 rdi, qword [rcx + 0xd0]
lea r9, [rbp + 0x80]
xor r15, rax
movabs r11, 0xe07c265404be4294
movabs rax, 0x9b05688c2b3e6c1f
mov r8d, reloc.WS2_32.dll_recv
xor rdi, rax
movabs rax, 0x1f83d9abfb41bd6b
test dl, dl
cmove r11, rax
lea rax, [rcx + 0xe]
sub r9, rcx
nop dword [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 0x1800875a0
lea rax, [rsp + 1]
mov qword [rbp - 8], reloc.WS2_32.dll_inet_ntoa
mov qword [rbp + 0x150], rax
jmp 0x18008761c
mov r14, rdi
mov rdi, qword [rbp - 0x10]
movzx eax, byte [rax - 1]
mov r9, qword [rbp + rax*8 + 0x80]
add r9, rbx
add r9, r10
mov rax, r9
xor rax, r15
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
xor rdx, rax
lea r10, [rdx + rsi]
mov rax, r10
xor rax, rbx
mov rbx, qword [rbp + 0x150]
mov r8, rax
shr rax, 0x18
shl r8, 0x28
xor r8, rax
movzx eax, byte [rbx]
mov r15, qword [rbp + rax*8 + 0x80]
add r15, r9
add r15, r8
mov rax, r15
xor rax, rdx
mov rcx, rax
shr rax, 0x10
shl rcx, 0x30
xor rcx, rax
mov qword [rbp + 0x10], rcx
lea rax, [rcx + r10]
mov qword [rbp - 0x10], rax
xor rax, r8
mov rcx, rax
add rax, rax
shr rcx, 0x3f
xor rcx, rax
movzx eax, byte [rbx + 1]
mov qword [rbp + 0x20], rcx
mov r9, qword [rbp + rax*8 + 0x80]
add r9, qword [rbp - 0x20]
add r9, qword [rbp - 0x38]
mov rax, r9
xor rax, rdi
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
xor rdx, rax
lea r10, [rdx + r12]
mov rax, r10
xor rax, qword [rbp - 0x20]
mov r8, rax
shr rax, 0x18
shl r8, 0x28
xor r8, rax
movzx eax, byte [rbx + 2]
mov r12, qword [rbp + rax*8 + 0x80]
add r12, r9
add r12, r8
mov rax, r12
xor rax, rdx
mov rcx, rax
shr rax, 0x10
shl rcx, 0x30
xor rcx, rax
mov qword [rbp + 0x18], rcx
lea rax, [rcx + r10]
mov qword [rbp + 0x30], rax
xor rax, r8
mov rdi, rax
add rax, rax
shr rdi, 0x3f
xor rdi, rax
movzx eax, byte [rbx + 3]
mov r9, qword [rbp + rax*8 + 0x80]
add r9, qword [rbp - 0x18]
add r9, r13
mov rax, r9
xor rax, r11
mov rdx, rax
shr rdx, 0x20
shl rax, 0x20
xor rdx, rax
mov r10, qword [rbp - 0x30]
add r10, rdx
mov rax, r10
xor rax, qword [rbp - 0x18]
mov r8, rax
shr rax, 0x18
shl r8, 0x28
xor r8, rax
movzx eax, byte [rbx + 4]
mov r13, qword [rbp + rax*8 + 0x80]
add r13, r9
add r13, r8
mov rax, r13
xor rax, rdx
mov rcx, rax
shr rax, 0x10
shl rcx, 0x30
xor rcx, rax
mov qword [rbp + 0x28], rcx
lea r11, [rcx + r10]
mov r10, qword [rbp - 0x28]
mov rax, r11
xor rax, r8
mov rsi, rax
add rax, rax
shr rsi, 0x3f
xor rsi, rax
movzx eax, byte [rbx + 5]
mov r9, qword [rbp + rax*8 + 0x80]
add r9, qword [rbp + 0x158]
add r9, qword [rbp - 0x40]
mov rax, r9
xor rax, r14
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
xor rdx, rax
mov rax, qword [rbp + 0x158]
add r10, rdx
xor rax, r10
mov r8, rax
shr rax, 0x18
shl r8, 0x28
xor r8, rax
movzx eax, byte [rbx + 6]
mov rax, qword [rbp + rax*8 + 0x80]
add rax, r9
add rax, r8
mov qword [rbp - 0x40], rax
xor rax, rdx
mov rdx, rax
shr rax, 0x10
shl rdx, 0x30
xor rdx, rax
lea rbx, [rdx + r10]
mov rax, rbx
xor rax, r8
mov r14, rax
add rax, rax
shr r14, 0x3f
xor r14, rax
mov rax, qword [rbp + 0x150]
movzx eax, byte [rax + 7]
mov r8, qword [rbp + rax*8 + 0x80]
add r8, rdi
add r8, r15
mov rax, r8
xor rax, rdx
mov rdx, rax
shl rax, 0x20
shr rdx, 0x20
xor rdx, rax
lea r9, [rdx + r11]
mov r11, qword [rbp + 0x150]
mov rax, r9
xor rax, rdi
mov r10, rax
shr rax, 0x18
shl r10, 0x28
xor r10, rax
movzx eax, byte [r11 + 8]
mov rax, qword [rbp + rax*8 + 0x80]
add rax, r10
add rax, r8
mov qword [rbp], rax
xor rax, rdx
mov rdi, rax
shr rax, 0x10
shl rdi, 0x30
xor rdi, rax
lea rax, [r9 + rdi]
xor r10, rax
mov qword [rbp - 0x30], rax
mov rcx, r10
shr rcx, 0x3f
lea rax, [r10 + r10]
xor rcx, rax
movzx eax, byte [r11 + 9]
mov qword [rbp - 0x20], rcx
mov rdx, qword [rbp + rax*8 + 0x80]
mov rax, qword [rbp + 0x10]
add rdx, rsi
add rdx, r12
xor rax, rdx
mov r10, rax
shl rax, 0x20
shr r10, 0x20
xor r10, rax
lea r9, [r10 + rbx]
mov rax, r9
xor rax, rsi
mov r8, rax
shr rax, 0x18
shl r8, 0x28
xor r8, rax
movzx eax, byte [r11 + 0xa]
mov rax, qword [rbp + rax*8 + 0x80]
add rax, r8
add rax, rdx
xor r10, rax
mov qword [rbp - 0x38], rax
mov r15, r10
shr r10, 0x10
shl r15, 0x30
xor r15, r10
mov r10, qword [rbp - 0x10]
lea rax, [r15 + r9]
mov qword [rbp - 0x28], rax
xor rax, r8
mov rcx, rax
add rax, rax
shr rcx, 0x3f
xor rcx, rax
movzx eax, byte [r11 + 0xb]
mov qword [rbp - 0x18], rcx
mov rdx, qword [rbp + rax*8 + 0x80]
mov rax, qword [rbp + 0x18]
add rdx, r14
add rdx, r13
xor rax, rdx
mov r8, rax
shl rax, 0x20
shr r8, 0x20
xor r8, rax
add r10, r8
mov rax, r10
xor rax, r14
mov r9, rax
shr rax, 0x18
shl r9, 0x28
xor r9, rax
movzx eax, byte [r11 + 0xc]
mov r13, qword [rbp + rax*8 + 0x80]
add r13, r9
add r13, rdx
mov rax, r13
xor rax, r8
mov r14, rax
shr rax, 0x10
shl r14, 0x30
xor r14, rax
lea rsi, [r14 + r10]
mov qword [rbp - 0x10], r14
mov rax, rsi
xor rax, r9
mov r9, qword [rbp + 0x30]
mov rcx, rax
add rax, rax
shr rcx, 0x3f
xor rcx, rax
movzx eax, byte [r11 + 0xd]
mov qword [rbp + 0x158], rcx
mov rdx, qword [rbp + rax*8 + 0x80]
add rdx, qword [rbp - 0x40]
add rdx, qword [rbp + 0x20]
mov rax, qword [rbp + 0x28]
xor rax, rdx
mov r8, rax
shl rax, 0x20
shr r8, 0x20
xor r8, rax
add r9, r8
mov rax, r9
xor rax, qword [rbp + 0x20]
mov r10, rax
shr rax, 0x18
shl r10, 0x28
xor r10, rax
movzx eax, byte [r11 + 0xe]
mov rcx, qword [rbp + rax*8 + 0x80]
add rcx, r10
add rcx, rdx
mov rax, rcx
mov qword [rbp - 0x40], rcx
xor rax, r8
mov r11, rax
shr rax, 0x10
shl r11, 0x30
xor r11, rax
lea r12, [r11 + r9]
xor r10, r12
mov rbx, r10
shr rbx, 0x3f
lea rax, [r10 + r10]
mov r10, qword [rbp]
xor rbx, rax
mov rax, qword [rbp + 0x150]
add rax, 0x10
sub qword [rbp - 8], 1
mov qword [rbp + 0x150], rax
jne 0x180087615
mov rax, qword [rbp + 0x140]
xor rcx, qword [rbp - 0x28]
xor rcx, qword [rbp + 0x50]
xor rbx, qword [rbp + 0x58]
xor rsi, qword [rbp + 0x38]
xor rbx, r15
xor r12, qword [rbp + 0x40]
xor rsi, r10
xor r13, qword [rbp - 0x30]
xor r11, qword [rbp - 0x18]
xor r12, qword [rbp - 0x38]
xor r13, qword [rbp + 0x48]
xor r11, qword [rbp + 0x68]
xor rdi, qword [rbp + 0x70]
mov qword [rax + 0xa0], rcx
mov rcx, qword [rbp + 0x60]
xor rcx, r14
mov qword [rax + 0xa8], rbx
xor rcx, qword [rbp - 0x20]
xor rdi, qword [rbp + 0x158]
mov rbx, qword [rsp + 0x248]
mov qword [rax + 0xc0], rdi
mov qword [rax + 0x88], rsi
mov qword [rax + 0x90], r12
mov qword [rax + 0x98], r13
mov qword [rax + 0xb0], rcx
mov qword [rax + 0xb8], r11
add rsp, 0x200
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret