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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x88
push ebx
push ebp
push esi
push edi
call fcn.00405c71
lea ecx, [esp + 0x38]
call fcn.00405dd1
lea ecx, [esp + 0x38]
call fcn.004059ec
test al, al
je 0x405393
lea ecx, [esp + 0x38]
call fcn.0040284f
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
sub esp, 0x18
mov ecx, esp
push 0x42d924
call fcn.0040290e
sub esp, 0x18
lea eax, [esp + 0x68]
mov ecx, esp
push eax
call fcn.0040290e
lea ecx, [esp + 0x50]
call fcn.00406091
add esp, 0x30
push eax
call fcn.0040588e
lea ecx, [esp + 0x20]
call fcn.00405889
push 0x13
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
lea ecx, [esp + 0x54]
call fcn.00402781
lea ecx, [esp + 0x50]
call fcn.004026b2
push eax
push 1
xor ebp, ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x405414
lea ecx, [esp + 0x50]
call fcn.004026f5
jmp 0x40537d
lea ecx, [esp + 0x20]
call fcn.004069da
push eax
mov ecx, 0x42d90c
call fcn.004026fa
lea ecx, [esp + 0x20]
call fcn.004026f5
push 0x428b78
push 0x13
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
lea ecx, [esp + 0x70]
call fcn.00402781
push eax
mov edx, str.Software_
lea ecx, [esp + 0x88]
call fcn.0040320c
pop ecx
mov edx, eax
lea ecx, [esp + 0x24]
call fcn.0040314e
pop ecx
push eax
mov ecx, 0x42d7f8
call fcn.004026fa
lea ecx, [esp + 0x20]
call fcn.004026f5
lea ecx, [esp + 0x80]
call fcn.004026f5
lea ecx, [esp + 0x68]
call fcn.004026f5
push 0x104
mov esi, 0x42d580
push esi
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push esi
mov ecx, 0x42d7b0
call fcn.004026c3
push 0x1d
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0x1e
movsx eax, byte [eax]
mov dword [0x42d574], eax
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0x18
movsx eax, byte [eax]
mov dword [0x42d578], eax
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
cmp byte [eax], 1
jne 0x4055c5
push 0x13
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
mov edi, 0x42d7e0
push eax
mov ecx, edi
call fcn.004026c3
push 0x1e
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0x1d
mov al, byte [eax]
mov byte [esp + 0x1a], al
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0x20
mov al, byte [eax]
mov byte [esp + 0x1b], al
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push ecx
push 0xd
mov bh, byte [eax]
call fcn.004047a0
mov ecx, eax
call fcn.004058d1
push 0x19
mov bl, byte [eax]
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
mov ecx, edi
mov esi, eax
call fcn.004026b2
cmp byte [esp + 0x16], 0
push eax
setne cl
cmp byte [esp + 0x1b], 0
movzx ecx, cl
push ecx
setne cl
test bh, bh
movzx eax, cl
push eax
setne al
test bl, bl
movzx eax, al
push eax
setne al
movzx eax, al
push eax
push 0x1b
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
push 0x1a
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
mov cl, byte [esi]
mov edx, eax
call fcn.0040494d
add esp, 0x18
push ecx
push ecx
call fcn.00405875
mov ecx, eax
call fcn.004058d1
cmp byte [eax], 0
jne 0x4055e7
mov dword [0x42d788], 1
call fcn.00405818
sub esp, 0x1c
mov esi, esp
push 1
call fcn.004047a0
push eax
mov ecx, esi
call fcn.0040290e
push ecx
lea ecx, [esp + 0x88]
call fcn.00406391
mov ecx, eax
call fcn.004027ce
mov edx, eax
call fcn.00405b86
add esp, 0x20
lea ecx, [esp + 0x68]
call fcn.0040284f
push ecx
push ebp
call fcn.004047a0
mov ecx, eax
call fcn.004058d1
cmp byte [eax], 1
jne 0x405726
push ecx
push 4
call fcn.004047a0
mov ecx, eax
call fcn.004058d1
push ecx
push 0xd
mov al, byte [eax]
mov byte [esp + 0x1f], al
call fcn.004047a0
mov ecx, eax
call fcn.004058d1
push 0xb
mov al, byte [eax]
mov byte [esp + 0x1a], al
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0xa
mov bl, byte [eax]
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push ecx
push 5
mov bh, byte [eax]
call fcn.004047a0
mov ecx, eax
call fcn.004058d1
push ecx
push 2
mov al, byte [eax]
mov dword [esp + 0x20], eax
call fcn.004047a0
mov ecx, eax
call fcn.004058d1
sub esp, 0x18
mov edi, eax
mov esi, esp
push 0xc
call fcn.004047a0
push eax
mov ecx, esi
call fcn.0040290e
movsx ecx, byte [esp + 0x2f]
movsx eax, byte [esp + 0x2e]
push ecx
push eax
movsx eax, bl
push eax
push 3
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
test bh, bh
setne al
movzx eax, al
push eax
push 9
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
call fcn.00410890
pop ecx
push eax
push 7
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
push 6
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
push dword [esp + 0x50]
movzx eax, byte [edi]
push eax
call fcn.0040121a
push ebp
push ebp
push ebp
push 0x404e65
push ebp
push ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
push 0x16
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
cmp byte [eax], 0
jne 0x405791
push 0x21
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
cmp byte [eax], 0
jne 0x405791
push 0x22
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
cmp byte [eax], 0
jne 0x405791
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_Sleep]
lea ecx, [esp + 0x50]
call fcn.004026f5
lea ecx, [esp + 0x38]
call fcn.0040284f
push 2
pop eax
jmp 0x405389
push 0x22
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0x21
mov bh, byte [eax]
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push 0x16
mov bl, byte [eax]
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
sub esp, 0x18
mov edi, eax
mov esi, esp
push 0x24
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
mov ecx, esi
call fcn.004028b7
push 0x23
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
call fcn.00410890
pop ecx
push eax
push 0x17
call fcn.004047a0
mov ecx, eax
call fcn.004027ce
push eax
call fcn.00410890
pop ecx
movsx ecx, byte [edi]
push eax
movsx eax, bh
push eax
movsx edx, bl
call fcn.00404240
int3