Function at 0x140017d70
Capabilities:
Check mutex on windows
Encode data using xor
Generate random numbers using a mersenne twister
Initialize winsock library
Resolve dns

Disassembly:
push rbp
push rbx
push rdi
lea rbp, [rsp - 0x814b0]
mov eax, 0x815b0
call fcn.140052680
sub rsp, rax
mov rax, qword [0x14006d018]
xor rax, rsp
mov qword [rbp + 0x81490], rax
xor ebx, ebx
lea rcx, [rbp - 0x40]
xor edx, edx
mov dword [rsp + 0x20], ebx
mov r8d, 0x1000
mov edi, ebx
call fcn.1400385a0
lea r9, [rbp - 0x40]
call fcn.140016ee0
mov r8d, 0x1000
lea rdx, [rbp - 0x40]
lea rcx, [0x14006dc60]
call fcn.140038190
lea r8, [0x14006dc60]
xor ecx, ecx
lea edx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
test rax, rax
je 0x140017e12
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x140017e12
xor eax, eax
mov rcx, qword [rbp + 0x81490]
xor rcx, rsp
call fcn.14001a320
add rsp, 0x815b0
pop rdi
pop rbx
pop rbp
ret
mov qword [rsp + 0x815d0], rsi
lea rcx, [rbp + 0x1364]
mov qword [rsp + 0x815d8], r12
xor eax, eax
mov qword [rsp + 0x815e0], r13
xor edx, edx
mov qword [rsp + 0x815a8], r14
mov r8d, 0x80004
mov qword [rsp + 0x815a0], r15
mov qword [rbp + 0x1350], rax
call fcn.1400385a0
xor edx, edx
lea rcx, [rbp + 0x81390]
mov r8d, 0xa8
call fcn.1400385a0
xor edx, edx
mov qword [rbp + 0x1358], rbx
mov r8d, 0x80000
mov dword [rbp + 0x1360], ebx
lea rcx, [rbp + 0x1364]
call fcn.1400385a0
xorps xmm0, xmm0
xorps xmm1, xmm1
mov ecx, reloc.WS2_32.dll_recv
movdqa xmmword [rbp + 0x81370], xmm0
movdqa xmmword [rbp + 0x81380], xmm1
call fcn.14001a34c
lea rcx, [rbp + 0x81368]
mov edx, 2
mov qword [rax + 8], rbx
mov qword [rbp + 0x81368], rax
mov qword [rax], rcx
lea rcx, [rbp + 0x81390]
call fcn.1400195fc
xorps xmm0, xmm0
mov qword [rbp + 0x813f8], rbx
xorps xmm1, xmm1
movdqa xmmword [rbp + 0x81400], xmm0
xor edx, edx
movdqa xmmword [rbp + 0x81410], xmm1
mov r8d, 0x1000
movdqa xmmword [rbp + 0x81420], xmm0
lea rcx, [0x1400723b0]
mov qword [rbp + 0x81430], rbx
call fcn.1400385a0
lea rax, [rbp + 0x1350]
xorps xmm0, xmm0
mov qword [0x1400721a0], rax
mov r15, 0xffffffffffffffff
xor al, al
movabs r14, 0x7fffffffffffffff
mov byte [rbp + 0x1350], al
movups xmmword [rbp + 0x813e8], xmm0
test al, al
jne 0x14001842e
mov ecx, 1
mov dword [rsp + 0x24], ebx
call fcn.140016ea0
mov ecx, 0x202
lea rdx, [rbp - 0x40]
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x140017f95
mov qword [rsp + 0x60], 0
lea rdx, [0x140061ccf]
mov qword [rsp + 0x68], send
xor r8d, r8d
mov byte [rsp + 0x50], 0
jmp 0x140018041
xorps xmm0, xmm0
lea r9, [rsp + 0x48]
movups xmmword [rsp + 0x70], xmm0
lea r8, [rsp + 0x70]
mov dword [rsp + 0x78], 1
xor edx, edx
mov rcx, rbx
movups xmmword [rbp - 0x80], xmm0
movups xmmword [rbp - 0x70], xmm0
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
je 0x140017fce
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x140017f6f
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rdx + 4]
mov rdx, qword [rdx + 0x20]
cmp ecx, 2
jne 0x140017fe5
add rdx, 4
jmp 0x140017fe9
add rdx, 8
mov r9d, 0x41
lea r8, [rbp + 0x81440]
call qword [sym.imp.WS2_32.dll_inet_ntop]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
call qword [sym.imp.WS2_32.dll_WSACleanup]
lea rax, [rbp + 0x81440]
mov qword [rsp + 0x60], 0
mov r8, r15
mov qword [rsp + 0x68], send
mov byte [rsp + 0x50], 0
nop
inc r8
cmp byte [rax + r8], 0
jne 0x140018030
lea rdx, [rbp + 0x81440]
lea rcx, [rsp + 0x50]
call fcn.140015820
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
test rbx, rbx
jne 0x1400180a0
or edi, 1
lea ecx, [rbx + 2]
mov dword [rsp + 0x20], edi
call fcn.140016ea0
mov r8, r15
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], send
mov byte [rsp + 0x70], bl
nop dword [rax]
inc r8
cmp byte [rax + r8], bl
jne 0x140018080
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140015820
lea rax, [rsp + 0x70]
jmp 0x140018149
or edi, 2
lea rsi, [rsp + 0x50]
cmp qword [rsp + 0x68], 0x10
mov dword [rsp + 0x20], edi
cmovae rsi, r12
cmp rbx, 0x10
jae 0x1400180cf
movups xmm0, xmmword [rsi]
mov qword [rsp + 0x40], send
movups xmmword [rsp + 0x28], xmm0
jmp 0x14001813d
mov rdi, rbx
or rdi, 0xf
cmp rdi, r14
cmova rdi, r14
lea rax, [rdi + 1]
cmp rax, 0x1000
jb 0x140018113
lea rcx, [rax + 0x27]
cmp rcx, rax
cmovbe rcx, r15
call fcn.14001a34c
mov rcx, rax
test rax, rax
je 0x1400184cd
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140018120
test rax, rax
je 0x140018120
mov rcx, rax
call fcn.14001a34c
lea r8, [rbx + 1]
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov rcx, rax
call fcn.140038190
mov qword [rsp + 0x40], rdi
mov edi, dword [rsp + 0x20]
mov qword [rsp + 0x38], rbx
lea rax, [rsp + 0x28]
xor ebx, ebx
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], send
mov byte [rax], 0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm1
test dil, 2
je 0x1400181b1
mov rdx, qword [rsp + 0x40]
and edi, 0xfffffffd
mov dword [rsp + 0x20], edi
cmp rdx, 0x10
jb 0x1400181b1
mov rcx, qword [rsp + 0x28]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400181ac
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184cd
call fcn.14001a344
test dil, 1
je 0x1400181fa
mov rdx, qword [rbp - 0x78]
and edi, 0xfffffffe
mov dword [rsp + 0x20], edi
cmp rdx, 0x10
jb 0x1400181fa
mov rcx, qword [rsp + 0x70]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400181f5
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184cd
call fcn.14001a344
mov r13, qword [rbp - 0x48]
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x60]
mov ecx, 3
call fcn.140016ea0
mov rcx, rax
call fcn.14003f7e4
cmp r13, 0x10
mov qword [rsp + 0x38], rbx
lea rdi, [rbp - 0x60]
mov qword [rsp + 0x40], rbx
cmovae rdi, r15
mov r14d, eax
cmp rsi, 0x10
jae 0x14001824d
movups xmm0, xmmword [rdi]
mov qword [rsp + 0x40], send
movups xmmword [rsp + 0x28], xmm0
jmp 0x1400182ca
movabs rax, 0x7fffffffffffffff
mov rbx, rsi
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rax, [rbx + 1]
cmp rax, 0x1000
jb 0x1400182a2
lea rcx, [rax + 0x27]
cmp rcx, rax
mov rax, 0xffffffffffffffff
cmovbe rcx, rax
call fcn.14001a34c
mov rcx, rax
test rax, rax
je 0x1400184c7
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1400182af
test rax, rax
je 0x1400182af
mov rcx, rax
call fcn.14001a34c
lea r8, [rsi + 1]
mov qword [rsp + 0x28], rax
mov rdx, rdi
mov rcx, rax
call fcn.140038190
mov qword [rsp + 0x40], rbx
xor ebx, ebx
mov r8d, r14d
mov qword [rsp + 0x38], rsi
lea rdx, [rsp + 0x28]
lea rcx, [rbp + 0x1350]
call fcn.14000c660
test al, al
jne 0x1400183a5
call fcn.14001931c
mov edx, 1
mov dword [rbp + 0x1344], 0xffffffff
mov r8d, edx
mov dword [rbp - 0x3c], eax
nop word [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, r8d
inc r8d
mov dword [rbp + rdx*4 - 0x3c], eax
inc rdx
cmp rdx, 0x270
jl 0x140018310
mov dword [rbp - 0x40], 0x270
nop word [rax + rax]
lea rcx, [rbp - 0x40]
call fcn.140016d10
mov r8d, eax
mov eax, 0x1c5ad273
mul r8d
mov ecx, r8d
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0xf
cmp ecx, 0x11c5a
jae 0x140018340
mov eax, 0x1c5ad273
mul r8d
mov eax, r8d
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 0xf
imul eax, eax, 0xe679
sub r8d, eax
lea ecx, [r8 + 0xee48]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [rsp + 0x24]
inc eax
mov dword [rsp + 0x24], eax
cmp eax, 4
jne 0x140018206
cmp r13, 0x10
jb 0x1400183dc
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x1400183d4
mov r15, qword [r15 - 8]
add rdx, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184cd
mov rcx, r15
call fcn.14001a344
mov rax, qword [rsp + 0x68]
cmp rax, 0x10
jb 0x140018419
lea rdx, [rax + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x140018411
mov r12, qword [r12 - 8]
add rdx, 0x27
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400184cd
mov rcx, r12
call fcn.14001a344
mov edi, dword [rsp + 0x20]
mov r15, 0xffffffffffffffff
movabs r14, 0x7fffffffffffffff
call fcn.14001931c
mov edx, 1
mov dword [rbp + 0x1344], 0xffffffff
mov r8d, edx
mov dword [rbp - 0x3c], eax
nop dword [rax + rax]
mov ecx, eax
shr ecx, 0x1e
xor ecx, eax
imul eax, ecx, 0x6c078965
add eax, r8d
inc r8d
mov dword [rbp + rdx*4 - 0x3c], eax
inc rdx
cmp rdx, 0x270
jl 0x140018450
mov dword [rbp - 0x40], 0x270
nop word [rax + rax]
lea rcx, [rbp - 0x40]
call fcn.140016d10
mov ecx, eax
mov eax, 0xf88d06fd
mul ecx
shr edx, 0x13
cmp edx, 0x1f11
jae 0x140018480
mov eax, 0xf88d06fd
mul ecx
shr edx, 0x13
imul eax, edx, 0x83d61
sub ecx, eax
add ecx, 0x57e40
call qword [sym.imp.KERNEL32.dll_Sleep]
movzx eax, byte [rbp + 0x1350]
jmp 0x140017f43
call fcn.14003af50
int3
call fcn.14003af50
int3