Function at 0x4ae920
Capabilities:
Check mutex and terminate process on windows
Check mutex on windows
Terminate process
Terminate thread

Disassembly:
mov eax, dword [0x4a849c]
push ebp
mov ebp, dword [esp + 0xc]
test eax, eax
je 0x4ae975
test ebp, ebp
jne 0x4ae975
mov eax, dword [0x4a8358]
push eax
push ebp
call dword [sym.imp.USER32.dll_KillTimer]
mov ecx, dword [0x4aa740]
push ebp
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
test eax, eax
je 0x4ae95e
mov edx, dword [0x4aa740]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0
push 0
push 0x4a85bc
call fcn.004b18c0
mov eax, 1
pop ebp
ret 0xc
push 0x499148
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x4a8488], eax
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
mov eax, dword [0x4a8364]
sete cl
test eax, eax
mov dword [0x4a8494], ecx
jne case.0x4aef63.0
push esi
mov dword [0x4a8364], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add dword [0x4aa738], eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor eax, dword [0x4aa738]
and eax, 0x3fdffffe
or eax, 0x200001
mov dword [0x4aa738], eax
xor eax, eax
push eax
mov dword [eax*4 + 0x4aa760], 0
call fcn.004af910
add esp, 4
cmp eax, 0x64
jl 0x4ae9e0
push 0x4aa720
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push 0x49bd38
call esi
push 0x49bd28
call esi
push 0x49bd1c
call esi
push 0x49bd10
call esi
push 0x49bd04
call esi
mov eax, dword [0x49bc98]
mov ecx, dword [0x49bc9c]
mov dx, word [ecx]
add ecx, 8
mov word [0x4a8a50], dx
mov si, word [ecx - 6]
mov word [0x4a8a52], si
mov edx, dword [ecx - 4]
mov dword [0x49bc9c], ecx
mov ecx, dword [0x4a8a50]
and ecx, 0xffff
mov dword [0x4a8a48], edx
cmp ecx, 0x5910
jg 0x4aecb4
je 0x4aeee4
cmp ecx, 0x1992
jg 0x4aebe7
je 0x4aebc8
cmp ecx, 0x704
jg 0x4aeb70
je 0x4aeb4c
cmp ecx, 0xe4
je 0x4aeb18
cmp ecx, 0x342
je 0x4aeb0b
cmp ecx, 0x611
jne 0x4aea32
xor ecx, ecx
mov cx, si
cmp ecx, 0x68
je 0x4aead9
cmp ecx, 0x28e
jne 0x4aeaee
mov ecx, dword [eax]
and ecx, 0xffff
jmp 0x4aeae1
mov ecx, dword [eax]
and ecx, 0xff
mov dword [eax], ecx
mov edx, dword [0x4a8a48]
mov eax, dword [0x49bc98]
mov ecx, dword [eax]
add eax, 4
test ecx, ecx
mov dword [0x49bc98], eax
je 0x4aea32
mov dword [0x49bc9c], edx
jmp 0x4aea32
xor ecx, ecx
mov cx, si
mov dword [eax + ecx*4], edx
jmp 0x4aea2d
mov ecx, dword [eax]
push ecx
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0xc]
push ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
push ecx
push eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx + 0x14], eax
mov eax, dword [0x49bc98]
add eax, 0x14
mov dword [0x49bc98], eax
jmp 0x4aea32
push esi
push edx
call fcn.004ae850
mov dx, word [0x4a8a52]
inc eax
push eax
mov eax, dword [0x4a8a48]
push edx
push eax
call fcn.004ae7f0
add esp, 0x14
jmp 0x4aea2d
sub ecx, 0x96f
je 0x4aef47
sub ecx, 0x723
je 0x4aebb1
sub ecx, 0x77
jne 0x4aea32
mov ecx, dword [eax]
mov eax, dword [eax + 4]
push ecx
push eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx + 4], eax
mov eax, dword [0x49bc98]
add eax, 4
mov dword [0x49bc98], eax
jmp 0x4aea32
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
add esp, 8
add dword [ecx], eax
jmp 0x4aea2d
mov eax, dword [eax]
push eax
push esi
push edx
call fcn.004ae7f0
mov eax, dword [0x49bc98]
add esp, 0xc
add eax, 4
mov dword [0x49bc98], eax
jmp 0x4aea32
cmp ecx, 0x3345
jg 0x4aec69
je 0x4aec52
sub ecx, 0x1a44
je 0x4aec3b
sub ecx, 0x801
je 0x4aec21
sub ecx, 0x72
jne 0x4aea32
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
add esp, 8
sub dword [ecx], eax
jmp 0x4aea2d
mov ecx, dword [eax]
xor edx, edx
mov dx, si
mov dword [0x49bc9c], ecx
lea eax, [eax + edx*4]
mov dword [0x49bc98], eax
jmp 0x4aea32
sub eax, 4
mov dword [0x49bc98], eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx], eax
jmp 0x4aea2d
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
add esp, 8
and dword [ecx], eax
jmp 0x4aea2d
cmp ecx, 0x3dc8
je 0x4aec8f
cmp ecx, 0x5211
jne 0x4aea32
mov eax, dword [eax]
push eax
push esi
push edx
call fcn.004ae7f0
add esp, 0xc
jmp 0x4aea2d
push esi
push edx
call fcn.004ae850
mov cx, word [0x4a8a52]
mov edx, dword [0x4a8a48]
dec eax
push eax
push ecx
push edx
call fcn.004ae7f0
add esp, 0x14
jmp 0x4aea2d
cmp ecx, 0x9b73
jg 0x4aee35
je 0x4aee05
cmp ecx, 0x7123
jg 0x4aed9b
je 0x4aed4d
sub ecx, 0x654d
je 0x4aed36
sub ecx, 0x5e
je 0x4aecfe
sub ecx, 0x3df
jne 0x4aea32
push 0
push esi
push edx
call fcn.004ae7f0
add esp, 0xc
jmp 0x4aea2d
mov edx, dword [eax]
xor ecx, ecx
mov cx, si
add eax, 4
cmp edx, ecx
mov dword [0x49bc98], eax
je 0x4aea32
mov ecx, dword [0x49bc9c]
sub eax, 4
mov dword [0x49bc98], eax
mov dword [eax], ecx
mov edx, dword [0x4a8a48]
mov dword [0x49bc9c], edx
jmp 0x4aea2d
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
add esp, 8
or dword [ecx], eax
jmp 0x4aea2d
xor ecx, ecx
mov cx, si
cmp ecx, 0x68
je 0x4aed69
cmp ecx, 0x28e
jne 0x4aed7e
mov ecx, dword [eax]
and ecx, 0xffff
jmp 0x4aed71
mov ecx, dword [eax]
and ecx, 0xff
mov dword [eax], ecx
mov edx, dword [0x4a8a48]
mov eax, dword [0x49bc98]
mov ecx, dword [eax]
add eax, 4
test ecx, ecx
mov dword [0x49bc98], eax
jne 0x4aea32
mov dword [0x49bc9c], edx
jmp 0x4aea32
cmp ecx, 0x74bb
je 0x4aedee
cmp ecx, 0x8109
je 0x4aedd2
cmp ecx, 0x9104
jne 0x4aea32
push esi
push edx
call fcn.004ae850
mov edx, eax
mov eax, dword [0x49bc98]
add esp, 8
imul edx, dword [eax]
mov dword [eax], edx
jmp 0x4aea2d
mov edx, dword [eax]
xor ecx, ecx
mov cx, si
add eax, 4
cmp edx, ecx
mov dword [0x49bc98], eax
jne 0x4aea32
jmp 0x4aed15
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
add esp, 8
xor dword [ecx], eax
jmp 0x4aea2d
mov ecx, dword [eax]
push ecx
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
push ecx
push eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx + 0x10], eax
mov eax, dword [0x49bc98]
add eax, 0x10
mov dword [0x49bc98], eax
jmp 0x4aea32
cmp ecx, 0xbed7
jg 0x4aeeef
je 0x4aeec9
cmp ecx, 0xaa61
je 0x4aee9d
cmp ecx, 0xb323
je 0x4aee75
cmp ecx, 0xba51
jne 0x4aea32
mov eax, dword [eax]
push eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx], eax
jmp 0x4aea2d
mov ecx, dword [eax]
push ecx
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
push ecx
push eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx + 8], eax
mov eax, dword [0x49bc98]
add eax, 8
mov dword [0x49bc98], eax
jmp 0x4aea32
mov ecx, dword [eax]
push ecx
mov ecx, dword [eax + 4]
push ecx
mov ecx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push ecx
push eax
call edx
mov ecx, dword [0x49bc98]
mov dword [ecx + 0xc], eax
mov eax, dword [0x49bc98]
add eax, 0xc
mov dword [0x49bc98], eax
jmp 0x4aea32
mov edx, dword [0x49bc9c]
sub eax, 4
mov dword [0x49bc98], eax
mov dword [eax], edx
mov edx, dword [0x4a8a48]
mov eax, dword [0x49bc98]
mov dword [0x49bc9c], edx
jmp 0x4aea32
cmp ecx, 0xcd03
je 0x4aef22
cmp ecx, 0xfb52
jne 0x4aea32
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
mov esi, eax
xor edx, edx
add esp, 8
mov eax, dword [ecx]
div esi
mov dword [ecx], eax
jmp 0x4aea2d
push esi
push edx
call fcn.004ae850
mov ecx, dword [0x49bc98]
add esp, 8
sub ecx, 4
mov dword [0x4a8a48], eax
mov dword [0x49bc98], ecx
mov dword [ecx], eax
jmp 0x4aea2d
xor eax, eax
mov ax, si
pop esi
cmp eax, 0xb
mov dword [0x4a845c], eax
ja case.default.0x4aef63
xor ecx, ecx
mov cl, byte [eax + 0x4af0a8]
jmp dword [ecx*4 + 0x4af098]
mov edx, dword [0x4a8488]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x4a849c]
test eax, eax
jne 0x4af023
cmp dword [0x4a8364], 1
jbe 0x4af023
push 0x4a85bc
call fcn.004b0ee0
test ax, ax
je 0x4aefa9
and eax, 0xffff
pop ebp
ret 0xc
mov ax, word [0x498fb6]
mov cx, word [0x498fb4]
push eax
push ecx
push 0x4a85bc
call fcn.004b1a90
test ax, ax
je 0x4aefd0
and eax, 0xffff
pop ebp
ret 0xc
push 0x4a84a8
push 0x4a85bc
call fcn.004b0f60
test ax, ax
je 0x4aefed
and eax, 0xffff
pop ebp
ret 0xc
mov dx, word [0x498008]
push edx
push 0x4a85bc
call fcn.004b10f0
mov ecx, dword [0x498fbc]
test ecx, ecx
je 0x4af01a
mov ax, word [0x498fb8]
push eax
push 0x4a85bc
call fcn.004b1840
and eax, 0xffff
pop ebp
ret 0xc
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
push ecx
push ebp
push edx
call dword [0x49af74]
pop ebp
ret 0xc
push 1
call dword [sym.imp.MSVCRT.dll_exit]
mov dword [0x4a845c], 2
and word [0x498004], 0xfffe
push 0x2010
call fcn.004ae070
push eax
call fcn.004afe40
add esp, 8
push 0
push 0
push 0x4a85bc
call fcn.004b18c0
mov word [0x4a84a0], ax
mov al, byte [0x498004]
test al, 1
jne 0x4af08f
mov eax, dword [0x4a845c]
push eax
call dword [sym.imp.KERNEL32.dll_ExitProcess]
xor eax, eax
pop ebp
ret 0xc