Function at 0x45f704
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.0045efe0
call fcn.0045eab4
call fcn.0045edf4
call fcn.00403588
call fcn.00460cbc
movzx eax, byte [0x800700]
test eax, eax
jle 0x45f754
cmp eax, 0x14
jge 0x45f754
push 0x80af88
push 0x80a2dc
call fcn.0040c5f0
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
call fcn.00460b2c
movsx eax, al
test eax, eax
je 0x45f76f
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
push 0x80afc8
push dword [0x800710]
call fcn.00466f20
add esp, 8
test eax, eax
jne 0x45f8a4
mov eax, dword [0x58cf54]
mov dword [esp + 0x148], eax
mov edx, dword [0x58cf5c]
mov dword [esp + 0x150], edx
mov ecx, dword [0x58cf60]
mov dword [esp + 0x154], ecx
mov ebx, dword [0x58cf64]
mov dword [esp + 0x158], ebx
mov esi, dword [0x58cf68]
mov dword [esp + 0x15c], esi
mov edi, dword [0x58cf6c]
mov dword [esp + 0x160], edi
mov eax, dword [0x58cf70]
mov dword [esp + 0x164], eax
mov eax, dword [0x58cf74]
mov dword [esp + 0x168], eax
mov eax, dword [0x58cf78]
mov dword [esp + 0x16c], eax
mov eax, dword [0x58cf7c]
mov dword [esp + 0x170], eax
mov eax, dword [0x58cf80]
mov dword [esp + 0x174], eax
mov eax, dword [0x58cf84]
mov dword [esp + 0x178], eax
mov eax, dword [0x58cf88]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x144], 0x3c
mov dword [esp + 0x14c], 0
mov eax, dword [0x800ab8]
test eax, eax
je 0x45f85b
mov eax, dword [eax + 0x2a4]
test eax, eax
je 0x45f85b
mov dword [esp + 0x14c], eax
mov dword [esp + 0x160], 1
mov dword [esp + 0x148], 0x40
mov dword [esp + 0x154], 0x80afb4
mov dword [esp + 0x158], 0x80afc8
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 0x80afd0
push dword [0x800710]
call fcn.00466f20
add esp, 8
test eax, eax
je 0x45ffcf
call fcn.0045c584
test eax, eax
jne 0x45fd73
movsx eax, byte [0x8006a4]
test eax, eax
jne 0x45f953
xor eax, eax
push 0x67eaa0
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x800c98], eax
test eax, eax
je 0x45ffc5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x45f913
push dword [0x800c98]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x45f915
xor eax, eax
test eax, eax
je 0x45f937
mov eax, 0x67e980
call fcn.0041b170
call fcn.0041b520
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
mov eax, dword [0x800c94]
test eax, eax
je 0x45f953
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push dword [0x800c94]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movsx eax, byte [0x80069c]
test eax, eax
jne 0x45ffac
call fcn.0045d9a8
test eax, eax
je 0x45f97a
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.00460028
call fcn.0045d508
mov eax, dword [0x80068c]
call fcn.0045f1f4
cmp eax, 0xffffffff
je 0x45f998
cmp eax, 4
jle 0x45f9b3
push 0x80afd8
push 0
call fcn.0040c5f0
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
call fcn.0045f084
test eax, eax
jle 0x45f9cb
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.00460ad4
movsx eax, al
test eax, eax
je 0x45f9ec
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.0045bd7c
test eax, eax
jne 0x45fd73
movsx eax, byte [0x8006b4]
test eax, eax
je 0x45fa15
movzx eax, byte [0x800700]
cmp eax, 0x41
jl 0x45fa15
call fcn.005869b8
mov edi, dword [0x800ab8]
mov ebx, dword [edi + 0xc]
mov dword [0x8007b8], ebx
mov ecx, dword [edi + 0x10]
mov dword [0x8007bc], ecx
mov esi, ecx
movsx eax, byte [0x80065c]
test eax, eax
je 0x45fa65
mov edx, dword [0x8007a0]
mov dword [edi + 0xc], edx
mov ecx, dword [0x800ab8]
mov eax, dword [0x8007a4]
mov dword [ecx + 0x10], eax
mov ebx, dword [ecx + 0xc]
mov dword [0x8007c0], ebx
mov dword [0x8007c4], eax
mov esi, eax
mov ecx, eax
jmp 0x45fa7c
mov dword [0x8007c4], ecx
mov dword [0x8007c0], ebx
mov edx, dword [0x8007a0]
mov eax, dword [0x8007a4]
cmp ebx, edx
jg 0x45fa84
cmp esi, eax
jle 0x45faa8
mov ebx, edx
shr ebx, 0x1f
add edx, ebx
mov ebx, edx
sar ebx, 1
mov dword [0x8007c8], ebx
mov edx, eax
shr edx, 0x1f
add eax, edx
mov esi, eax
sar esi, 1
mov dword [0x8007cc], esi
jmp 0x45fab4
mov dword [0x8007cc], ecx
mov dword [0x8007c8], ebx
mov ecx, dword [0x800600]
lea edx, [ebx + ebx]
add edx, edx
cmp ebx, 0x2000
jg 0x45ff85
test ecx, ecx
je 0x45ff6e
mov eax, edx
imul eax, esi
lea edx, [edx + eax + 4]
push edx
push ecx
call fcn.00467278
add esp, 8
mov edi, eax
test edi, edi
je 0x45ff45
mov dword [0x800600], edi
push 0x67e740
mov ecx, dword [0x800ab8]
call fcn.0045f4f4
mov dword [0x800808], 1
push 0x67e740
push 0x67e980
push dword [0x800690]
push dword [0x80068c]
mov ecx, dword [0x800ab8]
call fcn.00455f38
test eax, eax
jne 0x45fb53
push 0x80afe4
push 0x80a2dc
call fcn.0040c5f0
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 [0x80065c]
test eax, eax
je 0x45fb80
mov eax, dword [0x800ab8]
push 0
push dword [eax + 0x2a4]
call sub.IMM32.dll_ImmAssociateContext
call fcn.00463a90
movsx eax, byte [0x80065c]
test eax, eax
je 0x45fb97
mov byte [0x8006a8], 0
movsx eax, byte [0x8006a8]
test eax, eax
jne 0x45fbac
mov eax, dword [0x8007a8]
mov dword [0x800798], eax
movsx eax, byte [0x8006ac]
test eax, eax
jne 0x45ff39
call fcn.0045f614
call fcn.004602ec
movsx eax, byte [0x8006b0]
test eax, eax
jne 0x45ff17
push dword [0x80068c]
call fcn.00463ac8
pop ecx
movsx eax, al
test eax, eax
je 0x45fbf0
mov byte [0x8006bc], 1
jmp 0x45fbf7
mov byte [0x8006bc], 0
xor eax, eax
mov dword [0x8008fc], eax
mov dword [0x800900], eax
push 0x800768
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, 0x67ebc0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45fc23
lea edi, [esp + 8]
mov edx, 0x80b008
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 0x45fc40
movzx eax, byte [0x800700]
cmp eax, 0x41
jl 0x45fc5d
mov esi, 1
jmp 0x45fc5f
xor esi, esi
xor eax, eax
mov byte [esp + 0x118], al
mov byte [esp + 0x119], al
cmp byte [0x8006a4], 1
je 0x45fef2
mov byte [esp + 0x140], 0
mov byte [esp + 0x141], 1
mov byte [esp + 0x142], 3
mov byte [esp + 0x143], 2
xor ebx, ebx
jmp 0x45fca1
inc ebx
movsx eax, bl
cmp eax, 4
jge 0x45feeb
movsx eax, byte [esp + eax + 0x140]
test eax, eax
je 0x45fece
cmp eax, 1
je 0x45fcf8
cmp eax, 2
jne 0x45fcdd
lea eax, [esp + 0x110]
lea edx, [esp + 8]
call fcn.0040d870
test eax, eax
jne 0x45fd0c
jmp 0x45fca0
cmp eax, 3
jne 0x45fca0
lea eax, [esp + 8]
call fcn.0040d84c
movsx eax, al
test eax, eax
jne 0x45fec1
jmp 0x45fca0
lea eax, [esp + 0x110]
lea edx, [esp + 8]
call fcn.0040db4c
test eax, eax
je 0x45fca0
test eax, eax
jle 0x45feba
mov eax, 1
test eax, eax
je 0x45fd22
mov esi, 1
test esi, esi
jne 0x45fe68
movsx ebx, byte [0x8003e4]
test ebx, ebx
jne 0x45fd40
movsx eax, byte [0x8003e8]
test eax, eax
je 0x45fd45
call fcn.0045e060
call fcn.0046343c
movsx eax, al
test eax, eax
je 0x45fd65
call fcn.0041af68
mov eax, 1
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.00462274
call fcn.0046314c
test eax, eax
je 0x45fd82
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret
call fcn.00462254
movsx eax, byte [0x8006c4]
call fcn.00456765
cmp eax, 1
je 0x45fe26
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [0x800778], eax
mov dword [0x80077c], eax
mov dword [0x800780], eax
mov dword [0x800784], eax
movsx eax, byte [0x8003e4]
test eax, eax
jne 0x45fdcc
movsx eax, byte [0x8003e8]
test eax, eax
je 0x45fddf
call fcn.00410e04
cmp eax, 1
je 0x45fdeb
cmp eax, 0xffffffff
je 0x45fff4
xor eax, eax
add esp, 0x180
pop ebx
pop esi
pop edi
ret
xor eax, eax
mov byte [0x800420], al
mov byte [0x5b2730], 1
mov byte [0x8003e4], al
mov byte [0x8003e8], al
push 0x80a65c
push 0x806270
call fcn.00464d5c
push 0x80a65c
push 0x806270
call fcn.0040c5f0
add esp, 0x10
jmp 0x45fddf
mov eax, dword [0x800ab8]
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 0x45fd9c
call dword [sym.imp.WINMM.dll_timeGetTime]
sub eax, ebx
cmp eax, 0x5dc
jb 0x45fe54
jmp 0x45fd9c
call fcn.004643d0
movsx eax, byte [0x80086c]
test eax, eax
je 0x45feae
mov ebx, 1
mov eax, 1
mov byte [0x8003e4], al
xor ecx, ecx
mov byte [0x8003e8], cl
movsx edx, byte [0x5b2730]
cmp edx, 1
jle 0x45fe9d
mov edx, eax
mov byte [0x5b2730], dl
mov byte [0x5b2728], cl
jmp 0x45fd31
movsx ebx, byte [0x8003e4]
jmp 0x45fd31
xor eax, eax
jmp 0x45fd19
mov byte [esp + 0x118], 1
jmp 0x45fd0c
lea eax, [esp + 0x110]
lea edx, [esp + 8]
call fcn.0040dba4
test eax, eax
jne 0x45fd0c
jmp 0x45fca0
xor eax, eax
jmp 0x45fd0c
mov byte [esp + 0x140], 0
mov byte [esp + 0x141], 1
mov byte [esp + 0x142], 2
mov byte [esp + 0x143], 3
jmp 0x45fc9c
call fcn.00462b64
cmp eax, 1
je 0x45ff2d
mov byte [0x8006b0], 0
jmp 0x45fbd4
mov byte [0x8006b0], 1
jmp 0x45fbd4
mov byte [0x8007b4], 0
jmp 0x45fbbb
push esi
push ebx
push 0
push 0x80742c
push 0x806270
call fcn.00464d5c
push 0
push 1
push 0x1965e
call fcn.00463ec8
add esp, 0x20
jmp 0x45faf0
mov eax, edx
imul eax, esi
lea edx, [edx + eax + 4]
push edx
call fcn.00466ddc
pop ecx
mov edi, eax
jmp 0x45fae8
push esi
push ebx
push 0x807404
push 0x806270
call fcn.0040c5f0
push 1
push 0x186aa
call fcn.00463f24
add esp, 0x18
xor edi, edi
jmp 0x45faf0
mov esi, 0x67ece0
mov edi, 0x67ebc0
mov dl, byte [edi]
inc edi
mov byte [esi], dl
inc esi
test dl, dl
jne 0x45ffb6
jmp 0x45f97a
mov eax, 0xffffffff
jmp 0x45f915
mov dword [0x5b2740], 0x80721c
push 1
push 0x186a0
call fcn.00463f24
mov eax, 0xffffffff
add esp, 0x188
pop ebx
pop esi
pop edi
ret
xor edx, edx
mov byte [0x800420], dl
mov ecx, 1
mov byte [0x5b2730], cl
mov byte [0x8003e4], dl
mov byte [0x8003e8], dl
mov byte [0x800964], cl
mov eax, 0xffffffff
add esp, 0x180
pop ebx
pop esi
pop edi
ret