Function at 0x1090a9d0
Capabilities:
Execute anti-debugging instructions

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1091b36b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x3bc
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov dword [ebp - 4], ebx
rdtsc
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x1c], edx
fild dword [ebp - 0x1c]
mov eax, dword [ebp - 0x1c]
test eax, eax
jge 0x1090aa11
fadd qword [0x1091f3d8]
mov ecx, dword [ebp - 0x14]
fmul qword [0x1091f3d8]
test ecx, ecx
fild dword [ebp - 0x14]
jge 0x1090aa27
fadd qword [0x1091f3d8]
mov edx, dword [sym.imp.Core.dll_double_GSecondsPerCycle]
faddp st(1)
test byte [0x10954be4], 1
fmul qword [edx]
fadd qword [0x1091f3c8]
fstp qword [ebp - 0x68]
jne 0x1090aa80
mov eax, dword [0x10954be4]
or eax, 1
mov ecx, 0x10954bd4
mov dword [0x10954be4], eax
call dword [sym.imp.Core.dll_public:_void___thiscall_FExec::constructor_void_]
mov ecx, 0x10954bd8
call dword [sym.imp.Core.dll_public:_void___thiscall_FNotifyHook::constructor_void_]
mov dword [0x10954bd4], 0x1091f500
mov dword [0x10954bd8], 0x1091f504
mov dword [0x10954bdc], ebx
mov eax, dword [sym.imp.Core.dll_class_FExec__GExec]
mov dword [eax], 0x10954bd4
mov ecx, dword [sym.imp.Core.dll_int_GUnicodeOS]
cmp dword [ecx], ebx
push str.UnrealIsRunning
je 0x1090aaa4
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
jmp 0x1090aafa
mov edi, dword [sym.imp.Core.dll_int___cdecl_winGetSizeANSI_unsigned_short_int_const__]
call edi
add esp, 4
cmp eax, ebx
jne 0x1090aab7
xor esi, esi
jmp 0x1090aad7
push str.UnrealIsRunning
call edi
add eax, 7
and eax, 0xfffffff8
add eax, 3
add esp, 4
and eax, 0xfffffffc
call fcn.10917e20
mov dword [ebp - 0x10], esp
mov esi, esp
push str.UnrealIsRunning
call edi
add esp, 4
push eax
push str.UnrealIsRunning
push esi
call dword [sym.imp.Core.dll_char____cdecl_winToANSI_char___unsigned_short_int_const___int_]
add esp, 0xc
push eax
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov dword [ebp - 0x18], ebx
mov ecx, dword [edx]
mov eax, dword [ecx]
push ebx
lea edx, [ebp - 0x18]
push edx
push str.FirstRun
push str.FirstRun
call dword [eax + 4]
mov edi, dword [sym.imp.Core.dll_unsigned_short_int_const____cdecl_appCmdLine_void_]
call edi
push str.FirstRun
push eax
call dword [sym.imp.Core.dll_int___cdecl_ParseParam_unsigned_short_int_const___unsigned_short_int_const__]
add esp, 8
cmp eax, ebx
je 0x1090ab3f
mov dword [ebp - 0x18], ebx
jmp 0x1090ab4c
cmp dword [ebp - 0x18], 0xdc
jge 0x1090ac6c
mov eax, dword [sym.imp.Core.dll_class_FFileManager__GFileManager]
mov ecx, dword [eax]
mov edx, dword [ecx]
push ebx
push 1
push str...Save.usa
lea eax, [ebp - 0x48]
push eax
call dword [edx + 0x2c]
mov byte [ebp - 4], 1
lea ebx, [ebp - 0x48]
xor edi, edi
lea ecx, [ecx]
cmp edi, dword [ebx + 4]
jge 0x1090ac47
mov edx, dword [ebx]
lea ecx, [edi + edi*2]
lea ecx, [edx + ecx*4]
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
add eax, 8
push eax
call dword [sym.imp.Core.dll_int___cdecl_appAtoi_unsigned_short_int_const__]
add esp, 4
push str.UnrealShare.UnrealSlotMenu
lea ecx, [ebp - 0x54]
mov esi, eax
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::constructor_unsigned_short_int_const__]
push esi
lea eax, [ebp - 0x60]
push str.SlotNames__i_
push eax
mov byte [ebp - 4], 2
call dword [sym.imp.Core.dll_public:_static_class_FString___cdecl_FString::Printf_unsigned_short_int_const__]
add esp, 0xc
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 3
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
lea ecx, [ebp - 0x54]
mov esi, eax
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov ecx, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push str.user
push esi
push eax
call dword [edx + 0x14]
push 0x1091f4fc
push eax
call dword [sym.imp.Core.dll_int___cdecl_appStricmp_unsigned_short_int_const___unsigned_short_int_const__]
add esp, 8
test eax, eax
jne 0x1090ac27
lea ecx, [ebp - 0x60]
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
lea ecx, [ebp - 0x54]
mov esi, eax
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov ecx, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push str.user
push str.Saved_game
push esi
push eax
call dword [edx + 0x30]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 2
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::destructor_void_]
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 1
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::destructor_void_]
inc edi
jmp 0x1090ab70
mov eax, dword [ebp - 0x44]
push eax
push 0
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 4
call fcn.10901343
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0
call dword [sym.imp.Core.dll_public:_void___thiscall_FArray::destructor_void_]
mov edi, dword [sym.imp.Core.dll_unsigned_short_int_const____cdecl_appCmdLine_void_]
lea ecx, [ebp - 0x34]
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::constructor_void_]
mov byte [ebp - 4], 5
call edi
mov esi, dword [sym.imp.Core.dll_int___cdecl_Parse_unsigned_short_int_const___unsigned_short_int_const___class_FString__]
lea ecx, [ebp - 0x34]
push ecx
push str.consolecommand
push eax
call esi
add esp, 0xc
test eax, eax
je 0x1090acd9
lea ecx, [ebp - 0x34]
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov edx, dword [sym.imp.Core.dll_class_FOutputDevice__GLog]
push eax
mov eax, dword [edx]
push str.Executing_console_command__s
push eax
call dword [sym.imp.Core.dll_public:_void___cdecl_FOutputDevice::Logf_unsigned_short_int_const__]
add esp, 0xc
lea ecx, [ebp - 0x34]
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov esi, dword [sym.imp.Core.dll_class_FOutputDevice__GLog]
mov ecx, dword [sym.imp.Core.dll_class_FExec__GExec]
mov esi, dword [esi]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push esi
push eax
call dword [edx]
jmp 0x1090ae4c
lea ecx, [ebp - 0x28]
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::constructor_void_]
mov byte [ebp - 4], 6
call edi
lea ecx, [ebp - 0x28]
push ecx
push str.testrendev
push eax
call esi
add esp, 0xc
test eax, eax
je 0x1090ae82
lea ecx, [ebp - 0x28]
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov edx, dword [sym.imp.Core.dll_class_FOutputDevice__GLog]
mov edi, dword [sym.imp.Core.dll_public:_void___cdecl_FOutputDevice::Logf_unsigned_short_int_const__]
push eax
mov eax, dword [edx]
push str.Detecting__s
push eax
call edi
add esp, 0xc
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov esi, eax
call dword [sym.imp.Engine.dll_public:_static_class_UClass____cdecl_URenderDevice::StaticClass_void_]
push 0
push 0
push 0
push esi
push 0
push eax
call dword [sym.imp.Core.dll_public:_static_class_UClass____cdecl_UObject::StaticLoadClass_class_UClass___class_UObject___unsigned_short_int_const___unsigned_short_int_const___unsigned_long_int__class_UPackageMap__]
add esp, 0x18
lea ecx, [ebp - 0x28]
mov esi, eax
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
mov ecx, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push 0
push 2
push str.DescFlags
push eax
call dword [edx + 0x28]
mov eax, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov ecx, dword [eax]
mov edx, dword [ecx]
push 0
push 0
push 0
call dword [edx + 0x34]
test esi, esi
je 0x1090ae11
push 0
lea ecx, [ebp - 0x14]
call dword [sym.imp.Core.dll_public:_void___thiscall_FName::constructor_enum_EName_]
call dword [sym.imp.Engine.dll_public:_static_class_UClass____cdecl_URenderDevice::StaticClass_void_]
push eax
mov ecx, esi
call dword [sym.imp.Core.dll_public:_int___thiscall_UStruct::IsChildOf_class_UStruct_const__const]
test eax, eax
jne 0x1090adbc
push 0x478
push str.c:workpc_sormcoreincUnObjBas.h
push str.Class__IsChildOf_T::StaticClass___
call dword [sym.imp.Core.dll_void___cdecl_appFailAssert_char_const___char_const___int_]
add esp, 0xc
call dword [sym.imp.Core.dll_public:_static_class_UPackage____cdecl_UObject::GetTransientPackage_void_]
mov ecx, dword [sym.imp.Core.dll_class_FOutputDeviceError__GError]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x14]
push 0
push edx
push 0
push 0
push ecx
push eax
push esi
call dword [sym.imp.Core.dll_public:_static_class_UObject____cdecl_UObject::StaticConstructObject_class_UClass___class_UObject___class_FName__unsigned_long_int__class_UObject___class_FOutputDevice___class_UObject__]
mov esi, eax
add esp, 0x1c
test esi, esi
je 0x1090ae11
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x5c]
test eax, eax
je 0x1090ae72
lea ecx, [ebp - 0x28]
call dword [sym.imp.Core.dll_public:_unsigned_short_int_const____thiscall_FString::operator_void_const]
push eax
mov eax, dword [sym.imp.Core.dll_class_FOutputDevice__GLog]
mov ecx, dword [eax]
push str.Successfully_detected__s
push ecx
call edi
add esp, 0xc
mov eax, dword [sym.imp.Core.dll_class_FFileManager__GFileManager]
mov ecx, dword [eax]
mov eax, dword [sym.imp.Core.dll_class_FOutputDevice__GNull]
mov eax, dword [eax]
mov edx, dword [ecx]
push eax
push 0
push str.Detected.ini
mov dword [ebp - 4], 6
call dword [edx + 8]
test eax, eax
je 0x1090ae3f
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::destructor_void_]
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::destructor_void_]
xor eax, eax
lea esp, [ebp - 0x3d4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx]
jmp 0x1090ae11
mov eax, dword [sym.imp.Core.dll_int_GIsEditor]
cmp dword [eax], 0
mov byte [ebp - 4], 9
jne 0x1090afc0
mov ecx, dword [sym.imp.Core.dll_int_GIsClient]
cmp dword [ecx], 0
je 0x1090afc0
lea ecx, [ebp - 0x3c8]
call fcn.1090117c
mov bl, 0xa
mov byte [ebp - 4], bl
call edi
push str.safe
push eax
call dword [sym.imp.Core.dll_int___cdecl_ParseParam_unsigned_short_int_const___unsigned_short_int_const__]
add esp, 8
test eax, eax
jne 0x1090af0d
call edi
push str.readini
push eax
call dword [sym.imp.Core.dll_unsigned_short_int_const____cdecl_appStrfind_unsigned_short_int_const___unsigned_short_int_const__]
add esp, 8
test eax, eax
jne 0x1090af0d
cmp dword [ebp - 0x18], 0x83e
jge 0x1090afb1
mov edx, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov ecx, dword [edx]
mov eax, dword [ecx]
push 0
push str.D3DDrv.D3DRenderDevice
push str.RenderDevice
push str.Engine.Engine
call dword [eax + 0x30]
jmp 0x1090afb1
mov ecx, dword [sym.imp.Core.dll_class_FMalloc__GMalloc]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push 0x1091f518
push 0x218
call dword [edx]
mov ecx, eax
mov dword [ebp - 0x14], ecx
test ecx, ecx
mov byte [ebp - 4], 0xb
je 0x1090af40
lea eax, [ebp - 0x3c8]
push eax
call fcn.10901203
mov esi, eax
jmp 0x1090af42
xor esi, esi
push 0
push str.Startup
push str.SafeMode
mov byte [ebp - 4], bl
call dword [sym.imp.Core.dll_unsigned_short_int_const____cdecl_LocalizeGeneral_unsigned_short_int_const___unsigned_short_int_const___unsigned_short_int_const__]
add esp, 0xc
push eax
lea ecx, [ebp - 0x78]
call dword [0x10955cd8]
test esi, esi
je 0x1090afb1
call fcn.1090125d
push esi
lea ecx, [ebp - 0x3c8]
call dword [sym.imp.Window.dll_public_virtual:_void___thiscall_WWizardDialog::Advance_class_WWizardPage__]
mov ecx, dword [sym.imp.Window.dll_struct_HINSTANCE____hInstanceWindow]
mov edx, dword [ecx]
push edx
lea ecx, [ebp - 0x3c8]
call dword [sym.imp.Window.dll_public_virtual:_int___thiscall_WDialog::DoModal_struct_HINSTANCE____]
test eax, eax
jne 0x1090afa7
lea ecx, [ebp - 0x3c8]
mov byte [ebp - 4], 9
call fcn.109012e4
jmp 0x1090ae3f
push 0
call fcn.1090123a
add esp, 4
lea ecx, [ebp - 0x3c8]
mov byte [ebp - 4], 9
call fcn.109012e4
mov edx, dword [sym.imp.Core.dll_class_FFileManager__GFileManager]
mov ecx, dword [edx]
mov edx, dword [sym.imp.Core.dll_class_FOutputDevice__GNull]
mov edx, dword [edx]
mov eax, dword [ecx]
push edx
push 0
push str.Running.ini
mov dword [ebp - 4], 6
call dword [eax + 8]
test eax, eax
je 0x1090aff0
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx]
mov eax, dword [ebp - 0x18]
cmp eax, 0x83e
jge 0x1090b002
mov eax, 0x83e
mov dword [ebp - 0x18], eax
mov ecx, dword [sym.imp.Core.dll_class_FConfigCache__GConfig]
mov ecx, dword [ecx]
mov edx, dword [ecx]
push 0
push eax
push str.FirstRun
push str.FirstRun
call dword [edx + 0x28]
mov eax, dword [sym.imp.Core.dll_int_GIsEditor]
cmp dword [eax], 0
jne 0x1090b057
call dword [sym.imp.Engine.dll_public:_static_class_UClass____cdecl_UGameEngine::StaticClass_void_]
push 0
push 1
push 0
push str.ini:Engine.Engine.GameEngine
jmp 0x1090b068
call dword [sym.imp.Engine.dll_public:_static_class_UClass____cdecl_UEngine::StaticClass_void_]
push 0
push 1
push 0
push str.ini:Engine.Engine.EditorEngine
push 0
push eax
call dword [sym.imp.Core.dll_public:_static_class_UClass____cdecl_UObject::StaticLoadClass_class_UClass___class_UObject___unsigned_short_int_const___unsigned_short_int_const___unsigned_long_int__class_UPackageMap__]
add esp, 0x18
push 0
lea ecx, [ebp - 0x14]
mov esi, eax
call dword [sym.imp.Core.dll_public:_void___thiscall_FName::constructor_enum_EName_]
call dword [sym.imp.Engine.dll_public:_static_class_UClass____cdecl_UEngine::StaticClass_void_]
push eax
mov ecx, esi
call dword [sym.imp.Core.dll_public:_int___thiscall_UStruct::IsChildOf_class_UStruct_const__const]
test eax, eax
jne 0x1090b0ac
push 0x478
push str.c:workpc_sormcoreincUnObjBas.h
push str.Class__IsChildOf_T::StaticClass___
call dword [sym.imp.Core.dll_void___cdecl_appFailAssert_char_const___char_const___int_]
add esp, 0xc
call dword [sym.imp.Core.dll_public:_static_class_UPackage____cdecl_UObject::GetTransientPackage_void_]
mov ecx, dword [sym.imp.Core.dll_class_FOutputDeviceError__GError]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x14]
push 0
push edx
push 0
push 0
push ecx
push eax
push esi
call dword [sym.imp.Core.dll_public:_static_class_UObject____cdecl_UObject::StaticConstructObject_class_UClass___class_UObject___class_FName__unsigned_long_int__class_UObject___class_FOutputDevice___class_UObject__]
mov esi, eax
mov edx, dword [esi]
add esp, 0x1c
mov ecx, esi
call dword [edx + 0x5c]
rdtsc
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], edx
fild dword [ebp - 0x14]
mov eax, dword [ebp - 0x14]
test eax, eax
jge 0x1090b0f1
fadd qword [0x1091f3d8]
mov ecx, dword [ebp - 0x1c]
fmul qword [0x1091f3d8]
test ecx, ecx
fild dword [ebp - 0x1c]
jge 0x1090b107
fadd qword [0x1091f3d8]
mov edx, dword [sym.imp.Core.dll_double_GSecondsPerCycle]
faddp st(1)
mov eax, dword [sym.imp.Core.dll_class_FOutputDevice__GLog]
mov ecx, dword [eax]
fmul qword [edx]
sub esp, 8
fadd qword [0x1091f3c8]
fsub qword [ebp - 0x68]
fstp qword [esp]
push str.Startup_time:__f_seconds
push ecx
call dword [sym.imp.Core.dll_public:_void___cdecl_FOutputDevice::Logf_unsigned_short_int_const__]
add esp, 0x10
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::destructor_void_]
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0
call dword [sym.imp.Core.dll_public:_void___thiscall_FString::destructor_void_]
mov eax, esi
jmp 0x1090ae5b