Function at 0x1617fea7d70
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.1617fee2680
sub rsp, rax
mov rax, qword [0x1617fefd018]
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.1617fec85a0
lea r9, [rbp - 0x40]
call fcn.1617fea6ee0
mov r8d, 0x1000
lea rdx, [rbp - 0x40]
lea rcx, [0x1617fefdc60]
call fcn.1617fec8190
lea r8, [0x1617fefdc60]
xor ecx, ecx
lea edx, [rbx + 1]
call qword [sym.imp.KERNEL32.dll_CreateMutexA]
test rax, rax
je 0x1617fea7e12
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x1617fea7e12
xor eax, eax
mov rcx, qword [rbp + 0x81490]
xor rcx, rsp
call fcn.1617feaa320
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.1617fec85a0
xor edx, edx
lea rcx, [rbp + 0x81390]
mov r8d, 0xa8
call fcn.1617fec85a0
xor edx, edx
mov qword [rbp + 0x1358], rbx
mov r8d, 0x80000
mov dword [rbp + 0x1360], ebx
lea rcx, [rbp + 0x1364]
call fcn.1617fec85a0
xorps xmm0, xmm0
xorps xmm1, xmm1
mov ecx, 0x10
movdqa xmmword [rbp + 0x81370], xmm0
movdqa xmmword [rbp + 0x81380], xmm1
call fcn.1617feaa34c
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.1617fea95fc
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, [0x1617ff023b0]
mov qword [rbp + 0x81430], rbx
call fcn.1617fec85a0
lea rax, [rbp + 0x1350]
xorps xmm0, xmm0
mov qword [0x1617ff021a0], rax
mov r15, 0xffffffffffffffff
xor al, al
movabs r14, 0x7fffffffffffffff
mov byte [rbp + 0x1350], al
movups xmmword [rbp + 0x813e8], xmm0
test al, al
jne 0x1617fea842e
mov ecx, 1
mov dword [rsp + 0x24], ebx
call fcn.1617fea6ea0
mov ecx, 0x202
lea rdx, [rbp - 0x40]
mov rbx, rax
call qword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x1617fea7f95
mov qword [rsp + 0x60], 0
lea rdx, [0x1617fef1ccf]
mov qword [rsp + 0x68], 0xf
xor r8d, r8d
mov byte [rsp + 0x50], 0
jmp 0x1617fea8041
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 0x1617fea7fce
call qword [sym.imp.WS2_32.dll_WSACleanup]
jmp 0x1617fea7f6f
mov rdx, qword [rsp + 0x48]
mov ecx, dword [rdx + 4]
mov rdx, qword [rdx + 0x20]
cmp ecx, 2
jne 0x1617fea7fe5
add rdx, 4
jmp 0x1617fea7fe9
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], 0xf
mov byte [rsp + 0x50], 0
nop
inc r8
cmp byte [rax + r8], 0
jne 0x1617fea8030
lea rdx, [rbp + 0x81440]
lea rcx, [rsp + 0x50]
call fcn.1617fea5820
mov rbx, qword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
test rbx, rbx
jne 0x1617fea80a0
or edi, 1
lea ecx, [rbx + 2]
mov dword [rsp + 0x20], edi
call fcn.1617fea6ea0
mov r8, r15
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], bl
nop dword [rax]
inc r8
cmp byte [rax + r8], bl
jne 0x1617fea8080
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.1617fea5820
lea rax, [rsp + 0x70]
jmp 0x1617fea8149
or edi, 2
lea rsi, [rsp + 0x50]
cmp qword [rsp + 0x68], 0x10
mov dword [rsp + 0x20], edi
cmovae rsi, r12
cmp rbx, 0x10
jae 0x1617fea80cf
movups xmm0, xmmword [rsi]
mov qword [rsp + 0x40], 0xf
movups xmmword [rsp + 0x28], xmm0
jmp 0x1617fea813d
mov rdi, rbx
or rdi, 0xf
cmp rdi, r14
cmova rdi, r14
lea rax, [rdi + 1]
cmp rax, 0x1000
jb 0x1617fea8113
lea rcx, [rax + 0x27]
cmp rcx, rax
cmovbe rcx, r15
call fcn.1617feaa34c
mov rcx, rax
test rax, rax
je 0x1617fea84cd
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1617fea8120
test rax, rax
je 0x1617fea8120
mov rcx, rax
call fcn.1617feaa34c
lea r8, [rbx + 1]
mov qword [rsp + 0x28], rax
mov rdx, rsi
mov rcx, rax
call fcn.1617fec8190
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], 0xf
mov byte [rax], 0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm1
test dil, 2
je 0x1617fea81b1
mov rdx, qword [rsp + 0x40]
and edi, 0xfffffffd
mov dword [rsp + 0x20], edi
cmp rdx, 0x10
jb 0x1617fea81b1
mov rcx, qword [rsp + 0x28]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1617fea81ac
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1617fea84cd
call fcn.1617feaa344
test dil, 1
je 0x1617fea81fa
mov rdx, qword [rbp - 0x78]
and edi, 0xfffffffe
mov dword [rsp + 0x20], edi
cmp rdx, 0x10
jb 0x1617fea81fa
mov rcx, qword [rsp + 0x70]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1617fea81f5
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1617fea84cd
call fcn.1617feaa344
mov r13, qword [rbp - 0x48]
mov rsi, qword [rbp - 0x50]
mov r15, qword [rbp - 0x60]
mov ecx, 3
call fcn.1617fea6ea0
mov rcx, rax
call fcn.1617fecf7e4
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 0x1617fea824d
movups xmm0, xmmword [rdi]
mov qword [rsp + 0x40], 0xf
movups xmmword [rsp + 0x28], xmm0
jmp 0x1617fea82ca
movabs rax, 0x7fffffffffffffff
mov rbx, rsi
or rbx, 0xf
cmp rbx, rax
cmova rbx, rax
lea rax, [rbx + 1]
cmp rax, 0x1000
jb 0x1617fea82a2
lea rcx, [rax + 0x27]
cmp rcx, rax
mov rax, 0xffffffffffffffff
cmovbe rcx, rax
call fcn.1617feaa34c
mov rcx, rax
test rax, rax
je 0x1617fea84c7
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x1617fea82af
test rax, rax
je 0x1617fea82af
mov rcx, rax
call fcn.1617feaa34c
lea r8, [rsi + 1]
mov qword [rsp + 0x28], rax
mov rdx, rdi
mov rcx, rax
call fcn.1617fec8190
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.1617fe9c660
test al, al
jne 0x1617fea83a5
call fcn.1617fea931c
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 0x1617fea8310
mov dword [rbp - 0x40], 0x270
nop word [rax + rax]
lea rcx, [rbp - 0x40]
call fcn.1617fea6d10
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 0x1617fea8340
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 0x1617fea8206
cmp r13, 0x10
jb 0x1617fea83dc
lea rdx, [r13 + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x1617fea83d4
mov r15, qword [r15 - 8]
add rdx, 0x27
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1617fea84cd
mov rcx, r15
call fcn.1617feaa344
mov rax, qword [rsp + 0x68]
cmp rax, 0x10
jb 0x1617fea8419
lea rdx, [rax + 1]
mov rax, r12
cmp rdx, 0x1000
jb 0x1617fea8411
mov r12, qword [r12 - 8]
add rdx, 0x27
sub rax, r12
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1617fea84cd
mov rcx, r12
call fcn.1617feaa344
mov edi, dword [rsp + 0x20]
mov r15, 0xffffffffffffffff
movabs r14, 0x7fffffffffffffff
call fcn.1617fea931c
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 0x1617fea8450
mov dword [rbp - 0x40], 0x270
nop word [rax + rax]
lea rcx, [rbp - 0x40]
call fcn.1617fea6d10
mov ecx, eax
mov eax, 0xf88d06fd
mul ecx
shr edx, 0x13
cmp edx, 0x1f11
jae 0x1617fea8480
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 0x1617fea7f43
call fcn.1617fecaf50
int3
call fcn.1617fecaf50
int3