Function at 0x180015d00
Capabilities:
Check mutex on windows
Create thread

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r13
sub rsp, 0xb0
xor edi, edi
mov rsi, rdx
mov rbx, rcx
test rdx, rdx
je 0x180015f6c
cmp qword [0x180059c10], rdi
jne 0x180015d43
lea rcx, str.Kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [0x180059c10], rax
mov rax, qword [rsi]
lea r8, [rsp + 0xd8]
lea rdx, [0x180041830]
mov rcx, rsi
mov qword [rsp + 0xd8], rdi
call qword [rax]
test eax, eax
js 0x180015f57
cmp qword [rsp + 0xd8], rdi
je 0x180015f57
lea r8, [0x180048760]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateMutexW]
mov qword [rbx + 0xc8], rax
test rax, rax
je 0x180015dba
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x180015dba
mov rcx, qword [rbx + 0xc8]
mov byte [rbx + 0x50], dil
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 0xc8], rdi
mov rcx, qword [rsp + 0xd8]
mov byte [rbx + 0x50], dil
mov qword [rbx + 0x38], rdi
mov rax, qword [rcx]
lea rdx, [rbx + 0x38]
call qword [rax + 0x18]
test eax, eax
js 0x180015f49
xor eax, eax
mov edx, 0x7f00
xor ecx, ecx
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rax
mov dword [rsp + 0x60], recv
call qword [sym.imp.USER32.dll_LoadCursorW]
mov qword [rsp + 0x88], rax
mov rax, qword [0x180059d20]
mov qword [rsp + 0x78], rax
lea rax, [0x180016c10]
mov qword [rsp + 0x68], rax
call fcn.1800202a0
lea r13, [0x180045380]
mov rcx, qword [rax + 0x28]
mov rax, r13
test rcx, rcx
cmovne rax, rcx
mov ecx, 0xffff
mov qword [rsp + 0xa0], rax
call qword [sym.imp.GDI32.dll_CreateSolidBrush]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x90], rax
call qword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
jne 0x180015e99
mov eax, 0x80004005
jmp 0x180015f6e
mov qword [rsp + 0xd0], r12
mov byte [rbx + 0x51], 1
call fcn.1800202a0
mov rcx, qword [rax + 0x28]
mov rax, qword [0x180059d20]
lea r12, [rbx - 0x10]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rax
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x40], rax
test rcx, rcx
cmovne r13, rcx
mov dword [rsp + 0x38], edi
mov dword [rsp + 0x30], edi
mov r9d, 0x46000000
xor r8d, r8d
xor ecx, ecx
mov rdx, r13
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
call qword [sym.imp.USER32.dll_CreateWindowExW]
mov qword [rbx + 0x30], rax
test rax, rax
je 0x180015f41
lea r8, [0x180015cb0]
mov r9, r12
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], edi
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rcx, qword [rbx + 0x30]
xor r9d, r9d
mov edx, 0x2b14
mov r8d, 0xa4cb80
mov qword [rbx + 0xd0], rax
call qword [sym.imp.USER32.dll_SetTimer]
mov r12, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0xd8]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rax, qword [rsi]
lea r8, [rbx + 0x18]
lea rdx, [0x1800417b0]
mov rcx, rsi
call qword [rax]
mov edi, eax
mov eax, edi
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop rdi
pop rsi
ret