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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x405bec
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1060
call fcn.00401970
mov eax, dword [0x406474]
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 0x402d28
push 5
push 5
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCErrorServices::Initialize_long_int__long_int_]
push str.F275ED8E_232B_4810_BB6F_7E8D75505DBC
call dword [sym.imp.KERNEL32.dll_AddAtomW]
push ebx
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
jl 0x402fde
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 str._UI
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 0x402ff4
call fcn.00401d15
test al, al
je 0x4030ad
cmp byte [ebp - 0xff0], 0
je 0x40240d
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 0x4030b8
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 0x40246f
mov dword [ebp - 0xf84], ebx
push ebx
push str.StartupSleepMillis
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 0x4030d6
call dword [sym.imp.GrooveUtil.DLL_private:_static_bool___stdcall_GCSafeScriptingSupport::int_IsRunningInGrooveProcess_void_]
test al, al
je 0x4030e2
push 0x17
mov esi, 0x4065b8
push esi
push 0x4065a8
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 0x4032aa
xor esi, esi
cmp word [ebp - 0xf7e], si
je 0x4032b7
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 0x4066e8
push 0x4066d8
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, 0x4066c8
push esi
push 0x4066b8
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 0x40338b
cmp word [ebp - 0xf7e], 0
je 0x403397
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 0x403488
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 0x4025ac
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp esi, edi
jl 0x403494
mov byte [ebp - 4], 0x22
mov byte [ebp - 4], 0x23
mov byte [ebp - 4], 0x24
cmp byte [ebp - 0xfef], 0
jne 0x4034a4
cmp byte [ebp - 0xfee], 0
jne 0x403512
mov eax, dword [ebp - 0xfe0]
cmp eax, edi
jne 0x4035a7
xor eax, eax
inc eax
test al, al
je 0x4035b7
cmp byte [ebp - 0xff3], 0
jne 0x40361f
cmp byte [ebp - 0xfed], 0
jne 0x4036bc
cmp byte [ebp - 0xfec], 0
jne 0x4037fb
cmp byte [ebp - 0xff1], 0
je 0x40264d
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 0x4038fd
cmp word [ebp - 0xf7e], di
je 0x403909
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 0x40394a
cmp word [ebp - 0xf7e], di
je 0x403d92
push str.Before_SplashScreen.Show__
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
call esi
cmp byte [ebp - 0xff1], 0
je 0x40269c
cmp byte [ebp - 0xfea], 0
je 0x40269c
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::CreateSplashWindow_void_]
push str.Before_SystemServices__Initialize__
call esi
mov word [ebp - 0xfbc], di
push dword [ebp - 0xf98]
mov esi, 0x4067b8
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 0x403956
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.004021f4
mov byte [ebp - 4], 0x38
cmp word [ebp - 0xfbc], 0
jne 0x403963
push str.After_SystemServices__Initialize__
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push 0x17
push 0x406860
push 0x406850
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 0x403a48
push 0x17
mov esi, 0x406688
push esi
push 0x406678
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 0x403a54
mov eax, dword [ebp - 0xf84]
mov edi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x5c]
test eax, eax
jl 0x403a61
push 0x17
push 0x406658
push 0x406638
lea ecx, [ebp - 0xfb8]
call ebx
mov byte [ebp - 4], 0x44
mov byte [ebp - 4], 0x45
mov byte [ebp - 4], 0x46
push 0x17
push 0x406668
push 0x406648
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 str.After_SplashScreen.Hide__
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push dword [ebp - 0xf78]
mov ebx, 0x406698
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 0x403a6e
mov byte [ebp - 4], 0x49
lea eax, [ebp - 0xf7c]
push eax
call fcn.00401ff3
push dword [ebp - 0xf78]
mov esi, 0x4066a8
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 0x403a7b
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 0x406728
push 0x4066f8
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 0x403a88
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 0x403a99
cmp word [ebp - 0xf7a], di
setne al
cmp word [ebp - 0xfb0], di
jne 0x403aaa
cmp word [ebp - 0xf80], 0
jne 0x403bdf
mov esi, 0x406708
cmp byte [ebp - 0xfeb], 0
jne 0x403c3b
cmp byte [ebp - 0xff0], 0
je 0x4029d1
push dword [ebp - 0xf78]
mov edi, 0x406718
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 0x403c97
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 0x403ca4
xor eax, eax
inc eax
test al, al
sete byte [ebp - 0xf79]
cmp byte [ebp - 0xff4], 0
jne 0x402d5a
cmp byte [ebp - 0xf79], 0
jne 0x402d5a
mov bl, 1
push 0x17
mov edi, 0x4068bc
push edi
push 0x4068ac
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 str.Before_pInstaGroove__Start2__
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 0x403cb5
push str.After_pInstaGroove__Start2__
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
cmp byte [ebp - 0xf79], 0
jne 0x403cc2
mov ebx, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
cmp byte [ebp - 0xff3], 0
jne 0x403d20
push 1
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCMso::AllowMSOIdleProcessing_bool_]
push str.Entering_message_loop
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCTimingCheck::PrintGlobalTimeStamp_wchar_t_const__]
push 0x17
mov esi, 0x406944
push esi
push 0x406934
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 0x403d74
mov byte [ebp - 4], 0x6d
lea eax, [ebp - 0x1018]
push eax
call fcn.00401ff3
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.00401ff3
mov byte [ebp - 4], 0x43
lea eax, [ebp - 0xfb8]
push eax
call fcn.00401ff3
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 0x403d81
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0xfb4]
push eax
call fcn.00401ff3
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.00402034
lea ecx, [ebp - 0xf98]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
push dword [ebp - 0xf78]
call fcn.00402034
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.00401ff3
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00401ff3
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.00402106
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.004020e4
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 0x402956
jmp 0x402964
xor bl, bl
jmp 0x402a0f
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 0x4022f6
mov dword [ebp - 0x1038], ebx
mov byte [ebp - 4], 0xd
lea eax, [ebp - 0xff4]
push eax
call fcn.00402106
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.004020e4
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 0x402d2e
mov dword [ebp - 0x106c], ebx
jmp 0x402ffa
lea edi, [ebp - 0xff4]
call fcn.0040480e
test al, al
jne 0x40241b
mov dword [ebp - 0x1054], ebx
jmp 0x402ffa
mov eax, dword [sym.imp.GrooveUtil.DLL_bool_GCSafeScriptingSupport::ms_RunningInGrooveProcess]
mov al, byte [eax]
jmp 0x402489
lea eax, [ebp - 0x234]
push eax
call fcn.00404d0e
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x234]
call fcn.004047ab
lea eax, [ebp - 0x754]
push eax
call fcn.0040492c
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0xb64]
push eax
call fcn.0040492c
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.0040492c
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 str.G_FALSE
push 0x1b9
push str..WinMain.cpp
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.004020e4
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0xb64]
push eax
call fcn.004020e4
mov byte [ebp - 4], 0x10
lea eax, [ebp - 0x754]
push eax
call fcn.004020e4
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x234]
push eax
call fcn.004020e4
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.00402106
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.004020e4
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 0x403091
push esi
push edi
push eax
call fcn.00404d40
jmp 0x4024d5
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.00402106
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.004020e4
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 0x40309a
push eax
push edi
call fcn.00404cf7
jmp 0x40255a
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1048], ebx
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00401ff3
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.00402106
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.004020e4
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 0x402d2e
push eax
push edi
call fcn.00404cf7
jmp 0x402585
push esi
push 0x2e683777
call fcn.004046b6
jmp 0x4025b4
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 0x4034c4
push eax
push esi
call fcn.00404cf7
cmp word [ebp - 0xf7e], di
jne 0x4034e6
mov eax, dword [ebp - 0xf88]
mov esi, eax
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
cmp eax, edi
jge 0x4034e6
push eax
push esi
call fcn.00404cf7
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1050], ebx
mov byte [ebp - 4], 0x21
lea eax, [ebp - 0xf88]
push eax
call fcn.00401ff3
jmp 0x4033a3
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 0x403532
push eax
push esi
call fcn.00404cf7
cmp word [ebp - 0xf7e], di
jne 0x40358b
push dword [ebp - 0xf88]
mov esi, 0x406708
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 0x40357b
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xf84]
push eax
call fcn.00401ff3
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1058], ebx
jmp 0x4034fd
cmp word [eax], di
je 0x4025e8
xor eax, eax
jmp 0x4025eb
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 0x4035d7
push eax
push esi
call fcn.00404cf7
cmp word [ebp - 0xf7e], di
jne 0x4025f3
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 0x403603
push eax
push esi
call fcn.00404cf7
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1060], ebx
jmp 0x4034fd
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 0x40363f
push eax
push esi
call fcn.00404cf7
cmp word [ebp - 0xf7e], di
jne 0x402600
push dword [ebp - 0xf88]
mov esi, 0x406708
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 0x403690
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xf84]
push eax
call fcn.00401ff3
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1068], ebx
jmp 0x4034fd
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 0x40371a
mov dword [ebp - 0xf9c], edi
push edi
mov esi, str.QuiesceCount
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 0x40373a
push eax
push esi
call fcn.00404cf7
cmp word [ebp - 0xf7e], di
jne 0x403791
push dword [ebp - 0xf88]
mov esi, 0x406708
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 0x403781
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x2b
lea eax, [ebp - 0xf84]
push eax
call fcn.00401ff3
push dword [ebp - 0xf78]
call fcn.00402034
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.00401ff3
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x100c]
call esi
jmp 0x4033d3
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 0x40386a
mov dword [ebp - 0xf80], edi
push edi
mov esi, str.QuiesceCount
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 0x40386a
mov eax, dword [ebp - 0xf80]
push esi
lea ecx, [ebp - 0x1034]
cmp eax, 1
jbe 0x403864
dec eax
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_long_int___thiscall_GCRegistryKey::SetValue_unsigned_long_int__wchar_t_const__]
jmp 0x40386a
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 0x40388a
push eax
push esi
call fcn.00404cf7
cmp word [ebp - 0xf7e], di
jne 0x4038e1
push dword [ebp - 0xf88]
mov esi, 0x406708
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 0x4038d1
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x2f
lea eax, [ebp - 0xf84]
push eax
call fcn.00401ff3
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1064], ebx
jmp 0x4037a8
push eax
push esi
call fcn.00404cf7
jmp 0x402640
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 0x40392e
push eax
push esi
call fcn.00404cf7
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x1044], ebx
jmp 0x4034fd
push eax
push esi
call fcn.00404cf7
jmp 0x40266a
push esi
push edi
push eax
call fcn.00404d40
jmp 0x4026f0
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.00402034
lea ecx, [ebp - 0xf78]
call esi
lea eax, [ebp - 0x234]
push eax
call fcn.00404d0e
mov byte [ebp - 4], 0x39
lea eax, [ebp - 0x234]
call fcn.004047ab
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.004020e4
mov byte [ebp - 4], 0x38
lea eax, [ebp - 0x234]
push eax
call fcn.004020e4
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.00401ff3
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0xf78]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0xf98]
push eax
call fcn.00401ff3
jmp 0x4032d5
push eax
push esi
call fcn.00404cf7
jmp 0x402769
push esi
push edi
push eax
call fcn.00404d40
jmp 0x4027a0
push esi
push edi
push eax
call fcn.00404d40
jmp 0x4027b6
push ebx
push esi
push eax
call fcn.00404d40
jmp 0x402859
push esi
push edi
push eax
call fcn.00404d40
jmp 0x4028ad
push 0x406c18
push esi
push eax
call fcn.00404d40
jmp 0x40290a
push 0x406c28
push esi
push eax
call fcn.00404d40
jmp 0x40293f
cmp word [ebp - 0xf80], di
jne 0x402d48
test al, al
je 0x402d48
cmp word [ebp - 0xf9c], di
jne 0x403bb6
lea eax, [ebp - 0x234]
push eax
call fcn.00404d0e
mov byte [ebp - 4], 0x58
lea eax, [ebp - 0x234]
call fcn.004047ab
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 str.Before_Work_Online_Message_Box
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 pe_nt_image_headers32
push 0x20
push dword [ebp - 0x234]
push dword [ebp - 0x344]
push edi
push edi
push eax
call dword [ecx + 0x48]
cmp eax, edi
jge 0x403b64
push ebx
push esi
push eax
call fcn.00404d40
cmp dword [ebp - 0xfa4], 6
sete bl
mov byte [ebp - 4], 0x59
lea eax, [ebp - 0xf7c]
push eax
call fcn.00401ff3
push str.After_Work_Online_Message_Box
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.004020e4
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0x234]
push eax
call fcn.004020e4
test bl, bl
je 0x402964
mov ebx, 0x406698
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 0x403c06
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 0x403c26
push ebx
push esi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0xf7c]
push eax
call fcn.00401ff3
jmp 0x402964
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 0x403c82
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x57
lea eax, [ebp - 0xf7c]
push eax
call fcn.00401ff3
jmp 0x402976
push edi
push ebx
push eax
call fcn.00404d40
jmp 0x4029b9
cmp word [eax], 0
je 0x4029e7
xor eax, eax
jmp 0x4029ea
push edi
push ebx
push eax
call fcn.00404d40
jmp 0x402a94
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 0x403cf1
push eax
push edi
call fcn.00404cf7
mov dword [ebp - 4], 0x6e
jmp 0x403d0b
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 0x402ab2
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 0x403d5f
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x6d
lea eax, [ebp - 0xf7c]
push eax
call fcn.00401ff3
jmp 0x402abf
push esi
push edi
push eax
call fcn.00404d40
jmp 0x402b19
push 0x406860
push esi
push eax
call fcn.00404d40
jmp 0x402bd2
cmp byte [ebp - 0xfeb], 0
je 0x403e13
push dword [ebp - 0xf88]
mov esi, 0x406708
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 0x403de7
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0xfa8]
push eax
call fcn.00401ff3
push dword [ebp - 0xf78]
call fcn.00402034
mov ebx, dword [ebp - 0xfa0]
mov dword [ebp - 0x104c], ebx
jmp 0x4034fd
lea ecx, [ebp - 0xf98]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
push 0x17
mov edi, 0x4066e8
push edi
push 0x4066d8
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 0x403e5f
push edi
push esi
push eax
call fcn.00404d40
push 0x17
pop edi
push edi
push 0x406658
push 0x406638
lea ecx, [ebp - 0xfb8]
call ebx
mov byte [ebp - 4], 0x88
mov byte [ebp - 4], 0x89
mov byte [ebp - 4], 0x8a
push edi
push 0x406860
push 0x406850
lea ecx, [ebp - 0xfac]
call ebx
mov byte [ebp - 4], 0x8b
mov byte [ebp - 4], 0x8c
mov byte [ebp - 4], 0x8d
push edi
push 0x406668
push 0x406648
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 0x403eed
mov eax, dword [ebp - 0xf78]
mov esi, eax
mov ecx, dword [eax]
push dword [ebp - 0xfe4]
push dword [ebp - 0xfe8]
call dword [eax - 1]
push ecx
invalid
test eax, eax
jge 0x403eed
push eax
push esi
call fcn.00404cf7
push edi
mov esi, 0x406944
push esi
push 0x406934
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 0x403f33
push esi
push edi
push eax
call fcn.00404d40
mov byte [ebp - 4], 0x90
lea eax, [ebp - 0xfa8]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0x8d
lea eax, [ebp - 0xfb4]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0x8a
lea eax, [ebp - 0xfac]
push eax
call fcn.00401ff3
mov byte [ebp - 4], 0x87
lea eax, [ebp - 0xfb8]
push eax
call fcn.00401ff3
push dword [ebp - 0xf9c]
call fcn.00402034
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.00401ff3
jmp 0x402c11