Function at 0x460180
Capabilities:
Check mutex on windows
Create process on windows
Identify system language via api

Disassembly:
push edi
push esi
push ebx
sub esp, 0x180
call fcn.0045f9a0
call fcn.0045f474
call fcn.0045f7b4
call fcn.00403588
call fcn.004616b8
movzx eax, byte [0x8015c8]
test eax, eax
jle 0x4601d0
cmp eax, 0x14
jge 0x4601d0
push 0x80c028
push 0x80b37c
call fcn.0040c5ac
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
call fcn.00461528
movsx eax, al
test eax, eax
je 0x4601eb
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
push 0x80c068
push dword [0x8015d8]
call fcn.004677e0
add esp, 8
test eax, eax
jne 0x46030f
mov eax, dword [0x58df7c]
mov dword [esp + 0x150], eax
mov edx, dword [0x58df88]
mov dword [esp + 0x15c], edx
mov ecx, dword [0x58df90]
mov dword [esp + 0x164], ecx
mov ebx, dword [0x58df94]
mov dword [esp + 0x168], ebx
mov esi, dword [0x58df98]
mov dword [esp + 0x16c], esi
mov edi, dword [0x58df9c]
mov dword [esp + 0x170], edi
mov eax, dword [0x58dfa0]
mov dword [esp + 0x174], eax
mov eax, dword [0x58dfa4]
mov dword [esp + 0x178], eax
mov eax, dword [0x58dfa8]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x144], 0x3c
mov dword [esp + 0x14c], 0
mov edx, dword [0x801964]
test edx, edx
je 0x4602c6
xor eax, eax
mov dword [esp + 0x160], eax
mov dword [esp + 0x158], eax
mov dword [esp + 0x154], eax
mov dword [esp + 0x148], eax
mov eax, dword [edx + 0x2a4]
test eax, eax
je 0x4602c6
mov dword [esp + 0x14c], eax
mov dword [esp + 0x160], 1
mov dword [esp + 0x148], 0x40
mov dword [esp + 0x154], 0x80c054
mov dword [esp + 0x158], 0x80c068
lea eax, [esp + 0x144]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteExA]
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
push 0x80c070
push dword [0x8015d8]
call fcn.004677e0
add esp, 8
test eax, eax
je 0x460a1c
call fcn.0045cf48
test eax, eax
jne 0x4607e2
movsx eax, byte [0x801568]
test eax, eax
jne 0x4603be
xor eax, eax
push 0x67f840
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x801b44], eax
test eax, eax
je 0x460a12
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x46037e
push dword [0x801b44]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x460380
xor eax, eax
test eax, eax
je 0x4603a2
mov eax, 0x67f720
call fcn.0041b130
call fcn.0041b4e0
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
mov eax, dword [0x801b40]
test eax, eax
je 0x4603be
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x801b40]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movsx eax, byte [0x801560]
test eax, eax
jne 0x4609f9
call fcn.0045e3b0
test eax, eax
je 0x4603e5
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.00460a78
call fcn.0045df08
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [0x801550]
call fcn.0045fbb4
cmp eax, 0xffffffff
je 0x460409
cmp eax, 4
jle 0x460424
push 0x80c078
push 0
call fcn.0040c5ac
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
call fcn.0045fa44
test eax, eax
jle 0x46043c
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.004614d0
movsx eax, al
test eax, eax
je 0x460457
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.0045c740
test eax, eax
jne 0x4607e2
movsx eax, byte [0x80157c]
test eax, eax
je 0x460480
movzx eax, byte [0x8015c8]
cmp eax, 0x41
jl 0x460480
call fcn.00587278
mov edi, dword [0x801964]
mov ebx, dword [edi + 0xc]
mov dword [0x801650], ebx
mov ecx, dword [edi + 0x10]
mov dword [0x801654], ecx
mov esi, ecx
movsx eax, byte [0x801520]
test eax, eax
je 0x4604d0
mov edx, dword [0x801638]
mov dword [edi + 0xc], edx
mov ecx, dword [0x801964]
mov eax, dword [0x80163c]
mov dword [ecx + 0x10], eax
mov ebx, dword [ecx + 0xc]
mov dword [0x801658], ebx
mov dword [0x80165c], eax
mov esi, eax
mov ecx, eax
jmp 0x4604e7
mov dword [0x80165c], ecx
mov dword [0x801658], ebx
mov edx, dword [0x801638]
mov eax, dword [0x80163c]
cmp ebx, edx
jg 0x4604ef
cmp esi, eax
jle 0x460513
mov ebx, edx
shr ebx, 0x1f
add edx, ebx
mov ebx, edx
sar ebx, 1
mov dword [0x801660], ebx
mov edx, eax
shr edx, 0x1f
add eax, edx
mov esi, eax
sar esi, 1
mov dword [0x801664], esi
jmp 0x46051f
mov dword [0x801664], ecx
mov dword [0x801660], ebx
mov ecx, dword [0x8014c4]
lea edx, [ebx + ebx]
add edx, edx
cmp ebx, 0x2000
jg 0x4609d2
test ecx, ecx
je 0x4609bb
mov eax, edx
imul eax, esi
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.00467b38
add esp, 8
mov edi, eax
test edi, edi
je 0x460992
mov dword [0x8014c4], edi
push 0x67f4e0
mov ecx, dword [0x801964]
call fcn.0045ff70
mov dword [0x8016a0], 1
push 0x67f4e0
push 0x67f720
push dword [0x801554]
push dword [0x801550]
mov ecx, dword [0x801964]
call fcn.00456a14
test eax, eax
jne 0x4605be
push 0x80c084
push 0x80b37c
call fcn.0040c5ac
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
push 0
call dword [sym.imp.USER32.dll_ShowCursor]
push 1
call dword [sym.imp.USER32.dll_ShowCursor]
movsx eax, byte [0x801520]
test eax, eax
je 0x4605eb
mov eax, dword [0x801964]
push 0
push dword [eax + 0x2a4]
call sub.IMM32.dll_ImmAssociateContext
call fcn.0046434c
movsx eax, byte [0x801520]
test eax, eax
je 0x460602
mov byte [0x80156c], 0
movsx eax, byte [0x80156c]
test eax, eax
jne 0x460617
mov eax, dword [0x801640]
mov dword [0x801630], eax
movsx eax, byte [0x801570]
test eax, eax
jne 0x460986
call fcn.00460090
call fcn.00460ce8
push dword [0x801550]
call fcn.00464384
pop ecx
movsx eax, al
test eax, eax
je 0x46064c
mov byte [0x801584], 1
jmp 0x460653
mov byte [0x801584], 0
xor eax, eax
mov dword [0x801794], eax
mov dword [0x801798], eax
push 0x801600
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
lea esi, [esp + 8]
mov edi, 0x67f960
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x46067f
lea edi, [esp + 8]
mov edx, 0x80c0a8
mov ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
dec edi
mov al, byte [edx]
inc edx
mov byte [edi], al
inc edi
test al, al
jne 0x46069c
movzx eax, byte [0x8015c8]
cmp eax, 0x41
jl 0x4606b9
mov esi, 1
jmp 0x4606bb
xor esi, esi
xor eax, eax
mov byte [esp + 0x118], al
mov byte [esp + 0x119], al
cmp byte [0x801568], 1
je 0x460961
mov byte [esp + 0x140], 0
mov byte [esp + 0x141], 1
mov byte [esp + 0x142], 3
mov byte [esp + 0x143], 2
xor ebx, ebx
jmp 0x4606fd
inc ebx
movsx eax, bl
cmp eax, 4
jge 0x46095a
movsx eax, byte [esp + eax + 0x140]
test eax, eax
je 0x46093d
cmp eax, 1
je 0x460754
cmp eax, 2
jne 0x460739
lea eax, [esp + 0x110]
lea edx, [esp + 8]
call fcn.0040d82c
test eax, eax
jne 0x460768
jmp 0x4606fc
cmp eax, 3
jne 0x4606fc
lea eax, [esp + 8]
call fcn.0040d808
movsx eax, al
test eax, eax
jne 0x460930
jmp 0x4606fc
lea eax, [esp + 0x110]
lea edx, [esp + 8]
call fcn.0040db08
test eax, eax
je 0x4606fc
test eax, eax
jle 0x460929
mov eax, 1
test eax, eax
je 0x46077e
mov esi, 1
test esi, esi
jne 0x4608d7
movsx ebx, byte [0x8012a4]
test ebx, ebx
jne 0x46079c
movsx eax, byte [0x8012a8]
test eax, eax
je 0x4607a1
call fcn.0045ea68
call fcn.00463cf8
movsx eax, al
test eax, eax
je 0x4607c1
call fcn.0041af28
mov eax, 1
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.00462a84
test eax, eax
je 0x4607d9
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.0046396c
test eax, eax
je 0x4607f1
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.00462a64
movsx eax, byte [0x80158c]
call fcn.0045727d
cmp eax, 1
je 0x460895
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x801610], eax
mov dword [0x801614], eax
mov dword [0x801618], eax
mov dword [0x80161c], eax
movsx eax, byte [0x8012a4]
test eax, eax
jne 0x46083b
movsx eax, byte [0x8012a8]
test eax, eax
je 0x46084e
call fcn.00410dc0
cmp eax, 1
je 0x46085a
cmp eax, 0xffffffff
je 0x460a41
xor eax, eax
add esp, 0x180
pop ebx
pop esi
pop edi
ret
xor eax, eax
mov byte [0x8012f4], al
mov byte [0x5b372c], 1
mov byte [0x8012a4], al
mov byte [0x8012a8], al
push 0x80b6fc
push 0x807270
call fcn.004293ac
push 0x80b6fc
push 0x807270
call fcn.0040c5ac
add esp, 0x10
jmp 0x46084e
mov eax, dword [0x801964]
push 5
push dword [eax + 0x2a4]
call dword [sym.imp.USER32.dll_ShowWindow]
call dword [sym.imp.WINMM.dll_timeGetTime]
mov ebx, eax
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, ebx
cmp eax, 0x5dc
jae 0x46080b
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, ebx
cmp eax, 0x5dc
jb 0x4608c3
jmp 0x46080b
call fcn.00464c8c
movsx eax, byte [0x801704]
test eax, eax
je 0x46091d
mov ebx, 1
mov eax, 1
mov byte [0x8012a4], al
xor ecx, ecx
mov byte [0x8012a8], cl
movsx edx, byte [0x5b372c]
cmp edx, 1
jle 0x46090c
mov edx, eax
mov byte [0x5b372c], dl
mov byte [0x8012f0], cl
jmp 0x46078d
movsx ebx, byte [0x8012a4]
jmp 0x46078d
xor eax, eax
jmp 0x460775
mov byte [esp + 0x118], 1
jmp 0x460768
lea eax, [esp + 0x110]
lea edx, [esp + 8]
call fcn.0040db60
test eax, eax
jne 0x460768
jmp 0x4606fc
xor eax, eax
jmp 0x460768
mov byte [esp + 0x140], 0
mov byte [esp + 0x141], 1
mov byte [esp + 0x142], 2
mov byte [esp + 0x143], 3
jmp 0x4606f8
mov byte [0x80164c], 0
jmp 0x460626
push esi
push ebx
push 0
push 0x8083f4
push 0x807270
call fcn.004293ac
push 0
push 1
push 0x1965e
call fcn.00464784
add esp, 0x20
jmp 0x46055b
mov eax, edx
imul eax, esi
lea edx, [edx + eax + 4]
push edx
call fcn.0046769c
pop ecx
mov edi, eax
jmp 0x460553
push esi
push ebx
push 0x8083cc
push 0x807270
call fcn.0040c5ac
push 1
push 0x186aa
call fcn.004647e0
add esp, 0x18
xor edi, edi
jmp 0x46055b
mov esi, 0x67fa80
mov edi, 0x67f960
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x460a03
jmp 0x4603e5
mov eax, 0xffffffff
jmp 0x460380
mov dword [0x5b373c], 0x80818c
push 1
push 0x186a0
call fcn.004647e0
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
xor edx, edx
mov byte [0x8012f4], dl
mov ecx, 1
mov byte [0x5b372c], cl
mov byte [0x8012a4], dl
mov byte [0x8012a8], dl
mov byte [0x8017fc], cl
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret