Function at 0x10004a7a
Capabilities:
Create thread

Disassembly:
push ebp
sub esp, 0x68
lea ebp, [esp - 4]
mov eax, dword [0x1007b940]
xor eax, ebp
mov dword [ebp + 0x68], eax
push 0x30
mov eax, 0x1005b346
call fcn.1003230f
push str.Startup
mov esi, ecx
push str.CMars
lea ecx, [ebp + 0x2c]
call fcn.10024db6
xor ebx, ebx
lea ecx, [esi + 0x40]
mov dword [ebp - 4], ebx
call fcn.10021df9
cmp dword [esi + 0x1c], ebx
jne 0x10004e32
push str.hpqusg_ExternalCallHidden_
lea ecx, [ebp + 0x1c]
call fcn.10001432
mov eax, dword [0x1007cd54]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 1
mov dword [ebp - 0x3c], 0x30
mov dword [ebp - 0x38], 3
mov dword [ebp - 0x34], 0x100044e7
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x10], ebx
call dword [sym.imp.USER32.dll_RegisterClassExA]
push ebx
push dword [0x1007cd54]
mov eax, SysReAllocStringLen
push ebx
push ebx
push ebx
push eax
push ebx
push eax
push 0xcf0000
push 0x10061424
push dword [ebp + 0x20]
push ebx
call dword [sym.imp.USER32.dll_CreateWindowExA]
push esi
push 0xffffffffffffffeb
push eax
mov dword [esi + 0x1c], eax
call dword [sym.imp.USER32.dll_SetWindowLongA]
call fcn.10003527
push str.GlobalA3C8986E_7035_4494_8036_F26E70C26733
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esi + 0x24], eax
cmp eax, ebx
jne 0x10004b69
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [esi + 0x24]
mov edi, dword [sym.imp.KERNEL32.dll_ResetEvent]
call edi
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
push eax
mov dword [esi + 0x2c], eax
call edi
push str.Global957EA366_7118_4b17_89CE_7B6A8CEF40FD
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [esi + 0x28], eax
mov edi, 0x313
cmp eax, ebx
jne 0x10004c17
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x28], eax
call fcn.10023c2a
test eax, eax
je 0x10004bde
push edi
call fcn.10023c32
pop ecx
test eax, eax
je 0x10004bde
push dword [ebp + 0x28]
push edi
call fcn.10024822
pop ecx
pop ecx
cmp eax, 2
jne 0x10004bde
push str.Startup
push str.CMars
push edi
call fcn.10023c3b
add esp, 0xc
call fcn.10023c2a
test eax, eax
je 0x10004c17
push edi
call fcn.10023c32
pop ecx
test eax, eax
je 0x10004c17
push str.Could_not_create_named_mutex...
push edi
call fcn.100248d5
pop ecx
pop ecx
cmp eax, 2
jne 0x10004c17
push str.Startup
push str.CMars
push edi
call fcn.10023c3b
add esp, 0xc
lea eax, [ebp + 0x18]
push eax
push ebx
push esi
push 0x10003697
push ebx
push ebx
mov dword [ebp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x30], eax
cmp eax, ebx
jne 0x10004cad
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x28], eax
call fcn.10023c2a
test eax, eax
je 0x10004c74
push edi
call fcn.10023c32
pop ecx
test eax, eax
je 0x10004c74
push dword [ebp + 0x28]
push edi
call fcn.10024822
pop ecx
pop ecx
cmp eax, 2
jne 0x10004c74
push str.Startup
push str.CMars
push edi
call fcn.10023c3b
add esp, 0xc
call fcn.10023c2a
test eax, eax
je 0x10004cad
push edi
call fcn.10023c32
pop ecx
test eax, eax
je 0x10004cad
push str.Could_not_create_the_thread_for_the_event
push edi
call fcn.100248d5
pop ecx
pop ecx
cmp eax, 2
jne 0x10004cad
push str.Startup
push str.CMars
push edi
call fcn.10023c3b
add esp, 0xc
push str.4ADDEE04_C02F_4755_94B5_589A4E7874D8
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esi + 0x34], eax
cmp eax, ebx
jne 0x10004d3c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp + 0x28], eax
call fcn.10023c2a
test eax, eax
je 0x10004d03
push edi
call fcn.10023c32
pop ecx
test eax, eax
je 0x10004d03
push dword [ebp + 0x28]
push edi
call fcn.10024822
pop ecx
pop ecx
cmp eax, 2
jne 0x10004d03
push str.Startup
push str.CMars
push edi
call fcn.10023c3b
add esp, 0xc
call fcn.10023c2a
test eax, eax
je 0x10004d3c
push edi
call fcn.10023c32
pop ecx
test eax, eax
je 0x10004d3c
push str.Could_not_create_the_Uninstall_Event
push edi
call fcn.100248d5
pop ecx
pop ecx
cmp eax, 2
jne 0x10004d3c
push str.Startup
push str.CMars
push edi
call fcn.10023c3b
add esp, 0xc
push dword [esi + 0x34]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
lea eax, [ebp + 0x24]
push eax
push ebx
push esi
push 0x10004056
push ebx
push ebx
mov dword [ebp + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [esi + 0x38], eax
cmp eax, ebx
jne 0x10004d68
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [ebp]
call fcn.100013fb
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
call fcn.100013fb
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 3
call fcn.100013fb
lea eax, [ebp]
push eax
mov edi, str.Identifier
push edi
mov esi, 0x10061574
push esi
mov byte [ebp - 4], 4
call fcn.10028f61
add esp, 0xc
test eax, eax
jne 0x10004db7
push 0x10061424
push edi
push esi
call fcn.100294e2
add esp, 0xc
lea eax, [ebp + 0x10]
push eax
mov edi, str.PageCount
push edi
push esi
call fcn.10028f61
add esp, 0xc
test eax, eax
jne 0x10004ddd
push 0x10061744
push edi
push esi
call fcn.100294e2
add esp, 0xc
lea eax, [ebp + 8]
push eax
mov edi, str.AppName
push edi
push esi
call fcn.10028f61
add esp, 0xc
test eax, eax
jne 0x10004e03
push 0x10061424
push edi
push esi
call fcn.100294e2
add esp, 0xc
lea ecx, [ebp + 0x10]
mov byte [ebp - 4], 3
call fcn.10001636
lea ecx, [ebp + 8]
mov byte [ebp - 4], 2
call fcn.10001636
lea ecx, [ebp]
mov byte [ebp - 4], 1
call fcn.10001636
lea ecx, [ebp + 0x1c]
mov byte [ebp - 4], bl
call fcn.10001636
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp + 0x2c]
call fcn.10024a7a
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x68]
xor ecx, ebp
call fcn.100302c9
add ebp, 0x6c
leave
ret