Function at 0x404d90
Capabilities:
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
push ebx
push esi
push edi
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
sub esp, 0xc
call fcn.004058f0
lea ecx, [esp + 0x10]
call fcn.0041f2d0
mov esi, dword [eax]
mov eax, dword fs:[0x2c]
mov edi, dword [eax]
mov eax, dword [0x4bcd70]
cmp eax, dword [edi + 4]
jle 0x404e0f
push 0x4bcd70
call fcn.00439abc
add esp, 4
cmp dword [0x4bcd70], 0xffffffff
jne 0x404e0f
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
add esp, 4
push ecx
push esi
push ecx
mov edx, 0x104
mov ecx, 0x4bb330
call fcn.0040d0f0
push ecx
push str.updump
push ecx
mov edx, 0x104
mov ecx, 0x4bb538
call fcn.0040d0f0
mov edx, dword [esp + 0x10]
or esi, 0xffffffff
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404e55
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
lea ecx, [esp + 0x10]
call fcn.0041f600
mov ebx, dword [eax]
mov eax, dword [0x4bcd70]
cmp eax, dword [edi + 4]
jle 0x404ea2
push 0x4bcd70
call fcn.00439abc
add esp, 4
cmp dword [0x4bcd70], 0xffffffff
jne 0x404ea2
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
add esp, 4
test ebx, ebx
je 0x404ed9
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404eb0
sub ecx, edx
sar ecx, 1
cmp ecx, 0x103
ja 0x404ed9
push ecx
push ebx
push ecx
mov edx, 0x104
mov ecx, 0x4bc740
call fcn.0040d0f0
mov edx, dword [esp + 0x10]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x404ef4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [0x4bcd70]
cmp eax, dword [edi + 4]
jle 0x404f36
push 0x4bcd70
call fcn.00439abc
add esp, 4
cmp dword [0x4bcd70], 0xffffffff
jne 0x404f36
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
add esp, 4
cmp dword [0x4bd220], 0
je 0x404f59
push 0x425b90
call dword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
call fcn.00425a60
mov dword [0x4bcd58], 0x1084
mov eax, dword [0x4bcd70]
cmp eax, dword [edi + 4]
jle 0x404f9b
push 0x4bcd70
call fcn.00439abc
add esp, 4
cmp dword [0x4bcd70], 0xffffffff
jne 0x404f9b
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
add esp, 4
mov eax, dword [0x4bcd70]
mov dword [0x4bcd68], 0x404c20
cmp eax, dword [edi + 4]
jle 0x404fe7
push 0x4bcd70
call fcn.00439abc
add esp, 4
cmp dword [0x4bcd70], 0xffffffff
jne 0x404fe7
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
add esp, 4
push dword [ebp + 8]
mov dword [0x4bcd5c], 0
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetInstance_struct_HINSTANCE____]
add esp, 4
lea ecx, [esp + 0x10]
call fcn.0041f140
push dword [eax]
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetResourceOEMPath_wchar_t_const__]
mov edx, dword [esp + 0x14]
add esp, 4
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40502c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push str.default.skin
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetResourceOEMZip_wchar_t_const___bool_]
xor edx, edx
lea ecx, [esp + 0x18]
call fcn.0041efc0
push dword [eax]
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetResourceLangPath_wchar_t_const__]
mov edx, dword [esp + 0x1c]
add esp, 0xc
add edx, 0xfffffff0
mov eax, esi
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x40506a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push str.default.skin
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetResourceLangZip_wchar_t_const___bool_]
lea ecx, [esp + 0x18]
call fcn.0041eef0
push dword [eax]
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetResourcePath_wchar_t_const__]
mov edx, dword [esp + 0x1c]
add esp, 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4050a4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 1
push str.default.skin
call dword [sym.imp.UiLib.dll_public:_static_void___cdecl_UiLib::CPaintManagerUI::SetResourceZip_wchar_t_const___bool_]
mov esi, dword [0x4bb2f4]
lea eax, [esp + 0x20]
add esp, 8
mov dword [esp + 0x18], vtable.WTL::CMessageLoop.0
xorps xmm0, xmm0
mov dword [esp + 0x2c], 0
add esi, 0x10
mov dword [esp + 0x30], 0
movups xmmword [esp + 0x1c], xmm0
push esi
mov dword [esp + 0x14], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, dword [0x4bd49c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x18]
push eax
call fcn.00405790
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push ecx
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x1c]
call fcn.00408aa0
add esp, 4
mov ebx, eax
call fcn.004056d0
mov ecx, dword [0x4bcd70]
cmp ecx, dword [edi + 4]
jle 0x405174
push 0x4bcd70
call fcn.00439abc
mov ecx, dword [0x4bcd70]
add esp, 4
cmp ecx, 0xffffffff
jne 0x405174
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
mov ecx, dword [0x4bcd70]
add esp, 4
mov dword [0x4bcd5c], 0
cmp ecx, dword [edi + 4]
jle 0x4051bb
push 0x4bcd70
call fcn.00439abc
add esp, 4
cmp dword [0x4bcd70], 0xffffffff
jne 0x4051bb
call fcn.004256b0
push 0x495060
call fcn.00439e16
add esp, 4
push 0x4bcd70
call fcn.00439a7d
add esp, 4
push ecx
push str.onexit
push ecx
mov edx, 0x104
mov ecx, 0x4bcb50
call fcn.0040d0f0
mov ecx, dword [0x4bd224]
test ecx, ecx
je 0x4051eb
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [0x4bd224], 0
call fcn.00405470
mov esi, dword [0x4bd49c]
test esi, esi
je 0x405238
mov eax, dword [esi]
test eax, eax
je 0x40520f
push eax
call fcn.0047043c
add esp, 4
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x405226
push eax
call fcn.0047043c
add esp, 4
mov dword [esi + 4], 0
push 0xc
push esi
mov dword [esi + 8], 0
call fcn.0043a1e9
add esp, 8
call fcn.004054f0
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40526b
push eax
call fcn.0047043c
add esp, 4
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
test eax, eax
je 0x40528c
push eax
call fcn.0047043c
add esp, 4
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret 0x10