Function at 0x140038f10
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 r14
push r15
sub rsp, 0x3e0
lea rbp, [rsp + 0x60]
and rbp, 0xffffffffffffffc0
mov rax, qword [0x140177090]
xor rax, rsp
mov qword [rbp + 0x370], rax
mov rsi, rcx
mov r14, rdx
lea rcx, [rbp + 0x144]
xor edx, edx
mov r8d, 0x1fc
mov dword [rbp + 0x140], 0
call sub.MSVCR120.dll_memset
xor eax, eax
lea rcx, [rbp]
movups xmm0, xmmword [str.FABcoin_01230123]
mov qword [rbp + 0x341], rax
mov qword [rbp + 0x349], rax
mov dword [rbp + 0x351], eax
movups xmmword [rbp + 0x358], xmm0
mov word [rbp + 0x355], ax
mov byte [rbp + 0x357], al
movzx eax, byte [0x140160588]
mov byte [rbp + 0x368], al
xor eax, eax
mov dword [rbp + 0x360], 0xb8
mov dword [rbp + 0x364], 7
xor edx, edx
mov r8d, 0x100
mov byte [rbp + 0x340], 0
mov qword [rbp + 0x100], 0x101002e
mov qword [rbp + 0x108], 0
movups xmm0, xmmword [rbp + 0x358]
movaps xmmword [rbp + 0x130], xmm0
mov word [rbp + 0x110], 0
mov qword [rbp + 0x112], rax
mov dword [rbp + 0x11a], eax
mov word [rbp + 0x11e], ax
mov qword [rbp + 0x120], rax
mov qword [rbp + 0x128], rax
call sub.MSVCR120.dll_memset
xor eax, eax
lea rdx, [0x140139e40]
lea ecx, [rax + 4]
movdqu xmm1, xmmword [rbp + rax + 0x100]
movdqu xmm0, xmmword [rax + rdx]
add rax, 0x10
pxor xmm1, xmm0
movdqu xmmword [rbp + rax - 0x10], xmm1
dec rcx
jne 0x140039030
movzx eax, byte [rbp + 0xc2]
mov edi, 0xcc
mov r15d, 0x80
nop dword [rax]
nop word [rax + rax]
movzx eax, al
mov rbx, r15
lea rcx, [rbp + 0x40]
sub rbx, rax
add rcx, rax
mov rdx, rsi
cmp rdi, rbx
jbe 0x1400390b7
mov r8, rbx
call sub.MSVCR120.dll_memcpy
add word [rbp + 0xc0], r15w
lea rdx, [rbp + 0x40]
lea rcx, [rbp]
add rsi, rbx
call fcn.140036440
xor al, al
mov byte [rbp + 0xc2], al
sub rdi, rbx
je 0x1400390c6
jmp 0x140039070
mov r8, rdi
call sub.MSVCR120.dll_memcpy
add byte [rbp + 0xc2], dil
xor r11d, r11d
xor r10d, r10d
mov edi, 0x180
xor ebx, ebx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r14]
shl r10d, 8
add r11d, 8
or r10d, eax
cmp r11d, 0x18
jb 0x14003914d
add r11d, 0xffffffe8
mov byte [rbp + rbx + 0x140], 0
mov r9d, 1
nop word [rax + rax]
mov eax, 3
mov r8d, r10d
sub eax, r9d
lea edx, [rax*8]
mov eax, 0xffffff
lea ecx, [rdx + r11]
shr r8d, cl
mov ecx, edx
shr eax, cl
and r8b, al
lea eax, [r9 + rbx]
inc r9d
mov byte [rbp + rax + 0x140], r8b
cmp r9d, 4
jb 0x140039110
add ebx, 4
inc r14
dec rdi
jne 0x1400390e0
lea r14, [rbp + 0x140]
nop dword [rax]
mov ecx, dword [r14]
lea r8, [rbp + 0x100]
mov ebx, ecx
mov eax, ecx
shr eax, 0x10
and ebx, 0xff0000
or ebx, eax
mov eax, ecx
and ecx, 0xff00
shl eax, 0x10
shr ebx, 8
or eax, ecx
lea rcx, [rbp]
shl eax, 8
or ebx, eax
mov edx, ebx
shr edx, 1
call fcn.140038dd0
and ebx, 1
xor r9d, r9d
xor eax, eax
lea r10d, [r9 + 8]
lea r11d, [r9 + 0x10]
imul edx, ebx, 0xb8
lea rbx, [rbp + 0x100]
shr rdx, 3
lea edi, [rax + 2]
add rbx, rdx
lea esi, [rax + 0x17]
nop word [rax + rax]
movzx ecx, byte [rbx]
shl eax, 8
add r9d, 8
add r11d, 8
add r10d, 8
or eax, ecx
cmp r9d, 0x17
jb 0x140039235
add r11d, 0xffffffe9
add r10d, 0xffffffe9
add r9d, 0xffffffe9
mov ecx, r11d
mov r8d, eax
mov edx, eax
shr r8d, cl
lea ecx, [rdi - 2]
and r8b, 0x7f
mov byte [rbp + rcx + 0x358], r8b
mov ecx, r10d
mov r8d, eax
shr r8d, cl
lea ecx, [rdi - 1]
mov byte [rbp + rcx + 0x358], r8b
mov ecx, r9d
shr edx, cl
mov ecx, edi
add edi, 3
mov byte [rbp + rcx + 0x358], dl
inc rbx
dec rsi
jne 0x1400391d0
movdqu xmm0, xmmword [rbp + 0x340]
movdqu xmm1, xmmword [rbp + 0x358]
mov ecx, reloc.WS2_32.dll_recv
mov edx, 8
pxor xmm1, xmm0
movdqu xmmword [rbp + 0x340], xmm1
movzx eax, byte [rbp + rcx + 0x358]
lea rcx, [rcx + 1]
xor byte [rbp + rcx + 0x33f], al
dec rdx
jne 0x140039263
add r14, 4
dec r15
jne 0x140039160
xor eax, eax
nop word [rax + rax]
cmp byte [rbp + rax + 0x340], 0
jne 0x1400392aa
inc rax
cmp rax, 0x18
jb 0x140039290
mov eax, 1
jmp 0x1400392ac
xor eax, eax
mov rcx, qword [rbp + 0x370]
xor rcx, rsp
call fcn.140129b50
lea r11, [rsp + 0x3e0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret