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