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