Function at 0x40c8f0
Capabilities:
Check mutex on windows
Initialize winsock library
Set current directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xdd4
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0xdd0], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, dword [ebp + 0x10]
push 0x433bf8
push 0
mov dword [esp + 0x1c], ebx
call fcn.004147da
push 0x7f
push edi
push 0x80
lea eax, [esp + 0x48]
push 0x489898
push eax
call fcn.00414cf0
add esp, 0x1c
xor eax, eax
mov word [esp + 0x1c8], ax
push 0x206
push eax
lea eax, [esp + 0x1d2]
push eax
call fcn.00415320
add esp, 0xc
cmp word [edi], 0
jne 0x40c9a2
push 0x104
lea eax, [esp + 0x1cc]
push 0
push eax
call fcn.00415320
add esp, 0xc
lea eax, [esp + 0x1c8]
push 0x104
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [esp + 0x1c8]
push 0x5c
push eax
call fcn.00414734
add esp, 8
mov edi, eax
mov ebx, edi
test edi, edi
je 0x40c9ad
add edi, 2
jmp 0x40c9b2
mov edi, 0x433bfc
push str.QJWMONKEYMUTEX_
lea eax, [esp + 0x5dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcatW]
lea eax, [esp + 0x5d8]
push edi
push eax
call esi
push edi
push str.qjwmwponkeysetupMap_
call esi
lea eax, [esp + 0x5d8]
mov byte [esp + 0xf], 0
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x40ca92
push str.qjwmwponkeysetupMap_
push pe_nt_image_headers32
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov esi, eax
test esi, esi
je 0x40ca68
push pe_nt_image_headers32
push 0
push 0
push 0xf001f
push esi
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, eax
push dword [edi]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x40ca5a
push 1
push dword [edi]
call dword [sym.imp.USER32.dll_ShowWindow]
mov byte [esp + 0xf], 1
push edi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [esp + 0xf], 0
je 0x40ca92
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xdd0]
xor ecx, esp
call fcn.00411717
mov esp, ebp
pop ebp
ret 0x10
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
xor eax, eax
push 0x18e
push eax
mov word [esp + 0x40], ax
lea eax, [esp + 0x42]
push eax
call fcn.00415320
add esp, 0xc
lea eax, [esp + 0x38]
push eax
push 0x202
call dword [sym.imp.WS2_32.dll_WSAStartup]
cmp word [esp + 0x1c8], 0
je 0x40cb23
test ebx, ebx
je 0x40cb23
xor eax, eax
push 0x206
push eax
mov word [esp + 0x3d8], ax
lea eax, [esp + 0x3da]
push eax
call fcn.00415320
add esp, 0xc
lea eax, [esp + 0x1c8]
sub ebx, eax
sar ebx, 1
push ebx
push eax
lea eax, [esp + 0x3d8]
push 0x104
push eax
call fcn.00414d0e
add esp, 0x10
lea eax, [esp + 0x3d0]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryW]
push 0x1504
call fcn.00412002
add esp, 4
test eax, eax
je 0x40cbd9
push dword [esp + 0x14]
mov ecx, eax
call fcn.004065b0
mov esi, eax
test esi, esi
je 0x40cbd9
mov ecx, esi
call fcn.00406a20
cmp eax, 0xffffffff
jne 0x40cb72
or eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xdd0]
xor ecx, esp
call fcn.00411717
mov esp, ebp
pop ebp
ret 0x10
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
lea eax, [esp + 0x18]
push 0
push 0
xorps xmm0, xmm0
mov dword [esp + 0x20], 0
push 0
push eax
movdqu xmmword [esp + 0x2c], xmm0
movq qword [esp + 0x3c], xmm0
call edi
test eax, eax
je 0x40cbc9
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x18]
push eax
call ebx
lea eax, [esp + 0x18]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push 0
push 0
push 0
lea eax, [esp + 0x24]
push eax
call edi
test eax, eax
jne 0x40cba6
mov ecx, esi
call fcn.00406790
push esi
call fcn.00411712
add esp, 4
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [esp + 0xddc]
mov eax, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00411717
mov esp, ebp
pop ebp
ret 0x10