Function at 0x14009e6e0
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb0]
sub rsp, 0x1b0
mov rax, qword [0x1401858e0]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov rdi, rcx
mov qword [rsp + 0x50], rcx
mov rcx, qword [rcx + 0x80]
movabs rax, 0xbb67ae8584caa73b
mov qword [rsp + 0x20], rcx
movabs r8, 0x3c6ef372fe94f82b
mov qword [rsp + 0x28], rax
movabs r10, 0x1f83d9abfb41bd6b
mov rcx, qword [rdi + 0x90]
movabs rax, 0x510e527fade682d1
mov rsi, qword [rdi + 0xc0]
movabs r15, 0x5be0cd19137e2179
mov r14, qword [rdi + 0xc8]
xor rsi, rax
mov r11, qword [rdi + 0x88]
movabs rax, 0x9b05688c2b3e6c1f
mov rbx, qword [rdi + 0xa0]
xor r14, rax
mov r13, qword [rdi + 0xb8]
movabs rax, 0xe07c265404be4294
mov qword [rsp + 0x10], rcx
test edx, edx
mov rcx, qword [rdi + 0x98]
mov qword [rsp + 0x18], rcx
cmovne r10, rax
mov rcx, qword [rdi + 0xa8]
lea rax, [rdi + 6]
mov qword [rsp + 0x38], rcx
mov rcx, qword [rdi + 0xb0]
mov qword [rsp + 8], r8
movabs r8, 0xa54ff53a5f1d36f1
mov qword [rsp + 0x40], rcx
mov dword [rbp - 0x20], 0x3020100
mov dword [rbp - 0x1c], 0x7060504
mov dword [rbp - 0x18], 0xb0a0908
mov dword [rbp - 0x14], 0xf0e0d0c
mov dword [rbp - 0x10], 0x8040a0e
mov dword [rbp - 0xc], 0x60d0f09
mov dword [rbp - 8], 0x2000c01
mov dword [rbp - 4], 0x305070b
mov dword [rbp], 0xc080b
mov dword [rbp + 4], 0xd0f0205
mov dword [rbp + 8], 0x6030e0a
mov dword [rbp + 0xc], 0x4090107
mov dword [rbp + 0x10], 0x1030907
mov dword [rbp + 0x14], 0xe0b0c0d
mov dword [rbp + 0x18], 0xa050602
mov dword [rbp + 0x1c], 0x80f0004
mov dword [rbp + 0x20], 0x7050009
mov dword [rbp + 0x24], 0xf0a0402
mov dword [rbp + 0x28], 0xc0b010e
mov dword [rbp + 0x2c], 0xd030806
mov dword [rbp + 0x30], 0xa060c02
mov dword [rbp + 0x34], 0x3080b00
mov dword [rbp + 0x38], 0x5070d04
mov dword [rbp + 0x3c], 0x9010e0f
mov dword [rbp + 0x40], 0xf01050c
mov dword [rbp + 0x44], 0xa040d0e
mov dword [rbp + 0x48], 0x3060700
mov dword [rbp + 0x4c], 0xb080209
mov dword [rbp + 0x50], 0xe070b0d
mov dword [rbp + 0x54], 0x903010c
mov dword [rbp + 0x58], 0x40f0005
mov dword [rbp + 0x5c], 0xa020608
mov dword [rbp + 0x60], 0x90e0f06
mov dword [rbp + 0x64], 0x800030b
mov dword [rbp + 0x68], 0x70d020c
mov dword [rbp + 0x6c], 0x50a0401
mov dword [rbp + 0x70], 0x408020a
mov dword [rbp + 0x74], 0x5010607
mov dword [rbp + 0x78], 0xe090b0f
mov dword [rbp + 0x7c], 0xd0c03
mov dword [rbp + 0x80], 0x3020100
mov dword [rbp + 0x84], 0x7060504
mov dword [rbp + 0x88], 0xb0a0908
mov dword [rbp + 0x8c], 0xf0e0d0c
mov dword [rbp + 0x90], 0x8040a0e
mov dword [rbp + 0x94], 0x60d0f09
mov dword [rbp + 0x98], 0x2000c01
mov dword [rbp + 0x9c], 0x305070b
mov qword [rsp], r8
lea r9, [rsp + 0x60]
mov r8d, reloc.WS2_32.dll_recv
sub r9, rdi
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 - 0xe], rdx
sub r8, 1
jne 0x14009e970
mov rdi, qword [rsp + 0x20]
lea r12, [rbp - 0x1f]
mov qword [rsp + 0x48], reloc.WS2_32.dll_inet_ntoa
movabs r9, 0x6a09e667f3bcc908
jmp 0x14009e9f5
mov r11, qword [rsp + 0x30]
movzx eax, byte [r12 - 1]
mov r8, qword [rsp + 0x28]
mov rcx, qword [rsp + rax*8 + 0x60]
movzx eax, byte [r12]
add rcx, rbx
add rdi, rcx
xor rsi, rdi
rol rsi, 0x20
mov rcx, qword [rsp + rax*8 + 0x60]
add r9, rsi
movzx eax, byte [r12 + 1]
mov rdx, r9
xor rdx, rbx
rol rdx, 0x28
add rcx, rdx
add rdi, rcx
mov rcx, qword [rsp + rax*8 + 0x60]
add rcx, qword [rsp + 0x38]
xor rsi, rdi
movzx eax, byte [r12 + 2]
add r11, rcx
xor r14, r11
rol rsi, 0x30
add r9, rsi
rol r14, 0x20
add r8, r14
mov qword [rsp + 0x20], r9
mov rcx, qword [rsp + rax*8 + 0x60]
mov rbx, r9
movzx eax, byte [r12 + 3]
xor rbx, rdx
mov rdx, r8
rol rbx, 1
xor rdx, qword [rsp + 0x38]
rol rdx, 0x28
add rcx, rdx
add r11, rcx
mov rcx, qword [rsp + rax*8 + 0x60]
add rcx, qword [rsp + 0x40]
xor r14, r11
movzx eax, byte [r12 + 4]
mov qword [rsp + 0x30], r11
mov r11, qword [rsp + 0x10]
add r11, rcx
rol r14, 0x30
mov rcx, qword [rsp + rax*8 + 0x60]
add r8, r14
movzx eax, byte [r12 + 5]
mov r9, r8
xor r9, rdx
mov qword [rsp + 0x28], r8
mov rdx, r11
rol r9, 1
xor rdx, r10
mov r10, qword [rsp + 8]
rol rdx, 0x20
add r10, rdx
mov r8, r10
xor r8, qword [rsp + 0x40]
rol r8, 0x28
add rcx, r8
add r11, rcx
mov rcx, qword [rsp + rax*8 + 0x60]
mov rax, qword [rsp]
add rcx, r13
mov qword [rsp + 0x10], r11
xor r11, rdx
rol r11, 0x30
add r10, r11
mov qword [rsp + 8], r10
xor r10, r8
mov r8, qword [rsp + 0x18]
add r8, rcx
rol r10, 1
xor r15, r8
rol r15, 0x20
add rax, r15
mov rdx, rax
mov qword [rsp], rax
xor rdx, r13
rol rdx, 0x28
movzx eax, byte [r12 + 6]
mov rcx, qword [rsp + rax*8 + 0x60]
mov rax, qword [rsp]
add rcx, rdx
add r8, rcx
xor r15, r8
mov qword [rsp + 0x18], r8
mov r8, qword [rsp + 8]
rol r15, 0x30
add rax, r15
mov qword [rsp], rax
mov r13, rax
movzx eax, byte [r12 + 7]
xor r13, rdx
rol r13, 1
mov rcx, qword [rsp + rax*8 + 0x60]
movzx eax, byte [r12 + 8]
add rcx, r9
add rdi, rcx
xor r15, rdi
rol r15, 0x20
mov rcx, qword [rsp + rax*8 + 0x60]
add r8, r15
mov rdx, r8
xor rdx, r9
mov r9, qword [rsp + 0x30]
rol rdx, 0x28
add rcx, rdx
add rdi, rcx
xor r15, rdi
rol r15, 0x30
add r8, r15
mov rax, r8
mov qword [rsp + 8], r8
xor rax, rdx
rol rax, 1
mov qword [rsp + 0x38], rax
movzx eax, byte [r12 + 9]
mov rcx, qword [rsp + rax*8 + 0x60]
mov rax, qword [rsp]
add rcx, r10
add r9, rcx
mov rdx, r9
xor rdx, rsi
rol rdx, 0x20
add rax, rdx
mov qword [rsp], rax
mov r8, rax
movzx eax, byte [r12 + 0xa]
xor r8, r10
rol r8, 0x28
mov rcx, qword [rsp + rax*8 + 0x60]
mov rax, qword [rsp]
add rcx, r8
add r9, rcx
mov rsi, r9
mov qword [rsp + 0x30], r9
mov r9, qword [rsp + 0x20]
xor rsi, rdx
rol rsi, 0x30
add rax, rsi
mov qword [rsp], rax
xor rax, r8
mov r8, qword [rsp + 0x10]
rol rax, 1
mov qword [rsp + 0x40], rax
movzx eax, byte [r12 + 0xb]
mov rcx, qword [rsp + rax*8 + 0x60]
movzx eax, byte [r12 + 0xc]
add rcx, r13
add r8, rcx
mov rdx, r8
xor rdx, r14
mov rcx, qword [rsp + rax*8 + 0x60]
rol rdx, 0x20
add r9, rdx
xor r13, r9
rol r13, 0x28
add rcx, r13
add r8, rcx
mov qword [rsp + 0x10], r8
movzx eax, byte [r12 + 0xd]
lea r12, [r12 + 0x10]
mov r10, qword [rsp + 0x18]
mov r14, r8
xor r14, rdx
rol r14, 0x30
mov rcx, qword [rsp + rax*8 + 0x60]
add r9, r14
movzx eax, byte [r12 - 2]
add rcx, rbx
add r10, rcx
xor r13, r9
mov rdx, r10
rol r13, 1
xor rdx, r11
mov r11, qword [rsp + 0x28]
mov rcx, qword [rsp + rax*8 + 0x60]
rol rdx, 0x20
add r11, rdx
mov r8, r11
xor r8, rbx
rol r8, 0x28
add rcx, r8
add r10, rcx
mov qword [rsp + 0x18], r10
xor r10, rdx
rol r10, 0x30
add r11, r10
mov rbx, r11
mov qword [rsp + 0x28], r11
xor rbx, r8
rol rbx, 1
sub qword [rsp + 0x48], 1
jne 0x14009e9f0
mov qword [rsp + 0x20], rdi
mov rdi, qword [rsp + 0x50]
mov rax, qword [rdi + 0x80]
xor rax, r9
xor rax, qword [rsp + 0x20]
mov qword [rdi + 0x80], rax
mov rax, qword [rdi + 0x88]
xor rax, r11
xor rax, qword [rsp + 0x30]
mov qword [rdi + 0x88], rax
mov rax, qword [rdi + 0x90]
xor rax, qword [rsp + 8]
xor rax, qword [rsp + 0x10]
mov qword [rdi + 0x90], rax
mov rax, qword [rdi + 0x98]
xor rax, qword [rsp]
xor rax, qword [rsp + 0x18]
mov qword [rdi + 0x98], rax
mov rax, qword [rdi + 0xa0]
xor rax, rsi
xor rax, rbx
mov qword [rdi + 0xa0], rax
mov rax, qword [rdi + 0xa8]
xor rax, r14
xor rax, qword [rsp + 0x38]
mov qword [rdi + 0xa8], rax
mov rax, qword [rdi + 0xb0]
xor rax, qword [rsp + 0x40]
xor rax, r10
mov qword [rdi + 0xb0], rax
mov rax, qword [rdi + 0xb8]
xor rax, r15
xor rax, r13
mov qword [rdi + 0xb8], rax
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1401150e0
lea r11, [rsp + 0x1b0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret