Function at 0x402275
Capabilities:
Accept command line arguments
Contain obfuscated stackstrings
Parse pe header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405c18
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1060
call fcn.00401970
mov eax, dword [0x40647c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
xor ebx, ebx
mov dword [ebp - 0xfa0], ebx
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
mov ecx, eax
mov dword [ebp - 0xfa8], ecx
lea edi, [ebp - 0xfa0]
call fcn.0040124e
test al, al
jne 0x402d2a
push 5
push 5
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCErrorServices::Initialize_long_int__long_int_]
push 0x406398
call dword [sym.imp.KERNEL32.dll_AddAtomW]
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jl 0x402fe0
mov byte [ebp - 0xff5], 1
mov dword [ebp - 4], ebx
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::InitThread_void_]
mov byte [ebp - 4], 1
xor edi, edi
inc edi
push edi
push edi
lea ecx, [ebp - 0xfc8]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionTranslator::constructor_bool__bool_]
mov byte [ebp - 4], 2
push edi
lea ecx, [ebp - 0xf8c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartTerminateHandler::constructor_bool_]
mov byte [ebp - 4], 3
push ebx
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::StartErrorBlock_bool_]
call esi
mov byte [ebp - 4], 4
mov byte [ebp - 4], 5
push edi
lea ecx, [ebp - 0xf90]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartInvalidParameterHandler::constructor_bool_]
mov byte [ebp - 4], 6
push edi
call esi
mov byte [ebp - 4], 7
mov byte [ebp - 4], 8
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Init_void_]
mov byte [ebp - 4], 9
push edi
lea ecx, [ebp - 0xf94]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionFilter::constructor_bool_]
mov byte [ebp - 4], 0xa
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::InitCOM_void_]
mov byte [ebp - 4], 0xb
call dword [sym.imp.GrooveUtil.DLL_public:_static_struct_HINSTANCE______stdcall_GCGrooveResourceModule::GetHandle_void_]
push eax
push 0xd8
lea eax, [ebp - 0x124]
push eax
call fcn.00401996
mov byte [ebp - 4], 0xc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::StartGlobalTimer_void_]
mov byte [ebp - 4], 0xd
push 0xffffffffffffffff
push 0x406574
call dword [sym.imp.GrooveUtil.DLL_void___stdcall_SetThreadName_wchar_t_const___unsigned_long_int_]
call fcn.004019db
lea eax, [ebp - 0xff4]
push eax
call fcn.00401a62
mov byte [ebp - 4], 0xe
push dword [ebp - 0xfa8]
lea ecx, [ebp - 0xff4]
call fcn.00401b3f
lea eax, [ebp - 0xff4]
push eax
call fcn.00401acd
test al, al
jne 0x402ff6
call fcn.00401d15
test al, al
je 0x4030af
cmp byte [ebp - 0xff0], 0
je 0x40240f
push ebx
push ebx
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCErrorServices::Initialize_long_int__long_int_]
call dword [sym.imp.GrooveUtil.DLL_public:_static_bool___stdcall_GCSubmitBugHelper::CanReportBug_void_]
test al, al
jne 0x4030ba
push ebx
push ebx
push 6
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCRegistryKey::constructor_enum_GCRegistryKey::KEY_ROOT__wchar_t_const___bool_]
mov byte [ebp - 4], 0xf
push 0x20019
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::Open_unsigned_long_int_]
test eax, eax
jne 0x402471
mov dword [ebp - 0xf84], ebx
push ebx
push 0x406584
lea eax, [ebp - 0xf84]
push eax
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::GetValue_unsigned_long_int___wchar_t_const___unsigned_long_int__const]
push dword [ebp - 0xf84]
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
mov eax, dword [sym.imp.GrooveUtil.DLL_bool_GCSafeScriptingSupport::ms_RunningProcessChecked]
cmp byte [eax], 0
jne 0x4030d8
call dword [sym.imp.GrooveUtil.DLL_private:_static_bool___stdcall_GCSafeScriptingSupport::int_IsRunningInGrooveProcess_void_]
test al, al
je 0x4030e4
push 0x17
mov esi, 0x4065e0
push esi
push 0x4065d0
lea ecx, [ebp - 0xf9c]
mov ebx, dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::CreateInstanceNoRelease_struct__GUID_const___struct__GUID_const___unsigned_long_int_]
call ebx
mov byte [ebp - 4], 0x15
mov byte [ebp - 4], 0x16
mov byte [ebp - 4], 0x17
mov eax, dword [ebp - 0xf9c]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x10]
test eax, eax
jl 0x4032ac
xor esi, esi
cmp word [ebp - 0xf7e], si
je 0x4032b9
mov byte [ebp - 4], 0x1a
mov byte [ebp - 4], 0x1b
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xf9c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
push 0x17
push 0x4065c0
push 0x4065b0
lea ecx, [ebp - 0xf98]
call ebx
mov byte [ebp - 4], 0x1c
mov byte [ebp - 4], 0x1d
mov byte [ebp - 4], 0x1e
push 0x17
mov esi, 0x406890
push esi
push 0x406880
lea ecx, [ebp - 0xf78]
call ebx
mov byte [ebp - 4], 0x1f
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0x21
mov eax, dword [ebp - 0xf78]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x1c]
test eax, eax
jl 0x40338d
cmp word [ebp - 0xf7e], 0
je 0x403399
mov eax, dword [ebp - 0xf78]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf84]
push edx
push eax
call dword [ecx + 0x2c]
test eax, eax
jl 0x40348a
push dword [ebp - 0xf84]
push esi
lea ecx, [ebp - 0xf88]
call dword [sym.imp.GrooveUtil.DLL_protected:_long_int___thiscall_GCIPtrBase::QueryInterfaceNoReleaseNoThrow_struct__GUID_const___struct_IUnknown__]
mov esi, eax
mov eax, dword [ebp - 0xf84]
xor edi, edi
cmp eax, edi
je 0x4025ae
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp esi, edi
jl 0x403496
mov byte [ebp - 4], 0x22
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0x24
cmp byte [ebp - 0xfef], 0
jne 0x4034a6
cmp byte [ebp - 0xfee], 0
jne 0x40351a
mov eax, dword [ebp - 0xfe0]
cmp eax, edi
jne 0x4035b5
xor eax, eax
inc eax
test al, al
je 0x4035c5
cmp byte [ebp - 0xff3], 0
jne 0x403633
cmp byte [ebp - 0xfed], 0
jne 0x4036d6
cmp byte [ebp - 0xfec], 0
jne 0x40381b
cmp byte [ebp - 0xff1], 0
je 0x40264f
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jl 0x403923
cmp word [ebp - 0xf7e], di
je 0x40392f
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jl 0x403976
cmp word [ebp - 0xf7e], di
je 0x403dbe
push 0x406800
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
call esi
cmp byte [ebp - 0xff1], 0
je 0x40269e
cmp byte [ebp - 0xfea], 0
je 0x40269e
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::CreateSplashWindow_void_]
push 0x406838
call esi
mov word [ebp - 0xfbc], di
push dword [ebp - 0xf98]
mov esi, 0x4068a0
push esi
lea ecx, [ebp - 0xf84]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x33
mov byte [ebp - 4], 0x34
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xfbc]
push edx
push 0x1fff
push eax
call dword [ecx + 0x18]
test eax, eax
jl 0x403982
mov byte [ebp - 4], 0x36
mov byte [ebp - 4], 0x37
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xf84]
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
call edi
lea eax, [ebp - 0xfa8]
push eax
call fcn.004021f6
mov byte [ebp - 4], 0x38
cmp word [ebp - 0xfbc], 0
jne 0x40398f
push 0x406658
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push 0x17
push 0x4066c0
push 0x4066b0
lea ecx, [ebp - 0xfb4]
call ebx
mov byte [ebp - 4], 0x3e
mov byte [ebp - 4], 0x3f
mov byte [ebp - 4], 0x40
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x20]
test eax, eax
jl 0x403a74
push 0x17
mov esi, 0x4068c0
push esi
push 0x4068b0
lea ecx, [ebp - 0xf84]
call ebx
mov byte [ebp - 4], 0x41
mov byte [ebp - 4], 0x42
mov byte [ebp - 4], 0x43
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x60]
test eax, eax
jl 0x403a80
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
test eax, eax
jl 0x403a8d
push 0x17
push 0x406760
push 0x406740
lea ecx, [ebp - 0xfb8]
call ebx
mov byte [ebp - 4], 0x44
mov byte [ebp - 4], 0x45
mov byte [ebp - 4], 0x46
push 0x17
push 0x406770
push 0x406750
lea ecx, [ebp - 0x1014]
call ebx
mov byte [ebp - 4], 0x47
mov byte [ebp - 4], 0x48
mov byte [ebp - 4], 0x49
push 1
push 4
push 0x40911c
call dword [sym.imp.ATL80.DLL_Ordinal_17]
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DestroySplashWindow_void_]
push 0x4066d0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push dword [ebp - 0xf78]
mov ebx, 0x406790
push ebx
lea ecx, [ebp - 0xf7c]
mov edi, dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
call edi
mov byte [ebp - 4], 0x4a
mov byte [ebp - 4], 0x4b
mov byte [ebp - 4], 0x4c
mov eax, dword [ebp - 0xf7c]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xfb0]
push edx
push eax
call dword [ecx + 0x7c]
test eax, eax
jl 0x403a9a
mov byte [ebp - 4], 0x49
lea eax, [ebp - 0xf7c]
push eax
call fcn.00402014
push dword [ebp - 0xf78]
mov esi, 0x4067b0
push esi
lea ecx, [ebp - 0xf7c]
call edi
mov byte [ebp - 4], 0x4d
mov byte [ebp - 4], 0x4e
mov byte [ebp - 4], 0x4f
mov eax, dword [ebp - 0xf7c]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf80]
push edx
lea edx, [ebp - 0xf9c]
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
jl 0x403aa7
mov byte [ebp - 4], 0x50
mov byte [ebp - 4], 0x51
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
push 0x17
push 0x4067f0
push 0x406780
lea ecx, [ebp - 0x1020]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::CreateInstanceNoRelease_struct__GUID_const___struct__GUID_const___unsigned_long_int_]
mov byte [ebp - 4], 0x52
mov byte [ebp - 4], 0x53
mov byte [ebp - 4], 0x54
mov eax, dword [ebp - 0x1020]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7c]
push edx
push 1
push eax
call dword [ecx + 0x58]
xor edi, edi
cmp eax, edi
jl 0x403ab4
mov eax, dword [ebp - 0xf7c]
mov dword [ebp - 0x1010], eax
mov byte [ebp - 4], 0x55
mov byte [ebp - 4], 0x56
mov byte [ebp - 4], 0x57
mov eax, dword [ebp - 0x1010]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7a]
push edx
push eax
call dword [ecx + 0x1c]
cmp eax, edi
jl 0x403ac5
cmp word [ebp - 0xf7a], di
setne al
cmp word [ebp - 0xfb0], di
jne 0x403ad6
cmp word [ebp - 0xf80], 0
jne 0x403c0b
mov esi, 0x4067a0
cmp byte [ebp - 0xfeb], 0
jne 0x403c67
cmp byte [ebp - 0xff0], 0
je 0x4029d3
push dword [ebp - 0xf78]
mov edi, 0x4067e0
push edi
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x66
mov byte [ebp - 4], 0x67
mov byte [ebp - 4], 0x68
mov eax, dword [ebp - 0xf7c]
mov ebx, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
test eax, eax
jl 0x403cc3
mov byte [ebp - 4], 0x69
mov byte [ebp - 4], 0x6a
mov byte [ebp - 4], 0x57
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
push 0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::AllowMSOIdleProcessing_bool_]
mov eax, dword [ebp - 0xfe0]
test eax, eax
jne 0x403cd0
xor eax, eax
inc eax
test al, al
sete byte [ebp - 0xf79]
cmp byte [ebp - 0xff4], 0
jne 0x402d5c
cmp byte [ebp - 0xf79], 0
jne 0x402d5c
mov bl, 1
push 0x17
mov edi, 0x4067d0
push edi
push 0x4067c0
lea ecx, [ebp - 0x101c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::CreateInstanceNoRelease_struct__GUID_const___struct__GUID_const___unsigned_long_int_]
mov byte [ebp - 4], 0x6b
mov byte [ebp - 4], 0x6c
mov byte [ebp - 4], 0x6d
push 0x406704
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
mov al, byte [ebp - 0xff1]
neg al
sbb eax, eax
and eax, 0xffff
mov word [ebp - 0xfa4], ax
neg bl
sbb ebx, ebx
and ebx, 0xffff
mov word [ebp - 0xfac], bx
mov eax, dword [ebp - 0x101c]
mov ebx, eax
mov ecx, dword [eax]
push dword [ebp - 0xfe4]
push dword [ebp - 0xfe8]
push dword [ebp - 0xfa4]
push dword [ebp - 0xfac]
push eax
call dword [ecx + 0x2c]
test eax, eax
jl 0x403ce1
push 0x4068d0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
cmp byte [ebp - 0xf79], 0
jne 0x403cee
mov ebx, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
cmp byte [ebp - 0xff3], 0
jne 0x403d4c
push 1
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::AllowMSOIdleProcessing_bool_]
push 0x40690c
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push 0x17
mov esi, 0x406948
push esi
push 0x406938
lea ecx, [ebp - 0x1018]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::CreateInstanceNoRelease_struct__GUID_const___struct__GUID_const___unsigned_long_int_]
mov byte [ebp - 4], 0x74
mov byte [ebp - 4], 0x75
mov byte [ebp - 4], 0x76
mov eax, dword [ebp - 0x1018]
mov edi, eax
mov ecx, dword [eax]
push dword [ebp - 0x1014]
push dword [ebp - 0xfb8]
push eax
call dword [ecx + 0xc]
test eax, eax
jl 0x403da0
mov byte [ebp - 4], 0x6d
lea eax, [ebp - 0x1018]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x77
mov byte [ebp - 4], 0x78
mov byte [ebp - 4], 0x57
lea ecx, [ebp - 0x101c]
call ebx
mov byte [ebp - 4], 0x79
mov byte [ebp - 4], 0x7a
mov byte [ebp - 4], 0x54
lea ecx, [ebp - 0x1010]
call ebx
mov byte [ebp - 4], 0x7b
mov byte [ebp - 4], 0x7c
mov byte [ebp - 4], 0x49
lea ecx, [ebp - 0x1020]
call ebx
mov byte [ebp - 4], 0x46
lea eax, [ebp - 0x1014]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x43
lea eax, [ebp - 0xfb8]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x7d
mov byte [ebp - 4], 0x7e
mov byte [ebp - 4], 0x40
lea ecx, [ebp - 0xf84]
call ebx
or word [ebp - 0xfac], 0xffff
or word [ebp - 0xfa4], 0xffff
mov eax, dword [ebp - 0xfb4]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xfac]
push edx
push dword [ebp - 0xfac]
push dword [ebp - 0xfa4]
push eax
call dword [ecx + 0x40]
test eax, eax
jl 0x403dad
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0xfb4]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x7f
mov byte [ebp - 4], 0x80
mov byte [ebp - 4], 0x81
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xfa8]
call ebx
push dword [ebp - 0xf98]
call fcn.00402055
lea ecx, [ebp - 0xf98]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
push dword [ebp - 0xf78]
call fcn.00402055
lea ecx, [ebp - 0xf78]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0xf88]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCRegistryKey::destructor_void_]
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xff4]
push eax
call fcn.00402127
mov byte [ebp - 4], 0xc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::StopGlobalTimer_void_]
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x124]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xa
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::UninitCOM_void_]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xf94]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionFilter::destructor_void_]
mov byte [ebp - 4], 8
push 0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Uninit_bool_]
mov dword [ebp - 4], 7
mov byte [ebp - 4], 6
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf90]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartInvalidParameterHandler::destructor_void_]
mov dword [ebp - 4], 4
mov byte [ebp - 4], 3
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartTerminateHandler::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc8]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCSmartExceptionTranslator::destructor_void_]
mov byte [ebp - 4], 0
push 1
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Uninit_bool_]
or dword [ebp - 4], 0xffffffff
push 0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCErrorInfo::Set_struct_IErrorInfo__]
call dword [sym.imp.ole32.dll_OleUninitialize]
mov eax, dword [ebp - 0xfa0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00401dc8
leave
ret
cmp word [ebp - 0xfb0], di
je 0x402958
jmp 0x402966
xor bl, bl
jmp 0x402a11
push ebx
push 0xffffffffffffffff
push 1
push 0x2d63
push ebx
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCError::TerminateGrooveProcess_class_GCError_const___unsigned_long_int__bool__long_int__struct__EXCEPTION_POINTERS_const__]
jmp 0x4022f8
mov dword [ebp - 0x1038], ebx
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xff4]
push eax
call fcn.00402127
mov byte [ebp - 4], 0xc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::StopGlobalTimer_void_]
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x124]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xa
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::UninitCOM_void_]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xf94]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionFilter::destructor_void_]
mov byte [ebp - 4], 8
push ebx
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Uninit_bool_]
call esi
mov byte [ebp - 4], 6
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
call edi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf90]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartInvalidParameterHandler::destructor_void_]
mov byte [ebp - 4], 3
call edi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartTerminateHandler::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc8]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCSmartExceptionTranslator::destructor_void_]
mov byte [ebp - 4], 0
push 1
call esi
or dword [ebp - 4], 0xffffffff
push ebx
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCErrorInfo::Set_struct_IErrorInfo__]
call dword [sym.imp.ole32.dll_OleUninitialize]
xor eax, eax
jmp 0x402d30
mov dword [ebp - 0x106c], ebx
jmp 0x402ffc
lea edi, [ebp - 0xff4]
call fcn.0040483a
test al, al
jne 0x40241d
mov dword [ebp - 0x1054], ebx
jmp 0x402ffc
mov eax, dword [sym.imp.GrooveUtil.DLL_bool_GCSafeScriptingSupport::ms_RunningInGrooveProcess]
mov al, byte [eax]
jmp 0x40248b
lea eax, [ebp - 0x234]
push eax
call fcn.00404d3a
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x234]
call fcn.004047d7
lea eax, [ebp - 0x754]
push eax
call fcn.00404958
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0xb64]
push eax
call fcn.00404958
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x754]
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCSafeScriptingSupport::GetExecutableDirectory_class_GCStackStrBase__]
lea eax, [ebp - 0xb64]
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCSafeScriptingSupport::GetInstallDirectory_class_GCStackStrBase__]
lea eax, [ebp - 0xf74]
push eax
call fcn.00404958
mov byte [ebp - 4], 0x13
lea eax, [ebp - 0xfac]
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_static_class_GCLocale___stdcall_GCLocale::GetDefault_void_const]
mov edi, eax
mov byte [ebp - 4], 0x14
mov ebx, dword [ebp - 0xb64]
mov esi, dword [ebp - 0x754]
call dword [sym.imp.GrooveUtil.DLL_public:_static_struct_HINSTANCE______stdcall_GCGrooveResourceModule::GetHandle_void_]
push eax
push edi
push 0
push 0
push ebx
push esi
push 0x2e1d
lea ecx, [ebp - 0xf74]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCStackStrBase::MessageFormat_unsigned_long_int__wchar_t_const__const__wchar_t_const__const__wchar_t_const__const__wchar_t_const__const__class_GCLocale_const___struct_HINSTANCE____const_]
mov byte [ebp - 4], 0x13
push 0x2e746a31
push 0x406a88
push 0x1b9
push 0x406a90
call dword [sym.imp.GrooveUtil.DLL_void___stdcall_GrooveHandleShipAssert_char_const___unsigned_long_int__char_const___unsigned_long_int_]
xor ebx, ebx
push ebx
push dword [ebp - 0x234]
push dword [ebp - 0xf74]
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x103c], ebx
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0xf74]
push eax
call fcn.00402105
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0xb64]
push eax
call fcn.00402105
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x754]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x234]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCRegistryKey::destructor_void_]
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xff4]
push eax
call fcn.00402127
mov byte [ebp - 4], 0xc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::StopGlobalTimer_void_]
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x124]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xa
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::UninitCOM_void_]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xf94]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionFilter::destructor_void_]
mov byte [ebp - 4], 8
push ebx
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Uninit_bool_]
call esi
mov byte [ebp - 4], 6
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
call edi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf90]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartInvalidParameterHandler::destructor_void_]
mov byte [ebp - 4], 3
call edi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartTerminateHandler::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc8]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCSmartExceptionTranslator::destructor_void_]
mov byte [ebp - 4], bl
jmp 0x403093
push esi
push edi
push eax
call fcn.00404d6c
jmp 0x4024d7
mov dword [ebp - 0x1040], esi
mov byte [ebp - 4], 0x18
mov byte [ebp - 4], 0x19
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0xf9c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCRegistryKey::destructor_void_]
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xff4]
push eax
call fcn.00402127
mov byte [ebp - 4], 0xc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::StopGlobalTimer_void_]
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x124]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xa
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::UninitCOM_void_]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xf94]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionFilter::destructor_void_]
mov byte [ebp - 4], 8
push esi
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Uninit_bool_]
call esi
mov byte [ebp - 4], 6
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
call edi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf90]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartInvalidParameterHandler::destructor_void_]
mov byte [ebp - 4], 3
call edi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartTerminateHandler::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc8]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCSmartExceptionTranslator::destructor_void_]
mov byte [ebp - 4], 0
push 1
call esi
or dword [ebp - 4], 0xffffffff
push 0
jmp 0x40309c
push eax
push edi
call fcn.00404d23
jmp 0x40255c
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1048], ebx
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x100c]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCRegistryKey::destructor_void_]
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xff4]
push eax
call fcn.00402127
mov byte [ebp - 4], 0xc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::StopGlobalTimer_void_]
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x124]
push eax
call fcn.00402105
mov byte [ebp - 4], 0xa
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::UninitCOM_void_]
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xf94]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartExceptionFilter::destructor_void_]
mov byte [ebp - 4], 8
push 0
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::Uninit_bool_]
call esi
mov byte [ebp - 4], 6
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
call edi
mov byte [ebp - 4], 5
lea ecx, [ebp - 0xf90]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartInvalidParameterHandler::destructor_void_]
mov byte [ebp - 4], 3
call edi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0xf8c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCSmartTerminateHandler::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xfc8]
call dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCSmartExceptionTranslator::destructor_void_]
mov byte [ebp - 4], 0
push 1
call esi
or dword [ebp - 4], 0xffffffff
push 0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCErrorInfo::Set_struct_IErrorInfo__]
call dword [sym.imp.ole32.dll_OleUninitialize]
mov eax, ebx
jmp 0x402d30
push eax
push edi
call fcn.00404d23
jmp 0x402587
push esi
push 0x2e683777
call fcn.004046e2
jmp 0x4025b6
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x4034c6
push eax
push esi
call fcn.00404d23
cmp word [ebp - 0xf7e], di
jne 0x4034e8
mov eax, dword [ebp - 0xf88]
mov esi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
cmp eax, edi
jge 0x4034e8
push eax
push esi
call fcn.00404d23
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1050], ebx
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0xf88]
push eax
call fcn.00402014
jmp 0x4033a5
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x40353a
push eax
push esi
call fcn.00404d23
cmp word [ebp - 0xf7e], di
jne 0x403593
push dword [ebp - 0xf88]
mov esi, 0x4067a0
push esi
lea ecx, [ebp - 0xf84]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x25
mov byte [ebp - 4], 0x26
mov byte [ebp - 4], 0x27
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push 0
push eax
call dword [ecx + 0x14]
test eax, eax
jge 0x403583
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xf84]
push eax
call fcn.00402014
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1058], ebx
jmp 0x403505
cmp word [eax], di
je 0x4025ea
xor eax, eax
jmp 0x4025ed
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x4035e5
push eax
push esi
call fcn.00404d23
cmp word [ebp - 0xf7e], di
jne 0x4025f5
mov eax, dword [ebp - 0xf88]
mov esi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfe0]
push eax
call dword [ecx + 0x38]
cmp eax, edi
jge 0x403611
push eax
push esi
call fcn.00404d23
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1060], ebx
jmp 0x403505
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x403653
push eax
push esi
call fcn.00404d23
cmp word [ebp - 0xf7e], di
jne 0x402602
push dword [ebp - 0xf88]
mov esi, 0x4067a0
push esi
lea ecx, [ebp - 0xf84]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x28
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfdc]
push eax
call dword [ecx + 0x28]
test eax, eax
jge 0x4036a4
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xf84]
push eax
call fcn.00402014
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1068], ebx
jmp 0x403505
push edi
push edi
push 1
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCRegistryKey::constructor_enum_GCRegistryKey::KEY_ROOT__wchar_t_const___bool_]
mov byte [ebp - 4], 0x2b
push 0xf003f
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::Open_unsigned_long_int_]
test eax, eax
jne 0x403734
mov dword [ebp - 0xf9c], edi
push edi
mov esi, 0x406aa0
push esi
lea eax, [ebp - 0xf9c]
push eax
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::GetValue_unsigned_long_int___wchar_t_const___unsigned_long_int__const]
push esi
mov eax, dword [ebp - 0xf9c]
inc eax
push eax
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::SetValue_unsigned_long_int__wchar_t_const__]
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x403754
push eax
push esi
call fcn.00404d23
cmp word [ebp - 0xf7e], di
jne 0x4037ab
push dword [ebp - 0xf88]
mov esi, 0x4067a0
push esi
lea ecx, [ebp - 0xf84]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x2d
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0xc]
test eax, eax
jge 0x40379b
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x2b
lea eax, [ebp - 0xf84]
push eax
call fcn.00402014
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1070], ebx
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0x1034]
mov esi, dword [sym.imp.GrooveUtil.DLL_public_virtual:_void___thiscall_GCRegistryKey::destructor_void_]
call esi
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0xf88]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x100c]
call esi
jmp 0x4033d5
push edi
push edi
push 1
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCRegistryKey::constructor_enum_GCRegistryKey::KEY_ROOT__wchar_t_const___bool_]
mov byte [ebp - 4], 0x2f
push 0xf003f
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::Open_unsigned_long_int_]
test eax, eax
jne 0x40388a
mov dword [ebp - 0xf80], edi
push edi
mov esi, 0x406aa0
push esi
lea eax, [ebp - 0xf80]
push eax
lea ecx, [ebp - 0x1034]
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::GetValue_unsigned_long_int___wchar_t_const___unsigned_long_int__const]
test eax, eax
jne 0x40388a
mov eax, dword [ebp - 0xf80]
push esi
lea ecx, [ebp - 0x1034]
cmp eax, 1
jbe 0x403884
dec eax
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::SetValue_unsigned_long_int__wchar_t_const__]
jmp 0x40388a
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::DeleteValue_wchar_t_const__]
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xf7e]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x4038aa
push eax
push esi
call fcn.00404d23
cmp word [ebp - 0xf7e], di
jne 0x403901
push dword [ebp - 0xf88]
mov esi, 0x4067a0
push esi
lea ecx, [ebp - 0xf84]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x30
mov byte [ebp - 4], 0x31
mov byte [ebp - 4], 0x32
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x10]
test eax, eax
jge 0x4038f1
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0xf84]
push eax
call fcn.00402014
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1064], ebx
jmp 0x4037c8
push eax
push esi
call fcn.00404d23
jmp 0x402642
mov eax, dword [ebp - 0xf88]
mov esi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfe4]
push dword [ebp - 0xfe8]
push eax
call dword [ecx + 0x30]
cmp eax, edi
jge 0x403954
push eax
push esi
call fcn.00404d23
push dword [ebp - 0xf78]
call fcn.00402055
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::DisableSqmThisSession_void_]
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1044], ebx
jmp 0x403505
push eax
push esi
call fcn.00404d23
jmp 0x40266c
push esi
push edi
push eax
call fcn.00404d6c
jmp 0x4026f2
lea ecx, [ebp - 0xf88]
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
call esi
push dword [ebp - 0xf78]
call fcn.00402055
lea ecx, [ebp - 0xf78]
call esi
lea eax, [ebp - 0x234]
push eax
call fcn.00404d3a
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x234]
call fcn.004047d7
call dword [sym.imp.GrooveUtil.DLL_public:_static_struct_HINSTANCE______stdcall_GCGrooveResourceModule::GetHandle_void_]
push eax
push 0x2e18
lea eax, [ebp - 0x344]
push eax
call fcn.00401996
mov byte [ebp - 4], 0x3a
push 0x40010
push dword [ebp - 0x234]
push dword [ebp - 0x344]
xor esi, esi
push esi
call dword [sym.imp.USER32.dll_MessageBoxW]
mov dword [ebp - 0x105c], esi
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x344]
push eax
call fcn.00402105
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x234]
push eax
call fcn.00402105
mov byte [ebp - 4], 0x3b
mov byte [ebp - 4], 0x3c
mov byte [ebp - 4], 0x3d
mov byte [ebp - 4], 0x24
lea ecx, [ebp - 0xfa8]
call edi
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0xf88]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00402014
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00402014
jmp 0x4032d7
push eax
push esi
call fcn.00404d23
jmp 0x40276b
push esi
push edi
push eax
call fcn.00404d6c
jmp 0x4027a2
push esi
push edi
push eax
call fcn.00404d6c
jmp 0x4027b8
push ebx
push esi
push eax
call fcn.00404d6c
jmp 0x40285b
push esi
push edi
push eax
call fcn.00404d6c
jmp 0x4028af
push 0x406c20
push esi
push eax
call fcn.00404d6c
jmp 0x40290c
push 0x406c30
push esi
push eax
call fcn.00404d6c
jmp 0x402941
cmp word [ebp - 0xf80], di
jne 0x402d4a
test al, al
je 0x402d4a
cmp word [ebp - 0xf9c], di
jne 0x403be2
lea eax, [ebp - 0x234]
push eax
call fcn.00404d3a
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x234]
call fcn.004047d7
call dword [sym.imp.GrooveUtil.DLL_public:_static_struct_HINSTANCE______stdcall_GCGrooveResourceModule::GetHandle_void_]
push eax
push 0x2e1c
lea eax, [ebp - 0x344]
push eax
call fcn.00401996
mov byte [ebp - 4], 0x59
push 0x406abc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push dword [ebp - 0xf78]
push ebx
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x5a
mov byte [ebp - 4], 0x5b
mov byte [ebp - 4], 0x5c
mov eax, dword [ebp - 0xf7c]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0xfa4]
push edx
push edi
push 0x100
push 0x20
push dword [ebp - 0x234]
push dword [ebp - 0x344]
push edi
push edi
push eax
call dword [ecx + 0x48]
cmp eax, edi
jge 0x403b90
push ebx
push esi
push eax
call fcn.00404d6c
cmp dword [ebp - 0xfa4], 6
sete bl
mov byte [ebp - 4], 0x59
lea eax, [ebp - 0xf7c]
push eax
call fcn.00402014
push 0x406afc
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x344]
push eax
call fcn.00402105
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0x234]
push eax
call fcn.00402105
test bl, bl
je 0x402966
mov ebx, 0x406790
push dword [ebp - 0xf78]
push ebx
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x5d
mov byte [ebp - 4], 0x5e
mov byte [ebp - 4], 0x5f
and word [ebp - 0xfa4], 0
jmp 0x403c32
push dword [ebp - 0xf78]
push ebx
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x60
mov byte [ebp - 4], 0x61
mov byte [ebp - 4], 0x62
or word [ebp - 0xfa4], 0xffff
mov eax, dword [ebp - 0xf7c]
push dword [ebp - 0xfa4]
mov esi, eax
push eax
mov ecx, dword [eax]
call dword [ecx + 0x78]
test eax, eax
jge 0x403c52
push ebx
push esi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0xf7c]
push eax
call fcn.00402014
jmp 0x402966
push dword [ebp - 0xf88]
push esi
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x63
mov byte [ebp - 4], 0x64
mov byte [ebp - 4], 0x65
mov eax, dword [ebp - 0xf7c]
mov edi, eax
or word [ebp - 0xfa4], 0xffff
mov ecx, dword [eax]
push dword [ebp - 0xfa4]
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x403cae
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0xf7c]
push eax
call fcn.00402014
jmp 0x402978
push edi
push ebx
push eax
call fcn.00404d6c
jmp 0x4029bb
cmp word [eax], 0
je 0x4029e9
xor eax, eax
jmp 0x4029ec
push edi
push ebx
push eax
call fcn.00404d6c
jmp 0x402a96
push 0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::StartErrorBlock_bool_]
mov byte [ebp - 4], 0x6e
mov byte [ebp - 4], 0x6f
mov eax, dword [ebp - 0xf78]
mov edi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfe0]
push eax
call dword [ecx + 0x38]
test eax, eax
jge 0x403d1d
push eax
push edi
call fcn.00404d23
mov dword [ebp - 4], 0x6e
jmp 0x403d37
mov ebx, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
mov byte [ebp - 4], 0x6d
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
jmp 0x402ab4
push dword [ebp - 0xf88]
push esi
lea ecx, [ebp - 0xf7c]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x71
mov byte [ebp - 4], 0x72
mov byte [ebp - 4], 0x73
mov eax, dword [ebp - 0xf7c]
mov edi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfdc]
push eax
call dword [ecx + 0x28]
test eax, eax
jge 0x403d8b
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x6d
lea eax, [ebp - 0xf7c]
push eax
call fcn.00402014
jmp 0x402ac1
push esi
push edi
push eax
call fcn.00404d6c
jmp 0x402b1b
push 0x4066c0
push esi
push eax
call fcn.00404d6c
jmp 0x402bd4
cmp byte [ebp - 0xfeb], 0
je 0x403e3f
push dword [ebp - 0xf88]
mov esi, 0x4067a0
push esi
lea ecx, [ebp - 0xfa8]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
mov byte [ebp - 4], 0x82
mov byte [ebp - 4], 0x83
mov byte [ebp - 4], 0x84
mov eax, dword [ebp - 0xfa8]
mov edi, eax
and word [ebp - 0xfac], 0
mov ecx, dword [eax]
push dword [ebp - 0xfac]
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x403e13
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xfa8]
push eax
call fcn.00402014
push dword [ebp - 0xf78]
call fcn.00402055
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x104c], ebx
jmp 0x403505
lea ecx, [ebp - 0xf98]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
push 0x17
mov edi, 0x4065c0
push edi
push 0x4065b0
lea ecx, [ebp - 0xf9c]
call ebx
mov byte [ebp - 4], 0x85
mov byte [ebp - 4], 0x86
mov byte [ebp - 4], 0x87
mov eax, dword [ebp - 0xf9c]
mov esi, eax
mov ecx, dword [eax]
push 0xfff
push eax
call dword [ecx + 0x1c]
test eax, eax
jge 0x403e8b
push edi
push esi
push eax
call fcn.00404d6c
push 0x17
pop edi
push edi
push 0x406760
push 0x406740
lea ecx, [ebp - 0xfb8]
call ebx
mov byte [ebp - 4], 0x88
mov byte [ebp - 4], 0x89
mov byte [ebp - 4], 0x8a
push edi
push 0x4066c0
push 0x4066b0
lea ecx, [ebp - 0xfac]
call ebx
mov byte [ebp - 4], 0x8b
mov byte [ebp - 4], 0x8c
mov byte [ebp - 4], 0x8d
push edi
push 0x406770
push 0x406750
lea ecx, [ebp - 0xfb4]
call ebx
mov byte [ebp - 4], 0x8e
mov byte [ebp - 4], 0x8f
mov byte [ebp - 4], 0x90
cmp byte [ebp - 0xff1], 0
je 0x403f19
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfe4]
push dword [ebp - 0xfe8]
push eax
call dword [ecx + 0x30]
test eax, eax
jge 0x403f19
push eax
push esi
call fcn.00404d23
push edi
mov esi, 0x406948
push esi
push 0x406938
lea ecx, [ebp - 0xfa8]
call ebx
mov byte [ebp - 4], 0x91
mov byte [ebp - 4], 0x92
mov byte [ebp - 4], 0x93
mov eax, dword [ebp - 0xfa8]
mov edi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfb4]
push dword [ebp - 0xfb8]
push eax
call dword [ecx + 0xc]
test eax, eax
jge 0x403f5f
push esi
push edi
push eax
call fcn.00404d6c
mov byte [ebp - 4], 0x90
lea eax, [ebp - 0xfa8]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x8d
lea eax, [ebp - 0xfb4]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x8a
lea eax, [ebp - 0xfac]
push eax
call fcn.00402014
mov byte [ebp - 4], 0x87
lea eax, [ebp - 0xfb8]
push eax
call fcn.00402014
push dword [ebp - 0xf9c]
call fcn.00402055
lea ecx, [ebp - 0xf9c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xf9c]
push eax
call fcn.00402014
jmp 0x402c13