Function at 0x404800
Capabilities:
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4173bb
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x1908
call fcn.00414670
mov eax, dword [0x419448]
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
mov ebx, ecx
mov dword [ebp - 0x1850], ebx
xor esi, esi
mov dword [ebp - 0x1884], esi
lea eax, [ebp - 0x18d0]
push eax
call fcn.004011a3
mov dword [ebp - 4], esi
lea eax, [ebp - 0x18c0]
push eax
call fcn.004011a3
mov byte [ebp - 4], 1
mov dword [ebp - 0x183c], esi
mov byte [ebp - 4], 2
mov byte [ebp - 4], 3
push esi
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::StartErrorBlock_bool_]
call esi
mov byte [ebp - 4], 4
push 0
call esi
mov byte [ebp - 4], 5
push dword [ebx + 0x2c4]
push 0x41b948
lea ecx, [ebp - 0x1840]
mov edi, dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::QueryInterfaceNoRelease_struct__GUID_const___struct_IUnknown__]
call edi
mov byte [ebp - 4], 6
mov byte [ebp - 4], 7
mov byte [ebp - 4], 8
xor ecx, ecx
mov dword [ebp - 0x186c], ecx
mov byte [ebp - 4], 9
mov byte [ebp - 4], 0xa
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x1870], ecx
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 0xd
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x1860], ecx
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], 0x11
cmp dword [ebx + 0x2ac], 6
jne 0x404933
call fcn.00409d16
mov esi, eax
mov eax, dword [esi]
lea ecx, [ebp - 0x1844]
push ecx
push esi
call dword [eax + 0x78]
test eax, eax
jge 0x404912
push 0x41b798
push esi
push eax
call fcn.00407ae2
mov esi, dword [ebp - 0x1844]
mov eax, dword [ebp - 0x186c]
test eax, eax
je 0x404928
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x186c], esi
jmp 0x404aa5
mov dword [ebp - 0x1854], ecx
mov byte [ebp - 4], 0x12
mov byte [ebp - 4], 0x13
mov byte [ebp - 4], 0x14
mov eax, dword [ebx + 0x2ac]
cmp eax, 7
jne 0x404958
mov esi, dword [ebx + 0x2c8]
jmp 0x404963
cmp eax, 8
jne 0x404983
mov esi, dword [ebx + 0x2cc]
mov eax, dword [ebp - 0x1854]
cmp eax, ecx
je 0x404973
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
test esi, esi
mov dword [ebp - 0x1854], esi
je 0x404983
push esi
mov eax, dword [esi]
call dword [eax + 4]
mov esi, dword [ebp - 0x1854]
mov eax, dword [esi]
lea ecx, [ebp - 0x1844]
push ecx
push esi
call dword [eax + 0x54]
test eax, eax
jge 0x4049a6
push 0x41b888
push esi
push eax
call fcn.00407ae2
mov esi, dword [ebp - 0x1844]
mov eax, dword [ebp - 0x1860]
test eax, eax
je 0x4049bc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x1860], esi
mov esi, dword [ebp - 0x1854]
mov eax, dword [ebp - 0x1870]
test eax, eax
je 0x4049d8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push esi
push 0x41b948
lea ecx, [ebp - 0x1870]
call edi
push dword [ebp - 0x1860]
push 0x41b9b8
lea ecx, [ebp - 0x185c]
call edi
mov byte [ebp - 4], 0x15
mov byte [ebp - 4], 0x16
mov byte [ebp - 4], 0x17
push dword [ebp - 0x185c]
mov esi, 0x41b978
push esi
lea ecx, [ebp - 0x1848]
call edi
mov byte [ebp - 4], 0x18
mov byte [ebp - 4], 0x19
mov byte [ebp - 4], 0x1a
mov eax, dword [ebp - 0x1848]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x1844]
push edx
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x404a46
push esi
push edi
push eax
call fcn.00407ae2
mov esi, dword [ebp - 0x1844]
cmp dword [ebp - 0x183c], 0
je 0x404a61
lea ecx, [ebp - 0x183c]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov dword [ebp - 0x183c], esi
mov byte [ebp - 4], 0x1b
mov byte [ebp - 4], 0x1c
mov byte [ebp - 4], 0x17
lea ecx, [ebp - 0x1848]
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
call esi
mov byte [ebp - 4], 0x1d
mov byte [ebp - 4], 0x1e
mov byte [ebp - 4], 0x14
lea ecx, [ebp - 0x185c]
call esi
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x1854]
push eax
call fcn.00405684
and dword [ebp - 0x187c], 0
mov esi, dword [ebp - 0x187c]
cmp esi, dword [ebx + 0x2f0]
jge 0x405243
and dword [ebp - 0x1838], 0
mov byte [ebp - 4], 0x1f
mov byte [ebp - 4], 0x20
mov byte [ebp - 4], 0x21
lea edi, [ebx + 0x2ec]
call fcn.00406aaf
mov eax, dword [eax]
lea edi, [ebx + 0x2e0]
cmp dword [edi + 8], 0
je 0x404b2c
or dword [ebp - 0x18ec], 0xffffffff
push eax
lea eax, [ebp - 0x18ec]
call fcn.00407270
test eax, eax
je 0x404b2c
add eax, 4
je 0x404b2c
mov esi, dword [eax]
mov eax, dword [ebp - 0x1838]
test eax, eax
je 0x404b18
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x1838], esi
test esi, esi
je 0x405222
mov eax, dword [esi]
push esi
call dword [eax + 4]
mov eax, dword [ebp - 0x1838]
test eax, eax
je 0x405222
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x1900]
push edx
push eax
call dword [ecx + 0x2c]
mov ebx, 0x41b848
test eax, eax
jge 0x404b5a
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x1900]
mov dword [ebp - 0x1858], eax
mov byte [ebp - 4], 0x22
mov byte [ebp - 4], 0x23
push 0
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::StartErrorBlock_bool_]
mov byte [ebp - 4], 0x24
mov eax, dword [ebp - 0x1850]
mov eax, dword [eax + 0x2c4]
push eax
push 0x41b868
lea ecx, [ebp - 0x18a4]
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
and dword [ebp - 0x1890], 0
mov byte [ebp - 4], 0x28
mov byte [ebp - 4], 0x29
mov byte [ebp - 4], 0x2a
mov eax, dword [ebp - 0x1838]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x18f0]
push edx
push eax
call dword [ecx + 0x28]
test eax, eax
jge 0x404bd8
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18f0]
mov dword [ebp - 0x18ac], eax
mov byte [ebp - 4], 0x2b
mov byte [ebp - 4], 0x2c
mov byte [ebp - 4], 0x2d
mov eax, dword [ebp - 0x1838]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x18f8]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x404c11
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18f8]
mov dword [ebp - 0x1894], eax
mov byte [ebp - 4], 0x2e
mov eax, dword [ebp - 0x18ac]
mov dword [ebp - 0x1868], eax
mov edi, dword [ebp - 0x1894]
mov esi, dword [ebp - 0x18a4]
lea ecx, [ebp - 0x1890]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
mov eax, dword [esi]
lea ecx, [ebp - 0x1854]
push ecx
lea ecx, [ebp - 0x1890]
push ecx
push dword [ebp - 0x1868]
push edi
push esi
call dword [eax + 0x28]
test eax, eax
jge 0x404c70
push 0x41b868
push esi
push eax
call fcn.00407ae2
mov byte [ebp - 4], 0x2d
xor edi, edi
cmp dword [ebp - 0x1894], edi
je 0x404c8a
lea ecx, [ebp - 0x1894]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0x2a
lea eax, [ebp - 0x18ac]
push eax
call fcn.00405684
mov byte [ebp - 4], 0x2f
mov byte [ebp - 4], 0x30
mov byte [ebp - 4], 0x27
lea ecx, [ebp - 0x1890]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
mov byte [ebp - 4], 0x24
lea eax, [ebp - 0x18a4]
push eax
call fcn.00405684
mov byte [ebp - 4], 0x23
call dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
mov dword [ebp - 4], 0x22
mov eax, dword [ebp - 0x1850]
cmp dword [eax + 0x2ac], 6
jne 0x404fc4
push str..gsa
lea ecx, [ebp - 0x1858]
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCStr::Append_wchar_t_const__]
call edi
push 0x17
mov esi, 0x41b8f8
push esi
push 0x41b7c8
lea ecx, [ebp - 0x18a0]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::CreateInstanceNoRelease_struct__GUID_const___struct__GUID_const___unsigned_long_int_]
mov byte [ebp - 4], 0x33
mov byte [ebp - 4], 0x34
mov byte [ebp - 4], 0x35
mov eax, dword [ebp - 0x18a0]
mov dword [ebp - 0x1868], eax
or word [ebp - 0x1908], 0xffff
mov ecx, dword [eax]
lea edx, [ebp - 0x1910]
push edx
push dword [ebp - 0x1908]
push dword [ebp - 0x1858]
push eax
call dword [ecx + 0xc0]
test eax, eax
jge 0x404d60
push esi
push dword [ebp - 0x1868]
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x1910]
mov dword [ebp - 0x1878], eax
mov byte [ebp - 4], 0x36
mov eax, dword [ebp - 0x1850]
push dword [eax + 0x1c0]
lea esi, [ebp - 0x1918]
call fcn.00407a04
mov eax, dword [ebp - 0x1918]
mov dword [ebp - 0x1864], eax
mov byte [ebp - 4], 0x37
push 0x41aef0
lea ecx, [ebp - 0x1864]
call edi
push dword [ebp - 0x1878]
lea ecx, [ebp - 0x1864]
call edi
mov eax, dword [ebp - 0x186c]
mov edi, eax
xor esi, esi
mov word [ebp - 0x18dc], si
mov word [ebp - 0x18fc], si
mov ecx, dword [eax]
lea edx, [ebp - 0x18e4]
push edx
push dword [ebp - 0x18dc]
push dword [ebp - 0x18fc]
push dword [ebp - 0x1864]
push eax
call dword [ecx + 0x24]
cmp eax, esi
jge 0x404df9
push 0x41b7b8
push edi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18e4]
mov dword [ebp - 0x18b0], eax
mov byte [ebp - 4], 0x38
mov byte [ebp - 4], 0x39
mov byte [ebp - 4], 0x3a
mov dword [ebp - 0x1874], esi
mov byte [ebp - 4], 0x3b
mov byte [ebp - 4], 0x3c
mov byte [ebp - 4], 0x3d
mov eax, dword [ebp - 0x1850]
push dword [eax + 0x1c8]
lea esi, [ebp - 0x190c]
call fcn.00407a04
mov eax, dword [ebp - 0x190c]
mov dword [ebp - 0x188c], eax
mov byte [ebp - 4], 0x3e
mov eax, dword [ebp - 0x1838]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x18d4]
push edx
push eax
call dword [ecx + 0x28]
test eax, eax
jge 0x404e6b
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18d4]
mov dword [ebp - 0x18a8], eax
mov byte [ebp - 4], 0x3f
mov byte [ebp - 4], 0x40
mov byte [ebp - 4], 0x41
mov eax, dword [ebp - 0x1838]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x1904]
push edx
push eax
call dword [ecx + 0x20]
test eax, eax
jge 0x404ea4
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x1904]
mov dword [ebp - 0x1898], eax
mov byte [ebp - 4], 0x42
mov edi, dword [ebp - 0x188c]
mov ebx, dword [ebp - 0x18b0]
mov eax, dword [ebp - 0x18a8]
mov dword [ebp - 0x1868], eax
mov eax, dword [ebp - 0x1898]
mov dword [ebp - 0x18f4], eax
mov esi, dword [ebp - 0x1840]
lea ecx, [ebp - 0x1874]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
mov eax, dword [esi]
push 0
push 1
push edi
lea ecx, [ebp - 0x1874]
push ecx
push ebx
push dword [ebp - 0x1868]
push dword [ebp - 0x18f4]
push esi
call dword [eax + 0x58]
test eax, eax
jge 0x404f19
push 0x41b948
push esi
push eax
call fcn.00407ae2
mov byte [ebp - 4], 0x41
xor ebx, ebx
mov esi, dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
cmp dword [ebp - 0x1898], ebx
je 0x404f35
lea ecx, [ebp - 0x1898]
call esi
mov byte [ebp - 4], 0x3e
lea eax, [ebp - 0x18a8]
push eax
call fcn.00405684
mov byte [ebp - 4], 0x3d
cmp dword [ebp - 0x188c], ebx
je 0x404f59
lea ecx, [ebp - 0x188c]
call esi
mov byte [ebp - 4], 0x3a
lea eax, [ebp - 0x1874]
push eax
call fcn.00405684
mov byte [ebp - 4], 0x43
mov byte [ebp - 4], 0x44
mov byte [ebp - 4], 0x37
lea ecx, [ebp - 0x18b0]
mov edi, dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
call edi
mov byte [ebp - 4], 0x36
cmp dword [ebp - 0x1864], ebx
je 0x404f97
lea ecx, [ebp - 0x1864]
call esi
mov byte [ebp - 4], 0x35
cmp dword [ebp - 0x1878], ebx
je 0x404fab
lea ecx, [ebp - 0x1878]
call esi
mov byte [ebp - 4], 0x45
mov byte [ebp - 4], 0x46
mov byte [ebp - 4], 0x22
lea ecx, [ebp - 0x18a0]
call edi
jmp 0x405184
mov eax, dword [ebp - 0x183c]
cmp eax, edi
je 0x404ff9
cmp word [eax], di
je 0x404ff9
lea ecx, [ebp - 0x18d0]
push ecx
push eax
mov ecx, dword [ebp - 0x1838]
call fcn.004056c5
test al, al
jne 0x404ff9
mov byte [ebp - 4], 0x21
cmp dword [ebp - 0x1858], edi
jmp 0x405214
mov dword [ebp - 0x185c], edi
mov byte [ebp - 4], 0x47
mov byte [ebp - 4], 0x48
mov byte [ebp - 4], 0x49
mov eax, dword [ebp - 0x1838]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x1914]
push edx
push eax
call dword [ecx + 0x28]
cmp eax, edi
jge 0x40502c
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x1914]
mov dword [ebp - 0x189c], eax
mov byte [ebp - 4], 0x4a
mov byte [ebp - 4], 0x4b
mov byte [ebp - 4], 0x4c
mov eax, dword [ebp - 0x1838]
mov esi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x18d8]
push edx
push eax
call dword [ecx + 0x20]
cmp eax, edi
jge 0x405065
push ebx
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18d8]
mov dword [ebp - 0x1880], eax
mov byte [ebp - 4], 0x4d
mov edi, dword [ebp - 0x189c]
mov ebx, dword [ebp - 0x1880]
mov esi, dword [ebp - 0x1840]
lea ecx, [ebp - 0x185c]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCIPtrBase::Empty_void_]
mov eax, dword [esi]
lea ecx, [ebp - 0x18e0]
push ecx
push 0
push 1
push 0
lea ecx, [ebp - 0x185c]
push ecx
push edi
push ebx
push esi
call dword [eax + 0x54]
test eax, eax
jge 0x4050bf
push 0x41b948
push esi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18e0]
mov dword [ebp - 0x1844], eax
mov byte [ebp - 4], 0x4e
mov byte [ebp - 4], 0x4f
mov byte [ebp - 4], 0x51
xor esi, esi
cmp dword [ebp - 0x1880], esi
je 0x4050ed
lea ecx, [ebp - 0x1880]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0x52
lea eax, [ebp - 0x189c]
push eax
call fcn.00405684
mov eax, dword [ebp - 0x1870]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x18e8]
push edx
push esi
push esi
push dword [ebp - 0x1860]
push dword [ebp - 0x1844]
push eax
call dword [ecx + 0x5c]
cmp eax, esi
jge 0x405130
push 0x41b948
push edi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x18e8]
mov dword [ebp - 0x1888], eax
mov byte [ebp - 4], 0x53
mov byte [ebp - 4], 0x54
mov byte [ebp - 4], 0x56
mov byte [ebp - 4], 0x57
mov byte [ebp - 4], 0x52
lea ecx, [ebp - 0x1888]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
mov byte [ebp - 4], 0x49
lea eax, [ebp - 0x1844]
push eax
call fcn.00405684
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x185c]
push eax
call fcn.00405684
mov esi, dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
xor ebx, ebx
inc dword [ebp - 0x1884]
mov byte [ebp - 4], 0x21
cmp dword [ebp - 0x1858], ebx
je 0x405222
lea ecx, [ebp - 0x1858]
call esi
jmp 0x405222
je 0x405222
lea ecx, [ebp - 0x1858]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0x11
lea eax, [ebp - 0x1838]
push eax
call fcn.00405684
inc dword [ebp - 0x187c]
mov ebx, dword [ebp - 0x1850]
jmp 0x404aac
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x1860]
push eax
call fcn.00405684
mov byte [ebp - 4], 0xb
lea eax, [ebp - 0x1870]
push eax
call fcn.00405684
mov byte [ebp - 4], 8
lea eax, [ebp - 0x186c]
push eax
call fcn.00405684
mov byte [ebp - 4], 5
lea eax, [ebp - 0x1840]
push eax
call fcn.00405684
mov byte [ebp - 4], 4
mov esi, dword [sym.imp.GrooveUtil.DLL_public:_static_void___stdcall_GCCriticalErrorInfo::EndErrorBlock_void_]
call esi
mov byte [ebp - 4], 3
call esi
mov dword [ebp - 4], 2
cmp dword [ebp - 0x18cc], 0
jle 0x405458
push 0x17
mov esi, 0x41b8e8
push esi
push 0x41b8d8
lea ecx, [ebp - 0x1844]
call dword [sym.imp.GrooveUtil.DLL_protected:_void___thiscall_GCIPtrBase::CreateInstanceNoRelease_struct__GUID_const___struct__GUID_const___unsigned_long_int_]
mov byte [ebp - 4], 0x5b
mov eax, dword [ebp - 0x1844]
mov edi, eax
mov ecx, dword [eax]
lea edx, [ebp - 0x184c]
push edx
push dword [ebp - 0x183c]
push eax
call dword [ecx + 0x24]
test eax, eax
jge 0x4052ed
push esi
push edi
push eax
call fcn.00407ae2
mov eax, dword [ebp - 0x184c]
mov dword [ebp - 0x1848], eax
mov byte [ebp - 4], 0x5c
lea eax, [ebp - 0x824]
push eax
call fcn.00406b5b
mov byte [ebp - 4], 0x5d
xor esi, esi
cmp dword [ebp - 0x18cc], esi
jbe 0x40534a
lea edi, [ebp - 0x18d0]
call fcn.00406aaf
push dword [eax]
lea eax, [ebp - 0x824]
push eax
call fcn.00407a7d
push 0x41aef4
lea eax, [ebp - 0x824]
push eax
call fcn.00407a7d
inc esi
cmp esi, dword [ebp - 0x18cc]
jb 0x405317
push 0x41aef4
lea eax, [ebp - 0x824]
push eax
call fcn.00407a7d
lea eax, [ebp - 0x1834]
push eax
call fcn.00406b8d
mov byte [ebp - 4], 0x5e
lea eax, [ebp - 0x1888]
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_static_class_GCLocale___stdcall_GCLocale::GetDefault_void_const]
mov dword [ebp - 0x184c], eax
mov byte [ebp - 4], 0x5f
mov edi, dword [ebp - 0x824]
mov esi, dword [ebp - 0x1848]
mov ebx, dword [sym.imp.GrooveUtil.DLL_public:_static_struct_HINSTANCE______stdcall_GCGrooveResourceModule::GetHandle_void_]
call ebx
push eax
push dword [ebp - 0x184c]
push 0
push 0
push edi
push esi
push 0x3ac7
lea ecx, [ebp - 0x1834]
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], 0x5e
call ebx
push eax
push 0x3ac6
lea edi, [ebp - 0x184c]
call fcn.00407a99
mov eax, dword [eax]
mov dword [ebp - 0x1840], eax
mov byte [ebp - 4], 0x60
push 0x30
push dword [ebp - 0x1840]
push dword [ebp - 0x1834]
mov eax, dword [ebp - 0x1850]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 4], 0x5e
cmp dword [ebp - 0x1840], 0
je 0x40540d
lea ecx, [ebp - 0x1840]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0x5d
lea eax, [ebp - 0x1834]
push eax
call fcn.00408436
mov byte [ebp - 4], 0x5c
lea eax, [ebp - 0x824]
push eax
call fcn.00408436
mov byte [ebp - 4], 0x5b
cmp dword [ebp - 0x1848], 0
je 0x405446
lea ecx, [ebp - 0x1848]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x1844]
call dword [sym.imp.GrooveUtil.DLL_public:_void___thiscall_GCAnyIPtr::destructor_void_]
jmp 0x40545e
mov ebx, dword [sym.imp.GrooveUtil.DLL_public:_static_struct_HINSTANCE______stdcall_GCGrooveResourceModule::GetHandle_void_]
xor esi, esi
cmp dword [ebp - 0x18bc], esi
jle 0x40558d
lea eax, [ebp - 0x824]
push eax
call fcn.00406b5b
mov byte [ebp - 4], 0x63
cmp dword [ebp - 0x18bc], esi
jbe 0x4054b9
lea edi, [ebp - 0x18c0]
call fcn.00406aaf
push dword [eax]
lea eax, [ebp - 0x824]
push eax
call fcn.00407a7d
push 0x41aef4
lea eax, [ebp - 0x824]
push eax
call fcn.00407a7d
inc esi
cmp esi, dword [ebp - 0x18bc]
jb 0x405484
xor esi, esi
push 0x41aef4
lea eax, [ebp - 0x824]
push eax
call fcn.00407a7d
lea eax, [ebp - 0x1834]
push eax
call fcn.00406b8d
mov byte [ebp - 4], 0x64
lea eax, [ebp - 0x1888]
push eax
call dword [sym.imp.GrooveUtil.DLL_public:_static_class_GCLocale___stdcall_GCLocale::GetDefault_void_const]
mov dword [ebp - 0x184c], eax
mov byte [ebp - 4], 0x65
mov edi, dword [ebp - 0x824]
call ebx
push eax
push dword [ebp - 0x184c]
push esi
push esi
push esi
push edi
push 0x3ac9
lea ecx, [ebp - 0x1834]
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], 0x64
call ebx
push eax
push 0x3ac6
lea edi, [ebp - 0x184c]
call fcn.00407a99
mov eax, dword [eax]
mov dword [ebp - 0x1840], eax
mov byte [ebp - 4], 0x66
push 0x30
push dword [ebp - 0x1840]
push dword [ebp - 0x1834]
mov eax, dword [ebp - 0x1850]
push dword [eax + 4]
call dword [sym.imp.USER32.dll_MessageBoxW]
mov byte [ebp - 4], 0x64
cmp dword [ebp - 0x1840], esi
je 0x40556d
lea ecx, [ebp - 0x1840]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0x63
lea eax, [ebp - 0x1834]
push eax
call fcn.00408436
mov byte [ebp - 4], 2
lea eax, [ebp - 0x824]
push eax
call fcn.00408436
cmp dword [ebp - 0x1884], esi
jne 0x4055b4
mov eax, dword [ebp - 0x1850]
mov dword [eax + 0x2b4], 0xa
mov byte [ebp - 4], 1
cmp dword [ebp - 0x183c], esi
jmp 0x40563a
mov byte [ebp - 4], 1
cmp dword [ebp - 0x183c], esi
je 0x4055cc
lea ecx, [ebp - 0x183c]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0
lea eax, [ebp - 0x18c0]
push eax
call fcn.004011cb
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x18d0]
push eax
call fcn.004011cb
mov al, 1
jmp 0x40566a
je 0x405648
lea ecx, [ebp - 0x183c]
call dword [sym.imp.GrooveUtil.DLL_private:_void___thiscall_GCStr::_Release_void_]
mov byte [ebp - 4], 0
lea eax, [ebp - 0x18c0]
push eax
call fcn.004011cb
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x18d0]
push eax
call fcn.004011cb
xor al, al
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.0040c4c6
leave
ret